File
SMF·SHORTCUT
Received on
31.07.2026
Reviewed on
28.09.2026
Exhibits annexed
3
Questions
4

SMF·SHORTCUT

Can a prompt replace Shortcut?

Project management — issue tracking for software teams

Almost Verdict recorded on 28.09.2026 · Verified on 31.07.2026
Price
$8.50/moSource: www.shortcut.com · Checked on July 31, 2026
Per year
$102
Build time
A weekend
Votes
0 votes
YesAlmost (checked)Not yet

Exhibit tracking slip

Exhibit A The prompt
Exhibit B What you lose
Exhibit C Why people still pay: git integration and team habit
Exhibit Q Questions

Verdict

Shortcut is a tracker for people who live in a terminal, and its one indispensable behaviour is the git loop: a branch name carries the story id, the pull request links itself, and the merge moves the card. That loop is a weekend against a git host's webhooks. What you lose is everything social around it — the mobile app, the integrations, and other people bothering to update it — which is the ordinary reason a self-hosted tracker for a team quietly dies.

Exhibit B — What you lose

Exhibit A — The prompt

Received on31.07.2026
Build an issue tracker whose stories are updated by git, not by hand.

Stack: your choice, Postgres, Docker Compose. Connect to your git host with an OAuth app and a webhook — GitHub is the reference; note in the README what changes for GitLab.

Model: Story (id, title, description, type of feature/bug/chore, state, estimate, owner, labels), Epic (a named group of stories with a computed completion), and Iteration (a dated window containing stories).

The git loop, which is the entire point:
- Every story exposes a suggested branch name containing its id, copyable in one click, in a documented format like `name/sc-123-short-title`.
- On a `create` webhook for a branch matching that pattern, move the story to In Progress and record the branch.
- On a pull-request webhook referencing the id in the branch or title, attach the PR with its state and link, and move the story to In Review.
- On merge into the default branch, move the story to Done and record the merge commit. On PR close without merge, move it back to In Progress and say why in the activity log.
- Every automatic transition is logged as automatic, with the webhook event that caused it, so an unexpected state change is traceable.
- Verify the webhook signature and reject anything unsigned. An open webhook endpoint lets anyone move your stories.

Iterations: start and end dates, stories assigned in, and a burndown chart built from stored daily snapshots of remaining estimate rather than recomputed from current state — recomputing gives you a chart that rewrites its own history every time a story is re-estimated.

One report: cycle time per story from In Progress to Done, as a distribution rather than an average, because the average hides the two stories that took a month.

Also: a kanban board, keyboard-driven search with a query syntax (`state:`, `owner:`, `label:`, `epic:`), and CSV export.

Write tests for branch-name parsing including titles with hyphens and numbers, for PR-close reverting the state, for signature rejection, and for burndown snapshots being idempotent per day.

Do not build mobile apps, chat integrations, or a design-tool integration.

Opening prefills the prompt — press enter to run it.

Exhibit B — What you lose

  • B.1 the mobile apps
  • B.2 the maintained integrations to chat, CI and design tools
  • B.3 hosted uptime and someone else's backups
  • B.4 the reporting suite, including burndown and cycle-time dashboards out of the box
  • B.5 other people using it, which is the real risk of a self-hosted team tracker

Prior art

Exhibit C — Why people still pay: git integration and team habit

Because a tracker is only useful if the whole team updates it, and paying is the cheapest way to make it somebody else's job to keep it running and pleasant enough that they do.

Questions

Why build burndown from stored snapshots?

Because a chart recomputed from current state changes yesterday's history whenever an estimate changes, which makes it worthless for the one thing it is for — noticing that you are not going to finish. A daily snapshot row costs nothing.

Why report cycle time as a distribution?

Because the average is dominated by the many small stories and hides the two that took a month, and those two are the ones worth talking about. A histogram or percentiles tells the truth.

What happens if someone forgets the story id in the branch name?

Nothing automatic, which is correct — the tracker should never guess. Make the suggested branch name one click to copy and the omission becomes rare; guessing from the title produces wrong links, which is worse than none.

Does Shortcut export well?

Yes. The API pages through stories, epics, iterations and comments, and there is a CSV export in the UI. It is one of the more portable trackers in this category.

Receipt

Already built this yourself?