Files
msd-core/get-shit-done/references/planner-source-audit.md
Tom Boucher f425bf9142 enhancement(planner): replace time-based reasoning with context-cost sizing and add multi-source coverage audit (#2091) (#2092) (#2114)
Replace minutes-based task sizing with context-window percentage sizing.
Add planner_authority_limits section prohibiting difficulty-based scope
decisions. Expand decision coverage matrix to multi-source audit covering
GOAL, REQ, RESEARCH, and CONTEXT artifacts. Add Source Audit gap handling
to plan-phase orchestrator (step 9c). Update plan-checker to detect
time/complexity language in scope reduction scans. Add 374 CI regression
tests preventing prohibited language from leaking back into artifacts.

Closes #2091
Closes #2092

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 10:26:27 -04:00

3.3 KiB

Planner Source Audit & Authority Limits

Reference for agents/gsd-planner.md — extended rules for multi-source coverage audits and planner authority constraints.

Multi-Source Coverage Audit Format

Before finalizing plans, produce a source audit covering ALL four artifact types:

SOURCE    | ID      | Feature/Requirement          | Plan  | Status    | Notes
--------- | ------- | ---------------------------- | ----- | --------- | ------
GOAL      | —       | {phase goal from ROADMAP.md}  | 01-03 | COVERED   |
REQ       | REQ-14  | OAuth login with Google + GH | 02    | COVERED   |
REQ       | REQ-22  | Email verification flow      | 03    | COVERED   |
RESEARCH  | —       | Rate limiting on auth routes | 01    | COVERED   |
RESEARCH  | —       | Refresh token rotation       | NONE  | ⚠ MISSING | No plan covers this
CONTEXT   | D-01    | Use jose library for JWT     | 02    | COVERED   |
CONTEXT   | D-04    | 15min access / 7day refresh  | 02    | COVERED   |

Four Source Types

  1. GOAL — The goal: field from ROADMAP.md for this phase. The primary success condition.
  2. REQ — Every REQ-ID in phase_req_ids. Cross-reference REQUIREMENTS.md for descriptions.
  3. RESEARCH — Technical approaches, discovered constraints, and features identified in RESEARCH.md. Exclude items explicitly marked "out of scope" or "future work" by the researcher.
  4. CONTEXT — Every D-XX decision from CONTEXT.md <decisions> section.

What is NOT a Gap

Do not flag these as MISSING:

  • Items in ## Deferred Ideas in CONTEXT.md — developer chose to defer these
  • Items scoped to a different phase via phase_req_ids — not assigned to this phase
  • Items in RESEARCH.md explicitly marked "out of scope" or "future work" by the researcher

Handling MISSING Items

If ANY row is ⚠ MISSING, do NOT finalize the plan set silently. Return to the orchestrator:

## ⚠ Source Audit: Unplanned Items Found

The following items from source artifacts have no corresponding plan:

1. **{SOURCE}: {item description}** (from {artifact file}, section "{section}")
   - {why this was identified as required}

   Options:
   A) Add a plan to cover this item
   B) Split phase: move to a sub-phase
   C) Defer explicitly: add to backlog with developer confirmation

   → Awaiting developer decision before finalizing plan set.

If ALL rows are COVERED → return ## PLANNING COMPLETE as normal.


Authority Limits — Constraint Examples

The planner's only legitimate reasons to split or flag a feature are constraints, not judgments about difficulty:

Valid (constraints):

  • ✓ "This task touches 9 files and would consume ~45% context — split into two tasks"
  • ✓ "No API key or endpoint is defined in any source artifact — need developer input"
  • ✓ "This feature depends on the auth system built in Phase 03, which is not yet complete"

Invalid (difficulty judgments):

  • ✗ "This is complex and would be difficult to implement correctly"
  • ✗ "Integrating with an external service could take a long time"
  • ✗ "This is a challenging feature that might be better left to a future phase"

If a feature has none of the three legitimate constraints (context cost, missing information, dependency conflict), it gets planned. Period.