allye-pi 1.8.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +75 -271
  2. package/bootstrap/allye.md +30 -0
  3. package/docs/install-omp.md +31 -0
  4. package/docs/install-pi.md +21 -125
  5. package/package.json +10 -5
  6. package/packages/allye-pi/src/index.ts +88 -782
  7. package/skills/bridge/SKILL.md +105 -0
  8. package/skills/bridge/references/crew.md +20 -0
  9. package/skills/bridge/references/delegation.md +174 -0
  10. package/skills/bridge/references/discovery.md +71 -0
  11. package/skills/bridge/references/publish.md +90 -0
  12. package/skills/bridge/references/state-contract.md +109 -0
  13. package/skills/bridge/references/workflow.md +132 -0
  14. package/skills/bridge-architect/SKILL.md +96 -0
  15. package/skills/bridge-architect/references/spec-template.md +90 -0
  16. package/skills/bridge-armorer/SKILL.md +103 -0
  17. package/skills/bridge-copilot/SKILL.md +74 -0
  18. package/skills/bridge-dispatcher/SKILL.md +96 -0
  19. package/skills/bridge-dispatcher/references/spec-template-minimal.md +53 -0
  20. package/skills/bridge-medic/SKILL.md +81 -0
  21. package/skills/bridge-optimizer/SKILL.md +68 -0
  22. package/skills/bridge-pilot/SKILL.md +69 -0
  23. package/skills/bridge-pilot/references/mocking.md +57 -0
  24. package/skills/bridge-pilot/references/tdd.md +42 -0
  25. package/skills/bridge-pilot/references/tests.md +60 -0
  26. package/skills/bridge-recon/SKILL.md +82 -0
  27. package/skills/bridge-shield/SKILL.md +73 -0
  28. package/skills/bridge-strategist/SKILL.md +92 -0
  29. package/skills/bridge-watcher/SKILL.md +73 -0
  30. package/skills/agent-runtime/SKILL.md +0 -129
  31. package/skills/agent-runtime/references/herdr.md +0 -184
  32. package/skills/board-progression/SKILL.md +0 -214
  33. package/skills/branch-landing/SKILL.md +0 -88
  34. package/skills/delivery/SKILL.md +0 -187
  35. package/skills/execution/SKILL.md +0 -396
  36. package/skills/handover-protocol/SKILL.md +0 -74
  37. package/skills/handover-protocol/references/correction.md +0 -32
  38. package/skills/handover-protocol/references/discovery-to-planning.md +0 -44
  39. package/skills/handover-protocol/references/execution-report.md +0 -42
  40. package/skills/handover-protocol/references/planning-to-technical.md +0 -42
  41. package/skills/handover-protocol/references/story-execution.md +0 -74
  42. package/skills/handover-protocol/references/technical-to-orchestration.md +0 -45
  43. package/skills/memory-protocol/SKILL.md +0 -319
  44. package/skills/orchestrator/SKILL.md +0 -249
  45. package/skills/product-planning/SKILL.md +0 -257
  46. package/skills/review/SKILL.md +0 -165
  47. package/skills/sandbox/SKILL.md +0 -62
  48. package/skills/setup/SKILL.md +0 -226
  49. package/skills/tdd-workflow/SKILL.md +0 -144
  50. package/skills/technical-planning/SKILL.md +0 -354
  51. package/skills/tools-quickref/SKILL.md +0 -307
  52. package/skills/using-allye/SKILL.md +0 -171
  53. package/skills/verification-loop/SKILL.md +0 -93
@@ -1,396 +0,0 @@
1
- ---
2
- name: execution
3
- description: Workflow for implementing tasks with TDD discipline, read-first rule, and wave execution. Use when the user wants to write code, implement a task, or develop features.
4
- version: "1.5"
5
- category: methodology
6
- ---
7
-
8
- # Technical Development Workflow
9
-
10
- Implements a scoped change with discipline: read the existing code first, drive it with TDD when applicable,
11
- verify it actually works, and use Allye task tracking when a task exists or the user approves creating one. A small or explicitly approved no-task change still follows the same read, test, and verification discipline.
12
-
13
- **Scope, if you arrived via a `story-execution` or `correction` handover (see `handover-protocol`):** read only the one story and its tasks named in the handover — nothing else. A `correction` handover carries only the failed findings, not the whole story again; fix exactly what it lists.
14
-
15
- ---
16
-
17
- ## Workflow Overview
18
-
19
- ```
20
- Get task → Search context → Move to in_progress → Read code → TDD (Red → Green → Refactor) → Verify → Move to review → Save memory
21
- ```
22
-
23
- ---
24
-
25
- ## Step 1: Get the Task and Context
26
-
27
- If a task or handover exists, fetch it and treat its acceptance criteria and locked decisions as authoritative. If no task exists, confirm that the user approved the no-task path, define the scope and verification command locally, and continue without inventing a work item.
28
-
29
- Fetch the task you're about to implement:
30
-
31
- ```
32
- work_get(work_key: "{TASK-KEY}")
33
- ```
34
-
35
- Read its description carefully — it should contain:
36
- - What to implement
37
- - Acceptance criteria
38
- - Files likely involved
39
- - Dependencies on other tasks
40
- - Decisions from the discussion phase
41
-
42
- ### Search for relevant memories
43
-
44
- ```
45
- memory_search(query: "{task key} context")
46
- memory_search(query: "decision {story key}")
47
- memory_search(query: "Technical Plan {story key}")
48
- ```
49
-
50
- If session state or decision memories are found, optionally traverse the graph for richer context:
51
- ```
52
- memory_graph(memory_id: "{id}", depth: 2)
53
- ```
54
-
55
- **Pay special attention to locked decisions** — these were explicitly chosen by the user during the discussion phase and are non-negotiable.
56
-
57
- ---
58
-
59
- ## Step 2: Check Dependencies
60
-
61
- If the task has dependencies (noted in its description), verify they're complete:
62
-
63
- ```
64
- work_children(id: "{story uuid}")
65
- ```
66
-
67
- Check that prerequisite tasks are in "review" or "done" status — either means their implementation is complete (tasks you finished earlier in this story sit at `review` until the Reviewer approves them). If a prerequisite hasn't reached at least `review`, either:
68
- - Pick a different task from the same wave (if available)
69
- - Inform the user that this task is blocked
70
-
71
- ### Wave Execution
72
-
73
- If there are multiple independent tasks (same wave), they can be done in any order. Tasks with dependencies must follow the sequence defined in the technical plan.
74
-
75
- ---
76
-
77
- ## Step 3: Move Task to In Progress
78
-
79
- If a task exists, signal that work has started. If no task exists, record the local scope in the implementation plan and do not make a status call.
80
-
81
- Signal that work has started:
82
-
83
- ```
84
- work_status_next(id: "{task uuid}")
85
- ```
86
-
87
- ---
88
-
89
- ## Step 4: Read First
90
-
91
- <EXTREMELY_IMPORTANT>
92
- Read existing code BEFORE writing any new code.
93
- The task description lists files likely involved — read them all.
94
- Understand the current state before changing it.
95
-
96
- This is not optional. Writing code without reading the context leads to:
97
- - Duplicating existing functionality
98
- - Breaking existing patterns
99
- - Inconsistent code style
100
- - Missed constraints
101
- </EXTREMELY_IMPORTANT>
102
-
103
- ### What to read
104
-
105
- 1. **Files listed in the task description** — The planning phase identified these
106
- 2. **Related test files** — Understand existing test patterns
107
- 3. **Shared utilities and helpers** — Don't reinvent what already exists
108
- 4. **Configuration files** — If the task involves config changes
109
-
110
- ### Analysis Paralysis Guard
111
-
112
- <HARD-GATE>
113
- This checkpoint applies to exploratory reads beyond what the task already named — reading every file the task itself points you to (see "What to read" above) is still mandatory, not capped by this count.
114
-
115
- If you have read 5+ files *beyond those named/implied by the task* without writing any code, STOP and ask yourself:
116
-
117
- 1. **Do I have enough context to start?** → If yes, start writing. Perfect understanding is not required.
118
- 2. **Am I blocked by missing information?** → If yes, tell the user what's blocking you.
119
-
120
- Do not read endlessly in search of additional context. Reading is preparation, not implementation.
121
- </HARD-GATE>
122
-
123
- ---
124
-
125
- ## Step 4.5: Plan the Implementation
126
-
127
- You have read the code and written none. This is where you state *how* you will build it,
128
- and check that statement against what was asked for — while being wrong still costs a
129
- paragraph rather than a branch.
130
-
131
- ### Write the plan
132
-
133
- Per task in this story:
134
-
135
- - **Approach** — the shape of the change, in a sentence or two.
136
- - **Files** — what you will create or modify. Names, never line numbers; the tree moves.
137
- - **Interfaces produced** — the names, types, and signatures other tasks in this story will
138
- call. Whoever implements a neighbouring task sees only their own task description, so
139
- this is the only place they learn what to call.
140
- - **How each criterion goes green** — for every acceptance criterion, which step makes its
141
- `## Verification` command pass. A criterion with no step against it is the finding this
142
- whole exercise exists to produce.
143
-
144
- Save it:
145
-
146
- ```
147
- memory_save(
148
- title: "Implementation Plan — {STORY-KEY} {story title}",
149
- content: "## Per task\n{approach, files, interfaces produced, criterion → step}\n\n## Order\n{which task first, and why}\n\n## Open questions\n{anything planning did not settle, or 'None'}",
150
- tags: ["plan", "implementation", "{story-key}"],
151
- sector: "plans"
152
- )
153
- ```
154
-
155
- It outlives the session. A resumed Executor reads what was intended rather than inferring
156
- it from half-written code, and `reviewer-spec` can compare the implementation against the
157
- plan and not only against the criteria.
158
-
159
- ### Validate it
160
-
161
- <HARD-GATE>
162
- Three checks, run every time, before writing any code:
163
-
164
- 1. **Coverage** — every acceptance criterion, in every task, has a step that produces it.
165
- 2. **Decisions** — every locked decision from planning is respected. A locked decision was
166
- chosen by the human. A plan that quietly departs from one is a defect whether or not the
167
- resulting code works.
168
- 3. **Closure** — no step depends on something the plan never defines. If a type, function,
169
- file, or value appears as a dependency and never as an output, the plan has a hole in it.
170
-
171
- A failure is reported as `❌ blocked` **before any code exists**, naming which criterion or
172
- decision has nothing behind it. This is the same halt-and-report contract you already carry,
173
- fired at the cheapest possible moment.
174
- </HARD-GATE>
175
-
176
- ### Whether the approach is right
177
-
178
- The three checks above are mechanical. Whether the approach is a *good* one is judgement,
179
- and who supplies it follows the story's dispatch label (see `verification-loop` §4):
180
-
181
- - **AFK** — self-validation is enough. Run the three checks and proceed.
182
- - **HITL** — put the plan in front of the user and wait before writing anything.
183
- - **Either label**, if planning surfaced a decision the discussion phase never covered —
184
- stop and raise it regardless. A decision discovered while planning is precisely the case
185
- the label could not have anticipated.
186
-
187
- ---
188
-
189
- ## Step 5: TDD — Test-Driven Development
190
-
191
- <!-- full discipline lives in the tdd-workflow skill, aligned with superpowers:test-driven-development (MIT) -->
192
-
193
- ### Should I use TDD for this task?
194
-
195
- Apply the **TDD Detection Heuristic**:
196
-
197
- > Can I write `expect(fn(input)).toBe(output)` before writing `fn`?
198
-
199
- - **Yes** → TDD is mandatory. Follow Red → Green → Refactor.
200
- - **No** (UI, infrastructure, integration, configuration) → Write tests after implementation, but always write tests.
201
-
202
- ### Red Phase — Write the Failing Test
203
-
204
- Write a test that describes the expected behavior:
205
-
206
- ```
207
- // Test describes WHAT, not HOW
208
- test("should return user by email", () => {
209
- const user = getUserByEmail("test@example.com");
210
- expect(user.name).toBe("Test User");
211
- });
212
- ```
213
-
214
- Run the test. Confirm it **fails**. If it passes, either:
215
- - The functionality already exists (check before implementing)
216
- - The test is wrong (it's not testing what you think)
217
-
218
- ### Green Phase — Make It Pass
219
-
220
- Write the **minimum code** to make the test pass. No more, no less.
221
-
222
- Rules:
223
- - Don't add features the test doesn't require
224
- - Don't optimize prematurely
225
- - Don't handle edge cases not covered by tests (write more tests first)
226
-
227
- Run the test. Confirm it **passes**.
228
-
229
- ### Refactor Phase — Clean Up
230
-
231
- With green tests as your safety net, improve the code:
232
-
233
- - Remove duplication
234
- - Improve naming
235
- - Simplify logic
236
- - Extract functions if needed
237
-
238
- Run tests after every change. If a test fails, you broke something — fix it before continuing.
239
-
240
- ### Verification Phase — run the task's loop
241
-
242
- TDD proved each behaviour as you built it. This proves the **task's acceptance
243
- criteria**, which is a different claim.
244
-
245
- Run the command from the task's `## Verification` block. Read its actual output.
246
- If it is red, fix and run it again, under the bound in `verification-loop` §3:
247
- three attempts on one failure, or two byte-identical outputs, whichever comes
248
- first. On hitting the bound, stop and carry the command and its literal output
249
- into your report — do not summarise the output.
250
-
251
- If the task declares `verification: manual`, follow its procedure and record what
252
- you observed. You have not run a loop; say so plainly in the report rather than
253
- implying one passed.
254
-
255
- ### Repeat
256
-
257
- Write the next test for the next behavior. Continue the cycle until all acceptance criteria are met.
258
-
259
- ---
260
-
261
- ## Step 6: Checkpoints
262
-
263
- ### `human-verify` Checkpoint
264
-
265
- After completing the task, if it has **visual or behavioral impact** that the user should see:
266
-
267
- > "I've completed {task description}. Here's what changed:
268
- > - {change 1}
269
- > - {change 2}
270
- >
271
- > Would you like to verify this before I move on?"
272
-
273
- ### `decision` Checkpoint
274
-
275
- **If uncertain which path to take, STOP and ask — never proceed on assumption.** If during implementation you encounter a choice not covered by the discussion phase:
276
-
277
- > "I found a decision point not covered in planning:
278
- > {describe the options}
279
- >
280
- > Which approach do you prefer?"
281
-
282
- Save the decision as a memory once resolved.
283
-
284
- ### Automation-First Rule
285
-
286
- <HARD-GATE>
287
- If you CAN automate something, you MUST automate it.
288
- Only ask for human intervention when it's genuinely impossible to proceed without it.
289
-
290
- Examples of things to automate (don't ask):
291
- - Running tests
292
- - Formatting code
293
- - Installing dependencies
294
- - Creating files and directories
295
- - Applying migrations
296
-
297
- Examples of things that need human action:
298
- - Approving a deployment to production
299
- - Providing API keys or credentials
300
- - Verifying visual design matches expectations
301
- - Confirming business logic interpretation
302
- </HARD-GATE>
303
-
304
- ---
305
-
306
- ## Step 7: Move Task to Review
307
-
308
- For a tracked task, advance it to review only after the verification evidence is green. For an approved no-task change, report the same evidence directly and do not create or advance a status.
309
-
310
- <!-- adapted from superpowers:verification-before-completion (MIT) — evidence before assertions -->
311
- **Evidence before assertions.** Don't advance a task because it looks right — run the tests, read the actual output, and confirm each acceptance criterion against that output before proceeding. "Should work" is not the same as "ran and passed."
312
-
313
- The task's verification command is what supplies that evidence. Advancing a task to
314
- `review` without having run it green — or without having recorded a `verification:
315
- manual` observation — is the assertion this rule exists to forbid.
316
-
317
- Once all acceptance criteria are verifiably met and tests pass for a tracked task:
318
-
319
- ```
320
- work_status_next(id: "{task uuid}")
321
- ```
322
-
323
- This advances the task forward to the "review" status. **Do NOT call `work_status_done` here** — passing its own tests makes a task ready for review, not done. For a no-task change, completion means the agreed scope and verification are reported; no status transition is implied.
324
-
325
- ---
326
-
327
- ## Step 8: Save Implementation Memory
328
-
329
- Save context that would be useful for future tasks or sessions:
330
-
331
- ```
332
- memory_save(
333
- title: "Implementation — {TASK-KEY} {short description}",
334
- content: "## What was done\n{summary of changes}\n\n## Key decisions during implementation\n{any new decisions made}\n\n## Files changed\n- {file 1}\n- {file 2}\n\n## Gotchas\n{anything surprising or non-obvious encountered}\n\n## Tests\n{what was tested, any notable test patterns}",
335
- tags: ["development", "implementation", "{story-key}", "{task-key}"],
336
- sector: "knowledge"
337
- )
338
- ```
339
-
340
- Only save if there's genuinely useful context. Don't save trivial implementations — the code is its own documentation.
341
-
342
- ---
343
-
344
- ## Step 9: Pick Next Task
345
-
346
- After completing a task, pick the next one from the **handover's own wave-ordered task list** — not from a live API call. The `story-execution` handover already contains every task across every wave for the whole story, so it's the authoritative scope; going back to the API for *new* tasks would risk pulling in tasks added to the story after the handover was dispatched, which are out of scope (see line ~14).
347
-
348
- - If there are more tasks in the current wave (per the handover's list) → pick one
349
- - If the current wave is done → move to the next wave (per the handover's list)
350
- - If every task in the story has reached `review` (implementation complete, awaiting Reviewer) → **run the story loop, then** emit an **`execution-report`** handover (see the `handover-protocol` skill) back to the Orchestrator.
351
-
352
- The story loop runs the story's own acceptance criteria end to end, under the same
353
- bound as the task loop. Every task green does not mean the story works — nothing
354
- else checks this, which is exactly why it runs here.
355
-
356
- A red story loop is reported as red **even when every task is green**. That
357
- combination is a finding, not a contradiction to resolve: it usually means the task
358
- breakdown missed an integration, and the Orchestrator needs to see it rather than
359
- receive a clean report.
360
-
361
- Use `work_children(id: "{story uuid}")` only to **verify/check the status** of tasks already in the handover's list (e.g. confirming a dependency reached `review`) — never to discover new tasks to work on. If `work_children` reveals a task under this story that is **not** in the handover's task list, do not execute it — it wasn't in scope when the handover was dispatched. Instead, note it as an open question ("Open questions") in the `execution-report` handover so the Orchestrator can decide whether to bring it into scope.
362
-
363
- ---
364
-
365
- ## Workflow Checklist
366
-
367
- For each task, verify:
368
-
369
- - [ ] Task was read and understood (description, acceptance criteria, dependencies)
370
- - [ ] Relevant memories and decisions were searched
371
- - [ ] Dependencies are complete
372
- - [ ] Task moved to in_progress
373
- - [ ] Existing code was read before writing new code
374
- - [ ] An implementation plan was written and saved to the `plans` sector before any code
375
- - [ ] Coverage, decisions, and closure all checked against that plan
376
- - [ ] TDD cycle completed (or tests written after for non-TDD-suitable tasks)
377
- - [ ] All acceptance criteria are met
378
- - [ ] Tests pass
379
- - [ ] The task's verification command ran green, or its manual procedure was observed and recorded
380
- - [ ] The story loop ran green before the report was emitted
381
- - [ ] Task moved to review (never directly to done — that's the Orchestrator's move after Reviewer ✅)
382
- - [ ] Implementation memory saved (if non-trivial)
383
-
384
- ---
385
-
386
- ## What Comes Next
387
-
388
- Emit the `execution-report` handover: files changed, tests added, status per acceptance criterion (not a blanket "done"), any new decisions made along the way, and any open questions. The Orchestrator decides from there whether to dispatch Reviewer or, if this is a `correction` round, loop back with more specific findings.
389
-
390
- **If you are working in a git worktree**, the Orchestrator that dispatched you owns landing
391
- the branch — do not merge, do not remove the worktree, do not close your own pane. Name the
392
- branch in your `execution-report` so it knows what to land.
393
-
394
- **If you are working directly in the main checkout** and no Orchestrator is coordinating, the
395
- branch is yours to finish: load the `branch-landing` skill once the story's tasks are through
396
- review.
@@ -1,74 +0,0 @@
1
- ---
2
- name: handover-protocol
3
- description: The shared contract for handing off context between Allye workflow phases as copy-pasted chat text. Use when a phase skill is ending and needs to brief a fresh chat for the next phase (Planning, Technical Planning, Orchestrator, Executor), or when a fresh chat opens with a pasted handover and needs to detect which skill to load.
4
- version: "1.3"
5
- category: methodology
6
- ---
7
-
8
- # Handover Protocol
9
-
10
- A handover is one optional way context moves between Allye playbooks without carrying a chat's full history forward. Use it for meaningful, multi-step, delegated, or cross-session work where a durable briefing adds value. For short local work, stay in the current session rather than manufacturing phase boundaries. When a handover is used, the user reads, approves, and pastes the block as the first message of the next chat; the bootstrap detects the marker and loads the right skill automatically.
11
-
12
- **A handover is never saved as a memory or a file.** The Allye doc and work items it references are the durable record — the handover text itself is a disposable transport vehicle, copied by hand in both directions (including Orchestrator ↔ Executor's correction loop).
13
-
14
- <!-- adapted from humanlayer/humanlayer create_handoff/resume_handoff (Apache-2.0) — the discipline that a handoff must be complete enough that the receiving chat needs nothing else -->
15
-
16
- ## 1. The shared marker
17
-
18
- Every handover starts with the same one-line marker and ends with the same reminder. Everything between them is specific to the handover's type — see §2.
19
-
20
- ```markdown
21
- ## 🔄 Allye Handover — {type}
22
- **Skill to load:** {skill-slug}
23
-
24
- ...type-specific body — see references/{type}.md...
25
-
26
- ---
27
- If anything is unclear, STOP and ask — don't proceed on a guess.
28
- ```
29
-
30
- The bootstrap skill (`using-allye`) scans the first message of every fresh conversation for the `## 🔄 Allye Handover` line. When found, it parses `{type}` and `Skill to load`, loads that skill directly, and skips its own phase-detection heuristic. See `using-allye`'s "Handover detection" step.
31
-
32
- **Templates in this skill and in `references/` are written in English — that's the source, not the output.** When actually generating a handover for the user, follow the plugin's language principle same as everywhere else: respond in the user's language. Section headers (`### Objective`, `### Required reading`, etc.) and body prose get written in whatever language the conversation is in — a Portuguese-speaking user gets `### Objetivo`, `### Leitura obrigatória`, and so on. **Only two things stay fixed in every language**, because auto-detection parses them literally: the `## 🔄 Allye Handover — {type}` marker line and the `**Skill to load:**` field name. Never translate those two.
33
-
34
- ## 2. The catalog
35
-
36
- Six types. Each is a distinct handoff with its own objective and field set — not a generic form filled in differently. Full templates live in `references/`.
37
-
38
- | Type | Transition | Objective | Template |
39
- |---|---|---|---|
40
- | `discovery-to-planning` | Sandbox → Planning | Turn the approved direction into a deliverable structure | `references/discovery-to-planning.md` |
41
- | `planning-to-technical` | Planning → Tech Planning | Technically detail the approved squares | `references/planning-to-technical.md` |
42
- | `technical-to-orchestration` | Tech Planning → Orchestrator | Drive delivery of the planned scope (feature, or a whole epic) | `references/technical-to-orchestration.md` |
43
- | `story-execution` | Orchestrator → Executor | Implement exactly one story | `references/story-execution.md` |
44
- | `execution-report` | Executor → Orchestrator | Return the implementation result | `references/execution-report.md` |
45
- | `correction` | Orchestrator → Executor | Fix specific review findings | `references/correction.md` |
46
-
47
- **Neither reviewer axis ever receives a handover.** `reviewer-standards` and `reviewer-spec` are both invoked<!-- opencode-exclude:start --> via the `Agent` tool<!-- opencode-exclude:end --> with a constructed prompt (story + tasks + files changed), dispatched by the Orchestrator — not by a pasted handover.
48
-
49
- <!-- opencode-exclude:start -->
50
- **Executor is reachable both ways.** In manual mode it receives `story-execution`/`correction` handovers as documented above. In automatic mode (Orchestrator's choice, offered per story) it's dispatched via the `Agent` tool instead, the same way the reviewer axes are — see `agents/executor.md`. Either way the content is the same; only the transport differs.
51
- <!-- opencode-exclude:end -->
52
-
53
- ## 3. Writing a good handover checklist
54
-
55
- <!-- adapted from humanlayer/humanlayer create_handoff (Apache-2.0) and EveryInc/compound-engineering-plugin artifact_readiness contracts (MIT) -->
56
-
57
- Before emitting a handover, confirm the following when applicable:
58
-
59
- - **Concrete keys, not vague pointers.** "The story we discussed" is not acceptable — write the actual `STORY-KEY`. The receiving chat has zero memory of this conversation.
60
- - **References carry an explicit read instruction, not just keys.** The handover must tell the receiver to actually fetch and read what it lists — work items via `work_get`/`work_children` (the entire subtree under the parent, when the handover is scoped to a parent item like a feature or epic), docs via `doc_get`. A key list without a "read all of this" instruction invites skimming, and the receiving chat has no other way to know reading is mandatory.
61
- - **Locked decisions are carried forward, verbatim.** If a decision was locked in this phase, restate it in the handover — don't make the next chat re-derive or, worse, re-litigate it.
62
- - **Scope matches the type.** `story-execution` carries exactly one story; `correction` carries only the failed findings, not the whole story again. Padding a handover with everything "just in case" defeats the purpose of a lean next chat.
63
- - **The reminder line is preserved.** A handover should end with the "stop and ask" line — it prevents guessed decisions in the next session.
64
- <!-- adapted from mattpocock/skills triage AGENT-BRIEF (MIT) — durability of handoff artifacts -->
65
- - **Name interfaces and contracts, not file paths and line numbers.** Write "the `SkillConfig`
66
- type gains an optional `schedule` field", never "open `src/types/skill.ts` and edit line 42."
67
- A handover can be read hours later, by a different agent, in a worktree where the tree has
68
- already moved — a line number is wrong by then and a contract is not. The one exception is a
69
- snippet that encodes a decision more precisely than prose can (a schema, a state machine, a
70
- type shape); include it, trimmed to the decision.
71
-
72
- ## 4. Auto-detection (implemented in `using-allye`)
73
-
74
- Detection logic lives in `using-allye`'s bootstrap (checked before its phase-detection table), not duplicated here — see `skills/using-allye/SKILL.md` §2. This skill defines the *contract*; `using-allye` implements the *routing*.
@@ -1,32 +0,0 @@
1
- # Handover: correction
2
-
3
- **Emitted by:** `orchestrator`
4
- **Received by:** `execution` (the same Executor chat/session that produced the original implementation, when possible)
5
- **Objective:** Fix specific review findings — this handover is deliberately narrow. It never re-briefs the whole story; that would defeat the point of a lean, targeted correction pass.
6
-
7
- ## Before emitting, confirm
8
-
9
- - Only the ❌ findings are included — ✅ and ⚠️ items are not corrections, don't pad this handover with them.
10
- - The correction round number is tracked — per spec §6.4, at most **2** correction handovers are ever emitted for the same task. If the 2nd correction round's review also comes back ❌ (i.e., the 3rd review failure on that task), the Orchestrator does not emit a 3rd correction handover — it stops and escalates to the human instead.
11
- - Each finding is quoted from the Reviewer's actual output, not paraphrased — paraphrasing risks losing precision about what exactly needs to change.
12
-
13
- ## Template
14
-
15
- ```markdown
16
- ## 🔄 Allye Handover — correction
17
- **Skill to load:** execution
18
-
19
- ### Objective
20
- Fix the review findings below in {STORY-KEY} — nothing more.
21
-
22
- ### Findings to fix (❌ only)
23
- - {TASK-KEY}: "{reviewer finding, quoted literally}"
24
- - {TASK-KEY}: "{reviewer finding, quoted literally}"
25
-
26
- ### Correction round
27
- This is correction attempt {N} for this story.
28
- {If N is greater than 2, the Orchestrator shouldn't be emitting this handover — the max is 2 correction handovers per task; a 3rd review failure escalates to the user instead of producing a 3rd handover. See skills/orchestrator.}
29
-
30
- ---
31
- Fix ONLY what's listed above — don't redo the whole story. If anything is unclear, STOP and ask — don't proceed on a guess.
32
- ```
@@ -1,44 +0,0 @@
1
- # Handover: discovery-to-planning
2
-
3
- **Emitted by:** `sandbox` (once approved by the user)
4
- **Received by:** `product-planning`
5
- **Objective:** Turn the direction approved during Sandbox into a deliverable structure (squares/sub-squares → Epic/Feature/Story).
6
-
7
- ## Before emitting, confirm
8
-
9
- - A Discovery Doc was created in Allye (`doc_create`, location confirmed with the user against `doc_full_tree`) — this handover references it, it does not duplicate its content.
10
- - Every path that was explored and abandoned is listed with *why* — the next chat should never accidentally re-propose a rejected direction.
11
- - Research findings (if any) are summarized with enough detail to act on, not just "found some stuff."
12
-
13
- ## Template
14
-
15
- ```markdown
16
- ## 🔄 Allye Handover — discovery-to-planning
17
- **Skill to load:** product-planning
18
-
19
- ### Objective
20
- {one sentence: which product/objective is being planned}
21
-
22
- ### Discovery Doc
23
- - Title: {doc title}
24
- - Reference in Allye: {doc id or path in the tree}
25
-
26
- ### Approved direction
27
- {synthesis of what was decided in Sandbox — what and why}
28
-
29
- ### Paths explored and rejected
30
- - {path A} — rejected because {reason}
31
- - {path B} — rejected because {reason}
32
-
33
- ### Research findings
34
- {summary of what deep-search / code-analyzer brought back, with source — "No research was done" if none}
35
-
36
- ### Prototypes
37
- {reference to generated artifacts, or "No prototype was made"}
38
-
39
- ### Additional context
40
- {anything else the next chat needs to know}
41
-
42
- ---
43
- If anything is unclear, STOP and ask — don't proceed on a guess.
44
- ```
@@ -1,42 +0,0 @@
1
- # Handover: execution-report
2
-
3
- **Emitted by:** `execution`
4
- **Received by:** `orchestrator`
5
- **Objective:** Return the implementation result — what the Orchestrator uses to decide whether to dispatch the Reviewer or cascade status right away.
6
-
7
- ## Before emitting, confirm
8
-
9
- - Every task's status is reported per acceptance criterion, not as a blanket "done" — the Orchestrator and the eventual Reviewer both need this granularity.
10
- - Files changed are listed explicitly (not "various files") — the Reviewer dispatch depends on this list.
11
- - Open questions are surfaced here rather than silently assumed away — this is the Executor's last chance to flag uncertainty before the chat ends.
12
-
13
- ## Template
14
-
15
- ```markdown
16
- ## 🔄 Allye Handover — execution-report
17
- **Skill to load:** orchestrator
18
-
19
- ### Story implemented
20
- {STORY-KEY} — {title}
21
-
22
- ### Tasks and status per acceptance criterion
23
- - {TASK-KEY}: {✅ done | ⚠️ partial | ❌ blocked}
24
- - {criterion 1}: {met | not met — why}
25
- - {criterion 2}: {met | not met — why}
26
-
27
- ### Files changed
28
- - {path} — {what changed}
29
- - {path} — {what changed}
30
-
31
- ### Tests added
32
- {which, what they cover, or "No test was needed — reason"}
33
-
34
- ### New decisions made during implementation
35
- - {decision} — {rationale}, or "No new decision"
36
-
37
- ### Open questions
38
- {anything that stayed unanswered and needs a human decision, or "None"}
39
-
40
- ---
41
- If anything is unclear, STOP and ask — don't proceed on a guess.
42
- ```
@@ -1,42 +0,0 @@
1
- # Handover: planning-to-technical
2
-
3
- **Emitted by:** `product-planning`
4
- **Received by:** `technical-planning`
5
- **Objective:** Technically detail the squares (Features) and sub-squares (Stories) approved in the business phase.
6
-
7
- ## Before emitting, confirm
8
-
9
- - Every Epic/Feature/Story key is real (created via `work_create`/`work_bulk_create` or found via `work_list`) — never a placeholder key.
10
- - Reused items and newly created items are explicitly distinguished — the next chat should never have to guess which is which.
11
- - The `Doc:` line is filled in: if a Discovery Doc exists upstream (from a `discovery-to-planning` handover), carry its reference here; if none, write "Nenhum doc adicional" explicitly — don't leave the line out.
12
- - Any key business decision made during Product Planning (scope cuts, explicit user choices, priorities — the ones saved as planning memories) is restated here, not just implied by the work item descriptions. This section is best-effort and often short or empty: most locked decisions come later, from Technical Planning's own Discussion Phase — don't pad it.
13
-
14
- ## Template
15
-
16
- ```markdown
17
- ## 🔄 Allye Handover — planning-to-technical
18
- **Skill to load:** technical-planning
19
-
20
- ### Objective
21
- {which story or set of stories will be technically detailed now}
22
-
23
- ### Required reading
24
- - Doc: {title and reference of the Discovery Doc, or "No additional doc"}
25
- - Epic: {KEY} — {title} ({reused | created})
26
- - Feature(s): {KEY} — {title} ({reused | created})
27
- - Story(ies) to plan now: {KEY} — {title} ({reused | created})
28
-
29
- ### Locked business decisions
30
- - {decision 1} — {rationale}
31
- - {decision 2} — {rationale}
32
- {or "No locked business decision beyond the item descriptions"}
33
-
34
- ### Prototypes
35
- {reference, or "No prototype was made"}
36
-
37
- ### Additional context
38
- {}
39
-
40
- ---
41
- If anything is unclear, STOP and ask — don't proceed on a guess.
42
- ```