Skip to content

Deliver: Program Design Section - #84

Merged
seanrreid merged 6 commits into
mainfrom
rad/program-design-section
Aug 6, 2026
Merged

Deliver: Program Design Section#84
seanrreid merged 6 commits into
mainfrom
rad/program-design-section

Conversation

@seanrreid

Copy link
Copy Markdown
Owner

Closes #79.

Summary

Adds an optional ## Program Design section to the plan template plus an advisory lint nudge when a large plan omits it — surfacing the design layer (signatures, control flow, file-tree delta) most worth reviewing at Gate 1, without ever blocking. Upstreamed from Dex Horthy's Why Software Factories Fail (the "criminally underemphasized" Program Design phase; WSFF arc lead, memory wsff-source-author-update).

  • .claude/commands/team/rad-plan.md — optional ## Program Design section in the template (after Files in Scope), naming its three artifacts + a recommended-large/medium, skippable-small note. — f200400
  • scripts/lint-plan.sh — advisory WARNING (exit code unaffected) when a plan is large (WAVE_COUNT >= 3 OR any scope path matches RAD_HIGH_RISK_PATTERNS) and lacks the section. Reuses has_section, WAVE_COUNT, and the existing high-risk path_matches loop — no new matcher, REQUIRED_SECTIONS untouched. — 3cc6192

Design decisions

  • Advisory, never mandatory — omission is a warning, never an error; deliberately kept out of REQUIRED_SECTIONS.
  • Presence check only — the linter greps the ## Program Design header; it does not validate the section's contents (that stays the architect's Gate-1 judgment; documented as a non-goal).
  • "Large" = ≥3 waves OR a high-risk path — small plans (1–2 waves, no high-risk path) stay silent, matching the recommended/skippable guidance in the template.

Test coverage

5 new cases in scripts/test-lint-plan.sh (full suite ALL PASS, exit 0; 216/216 harness green, no regression from the backward-compatible write_plan signature extension):

  • large-via-high-risk-path + no section → advisory present, exit unchanged
  • large-via-3-waves + no section → advisory present
  • small (1 wave, non-high-risk) + no section → silent
  • large + section present → silent
  • boundary: exactly 2 waves → silent

Notes for review

🤖 Generated with Claude Code

Author: architect
Waves: 1
Tasks: 2
Out-of-scope deps: no
Plan:  .agents/plans/program-design-section.md
(Status + approved event written by: node harness/cli.js approve)
Wave 1, Task 1.1
Validated: AC#2, AC#3, AC#4, AC#5 — bash scripts/test-lint-plan.sh (ALL PASS)
…emplate

Wave 1, Task 1.2
Validated: AC#1 — section present with three artifacts + recommended/skippable note (no standalone test; header recognizability covered by Task 1.1)
@seanrreid seanrreid added the rad:deliver RAD delivery PR label Jul 24, 2026
@seanrreid
seanrreid merged commit f7816ee into main Aug 6, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rad:deliver RAD delivery PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Program Design section in the plan template + advisory lint (WSFF's 'criminally underemphasized' phase)

1 participant