Skip to content

feat(plan): Plan-as-pointer brief variant for host planning artifacts - #71

Merged
eduralph merged 1 commit into
mainfrom
feat/67-plan-pointer
Jun 20, 2026
Merged

feat(plan): Plan-as-pointer brief variant for host planning artifacts#71
eduralph merged 1 commit into
mainfrom
feat/67-plan-pointer

Conversation

@eduralph

Copy link
Copy Markdown
Owner

Summary

Part of #67 (project-neutrality epic) — requirement #4: make the Plan artifact a pointer, not a prescribed shape. Does not close #67.

Hosts may plan through their own artifacts with distinct change processes (ADRs, enhancement proposals, normative specs under change control). PDCA's Plan step should accept a reference to the host's existing planning artifact as the Plan, rather than imposing its own document format.

Changes

  • templates/plan-pointer.md.tpl (new): a thin brief carrying a - **Planning artifact:** <path|url> pointer plus only the fields the driver parses (slug, success criterion, repo + branch target, test file, disposition). It uses the same parsed-field contract as brief.md, so the state machine treats it as a normal PLANNED brief — no engine change.
  • brief.planning_artifact() reader; the planner prompt offers the pointer template as a third option (alongside brief.md.tpl / design-proposal.md.tpl), and the Do builder prompt reads the referenced artifact as the authoritative plan and cites it.
  • Docs: docs/03-plan.md gains a "The Plan can be a pointer" subsection.

Verification

  • Offline suite green: 133 tests OK — new PlanPointerBrief class covers the parsed-field contract, the planning_artifact reader (pointer present vs. a plain brief → ""), and a pointer-brief flowing Do→Check→sign-off offline.

🤖 Generated with Claude Code

…#67)

Hosts may plan through their OWN artifacts with distinct change processes (ADRs,
enhancement proposals, normative specs). PDCA's Plan step should accept a
reference to the host's existing planning artifact rather than impose its own
document shape (#67 requirement 4).

- New templates/plan-pointer.md.tpl: a thin brief carrying a `Planning artifact:`
  pointer plus the minimal driver-parsed fields (slug, success criterion, repo +
  branch target, test file, disposition). Same parsed-field contract as a normal
  brief, so the state machine treats it as PLANNED with no engine change.
- brief.planning_artifact() reader; the planner prompt offers the pointer
  template as a third option (alongside brief / design-proposal), and the Do
  builder prompt reads the referenced artifact as the authoritative plan and
  cites it.
- docs/03-plan.md: "The Plan can be a pointer".

Tests: new PlanPointerBrief class (parsed-field contract, planning_artifact
reader, pointer-brief flows Do->Check->sign-off offline). Suite green (133).

Part of #67 (does not close it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Eduard Ralph <15236434+eduralph@users.noreply.github.com>
@eduralph
eduralph merged commit aa0a57b into main Jun 20, 2026
2 checks passed
@eduralph
eduralph deleted the feat/67-plan-pointer branch June 20, 2026 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make the harness project-neutral enough to wrap an opinionated host (Apache-2.0, delegated gates, no-Obsidian)

1 participant