Copy this file to your project root as AGENTS.md. Purpose: keep agents aligned across sessions using Track CLI’s hierarchical tracking.
- Requirements: Node >=18. Install and build once:
npm install && npm run build(optional:npm linkto usetrackglobally). - State lives in
.track/(SQLite WAL). Do not commit it.track initcreates it;--forcewipes it.
- Start session:
track status --json→ returns only active tracks (planned,in_progress,blocked); readsummaryandnext_prompt. - During work: create leaves with
track new "<title>" --parent <id> --summary "<state>" --next "<action>" --file <path>. Update any item withtrack update <id> ...(defaultsstatustoin_progressunless overridden). - End session: run
track updatewith a concise summary of work done and an actionable--next. - See completed work:
track status --json --allincludesdoneandsupersededtracks.
track init [name]— once per repo (or to reset with--force).track new "<title>"— add feature/task; omit--parentto attach to root.track update <id>— any update (status, summary, next, files).track status --json— active tracks only (default); use--allto include done/superseded.track show <id>— get details for a single track (simpler than jq filters).
- Status lifecycle:
planned→in_progress→done/blocked/superseded. Claim work by settingin_progress; unblock/finish explicitly. - JSON is stable for:
id(8-char nanoid),title,parent_id(null for root),summary,next_prompt,status,files[],children[],created_at,updated_at.kindis derived (super|feature|task); ordering is not guaranteed; tolerate extra fields.
<file>: do <step1>; then <step2>. Acceptance: <observable result>. Context: <why this approach>.
Example: --next "src/commands/continue.ts: add validation before DB write; then update tests in src/commands/__tests__/continue.test.ts. Acceptance: continue rejects empty summary."
- Before working:
track status --jsonto avoid collisions; markin_progressto claim. - Don’t overwrite others’ summaries; prefer adding child tasks over editing someone else’s node.
- Keep updates frequent; summaries should be current state (not history),
next_promptmust be immediately actionable.