TickStock.ai.

Writing

Your AI Agents Ship Code. Then They Forget Everything

Agents can write code, but they cannot maintain organizational memory. Without a strict boundary between your project board and your repository, every session starts from zero.

The issue

An agent writes code, automated tests pass, and a pull request opens. But a week later, nobody on the team can answer basic operational questions: What actually shipped? What was intentionally deferred? Why did that ticket close?

The code reached the repository, but the organizational context vanished.

This is not a failure of the underlying model. Chat sessions are inherently ephemeral. When multiple agents freely update project tickets, tracker state drifts from reality. When a design memo or diff is copied into a ticket description, you create two competing sources of truth, and within 48 hours they diverge. Git retains the raw code, but the engineering context is lost.

The resolution

Give the board and the repo different jobs. Do not let them swap.

Index (the board)

Tickets. Scope, status, and a pointer to the work. What people scan. What gets updated at named moments only.

Substance (the repo)

Code, design notes, test proof, agent write-ups. The system of record. Linked from the ticket. Never pasted into it.

Close a ticket with confirmations, not with a dump.

Bad (chat dump)

Pasting raw terminal test logs, verbose agent reasoning chains, and code diffs directly into the ticket body. It bloats the tracker and immediately becomes obsolete.

Good (deterministic pointer)

Shipped: Auth middleware.
Deferred: Rate limiting (moved to TKT-047).
Verification: 18 unit tests green.
Manifest: commit a4b8c9.
Architecture note: /docs/auth-v2.md.

One role writes the board. Everyone else hands off through that role. Drift is not a retro topic. If the board and the repo disagree, the build fails.

The process model

Work moves in batches, not as a live stream of status chatter.

  1. Define a batch of work with a clear outcome.
  2. Execute in the repo. That is where substance lives.
  3. Update the board only at named moments: pull the batch, plan, close, reconcile. Not on every commit.
  4. One writer for the board. Implementation agents do not “helpfully” edit tickets.
  5. Close with links and what shipped versus what waited. No copies.
  6. Keep a small reconcile file in git (a manifest) that automated checks can enforce. If the board and the repo disagree, the build fails.

Your reviews, specialists, and sign-off stay. You are not replacing engineering culture. You are upgrading the index so it can keep up with how fast agents produce work.

flowchart TD A[Define a batch] --> B[Execute in the repo] B --> C[Ceremony: one writer updates the board] C --> D[Close with links] D --> E{Board matches git?} E -->|yes| A E -->|no| F[Build fails]

The standing loop. How you get onto it from an old backlog is a migration choice, not a seventh step in the process.

We implemented and stress-tested this division in our production lab, where unverified state drift directly jeopardizes live capital. The specific tracking tools and models can change. The architectural split between index and substance cannot.

Read the lab →