arreio 1.1.0 → 1.2.1
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.
- package/ARCHITECTURE.md +220 -0
- package/CHANGELOG.md +43 -0
- package/README.md +55 -2
- package/package.json +33 -10
- package/skills/arreio-init/SKILL.md +19 -24
- package/skills/learn/SKILL.md +20 -6
- package/skills/learn/modules/capture.md +3 -3
- package/skills/learn/modules/index.md +2 -2
- package/skills/learn/modules/maintain.md +2 -2
- package/skills/learn/modules/refine.md +2 -2
- package/skills/learn/references/id-generation.md +3 -1
- package/skills/learn/references/interaction-mode-propagation.md +21 -1
- package/skills/learn/references/templates/artifacts/captured-entry.md +1 -1
- package/skills/learn/references/templates/artifacts/index-update.md +1 -1
- package/skills/learn/references/templates/artifacts/maintain-log.md +1 -1
- package/skills/learn/references/templates/artifacts/refined-entry.md +1 -1
- package/skills/plan/SKILL.md +29 -4
- package/skills/plan/modules/design.md +9 -5
- package/skills/plan/modules/generate.md +9 -9
- package/skills/plan/modules/research.md +2 -2
- package/skills/plan/modules/scope.md +2 -2
- package/skills/plan/references/design-complexity-assessment.md +16 -7
- package/skills/plan/references/error-handling.md +1 -0
- package/skills/plan/references/id-generation.md +3 -1
- package/skills/plan/references/interaction-mode-propagation.md +25 -1
- package/skills/plan/references/plan-tier-selection.md +95 -48
- package/skills/plan/references/templates/artifacts/design.md +1 -1
- package/skills/plan/references/templates/artifacts/scoped-context.md +1 -1
- package/skills/review/SKILL.md +19 -4
- package/skills/review/modules/analyze.md +2 -2
- package/skills/review/modules/prepare.md +2 -2
- package/skills/review/modules/scope.md +3 -3
- package/skills/review/references/id-generation.md +3 -1
- package/skills/review/references/interaction-mode-propagation.md +21 -1
- package/skills/review/references/templates/artifacts/findings.md +1 -1
- package/skills/review/references/templates/artifacts/review-kit.md +1 -1
- package/skills/review/references/templates/artifacts/review-scope.md +1 -1
- package/skills/work/SKILL.md +19 -4
- package/skills/work/modules/execute.md +2 -2
- package/skills/work/modules/prepare.md +3 -3
- package/skills/work/modules/triage.md +2 -2
- package/skills/work/references/execution-mode-selection.md +21 -2
- package/skills/work/references/id-generation.md +3 -1
- package/skills/work/references/interaction-mode-propagation.md +21 -1
- package/skills/work/references/templates/artifacts/execution-log.md +1 -1
- package/skills/work/references/templates/artifacts/execution-plan.md +1 -1
- package/skills/work/references/templates/artifacts/work-manifest.md +1 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
title: Plan Tier Selection
|
|
3
3
|
description: Reference for the Generate phase. Defines the Fast/Standard/Deep tier model, the selection algorithm that combines complexity, risk, and user preference, and the template sections each tier requires.
|
|
4
4
|
type: reference
|
|
5
|
-
version: 1.
|
|
6
|
-
timestamp: "2026-
|
|
5
|
+
version: 1.2
|
|
6
|
+
timestamp: "2026-10-01"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Plan Tier Selection
|
|
@@ -24,40 +24,45 @@ Tier selection happens at the start of the Generate phase, after reading the Des
|
|
|
24
24
|
|
|
25
25
|
## Selection Algorithm
|
|
26
26
|
|
|
27
|
+
Tier selection is **two pure functions**. Run them step by step with the real values; never shortcut to a "typical" tier.
|
|
28
|
+
|
|
29
|
+
Values are compared case-insensitively (`HIGH` = `High`). `risk_level` comes from the Research Findings; `complexity` from the Design Artifact.
|
|
30
|
+
|
|
27
31
|
```
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
else: # HIGH or VERY_HIGH
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if risk_level ==
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return base_tier
|
|
32
|
+
# A. Recommendation — computed in the Design phase (Step 4) and re-computed in Generate (Step 1).
|
|
33
|
+
# Depends ONLY on complexity and risk. Never on user input or --deep.
|
|
34
|
+
function recommend_tier(complexity, risk_level):
|
|
35
|
+
# 1. Complexity-driven default
|
|
36
|
+
if complexity in [TRIVIAL, LOW]: tier = Fast
|
|
37
|
+
elif complexity == MEDIUM: tier = Standard
|
|
38
|
+
else: # HIGH or VERY_HIGH tier = Deep
|
|
39
|
+
|
|
40
|
+
# 2. Risk floor (see table below) — may only raise the tier
|
|
41
|
+
if risk_level == HIGH and tier == Fast: tier = Standard
|
|
42
|
+
if risk_level == CRITICAL: tier = Deep
|
|
43
|
+
return tier
|
|
44
|
+
|
|
45
|
+
# B. Selection — computed in the Generate phase (Step 1).
|
|
46
|
+
function select_tier(complexity, risk_level, user_preference, force_deep):
|
|
47
|
+
recommended = recommend_tier(complexity, risk_level)
|
|
48
|
+
floor = risk_floor(risk_level) # Fast | Standard | Deep
|
|
49
|
+
|
|
50
|
+
if force_deep: return Deep # explicit user request; always honored
|
|
51
|
+
if user_preference == "auto": return recommended # Auto = the algorithm, NOT a fixed tier
|
|
52
|
+
# Explicit tier: honor it, but never go below the risk floor
|
|
53
|
+
return max(user_preference, floor) # order: Fast < Standard < Deep
|
|
52
54
|
```
|
|
53
55
|
|
|
56
|
+
`tier_recommended` is **always** `recommend_tier(...)` — it is never changed by user preference or `--deep`. `tier` is `select_tier(...)`. When they differ, the plan records an auditable override.
|
|
57
|
+
|
|
54
58
|
### Inputs
|
|
55
59
|
|
|
56
|
-
| Input | Source
|
|
57
|
-
| ----------------- |
|
|
58
|
-
| `complexity` | Design Artifact
|
|
59
|
-
| `risk_level` | Research Findings Artifact
|
|
60
|
-
| `user_preference` | User (asked in Generate Step 1)
|
|
60
|
+
| Input | Source | Values |
|
|
61
|
+
| ----------------- | --------------------------------------------------- | ------------------------------------- |
|
|
62
|
+
| `complexity` | Design Artifact | TRIVIAL, LOW, MEDIUM, HIGH, VERY_HIGH |
|
|
63
|
+
| `risk_level` | Research Findings Artifact | LOW, MEDIUM, HIGH, CRITICAL |
|
|
64
|
+
| `user_preference` | User (asked in Generate Step 1; see mode behavior) | `fast`, `standard`, `deep`, or `auto` |
|
|
65
|
+
| `force_deep` | Orchestrator context (`--deep` flag, SKILL.md) | `true` or `false` (default `false`) |
|
|
61
66
|
|
|
62
67
|
### Risk Floor
|
|
63
68
|
|
|
@@ -72,6 +77,22 @@ The risk level sets a **minimum tier** that user preference cannot override:
|
|
|
72
77
|
|
|
73
78
|
Rationale: High/critical risk mandates enough structure to capture alternatives, rollout, and rollback — even if the user wants a short plan.
|
|
74
79
|
|
|
80
|
+
### Anti-Default Rules (read before computing)
|
|
81
|
+
|
|
82
|
+
- **`Standard` is not a neutral default.** It is the result only for `MEDIUM` complexity (or a `HIGH` risk floor lifting a Fast result). `HIGH`/`VERY_HIGH` complexity → **Deep**; `TRIVIAL`/`LOW` → **Fast** unless risk lifts it.
|
|
83
|
+
- **Compute, then write.** Fill the function inputs with the actual `complexity` and `risk_level`, evaluate, and only then write `tier_recommended`. Do not copy a tier from an example in this file.
|
|
84
|
+
- **Auto means "use `tier_recommended`".** Never substitute `Standard` because it is the middle option.
|
|
85
|
+
|
|
86
|
+
### Deep Override (`--deep`)
|
|
87
|
+
|
|
88
|
+
The user can force a Deep plan in **any** interaction mode (including Autopilot and Smart) by invoking `/plan --deep <task>` (parsing rules in [SKILL.md](../SKILL.md#skill-invocation)).
|
|
89
|
+
|
|
90
|
+
- `force_deep = true` → `tier = deep`, regardless of complexity, risk, or `user_preference`. The tier question is **not asked**, in any mode.
|
|
91
|
+
- `tier_recommended` still holds the algorithm's result, so the override is auditable (`tier: deep`, `tier_recommended: fast`, etc.).
|
|
92
|
+
- Deep only adds structure, so it never violates the risk floor.
|
|
93
|
+
- The Smart-mode "tier is Deep" pause does **not** fire for a `--deep` plan (the user already chose it). CRITICAL-risk pause still applies.
|
|
94
|
+
- Because Design runs before Generate, the Design phase also receives `force_deep` so it produces the material a Deep plan needs (≥ 2 alternatives, rollout draft, integration map) — see [design.md](../modules/design.md) Steps 4–5.
|
|
95
|
+
|
|
75
96
|
## Tier Section Requirements
|
|
76
97
|
|
|
77
98
|
### Fast Tier
|
|
@@ -109,33 +130,42 @@ Required sections (all Standard sections, plus):
|
|
|
109
130
|
- Explicit complexity and tier in frontmatter
|
|
110
131
|
- Cross-system integration map (data-flow or sequence diagram)
|
|
111
132
|
|
|
133
|
+
**Required does not mean invented.** On a Deep plan forced by `--deep` for a small change, a required item that genuinely does not apply (e.g., data migration for a doc-only change) is written as `Not applicable — <one-line reason>`. Never omit the item and never fabricate content to fill it.
|
|
134
|
+
|
|
112
135
|
## Interaction Mode Behavior
|
|
113
136
|
|
|
114
|
-
| Mode | Tier Selection Behavior
|
|
115
|
-
| --------- |
|
|
116
|
-
| Detailed | Ask the user to
|
|
117
|
-
| Smart |
|
|
118
|
-
| Autopilot | Auto-select
|
|
137
|
+
| Mode | `user_preference` | Tier Selection Behavior |
|
|
138
|
+
| --------- | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
|
|
139
|
+
| Detailed | Asked (prompt below), unless `force_deep` | Ask the user; offer to override. `force_deep` → no question, announce "Deep plan forced by `--deep`" |
|
|
140
|
+
| Smart | `auto` (asked only if a pause trigger fires) | Auto-select; pause **only** on the triggers below |
|
|
141
|
+
| Autopilot | `auto` | Auto-select; never pause |
|
|
142
|
+
|
|
143
|
+
`force_deep = true` overrides `user_preference` in every row.
|
|
119
144
|
|
|
120
145
|
**Smart mode pause triggers:**
|
|
121
146
|
|
|
122
|
-
- Selected tier is Deep (signals complex work worth a review)
|
|
147
|
+
- Selected tier is Deep **and `force_deep` is false** (signals complex work worth a review)
|
|
123
148
|
- User preference conflicts with risk floor (e.g., user wants Fast but risk is HIGH)
|
|
124
149
|
- Research phase reported CRITICAL risk (Security or Payments)
|
|
125
150
|
|
|
126
151
|
## Asking the User for Preference
|
|
127
152
|
|
|
128
|
-
In Detailed mode (or when Smart mode pauses), ask the
|
|
153
|
+
In Detailed mode (or when Smart mode pauses), ask one question. **Build it from the computed values — every `<…>` placeholder below must be replaced; never print an example tier.**
|
|
129
154
|
|
|
130
155
|
```
|
|
131
|
-
|
|
156
|
+
Design complexity is <complexity> (score <total>/15) and risk level is <risk_level>.
|
|
157
|
+
I recommend the <tier_recommended> tier.
|
|
132
158
|
Which tier would you like for the plan?
|
|
133
159
|
- Fast: Short plan, minimal structure (1-2 pages)
|
|
134
|
-
- Standard: Full plan with phased units and risk table (2-4 pages)
|
|
160
|
+
- Standard: Full plan with phased units and risk table (2-4 pages)
|
|
135
161
|
- Deep: Comprehensive plan with alternatives and rollout ops (4+ pages)
|
|
136
|
-
- Auto:
|
|
162
|
+
- Auto: Use the recommendation (result: <tier_recommended>)
|
|
137
163
|
```
|
|
138
164
|
|
|
165
|
+
- Append ` [Recommended]` to the option that equals `tier_recommended`.
|
|
166
|
+
- If the risk floor makes an option unavailable (e.g., Fast at HIGH risk), keep it listed but say "(below risk floor — will be raised to <floor>)".
|
|
167
|
+
- Tip to include once in the question text: `/plan --deep` forces a Deep plan without this question.
|
|
168
|
+
|
|
139
169
|
Record the user's choice as the selected **`tier`** in the final plan frontmatter; preserve the algorithm's suggestion as **`tier_recommended`** so an override is auditable.
|
|
140
170
|
|
|
141
171
|
## Worked Examples
|
|
@@ -143,19 +173,34 @@ Record the user's choice as the selected **`tier`** in the final plan frontmatte
|
|
|
143
173
|
### Example 1: Low complexity, low risk
|
|
144
174
|
|
|
145
175
|
- `complexity = LOW`, `risk_level = LOW`, `user_preference = auto`
|
|
146
|
-
-
|
|
176
|
+
- `recommend_tier` → Fast. Auto → **Fast** (`tier_recommended: fast`).
|
|
177
|
+
|
|
178
|
+
### Example 2: Medium complexity, medium risk, auto
|
|
179
|
+
|
|
180
|
+
- `complexity = MEDIUM`, `risk_level = MEDIUM`, `user_preference = auto`
|
|
181
|
+
- `recommend_tier` → Standard. Auto → **Standard** (`tier_recommended: standard`).
|
|
147
182
|
|
|
148
|
-
### Example
|
|
183
|
+
### Example 3: Medium complexity, high risk, user wants fast
|
|
149
184
|
|
|
150
185
|
- `complexity = MEDIUM`, `risk_level = HIGH`, `user_preference = fast`
|
|
151
|
-
-
|
|
186
|
+
- `recommend_tier` → Standard. Floor (HIGH) = Standard. `max(Fast, Standard)` → **Standard**.
|
|
152
187
|
- Smart mode would pause (preference conflicts with risk floor).
|
|
153
188
|
|
|
154
|
-
### Example
|
|
189
|
+
### Example 4: High complexity, high risk, auto
|
|
190
|
+
|
|
191
|
+
- `complexity = HIGH` (score 8), `risk_level = HIGH`, `user_preference = auto`
|
|
192
|
+
- `recommend_tier` → **Deep** (HIGH complexity → Deep; not Standard). Auto → **Deep** (`tier_recommended: deep`).
|
|
193
|
+
- Smart mode pauses (Deep tier).
|
|
194
|
+
|
|
195
|
+
### Example 5: High complexity, critical risk (payments)
|
|
155
196
|
|
|
156
197
|
- `complexity = HIGH`, `risk_level = CRITICAL`, `user_preference = auto`
|
|
157
|
-
-
|
|
158
|
-
|
|
198
|
+
- `recommend_tier` → Deep. Auto → **Deep**. Smart mode pauses (Deep + CRITICAL).
|
|
199
|
+
|
|
200
|
+
### Example 6: `--deep` on a small change, Autopilot
|
|
201
|
+
|
|
202
|
+
- `complexity = LOW`, `risk_level = LOW`, `force_deep = true`, mode = autopilot
|
|
203
|
+
- `tier_recommended: fast`, `tier: deep`. No question asked, no pause. Required Deep sections without real content are written as `Not applicable — <reason>`.
|
|
159
204
|
|
|
160
205
|
## Error Handling
|
|
161
206
|
|
|
@@ -165,10 +210,12 @@ Record the user's choice as the selected **`tier`** in the final plan frontmatte
|
|
|
165
210
|
| `risk_level` missing from Research | Default to MEDIUM; log warning |
|
|
166
211
|
| User provides invalid preference value | Treat as `auto`; log warning |
|
|
167
212
|
| Selected tier conflicts with risk floor | Enforce risk floor; inform user of the override |
|
|
213
|
+
| Design's `tier_recommended` differs from `recommend_tier(complexity, risk_level)` | Recompute in Generate; the recomputed value is authoritative; log warning |
|
|
214
|
+
| `--deep` given but the phase artifact lacks the rollout/alternatives material | Generate writes `Not applicable — <reason>` for items that do not apply; never invents content |
|
|
168
215
|
|
|
169
216
|
## Notes
|
|
170
217
|
|
|
171
218
|
- Tier choice is recorded in the final plan's frontmatter as `tier: fast | standard | deep`
|
|
172
219
|
- The tier also influences the Tasks phase: Fast tier often produces 1–3 tasks; Standard 4–8; Deep 8+
|
|
173
|
-
- If the user overrides the tier, preserve the algorithm's recommendation in a `tier_recommended` field for audit
|
|
220
|
+
- If the user overrides the tier (explicit choice or `--deep`), preserve the algorithm's recommendation in a `tier_recommended` field for audit
|
|
174
221
|
- Tier selection is the primary "right-sizing" mechanism — Small tasks → short plans; complex work → more structure (per Plan Skill core principles)
|
|
@@ -98,7 +98,7 @@ tier_recommended: fast | standard | deep
|
|
|
98
98
|
- [Gap name] — [Follow-up action via /learn]
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
In `detailed` mode only, also save the design artifact to `docs/plans/.design/<design-id>.md` for future reference or reuse. The `interactionMode` and `complexity` values flow into the Generate artifact for tier selection. In `smart`/`autopilot` mode, do not write it; pass it to the next phase in context.
|
|
102
102
|
|
|
103
103
|
## Validation Rules
|
|
104
104
|
|
|
@@ -50,4 +50,4 @@ action: resume | review | archive | delete | create-new | none
|
|
|
50
50
|
- (Empty list if none found)
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
In `detailed` mode only, also save the scoped context to `docs/plans/.scope/<scope-id>.md` for future reference or reuse. The `interactionMode` value flows into `research`, `design`, and `generate` artifacts. In `smart`/`autopilot` mode, do not write it; pass it to the next phase in context.
|
package/skills/review/SKILL.md
CHANGED
|
@@ -35,6 +35,8 @@ Store in the context object:
|
|
|
35
35
|
interactionMode: detailed | smart | autopilot
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
**Artifact persistence:** intermediate phase artifacts are written to disk **only in `detailed` mode**. In `smart`/`autopilot` they are passed between phases in context and never written (see `references/interaction-mode-propagation.md#artifact-persistence`). Final deliverables are always written.
|
|
39
|
+
|
|
38
40
|
**Propagation:** `interactionMode` flows into the `scope`, `prepare`, `analyze`, and `report` artifacts; each downstream phase reads it to adjust confirmation behaviour (detailed = pause every transition; autopilot = run all; smart = pause only on `blocker`/`major` findings or detected scope creep).
|
|
39
41
|
|
|
40
42
|
## Orchestration Implementation
|
|
@@ -58,7 +60,8 @@ Each phase runs sequentially: the orchestrator calls the phase module, receives
|
|
|
58
60
|
|
|
59
61
|
Before starting the review pipeline, the orchestrator verifies that required folders exist:
|
|
60
62
|
|
|
61
|
-
- `docs/review/.
|
|
63
|
+
- `docs/review/.report/` — must exist for saving the Review Report (always written)
|
|
64
|
+
- `docs/review/.scope/`, `docs/review/.prepare/`, `docs/review/.analyze/` — **`detailed` mode only**, for saving the intermediate phase artifacts; do not create them in `smart`/`autopilot`
|
|
62
65
|
- `docs/review/index.md` — must exist as the review registry (Report appends to it)
|
|
63
66
|
|
|
64
67
|
**Self-Healing:** If any are missing, the orchestrator automatically creates them (`mkdir -p`, and a seed `index.md` with a registry header). This allows the Review skill to run even if `arreio-init` wasn't explicitly run.
|
|
@@ -73,9 +76,9 @@ For **task-in-review** input, verify the `work-id` exists and contains at least
|
|
|
73
76
|
|
|
74
77
|
| Phase | Phase Module | Output Artifact | Saved to |
|
|
75
78
|
| ----- | ----------------------------- | ---------------------------------------------------------------- | ------------------------------------- |
|
|
76
|
-
| 1 | [Scope](modules/scope.md) | [Review scope](references/templates/artifacts/review-scope.md) | `docs/review/.scope/<id>.md`
|
|
77
|
-
| 2 | [Prepare](modules/prepare.md) | [Review kit](references/templates/artifacts/review-kit.md) | `docs/review/.prepare/<id>.md` |
|
|
78
|
-
| 3 | [Analyze](modules/analyze.md) | [Findings](references/templates/artifacts/findings.md) | `docs/review/.analyze/<id>.md` |
|
|
79
|
+
| 1 | [Scope](modules/scope.md) | [Review scope](references/templates/artifacts/review-scope.md) | `docs/review/.scope/<id>.md` _(detailed only)_ |
|
|
80
|
+
| 2 | [Prepare](modules/prepare.md) | [Review kit](references/templates/artifacts/review-kit.md) | `docs/review/.prepare/<id>.md` _(detailed only)_ |
|
|
81
|
+
| 3 | [Analyze](modules/analyze.md) | [Findings](references/templates/artifacts/findings.md) | `docs/review/.analyze/<id>.md` _(detailed only)_ |
|
|
79
82
|
| 4 | [Report](modules/report.md) | [Review report](references/templates/artifacts/review-report.md) | `docs/review/.report/<id>.md` |
|
|
80
83
|
|
|
81
84
|
### Quality Gates
|
|
@@ -143,6 +146,17 @@ Artifact templates live in [references/templates/artifacts/](references/template
|
|
|
143
146
|
| [findings.md](references/templates/artifacts/findings.md) | Analyze |
|
|
144
147
|
| [review-report.md](references/templates/artifacts/review-report.md) | Report |
|
|
145
148
|
|
|
149
|
+
## Execution Rules
|
|
150
|
+
|
|
151
|
+
Follow these literally; they exist to keep runs consistent across agents.
|
|
152
|
+
|
|
153
|
+
1. **Run each module's steps in order**, starting with its Step 0 verification. Do not skip, merge, or reorder steps.
|
|
154
|
+
2. **Never invent values.** If a required input is missing, apply the recovery in [error-handling.md](references/error-handling.md) or ask the user; do not fill it with a plausible guess.
|
|
155
|
+
3. **Compute, don't copy.** Values defined by a rule (finding severity, `approval-status`, scope-creep flag) must be derived from the cited rubric and the real findings — never judged by feel, and never copied from an example. Example values in references and templates are illustrations, never defaults.
|
|
156
|
+
4. **One question at a time**, with 2–4 concrete options; build the question text from the current values.
|
|
157
|
+
5. **Announce phase transitions in one line** (e.g., "Phase 2/4 Analyze complete: <key result>") so the user can follow progress, even in Autopilot.
|
|
158
|
+
6. **Honor write rules:** intermediate phase artifacts only in `detailed` mode; final deliverables always.
|
|
159
|
+
|
|
146
160
|
## Core Principles
|
|
147
161
|
|
|
148
162
|
- **Deterministic Pipeline:** Phases always execute in sequence (no agent switching, no fallback paths).
|
|
@@ -155,6 +169,7 @@ Artifact templates live in [references/templates/artifacts/](references/template
|
|
|
155
169
|
- **Test the Tests:** Reviewing changes includes evaluating the tests that accompany them — coverage, correctness of assertions, and whether they assert the intended Acceptance Criterion — not just production code.
|
|
156
170
|
- **Read-Only Review:** Review analyzes and reports; it never edits the code under review. Required changes become a follow-up task (a new `/plan` + `/work`, or manual edits) — never applied inline here.
|
|
157
171
|
- **Single Source of Truth:** This skill defines all its own rules; it does not depend on any external agent rule file. Category, severity, and approval definitions live once in their authoritative references and are never re-encoded inline in the modules.
|
|
172
|
+
- **Lean Persistence:** Phase artifacts hit disk only in `detailed` mode; `smart`/`autopilot` pass them in context to save tokens and time.
|
|
158
173
|
- **Transparent Artifacts:** Each phase produces an explicit output artifact for the next phase.
|
|
159
174
|
- **Behavior-Described, Tool-Agnostic:** Steps describe required capabilities ("read the diff", "run the test suite", "update the index"), not specific tool names; each agent maps to its native tools.
|
|
160
175
|
- **Interaction Mode Propagation:** `interactionMode` is read at the start of each subsequent phase and determines whether confirmation steps execute.
|
|
@@ -90,7 +90,7 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
90
90
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
91
91
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
92
92
|
|
|
93
|
-
Then save the artifact to `docs/review/.analyze/<analyze-id>.md` (ensure `interactionMode` included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 4 (Report).
|
|
93
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/review/.analyze/<analyze-id>.md` (ensure `interactionMode` included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 4 (Report). In `smart` and `autopilot` mode, do **not** write the file; pass the artifact to the next phase in context (see [Artifact Persistence](../references/interaction-mode-propagation.md#artifact-persistence)).
|
|
94
94
|
|
|
95
95
|
## Output: Findings Artifact
|
|
96
96
|
|
|
@@ -99,6 +99,6 @@ Then save the artifact to `docs/review/.analyze/<analyze-id>.md` (ensure `intera
|
|
|
99
99
|
- Verify the **scope-creep** category either ran (with `spec-content` not `none`) or is recorded `skipped (no requirements)` — never silently absent, never inventing requirements.
|
|
100
100
|
- Verify severities were **assigned from** [severity-rubric.md](../references/severity-rubric.md) rather than re-defined inline (no second rubric contradicting the authoritative reference).
|
|
101
101
|
- Verify the category checks were **run from** [review-categories.md](../references/review-categories.md) rather than re-encoded inline.
|
|
102
|
-
- Verify that the artifact is saved to `docs/review/.analyze/<analyze-id>.md
|
|
102
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/review/.analyze/<analyze-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
103
103
|
|
|
104
104
|
> Pass the Findings to `report` (Phase 4) for the approval-status derivation, the report write, and the registry / work-index cross-link.
|
|
@@ -90,7 +90,7 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
90
90
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
91
91
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
92
92
|
|
|
93
|
-
Then save the artifact to `docs/review/.prepare/<prepare-id>.md` (ensure `interactionMode` included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 3 (Analyze).
|
|
93
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/review/.prepare/<prepare-id>.md` (ensure `interactionMode` included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 3 (Analyze). In `smart` and `autopilot` mode, do **not** write the file; pass the artifact to the next phase in context (see [Artifact Persistence](../references/interaction-mode-propagation.md#artifact-persistence)).
|
|
94
94
|
|
|
95
95
|
## Output: Review Kit Artifact
|
|
96
96
|
|
|
@@ -98,6 +98,6 @@ Then save the artifact to `docs/review/.prepare/<prepare-id>.md` (ensure `intera
|
|
|
98
98
|
- Verify that every `required` file has a diff entry (or is recorded as deleted / `current-contents`) and that `context` is separated from `required`.
|
|
99
99
|
- Verify that `test-context` records covering tests per changed file and whether the change ships its own tests.
|
|
100
100
|
- Verify that `requirements-source: none` propagated as `spec: none` (so Analyze skips the requirements-vs-scope-creep category rather than guessing).
|
|
101
|
-
- Verify that the artifact is saved to `docs/review/.prepare/<prepare-id>.md
|
|
101
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/review/.prepare/<prepare-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
102
102
|
|
|
103
103
|
> Pass the Review Kit to `analyze` (Phase 3) for the categorized, severity-graded review of the diffs.
|
|
@@ -89,7 +89,7 @@ Search `docs/learn/index.md` for entries relevant to the review domains (the cha
|
|
|
89
89
|
|
|
90
90
|
### Step 6: Allocate review-id and Generate the Review Scope Artifact
|
|
91
91
|
|
|
92
|
-
1. **Allocate a `review-id`** of the form `YYYY-MM-DD-NNN` per [id-generation.md](../references/id-generation.md), counting existing `docs/review/.scope/YYYY-MM-DD-NNN-scope.md` files (or registry rows) for today. This is the pipeline umbrella id (distinct from any Work `review-id` for work-linked input — the two skills produce independent artifacts; the `work-id` is carried alongside for traceability).
|
|
92
|
+
1. **Allocate a `review-id`** of the form `YYYY-MM-DD-NNN` per [id-generation.md](../references/id-generation.md), counting existing `docs/review/.scope/YYYY-MM-DD-NNN-scope.md` files (or registry rows) for today in `detailed` mode, or existing `docs/review/.report/` files in `smart`/`autopilot` (no scope file is written; see id-generation.md). This is the pipeline umbrella id (distinct from any Work `review-id` for work-linked input — the two skills produce independent artifacts; the `work-id` is carried alongside for traceability).
|
|
93
93
|
|
|
94
94
|
2. **Assign a `scope-id`** per [id-generation.md](../references/id-generation.md) (format `YYYY-MM-DD-NNN-scope`, saved to `docs/review/.scope/`). Reuse it if the user later picks **Edit & Retry**.
|
|
95
95
|
|
|
@@ -113,7 +113,7 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
113
113
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
114
114
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
115
115
|
|
|
116
|
-
Then save the artifact to `docs/review/.scope/<scope-id>.md` (ensure `interactionMode`, `input-shape`, and `review-id` are included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 2 (Prepare).
|
|
116
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/review/.scope/<scope-id>.md` (ensure `interactionMode`, `input-shape`, and `review-id` are included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 2 (Prepare). In `smart` and `autopilot` mode, do **not** write the file; pass the artifact to the next phase in context (see [Artifact Persistence](../references/interaction-mode-propagation.md#artifact-persistence)).
|
|
117
117
|
|
|
118
118
|
## Output: Review Scope Artifact
|
|
119
119
|
|
|
@@ -121,6 +121,6 @@ Then save the artifact to `docs/review/.scope/<scope-id>.md` (ensure `interactio
|
|
|
121
121
|
- Verify that the change boundary is in **dependency-safe** form: `required` files are repository-relative and carry a status; `context` is separated from `required`.
|
|
122
122
|
- Verify that `review-id` was allocated (scope is the allocating phase) and that `work-id` is carried for work-linked input.
|
|
123
123
|
- Verify that scope-creep detection was run only when requirements were present (else explicitly skipped with a note), per [scope-creep-detection.md](../references/scope-creep-detection.md).
|
|
124
|
-
- Verify that the artifact is saved to `docs/review/.scope/<scope-id>.md
|
|
124
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/review/.scope/<scope-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
125
125
|
|
|
126
126
|
> Pass the Review Scope to `prepare` (Phase 2) to gather the diffs, spec content, test context, and tool inventory.
|
|
@@ -12,7 +12,7 @@ Shared ID algorithm for the `scope`, `prepare`, `analyze`, and `report` phases,
|
|
|
12
12
|
|
|
13
13
|
## ID Format by Phase
|
|
14
14
|
|
|
15
|
-
| Phase | ID format | Saved to |
|
|
15
|
+
| Phase | ID format | Saved to (detailed only) |
|
|
16
16
|
| -------- | ----------------------------------- | ----------------------------------- |
|
|
17
17
|
| Scope | `YYYY-MM-DD-NNN-scope` | `docs/review/.scope/<id>.md` |
|
|
18
18
|
| Prepare | `YYYY-MM-DD-NNN-prepare` | `docs/review/.prepare/<id>.md` |
|
|
@@ -29,6 +29,8 @@ The `review-id` is the umbrella key that ties all four phase artifacts together
|
|
|
29
29
|
|
|
30
30
|
> **Distinct from a Work `review-id`.** When Review is invoked over a `/work` run (`input-shape: work-linked`), the Work skill's own `review-id` (`docs/plans/.work/.review/...`) **already exists**. The Review skill allocates its **own** `review-id` (`docs/review/...`) — the two skills produce independent artifacts and never share an id. The `work-id` is carried alongside in the Review artifacts for traceability and the work-index cross-link, but `review-id` ≠ Work `review-id`.
|
|
31
31
|
|
|
32
|
+
> **Persistence by mode.** The "Saved to" column and the directory-listing algorithm below apply **only in `detailed` mode**. In `smart`/`autopilot` mode phase artifacts are not written, so no directory is listed: Allocate `review-id` NNN by counting today's files in `docs/review/.report/` (+1); `scope-id`/`prepare-id`/`analyze-id` reuse that NNN as in-memory labels. See [Artifact Persistence](interaction-mode-propagation.md#artifact-persistence).
|
|
33
|
+
|
|
32
34
|
## Algorithm (new phase artifact)
|
|
33
35
|
|
|
34
36
|
```
|
|
@@ -77,4 +77,24 @@ Review deliberately has **no** `executionMode`:
|
|
|
77
77
|
| Invalid mode value | Reject; re-prompt Orchestrator |
|
|
78
78
|
| Artifact missing mode field | Assume "smart"; log warning; continue |
|
|
79
79
|
| User selects "Abort" | Stop immediately; inform Orchestrator |
|
|
80
|
-
| Timeout/connection lost | Pause; ask user to retry or abort |
|
|
80
|
+
| Timeout/connection lost | Pause; ask user to retry or abort |
|
|
81
|
+
|
|
82
|
+
## Artifact Persistence
|
|
83
|
+
|
|
84
|
+
Phase artifacts (Scope, Prepare, Analyze) are **handoff data between phases**, not deliverables. Whether they are written to disk depends on `interactionMode`:
|
|
85
|
+
|
|
86
|
+
| Mode | Phase artifacts (`docs/review/.scope/`, `.prepare/`, `.analyze/`) | Phase handoff |
|
|
87
|
+
| ------------- | ---------------------------------------- | ---------------------------------------------- |
|
|
88
|
+
| **Detailed** | Written to the hidden directories (audit trail; creating the directory on first use) | Artifact is written, shown, then passed on |
|
|
89
|
+
| **Smart** | **Not written** | Artifact is held in context and passed in-memory to the next phase |
|
|
90
|
+
| **Autopilot** | **Not written** | Artifact is held in context and passed in-memory to the next phase |
|
|
91
|
+
|
|
92
|
+
**Always written, in every mode:** the Review Report in `docs/review/.report/<report-id>.md` and its row in `docs/review/index.md` (a cross-skill handoff read by `/learn`).
|
|
93
|
+
|
|
94
|
+
**Rules:**
|
|
95
|
+
|
|
96
|
+
- The artifact schema, quality gates, cross-phase ID checks, and pause triggers are **unchanged** — only the disk write is skipped. Validate and pass the in-memory artifact exactly as you would the file.
|
|
97
|
+
- Never create the hidden directories in `smart`/`autopilot`; no placeholder or empty files.
|
|
98
|
+
- **ID allocation without files:** Allocate `review-id` NNN by counting today's files in `docs/review/.report/` (+1); `scope-id`/`prepare-id`/`analyze-id` reuse that NNN as in-memory labels.
|
|
99
|
+
- If the user switches to `detailed` mid-run, write the artifacts produced so far, then continue writing.
|
|
100
|
+
- Because nothing is on disk, **Edit & Retry** reuses the in-memory artifact and its id (no file to overwrite).
|
|
@@ -53,7 +53,7 @@ scope-creep-ran: true | "skipped (no requirements)" # false only via the skipp
|
|
|
53
53
|
work-id: YYYY-MM-DD-NNN | null # work-linked only; null otherwise
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
In `detailed` mode only, also save the Findings to `docs/review/.analyze/<analyze-id>.md`. In `smart`/`autopilot` mode, do not write it; pass it to the next phase in context.
|
|
57
57
|
|
|
58
58
|
## Validation Rules
|
|
59
59
|
|
|
@@ -60,7 +60,7 @@ tool-inventory:
|
|
|
60
60
|
work-id: YYYY-MM-DD-NNN | null # work-linked only; null otherwise
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
In `detailed` mode only, also save the Review Kit to `docs/review/.prepare/<prepare-id>.md`. In `smart`/`autopilot` mode, do not write it; pass it to the next phase in context.
|
|
64
64
|
|
|
65
65
|
## Validation Rules
|
|
66
66
|
|
|
@@ -56,7 +56,7 @@ learning-gaps:
|
|
|
56
56
|
work-id: YYYY-MM-DD-NNN | null # work-linked only, for the index cross-link; null otherwise
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
In `detailed` mode only, also save the Review Scope to `docs/review/.scope/<scope-id>.md`. In `smart`/`autopilot` mode, do not write it; pass it to the next phase in context.
|
|
60
60
|
|
|
61
61
|
## Validation Rules
|
|
62
62
|
|
package/skills/work/SKILL.md
CHANGED
|
@@ -35,6 +35,8 @@ Store in the context object:
|
|
|
35
35
|
interactionMode: detailed | smart | autopilot
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
**Artifact persistence:** intermediate phase artifacts are written to disk **only in `detailed` mode**. In `smart`/`autopilot` they are passed between phases in context and never written (see `references/interaction-mode-propagation.md#artifact-persistence`). Final deliverables are always written.
|
|
39
|
+
|
|
38
40
|
**Propagation:** `interactionMode` flows into the `triage`, `prepare`, `execute`, and `review` artifacts; each downstream phase reads it to adjust confirmation behaviour (detailed = pause every transition; autopilot = run all; smart = pause only on HIGH-risk).
|
|
39
41
|
|
|
40
42
|
> **Interaction mode is distinct from execution mode.** `interactionMode` governs _when to pause for the user_ (the same three modes as the `/plan` skill). **Execution mode** (inline / serial / parallel) governs _how multiple tasks are run_ and is selected in the Prepare phase. The two are carried independently through the pipeline.
|
|
@@ -59,7 +61,8 @@ Each phase runs sequentially: the orchestrator calls the phase module, receives
|
|
|
59
61
|
Before starting the work pipeline, the orchestrator verifies that required folders exist:
|
|
60
62
|
|
|
61
63
|
- `docs/tasks/` — must exist for reading (plan-based) or creating (ad-hoc) the task list
|
|
62
|
-
- `docs/plans/.work/.
|
|
64
|
+
- `docs/plans/.work/.review/` — must exist for saving the Work Report (always written)
|
|
65
|
+
- `docs/plans/.work/.triage/`, `docs/plans/.work/.prepare/`, `docs/plans/.work/.execute/` — **`detailed` mode only**, for saving the intermediate phase artifacts; do not create them in `smart`/`autopilot`
|
|
63
66
|
|
|
64
67
|
**Self-Healing:** If any are missing, the orchestrator automatically creates them (`mkdir -p`). This allows the work skill to run even if `arreio-init` wasn't explicitly run.
|
|
65
68
|
|
|
@@ -82,9 +85,9 @@ Every new feature or plan runs on its own git branch:
|
|
|
82
85
|
|
|
83
86
|
| Phase | Phase Module | Output Artifact | Saved to |
|
|
84
87
|
| ----- | ----------------------------- | ------------------------------------------------------------------ | ----------------------------------- |
|
|
85
|
-
| 1 | [Triage](modules/triage.md) | [Work manifest](references/templates/artifacts/work-manifest.md) + `work/<slug>` branch | `docs/plans/.work/.triage/<id>.md`
|
|
86
|
-
| 2 | [Prepare](modules/prepare.md) | [Execution plan](references/templates/artifacts/execution-plan.md) | `docs/plans/.work/.prepare/<id>.md` |
|
|
87
|
-
| 3 | [Execute](modules/execute.md) | [Execution log](references/templates/artifacts/execution-log.md) | `docs/plans/.work/.execute/<id>.md` |
|
|
88
|
+
| 1 | [Triage](modules/triage.md) | [Work manifest](references/templates/artifacts/work-manifest.md) + `work/<slug>` branch | `docs/plans/.work/.triage/<id>.md` _(detailed only)_ |
|
|
89
|
+
| 2 | [Prepare](modules/prepare.md) | [Execution plan](references/templates/artifacts/execution-plan.md) | `docs/plans/.work/.prepare/<id>.md` _(detailed only)_ |
|
|
90
|
+
| 3 | [Execute](modules/execute.md) | [Execution log](references/templates/artifacts/execution-log.md) | `docs/plans/.work/.execute/<id>.md` _(detailed only)_ |
|
|
88
91
|
| 4 | [Review](modules/review.md) | [Work report](references/templates/artifacts/work-report.md) | `docs/plans/.work/.review/<id>.md` |
|
|
89
92
|
|
|
90
93
|
### Quality Gates
|
|
@@ -143,6 +146,17 @@ Artifact templates live in [references/templates/artifacts/](references/template
|
|
|
143
146
|
| [execution-log.md](references/templates/artifacts/execution-log.md) | Execute |
|
|
144
147
|
| [work-report.md](references/templates/artifacts/work-report.md) | Review |
|
|
145
148
|
|
|
149
|
+
## Execution Rules
|
|
150
|
+
|
|
151
|
+
Follow these literally; they exist to keep runs consistent across agents.
|
|
152
|
+
|
|
153
|
+
1. **Run each module's steps in order**, starting with its Step 0 verification. Do not skip, merge, or reorder steps.
|
|
154
|
+
2. **Never invent values.** If a required input is missing, apply the recovery in [error-handling.md](references/error-handling.md) or ask the user; do not fill it with a plausible guess.
|
|
155
|
+
3. **Compute, don't copy.** Values defined by an algorithm or reference (`executionMode`, per-task risk floor, task status transitions, baseline result) must be evaluated with the real inputs; a recommendation is never `serial` just because it is the fallback. Example values in references and templates are illustrations, never defaults.
|
|
156
|
+
4. **One question at a time**, with 2–4 concrete options; build the question text from the current values.
|
|
157
|
+
5. **Announce phase transitions in one line** (e.g., "Phase 2/4 Prepare complete: <key result>") so the user can follow progress, even in Autopilot.
|
|
158
|
+
6. **Honor write rules:** intermediate phase artifacts only in `detailed` mode; final deliverables always.
|
|
159
|
+
|
|
146
160
|
## Core Principles
|
|
147
161
|
|
|
148
162
|
- **Deterministic Pipeline:** Phases always execute in sequence (no agent switching, no fallback paths).
|
|
@@ -156,6 +170,7 @@ Artifact templates live in [references/templates/artifacts/](references/template
|
|
|
156
170
|
- **Error Handling:** Fail explicitly, not silently; each phase has clear error handling with recovery suggestions.
|
|
157
171
|
- **Be Concrete:** Use specific files, components, and dependencies from the task artifacts.
|
|
158
172
|
- **Stay Portable:** Use repository-relative paths only.
|
|
173
|
+
- **Lean Persistence:** Phase artifacts hit disk only in `detailed` mode; `smart`/`autopilot` pass them in context to save tokens and time.
|
|
159
174
|
- **Transparent Artifacts:** Each phase produces an explicit output artifact for the next phase.
|
|
160
175
|
- **Interaction Mode Propagation:** `interactionMode` is read at the start of each subsequent phase and determines whether confirmation steps execute.
|
|
161
176
|
- **Single Source of Truth:** This skill defines all its own rules; it does not depend on any external agent rule file.
|
|
@@ -95,7 +95,7 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
95
95
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
96
96
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
97
97
|
|
|
98
|
-
Then save the artifact to `docs/plans/.work/.execute/<execute-id>.md` (ensure `interactionMode` and `executionMode` are included) and return it, with both mode values, to the Orchestrator for the transition to Phase 4 (Review).
|
|
98
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/plans/.work/.execute/<execute-id>.md` (ensure `interactionMode` and `executionMode` are included) and return it, with both mode values, to the Orchestrator for the transition to Phase 4 (Review). In `smart` and `autopilot` mode, do **not** write the file; pass the artifact to the next phase in context (see [Artifact Persistence](../references/interaction-mode-propagation.md#artifact-persistence)).
|
|
99
99
|
|
|
100
100
|
## Output: Execution Log Artifact
|
|
101
101
|
|
|
@@ -104,6 +104,6 @@ Then save the artifact to `docs/plans/.work/.execute/<execute-id>.md` (ensure `i
|
|
|
104
104
|
- Verify that each `completed` task has its `## Acceptance Criteria` checkbox flipped to `- [x]` and the index ticked `- [ ] → - [x]` (forward only — never reset).
|
|
105
105
|
- Verify that every `completed` task's single AC test is green with no new regression beyond the recorded baseline snapshot.
|
|
106
106
|
- Verify that the gate/transition behavior was **enforced from** [task-execution-rules.md](../references/task-execution-rules.md) and [execution-mode-selection.md](../references/execution-mode-selection.md) rather than re-defined inline.
|
|
107
|
-
- Verify that the artifact is saved to `docs/plans/.work/.execute/<execute-id>.md
|
|
107
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/plans/.work/.execute/<execute-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
108
108
|
|
|
109
109
|
> Pass the Execution Log to `review` (Phase 4) for the simplification, consolidation, and learnings-capture pass.
|
|
@@ -79,7 +79,7 @@ Select how `execution-list` is run. The three modes are defined canonically in *
|
|
|
79
79
|
1. **Compute the default** from the table above, reading each task's `priority` and any HIGH-risk flag carried from the manifest.
|
|
80
80
|
2. **Apply the risk floor (authoritative in [execution-mode-selection.md](../references/execution-mode-selection.md)):** any HIGH-risk task forces `inline` for that task; the user may not downgrade a HIGH-risk task below `inline`.
|
|
81
81
|
3. **Determine user preference:**
|
|
82
|
-
- **Detailed:** ask the user which mode to run,
|
|
82
|
+
- **Detailed:** ask the user which mode to run using the question template in [execution-mode-selection.md](../references/execution-mode-selection.md), filled with the computed values (including `Auto`).
|
|
83
83
|
- **Smart:** auto-select, unless a pause trigger fires (Step 7).
|
|
84
84
|
- **Autopilot:** auto-select; never ask.
|
|
85
85
|
4. **Honor user preference** unless it violates the risk floor; on violation, ask the user to accept `inline` instead.
|
|
@@ -126,7 +126,7 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
126
126
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
127
127
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
128
128
|
|
|
129
|
-
Then save the artifact to `docs/plans/.work/.prepare/<prepare-id>.md` (ensure `interactionMode` and `executionMode` are included) and return it, with both mode values, to the Orchestrator for the transition to Phase 3 (Execute).
|
|
129
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/plans/.work/.prepare/<prepare-id>.md` (ensure `interactionMode` and `executionMode` are included) and return it, with both mode values, to the Orchestrator for the transition to Phase 3 (Execute). In `smart` and `autopilot` mode, do **not** write the file; pass the artifact to the next phase in context (see [Artifact Persistence](../references/interaction-mode-propagation.md#artifact-persistence)).
|
|
130
130
|
|
|
131
131
|
## Output: Execution Plan Artifact
|
|
132
132
|
|
|
@@ -135,6 +135,6 @@ Then save the artifact to `docs/plans/.work/.prepare/<prepare-id>.md` (ensure `i
|
|
|
135
135
|
- Verify that the gate/policy details were **read from** [task-execution-rules.md](../references/task-execution-rules.md) rather than re-encoded inline (no second formula contradicting the authoritative reference).
|
|
136
136
|
- Verify that `execution-list` preserves the manifest's dependency order (no task before its dependencies) and that wave-grouping (if `parallel`) respects dependency layers.
|
|
137
137
|
- Verify that the `baseline` policy is recorded (a red baseline was surfaced, not hidden).
|
|
138
|
-
- Verify that the artifact is saved to `docs/plans/.work/.prepare/<prepare-id>.md
|
|
138
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/plans/.work/.prepare/<prepare-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
139
139
|
|
|
140
140
|
> Pass the Execution Plan to `execute` (Phase 3) for the test-first execution run.
|
|
@@ -166,7 +166,7 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
166
166
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
167
167
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
168
168
|
|
|
169
|
-
Then save the artifact to `docs/plans/.work/.triage/<triage-id>.md` (ensure `interactionMode` and `input-shape` are included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 2 (Prepare).
|
|
169
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/plans/.work/.triage/<triage-id>.md` (ensure `interactionMode` and `input-shape` are included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 2 (Prepare). In `smart` and `autopilot` mode, do **not** write the file; pass the artifact to the next phase in context (see [Artifact Persistence](../references/interaction-mode-propagation.md#artifact-persistence)).
|
|
170
170
|
|
|
171
171
|
## Output: Work Manifest Artifact
|
|
172
172
|
|
|
@@ -176,6 +176,6 @@ Then save the artifact to `docs/plans/.work/.triage/<triage-id>.md` (ensure `int
|
|
|
176
176
|
- Verify that `work-id` is correct for the shape (inherited `plan-id` for plan-based/task-file; freshly allocated for ad-hoc).
|
|
177
177
|
- Verify that `work-branch` is recorded in the manifest and, unless `null`, the repository is checked out on that branch.
|
|
178
178
|
- Verify that for `ad-hoc` input, the task files and `docs/tasks/<work-id>/index.md` were created.
|
|
179
|
-
- Verify that the artifact is saved to `docs/plans/.work/.triage/<triage-id>.md
|
|
179
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/plans/.work/.triage/<triage-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
180
180
|
|
|
181
181
|
> Pass the Work Manifest to `prepare` (Phase 2) for execution-mode selection and sequencing.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
title: Execution Mode Selection
|
|
3
3
|
description: Authoritative reference for the Prepare phase. Defines the three execution modes (inline/serial/parallel), their selection defaults, the risk floor (HIGH-risk forces inline, non-downgradable), and the per-mode flows Execute follows.
|
|
4
4
|
type: reference
|
|
5
|
-
version: 1.
|
|
6
|
-
timestamp: "2026-
|
|
5
|
+
version: 1.1
|
|
6
|
+
timestamp: "2026-10-01"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Execution Mode Selection
|
|
@@ -41,6 +41,25 @@ Authoritative reference for the **Prepare** phase (Step 3). Defines the three ex
|
|
|
41
41
|
parallel -> waves: [Wave0, Wave1, ...]
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
**Evaluation rules:**
|
|
45
|
+
|
|
46
|
+
- The `default_mode` branches are checked **in the order written**; the first match wins. `serial` is the result **only** when neither earlier branch matches — it is a fallback, not a neutral default.
|
|
47
|
+
- Evaluate with the real manifest data (task count, priorities, HIGH-risk flags, wave count). Do not copy a mode from an example.
|
|
48
|
+
- The recommendation shown to the user is `default_mode` after the risk floor.
|
|
49
|
+
|
|
50
|
+
**Detailed-mode question** — build it from computed values; replace every `<…>`:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
This run has <N> tasks in <W> wave(s); <H> HIGH-risk, <P0> P0. I recommend <default_mode>.
|
|
54
|
+
Which execution mode would you like?
|
|
55
|
+
- Inline: one task at a time, pause between tasks
|
|
56
|
+
- Serial: ordered list, no per-task pause
|
|
57
|
+
- Parallel: concurrent waves
|
|
58
|
+
- Auto: use the recommendation (result: <default_mode>)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Append ` [Recommended]` to the option equal to `default_mode`; if the risk floor makes an option unsafe, say so on that option.
|
|
62
|
+
|
|
44
63
|
## Risk Floor (authoritative, non-downgradable)
|
|
45
64
|
|
|
46
65
|
- **Any HIGH-risk task forces `inline` treatment for that task**, regardless of the selected `executionMode`.
|