# letopis vs. your current stack — trackers, wikis, CI and kiro.dev

> Every tool you already own answers one question and goes blind at the next.

No single product covers the chain — just four categories of incumbent, each stopping exactly where the
next question starts.

Canonical page: https://dirahq.sh/letopis/compare

## The question

| The question | You'd reach for | What it cannot see | letopis |
| --- | --- | --- | --- |
| How long did this actually take? | Toggl, Harvest, Clockify | Whether the timer was a human or a forgotten tab — and it never touches the artifact the hour produced. | dira |
| Who — or what — wrote this code? | git blame, co-author trailers, Copilot metrics | The workstation. A trailer is a claim anyone can type; the code host cannot witness the session that produced the diff. | dira |
| Why is it built this way? | Confluence, Notion, ADR folders, kiro.dev specs | Whether anyone followed it. A wiki page enforces nothing, and a generated spec is a plan the next agent run can quietly rewrite to agree with itself. | zavet |
| Was this change properly governed? | CI, branch protection, compliance collectors | That a check ran is not that a human supervised. They record the gate, never the supervision behind the change passing through it. | proba |
| What should the next one cost? | Spreadsheets, story points, gut feel | That its calibration died in 2024. Every input is a self-reported number from before agent leverage existed. | miara |

## Closest neighbour · kiro.dev

**Kiro writes the spec before the work. letopis records what the work actually did.**

Kiro is the one product on this page we would not call structurally blind. AWS built it on the same premise
we did — that intent belongs in the repo, versioned, beside the code — and it is genuinely good at the half
it owns. It is upstream of letopis, not instead of it. A spec is a stated *intention*; a chronicle is an
*observation*. Only one of those survives contact with an agent.

**Kiro · spec-first, in the IDE**

- `.kiro/specs` — requirements, design and tasks, authored before the code and tracked against it.
- Steering files apply team conventions to every agent action, first-class and versioned.
- Hooks fire on save and commit — inside Kiro.
- ✕ **Sees only work done in Kiro.** The editor is the boundary. Your teammate on Claude Code is invisible to it.
- ✕ **Its artifacts are generated, unsigned and rewritable.** Refine the design and the next run syncs over it. Nothing stops an agent from making the spec agree with the code it just wrote.
- ✕ **Cannot witness the merge.** No CI state at merge, no non-author review, no supervision minutes — the IDE is on the wrong side of the pull request.
- ✕ **No hours, no client, no invoice.** It prices agent credits, not the work. Nothing in it tells you what the feature cost or what the next one should.

**letopis · record-first, around the repo**

- Decisions captured as a byproduct of the work, then **guarded** — an agent that contradicts one has to surface it, not overwrite it.
- Every harness the developer actually used — Claude Code, Codex, Cursor, OpenCode. **The git remote is the boundary, not the editor.**
- Witnesses the merge: CI at the merge commit, review by a non-author, supervision minutes, no branch protection bypassed.
- Time, compute cost, client, invoice and the next quote all hang off the same signed session.
- ✓ Signed at capture on the workstation, immutable after — which is what makes it evidence rather than documentation.
- And what letopis *doesn't* do: it will not write your spec, plan your tasks or steer your agent. Kiro is better at that than we intend to be.

**Run both.** A `.kiro/spec` is perfectly good evidence of intent, and zavet will cite it like any other decision
record — a change that implements one reaches 999 fineness the same way. What Kiro cannot do is tell you whether
anybody followed it.

## And then the real problem

**Buy all four categories and the interesting questions are still unanswerable.**

Because they are questions *across* links, and five vendors share no key. letopis has exactly one: the signed
session every other record hangs off.

This is the only thing letopis sells that cannot be assembled from parts. Anyone can build a timer, a wiki or a
CI check — nobody else can join them, because nobody else signs the session all four hang off.

### What did decision D-0042 cost us?

**Your stack today**

| Source | Holds |
| --- | --- |
| Confluence | the decision page — no field a timer knows about |
| Toggl | 3h 12m against "API work" — no decision reference |
| Provider console | token spend by day, by nobody in particular |

✕ 3 systems · 0 shared keys · unanswerable

**letopis**

| Source | Holds |
| --- | --- |
| zavet · D-0042 | the decision, its guards, the paths it owns |
| dira · s-2481, s-2490 | the sessions that referenced it, signed |
| the join | decision ↔ session, same key |

✓ 3h 12m engaged · 14h 02m agent · 612k tok — and the guard has blocked 4 reverts of it since

### Did a human supervise PR #4172, and for how long?

**Your stack today**

| Source | Holds |
| --- | --- |
| GitHub | a review approval and a merge timestamp |
| Co-author trailer | a line of text anyone can type |
| Nothing | measures how long a human actually watched |

✕ the workstation is invisible to the code host

**letopis**

| Source | Holds |
| --- | --- |
| proba · hallmark #4172 | CI green, non-author review, fineness 750 |
| dira · signed session | harness identity and engaged minutes |
| the join | merge ↔ session, cryptographic |

✓ 47m engaged against 4h 20m of agent time, reviewed by a non-author — recorded, not claimed

### Is this quote comparable to the last four?

**Your stack today**

| Source | Holds |
| --- | --- |
| Your invoice history | hours you typed in yourself |
| A spreadsheet | a velocity calibrated before agents existed |
| Gut feel | wrong by ~10× depending on work type |

✕ your own numbers are the ones you cannot verify

**letopis**

| Source | Holds |
| --- | --- |
| miara · 4 confirmed comparables | past deliverables you picked as similar |
| dira · anchored deliveries | the real engaged hours behind each one |
| proba · fineness filter | only work governed at 750 or better counts |

✓ n = 4 at 750+ · 2.1–4.8h engaged · spread 2.3× — or it refuses to answer at all

## Five tools, or one chain.

dira is free forever for solo work and open source. Everything else is written on top of it.

- [Start tracking free](https://dirahq.sh/letopis#pricing)
- [The AI Act case](https://dirahq.sh/letopis/ai-act)

---

See also [/letopis.md](https://dirahq.sh/letopis.md), [/letopis-ai-act.md](https://dirahq.sh/letopis-ai-act.md),
[/compare.md](https://dirahq.sh/compare.md).
