-
Notifications
You must be signed in to change notification settings - Fork 0
chore: update the agent harness to copier template v0.6.0 #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| --- | ||
| name: architect-playbook | ||
| description: | | ||
| How the Architect turns an approved spec into a plan. Use when writing | ||
| or revising plan.md, choosing a design, weighing alternatives, or when | ||
| a spec assumption needs a prototype/spike before committing. Method: | ||
| design it twice, spike the risky assumptions, make phase 1 a tracer | ||
| bullet, specify deep modules with an error strategy. Companion to the | ||
| architect subagent and the /plan command. | ||
| --- | ||
|
|
||
| # Architect playbook | ||
|
|
||
| The plan is written for an executor with less context than you: fresh | ||
| session, weaker model, no access to this conversation. It must carry not | ||
| just the design but the *whys* — rationale that isn't recorded will be | ||
| re-argued or silently violated later (Brooks). | ||
|
|
||
| Shared ground rules: `.agents/skills/design-principles/SKILL.md`. | ||
|
|
||
| ## Method | ||
|
|
||
| 1. **Study exemplars first.** Grep for precedents — modules, idioms, | ||
| prior features of the same shape — and match them unless you record a | ||
| reason not to. Originality is no excuse for ignorance (Brooks); | ||
| consistency is leverage (PoSD). | ||
| 2. **Design it twice.** Sketch at least two genuinely different | ||
| decompositions before choosing. Compare on: interface simplicity for | ||
| callers, information hiding, blast radius of likely changes, | ||
| cognitive load — and on the budgeted resource the spec's | ||
| **Constraints** section names, which is the axis the trade-off is | ||
| actually being made against. Record the loser and why it lost in the | ||
| plan's Architecture decisions block — a decision with no recorded | ||
| alternative is a habit, not a decision (PoSD). | ||
| 3. **Spike before you commit.** List the spec's and design's assumptions | ||
| and rank by (impact if wrong × uncertainty). For risky-but-cheap | ||
| ones, request a spike: a disposable experiment answering ONE question | ||
| (does the API paginate? is the parser fast enough?). You cannot run | ||
| code yourself — hand back to the main agent using the protocol in the | ||
| architect subagent's Handoff section, and fold the returned findings | ||
| into the plan. Spike code is never promoted: the value is the lesson, | ||
| not the code (PP: prototype to learn). | ||
| 4. **Phase 1 is a tracer bullet.** When the feature spans layers, make | ||
| the first phase the thinnest end-to-end slice through the real | ||
| architecture, kept for keeps — then every later phase mutates a | ||
| complete, working system instead of assembling parts that have never | ||
| met (PP; Brooks: progressive truthfulness). | ||
| 5. **Specify deep modules.** For each new or reshaped module: purpose, | ||
| interface sketch, the *secrets* it hides, and what it must not | ||
| expose. Minimal implementation, slightly general interface. Reject | ||
| your own design if an interface is nearly as complex as what it | ||
| hides (PoSD). | ||
| 6. **Design the error strategy, don't inherit it.** Per boundary: which | ||
| failure cases are defined out of existence by API shape, what | ||
| crashes early, what is handled — and where. "Wrap it in try/catch" | ||
| is not a strategy (PoSD; PP). | ||
| 7. **Name in the ubiquitous language.** Take names from | ||
| `development/glossary.md` and the spec's Glossary section; if the | ||
| design needs a concept the glossary lacks, that's a finding for the | ||
| spec, not a private invention (DDD). | ||
| 8. **Tests are part of the design.** Phase tests state *which contract* | ||
| and *which states* they prove — if a phase is hard to test, change | ||
| the design, not the test's honesty (PP). | ||
| 9. **Flag the irreversible.** Storage formats, public APIs, wire | ||
| protocols, dependencies: mark each hard-to-reverse choice, prefer | ||
| the reversible variant when nearly equal, and surface the rest for | ||
| explicit confirmation (or an ADR — check the bar in | ||
| `development/adr/README.md`). | ||
|
|
||
| ## Gotchas | ||
|
|
||
| - Spike findings that contradict the spec go back to the Product Owner | ||
| as spec feedback — don't quietly plan around a broken assumption. | ||
| - Smallest-design pressure applies to implementation scope, not to | ||
| skipping the second design sketch; the comparison is cheap and it is | ||
| where most design errors die. | ||
| - Don't spread one concern across phases so each phase looks small; | ||
| phases slice by abstraction delivered, not by file count. | ||
| - The Invariants block exists because plans outlive conversations — | ||
| restate the non-negotiables even when they feel obvious to you now. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[PLAUSIBLE] correctness — ⏭️ Not fixed here
/buildforwards only the developer subagent's "phase complete" hand-back; the developer's other documented stop (a scratch.md note requesting anexplorerpass, developer.md:80) has no servicing step, unlike/plan's explicit SPIKE-REQUEST round-trip.Failure scenario
The developer hits a search it cannot summarise inline, follows developer.md:78-81, writes "requesting an explorer pass" into scratch.md and stops mid-phase with tasks.md boxes unticked. build.md step 5 has exactly one branch — "When the developer reports a phase complete, stop and ask the user to run /verify" — so the parent reports the stop as a completed phase and routes the user to
/verify. The reviewer then reviews half-implemented work and returns NEEDS-WORK (unticked tasks, missing tests),/buildre-delegates to a fresh developer that hits the same wall, and the explorer request is never serviced: the phase ping-pongs between /build and /verify with no progress until the user reads scratch.md by hand.Left for upstream: this is a gap in the template's role protocol rather than something this migration introduced, and fixing it here would deepen the divergence that every future
copier updatehas to re-merge.