Provenance

Why does this line exist? Ask it.

git blame tells you who changed a line and when. For code an agent wrote, the real questions are which requirement asked for it, which prompt and model produced it, what the reviewer concluded and who signed off. hashd records every answer as the code is made.

Defined, not inferred

hashd owns the line, so it keeps the receipts.

A tool that hooks the commit event sees the agent session but not why it was invoked or what happened after. Because hashd runs the whole line, every link in the chain is a real, recorded relationship.

  1. line of code → git commit → micro-commit
  2. → run → prompt and agent call (model, tokens, time)
  3. → workstream → story → requirement
  4. → reviews, clarifications and human decisions
hashd lineage 81b58a8f72Commit: 81b58a8f72  SHA:         81b58a8f722571c510ff53af755fa1a0de104d39  Message:     COMMIT-MC_LOC_LIST-002: Add per-micro-commit LOC list to /changes  Workstream:  mc_loc_list  Story:       STORY-0157  Microcommit: COMMIT-MC_LOC_LIST-002  Run:         20260927-053919666112_hashd_mc_loc_list  Created:     2026-09-27T06:03:53.596262167Z Story: STORY-0157 - Server: /changes reports every micro-commit's       LOC, or one line saying why not Intent in force:  State: recorded  Micro-commit entry in force: COMMIT-MC_LOC_LIST-002
hashd lineage STORY-0157Story: STORY-0157  Status:      implemented Intent versions:  State: recorded  requirement_input (version 6246):    Source:   reqs_file    Git ref:  a2155f0b5d8ce10ab62cc367e19e8aac6afc8cf3    Git path: REQS.md    SHA-256:  1ec0777bbbc0331ae56bf0fb1df49c0f315247ec              9431aebff9abf98e8eab47fd    Recorded: 2026-09-27T04:51:43Z

Exact intent

Not a summary of what was asked. The exact text.

The requirement a story came from is stored verbatim, with its SHA-256 and the git revision and path it was read from. Months later you can prove what was asked for, not just what was built.

Three ways to use it

Query it. Export it. Verify it.

The record is not a log file someone has to dig through. It is queryable from every surface and exportable in standard formats.

Query

hashd lineage takes a file, a line range, a commit or a story and walks the chain in either direction, as a table, JSON or Markdown. In hashd watch, press I in the diff view to trace a line.

Export

lineage export writes an in-toto statement with a SLSA v1.0 provenance predicate, or a statement with the full hashd predicate: reviews, human decisions and agent calls included.

Verify

Commit records form a SHA-256 hash chain over canonical JSON. lineage verify exits non-zero if a record was altered, removed, duplicated or relinked.

hashd lineage verifyChain verification for project 'hashd':  Total records:  735  Verified:       735  Chain valid. hashd lineage export 81b58a8f72 --format slsahashd lineage export STORY-0157 --format in-toto

Honest about the edges

The hash chain gives tamper evidence. Cryptographic signing of exports, such as Sigstore, and a public transparency log are not part of hashd today.

What is recorded

Every link, and where it lives.

All of it is captured by the line as the work happens, not reconstructed afterwards.

LinkWhat is kept
requirement → storyThe requirement text, its SHA-256, and the git revision and path it came from.
story → workstreamThe workstream's story and its plan of micro-commits.
plan → promptThe prompt template and the rendered prompt the agent received.
prompt → agent callAgent, model, tokens and duration for every call.
agent call → commitThe commit SHA, its micro-commit and its run.
commit → reviewThe review decision, confidence and blockers.
review → humanApprovals and rejections, with the reason and who gave them.
clarificationsEvery question an agent asked and the answer it got.

Put your team's agents on the line.

One command installs hashd and everything it needs except git and a coding agent. Free in solo mode for individuals and teams of up to 10 engineers. Team mode comes with a commercial agreement. Pricing

curl -fsSL https://raw.githubusercontent.com/codr1/hashd-code/main/install.sh | bash

Rolling out to a team?

We work closely with a small group of design partners: hands-on onboarding, a direct line to the people building hashd, and a real say in what we build next.

Become a design partner