01 The default
Most apps ask you to send your data somewhere.
A typical Marketplace app runs on its vendor's own infrastructure. Installing it means your issues, your customer requests and your page content are copied to a company you have not met, on hosting you did not choose, alongside sub-processors you would have to read a policy to name. None of that is unusual. It is simply how most of the ecosystem is built, and it is why every install turns into a review.
The data that cannot leak is the data that was never sent anywhere.
02 The constraint
So nothing is sent.
Everything here runs on Atlassian Forge. Atlassian hosts the code, the data stays inside the tenancy you already administer, and the app declares no egress — there is no address for your content to travel to, including ours. That is not a policy we could quietly change. It is a property of where the software runs.
manifest.yml read by Atlassian before the app runs
-
read:servicedesk-requestRead the request the customer chose to repeat -
write:servicedesk-requestCreate the repeat, attributed to that customer -
storage:appHold the schedule, in storage Atlassian operates
External permissions
None declared
No fetch, no images, no scripts, no addresses of any kind. Forge blocks any outbound call an app has not declared, and this app declares none — so there is nowhere for your content to go, including to us.
03 What it produced
Two apps built under that rule.
Both are on the Atlassian Marketplace, and the permissions each one asks for are on its install screen before you approve anything.
Mermaid Studio for Confluence
Flowcharts, sequence diagrams, ERDs, Gantt charts and mind maps written as plain text — with syntax highlighting, live preview, starter templates and one-click export.
Recurring Requests for Jira Service Management
Let portal customers repeat a request they have already raised — once, on a schedule, or from a saved template. Off until an admin enables it, with limits they control.
04 Reading the machine's work
AI writes the code. This reads it back.
Described to an assistant, assembled in an afternoon, shipped on trust — more software than ever is owned by someone who has never read it. One command maps every way into your application, what each one really does, and — on every scan after the first — what changed. Nothing is uploaded. The report is a single file that works offline.
npx what-it-does · free · MIT · runs on your machine
npx what-it-does scan 01scan 02
28 ways in · nothing looked wrong 1 new thing worth checking
You will run it once. That is the problem.
A scan tells you what your application does today. Next week somebody merges a change and it does something else, and nobody runs the command again. That is not a discipline failure — it is what happens to every tool that has to be remembered. So the half that costs money does not need remembering. It reads the base branch, reads yours, and speaks only when the answer changed.
what it does
This changes what your application can do in
1 way, compared with main.
1 new thing worth checking.
DELETE /api/test-slettDeletes rows from notater — with no visible check on who is asking
app/api/test-slett/route.ts:10
9 other behaviours unchanged. Read locally with
npx what-it-does.
The whole of the setup
name: what it does
on: pull_request
jobs:
behaviour:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: rolfe099-sketch/what-it-does/action@v1
with:
licence-key: ${{ secrets.WHAT_IT_DOES_KEY }}
- It stays quiet. A pull request that changes no behaviour gets no comment at all. When there is something to say it edits the same comment rather than stacking a new one on every push.
- It cannot break your build. If a scan errors, or the licence check cannot reach the network, the check passes and says so in the log. The only red it ever produces is one you asked for.
- Your code never leaves your runner. The scan runs inside your own CI. The one request that goes out carries a licence key and nothing else — no repository name, no file, no finding.
The scan is free. The watching is what costs.
Everything above is free forever and always will be — one command, MIT, no account. What costs money is the half that runs without you: a check on every pull request that compares behaviour rather than lines, and says so when a delete endpoint stops checking who is asking.
The pull request check Private repositories
- Runs on every pull request, your branch against the base
- Comments only when the behaviour actually changed
- Fails the build on a new finding, if you want it to
- One key, every repository your organisation owns
The same product at every size. Nothing is held back for a higher price — no feature locked, no repository limit, no seat bought separately. The only thing that changes is how many people are committing.
An active committer is someone who has committed in the
last 90 days. Counted from your own git history, inside
your own CI, by a command you can run yourself:
git shortlog -sn --since=90.days. Nothing is
reported anywhere. We ask no questions about your company
size because we do not need to.
Free, and staying that way
The scanner
Every way into your application and what each one does, as one HTML file you can read offline. Any project, private or not. MIT, no account, and no network at all.
npx what-it-does
Public repositories
The same pull request check, free on any repository anyone can read, with no committer limit. The comment is public too, so the people sending you patches see what theirs changed.
No key needed
Every tier is a monthly subscription you can cancel from your own customer portal, with a full refund inside fourteen days and no reason asked for. Checkout is handled by Polar as merchant of record, so VAT is theirs to collect and your card details never reach us. The prices above are before tax: whatever your country charges is added at checkout, and shown to you in full before you pay. Setup after that is two minutes: a key in a repository secret and one workflow file. Anything you want to ask first: [email protected].
The field behind this section is tidepool's real dependency graph — 15 resources, 24 connections, laid out by the scanner itself from the report above. The pull request comment is a real one, lifted from a real pull request. Nothing in this section is a mockup.
05 The same idea, elsewhere
Aion — batch work for coding agents.
Not the work that pays the bills — it is the most technically ambitious thing here, and the source is public. The same instinct runs through it: Aion reads files and calls language models, and deliberately cannot run shell commands.
Describe the job once. Run it over everything.
An agent asked to review forty files reads them one at a time, filling the conversation with material nobody will read and billing every file to an expensive model. Aion takes the mechanical part: one call per file, run at once, merged into a single answer. Across nine real jobs it kept 64.7% of what was produced out of the conversation.
Then the harder question, and the one most tools never ask: will an agent actually reach for it? A benchmark harness was built to find out, and the first answer was unflattering.
Source on GitHubDoes the agent actually reach for it?
Eighteen scenarios. Zero false positives — never reached for where it should not have been.
One forty-file review. 98.6% of what it produced never entered the context window — 64.7% aggregate across nine jobs.
06 Check it yourself
None of this needs to be taken on trust.
A promise not to misuse your data is worth less than not being able to reach it. Each of these is visible to you without our cooperation.
Hosting
Atlassian Forge. We operate no servers and hold no infrastructure of our own.
Egress
None declared. Nothing is sent outside Atlassian, to us or to anyone else.
Permissions
Listed on each app's page and on the install screen before you approve it.
Telemetry
None. No analytics, no tracking and no cookies — including on this site.