Convention: TODO Lifecycle
Convention: TODO Lifecycle
Principle
Work items are either plan phases (strategic, auto-sync to board) or typed Forgejo issues (tactical, added to board). There are no standalone
todo-* or bug-* notes in pal-e-docs. The "todo" column on the kanban board is a status (scoped, awaiting Lucas's review), not a work type. Discovered work becomes a typed Forgejo issue immediately — the issue is the spec.Four Issue Types
Every Forgejo issue includes a
### Type header that determines which template is validated against:| Type | Template | When to Use | Key Sections |
|---|---|---|---|
| <strong>Feature</strong> | <code>template-issue-feature</code> | New functionality, enhancements, planned work | User Story, File Targets, Test Expectations, Constraints |
| <strong>Bug</strong> | <code>template-issue-bug</code> | Broken behavior, regressions, alert-driven fixes | What Broke, Repro Steps, Expected Behavior, Environment |
| <strong>Spike</strong> | <code>template-issue-spike</code> | Unclear scope, needs investigation, time-boxed | Question, What to Explore, Success Criteria, Time-box |
| <strong>Nit-Bundle</strong> | <code>template-issue-nit-bundle</code> | QA nits from an approved PR, bundled for triage | Source, Original Work, Nits, Segmentation Notes |
If no
### Type header is present, validation defaults to Feature (backward compatible).Type Decision Tree
- Is something broken that used to work? → Bug
- Do we know what to build/change? → Feature
- Do we need to investigate before scoping? → Spike
- Is this housekeeping, docs, or config with no code file targets? → Task
- Are these QA nits from an approved PR? → Nit-Bundle
Lifecycle
| Stage | State | Where it lives |
|---|---|---|
| 1. Discovery | Work identified during session (bug, improvement, feature, task) | Verbal or noted in session context |
| 2. Decision gate | Betty Sue types the work (Bug/Feature/Spike/Task) and creates a Forgejo issue. | Betty Sue decides |
| 3. Board entry | Typed Forgejo issue created. Added to project board at <code>backlog</code> or <code>todo</code>. | Forgejo + project board |
| 4. Review gate | Item sits in <code>todo</code> column. Lucas reviews scope, acceptance criteria, technical approach. | Project board |
| 5. Dispatch | Lucas approves → item moves to <code>next_up</code>. Agent spawned (Feature/Bug) or investigation begins (Spike). | Project board + Forgejo |
Rules
- No
todo-*orbug-*notes. Work items are plan phases or typed Forgejo issues. Thecheck-note-template.shhook blocks creation of notes withtodoorbugnote_type. Existing legacy notes should be migrated over time. - Three types, same destination. Bugs, features, and spikes all flow through the same board. The type determines the template (validation) and the expected output (code vs knowledge).
- Two paths, same board. Foundational/architectural work (new capabilities, cross-repo, changes architecture diagrams) → phase in the plan. Tactical work (improvements, bugs, features on mature projects) → Forgejo issue on the board. The decision gate: would this change an architecture diagram? If yes → phase. If no → issue.
- The todo column is a review gate. Items in
todoare scoped and awaiting Lucas's review. This creates peer review on planning, mirroring PR review on code. Only after review do items advance tonext_up. - Once in the plan, it's a phase. Work items in the plan are phases or subphases, never TODOs. If it has a scope, a goal, and a place in the sequence — it's a phase.
- Forgejo issues auto-sync to boards. Open issues from linked repos appear on the board via
sync-issues. No manual board item creation needed for synced repos.
Triage Checklist
- Is this architectural (changes a diagram)? → Create a plan phase or subphase.
- Is something broken? → Create a Bug Forgejo issue.
- Is scope unclear, needs investigation? → Create a Spike Forgejo issue.
- Is this a new feature or enhancement? → Create a Feature Forgejo issue.
- Are these QA nits from an approved PR? → Create a Nit-Bundle Forgejo issue (one per PR, bundled).
- Is it small enough to absorb into an existing phase's scope? → Add it to that phase's scope section.
- Is it no longer relevant? → Close the Forgejo issue as won't-fix, or skip creating one.
Query Pattern
Items in
backlog are the intake queue. Items in todo are scoped and awaiting Lucas's review. The board is the single view of all work status.Related
template-issue-feature— Feature issue templatetemplate-issue-bug— Bug issue templatetemplate-issue-spike— Spike issue templatetemplate-issue— canonical issue-as-spec design principletemplate-project-page— Inbox section surfaces untriaged itemsconvention-subphase— how subphases work under phases