prizmkit 1.1.146 → 1.1.147
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/bundled/VERSION.json +3 -3
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/app-planner/SKILL.md +59 -15
- package/bundled/skills/app-planner/references/generated-plan-review.md +29 -2
- package/bundled/skills/app-planner/references/project-brief-guide.md +24 -5
- package/bundled/skills/bug-planner/SKILL.md +63 -36
- package/bundled/skills/bug-planner/references/generated-plan-review.md +29 -3
- package/bundled/skills/feature-planner/SKILL.md +45 -30
- package/bundled/skills/feature-planner/assets/planning-guide.md +20 -7
- package/bundled/skills/feature-planner/references/completeness-review.md +57 -39
- package/bundled/skills/feature-planner/references/generated-plan-review.md +29 -3
- package/bundled/skills/refactor-planner/SKILL.md +43 -28
- package/bundled/skills/refactor-planner/references/fast-path.md +4 -3
- package/bundled/skills/refactor-planner/references/generated-plan-review.md +29 -3
- package/bundled/skills/refactor-planner/references/planning-phases.md +26 -8
- package/package.json +1 -1
package/bundled/VERSION.json
CHANGED
|
@@ -35,7 +35,7 @@ If you believe the task is better suited for a different workflow, you MUST:
|
|
|
35
35
|
|
|
36
36
|
**Your ONLY writable outputs are:**
|
|
37
37
|
1. `.prizmkit/plans/project-brief.md` (`.prizmkit/plans/` — accumulated project context brief)
|
|
38
|
-
2. `.prizmkit/plans/project-brief.draft.md` — draft
|
|
38
|
+
2. `.prizmkit/plans/project-brief.draft.md` — working source during planning and saved draft when the user exits before completion
|
|
39
39
|
3. Project conventions and architecture decisions appended to `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` (with user consent)
|
|
40
40
|
4. Infrastructure configuration (database conventions, deployment config, **cloud services**) appended to `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` `### Infrastructure` section
|
|
41
41
|
5. `.prizmkit/rules/<layer>-rules.md` — per-layer development rules generated by Rules Configuration
|
|
@@ -56,6 +56,49 @@ If you believe the task is better suited for a different workflow, you MUST:
|
|
|
56
56
|
4. **NEVER generate `feature-list.json`** — that is exclusively `feature-planner`'s responsibility
|
|
57
57
|
5. Return the completed planning context to the caller. Direct implementation and planned pipeline execution are separate next steps; this planner is not an execution intermediary
|
|
58
58
|
|
|
59
|
+
## Durable App Context Contract (Hard Rule)
|
|
60
|
+
|
|
61
|
+
Every new or changed project brief line, convention, infrastructure decision, architecture decision, and rule must be understandable by a fresh AI session that has never seen the planning conversation. Durable app context records the actual selected product or technical decision, not the answer token used in chat.
|
|
62
|
+
|
|
63
|
+
### Conversational Context Normalization
|
|
64
|
+
|
|
65
|
+
- Never persist standalone option labels such as `A`, `B`, `C`, `方案A`, or `方案B`.
|
|
66
|
+
- Expand each selected option into complete meaning and preserve its source inline: `Selected decision: <complete meaning> (original response: "<exact response>")`.
|
|
67
|
+
- Resolve `上面`, `这个`, `按推荐走`, `同前`, `继续这样`, `用刚才的方案`, `same as above`, or `go with your recommendation` only when there is one provable antecedent. If multiple antecedents are plausible, ask the user for clarification; never guess.
|
|
68
|
+
- Exclude conversational authorization such as `所有问题都按你的推荐处理` when it only controls planning behavior and does not constrain the product or implementation.
|
|
69
|
+
- Do not present rejected alternatives as active decisions. Include one only when it defines a necessary non-goal or compatibility boundary.
|
|
70
|
+
- Preserve detailed user requirements at matching detail; normalization must not simplify away substantive product, infrastructure, architecture, or development rules.
|
|
71
|
+
|
|
72
|
+
### Reference Material Handling
|
|
73
|
+
|
|
74
|
+
- Every retained file path, URL, screenshot, diagram, log, issue, PRD, or document reference must be purpose-tagged: say why it matters and what a downstream AI should inspect. This applies to paths and URLs in all app-planning artifacts.
|
|
75
|
+
- Good: `docs/architecture.md §Authentication — inspect identity-provider ownership and session boundaries`; Bad: `docs/architecture.md` alone.
|
|
76
|
+
- For large materials, record title/location and purpose, preserve only task-relevant exact excerpts, and move confirmed product or technical decisions into the durable app-planning artifact.
|
|
77
|
+
- Embed complete large materials only when future sessions cannot access the source and all content is genuinely required.
|
|
78
|
+
|
|
79
|
+
### Good and Bad Normalization Examples
|
|
80
|
+
|
|
81
|
+
- Bad: `[ ] 使用方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation`.
|
|
82
|
+
- Good: `[ ] Authentication uses organization-scoped OAuth with server-side sessions (original response: "方案B")`.
|
|
83
|
+
- Good: `Deployment target: managed container service with PostgreSQL in the same region (original response: "use option A")`.
|
|
84
|
+
- Bad: storing `所有问题都按你的推荐处理` as a project convention; it is conversational authorization.
|
|
85
|
+
- Bad: attaching an entire infrastructure proposal while recording only `follow this`. Good: retain a purpose-tagged proposal section and task-relevant exact excerpts, then name the actual network, database, and deployment decisions.
|
|
86
|
+
|
|
87
|
+
## Pre-Generation Headless Context Completeness Gate
|
|
88
|
+
|
|
89
|
+
Before any final app-planning writer runs, review every new or changed brief line, convention, infrastructure decision, architecture decision, and rule as if the reviewer has never seen the planning conversation. Preserve unchanged historical content; do not bulk-rewrite it. From the proposed artifact alone, answer:
|
|
90
|
+
|
|
91
|
+
1. What exact product outcome or technical decision does this line record?
|
|
92
|
+
2. What exists today and what desired state or constraint applies?
|
|
93
|
+
3. Which approach was selected, expressed by meaning rather than an option label?
|
|
94
|
+
4. What constraints and non-goals must downstream work preserve?
|
|
95
|
+
5. Why is each reference material relevant, and what should be inspected?
|
|
96
|
+
6. How will downstream planning or implementation know the decision has been honored?
|
|
97
|
+
7. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
98
|
+
8. Do quoted source materials agree with the final task decision?
|
|
99
|
+
|
|
100
|
+
Return `NEEDS_FIXES` whenever any answer is unavailable or ambiguous. Ask the user for clarification rather than guessing, update the draft/source representation, and rerun the gate before writing final artifacts. This pre-generation gate is separate from the Local Generated-Plan Review, which repeats the same simulation after final writes.
|
|
101
|
+
|
|
59
102
|
## When to Use
|
|
60
103
|
|
|
61
104
|
The skill `description` lists the trigger phrases. Beyond those, use this section to disambiguate from `feature-planner` and other workflows.
|
|
@@ -85,18 +128,18 @@ Do NOT use this skill when:
|
|
|
85
128
|
|
|
86
129
|
→ Read `${SKILL_DIR}/references/project-conventions-discovery.md` for the full AI-driven discovery procedure (Analyze → Reason → Present via AskUserQuestion).
|
|
87
130
|
|
|
88
|
-
→
|
|
131
|
+
→ Run the Pre-Generation Headless Context Completeness Gate on each proposed convention, then save passing answers to `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` under `### Project Conventions` section (format: one bullet per convention)
|
|
89
132
|
→ Output format will naturally vary per project — that is the intended behavior
|
|
90
133
|
|
|
91
134
|
**Infrastructure Convention Discovery (Database + Deployment)**
|
|
92
135
|
|
|
93
136
|
After project conventions are captured, check the project instruction file for `### Infrastructure` section status. Read `${SKILL_DIR}/references/infrastructure-convention-discovery.md` for the full database (6 topics — table naming, field naming, migrations, primary keys, indexes, environment separation), deployment (4 topics — target refinement, existing infrastructure, AI-assisted deploy, env var management), and cloud services (2-round AskUserQuestion) inquiry procedures. Follow the inquiry flow there — use `AskUserQuestion` for each batch. Each question MUST include a "Skip — decide later" option.
|
|
94
137
|
|
|
95
|
-
After inquiry, update the `### Infrastructure` section in the project instruction file with
|
|
138
|
+
After inquiry, run the Pre-Generation Headless Context Completeness Gate on every proposed infrastructure decision, then update the `### Infrastructure` section in the project instruction file with passing content (see reference file for full output format). Items still marked "Skip — decide later" remain as `<!-- [topic]: deferred -->` for `prizmkit-deploy` to pick up later.
|
|
96
139
|
|
|
97
140
|
4. **Project brief accumulation** — throughout all interactive phases:
|
|
98
141
|
→ Read `${SKILL_DIR}/references/project-brief-guide.md` for template and rules
|
|
99
|
-
→ Update after each meaningful user response containing business intent, constraints, or design decisions
|
|
142
|
+
→ Update the in-memory or `.prizmkit/plans/project-brief.draft.md` source after each meaningful user response containing business intent, constraints, or design decisions; do not write the final `.prizmkit/plans/project-brief.md` until the Pre-Generation Headless Context Completeness Gate passes
|
|
100
143
|
|
|
101
144
|
## Rules Configuration (after Infrastructure)
|
|
102
145
|
|
|
@@ -104,7 +147,7 @@ After Infrastructure configuration is complete (CP-AP-1.5), check whether the pr
|
|
|
104
147
|
|
|
105
148
|
Rules are optional. If the user skips, AI uses general best practices freely — no reminders, no blocking.
|
|
106
149
|
|
|
107
|
-
→ Read `${SKILL_DIR}/references/rules-configuration.md` for the full procedure: layer detection, configuration mode selection, interactive Q&A per layer, template rendering, and root.prizm RULES pointer update.
|
|
150
|
+
→ Read `${SKILL_DIR}/references/rules-configuration.md` for the full procedure: layer detection, configuration mode selection, interactive Q&A per layer, template rendering, and root.prizm RULES pointer update. Before rendering final rule files or updating the pointer, run the Pre-Generation Headless Context Completeness Gate on every proposed new or changed rule.
|
|
108
151
|
|
|
109
152
|
### After rules configuration
|
|
110
153
|
|
|
@@ -179,9 +222,9 @@ Route by answer:
|
|
|
179
222
|
- **Generate project context only** → Enter **Quick Context Mode** (brownfield only):
|
|
180
223
|
- Run Project State Detection → if greenfield, redirect to produce mode
|
|
181
224
|
- Proactively scan the project (same as brownfield behavior)
|
|
182
|
-
- Generate project-brief.md from inferred context
|
|
225
|
+
- Generate the proposed project brief in memory or `.prizmkit/plans/project-brief.draft.md` from inferred context
|
|
183
226
|
- Skip extensive brainstorming and constraint phases
|
|
184
|
-
- Present brief for user confirmation → write → run CP-AP-6 Generated App-Plan Review Gate → completion summary
|
|
227
|
+
- Run the Pre-Generation Headless Context Completeness Gate → Present brief for user confirmation → write → run CP-AP-6 Generated App-Plan Review Gate → completion summary
|
|
185
228
|
|
|
186
229
|
Session goal tracking: Track the intent (`produce`, `explore`, or `quick_context`) throughout the session. If `explore`, always re-prompt before ending.
|
|
187
230
|
|
|
@@ -224,7 +267,7 @@ Execute the planning workflow in conversation mode with mandatory checkpoints:
|
|
|
224
267
|
2.2 **Frontend design check** (for frontend projects) — scan for existing UI/UX design docs. If none found, use `AskUserQuestion`:
|
|
225
268
|
- Question: "No UI/UX design docs found. Would you like to establish design direction?"
|
|
226
269
|
- Options: "Establish design direction now (Recommended)", "Skip for now", "I have external designs"
|
|
227
|
-
3. Capture architecture decisions and finalize project brief
|
|
270
|
+
3. Capture architecture decisions, run the Pre-Generation Headless Context Completeness Gate on every proposed new or changed app-planning line, and finalize project brief only after the gate passes
|
|
228
271
|
4. Present completion summary with artifacts produced and possible next steps
|
|
229
272
|
|
|
230
273
|
### Checkpoints (Mandatory Gates)
|
|
@@ -239,20 +282,21 @@ Checkpoints catch cascading errors early — skipping one means the next phase b
|
|
|
239
282
|
| **CP-AP-1.6** | Rules Configured | For each detected layer (from config.json or self-detection), rules file exists in `.prizmkit/rules/` or user explicitly skipped. `root.prizm` `RULES:` pointer up-to-date. | 2 |
|
|
240
283
|
| **CP-AP-2** | Vision Summary | Goal/users/differentiators confirmed by user. For brownfield: existing purpose confirmed or refined. | 1-2 |
|
|
241
284
|
| **CP-AP-3** | Frontend Design Evaluated | For frontend projects: checked for existing UI/UX design system; user was asked if missing. **Auto-pass** for backend-only or non-UI projects. | 2 |
|
|
242
|
-
| **CP-AP-4** | Project Brief Accumulated | `.prizmkit/plans/project-brief.md`
|
|
243
|
-
| **CP-AP-5** | Planning Complete | All project-level context captured: conventions, infrastructure config, tech stack, architecture decisions, project brief
|
|
244
|
-
| **CP-AP-
|
|
285
|
+
| **CP-AP-4** | Project Brief Accumulated | The in-memory brief or `.prizmkit/plans/project-brief.draft.md` contains at least 3 ideas. For brownfield: already-implemented items marked `[x]` count toward this total. The final brief is not written before CP-AP-5.5. | 3 |
|
|
286
|
+
| **CP-AP-5** | Planning Complete | All project-level context captured: conventions, infrastructure config, tech stack, architecture decisions, project brief drafted | 4 |
|
|
287
|
+
| **CP-AP-5.5** | Fresh-Session Context Passed | Every new or changed brief line, convention, infrastructure decision, architecture decision, and rule passes the Pre-Generation Headless Context Completeness Gate before its final writer runs | 4 |
|
|
288
|
+
| **CP-AP-6** | Local Plan Review Passed | Local generated-plan review loaded `${SKILL_DIR}/references/generated-plan-review.md`, directly reviewed current-session final app-planning artifacts, repeated fresh-session simulation, applied accepted fixes through source/writer paths, and rechecked changed sections | 4 |
|
|
245
289
|
|
|
246
290
|
## Generated App-Plan Review Gate
|
|
247
291
|
|
|
248
292
|
User requirement preserved verbatim: `Add generated-plan review in app-planner also .`
|
|
249
293
|
|
|
250
|
-
Run this gate before any final handoff whenever the current `app-planner` session wrote or rewrote final app-level planning content. In full produce mode this runs after CP-AP-5; in Quick Context Mode it runs after the confirmed `.prizmkit/plans/project-brief.md` write; in conventions, infrastructure, architecture-decision, or rules-only final-write flows it runs after those writes and before the completion summary. This gate reviews generated planning artifacts directly, not implementation diffs.
|
|
294
|
+
Run this gate before any final handoff whenever the current `app-planner` session wrote or rewrote final app-level planning content. In full produce mode this runs after CP-AP-5.5 and the passing content's final writes; in Quick Context Mode it runs after the confirmed `.prizmkit/plans/project-brief.md` write; in conventions, infrastructure, architecture-decision, or rules-only final-write flows it runs after those writes and before the completion summary. This gate reviews generated planning artifacts directly, not implementation diffs.
|
|
251
295
|
|
|
252
296
|
1. **Load the local reference**: read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the source of truth for app-planner generated content review.
|
|
253
297
|
2. **Read actual planning artifacts directly**: inspect current-session final outputs such as `.prizmkit/plans/project-brief.md`, selected `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` sections, `.prizmkit/rules/<layer>-rules.md`, and `.prizmkit/prizm-docs/root.prizm` `RULES:` pointer line. Do not rely on `git status`, `git diff`, or `git diff --cached`, because `.prizmkit` planning artifacts are often gitignored or untracked.
|
|
254
298
|
3. **Scope to new/changed app-planning content**: compare against pre-session snapshots or in-memory drafts when available. Preserve unchanged historical brief items, instruction-file sections, rules files, and Prizm doc content. For explore-only sessions, draft-save exits, or flows with no new final planning content, report: `Local generated-plan review: not applicable — no new final planning content written.`
|
|
255
|
-
4. **Run the local checklist** from the reference: project brief completeness, consistency of conventions/infrastructure/architecture decisions, rules pointer consistency,
|
|
299
|
+
4. **Run the local checklist and fresh-session simulation** from the reference: project brief completeness, consistency of conventions/infrastructure/architecture decisions, rules pointer consistency, normalization of selected decisions, purpose-tagged references, app-planner writable-boundary compliance, and downstream `feature-planner` readiness to produce `.prizmkit/plans/feature-list.json` without guessing or seeing the original conversation.
|
|
256
300
|
5. **Apply accepted fixes through the source/writer path**: project brief fixes go through the draft/checklist source, instruction-file section fixes go through the selected platform instruction file section source with user confirmation when changing approved wording, rules fixes re-render from rules configuration answers/templates when available, and `root.prizm` fixes are limited to the `RULES:` pointer line.
|
|
257
301
|
6. **Recheck changed sections directly** after every accepted fix batch.
|
|
258
302
|
7. **Report CP-AP-6** in the completion summary: include local generated-plan review verdict, reviewed app-planning artifacts/sections, accepted fixes (or "none"), and final writer/validation result.
|
|
@@ -262,13 +306,13 @@ Run this gate before any final handoff whenever the current `app-planner` sessio
|
|
|
262
306
|
After Phase 2, if framework-shaping architecture decisions emerged during planning (tech stack, communication patterns, data model strategies — not individual feature details), read `${SKILL_DIR}/references/architecture-decisions.md` and follow the capture flow. Most sessions will NOT produce architecture decisions — only capture when genuinely impactful.
|
|
263
307
|
|
|
264
308
|
**How it works**:
|
|
265
|
-
1. If decisions are captured → append to `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` under `### Architecture Decisions` section
|
|
309
|
+
1. If decisions are captured → run the Pre-Generation Headless Context Completeness Gate on each decision, then append passing decisions to `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` under `### Architecture Decisions` section
|
|
266
310
|
2. Downstream skills (feature-planner, prizmkit-plan, etc.) read `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` as standard context, so they automatically receive these decisions
|
|
267
311
|
3. Do NOT write architecture decision content directly to `.prizmkit/prizm-docs/root.prizm` — that file is maintained by `prizmkit-prizm-docs` and `prizmkit-retrospective`. (The `RULES:` pointer line is managed by Rules Configuration, not by this section.) If the project needs `.prizmkit/prizm-docs/`, recommend the user run `prizmkit-prizm-docs` init after planning.
|
|
268
312
|
|
|
269
313
|
## Project Brief Accumulation
|
|
270
314
|
|
|
271
|
-
During interactive planning, maintain
|
|
315
|
+
During interactive planning, maintain the proposed brief in memory or `.prizmkit/plans/project-brief.draft.md` as a simple checklist of product ideas. After the Pre-Generation Headless Context Completeness Gate passes, write the final `.prizmkit/plans/project-brief.md` through the project brief writer path.
|
|
272
316
|
|
|
273
317
|
→ Read `${SKILL_DIR}/references/project-brief-guide.md` for full format and rules.
|
|
274
318
|
|
|
@@ -44,17 +44,44 @@ For every reviewed app-planning artifact or section, check:
|
|
|
44
44
|
- Consistency among conventions, infrastructure, architecture decisions, and project brief content
|
|
45
45
|
- Infrastructure completeness or explicit deferral for database, deployment, and cloud services topics when those flows ran
|
|
46
46
|
- Rules pointer consistency: generated `.prizmkit/rules/<layer>-rules.md` files are referenced by the `root.prizm` `RULES:` line when rules were configured
|
|
47
|
-
- User-provided wording preservation in project brief ideas, conventions, infrastructure notes, architecture decisions, and rules
|
|
47
|
+
- User-provided wording preservation and detail preservation at matching detail after conversational normalization in project brief ideas, conventions, infrastructure notes, architecture decisions, and rules
|
|
48
|
+
- Every selected product or technical decision is expressed by complete meaning rather than `A`, `B`, `C`, `方案A`, `方案B`, or another unseen option label; whenever the selection originated as shorthand, the original response is preserved inline for traceability
|
|
49
|
+
- Purpose-tagged paths and URLs, screenshots, diagrams, logs, issues, PRDs, and documents; large materials retain title/location, purpose, and task-relevant exact excerpts rather than full-content injection
|
|
50
|
+
- Conversational authorization is excluded when it controls planning but does not constrain implementation; rejected alternatives appear only as necessary non-goals
|
|
48
51
|
- Downstream readiness: `feature-planner` has enough context to produce `.prizmkit/plans/feature-list.json` without guessing core app purpose, stack, constraints, or implementation conventions
|
|
49
52
|
- No implementation/scaffolding actions are introduced by the app plan; outputs stay within app-planner's writable boundary
|
|
50
53
|
|
|
54
|
+
## Headless Context Completeness Gate
|
|
55
|
+
|
|
56
|
+
Repeat the pre-generation simulation for every reviewed new or changed app-planning line or section as if the reviewer has never seen the planning conversation. From the artifact alone, answer:
|
|
57
|
+
|
|
58
|
+
1. What exact product outcome or technical decision does this content record?
|
|
59
|
+
2. What exists today and what desired state or constraint applies?
|
|
60
|
+
3. Which approach was selected, expressed by meaning rather than an option label?
|
|
61
|
+
4. What constraints and non-goals must downstream work preserve?
|
|
62
|
+
5. Why is each reference material relevant?
|
|
63
|
+
6. How will downstream planning or implementation know the decision was honored?
|
|
64
|
+
7. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
65
|
+
8. Do quoted source materials agree with the final task decision?
|
|
66
|
+
|
|
67
|
+
Return `NEEDS_FIXES` if any answer is missing, ambiguous, or dependent on shorthand such as `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation`. Accept an expanded decision only when it states complete meaning with inline traceability such as `(original response: "方案B")`. Ask the user for clarification when there is not one provable antecedent. Exclude `所有问题都按你的推荐处理` and equivalent conversational authorization unless a concrete implementation constraint was separately confirmed.
|
|
68
|
+
|
|
69
|
+
Apply this stricter gate prospectively to new or changed content and preserve unchanged historical app-planning content.
|
|
70
|
+
|
|
71
|
+
### Good and Bad Review Examples
|
|
72
|
+
|
|
73
|
+
- Bad: `[ ] 使用方案B`; Good: `[ ] Authentication uses organization-scoped OAuth with server-side sessions (original response: "方案B")`.
|
|
74
|
+
- Bad: a bare architecture URL; Good: `Architecture RFC §5 — inspect identity ownership and session boundaries`, plus only task-relevant exact excerpts.
|
|
75
|
+
- Bad: a rejected serverless alternative listed as an active infrastructure decision; Good: include it only as a non-goal when preserving the selected container deployment boundary requires that fact.
|
|
76
|
+
|
|
51
77
|
## Fix Loop
|
|
52
78
|
|
|
53
79
|
1. Present findings with artifact path, section name, severity, evidence, and suggested source change.
|
|
54
80
|
2. Accept only findings that improve planner correctness, consistency, user wording preservation, or downstream feature-planner readiness.
|
|
55
81
|
3. Apply accepted fixes to the source representation first: brief draft/checklist, instruction-file section source, rules answer/template source, or `root.prizm` `RULES:` pointer source.
|
|
56
82
|
4. Regenerate or rewrite final artifacts through the same writer path used by app-planner. Do not hand-patch final artifacts as a shortcut when a draft/source representation exists.
|
|
57
|
-
5. Re-read the changed final artifacts directly and
|
|
83
|
+
5. Re-read the changed final artifacts directly and repeat the Headless Context Completeness Gate only for changed sections.
|
|
84
|
+
6. Do not report `PASS` until every required fresh-session answer is available and each changed artifact passes its final writer/validation check.
|
|
58
85
|
|
|
59
86
|
## Report Format
|
|
60
87
|
|
|
@@ -28,8 +28,16 @@
|
|
|
28
28
|
- Change `[ ]` to `[x]`
|
|
29
29
|
- Append `->` followed by the **key file or directory paths** that implement it
|
|
30
30
|
- List the most important 1-3 paths only (entry point, core module, or directory) — not every touched file
|
|
31
|
-
-
|
|
32
|
-
-
|
|
31
|
+
- Purpose-tag every retained path so a fresh session knows what to inspect
|
|
32
|
+
- Good: `[x] User authentication uses organization-scoped OAuth with server-side sessions -> src/auth/ — inspect provider/session ownership; src/middleware/auth.ts — inspect request authorization`
|
|
33
|
+
- Bad: `[x] User authentication -> src/auth/, src/middleware/auth.ts` because neither the selected behavior nor path purpose is clear
|
|
34
|
+
- This lets future AI sessions locate the implementation without guessing or broad rescanning
|
|
35
|
+
7. **Complete decision meaning**: Every line names the actual product or technical decision. Never write only `A`, `B`, `C`, `方案A`, `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation`.
|
|
36
|
+
8. **Traceability**: Whenever a selection originated as shorthand, expand it into meaning and retain the original response inline: `[ ] Authentication uses organization-scoped OAuth with server-side sessions (original response: "方案B")`.
|
|
37
|
+
9. **Ambiguous references**: Resolve shorthand only with one provable antecedent. Otherwise ask the user for clarification; never guess.
|
|
38
|
+
10. **Conversational authorization**: Exclude statements such as `所有问题都按你的推荐处理` when they control planning behavior but do not constrain the product or implementation.
|
|
39
|
+
11. **References**: Require purpose-tagged paths and URLs, documents, screenshots, diagrams, and logs. For large materials, retain title/location, purpose, and task-relevant exact excerpts; move confirmed decisions into the brief instead of embedding complete large materials.
|
|
40
|
+
12. **Alternatives**: Do not present rejected alternatives as active brief items; include them only as necessary non-goals.
|
|
33
41
|
|
|
34
42
|
## Brownfield Init
|
|
35
43
|
|
|
@@ -76,7 +84,18 @@ If the user gives short/vague answers, don't accept them — rephrase and ask ag
|
|
|
76
84
|
|
|
77
85
|
### Generate & Confirm
|
|
78
86
|
Once all criteria are met:
|
|
79
|
-
1. Generate brief in checklist format (see Format section above)
|
|
80
|
-
2.
|
|
81
|
-
3.
|
|
87
|
+
1. Generate the proposed brief in checklist format (see Format section above).
|
|
88
|
+
2. Run the app-planner Pre-Generation Headless Context Completeness Gate on every new or changed line as if the reviewer has never seen the planning conversation. Confirm the actual outcome/current state/desired state, selected meaning, constraints/non-goals, reference relevance, downstream completion signal, absence of unseen conversational dependencies, and that quoted source materials agree with the final task decision.
|
|
89
|
+
3. Return `NEEDS_FIXES` for any unanswered question, update the draft/source line, and repeat until all changed lines pass. Preserve unchanged historical brief items.
|
|
90
|
+
4. Present to user with: "Here's what I captured — anything to add, remove, or change?"
|
|
91
|
+
5. Apply edits, rerun the gate for modified lines, and write `.prizmkit/plans/project-brief.md` only after `PASS`.
|
|
92
|
+
|
|
93
|
+
### Good and Bad Brief Examples
|
|
94
|
+
|
|
95
|
+
- Bad: `[ ] 使用方案B`.
|
|
96
|
+
- Good: `[ ] Authentication uses organization-scoped OAuth with server-side sessions (original response: "方案B")`.
|
|
97
|
+
- Bad: `[ ] same as above` when several prior decisions exist.
|
|
98
|
+
- Good: ask the user which decision applies, then record its complete meaning.
|
|
99
|
+
- Bad: `[ ] Follow https://example.test/platform-rfc`.
|
|
100
|
+
- Good: `[ ] Deployment uses a managed container service with regional PostgreSQL; Platform RFC §3 — inspect region and failover constraints`.
|
|
82
101
|
|
|
@@ -40,29 +40,43 @@ After planning is complete, you MUST:
|
|
|
40
40
|
4. NEVER auto-execute the pipeline, launcher, composite workflow, or any fix step
|
|
41
41
|
5. Return the validated bug list to the caller; only `bugfix-pipeline-launcher` prepares the runtime command
|
|
42
42
|
|
|
43
|
-
##
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
1. **
|
|
48
|
-
2. **
|
|
49
|
-
3. **
|
|
50
|
-
4. **
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
43
|
+
## Fresh-Session Task Contract (Hard Rule)
|
|
44
|
+
|
|
45
|
+
Every new or changed bug is an executable contract for a fresh AI session that has never seen the planning conversation. Do not add new JSON fields, context objects, schema versions, or pipeline runtime structures. Use the existing fields correctly:
|
|
46
|
+
|
|
47
|
+
1. **Self-contained contract**: The bug's `description` and `acceptance_criteria`, read together, MUST define the objective, current state and actual behavior, desired state and expected behavior, selected scope and decisions, severity rationale, constraints, non-goals, relevant integrations, edge cases, reproduction conditions, verification decisions, and completion evidence. Because no separate rationale field is added, include the durable severity rationale in `description`. Preserve user requirements at matching detail.
|
|
48
|
+
2. **Supplementary evidence only**: `user_context` is supplementary evidence only. Logs, stack traces, screenshots, and source excerpts may support diagnosis, but they MUST NOT expand, replace, or contradict the contract. If `user_context` were removed, a fresh bug-fix session must still know what fails, where and when it fails, what correct behavior means, which scope was selected, and how to verify the fix.
|
|
49
|
+
3. **Severity and verification are durable decisions**: Write the complete severity rationale, selected scope, environment, reproduction path, verification type, and verification decisions by meaning. Never store only an option label or conversational answer.
|
|
50
|
+
4. **Clarify, do not guess**: Ask the user for clarification whenever expected behavior, root-cause scope, material applicability, or a relative reference has multiple plausible meanings.
|
|
51
|
+
5. **Bug isolation**: Each bug contract and its supplementary evidence contain only material relevant to that bug. Repeat shared environment or constraints only when explicitly global.
|
|
52
|
+
|
|
53
|
+
### Conversational Context Normalization
|
|
54
|
+
|
|
55
|
+
- Never persist standalone option labels such as `A`, `B`, `C`, `方案A`, or `方案B` as execution context.
|
|
56
|
+
- Expand a selected option into complete meaning with inline traceability: `Selected decision: <complete meaning> (original response: "<exact response>")`.
|
|
57
|
+
- Resolve `上面`, `这个`, `按推荐走`, `同前`, `继续这样`, `用刚才的方案`, `same as above`, or `go with your recommendation` only when there is one provable antecedent. Otherwise ask the user for clarification; never guess.
|
|
58
|
+
- Exclude conversational authorization such as `所有问题都按你的推荐处理` when it controls planning behavior but does not constrain the fix.
|
|
59
|
+
- Do not present rejected root-cause or fix alternatives as active instructions; preserve one only when it defines a necessary non-goal.
|
|
60
|
+
|
|
61
|
+
### Reference Material Handling
|
|
62
|
+
|
|
63
|
+
- Every retained file path, URL, screenshot, log, stack trace, or document reference must be purpose-tagged: state why it is relevant and what the execution AI should inspect. This applies to paths and URLs in structured evidence and `user_context`.
|
|
64
|
+
- Good: `logs/api-500.log lines 220-248 — inspect the empty-password request, exception, and correlation ID`; Bad: `logs/api-500.log` alone.
|
|
65
|
+
- For large materials, record title/location and purpose, preserve only task-relevant exact excerpts, and move confirmed expected behavior, selected scope, severity rationale, and verification decisions into `description` and `acceptance_criteria`.
|
|
66
|
+
- Embed complete large materials only when the execution session cannot access the source and all content is genuinely required.
|
|
67
|
+
|
|
68
|
+
### Good and Bad Normalization Examples
|
|
69
|
+
|
|
70
|
+
- Bad: `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation` stored as selected fix scope.
|
|
71
|
+
- Good: `Selected decision: reject empty passwords in request validation with HTTP 400 and do not enter credential verification (original response: "方案B")`.
|
|
72
|
+
- Good: `Selected decision: reproduce against the API integration test and retain UI verification as a regression check (original response: "use option A")`.
|
|
73
|
+
- Bad: storing `所有问题都按你的推荐处理` as a bug constraint; it is conversational authorization.
|
|
74
|
+
- Bad: attaching a complete production log while saying only `fix this`. Good: retain the relevant exception excerpt and purpose-tagged log location, then state actual behavior, expected behavior, scope, and verification in the task contract.
|
|
61
75
|
|
|
62
76
|
**Multi-bug isolation example:**
|
|
63
77
|
- User request includes: `Bug A: login crashes when password is empty`, `Bug B: CSV export loses Chinese characters`, and `Shared: production uses Node 20`.
|
|
64
|
-
- The login bug
|
|
65
|
-
- The CSV bug
|
|
78
|
+
- The login bug contract fully defines its expected/actual behavior and includes only matching evidence plus the shared Node 20 environment; it MUST NOT include the CSV report.
|
|
79
|
+
- The CSV bug contract fully defines encoding expectations and includes only matching evidence plus the shared Node 20 environment; it MUST NOT include the login report.
|
|
66
80
|
|
|
67
81
|
## When to Use
|
|
68
82
|
|
|
@@ -180,7 +194,7 @@ Gather project metadata from the project's own configuration and documentation
|
|
|
180
194
|
>
|
|
181
195
|
> If none, we'll proceed with bug collection."
|
|
182
196
|
|
|
183
|
-
If the user provides materials,
|
|
197
|
+
If the user provides materials, require or infer only when unambiguous a bug-specific purpose for each material; otherwise ask what the execution AI should inspect. Read/fetch the relevant material before Phase 2. For web links, retrieve the relevant content; for images, analyze the relevant visual evidence. Preserve purpose-tagged locations and task-relevant exact excerpts, but do not inject complete large materials merely for verbatim preservation.
|
|
184
198
|
|
|
185
199
|
Output: `project_name`, `project_description`, `global_context` fields populated.
|
|
186
200
|
|
|
@@ -205,7 +219,7 @@ When parsing user input, auto-detect the format and read `${SKILL_DIR}/reference
|
|
|
205
219
|
- Acceptance criteria (auto-suggest based on description, user can edit)
|
|
206
220
|
- Model override (optional; if specified, overrides $MODEL env var for this bug fix)
|
|
207
221
|
|
|
208
|
-
**Per-bug clarification** — if the bug's root cause, reproduction steps, expected behavior,
|
|
222
|
+
**Per-bug clarification** — if the bug's root cause, reproduction steps, current/actual behavior, desired/expected behavior, selected scope, severity rationale, verification decisions, non-goals, integration impact, edge cases, or evidence purpose is unclear, ask focused questions one at a time (cite the unclear point, give a recommended answer with rationale) until the bug is fully understood. Do not finalize shorthand that requires an unseen question, recommendation, or option list. No limit on the number of questions per bug.
|
|
209
223
|
|
|
210
224
|
**Per-bug confirmation (mandatory)** — after extracting and clarifying each bug, present a structured summary using the template in `${SKILL_DIR}/assets/bug-confirmation-template.md`, then ask the three confirmation questions defined there.
|
|
211
225
|
|
|
@@ -245,11 +259,22 @@ Only finalize the bug entry after user confirms all three points.
|
|
|
245
259
|
|
|
246
260
|
**Gate → CP-BP-3**: Severity/priority assigned, duplicates resolved.
|
|
247
261
|
|
|
248
|
-
### Phase 4: Pre-Generation Completeness
|
|
262
|
+
### Phase 4: Pre-Generation Headless Context Completeness Gate
|
|
263
|
+
|
|
264
|
+
Before generating `.prizmkit/plans/bug-fix-list.json`, review every new or changed bug as if the reviewer has never seen the planning conversation. Preserve unchanged historical bugs; do not bulk-rewrite them. First remove `user_context` from the review view and answer from `description` plus `acceptance_criteria` alone:
|
|
249
265
|
|
|
250
|
-
|
|
266
|
+
1. What exact problem or outcome is this task responsible for?
|
|
267
|
+
2. What exists today, including actual behavior, and what must change to the expected behavior?
|
|
268
|
+
3. Which fix scope and verification approach were selected, expressed by meaning rather than an option label?
|
|
269
|
+
4. What constraints and non-goals must be preserved?
|
|
270
|
+
5. Why is each reference material relevant, and what should be inspected?
|
|
271
|
+
6. How can completion be verified?
|
|
272
|
+
7. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
273
|
+
8. Do quoted source materials agree with the final task decision?
|
|
251
274
|
|
|
252
|
-
|
|
275
|
+
Return `NEEDS_FIXES` whenever any answer is missing, ambiguous, or available only in supplementary evidence. Ask the user for clarification rather than guessing when a reference does not have one provable antecedent.
|
|
276
|
+
|
|
277
|
+
**Step 1 — Description adequacy scan (Headless Execution Readiness)**: The bugfix pipeline runs each bug through an autonomous AI session with NO human interaction. Every task contract must be unambiguous enough for headless execution. For each bug, check:
|
|
253
278
|
- Description clearly states **expected** vs **actual** behavior (not just "X doesn't work")
|
|
254
279
|
- Reproduction path is specific enough for the pipeline AI to locate the relevant code
|
|
255
280
|
- If the bug involves user interaction, the trigger action is described (not just the symptom)
|
|
@@ -258,7 +283,7 @@ Before generating `.prizmkit/plans/bug-fix-list.json`, perform a holistic scan a
|
|
|
258
283
|
- Bad: "Login is broken" — too vague, AI will search the entire codebase
|
|
259
284
|
- Good: "Login form at /login returns 500 when password field is empty. Expected: validation error 400. Root cause likely in src/api/auth.ts POST /api/auth/login handler — missing null check on password field."
|
|
260
285
|
|
|
261
|
-
**Step 2 — Acceptance criteria specificity check**: For each bug, verify each acceptance criterion passes the "pipeline autonomy test" — could an AI session, without asking a human, determine whether this criterion is met? Flag criteria that are subjective ("works correctly"), lack measurable conditions ("performs better"), or
|
|
286
|
+
**Step 2 — Acceptance criteria specificity check**: For each bug, verify each acceptance criterion passes the "pipeline autonomy test" — could an AI session, without asking a human, determine whether this criterion is met? Flag criteria that are subjective ("works correctly"), lack measurable conditions ("performs better"), omit expected behavior, or leave reproduction and verification decisions only in `user_context`.
|
|
262
287
|
|
|
263
288
|
**Step 3 — Cross-bug analysis**: Check for:
|
|
264
289
|
- **Root cause overlap**: Multiple bugs in the same module may share a root cause — flag for user to confirm whether they should be merged or kept separate
|
|
@@ -269,11 +294,11 @@ Before generating `.prizmkit/plans/bug-fix-list.json`, perform a holistic scan a
|
|
|
269
294
|
|
|
270
295
|
For any items that need attention, ask targeted questions to fill gaps. Iterate until the user confirms all bugs are adequately described. Present the prompt:
|
|
271
296
|
|
|
272
|
-
> "Above is the completeness review.
|
|
297
|
+
> "Above is the completeness review. Every `NEEDS_FIXES` item must be clarified before generation. Which flagged item should we address first?"
|
|
273
298
|
|
|
274
|
-
Only proceed to Phase 5 after user confirms.
|
|
299
|
+
For every `NEEDS_FIXES` result, update the draft/source bug contract, rerun the artifact-alone questions, and continue until all new or changed bugs return `PASS`. Only proceed to Phase 5 after user confirms.
|
|
275
300
|
|
|
276
|
-
**Gate → CP-BP-4**: All bugs pass
|
|
301
|
+
**Gate → CP-BP-4**: All new or changed bugs pass the Headless Context Completeness Gate without relying on conversation history or `user_context`.
|
|
277
302
|
|
|
278
303
|
### Phase 5: Generate & Validate
|
|
279
304
|
|
|
@@ -295,7 +320,7 @@ Only proceed to Phase 5 after user confirms.
|
|
|
295
320
|
|
|
296
321
|
Run this gate after `.prizmkit/plans/bug-fix-list.json` passes generation and validation, and before the final handoff. It applies whenever this session added or changed final bug entries. For validate-only, summary-only, or draft-save flows with no final content change, report that the gate is not applicable.
|
|
297
322
|
|
|
298
|
-
Read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the single source of truth. Review the actual draft and final artifacts directly because `.prizmkit` files may be gitignored. Keep the review planning-only, apply accepted findings to the draft/source representation, regenerate the final JSON, and
|
|
323
|
+
Read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the single source of truth. Review the actual draft and final artifacts directly because `.prizmkit` files may be gitignored. Repeat the Headless Context Completeness Gate for every reviewed new or changed bug. Keep the review planning-only, apply accepted findings to the draft/source representation, regenerate the final JSON, rerun validation, and repeat local review until it returns `PASS` before reporting the result.
|
|
299
324
|
|
|
300
325
|
#### Success Output
|
|
301
326
|
|
|
@@ -341,12 +366,13 @@ Batch-parse error logs with minimal interaction: parse automatically, then requi
|
|
|
341
366
|
- verification_type: default to `automated`
|
|
342
367
|
- acceptance_criteria: auto-generate "Error no longer occurs in [scenario]"
|
|
343
368
|
4. Write draft to `.prizmkit/plans/bug-fix-list.draft.json` for user review
|
|
344
|
-
5. Ask
|
|
345
|
-
6.
|
|
369
|
+
5. Run the Phase 4 Headless Context Completeness Gate on every parsed bug. Ask targeted clarification for missing expected behavior, selected scope, severity rationale, or verification decisions; update the draft until all entries pass.
|
|
370
|
+
6. Ask: "Review and confirm? You can edit individual entries."
|
|
371
|
+
7. After user confirms, call the generate script:
|
|
346
372
|
```bash
|
|
347
373
|
python3 ${SKILL_DIR}/scripts/validate-bug-list.py generate --input .prizmkit/plans/bug-fix-list.draft.json --output .prizmkit/plans/bug-fix-list.json
|
|
348
374
|
```
|
|
349
|
-
|
|
375
|
+
8. If validation passes, run the mandatory Local Generated-Plan Review Gate before summarizing or recommending `bugfix-pipeline-launcher`.
|
|
350
376
|
|
|
351
377
|
## Operation: From Tests
|
|
352
378
|
|
|
@@ -359,12 +385,13 @@ Batch-parse failed test output:
|
|
|
359
385
|
3. Auto-populate `failed_test_path`, `error_message`
|
|
360
386
|
4. Set verification_type to `automated` (test already exists)
|
|
361
387
|
5. Write draft to `.prizmkit/plans/bug-fix-list.draft.json`
|
|
362
|
-
6.
|
|
363
|
-
7.
|
|
388
|
+
6. Run the Phase 4 Headless Context Completeness Gate on every parsed failed-test bug; ensure the failing test evidence agrees with the final expected behavior and selected fix scope.
|
|
389
|
+
7. Present parsed failed-test bug entries for confirmation; allow edits, merges, or removals
|
|
390
|
+
8. After user confirms, call the generate script:
|
|
364
391
|
```bash
|
|
365
392
|
python3 ${SKILL_DIR}/scripts/validate-bug-list.py generate --input .prizmkit/plans/bug-fix-list.draft.json --output .prizmkit/plans/bug-fix-list.json
|
|
366
393
|
```
|
|
367
|
-
|
|
394
|
+
9. If validation passes, run the mandatory Local Generated-Plan Review Gate before summarizing or recommending `bugfix-pipeline-launcher`.
|
|
368
395
|
|
|
369
396
|
## Operation: Validate
|
|
370
397
|
|
|
@@ -31,13 +31,38 @@ For every reviewed bug entry, check:
|
|
|
31
31
|
|
|
32
32
|
- Schema compatibility with `dev-pipeline-bug-fix-list-v1` and `.prizmkit/dev-pipeline/templates/bug-fix-list-schema.json`
|
|
33
33
|
- Dependency/DAG consistency, duplicate handling, and root-cause overlap
|
|
34
|
-
- Description completeness:
|
|
34
|
+
- Description completeness: objective, current/actual behavior, desired/expected behavior, selected scope, reproduction path, code-location hints, affected environment, relevant integrations, constraints, non-goals, edge cases, verification decisions, completion evidence, and headless execution readiness
|
|
35
35
|
- Acceptance criteria specificity and measurable verification method
|
|
36
|
-
- User-provided
|
|
36
|
+
- User-provided detail preservation at matching detail after conversational normalization
|
|
37
|
+
- `user_context` is supplementary evidence only: it does not expand, replace, or contradict the bug contract; if `user_context` were removed, execution and verification remain unambiguous
|
|
37
38
|
- Task-scoped `user_context` isolation: no unrelated sibling bug descriptions, logs, stack traces, reproduction steps, expected/actual behavior notes, or supplementary materials; shared context appears on multiple bugs only when explicitly global
|
|
39
|
+
- Purpose-tagged paths and URLs, screenshots, logs, stack traces, and documents; large materials retain title/location, purpose, and task-relevant exact excerpts rather than full-content injection
|
|
38
40
|
- Severity/priority calibration: every reviewed bug has a short severity rationale and priority rationale, the preserved severity-to-priority mapping is followed, and high priority is not used without core outage, data loss/integrity, security/auth, timeout/crash, or no-workaround indicators
|
|
39
41
|
- Browser interaction and verification fields for UI-reproducible bugs when applicable
|
|
40
42
|
|
|
43
|
+
## Headless Context Completeness Gate
|
|
44
|
+
|
|
45
|
+
Repeat the pre-generation simulation for every reviewed new or changed bug as if the reviewer has never seen the planning conversation. From the artifact alone, answer:
|
|
46
|
+
|
|
47
|
+
1. What exact problem or outcome is this task responsible for?
|
|
48
|
+
2. What exists today and what must change from actual to expected behavior?
|
|
49
|
+
3. Which fix scope and verification approach were selected, expressed by meaning rather than an option label?
|
|
50
|
+
4. What constraints and non-goals must be preserved?
|
|
51
|
+
5. Why is each reference material relevant?
|
|
52
|
+
6. How can completion be verified?
|
|
53
|
+
7. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
54
|
+
8. Do quoted source materials agree with the final task decision?
|
|
55
|
+
|
|
56
|
+
Return `NEEDS_FIXES` if any answer is missing, ambiguous, available only in `user_context`, or dependent on shorthand such as `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation`. Accept an expanded decision only when it states complete meaning with inline traceability such as `(original response: "方案B")`. Exclude conversational authorization that does not constrain implementation. Ask the user for clarification when there is not one provable antecedent.
|
|
57
|
+
|
|
58
|
+
Do not add new JSON fields, context objects, schema versions, or pipeline runtime structures. Apply this stricter gate prospectively to new or changed entries and preserve unchanged historical bugs.
|
|
59
|
+
|
|
60
|
+
### Good and Bad Review Examples
|
|
61
|
+
|
|
62
|
+
- Bad: `按推荐走` as severity or verification scope; Good: `Selected decision: classify as medium because export is incorrect but a JSON workaround exists; verify with the existing Unicode export test (original response: "按推荐走")`.
|
|
63
|
+
- Bad: a bare log path; Good: `logs/export.log lines 90-118 — inspect encoding selection and the emitted response header` plus only task-relevant exact excerpts.
|
|
64
|
+
- Bad: `所有问题都按你的推荐处理` as a fix constraint; Good: omit it as conversational authorization unless a concrete decision was separately confirmed.
|
|
65
|
+
|
|
41
66
|
## Fix Loop
|
|
42
67
|
|
|
43
68
|
1. Present findings with IDs, severity, evidence, and suggested draft/source changes.
|
|
@@ -50,7 +75,8 @@ python3 ${SKILL_DIR}/scripts/validate-bug-list.py generate --input .prizmkit/pla
|
|
|
50
75
|
```
|
|
51
76
|
|
|
52
77
|
5. Re-run validation/generation until valid. Do not hand-patch `.prizmkit/plans/bug-fix-list.json` as the source of truth.
|
|
53
|
-
6. Repeat the local review only for entries changed by accepted fixes.
|
|
78
|
+
6. Repeat the local review and Headless Context Completeness Gate only for entries changed by accepted fixes.
|
|
79
|
+
7. Do not report `PASS` until every required fresh-session answer is available and final validation passes after regeneration.
|
|
54
80
|
|
|
55
81
|
## Report Format
|
|
56
82
|
|
|
@@ -48,29 +48,43 @@ The user chose this skill intentionally. Respect that choice.
|
|
|
48
48
|
4. **NEVER auto-execute** the pipeline, launcher, composite workflow, or any implementation step
|
|
49
49
|
5. Return the validated list to the caller; only `feature-pipeline-launcher` prepares the runtime command
|
|
50
50
|
|
|
51
|
-
##
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
1. **
|
|
56
|
-
2. **
|
|
57
|
-
3. **Clarify,
|
|
58
|
-
4. **
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
51
|
+
## Fresh-Session Task Contract (Hard Rule)
|
|
52
|
+
|
|
53
|
+
Every new or changed feature is an executable contract for a fresh AI session that has never seen the planning conversation. Do not add new JSON fields, context objects, schema versions, or pipeline runtime structures. Use the existing fields correctly:
|
|
54
|
+
|
|
55
|
+
1. **Self-contained contract**: The feature's `description` and `acceptance_criteria`, read together, MUST define the objective, current state, desired state, selected decisions, constraints, non-goals, relevant integrations, edge cases, and completion evidence. Preserve detailed user requirements at matching detail; normalization must not simplify substantive rules.
|
|
56
|
+
2. **Supplementary evidence only**: `user_context` is supplementary evidence only. It may preserve scoped source excerpts and purpose-tagged references, but it MUST NOT expand, replace, or contradict the contract in `description` and `acceptance_criteria`. If `user_context` were removed, a fresh execution session must still know exactly what to implement and how to prove completion.
|
|
57
|
+
3. **Clarify, do not guess**: Ask the user for clarification whenever requirements conflict or a reference has multiple plausible antecedents. Do not finalize the feature while ambiguity remains.
|
|
58
|
+
4. **Feature isolation**: In multi-feature planning, each contract and its supplementary evidence contain only material relevant to that feature. Repeat shared context only when it explicitly applies to every affected feature. Ask the user to map material whose applicability is unclear.
|
|
59
|
+
|
|
60
|
+
### Conversational Context Normalization
|
|
61
|
+
|
|
62
|
+
- Never persist standalone option labels such as `A`, `B`, `C`, `方案A`, or `方案B` as execution context.
|
|
63
|
+
- Expand a selected option into its complete meaning and preserve the original response inline for traceability: `Selected decision: <complete meaning> (original response: "<exact response>")`.
|
|
64
|
+
- Resolve relative statements such as `上面`, `这个`, `按推荐走`, `同前`, `继续这样`, `用刚才的方案`, `same as above`, or `go with your recommendation` only when there is one provable antecedent. If more than one antecedent is plausible, ask the user for clarification; never guess.
|
|
65
|
+
- Exclude conversational authorization such as `所有问题都按你的推荐处理` when it only controls how the planner asks or recommends and does not constrain implementation.
|
|
66
|
+
- Do not present rejected alternatives as active instructions. Retain one only when its rejection defines a necessary non-goal.
|
|
67
|
+
|
|
68
|
+
### Reference Material Handling
|
|
69
|
+
|
|
70
|
+
- Every retained file path, URL, screenshot, log, stack trace, or document reference must be purpose-tagged: state why it is relevant and what the execution AI must inspect. This applies to paths and URLs in both the task contract and `user_context`.
|
|
71
|
+
- Good: `src/auth/login.ts:42-78 — inspect empty-password validation and the response-status transition`.
|
|
72
|
+
- Bad: `src/auth/login.ts:42-78` with no purpose.
|
|
73
|
+
- For large materials such as issues, PRDs, logs, or documents, record the title/location, explain the purpose, preserve only task-relevant exact excerpts, and move every confirmed requirement into `description` and `acceptance_criteria`.
|
|
74
|
+
- Embed complete large materials only when the execution session cannot access the source and all content is genuinely required. Reference material never substitutes for the task contract.
|
|
75
|
+
|
|
76
|
+
### Good and Bad Normalization Examples
|
|
77
|
+
|
|
78
|
+
- Bad: `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation` stored alone.
|
|
79
|
+
- Good: `Selected decision: keep saved filters account-scoped and sync them through the existing preferences API (original response: "方案B")`.
|
|
80
|
+
- Good: `Selected decision: use cursor pagination with a 50-item default and preserve current sort order (original response: "use option A")`.
|
|
81
|
+
- Bad: storing `所有问题都按你的推荐处理` as a feature requirement; it is conversational authorization, not execution context.
|
|
82
|
+
- Bad: attaching an entire PRD only to preserve wording. Good: `Billing PRD §4 — inspect retry and idempotency rules`, include the relevant exact excerpt, and restate the confirmed retry behavior in the feature contract.
|
|
69
83
|
|
|
70
84
|
**Multi-feature isolation example:**
|
|
71
85
|
- User request includes: `Feature A: add saved filters to the dashboard`, `Feature B: export filtered results as CSV`, and `Shared: preserve existing auth permissions`.
|
|
72
|
-
- The saved-filters feature
|
|
73
|
-
- The CSV export feature
|
|
86
|
+
- The saved-filters feature contract fully defines saved-filter behavior and includes only matching supplementary evidence plus the shared auth constraint; it MUST NOT include the CSV export request.
|
|
87
|
+
- The CSV export feature contract fully defines export behavior and includes only matching supplementary evidence plus the shared auth constraint; it MUST NOT include the saved-filters request.
|
|
74
88
|
|
|
75
89
|
## When to Use
|
|
76
90
|
|
|
@@ -263,14 +277,14 @@ Execute the planning workflow in conversation mode with mandatory checkpoints:
|
|
|
263
277
|
>
|
|
264
278
|
> If none, we'll proceed with what's available in the codebase."
|
|
265
279
|
|
|
266
|
-
If the user provides materials,
|
|
280
|
+
If the user provides materials, require or infer only when unambiguous a task-specific purpose for each material; otherwise ask what the execution AI should inspect. Read/fetch them before Phase 2. For web links, retrieve and analyze the relevant content; for images, analyze the relevant visual evidence. Record purpose-tagged locations and task-relevant exact excerpts for traceability, but do not copy complete large materials into generated items merely to preserve them.
|
|
267
281
|
2. Confirm constraints and existing architecture
|
|
268
282
|
3. Propose feature set with dependencies
|
|
269
283
|
4. Refine descriptions and acceptance criteria
|
|
270
|
-
4.1 **Per-feature clarification** — for each feature, if the description, acceptance criteria,
|
|
284
|
+
4.1 **Per-feature clarification** — for each feature, if the description, acceptance criteria, selected decision, scope, non-goals, edge cases, integration points, completion evidence, or material purpose is vague or could be interpreted multiple ways, ask the user to clarify before finalizing. Reject conversational shorthand that requires an unseen question, recommendation, or option list.
|
|
271
285
|
4.2 **Browser interaction** (mandatory for fullstack/frontend projects) — see §Browser Interaction Planning below. Qualifying features get `browser_interaction` by default. Only confirm with the user as a batch summary; do NOT ask per-feature.
|
|
272
286
|
5. Verify DAG/order/priorities and show the mandatory priority/complexity calibration table with short rationales for every item
|
|
273
|
-
6.
|
|
287
|
+
6. Run the pre-generation Headless Context Completeness Gate (see §Pre-Generation Completeness Review below)
|
|
274
288
|
7. Build or append `.prizmkit/plans/feature-list.json`
|
|
275
289
|
8. Apply default testing strategy (see §Testing Defaults below)
|
|
276
290
|
9. Validate and fix until pass
|
|
@@ -288,7 +302,7 @@ Checkpoints catch cascading errors early — skipping one means the next phase b
|
|
|
288
302
|
| **CP-FP-3** | DAG Validity | No cycles, dependencies resolved (validation dry-run) | 5 |
|
|
289
303
|
| **CP-FP-3.1** | Browser Interaction Applied | Qualifying features have `browser_interaction` field; user confirmed or opted out | 4 |
|
|
290
304
|
| **CP-FP-3.2** | Testing Defaults Applied | All features have appropriate testing expectations and no retired `critic`/`critic_count` fields | 7 |
|
|
291
|
-
| **CP-FP-3.3** | Completeness Review Passed |
|
|
305
|
+
| **CP-FP-3.3** | Completeness Review Passed | Every new or changed feature passes fresh-session simulation from `description` and `acceptance_criteria` without conversation history or `user_context` | 6 |
|
|
292
306
|
| **CP-FP-4** | `.prizmkit/plans/feature-list.json` Generated | Schema validates, all required keys present | 7-8 |
|
|
293
307
|
| **CP-FP-5** | Final Validation Pass | Python script returns `"valid": true` with zero errors | 9 |
|
|
294
308
|
| **CP-FP-6** | Local Plan Review Passed | Local generated-plan review loaded `${SKILL_DIR}/references/generated-plan-review.md`, reviewed only newly added/changed feature entries, applied accepted fixes through draft/source data, regenerated, and revalidated | 10 |
|
|
@@ -301,7 +315,7 @@ Before generating `.prizmkit/plans/feature-list.json`, review the full feature s
|
|
|
301
315
|
|
|
302
316
|
→ Read `${SKILL_DIR}/references/completeness-review.md` for the full review process (description adequacy scan, cross-feature completeness check, user presentation, and interactive supplementation).
|
|
303
317
|
|
|
304
|
-
This
|
|
318
|
+
This is the mandatory Headless Context Completeness Gate. It reviews every new or changed feature as if the reviewer has never seen the planning conversation and must return `NEEDS_FIXES` when any required artifact-alone question cannot be answered. It does not bulk-rewrite unchanged historical features. Thin descriptions here cost minutes to fix; misimplemented features downstream cost hours.
|
|
305
319
|
|
|
306
320
|
## Fast Path (Simple Incremental)
|
|
307
321
|
|
|
@@ -337,12 +351,13 @@ For simple incremental planning, skip detailed Phase 2-3 analysis:
|
|
|
337
351
|
**NEVER proceed without explicit user selection via `AskUserQuestion`. Do NOT render options as plain text — the user must be able to click/select.**
|
|
338
352
|
3. Generate next sequential feature IDs
|
|
339
353
|
4. Draft features (title + description + acceptance_criteria + dependencies)
|
|
340
|
-
5.
|
|
354
|
+
5. Run the mandatory pre-generation Headless Context Completeness Gate from Phase 6 on every drafted feature; repair the draft until each returns `PASS`.
|
|
355
|
+
6. Write draft to `.prizmkit/plans/feature-list.draft.json`, then call the generate script:
|
|
341
356
|
```bash
|
|
342
357
|
python3 ${SKILL_DIR}/scripts/validate-and-generate.py generate --input .prizmkit/plans/feature-list.draft.json --output .prizmkit/plans/feature-list.json
|
|
343
358
|
```
|
|
344
|
-
|
|
345
|
-
|
|
359
|
+
7. If valid → run the mandatory Local Generated-Plan Review Gate, then summarize and recommend next step
|
|
360
|
+
8. If invalid → apply fixes to the draft, re-run generate (max 2 attempts, then escalate to full workflow)
|
|
346
361
|
|
|
347
362
|
## Browser Interaction Planning
|
|
348
363
|
|
|
@@ -379,7 +394,7 @@ Key requirements:
|
|
|
379
394
|
- new items default `status: "pending"`
|
|
380
395
|
- English feature titles for stable slug generation
|
|
381
396
|
- `browser_interaction` auto-generated for qualifying frontend features (with `tool` selection: `auto`/`playwright-cli`/`opencli`)
|
|
382
|
-
- descriptions: minimum 15 words (error), recommended minimum 30/50/80/100+ for low/medium/high/critical (warning). No upper limit —
|
|
397
|
+
- descriptions: minimum 15 words (error), recommended minimum 30/50/80/100+ for low/medium/high/critical (warning). No upper limit — preserve substantive requirements at matching detail so `description` plus `acceptance_criteria` remains complete without `user_context`
|
|
383
398
|
- `estimated_complexity` records implementation scope and verification risk for planning summaries, ordering, and downstream context. It does not select a fixed agent count or named review topology; every normal feature session receives the runtime's full guidance.
|
|
384
399
|
|
|
385
400
|
**IMPORTANT: Do NOT hand-write the final JSON file.** Instead:
|
|
@@ -394,7 +409,7 @@ The script fills in defaults (`$schema`, `created_at`, `created_by`), validates
|
|
|
394
409
|
|
|
395
410
|
Run this gate after `.prizmkit/plans/feature-list.json` passes generation and validation, and before the final handoff. It applies whenever this session added or changed final feature entries. For validate-only, summary-only, or draft-save flows with no final content change, report that the gate is not applicable.
|
|
396
411
|
|
|
397
|
-
Read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the single source of truth. Review the actual draft and final artifacts directly because `.prizmkit` files may be gitignored. Keep the review planning-only, apply accepted findings to the draft/source representation, regenerate the final JSON, and
|
|
412
|
+
Read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the single source of truth. Review the actual draft and final artifacts directly because `.prizmkit` files may be gitignored. Repeat the Headless Context Completeness Gate for every reviewed new or changed feature. Keep the review planning-only, apply accepted findings to the draft/source representation, regenerate the final JSON, rerun validation, and repeat the local review until it returns `PASS` before reporting the result.
|
|
398
413
|
|
|
399
414
|
## Testing Defaults (Phase 8)
|
|
400
415
|
|
|
@@ -57,19 +57,32 @@ Every description should cover these aspects (adapt per feature type):
|
|
|
57
57
|
|
|
58
58
|
### Headless Execution Requirements
|
|
59
59
|
|
|
60
|
-
Feature
|
|
60
|
+
Feature entries are consumed by **autonomous AI sessions running in headless mode** — no human is available to clarify ambiguities. Treat `description` plus `acceptance_criteria` as the complete task contract, not as a summary of a conversation.
|
|
61
61
|
|
|
62
62
|
**Must include for headless readiness:**
|
|
63
|
-
1. **
|
|
64
|
-
2. **
|
|
65
|
-
3. **
|
|
63
|
+
1. **Objective and current state** — the exact outcome and what exists today
|
|
64
|
+
2. **Desired state and selected decisions** — the complete chosen behavior or approach, never only an option label
|
|
65
|
+
3. **Constraints and non-goals** — boundaries the implementation must preserve
|
|
66
|
+
4. **Relevant integrations** — existing APIs, models, modules, services, and dependency outputs
|
|
67
|
+
5. **Edge cases** — validation, permissions, empty/error states, limits, concurrency, or idempotency when relevant
|
|
68
|
+
6. **Completion evidence** — observable behavior and deterministic tests/checks that prove the feature is done
|
|
69
|
+
|
|
70
|
+
`user_context` is supplementary evidence only. If `user_context` were removed, `description` and `acceptance_criteria` must still provide all six categories at matching detail.
|
|
66
71
|
|
|
67
72
|
**Dependency descriptions:**
|
|
68
73
|
When a feature depends on others, explicitly state what it needs from them:
|
|
69
|
-
-
|
|
70
|
-
-
|
|
74
|
+
- Good: "Uses the User model (id, email, display_name) from F-001 to create a foreign key user_id on the Project model."
|
|
75
|
+
- Bad: "depends on F-001" — the fresh session cannot infer what F-001 built.
|
|
76
|
+
|
|
77
|
+
**Reference descriptions:**
|
|
78
|
+
- Good: `docs/billing-prd.md §4 — inspect webhook retry and idempotency requirements`; preserve only task-relevant exact excerpts and place confirmed behavior in the task contract.
|
|
79
|
+
- Bad: `docs/billing-prd.md` or a full PRD copied into `user_context` without a purpose.
|
|
80
|
+
|
|
81
|
+
**Decision normalization:**
|
|
82
|
+
- Good: `Selected decision: store saved filters per account through the existing preferences API (original response: "方案B")`.
|
|
83
|
+
- Bad: `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation` with no complete selected meaning.
|
|
71
84
|
|
|
72
|
-
**Self-test:**
|
|
85
|
+
**Self-test:** Review the entry as if you have never seen the planning conversation. Could you implement it and prove completion without asking a single question or reading `user_context`? If not, return `NEEDS_FIXES` and add the missing detail.
|
|
73
86
|
|
|
74
87
|
---
|
|
75
88
|
|
|
@@ -1,57 +1,75 @@
|
|
|
1
1
|
# Pre-Generation Completeness Review
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Headless Context Completeness Gate
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Before generating `.prizmkit/plans/feature-list.json`, review every new or changed feature as if the reviewer has never seen the planning conversation. Preserve unchanged historical entries; do not bulk-rewrite them. Individual features may look plausible in the original dialogue but still be unusable in a fresh session.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- Does the description cover: what to build, key behaviors, integration points, data model (if applicable), error/edge cases?
|
|
9
|
-
- Is the description specific enough for an AI coding session to implement without guessing?
|
|
10
|
-
- Flag any feature below the recommended minimum word count for its complexity level (30+/50+/80+/100+ words for low/medium/high/critical). There is no upper limit — more detail is always better.
|
|
7
|
+
The review input is the proposed artifact entry itself. `user_context` is supplementary evidence only: first assess `description` plus `acceptance_criteria` without it, then inspect supplementary evidence for scope and consistency.
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
1. Concrete deliverables (files to create, endpoints to build, components to implement, models to define)
|
|
14
|
-
2. Key behaviors and business rules (validation, state transitions, error handling)
|
|
15
|
-
3. Integration points with other modules (which APIs to call, which models to use)
|
|
9
|
+
## Step 1: Artifact-Alone Fresh-Session Simulation
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
- Good: "Uses User model from F-001 to link projects to users via userId foreign key"
|
|
19
|
-
- Bad: "depends on F-001" (too vague)
|
|
11
|
+
For each new or changed feature, answer all of these from `description` and `acceptance_criteria` alone:
|
|
20
12
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
1. What exact problem or outcome is this feature responsible for?
|
|
14
|
+
2. What exists today and what must change?
|
|
15
|
+
3. Which approach was selected, expressed by meaning rather than an option label?
|
|
16
|
+
4. What constraints and non-goals must be preserved?
|
|
17
|
+
5. Which existing modules, APIs, data, dependencies, or other relevant integrations are involved?
|
|
18
|
+
6. Which edge cases, errors, permissions, limits, state transitions, or failure modes matter?
|
|
19
|
+
7. How can completion be verified with observable behavior or deterministic evidence?
|
|
20
|
+
8. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
21
|
+
9. Why is each reference material relevant, and what should the execution AI inspect?
|
|
22
|
+
10. Do quoted source materials agree with the final task decision?
|
|
24
23
|
|
|
25
|
-
If any
|
|
24
|
+
If any answer is unavailable, ambiguous, or present only in `user_context`, the verdict is `NEEDS_FIXES`. Never infer a missing decision from conversation memory.
|
|
26
25
|
|
|
27
|
-
## Step 2:
|
|
26
|
+
## Step 2: Contract and Material Checks
|
|
27
|
+
|
|
28
|
+
- Preserve substantive user requirements at matching detail; normalization must not collapse a detailed specification into a short summary.
|
|
29
|
+
- Expand option shorthand into complete selected meaning with inline traceability, for example: `Selected decision: use cursor pagination with a 50-item default (original response: "use option A")`.
|
|
30
|
+
- Resolve `方案B`, `按推荐走`, `same as above`, or `go with your recommendation` only when there is one provable antecedent. Otherwise ask the user for clarification.
|
|
31
|
+
- Exclude conversational authorization that controls planning but does not constrain implementation.
|
|
32
|
+
- Do not present rejected alternatives as active requirements; retain them only as necessary non-goals.
|
|
33
|
+
- Require purpose-tagged paths and URLs, screenshots, logs, stack traces, and documents.
|
|
34
|
+
- For large materials, preserve title/location, purpose, and task-relevant exact excerpts; move confirmed requirements into the task contract rather than embedding the entire source.
|
|
35
|
+
- If `user_context` were removed, `description` and `acceptance_criteria` must remain sufficient for execution and verification.
|
|
36
|
+
|
|
37
|
+
### Good and Bad Examples
|
|
38
|
+
|
|
39
|
+
- Bad: `方案B`.
|
|
40
|
+
- Good: `Selected decision: keep saved filters account-scoped and sync through the existing preferences API (original response: "方案B")`.
|
|
41
|
+
- Bad: `same as above` when multiple earlier decisions exist.
|
|
42
|
+
- Good: ask which earlier decision applies, then record its complete meaning.
|
|
43
|
+
- Bad: `docs/search-rfc.md`.
|
|
44
|
+
- Good: `docs/search-rfc.md §3 — inspect ranking tie-breakers and empty-query behavior`.
|
|
45
|
+
- Bad: copy a complete issue into `user_context` while leaving the feature description as `implement the issue`.
|
|
46
|
+
- Good: retain the issue URL and relevant exact excerpts as evidence, then state all confirmed behavior and completion checks in the feature contract.
|
|
47
|
+
|
|
48
|
+
## Step 3: Cross-Feature Completeness Check
|
|
28
49
|
|
|
29
50
|
Look at the feature set as a whole:
|
|
30
|
-
- **Implied functionality gaps**: Does feature A's acceptance criteria assume a capability that no other feature provides?
|
|
31
|
-
- **Missing integration seams**: If two features share data or interact at runtime, is the interface specified?
|
|
32
|
-
- **Scope leaks**: Does any feature's description reference functionality outside the agreed scope?
|
|
33
51
|
|
|
34
|
-
|
|
52
|
+
- **Implied functionality gaps**: Does one feature assume a capability that no feature provides?
|
|
53
|
+
- **Missing integration seams**: If two features share data or interact at runtime, is the interface specified by meaning?
|
|
54
|
+
- **Dependency context**: Does each dependent feature state exactly which predecessor output it consumes?
|
|
55
|
+
- **Scope leaks**: Does a description activate rejected or out-of-scope functionality?
|
|
56
|
+
- **Source conflict**: Does an excerpt describe an earlier alternative that conflicts with the selected final decision?
|
|
35
57
|
|
|
36
|
-
|
|
58
|
+
## Step 4: Present Review and Repair
|
|
37
59
|
|
|
38
|
-
|
|
39
|
-
Feature | Description | Cross-Feature | Recommendation
|
|
40
|
-
| Adequacy | Issues |
|
|
41
|
-
F-001 | ✓ (65 words)| — | Ready
|
|
42
|
-
F-002 | ⚠ (28 words)| — | Expand: add API endpoints, error handling
|
|
43
|
-
F-003 | ✓ (52 words)| Assumes email from | Clarify: who sends the notification?
|
|
44
|
-
| | F-006 (not yet defined)|
|
|
45
|
-
```
|
|
60
|
+
Show a structured summary:
|
|
46
61
|
|
|
47
|
-
|
|
62
|
+
```text
|
|
63
|
+
Feature | Artifact-Alone Answers | References | Cross-Feature Issues | Verdict
|
|
64
|
+
F-001 | complete | purposeful | none | PASS
|
|
65
|
+
F-002 | missing current state | URL vague | none | NEEDS_FIXES
|
|
66
|
+
```
|
|
48
67
|
|
|
49
|
-
|
|
68
|
+
For each `NEEDS_FIXES` item:
|
|
50
69
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
4. Re-check: does the supplement resolve the gap?
|
|
70
|
+
1. Ask targeted clarification when the missing meaning cannot be proven from one antecedent.
|
|
71
|
+
2. Update the draft/source feature, not only `user_context`.
|
|
72
|
+
3. Re-run this gate on the changed item.
|
|
73
|
+
4. Continue until every new or changed feature returns `PASS`.
|
|
56
74
|
|
|
57
|
-
|
|
75
|
+
Only then may generation proceed. Structural validation after generation does not replace this semantic gate.
|
|
@@ -31,13 +31,38 @@ For every reviewed feature entry, check:
|
|
|
31
31
|
|
|
32
32
|
- Schema compatibility with `dev-pipeline-feature-list-v1` and `.prizmkit/dev-pipeline/templates/feature-list-schema.json`
|
|
33
33
|
- Dependency/DAG soundness: dependencies exist, no cycles, no poorly ordered prerequisite chains
|
|
34
|
-
- Description completeness and headless execution readiness
|
|
34
|
+
- Description completeness and headless execution readiness: `description` plus `acceptance_criteria` defines objective, current state, desired state, selected decisions, constraints, non-goals, relevant integrations, edge cases, and completion evidence without conversation history
|
|
35
35
|
- Acceptance criteria specificity, measurability, and coverage of the described behavior
|
|
36
|
-
- User-provided
|
|
36
|
+
- User-provided detail preservation at matching detail after conversational normalization
|
|
37
|
+
- `user_context` is supplementary evidence only: it does not expand, replace, or contradict the task contract; if `user_context` were removed, execution and verification remain unambiguous
|
|
37
38
|
- Task-scoped `user_context` isolation: no unrelated sibling feature descriptions, file references, or supplementary materials; shared context appears on multiple items only when explicitly global
|
|
39
|
+
- Purpose-tagged paths and URLs, screenshots, logs, stack traces, and documents; large materials retain title/location, purpose, and task-relevant exact excerpts rather than full-content injection
|
|
38
40
|
- Priority/complexity calibration: every reviewed feature has short priority and complexity rationales, medium/low assignments are allowed when criteria fit, and high/high is not used merely because work is framework-related, multi-file, or user-requested
|
|
39
41
|
- Browser interaction fields for qualifying frontend/fullstack features when applicable
|
|
40
42
|
|
|
43
|
+
## Headless Context Completeness Gate
|
|
44
|
+
|
|
45
|
+
Repeat the pre-generation simulation for every reviewed new or changed feature as if the reviewer has never seen the planning conversation. From the artifact alone, answer:
|
|
46
|
+
|
|
47
|
+
1. What exact problem or outcome is this task responsible for?
|
|
48
|
+
2. What exists today and what must change?
|
|
49
|
+
3. Which approach was selected, expressed by meaning rather than an option label?
|
|
50
|
+
4. What constraints and non-goals must be preserved?
|
|
51
|
+
5. Why is each reference material relevant?
|
|
52
|
+
6. How can completion be verified?
|
|
53
|
+
7. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
54
|
+
8. Do quoted source materials agree with the final task decision?
|
|
55
|
+
|
|
56
|
+
Return `NEEDS_FIXES` if any answer is missing, ambiguous, available only in `user_context`, or dependent on shorthand such as `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation`. Accept an expanded decision only when it includes complete meaning and inline traceability such as `(original response: "方案B")`. Exclude conversational authorization that does not constrain implementation. Ask the user for clarification when there is not one provable antecedent.
|
|
57
|
+
|
|
58
|
+
Do not add new JSON fields, context objects, schema versions, or pipeline runtime structures. Apply this stricter gate prospectively to new or changed entries and preserve unchanged historical plans.
|
|
59
|
+
|
|
60
|
+
### Good and Bad Review Examples
|
|
61
|
+
|
|
62
|
+
- Bad: `same as above`; Good: the complete selected API behavior plus `(original response: "same as above")` after its single antecedent is proven.
|
|
63
|
+
- Bad: a bare URL; Good: `https://example.test/search-rfc — inspect ranking tie-breakers and empty-query behavior` plus only task-relevant exact excerpts.
|
|
64
|
+
- Bad: `所有问题都按你的推荐处理` as an implementation rule; Good: omit it as conversational authorization unless a concrete selected decision was separately confirmed.
|
|
65
|
+
|
|
41
66
|
## Fix Loop
|
|
42
67
|
|
|
43
68
|
1. Present findings with IDs, severity, evidence, and suggested draft/source changes.
|
|
@@ -50,7 +75,8 @@ python3 ${SKILL_DIR}/scripts/validate-and-generate.py generate --input .prizmkit
|
|
|
50
75
|
```
|
|
51
76
|
|
|
52
77
|
5. Re-run validation/generation until valid. Do not hand-patch `.prizmkit/plans/feature-list.json` as the source of truth.
|
|
53
|
-
6. Repeat the local review only for entries changed by accepted fixes.
|
|
78
|
+
6. Repeat the local review and Headless Context Completeness Gate only for entries changed by accepted fixes.
|
|
79
|
+
7. Do not report `PASS` until every required fresh-session answer is available and final validation passes after regeneration.
|
|
54
80
|
|
|
55
81
|
## Report Format
|
|
56
82
|
|
|
@@ -45,29 +45,43 @@ The user chose this skill intentionally. Respect that choice.
|
|
|
45
45
|
5. **NEVER auto-execute** the pipeline, launcher, composite workflow, or any implementation step
|
|
46
46
|
6. Return the validated refactor list to the caller; only `refactor-pipeline-launcher` prepares the runtime command
|
|
47
47
|
|
|
48
|
-
##
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
1. **
|
|
53
|
-
2. **
|
|
54
|
-
3. **
|
|
55
|
-
4. **
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
48
|
+
## Fresh-Session Task Contract (Hard Rule)
|
|
49
|
+
|
|
50
|
+
Every new or changed refactor item is an executable contract for a fresh AI session that has never seen the planning conversation. Do not add new JSON fields, context objects, schema versions, or pipeline runtime structures. Use the existing fields correctly:
|
|
51
|
+
|
|
52
|
+
1. **Self-contained contract**: The item's `description` and `acceptance_criteria`, read together, MUST define the objective, current state, desired target architecture, selected decisions, scope boundaries, constraints, non-goals, relevant integrations and consumers, edge cases, behavior-preservation decisions, and completion evidence. Preserve substantive user requirements at matching detail.
|
|
53
|
+
2. **Supplementary evidence only**: `user_context` is supplementary evidence only. It may contain scoped exact excerpts and purpose-tagged references, but it MUST NOT expand, replace, or contradict the contract. If `user_context` were removed, a fresh refactor session must still know the current structure, target architecture, allowed scope, forbidden changes, preservation strategy, and verification evidence.
|
|
54
|
+
3. **Purposeful scope**: Every path in `scope.files` and every related path reference must be a purpose-tagged target path in the task contract or supplementary evidence, stating what to inspect or change. The scope array may remain schema-compatible path strings, while `description` explains each path or coherent path group's role.
|
|
55
|
+
4. **Clarify, do not guess**: Ask the user for clarification whenever target architecture, scope boundaries, preservation behavior, material applicability, or a relative reference has multiple plausible meanings.
|
|
56
|
+
5. **Item isolation**: Each refactor contract and its supplementary evidence contain only relevant goals, paths, constraints, desired end state, and preservation evidence.
|
|
57
|
+
|
|
58
|
+
### Conversational Context Normalization
|
|
59
|
+
|
|
60
|
+
- Never persist standalone option labels such as `A`, `B`, `C`, `方案A`, or `方案B` as execution context.
|
|
61
|
+
- Expand a selected option into complete meaning with inline traceability: `Selected decision: <complete meaning> (original response: "<exact response>")`.
|
|
62
|
+
- Resolve `上面`, `这个`, `按推荐走`, `同前`, `继续这样`, `用刚才的方案`, `same as above`, or `go with your recommendation` only when there is one provable antecedent. Otherwise ask the user for clarification; never guess.
|
|
63
|
+
- Exclude conversational authorization such as `所有问题都按你的推荐处理` when it controls planning behavior but does not constrain implementation.
|
|
64
|
+
- Do not present rejected architectures as active instructions; preserve one only when it defines a necessary non-goal or compatibility boundary.
|
|
65
|
+
|
|
66
|
+
### Reference Material Handling
|
|
67
|
+
|
|
68
|
+
- Every retained file path, URL, screenshot, log, dependency graph, analysis, or document reference must be purpose-tagged: state why it is relevant and what the execution AI should inspect. This applies to paths and URLs in the task contract and `user_context`.
|
|
69
|
+
- Good: `src/auth/validation.ts — inspect exported signatures and current error semantics before extracting middleware`; Bad: `src/auth/validation.ts` alone.
|
|
70
|
+
- For large materials, record title/location and purpose, preserve only task-relevant exact excerpts, and move confirmed target architecture, scope boundaries, constraints, and preservation decisions into `description` and `acceptance_criteria`.
|
|
71
|
+
- Embed complete large materials only when the execution session cannot access the source and all content is genuinely required.
|
|
72
|
+
|
|
73
|
+
### Good and Bad Normalization Examples
|
|
74
|
+
|
|
75
|
+
- Bad: `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation` stored as the target architecture.
|
|
76
|
+
- Good: `Selected decision: extract validation behind an auth-owned middleware interface while preserving all handler exports (original response: "方案B")`.
|
|
77
|
+
- Good: `Selected decision: migrate imports in one compatibility-preserving phase and remove no public paths (original response: "use option A")`.
|
|
78
|
+
- Bad: storing `所有问题都按你的推荐处理` as a preservation rule; it is conversational authorization.
|
|
79
|
+
- Bad: attaching a full architecture RFC while saying only `apply this`. Good: retain purpose-tagged RFC sections and relevant exact excerpts, then state the complete selected target architecture and non-goals in the item contract.
|
|
66
80
|
|
|
67
81
|
**Multi-refactor isolation example:**
|
|
68
82
|
- User request includes: `Refactor A: extract auth validation into middleware`, `Refactor B: split dashboard chart utilities`, and `Shared: preserve all public APIs`.
|
|
69
|
-
- The auth
|
|
70
|
-
- The chart
|
|
83
|
+
- The auth item contract fully defines its current and target structure and includes only matching evidence plus the shared API constraint; it MUST NOT include chart-utility scope.
|
|
84
|
+
- The chart item contract fully defines its current and target structure and includes only matching evidence plus the shared API constraint; it MUST NOT include auth scope.
|
|
71
85
|
|
|
72
86
|
## When to Use
|
|
73
87
|
- "Plan refactoring", "Scope a restructuring"
|
|
@@ -162,7 +176,7 @@ Execute the planning workflow in conversation mode with mandatory checkpoints:
|
|
|
162
176
|
>
|
|
163
177
|
> If none, we'll proceed with what's available in the codebase."
|
|
164
178
|
|
|
165
|
-
If the user provides materials,
|
|
179
|
+
If the user provides materials, require or infer only when unambiguous a refactor-specific purpose for each material; otherwise ask what the execution AI should inspect. Read/fetch the relevant material before Phase 2. For web links, retrieve the relevant content; for images, analyze the relevant visual evidence. Preserve purpose-tagged locations and task-relevant exact excerpts, but do not inject complete large materials merely for verbatim preservation. This context is critical for understanding the target architecture and constraints.
|
|
166
180
|
|
|
167
181
|
**CHECKPOINT CP-RP-0**: Project context loaded, tech stack and test suite status known.
|
|
168
182
|
|
|
@@ -190,9 +204,10 @@ Support 4 input formats (users may mix formats):
|
|
|
190
204
|
> "The database layer is tightly coupled to the HTTP layer"
|
|
191
205
|
|
|
192
206
|
For each input, ask clarifying questions:
|
|
193
|
-
- What is the specific target (files, modules, patterns)?
|
|
194
|
-
- What is the desired end state?
|
|
195
|
-
-
|
|
207
|
+
- What is the specific target (files, modules, patterns), and what should the execution AI inspect at each purpose-tagged target path?
|
|
208
|
+
- What is the complete desired target architecture or end state?
|
|
209
|
+
- What are the scope boundaries and non-goals (must preserve API, must not touch certain files, rejected architecture that must stay rejected)?
|
|
210
|
+
- Which behavior-preservation decisions and completion evidence prove the refactor is safe?
|
|
196
211
|
- What is the motivation (maintainability, performance, testability)?
|
|
197
212
|
|
|
198
213
|
Continue collecting goals until the user says they're done. There is no limit on rounds.
|
|
@@ -246,13 +261,13 @@ See `${SKILL_DIR}/references/planning-phases.md` for the display template and co
|
|
|
246
261
|
|
|
247
262
|
**CHECKPOINT CP-RP-4**: All items confirmed by user.
|
|
248
263
|
|
|
249
|
-
### Phase 6: Completeness
|
|
264
|
+
### Phase 6: Headless Context Completeness Gate
|
|
250
265
|
|
|
251
|
-
**Goal**: Check
|
|
266
|
+
**Goal**: Check every new or changed item as if the reviewer has never seen the planning conversation, including consistency, gaps, target architecture, scope boundaries, purpose-tagged target paths, behavior-preservation decisions, and completion evidence. Return `NEEDS_FIXES` for any unanswered artifact-alone question and preserve unchanged historical items.
|
|
252
267
|
|
|
253
268
|
See `${SKILL_DIR}/references/planning-phases.md` for the full 5-step review checklist (DAG validation, preservation check, gap detection, cross-module impact, headless readiness criteria) and review summary table format.
|
|
254
269
|
|
|
255
|
-
**CHECKPOINT CP-RP-5**: Completeness
|
|
270
|
+
**CHECKPOINT CP-RP-5**: Headless Context Completeness Gate passed for every new or changed item, all issues resolved without relying on `user_context`.
|
|
256
271
|
|
|
257
272
|
### Phase 7: Generate & Validate
|
|
258
273
|
|
|
@@ -290,7 +305,7 @@ See `${SKILL_DIR}/references/planning-phases.md` for the full 5-step review chec
|
|
|
290
305
|
|
|
291
306
|
Run this gate after `.prizmkit/plans/refactor-list.json` passes generation and validation, and before the final handoff. It applies whenever this session added or changed final refactor entries. For validate-only, summary-only, or draft-save flows with no final content change, report that the gate is not applicable.
|
|
292
307
|
|
|
293
|
-
Read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the single source of truth. Review the actual draft and final artifacts directly because `.prizmkit` files may be gitignored. Keep the review planning-only, apply accepted findings to the draft/source representation, regenerate the final JSON, and
|
|
308
|
+
Read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the single source of truth. Review the actual draft and final artifacts directly because `.prizmkit` files may be gitignored. Repeat the Headless Context Completeness Gate for every reviewed new or changed refactor. Keep the review planning-only, apply accepted findings to the draft/source representation, regenerate the final JSON, rerun validation, and repeat local review until it returns `PASS` before reporting the result.
|
|
294
309
|
|
|
295
310
|
## Output Rules
|
|
296
311
|
|
|
@@ -30,12 +30,13 @@ For simple refactoring with minimal scope.
|
|
|
30
30
|
|
|
31
31
|
**NEVER proceed without explicit user selection via `AskUserQuestion`. Do NOT render options as plain text — the user must be able to click/select.**
|
|
32
32
|
3. Draft items (title + type + scope + description + acceptance_criteria + behavior_preservation + dependencies)
|
|
33
|
-
4.
|
|
33
|
+
4. Run the mandatory Phase 6 Headless Context Completeness Gate on every drafted item; repair the draft until each returns `PASS` without conversation history or `user_context`.
|
|
34
|
+
5. Write draft to `.prizmkit/plans/refactor-list.draft.json`, then call the generate script:
|
|
34
35
|
```bash
|
|
35
36
|
python3 ${SKILL_DIR}/scripts/validate-and-generate-refactor.py generate --input .prizmkit/plans/refactor-list.draft.json --output .prizmkit/plans/refactor-list.json
|
|
36
37
|
```
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
6. If valid -> run the mandatory Local Generated-Plan Review Gate from the main `refactor-planner` skill before summarizing or recommending `refactor-pipeline-launcher`.
|
|
39
|
+
7. If invalid -> apply fixes to the draft, re-run generate (max 2 attempts, then escalate to full workflow)
|
|
39
40
|
|
|
40
41
|
## When NOT to Use Fast Path
|
|
41
42
|
- More than 2 refactor items
|
|
@@ -31,13 +31,38 @@ For every reviewed refactor entry, check:
|
|
|
31
31
|
|
|
32
32
|
- Schema compatibility with `dev-pipeline-refactor-list-v1` and `.prizmkit/dev-pipeline/templates/refactor-list-schema.json`
|
|
33
33
|
- Dependency/DAG soundness, including safe behavior-preserving order
|
|
34
|
-
- Description completeness, target scope
|
|
34
|
+
- Description completeness: objective, current state, desired target architecture, selected decisions, scope boundaries, constraints, non-goals, relevant integrations and consumers, edge cases, behavior-preservation decisions, completion evidence, and headless execution readiness
|
|
35
35
|
- Acceptance criteria specificity and measurable behavior-preservation verification
|
|
36
36
|
- `behavior_preservation` strategy quality and consistency with target scope and existing tests
|
|
37
|
-
- User-provided
|
|
37
|
+
- User-provided detail preservation at matching detail after conversational normalization
|
|
38
|
+
- `user_context` is supplementary evidence only: it does not expand, replace, or contradict the refactor contract; if `user_context` were removed, execution and verification remain unambiguous
|
|
38
39
|
- Task-scoped `user_context` isolation: no unrelated sibling refactor goals, target files, constraints, desired end states, or supplementary materials; shared context appears on multiple items only when explicitly global
|
|
40
|
+
- Purpose-tagged target paths and URLs, diagrams, analyses, and documents; large materials retain title/location, purpose, and task-relevant exact excerpts rather than full-content injection
|
|
39
41
|
- Priority/complexity calibration: every reviewed refactor has short priority and complexity rationales, medium/low assignments are allowed when criteria fit, and high/high is not used merely because the work is cleanup, framework-related, multi-file, or user-requested
|
|
40
42
|
|
|
43
|
+
## Headless Context Completeness Gate
|
|
44
|
+
|
|
45
|
+
Repeat the pre-generation simulation for every reviewed new or changed refactor as if the reviewer has never seen the planning conversation. From the artifact alone, answer:
|
|
46
|
+
|
|
47
|
+
1. What exact problem or outcome is this task responsible for?
|
|
48
|
+
2. What current architecture exists and what target architecture must replace it?
|
|
49
|
+
3. Which approach was selected, expressed by meaning rather than an option label?
|
|
50
|
+
4. What scope boundaries, constraints, and non-goals must be preserved?
|
|
51
|
+
5. Why is each reference material and target path relevant?
|
|
52
|
+
6. How can completion and behavior preservation be verified?
|
|
53
|
+
7. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
54
|
+
8. Do quoted source materials agree with the final task decision?
|
|
55
|
+
|
|
56
|
+
Return `NEEDS_FIXES` if any answer is missing, ambiguous, available only in `user_context`, or dependent on shorthand such as `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation`. Accept an expanded decision only when it states complete meaning with inline traceability such as `(original response: "方案B")`. Exclude conversational authorization that does not constrain implementation. Ask the user for clarification when there is not one provable antecedent.
|
|
57
|
+
|
|
58
|
+
Do not add new JSON fields, context objects, schema versions, or pipeline runtime structures. Apply this stricter gate prospectively to new or changed entries and preserve unchanged historical refactors.
|
|
59
|
+
|
|
60
|
+
### Good and Bad Review Examples
|
|
61
|
+
|
|
62
|
+
- Bad: `go with your recommendation` as target architecture; Good: `Selected decision: reverse the auth/user dependency through a shared identity interface and retain existing public imports (original response: "go with your recommendation")`.
|
|
63
|
+
- Bad: bare `src/auth/`; Good: `src/auth/ — inspect public exports, dependency direction, and compatibility call sites before restructuring`.
|
|
64
|
+
- Bad: an entire RFC pasted into evidence; Good: a purpose-tagged RFC location, task-relevant exact excerpts, and all confirmed target decisions in the task contract.
|
|
65
|
+
|
|
41
66
|
## Fix Loop
|
|
42
67
|
|
|
43
68
|
1. Present findings with IDs, severity, evidence, and suggested draft/source changes.
|
|
@@ -50,7 +75,8 @@ python3 ${SKILL_DIR}/scripts/validate-and-generate-refactor.py generate --input
|
|
|
50
75
|
```
|
|
51
76
|
|
|
52
77
|
5. Re-run validation/generation until valid. Do not hand-patch `.prizmkit/plans/refactor-list.json` as the source of truth.
|
|
53
|
-
6. Repeat the local review only for entries changed by accepted fixes.
|
|
78
|
+
6. Repeat the local review and Headless Context Completeness Gate only for entries changed by accepted fixes.
|
|
79
|
+
7. Do not report `PASS` until every required fresh-session answer is available and final validation passes after regeneration.
|
|
54
80
|
|
|
55
81
|
## Report Format
|
|
56
82
|
|
|
@@ -47,13 +47,31 @@ Offer `Accept`, `Modify`, and `Skip` as selectable options. Re-display modified
|
|
|
47
47
|
2. **Behavior preservation check**: Every item must have a declared preservation strategy. Flag any item with `manual` strategy and no test coverage.
|
|
48
48
|
3. **Gap detection**: Are there intermediate steps needed between items? Does item A's output match item B's input assumption?
|
|
49
49
|
4. **Cross-module impact**: Do any items affect modules outside the declared scope?
|
|
50
|
-
5. **Headless
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
5. **Headless Context Completeness Gate**: Review every new or changed item as if the reviewer has never seen the planning conversation. Preserve unchanged historical items. First assess `description` plus `acceptance_criteria` without `user_context`, then answer from the artifact alone:
|
|
51
|
+
1. What exact problem or outcome is this task responsible for?
|
|
52
|
+
2. What current architecture exists and what target architecture must replace it?
|
|
53
|
+
3. Which approach was selected, expressed by meaning rather than an option label?
|
|
54
|
+
4. What scope boundaries, constraints, and non-goals must be preserved?
|
|
55
|
+
5. Why is each reference material and target path relevant, and what should be inspected?
|
|
56
|
+
6. Which integrations, consumers, import paths, and edge cases are affected?
|
|
57
|
+
7. Which behavior-preservation decisions and completion evidence prove equivalence?
|
|
58
|
+
8. Does any phrase require an unseen earlier question, recommendation, or option list?
|
|
59
|
+
9. Do quoted source materials agree with the final task decision?
|
|
60
|
+
|
|
61
|
+
Return `NEEDS_FIXES` whenever any answer is missing, ambiguous, or available only in `user_context`. Ask the user for clarification when a relative statement has more than one plausible antecedent; never guess.
|
|
62
|
+
|
|
63
|
+
- **Scope clarity**: List all affected files and explain each file or coherent group as purpose-tagged target paths.
|
|
64
|
+
- **Target architecture**: State concrete module ownership, interfaces, dependency direction, compatibility boundaries, and desired end state.
|
|
65
|
+
- **Behavior preservation**: State what tests, snapshots, or reproducible checks run and which observable behavior must remain equivalent.
|
|
66
|
+
- **Dependency context**: State which exact earlier refactor output this item consumes.
|
|
67
|
+
- **Good**: `Extract validateEmail, validatePhone, and validateUrl from src/utils/helpers.ts into src/utils/validation.ts; update all 12 import sites; preserve signatures and error semantics. src/utils/helpers.ts — inspect current exports and callers before extraction.`
|
|
68
|
+
- **Bad**: `Clean up the utils module`, `方案B`, `按推荐走`, `use option A`, `same as above`, or `go with your recommendation`.
|
|
69
|
+
- **Good normalization**: `Selected decision: introduce an auth-owned validation module while retaining existing public imports through compatibility re-exports (original response: "方案B")`.
|
|
70
|
+
- **Bad material handling**: embed an entire architecture RFC while saying `apply this`.
|
|
71
|
+
- **Good material handling**: `Auth Architecture RFC §5 — inspect dependency-direction and compatibility requirements`, preserve task-relevant exact excerpts, and move confirmed decisions into the task contract.
|
|
72
|
+
- Exclude conversational authorization such as `所有问题都按你的推荐处理` when it does not constrain implementation.
|
|
73
|
+
- `user_context` is supplementary evidence only. If `user_context` were removed, execution and verification must remain unambiguous at matching detail.
|
|
74
|
+
- Do not add new JSON fields, context objects, schema versions, or pipeline runtime structures.
|
|
57
75
|
|
|
58
76
|
### Review Summary Table Format
|
|
59
77
|
|
|
@@ -67,7 +85,7 @@ R-003 | low | Local readability only | low | One file, no AP
|
|
|
67
85
|
R-004 | medium | Reduces bounded coupling | medium | 2 modules + snapshot check | OK | snapshot | - | Ready
|
|
68
86
|
```
|
|
69
87
|
|
|
70
|
-
If issues found, discuss with user and
|
|
88
|
+
If issues are found, discuss with the user, apply fixes to the draft/source item, and rerun the Headless Context Completeness Gate until every new or changed item returns `PASS` before proceeding.
|
|
71
89
|
|
|
72
90
|
---
|
|
73
91
|
|