@deftai/directive-content 0.105.0 → 0.107.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/Taskfile.yml +13 -0
- package/UPGRADING.md +4 -4
- package/commands.md +22 -14
- package/contracts/agent-hook-readiness.md +3 -3
- package/contracts/closed-verb-authz.md +14 -2
- package/contracts/design-critique.md +354 -0
- package/contracts/issue-eval.md +77 -0
- package/contracts/path-write-fence.md +126 -1
- package/contracts/runtime-authority.md +2 -0
- package/contracts/scm-readiness.md +2 -2
- package/docs/scope-provenance.md +1 -1
- package/main.md +1 -1
- package/package.json +1 -1
- package/packs/skills/skills-pack-0.1.json +35 -7
- package/packs/strategies/strategies-pack-0.1.json +13 -13
- package/scm/github.md +35 -2
- package/skills/deft-directive-build/SKILL.md +1 -1
- package/skills/deft-directive-design-critique/SKILL.md +55 -0
- package/skills/deft-directive-feedback/SKILL.md +11 -2
- package/skills/deft-directive-issue-eval/SKILL.md +48 -0
- package/skills/deft-directive-probe/SKILL.md +4 -2
- package/skills/deft-directive-release/SKILL.md +5 -3
- package/skills/deft-directive-review-cycle/SKILL.md +1 -1
- package/skills/deft-directive-swarm/SKILL.md +1 -1
- package/skills/deft-directive-triage/SKILL.md +3 -2
- package/strategies/README.md +4 -4
- package/strategies/bdd.md +6 -6
- package/strategies/discuss.md +8 -8
- package/strategies/emit-hints.md +6 -6
- package/strategies/enterprise.md +18 -18
- package/strategies/interview.md +4 -4
- package/strategies/map.md +6 -6
- package/strategies/probe.md +22 -18
- package/strategies/rapid.md +16 -16
- package/strategies/research.md +6 -6
- package/strategies/roadmap.md +1 -1
- package/strategies/speckit.md +52 -52
- package/strategies/v0-20-contract.md +21 -21
- package/strategies/yolo.md +12 -12
- package/tasks/engine.yml +2 -0
- package/tasks/feedback.yml +1 -1
- package/tasks/occupancy.yml +11 -0
- package/tasks/policy.yml +10 -0
- package/tasks/scm.yml +14 -2
- package/tasks/scope.yml +2 -2
- package/tasks/session.yml +11 -0
- package/tasks/triage-evaluate.yml +22 -0
- package/tasks/verify.yml +22 -2
- package/templates/agent-prompt-preamble.md +23 -6
- package/templates/agents-entry.md +6 -6
- package/templates/design-critique-brief.md +55 -0
package/strategies/interview.md
CHANGED
|
@@ -94,15 +94,15 @@ See `strategies/map.md` for standalone behavior.
|
|
|
94
94
|
- ! Previously-run strategies MUST display with a run count (e.g., `Research (ran 1×)`)
|
|
95
95
|
- ! No strategy is ever removed from the gate — users can re-run any strategy
|
|
96
96
|
- ! Run counts are read from `completedStrategies` in
|
|
97
|
-
[`./
|
|
97
|
+
[`./xbrief/plan.xbrief.json`](../vbrief/vbrief.md#strategy-chaining-fields)
|
|
98
98
|
|
|
99
99
|
### State Tracking
|
|
100
100
|
|
|
101
101
|
- ! On completion of a preparatory strategy, update `completedStrategies` in
|
|
102
|
-
`./
|
|
102
|
+
`./xbrief/plan.xbrief.json`: increment `runCount`, append artifact paths
|
|
103
103
|
- ! Append all new artifact paths to the flat `artifacts` array
|
|
104
104
|
- ! The next strategy and eventual spec generation MUST load all artifacts
|
|
105
|
-
listed in `plan.
|
|
105
|
+
listed in `plan.xbrief.json`
|
|
106
106
|
- ! On brownfield **Add scope** or **Update project definition**, load existing
|
|
107
107
|
PROJECT-DEFINITION identity and preparatory artifacts before asking questions
|
|
108
108
|
|
|
@@ -578,7 +578,7 @@ diff only on the second pass or when the user explicitly asks for it.
|
|
|
578
578
|
|
|
579
579
|
### State Preservation
|
|
580
580
|
|
|
581
|
-
- ! All `completedStrategies` and `artifacts` in `plan.
|
|
581
|
+
- ! All `completedStrategies` and `artifacts` in `plan.xbrief.json` MUST be
|
|
582
582
|
preserved across revisions
|
|
583
583
|
- ! The chaining gate will show updated run counts reflecting the full session history
|
|
584
584
|
|
package/strategies/map.md
CHANGED
|
@@ -50,7 +50,7 @@ Mapping produces artifacts that feed into planning so the agent **follows existi
|
|
|
50
50
|
|
|
51
51
|
! Before writing output artifacts, follow the [Preparatory Guard](./artifact-guards.md#preparatory-guard-light).
|
|
52
52
|
|
|
53
|
-
Produce a single `
|
|
53
|
+
Produce a single `xbrief/proposed/{project}-codebase-map.xbrief.json` with four narratives:
|
|
54
54
|
|
|
55
55
|
! After emitting this scope vBRIEF, surface the GitHub-issue tracking hint from [emit-hints.md](./emit-hints.md) — name all three patterns (none / `--umbrella` / `--per-vbrief`).
|
|
56
56
|
|
|
@@ -105,9 +105,9 @@ Produce a single `vbrief/proposed/{project}-codebase-map.vbrief.json` with four
|
|
|
105
105
|
|
|
106
106
|
### Artifact Registration (both modes)
|
|
107
107
|
|
|
108
|
-
- ! On completion, register artifacts in `./
|
|
108
|
+
- ! On completion, register artifacts in `./xbrief/plan.xbrief.json`:
|
|
109
109
|
- Update `completedStrategies`: increment `runCount` for `"map"`,
|
|
110
|
-
append artifact path (`
|
|
110
|
+
append artifact path (`xbrief/proposed/{project}-codebase-map.xbrief.json`)
|
|
111
111
|
- Append the path to the flat `artifacts` array
|
|
112
112
|
- ! The mapping narratives MUST inform subsequent strategies and spec generation:
|
|
113
113
|
- `Conventions` -> implementation constraints
|
|
@@ -130,7 +130,7 @@ Mapping complete. Here's what I found:
|
|
|
130
130
|
- Conventions: [brief summary]
|
|
131
131
|
- Concerns: [brief summary]
|
|
132
132
|
|
|
133
|
-
Artifact:
|
|
133
|
+
Artifact: xbrief/proposed/{project}-codebase-map.xbrief.json
|
|
134
134
|
|
|
135
135
|
What would you like to do next?
|
|
136
136
|
|
|
@@ -141,7 +141,7 @@ What would you like to do next?
|
|
|
141
141
|
```
|
|
142
142
|
|
|
143
143
|
- ! Present the narrative summary before offering options
|
|
144
|
-
- ! If the user chooses a strategy, invoke it (the artifact persists in `
|
|
144
|
+
- ! If the user chooses a strategy, invoke it (the artifact persists in `xbrief/proposed/`)
|
|
145
145
|
- ! If the user chooses "done", confirm the artifact location and exit cleanly
|
|
146
146
|
- ~ Recommend option 1 (interview) when the user's goal is to build or extend
|
|
147
147
|
- ~ Recommend option 4 (done) when the user's goal is exploration or onboarding
|
|
@@ -173,7 +173,7 @@ Before an interview — analysis-first, then spec:
|
|
|
173
173
|
Map this codebase, then use the interview strategy to plan [feature].
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
Or set in PROJECT-DEFINITION.
|
|
176
|
+
Or set in PROJECT-DEFINITION.xbrief.json narratives:
|
|
177
177
|
```json
|
|
178
178
|
"Strategy": "strategies/map.md"
|
|
179
179
|
```
|
package/strategies/probe.md
CHANGED
|
@@ -73,46 +73,50 @@ Walk the decision tree depth-first. For each unresolved branch:
|
|
|
73
73
|
|
|
74
74
|
! Before writing output artifacts, follow the [Preparatory Guard](./artifact-guards.md#preparatory-guard-light).
|
|
75
75
|
|
|
76
|
-
### Mechanical guard (`
|
|
76
|
+
### Mechanical guard (`deft probe-session`)
|
|
77
77
|
|
|
78
78
|
Probe completion is enforced mechanically — not by prose alone. A per-clone
|
|
79
79
|
session file at `.deft/probe-session.json` records whether the session is still
|
|
80
80
|
`interrogate` or `complete`, plus the probe `target`, `currentBranch`, and
|
|
81
81
|
`resolvedDecisions`.
|
|
82
82
|
|
|
83
|
+
**Waiver (#3556):** The probe skill keeps the no-artifact guard and does not
|
|
84
|
+
require `deft probe-session`. This strategy names `deft probe-session`.
|
|
85
|
+
Silence is not agreement.
|
|
86
|
+
|
|
83
87
|
- ! At probe start, record the session:
|
|
84
|
-
`
|
|
88
|
+
`deft probe-session start --target <scope>`
|
|
85
89
|
- ! While interrogating, record locked/deferred/risk-accepted decisions and
|
|
86
90
|
branch focus with `record` / `set-branch` subcommands as branches resolve
|
|
87
91
|
- ! Before writing probe output or registering `completedStrategies.probe`,
|
|
88
92
|
mark the session complete:
|
|
89
|
-
`
|
|
93
|
+
`deft probe-session complete`
|
|
90
94
|
- ! Immediately before artifact or plan registration, run the guard:
|
|
91
|
-
- `
|
|
92
|
-
- `
|
|
95
|
+
- `deft probe-session guard-artifact --path xbrief/proposed/YYYY-MM-DD-{scope}-probe.xbrief.json`
|
|
96
|
+
- `deft probe-session guard-plan-registration`
|
|
93
97
|
- ⊗ Write probe artifacts or update `completedStrategies.probe` while the
|
|
94
98
|
session state is still `interrogate` — the guard exits non-zero with an
|
|
95
99
|
actionable recovery message
|
|
96
100
|
|
|
97
101
|
**Recovery when the guard blocks handoff:** continue interrogation until the
|
|
98
102
|
[transition criteria](#transition-criteria-probe-complete) are met, record
|
|
99
|
-
decisions with `
|
|
100
|
-
then retry the guard before writing artifacts or updating `plan.
|
|
103
|
+
decisions with `deft probe-session record`, run `deft probe-session complete`,
|
|
104
|
+
then retry the guard before writing artifacts or updating `plan.xbrief.json`.
|
|
101
105
|
|
|
102
|
-
`{scope}` is the project name from `PROJECT-DEFINITION.
|
|
106
|
+
`{scope}` is the project name from `PROJECT-DEFINITION.xbrief.json`, or the
|
|
103
107
|
feature/component name if probing a sub-scope. Use the same value consistently
|
|
104
108
|
throughout the session. Examples: `my-app-probe`, `auth-probe`.
|
|
105
109
|
|
|
106
|
-
- ! Produce a `
|
|
110
|
+
- ! Produce a `xbrief/proposed/YYYY-MM-DD-{scope}-probe.xbrief.json` scope xBRIEF with three mandatory narratives:
|
|
107
111
|
- `LockedDecisions` — what was resolved and why (when the lock is an intentional under-build, include dual-path graduation fields: `now`, `later`, `graduationRef`, `trigger`, `status` — see [Graduation (Now+Later)](#graduation-nowlater-when-locking-an-under-build-2899))
|
|
108
112
|
- `SurfacedRisks` — concerns raised, even if not fully resolved
|
|
109
113
|
- `DeferredDecisions` — explicitly acknowledged items with justification
|
|
110
114
|
- ! Each entry in a narrative includes: **question asked**, **answer given**, **status** (locked / deferred / risk-accepted)
|
|
111
|
-
- ! This
|
|
112
|
-
- ! Persist significant decisions as
|
|
113
|
-
- ⊗ Write probe output to a hand-authored markdown file — use
|
|
115
|
+
- ! This xBRIEF is injected into all downstream work: planning, execution, verification
|
|
116
|
+
- ! Persist significant decisions as xBRIEF narratives on the relevant plan items
|
|
117
|
+
- ⊗ Write probe output to a hand-authored markdown file — use xBRIEF narratives for token-efficient, machine-consumable agent consumption (mirrors the [discuss](./discuss.md) and [research](./research.md) output contracts so the chaining-gate flow-through guarantee is mechanical, not aspirational)
|
|
114
118
|
|
|
115
|
-
! After emitting the probe scope
|
|
119
|
+
! After emitting the probe scope xBRIEF to `xbrief/proposed/`, surface the GitHub-issue tracking hint from [emit-hints.md](./emit-hints.md) — name all three patterns (none / `--umbrella` / `--per-vbrief`).
|
|
116
120
|
|
|
117
121
|
## Graduation (Now+Later) when locking an under-build (#2899)
|
|
118
122
|
|
|
@@ -142,15 +146,15 @@ Glossary naming for Graduation is owned by sibling work (#2907); this section is
|
|
|
142
146
|
|
|
143
147
|
## Then: Chaining Gate
|
|
144
148
|
|
|
145
|
-
After the probe is complete and `
|
|
149
|
+
After the probe is complete and `xbrief/proposed/YYYY-MM-DD-{scope}-probe.xbrief.json` is
|
|
146
150
|
written, return to the [chaining gate](./interview.md#chaining-gate).
|
|
147
151
|
|
|
148
|
-
- ! On completion, register artifacts in `./
|
|
152
|
+
- ! On completion, register artifacts in `./xbrief/plan.xbrief.json`:
|
|
149
153
|
- Update `completedStrategies`: increment `runCount` for `"probe"`,
|
|
150
|
-
append artifact path (`
|
|
154
|
+
append artifact path (`xbrief/proposed/YYYY-MM-DD-{scope}-probe.xbrief.json`)
|
|
151
155
|
- Append the path to the flat `artifacts` array
|
|
152
156
|
- ! Return to [interview.md Chaining Gate](./interview.md#chaining-gate)
|
|
153
|
-
- ! The `LockedDecisions`, `SurfacedRisks`, and `DeferredDecisions` narratives from `
|
|
157
|
+
- ! The `LockedDecisions`, `SurfacedRisks`, and `DeferredDecisions` narratives from `xbrief/proposed/YYYY-MM-DD-{scope}-probe.xbrief.json` MUST flow
|
|
154
158
|
into subsequent strategies and spec generation:
|
|
155
159
|
- Locked decisions become constraints in the specification
|
|
156
160
|
- Surfaced risks become NFRs or explicit acceptance criteria
|
|
@@ -174,4 +178,4 @@ written, return to the [chaining gate](./interview.md#chaining-gate).
|
|
|
174
178
|
- ⊗ Using codebase exploration as a substitute for asking the user about deliberate design choices
|
|
175
179
|
- ⊗ Stopping when the conversation feels comfortable — stop when no new branches emerge
|
|
176
180
|
- ⊗ Ending after probe without chaining back to the gate (chained mode; in standalone context, returning to the invoking strategy's menu satisfies the completion requirement per the [standalone-context rule](#then-chaining-gate))
|
|
177
|
-
- ⊗ Writing probe output to a plain markdown file (`{scope}-probe.md`) instead of the canonical `
|
|
181
|
+
- ⊗ Writing probe output to a plain markdown file (`{scope}-probe.md`) instead of the canonical `xbrief/proposed/YYYY-MM-DD-{scope}-probe.xbrief.json` scope xBRIEF — plain markdown bypasses the [Preparatory Guard](./artifact-guards.md#preparatory-guard-light) and breaks the downstream-consumer flow-through guarantee
|
package/strategies/rapid.md
CHANGED
|
@@ -10,7 +10,7 @@ Quick prototyping workflow -- v0.20 date-prefixed story vBRIEF output with minim
|
|
|
10
10
|
|
|
11
11
|
**Ceremony dial (#3214):** when `plan.policy.ceremonyDial` (or session inputs) selects depth `rapid` — default for S-task × frontier model on a project-shaped session — session ritual / gate depth follows this light path. See `task policy:show --field=ceremonyDial`. Non-project sessions select `minimal` and compose the #3014 minimal AGENTS profile research pointer instead.
|
|
12
12
|
|
|
13
|
-
**v0.20 note (s5-migrate-speckit-rapid-enterprise / #1166):** Rapid now emits only the canonical v0.20 shape (date-prefixed story vBRIEFs in proposed/, full PROJECT-DEFINITION.
|
|
13
|
+
**v0.20 note (s5-migrate-speckit-rapid-enterprise / #1166):** Rapid now emits only the canonical v0.20 shape (date-prefixed story vBRIEFs in proposed/, full PROJECT-DEFINITION.xbrief.json via task project:render, seeded lifecycle folders, no legacy specification.vbrief.json). See the dedicated ## v0.20 Output Shape section and the canonical contract `strategies/v0-20-contract.md` (s1-contract of #1166).
|
|
14
14
|
|
|
15
15
|
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
16
16
|
|
|
@@ -38,7 +38,7 @@ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
|
38
38
|
|
|
39
39
|
! Describe the prototype goal in one sentence: what are you trying to learn or prove?
|
|
40
40
|
|
|
41
|
-
- ! Record the goal in a new date-prefixed story vBRIEF written to `
|
|
41
|
+
- ! Record the goal in a new date-prefixed story vBRIEF written to `xbrief/proposed/YYYY-MM-DD-<kebab-slug>.xbrief.json` (e.g. as the plan title or a brief narrative in the v0.6 schema). Use today's date for the prefix and a descriptive slug.
|
|
42
42
|
- ~ Include a time-box if applicable (e.g. "4-hour spike")
|
|
43
43
|
- ⊗ Skip this step -- even throwaway work needs a clear objective
|
|
44
44
|
|
|
@@ -54,11 +54,11 @@ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
|
54
54
|
|
|
55
55
|
! Before writing output artifacts, follow the guards in [artifact-guards.md](./artifact-guards.md) (Preparatory Guard for proposed/ scope items; Spec-Generating Guard for PROJECT-DEFINITION).
|
|
56
56
|
|
|
57
|
-
! Write a slim story scope vBRIEF to `
|
|
57
|
+
! Write a slim story scope vBRIEF to `xbrief/proposed/YYYY-MM-DD-<kebab-slug>.xbrief.json` -- no PRD, no approval gate. Decompose the rapid plan into one or more focused, buildable story vBRIEFs (v0.6 schema) rather than a monolithic legacy spec.
|
|
58
58
|
|
|
59
59
|
- ! Use the Light path from [interview.md](./interview.md) unconditionally
|
|
60
60
|
- ! Mark `plan.status` as `draft` (not `approved`) to signal prototype quality
|
|
61
|
-
- ! After the proposed/ vBRIEF(s) are written, invoke `task project:render` (from repo root) to generate/refresh the complete `
|
|
61
|
+
- ! After the proposed/ vBRIEF(s) are written, invoke `task project:render` (from repo root) to generate/refresh the complete `xbrief/PROJECT-DEFINITION.xbrief.json`
|
|
62
62
|
- ~ Keep tasks coarse-grained -- 3-5 tasks is typical for a spike
|
|
63
63
|
- ⊗ Generate a PRD or require approval -- rapid skips both
|
|
64
64
|
- ⊗ Hand-author `SPECIFICATION.md` directly -- it is a rendered derivative only (see v0.20 Output Shape)
|
|
@@ -86,9 +86,9 @@ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
|
86
86
|
|
|
87
87
|
## Output Artifacts
|
|
88
88
|
|
|
89
|
-
- `
|
|
90
|
-
- `
|
|
91
|
-
- `
|
|
89
|
+
- `xbrief/proposed/YYYY-MM-DD-*.xbrief.json` (one or more) -- lightweight story scope vBRIEF(s) with `draft` status (primary artifact; date-prefixed per v0.20 contract)
|
|
90
|
+
- `xbrief/PROJECT-DEFINITION.xbrief.json` -- complete project gestalt + items registry (via `task project:render` invoked by Rapid)
|
|
91
|
+
- `xbrief/{proposed,pending,active,completed,cancelled}/` -- all five lifecycle folders seeded
|
|
92
92
|
- (optional derivative) `SPECIFICATION.md` -- read-only human-readable export (includes deprecated-redirect sentinel; via `task spec:render` if invoked)
|
|
93
93
|
- Prototype code (may be discarded)
|
|
94
94
|
- Findings summary (inline in the proposed/ vBRIEF or as a separate note)
|
|
@@ -97,7 +97,7 @@ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
|
97
97
|
|
|
98
98
|
## Fits into Chaining Gate
|
|
99
99
|
|
|
100
|
-
Rapid is a **spec-generating** strategy. Selecting it at the chaining gate produces date-prefixed story vBRIEF(s) in `
|
|
100
|
+
Rapid is a **spec-generating** strategy. Selecting it at the chaining gate produces date-prefixed story vBRIEF(s) in `xbrief/proposed/` (and refreshes `xbrief/PROJECT-DEFINITION.xbrief.json` via `task project:render`) and moves directly to implementation. There is no chaining back to preparatory strategies. See the v0.20 Output Shape section below for the exact contract.
|
|
101
101
|
|
|
102
102
|
---
|
|
103
103
|
|
|
@@ -126,11 +126,11 @@ Rapid lightens cold ceremony only. The **positive verification content** of the
|
|
|
126
126
|
|
|
127
127
|
This strategy has been migrated to the full v0.20 output shape so rapid-generated projects are accepted by the build skill Pre-Cutover Detection Guard with zero errors on first attempt (resolves the rapid row from the #1166 inconsistency table and the s5 story acceptance criteria).
|
|
128
128
|
|
|
129
|
-
- ! Seed the five lifecycle folders under `
|
|
130
|
-
- ! Emit story scope items exclusively as date-prefixed scope vBRIEFs: `
|
|
131
|
-
- ! After the proposed/ stories are written, invoke `task project:render` (run from the repo root) to generate/refresh the complete `
|
|
129
|
+
- ! Seed the five lifecycle folders under `xbrief/` if any are missing: `proposed/`, `pending/`, `active/`, `completed/`, `cancelled/`.
|
|
130
|
+
- ! Emit story scope items exclusively as date-prefixed scope vBRIEFs: `xbrief/proposed/YYYY-MM-DD-<kebab-slug>.xbrief.json` (use the run's creation date for the prefix; choose descriptive slugs). Decompose the rapid plan into one or more focused, buildable story vBRIEFs (v0.6 schema) rather than a monolithic legacy spec.
|
|
131
|
+
- ! After the proposed/ stories are written, invoke `task project:render` (run from the repo root) to generate/refresh the complete `xbrief/PROJECT-DEFINITION.xbrief.json` (items registry is derived from the lifecycle folders).
|
|
132
132
|
- ⊗ Never emit `vbrief/specification.vbrief.json` (or any legacy dual-write).
|
|
133
|
-
- ~ `SPECIFICATION.md` at the project root, if produced at all, must be only a read-only derivative (e.g. via `task spec:render` after the vbriefs exist) that includes the v0.20 deprecated-redirect sentinel. The source of truth is the
|
|
133
|
+
- ~ `SPECIFICATION.md` at the project root, if produced at all, must be only a read-only derivative (e.g. via `task spec:render` after the vbriefs exist) that includes the v0.20 deprecated-redirect sentinel. The source of truth is the xbrief/ lifecycle stories + PROJECT-DEFINITION.
|
|
134
134
|
- ! Before writing any proposed/ stories or PROJECT-DEFINITION, follow the guards in [artifact-guards.md](./artifact-guards.md) (Preparatory Guard for scope items in proposed/; Spec-Generating Guard for PROJECT-DEFINITION).
|
|
135
135
|
- ! Final output tree must pass the deterministic v0.20 strategy output validation gate (s2-deterministic-gate) and the build Pre-Cutover Detection Guard with zero warnings/errors. See full acceptance in the s5 vBRIEF and the 1166 decomposition.
|
|
136
136
|
- ! Cite the canonical contract `strategies/v0-20-contract.md` (s1-contract) for the exact shape and the per-strategy table row.
|
|
@@ -143,9 +143,9 @@ This strategy has been migrated to the full v0.20 output shape so rapid-generate
|
|
|
143
143
|
|
|
144
144
|
| Artifact | Purpose | Created By |
|
|
145
145
|
|----------|---------|------------|
|
|
146
|
-
| `
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
146
|
+
| `xbrief/proposed/YYYY-MM-DD-*.xbrief.json` (one or more) | Focused story scope items (date-prefixed per vbrief convention and v0.20 contract) | Rapid |
|
|
147
|
+
| `xbrief/PROJECT-DEFINITION.xbrief.json` | Project identity gestalt + complete scope items registry | `task project:render` (invoked by Rapid) |
|
|
148
|
+
| `xbrief/{proposed,pending,active,completed,cancelled}/` | All five lifecycle folders seeded | Rapid |
|
|
149
149
|
| (optional derivative) `SPECIFICATION.md` | Human-readable plan (includes deprecated-redirect sentinel) | `task spec:render` (if invoked) |
|
|
150
150
|
|
|
151
151
|
**Pre-v0.20 / legacy artifacts that MUST NOT be produced by this strategy:**
|
|
@@ -154,7 +154,7 @@ This strategy has been migrated to the full v0.20 output shape so rapid-generate
|
|
|
154
154
|
- Primary handoff `SPECIFICATION.md` at project root (without sentinel)
|
|
155
155
|
- Bare-named vBRIEFs in proposed/
|
|
156
156
|
|
|
157
|
-
See the full table and rules in `strategies/v0-20-contract.md` (rapid row: Must Create Lifecycle Folders: Yes; Must Write PROJECT-DEFINITION: Yes; Scope vBRIEFs Location: proposed/YYYY-MM-DD-*.
|
|
157
|
+
See the full table and rules in `strategies/v0-20-contract.md` (rapid row: Must Create Lifecycle Folders: Yes; Must Write PROJECT-DEFINITION: Yes; Scope vBRIEFs Location: proposed/YYYY-MM-DD-*.xbrief.json only; specification.vbrief.json: Never; SPECIFICATION.md / PROJECT.md: Omit or deprecation redirect only).
|
|
158
158
|
|
|
159
159
|
---
|
|
160
160
|
|
package/strategies/research.md
CHANGED
|
@@ -47,7 +47,7 @@ Prompt:
|
|
|
47
47
|
|
|
48
48
|
! Before writing output artifacts, follow the [Preparatory Guard](./artifact-guards.md#preparatory-guard-light).
|
|
49
49
|
|
|
50
|
-
Produce `
|
|
50
|
+
Produce `xbrief/proposed/{feature}-research.xbrief.json` with two mandatory narratives:
|
|
51
51
|
|
|
52
52
|
! After emitting this scope vBRIEF, surface the GitHub-issue tracking hint from [emit-hints.md](./emit-hints.md) — name all three patterns (none / `--umbrella` / `--per-vbrief`).
|
|
53
53
|
|
|
@@ -134,7 +134,7 @@ all trigger a hit.
|
|
|
134
134
|
- ! Research the **current feature only** — not the entire project
|
|
135
135
|
- ! Time-box research — if it takes longer than the feature, scope is wrong
|
|
136
136
|
- ⊗ Research as a reason to delay execution indefinitely
|
|
137
|
-
- ~ Research persists as a vBRIEF in `
|
|
137
|
+
- ~ Research persists as a vBRIEF in `xbrief/proposed/`
|
|
138
138
|
|
|
139
139
|
---
|
|
140
140
|
|
|
@@ -143,13 +143,13 @@ all trigger a hit.
|
|
|
143
143
|
After research is complete, return to the [chaining gate](./interview.md#chaining-gate)
|
|
144
144
|
so the user can run additional preparatory strategies or proceed to spec generation.
|
|
145
145
|
|
|
146
|
-
- ! On completion, register artifacts in `./
|
|
146
|
+
- ! On completion, register artifacts in `./xbrief/plan.xbrief.json`:
|
|
147
147
|
- Update `completedStrategies`: increment `runCount` for `"research"`,
|
|
148
|
-
append artifact path (`
|
|
148
|
+
append artifact path (`xbrief/proposed/{feature}-research.xbrief.json`)
|
|
149
149
|
- Append the path to the flat `artifacts` array
|
|
150
150
|
- ! Return to [interview.md Chaining Gate](./interview.md#chaining-gate)
|
|
151
151
|
- ! Present the chaining gate as a blocking question and wait for a user selection before any spec generation or additional scope vBRIEF generation.
|
|
152
|
-
- ! Explain at handoff that `completedStrategies` records that research ran, while `
|
|
152
|
+
- ! Explain at handoff that `completedStrategies` records that research ran, while `xbrief/proposed/{feature}-research.xbrief.json` remains a planning artifact in the scope lifecycle until a later strategy promotes or consumes it.
|
|
153
153
|
- ! The research findings MUST inform subsequent strategies and spec generation:
|
|
154
154
|
- "Don't Hand-Roll" items become constraints in the specification
|
|
155
155
|
- "Common Pitfalls" become acceptance criteria or NFRs
|
|
@@ -167,7 +167,7 @@ so the user can run additional preparatory strategies or proceed to spec generat
|
|
|
167
167
|
|
|
168
168
|
1. **Scope confirmation** -- Ask the blocking scope-confirmation prompt, wait for the user, and record scope/artifact/sensitivity inputs
|
|
169
169
|
2. **Survey** -- Check existing project dependencies, official docs, and known pitfalls
|
|
170
|
-
3. **Document** -- Produce `
|
|
170
|
+
3. **Document** -- Produce `xbrief/proposed/{feature}-research.xbrief.json` with `DontHandRoll` and `CommonPitfalls` narratives
|
|
171
171
|
4. **Chain** -- Return to [interview.md Chaining Gate](./interview.md#chaining-gate), or -- if invoked from a standalone strategy (e.g. map's standalone next-step menu) -- return to the invoking strategy's menu per the [standalone-context rule](#then-chaining-gate) above
|
|
172
172
|
|
|
173
173
|
## Anti-Patterns
|
package/strategies/roadmap.md
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
> See **[skills/deft-directive-refinement/SKILL.md](../skills/deft-directive-refinement/SKILL.md)**
|
|
7
7
|
> for issue ingest, evaluation, and promotion/demotion workflows.
|
|
8
8
|
>
|
|
9
|
-
> Run `task roadmap:render` to regenerate `ROADMAP.md` from `
|
|
9
|
+
> Run `task roadmap:render` to regenerate `ROADMAP.md` from `xbrief/` lifecycle folders (legacy `vbrief/` is read-accepted).
|