---
description: Full project lifecycle with trckr. Init a project, scope work into tickets, then plow through the queue with parallel agents.
category: personal
---
flowchart TD
_HEADER_["
trckr Plow
Full project lifecycle with trckr. Init a project, scope work into tickets, then plow through the queue with parallel agents.
"]:::headerStyle
classDef headerStyle fill:none,stroke:none
subgraph _MAIN_[" "]
direction LR
%% Phase 1: Init
subgraph Init["/trckr:init"]
CHECK_PROJ{Project
Exists?}
CHECK_PROJ -->|No| CREATE[Create Project
+ Add Repo]
CHECK_PROJ -->|Yes| VERIFY[Verify Status]
CREATE --> VERIFY
VERIFY --> SYNC_INIT[trckr sync]
end
%% Phase 2: Scope
subgraph Scope["/trckr:scope"]
SYNC_INIT --> EXPLORE[Explore Codebase
+ Research]
EXPLORE --> CLARIFY{Questions?}
CLARIFY -->|Yes| ASK[Ask User]
ASK --> CLARIFY
CLARIFY -->|No| PLAN[Plan Issues
deps + parallelism]
PLAN --> PRESENT[Present Roadmap
+ Dep Graph]
PRESENT --> APPROVE{Approved?}
APPROVE -->|No| PLAN
APPROVE -->|Yes| CREATE_TIX[Create Tickets
status=triage]
CREATE_TIX --> LINK[Create Links
blocks/blocked-by]
LINK --> SYNC_SCOPE[trckr sync]
end
%% Phase 3: Plow
subgraph Plow["/trckr:plow"]
SYNC_SCOPE --> SCAN[Scan Queue]
SCAN --> EMPTY{Queue Empty?}
EMPTY -->|Yes| REPORT([Batch Complete])
EMPTY -->|No| BATCH[Pick Parallelizable
deps satisfied]
end
%% Phase 4: Per-Ticket Pipeline
subgraph Pipeline["Per-Ticket Pipeline (parallel)"]
BATCH --> CLASSIFY{Needs Triage?}
CLASSIFY -->|Bug| TRIAGE_BUG[[trckr-triage-bug]]
CLASSIFY -->|Feature| TRIAGE_FEAT[[trckr-triage-feature]]
CLASSIFY -->|Ready| RESEARCH
TRIAGE_BUG --> RESEARCH[[task-research-analyst]]
TRIAGE_FEAT --> RESEARCH
RESEARCH --> IMPL[[trckr-issue-worker
isolation: worktree]]
IMPL --> QA{QA Type?}
QA -->|CLI/API| QA_CLI[[trckr-cli-qa]]
QA -->|Web| QA_WEB[[trckr-web-qa]]
QA_CLI --> PASS{Pass?}
QA_WEB --> PASS
PASS -->|No| FEEDBACK[Post Feedback
as Comment]
FEEDBACK --> IMPL
PASS -->|Yes| READY[Ready to Merge]
end
%% Phase 5: Merge + Cleanup
subgraph Merge["Merge + Cleanup"]
READY --> MERGE_ORD[Merge to Main
ordered by deps]
MERGE_ORD --> SMOKE{Smoke Test
Pass?}
SMOKE -->|Yes| CLEANUP[Remove Worktrees
Push Main]
SMOKE -->|No| ROLLBACK[Revert + Rework]
ROLLBACK --> IMPL
CLEANUP --> SCAN
end
click CHECK_PROJ "#" "**Project Exists?**\nCheck if trckr already has a project for this repo:\n`trckr project list --repo '$(git remote get-url origin)'`\n\nIf the project exists, verify it's healthy.\nIf not, create one."
click CREATE "#" "**Create Project**\nCreate a new trckr project and associate it with the repo:\n`trckr project create --name 'My Project' --status active --repo 'owner/repo'`\n\nThe project key (e.g., PROJ) becomes the ticket prefix."
click VERIFY "#" "**Verify Status**\nCheck trckr health and project configuration:\n`trckr status`\n`trckr doctor`\n\nFix any sync issues or missing configuration before proceeding."
click SYNC_INIT "#" "**trckr sync**\nSync local SQLite database with the trckr server:\n`trckr sync`\n\nEnsures all agents see the same state.\nAlways sync before and after creating tickets."
click EXPLORE "#" "**Explore Codebase + Research**\nBefore scoping tickets, understand what exists:\n- Read code structure and patterns\n- Check llm-code-docs for relevant library docs\n- Use perplexity/tavily for external research\n- Identify existing tests, CI, and deployment patterns"
click CLARIFY "#" "**Questions?**\nIf the task is ambiguous, ask the user for clarification.\nLoop until all requirements are clear.\n\nDon't assume -- unclear requirements lead to wasted agent cycles."
click ASK "#" "**Ask User**\nPresent specific questions about scope, constraints, or priorities.\nEach question should be answerable, not open-ended."
click PLAN "#" "**Plan Issues**\nUse extended thinking to design the issue graph:\n- Break work into independently-implementable tickets\n- Map dependencies (which blocks which)\n- Identify parallelism opportunities\n- Define QA criteria per ticket\n- Estimate complexity (affects agent selection)"
click PRESENT "#" "**Present Roadmap**\nShow the user:\n- Ticket list with titles, descriptions, priorities\n- Dependency graph (what blocks what)\n- Proposed execution order\n- Estimated parallel lanes\n\nUser must approve before tickets are created."
click APPROVE "#" "**Approved?**\nUser reviews the roadmap.\nIf rejected, incorporate feedback and re-plan.\nIf approved, proceed to create tickets."
click CREATE_TIX "#" "**Create Tickets**\nCreate all planned tickets with `status=triage`:\n`trckr issue create --title 'Title' --description 'Desc' --priority high --status triage --project PROJ`\n\nAll tickets start as triage -- the plow pipeline promotes them."
click LINK "#" "**Create Links**\nEstablish dependency relationships:\n`trckr issue link PROJ-1 PROJ-2 --relation blocks`\n\nThe plow phase uses these links to determine execution order and parallelism."
click SYNC_SCOPE "#" "**trckr sync**\nSync after creating all tickets so the plow phase sees them.\n`trckr sync`"
click SCAN "#" "**Scan Queue**\nCheck the ticket queue for work:\n`trckr issue list --status todo,triage --project-id
--comments`\n\nAlso check for blocked tickets whose blockers are now done."
click EMPTY "#" "**Queue Empty?**\nIf no tickets remain (all done/cancelled), report results.\nIf tickets remain but all are blocked, report the blockers."
click REPORT "#" "**Batch Complete**\nAll tickets processed. Report:\n- Total tickets: N done, M failed, K blocked\n- Commits and PRs created\n- Any manual follow-up needed\n\nNotify via ntfy:\n`ntfy send 'Plow complete: N done, M issues'`"
click BATCH "#" "**Pick Parallelizable**\nSelect tickets that can run simultaneously:\n- Dependencies satisfied (blockers are done)\n- No file conflicts (different areas of codebase)\n- Up to 10 concurrent workers\n\nEach ticket gets its own git worktree for isolation."
click CLASSIFY "#" "**Needs Triage?**\nTickets in `triage` status need classification before work.\n- Bug: dispatch trckr-triage-bug agent\n- Feature: dispatch trckr-triage-feature agent\n- Already triaged (todo): skip to research"
click TRIAGE_BUG "#" "**trckr-triage-bug**\nValidates the bug exists, researches solutions, checks test coverage.\nCreates a detailed triage report as a comment.\nDoes NOT write code -- only researches and documents.\nPromotes ticket from triage to todo if valid."
click TRIAGE_FEAT "#" "**trckr-triage-feature**\nChecks if the feature already exists, researches approaches.\nIdentifies where it would live in the codebase.\nCreates a detailed triage report as a comment.\nDoes NOT write code -- only researches and documents."
click RESEARCH "#" "**task-research-analyst**\nDeep research before implementation:\n- Read related code and tests\n- Check docs for libraries involved\n- Understand existing patterns to follow\n- Identify edge cases and risks\n\nPosts findings as a comment on the ticket."
click IMPL "#" "**trckr-issue-worker**\nThe implementation agent. Runs in an isolated git worktree:\n`Agent(isolation: 'worktree')`\n\n- Reads the issue and all comments (including triage + research)\n- Implements the fix/feature\n- Writes tests\n- Commits to the worktree branch\n- Updates ticket to `in-review`"
click QA "#" "**QA Type?**\nRoute to the appropriate QA agent based on the ticket:\n- CLI/API/backend changes: trckr-cli-qa\n- Web UI changes: trckr-web-qa"
click QA_CLI "#" "**trckr-cli-qa**\nVerifies CLI/API/backend fixes by running actual commands.\n- Tests the happy path\n- Tests edge cases from the ticket\n- Compares output against expected behavior\n- Posts pass/fail report as a comment"
click QA_WEB "#" "**trckr-web-qa**\nVerifies web fixes using claude-in-chrome MCP.\n- Navigates to the relevant page\n- Tests the UI interaction\n- Takes screenshots for evidence\n- Posts pass/fail report as a comment"
click PASS "#" "**Pass?**\nQA agent posts its verdict:\n- Pass: ticket is ready to merge\n- Fail: posts specific feedback as a comment, ticket loops back to implementation"
click FEEDBACK "#" "**Post Feedback**\nQA failure details are posted as a comment on the ticket.\nThe implementation agent reads this comment on its next run and addresses the specific issues."
click READY "#" "**Ready to Merge**\nQA passed. Ticket's worktree branch is ready for merge.\nStatus updated to `done`."
click MERGE_ORD "#" "**Merge to Main**\nMerge completed worktree branches in dependency order:\n- Blockers merge before dependents\n- Resolve any merge conflicts\n- Each merge is a separate commit on main\n\n`git checkout main`\n`git merge PROJ-42`"
click SMOKE "#" "**Smoke Test**\nAfter merging a batch, run a smoke test on main:\n- Run the full test suite\n- Check for regressions from merged changes\n- Verify no merge conflicts broke anything"
click CLEANUP "#" "**Remove Worktrees + Push**\nClean up after successful merge:\n`git worktree remove /tmp/repo-PROJ-42`\n`git push origin main`\n\nLoop back to scan for more tickets."
click ROLLBACK "#" "**Revert + Rework**\nSmoke test failed. Revert the merge and send the ticket back to implementation with the failure details."
classDef init fill:#d1ecf1,stroke:#7ec8d8
classDef scope fill:#e8daef,stroke:#b07cc6
classDef plow fill:#dfe6ff,stroke:#5b7bce
classDef pipeline fill:#fff3cd,stroke:#f0c040
classDef agent fill:#ffeaa7,stroke:#e0c040
classDef merge fill:#dfe6ff,stroke:#5b7bce
classDef approved fill:#d4edda,stroke:#5cb85c
classDef flagged fill:#f8d7da,stroke:#e06070
class CHECK_PROJ,CREATE,VERIFY,SYNC_INIT init
class EXPLORE,CLARIFY,ASK,PLAN,PRESENT,APPROVE,CREATE_TIX,LINK,SYNC_SCOPE scope
class SCAN,EMPTY,BATCH plow
class CLASSIFY,QA,PASS pipeline
class TRIAGE_BUG,TRIAGE_FEAT,RESEARCH,IMPL,QA_CLI,QA_WEB agent
class MERGE_ORD,SMOKE,CLEANUP merge
class READY,REPORT approved
class FEEDBACK,ROLLBACK flagged
end
style _MAIN_ fill:none,stroke:none,padding:0
_HEADER_ ~~~ _MAIN_