arreio 1.1.0 → 1.2.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.
- package/README.md +55 -2
- package/package.json +1 -1
- 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
|
@@ -22,6 +22,7 @@ Run the **[Step 0 verification](../references/error-handling.md)**. Required inp
|
|
|
22
22
|
2. **Research Findings Artifact** with `research-id`, `Patterns Found`, `High-Risk Detection` (with `risk_level`), `Tech Stack`.
|
|
23
23
|
3. `interactionMode` present (default to `smart` if missing; log warning).
|
|
24
24
|
4. Cross-phase consistency: the research artifact's `scope-id` matches the scope output.
|
|
25
|
+
5. `force_deep` (boolean from the Orchestrator context; default `false`). It never changes `complexity` or `tier_recommended`; it only raises the amount of material this phase must produce (Steps 4–5).
|
|
25
26
|
|
|
26
27
|
### Step 1: Approach Selection
|
|
27
28
|
|
|
@@ -90,6 +91,8 @@ Score the design across five dimensions (0–3 each) and compute the complexity
|
|
|
90
91
|
2. Sum the scores (0–15).
|
|
91
92
|
3. Map to complexity level: `TRIVIAL | LOW | MEDIUM | HIGH | VERY_HIGH`.
|
|
92
93
|
4. Record all five scores, the total, and the complexity level in the Design Artifact.
|
|
94
|
+
5. **Compute `tier_recommended`** by evaluating `recommend_tier(complexity, risk_level)` from [plan-tier-selection.md](../references/plan-tier-selection.md) with the actual values from steps 1–3 (complexity-driven default, then the risk floor). Apply the Anti-Default Rules there: `HIGH`/`VERY_HIGH` → `deep`, `MEDIUM` → `standard`, `TRIVIAL`/`LOW` → `fast`, raised only by risk. Do not ignore `risk_level`, and do not pick `standard` by default. `force_deep` and user preference do **not** affect this value.
|
|
95
|
+
6. **If `force_deep` is true:** also draft rollout notes (feature flags, monitoring, data migration, rollback, performance baseline — or `Not applicable — <reason>` per item) and a cross-system integration map so Generate can fill the Deep sections from real content.
|
|
93
96
|
|
|
94
97
|
### Step 5: Alternative Approaches
|
|
95
98
|
|
|
@@ -97,7 +100,7 @@ Document the approaches considered but not selected, with rejection rationale.
|
|
|
97
100
|
|
|
98
101
|
- **TRIVIAL / LOW complexity:** At least 1 alternative (may be brief).
|
|
99
102
|
- **MEDIUM complexity:** At least 1 alternative with rationale.
|
|
100
|
-
- **HIGH / VERY_HIGH complexity:** At least 2 alternatives with side-by-side rationale.
|
|
103
|
+
- **HIGH / VERY_HIGH complexity, or `force_deep` is true:** At least 2 alternatives with side-by-side rationale.
|
|
101
104
|
|
|
102
105
|
Format: `**[Approach Name]**: [Description] → **Rejected because:** [Rationale]`
|
|
103
106
|
|
|
@@ -113,7 +116,7 @@ Format: `**[Approach Name]**: [Description] → **Rejected because:** [Rationale
|
|
|
113
116
|
1. **Assign a `design-id`** per [id-generation.md](../references/id-generation.md) (format `YYYY-MM-DD-NNN-design`, saved to `docs/plans/.design/`). Reuse it if the user later picks **Edit & Retry**.
|
|
114
117
|
|
|
115
118
|
2. Produce a **Design Artifact** block (as markdown) following the schema in [design.md](../references/templates/artifacts/design.md).
|
|
116
|
-
- Include the generated `design-id`, inherited `scope-id` and `research-id`, `interactionMode`, `complexity`, and `tier_recommended` (
|
|
119
|
+
- Include the generated `design-id`, inherited `scope-id` and `research-id`, `interactionMode`, `complexity`, and `tier_recommended` (the value computed in Step 4.5 — never re-derive it from complexity alone).
|
|
117
120
|
|
|
118
121
|
### Step 7: Present, Confirm, and Save
|
|
119
122
|
|
|
@@ -128,13 +131,14 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
128
131
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
129
132
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
130
133
|
|
|
131
|
-
Then save the artifact to `docs/plans/.design/<design-id>.md` (ensure `interactionMode`, `complexity`, and `tier_recommended` are included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 4 (Generate).
|
|
134
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/plans/.design/<design-id>.md` (ensure `interactionMode`, `complexity`, and `tier_recommended` are included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 4 (Generate). 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)).
|
|
132
135
|
|
|
133
136
|
## Output: Design Artifact
|
|
134
137
|
|
|
135
138
|
- Verify that the Design Artifact is complete and valid, containing all required fields: `design-id`, `scope-id`, `research-id`, `interactionMode`, `complexity`, `tier_recommended`, Approach, High-Level Technical Design, Implementation Units (each with Acceptance Criteria), Complexity Assessment, Alternative Approaches, Related Learnings, and Learning Gaps.
|
|
136
139
|
- Verify that the `complexity` value matches the threshold mapping from the five dimension scores.
|
|
137
|
-
- Verify that `tier_recommended`
|
|
138
|
-
- Verify that the artifact
|
|
140
|
+
- Verify that `tier_recommended` equals `recommend_tier(complexity, risk_level)` per [plan-tier-selection.md](../references/plan-tier-selection.md) (e.g., `complexity: HIGH` → `deep`, not `standard`).
|
|
141
|
+
- Verify that, when `force_deep` is true, the artifact contains ≥ 2 alternatives and the rollout/integration drafts from Step 4.6.
|
|
142
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/plans/.design/<design-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
139
143
|
|
|
140
144
|
> Pass the design artifact to `generate` (Phase 4) for final plan generation.
|
|
@@ -30,19 +30,18 @@ Select the plan tier based on complexity, risk, and user preference. For the ful
|
|
|
30
30
|
1. **Read inputs:**
|
|
31
31
|
- `complexity` from the Design Artifact
|
|
32
32
|
- `risk_level` from the Research Findings (carried via the Design Artifact's complexity assessment)
|
|
33
|
-
- `
|
|
33
|
+
- `force_deep` from the Orchestrator context (`--deep` flag; default `false`)
|
|
34
|
+
- `tier_recommended` from the Design Artifact — then **recompute** `recommend_tier(complexity, risk_level)`; if they differ, use the recomputed value and log a warning.
|
|
34
35
|
|
|
35
36
|
2. **Determine user preference:**
|
|
36
|
-
-
|
|
37
|
-
- In **
|
|
37
|
+
- If `force_deep` is true: set `tier = deep`, announce "Deep plan forced by `--deep`", and **skip the tier question in every mode**.
|
|
38
|
+
- In **Detailed** mode: Ask the user which tier they want using the prompt in [plan-tier-selection.md](../references/plan-tier-selection.md#asking-the-user-for-preference), filled with the computed complexity, risk level, and `tier_recommended`. Options: `Fast`, `Standard`, `Deep`, `Auto`.
|
|
39
|
+
- In **Smart** mode: Set `user_preference = auto`, unless a pause trigger fires (Deep tier without `force_deep`, preference conflicts with risk floor, or CRITICAL risk). If paused, ask the user.
|
|
38
40
|
- In **Autopilot** mode: Set `user_preference = auto`; never ask.
|
|
39
41
|
|
|
40
|
-
3. **
|
|
41
|
-
- Start from the complexity-driven default tier.
|
|
42
|
-
- Upgrade if risk warrants it (respect the risk floor).
|
|
43
|
-
- Honor user preference unless it violates the risk floor.
|
|
42
|
+
3. **Evaluate `select_tier(...)`** from [plan-tier-selection.md](../references/plan-tier-selection.md) with the real values. `auto` resolves to `tier_recommended` — never to `Standard` by default. Honor an explicit preference unless it is below the risk floor.
|
|
44
43
|
|
|
45
|
-
4. **Record the selected tier** as `tier` and the algorithm's recommendation as `tier_recommended` (for audit when the user overrides).
|
|
44
|
+
4. **Record the selected tier** as `tier` and the algorithm's recommendation as `tier_recommended` (for audit when the user overrides or `--deep` is used).
|
|
46
45
|
|
|
47
46
|
### Step 2: Plan Rendering
|
|
48
47
|
|
|
@@ -100,6 +99,7 @@ Render the final plan from the [Final Plan template](../references/templates/art
|
|
|
100
99
|
5. **Build Operational / Rollout Notes** (Standard/Deep only) from the Design's rollout units:
|
|
101
100
|
- Feature flags, monitoring, data migration, rollback plan, performance baseline
|
|
102
101
|
- Skip the section entirely if not applicable (Fast tier, or no rollout units)
|
|
102
|
+
- **Deep tier:** every required item (feature flags, monitoring, data migration, rollback plan, performance baseline) and the cross-system integration map must appear; write `Not applicable — <reason>` for items that truly do not apply (typical for `--deep` on a small change). Never invent content.
|
|
103
103
|
|
|
104
104
|
6. **Right-size:** Per Plan Skill core principles — small tasks → short plans; complex work → more structure. Do not pad a Fast plan with empty sections; do not omit required sections from a Deep plan.
|
|
105
105
|
|
|
@@ -112,7 +112,7 @@ Render the final plan from the [Final Plan template](../references/templates/art
|
|
|
112
112
|
|
|
113
113
|
Apply the **[phase confirmation behavior](../references/interaction-mode-propagation.md)** for the current `interactionMode`, using these generate-specific **Smart pause triggers**:
|
|
114
114
|
|
|
115
|
-
- The selected tier is `Deep
|
|
115
|
+
- The selected tier is `Deep` and `force_deep` is false, or
|
|
116
116
|
- The user's tier preference conflicts with the risk floor, or
|
|
117
117
|
- Research reported CRITICAL risk (Security or Payments).
|
|
118
118
|
|
|
@@ -111,12 +111,12 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
111
111
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
112
112
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
113
113
|
|
|
114
|
-
On any proceed/skip path: save the artifact to `docs/plans/.research/<research-id>.md` (ensure `interactionMode` is included), then return the artifact and `interactionMode` to the Orchestrator for the transition to Phase 3 (Design).
|
|
114
|
+
On any proceed/skip path: in `detailed` mode only, save the artifact to `docs/plans/.research/<research-id>.md` (ensure `interactionMode` is included), then return the artifact and `interactionMode` to the Orchestrator for the transition to Phase 3 (Design). 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)).
|
|
115
115
|
|
|
116
116
|
## Output: Research Findings Artifact
|
|
117
117
|
|
|
118
118
|
- Verify that the Research Findings Artifact is complete and valid, containing all required fields, and it accurately reflects the user's input and any existing plans, learnings, or requirements found.
|
|
119
119
|
- Verify that the `interactionMode` value is set correctly based on the user's selection in the Orchestrator skill.
|
|
120
|
-
- Verify that the artifact is saved to `docs/plans/.research/<research-id>.md`
|
|
120
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/plans/.research/<research-id>.md`; in `smart`/`autopilot` mode, verify that **no** file was written and the artifact was passed to the next phase in context.
|
|
121
121
|
|
|
122
122
|
> Pass the research findings to `design` (Phase 3) for the design phase.
|
|
@@ -110,12 +110,12 @@ Apply the **[phase confirmation behavior](../references/interaction-mode-propaga
|
|
|
110
110
|
- **Smart:** pause only when a pause trigger above is true; otherwise auto-proceed.
|
|
111
111
|
- **Autopilot:** auto-proceed (no confirmation).
|
|
112
112
|
|
|
113
|
-
Then save the artifact to `docs/plans/.scope/<scope-id>.md` (ensure `interactionMode` is included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 2 (Research).
|
|
113
|
+
Then, **in `detailed` mode only**, save the artifact to `docs/plans/.scope/<scope-id>.md` (ensure `interactionMode` is included) and return it, with the `interactionMode` value, to the Orchestrator for the transition to Phase 2 (Research). 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)).
|
|
114
114
|
|
|
115
115
|
## Output: Scoped Context Artifact
|
|
116
116
|
|
|
117
117
|
- Verify that the Scoped Context Artifact is complete and valid, containing all required fields, and it accurately reflects the user's input and any existing plans, learnings, or requirements found.
|
|
118
118
|
- Verify that the `interactionMode` value is set correctly based on the user's selection in the Orchestrator skill.
|
|
119
|
-
- Verify that the artifact is saved to `docs/plans/.scope/<scope-id>.md`
|
|
119
|
+
- Verify that, in `detailed` mode, the artifact is saved to `docs/plans/.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.
|
|
120
120
|
|
|
121
121
|
> Pass the scoped context to `research` (Phase 2) for the research phase.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
title: Design Complexity Assessment
|
|
3
3
|
description: Reference for the Design phase. Defines the complexity scoring algorithm across five dimensions, the heuristics for assigning complexity levels, and how complexity maps to interaction-mode pause behavior.
|
|
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
|
# Design Complexity Assessment
|
|
@@ -22,15 +22,22 @@ Score each dimension from 0 to 3, then sum for a total complexity score (0–15)
|
|
|
22
22
|
| ----------------------- | ----------------------- | ----------------------- | --------------------------------- | --------------------------------- |
|
|
23
23
|
| **Scope Breadth** | Single file | 2–3 files, one module | Multiple modules | Cross-system / cross-repo |
|
|
24
24
|
| **Integration Surface** | No new integrations | One new internal API | Multiple internal or one external | Multiple external / third-party |
|
|
25
|
-
| **Risk Level** | LOW (from research) | MEDIUM (
|
|
25
|
+
| **Risk Level** | LOW (from research) | MEDIUM (from research) | HIGH (from research) | CRITICAL (from research) |
|
|
26
26
|
| **Novelty** | Existing pattern reused | Minor variation | New pattern in familiar domain | New pattern in unfamiliar domain |
|
|
27
27
|
| **Data / Migration** | No data changes | Additive, backward-safe | Schema change with migration path | Destructive or no rollback path |
|
|
28
28
|
|
|
29
|
+
### Scoring Procedure (follow in order)
|
|
30
|
+
|
|
31
|
+
1. For each of the five dimensions, write one line of **evidence** (file count, named integrations, matched pattern, migration note) before choosing the score. A score without evidence is not allowed.
|
|
32
|
+
2. Pick the **lowest score whose column matches the evidence**; if evidence sits between two columns, take the higher (see Notes).
|
|
33
|
+
3. Add the five scores, then apply the threshold mapping below literally. Do not adjust the level by "feel".
|
|
34
|
+
4. Do not default to `MEDIUM`: a 1-file tweak is `TRIVIAL`/`LOW`, a cross-module change with an external service is `HIGH`. Let the arithmetic decide.
|
|
35
|
+
|
|
29
36
|
### Dimension Definitions
|
|
30
37
|
|
|
31
38
|
- **Scope Breadth** — How many files, modules, or systems the change touches. Read from the Implementation Units' `Files` lists.
|
|
32
39
|
- **Integration Surface** — Number and kind of APIs/services the solution must connect to. Pull from the Research Findings `Patterns Found` and `Tech Stack`.
|
|
33
|
-
- **Risk Level** — Inherited from the Research phase `High-Risk Detection`. Do not re-score;
|
|
40
|
+
- **Risk Level** — Inherited from the Research phase `High-Risk Detection`. Do not re-score: map the inherited level to its score (`LOW`=0, `MEDIUM`=1, `HIGH`=2, `CRITICAL`=3). The artifact records the level name; the score is used only in the sum.
|
|
34
41
|
- **Novelty** — Whether the approach reuses an existing local pattern or introduces a new one. Compare the chosen approach against `Patterns Found` confidence levels.
|
|
35
42
|
- **Data / Migration** — Whether data schemas change and whether the change is reversible. Read from the Design's `Operational / Rollout Notes` draft.
|
|
36
43
|
|
|
@@ -85,7 +92,7 @@ Complexity feeds into tier selection in the Generate phase:
|
|
|
85
92
|
| MEDIUM | Standard | Full template; phased units; risk table |
|
|
86
93
|
| HIGH / VERY_HIGH | Deep | Full template + alternatives + rollout ops |
|
|
87
94
|
|
|
88
|
-
See [plan-tier-selection.md](plan-tier-selection.md) for the complete
|
|
95
|
+
The table is the **complexity-only** default. Design then applies the risk floor with `recommend_tier(complexity, risk_level)` and writes the result as `tier_recommended`. See [plan-tier-selection.md](plan-tier-selection.md) for the complete algorithm, including user preference and the `--deep` override (which does not change `complexity` or `tier_recommended`).
|
|
89
96
|
|
|
90
97
|
## Worked Example
|
|
91
98
|
|
|
@@ -95,18 +102,20 @@ See [plan-tier-selection.md](plan-tier-selection.md) for the complete tier-selec
|
|
|
95
102
|
| ------------------- | ----- | ------------------------------------------------- |
|
|
96
103
|
| Scope Breadth | 2 | Multiple modules: middleware, store, client |
|
|
97
104
|
| Integration Surface | 2 | One external system (Redis) |
|
|
98
|
-
| Risk Level | 2 | HIGH (
|
|
105
|
+
| Risk Level | 2 | HIGH (inherited from research) |
|
|
99
106
|
| Novelty | 1 | Redis is new to the codebase but pattern is known |
|
|
100
107
|
| Data / Migration | 1 | Additive; sessions expire naturally |
|
|
101
108
|
| **Total** | **8** | **Complexity: HIGH** |
|
|
102
109
|
|
|
110
|
+
Tier: complexity HIGH → Deep; risk HIGH does not lower it → `tier_recommended: deep`.
|
|
111
|
+
|
|
103
112
|
Result: In Smart mode, this would **not** pause (HIGH, not VERY_HIGH) unless the secondary flags trigger (e.g., 3+ learning gaps).
|
|
104
113
|
|
|
105
114
|
## Error Handling
|
|
106
115
|
|
|
107
116
|
| Scenario | Recovery |
|
|
108
117
|
| ---------------------------------------------------------------- | ---------------------------------------- |
|
|
109
|
-
| Risk level missing from Research artifact | Default to MEDIUM (score
|
|
118
|
+
| Risk level missing from Research artifact | Default to MEDIUM (score 1); log warning |
|
|
110
119
|
| Implementation Units not yet drafted | Defer scoring until units exist |
|
|
111
120
|
| Two dimensions conflict (e.g., LOW risk + destructive migration) | Use the higher score; log warning |
|
|
112
121
|
| Score lands exactly on a threshold (e.g., 7) | Round up to the higher level (HIGH) |
|
|
@@ -145,6 +145,7 @@ In addition to per-phase verification, the Orchestrator should verify consistenc
|
|
|
145
145
|
| `scope-id` in design artifact matches scope output | Reject design; re-run from research |
|
|
146
146
|
| `plan-id` references the correct design artifact | Reject generate; re-run from design |
|
|
147
147
|
| `interactionMode` is identical across all artifacts | Log warning; use earliest non-default value |
|
|
148
|
+
| `tier_recommended` equals `recommend_tier(complexity, risk_level)` | Recompute; use the recomputed value; log warning |
|
|
148
149
|
|
|
149
150
|
## Notes
|
|
150
151
|
|
|
@@ -12,7 +12,7 @@ Shared ID algorithm for the `scope`, `research`, `design`, and `generate` 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/plans/.scope/<id>.md` |
|
|
18
18
|
| Research | `YYYY-MM-DD-NNN-research` | `docs/plans/.research/<id>.md` |
|
|
@@ -21,6 +21,8 @@ Shared ID algorithm for the `scope`, `research`, `design`, and `generate` phases
|
|
|
21
21
|
|
|
22
22
|
`<kebab-name>` is the plan title in lowercase-hyphen form (no stopwords).
|
|
23
23
|
|
|
24
|
+
> **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 the plan-id `YYYY-MM-DD-NNN` once at Scope by counting today's final plan files in `docs/plans/` (excluding hidden dirs); every phase id is `<plan-id>-<phase>` (e.g. `2026-09-02-001-scope`). See [Artifact Persistence](interaction-mode-propagation.md#artifact-persistence).
|
|
25
|
+
|
|
24
26
|
## Algorithm (new artifact)
|
|
25
27
|
|
|
26
28
|
```
|
|
@@ -25,11 +25,15 @@ Reference for how `interactionMode` propagates through the Plan pipeline (Scope
|
|
|
25
25
|
| **Scope** | Present artifact; ask Proceed/Edit/Abort | Auto-proceed; pause if 3+ learning gaps, non-software domain, or conflicting requirements | Auto-proceed |
|
|
26
26
|
| **Research** | Show findings; ask Proceed/Edit/Abort | Auto-proceed; pause if HIGH/CRITICAL risk with <3 patterns, or zero patterns found | Auto-proceed |
|
|
27
27
|
| **Design** | Show units; ask Proceed/Edit/Abort | Auto-proceed; pause if VERY_HIGH complexity, HIGH risk + <3 patterns, 3+ scope gaps, or Novelty=3 | Auto-proceed |
|
|
28
|
-
| **Generate** | Show plan; ask Proceed/Edit/Skip/Abort | Auto-proceed; pause if tier=Deep, tier preference conflicts with risk floor, or CRITICAL risk | Auto-proceed |
|
|
28
|
+
| **Generate** | Show plan; ask Proceed/Edit/Skip/Abort | Auto-proceed; pause if tier=Deep (not when forced by `--deep`), tier preference conflicts with risk floor, or CRITICAL risk | Auto-proceed |
|
|
29
29
|
| **Tasks** | Ask Create/Review/No (full file content shown) | Ask Create/Review/No (summary shown) | Ask Create/Review/No (always asks) |
|
|
30
30
|
|
|
31
31
|
**Smart mode pauses only on each phase's documented triggers above** (the canonical list lives in each module's confirmation step; this table is a summary).
|
|
32
32
|
|
|
33
|
+
## `--deep` Flag
|
|
34
|
+
|
|
35
|
+
`/plan --deep <task>` sets `force_deep: true` in the Orchestrator context. It is orthogonal to `interactionMode`: in every mode the Generate phase selects the Deep tier without asking about tier. It does not add pauses and removes the Smart-mode "tier is Deep" pause. See [plan-tier-selection.md](plan-tier-selection.md#deep-override---deep).
|
|
36
|
+
|
|
33
37
|
## Artifact Schema
|
|
34
38
|
|
|
35
39
|
All phase artifacts (Scope 1-4) include:
|
|
@@ -73,3 +77,23 @@ status: pending | complete | failed
|
|
|
73
77
|
| Invalid mode value | Reject; re-prompt Orchestrator |
|
|
74
78
|
| Artifact missing mode field | Assume "smart"; log warning; continue |
|
|
75
79
|
| Timeout/connection lost | Pause; ask user to retry or abort |
|
|
80
|
+
|
|
81
|
+
## Artifact Persistence
|
|
82
|
+
|
|
83
|
+
Phase artifacts (Scope, Research, Design) are **handoff data between phases**, not deliverables. Whether they are written to disk depends on `interactionMode`:
|
|
84
|
+
|
|
85
|
+
| Mode | Phase artifacts (`docs/plans/.scope/`, `.research/`, `.design/`) | Phase handoff |
|
|
86
|
+
| ------------- | ---------------------------------------- | ---------------------------------------------- |
|
|
87
|
+
| **Detailed** | Written to the hidden directories (audit trail; creating the directory on first use) | Artifact is written, shown, then passed on |
|
|
88
|
+
| **Smart** | **Not written** | Artifact is held in context and passed in-memory to the next phase |
|
|
89
|
+
| **Autopilot** | **Not written** | Artifact is held in context and passed in-memory to the next phase |
|
|
90
|
+
|
|
91
|
+
**Always written, in every mode:** the final plan in `docs/plans/` (+ `docs/plans/index.md`) and any task files in `docs/tasks/<plan-id>/`.
|
|
92
|
+
|
|
93
|
+
**Rules:**
|
|
94
|
+
|
|
95
|
+
- 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.
|
|
96
|
+
- Never create the hidden directories in `smart`/`autopilot`; no placeholder or empty files.
|
|
97
|
+
- **ID allocation without files:** Allocate the plan-id `YYYY-MM-DD-NNN` once at Scope by counting today's final plan files in `docs/plans/` (excluding hidden dirs); every phase id is `<plan-id>-<phase>` (e.g. `2026-09-02-001-scope`).
|
|
98
|
+
- If the user switches to `detailed` mid-run, write the artifacts produced so far, then continue writing.
|
|
99
|
+
- Because nothing is on disk, **Edit & Retry** reuses the in-memory artifact and its id (no file to overwrite).
|
|
@@ -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.
|