prizmkit 1.1.153 → 1.1.155
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/adapters/codex/skill-adapter.js +1 -1
- package/bundled/adapters/pi/skill-adapter.js +2 -1
- package/bundled/dev-pipeline/.env.example +2 -6
- package/bundled/dev-pipeline/README.md +120 -113
- package/bundled/dev-pipeline/assets/skill-subagent-integration.md +1 -1
- package/bundled/dev-pipeline/prizmkit_runtime/checkpoint_state.py +355 -15
- package/bundled/dev-pipeline/prizmkit_runtime/cli.py +189 -110
- package/bundled/dev-pipeline/prizmkit_runtime/commands.py +146 -111
- package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +4 -20
- package/bundled/dev-pipeline/prizmkit_runtime/gitops.py +48 -14
- package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +0 -1
- package/bundled/dev-pipeline/prizmkit_runtime/paths.py +0 -3
- package/bundled/dev-pipeline/prizmkit_runtime/reset.py +122 -15
- package/bundled/dev-pipeline/prizmkit_runtime/reset_preserve.py +1 -1
- package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +50 -2
- package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +1 -10
- package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +3 -3
- package/bundled/dev-pipeline/prizmkit_runtime/runners.py +139 -74
- package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +482 -0
- package/bundled/dev-pipeline/prizmkit_runtime/status.py +106 -1
- package/bundled/dev-pipeline/prizmkit_runtime/test_result.py +64 -11
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +145 -367
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +91 -62
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +105 -69
- package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +2 -2
- package/bundled/dev-pipeline/scripts/prompt_framework.py +36 -41
- package/bundled/dev-pipeline/scripts/update-bug-status.py +197 -71
- package/bundled/dev-pipeline/scripts/update-checkpoint.py +77 -16
- package/bundled/dev-pipeline/scripts/update-feature-status.py +46 -121
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +46 -123
- package/bundled/dev-pipeline/scripts/utils.py +119 -0
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +22 -27
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +71 -104
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +3 -2
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +59 -111
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +37 -72
- package/bundled/dev-pipeline/templates/sections/artifact-manifest.md +39 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-critical-paths.md +3 -1
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-commit-report.md +8 -25
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-diagnose-plan.md +3 -3
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-implement.md +2 -2
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-review.md +3 -3
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-test.md +2 -2
- package/bundled/dev-pipeline/templates/sections/bugfix-reminders.md +4 -4
- package/bundled/dev-pipeline/templates/sections/bugfix-session-context.md +0 -1
- package/bundled/dev-pipeline/templates/sections/checkpoint-system.md +7 -4
- package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +14 -27
- package/bundled/dev-pipeline/templates/sections/feature-completion-summary.md +20 -0
- package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +8 -71
- package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +7 -7
- package/bundled/dev-pipeline/templates/sections/phase-prizmkit-test.md +3 -3
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +4 -4
- package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +5 -17
- package/bundled/dev-pipeline/templates/sections/refactor-critical-paths.md +3 -1
- package/bundled/dev-pipeline/templates/sections/refactor-phase-commit-report.md +10 -23
- package/bundled/dev-pipeline/templates/sections/refactor-phase-implement.md +2 -2
- package/bundled/dev-pipeline/templates/sections/refactor-phase-plan.md +2 -2
- package/bundled/dev-pipeline/templates/sections/refactor-phase-review.md +3 -3
- package/bundled/dev-pipeline/templates/sections/refactor-phase-test.md +2 -2
- package/bundled/dev-pipeline/templates/sections/refactor-reminders.md +7 -7
- package/bundled/dev-pipeline/templates/sections/refactor-session-context.md +0 -1
- package/bundled/dev-pipeline/templates/sections/retrospective.md +12 -0
- package/bundled/dev-pipeline/templates/sections/runtime-commit-handoff.md +35 -0
- package/bundled/dev-pipeline/templates/session-status-schema.json +45 -62
- package/bundled/dev-pipeline/tests/test_auto_skip.py +111 -32
- package/bundled/dev-pipeline/tests/test_checkpoint_state.py +617 -30
- package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +262 -194
- package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +62 -23
- package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +76 -28
- package/bundled/dev-pipeline/tests/test_python_runner_parity.py +281 -206
- package/bundled/dev-pipeline/tests/test_recovery_workflow.py +322 -0
- package/bundled/dev-pipeline/tests/test_reset_modes.py +935 -0
- package/bundled/dev-pipeline/tests/test_reset_preserve.py +5 -7
- package/bundled/dev-pipeline/tests/test_runtime_commit.py +608 -0
- package/bundled/dev-pipeline/tests/test_unified_cli.py +617 -188
- package/bundled/skills/_metadata.json +9 -9
- package/bundled/skills/app-planner/SKILL.md +3 -3
- package/bundled/skills/app-planner/references/generated-plan-review.md +2 -1
- package/bundled/skills/app-planner/references/rules/backend/derivation-rules.md +56 -64
- package/bundled/skills/app-planner/references/rules/backend/fixed-rules.md +85 -240
- package/bundled/skills/app-planner/references/rules/backend/question-bank.md +25 -25
- package/bundled/skills/app-planner/references/rules/backend/question-manifest.json +16 -7
- package/bundled/skills/app-planner/references/rules/backend/template.md +74 -92
- package/bundled/skills/app-planner/references/rules/database/derivation-rules.md +93 -93
- package/bundled/skills/app-planner/references/rules/database/fixed-rules.md +66 -173
- package/bundled/skills/app-planner/references/rules/database/question-bank.md +31 -26
- package/bundled/skills/app-planner/references/rules/database/question-manifest.json +13 -4
- package/bundled/skills/app-planner/references/rules/database/template.md +76 -98
- package/bundled/skills/app-planner/references/rules/frontend/derivation-rules.md +68 -95
- package/bundled/skills/app-planner/references/rules/frontend/fixed-rules.md +93 -166
- package/bundled/skills/app-planner/references/rules/frontend/question-bank.md +46 -36
- package/bundled/skills/app-planner/references/rules/frontend/question-manifest.json +11 -2
- package/bundled/skills/app-planner/references/rules/frontend/template.md +79 -257
- package/bundled/skills/app-planner/references/rules/mobile/derivation-rules.md +91 -99
- package/bundled/skills/app-planner/references/rules/mobile/fixed-rules.md +73 -246
- package/bundled/skills/app-planner/references/rules/mobile/question-bank.md +17 -17
- package/bundled/skills/app-planner/references/rules/mobile/question-manifest.json +17 -2
- package/bundled/skills/app-planner/references/rules/mobile/template.md +73 -85
- package/bundled/skills/app-planner/references/rules-configuration.md +133 -65
- package/bundled/skills/app-planner/scripts/validate-rules-configuration.py +291 -0
- package/bundled/skills/bug-planner/references/schema-validation.md +1 -1
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +1 -1
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +21 -13
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +22 -14
- package/bundled/skills/prizmkit/SKILL.md +17 -18
- package/bundled/skills/prizmkit/references/workflow-state-protocol.md +22 -18
- package/bundled/skills/prizmkit-code-review/SKILL.md +22 -58
- package/bundled/skills/prizmkit-code-review/references/independent-code-review.md +6 -6
- package/bundled/skills/prizmkit-code-review/references/review-report-template.md +2 -2
- package/bundled/skills/prizmkit-committer/SKILL.md +82 -132
- package/bundled/skills/prizmkit-deploy/SKILL.md +27 -11
- package/bundled/skills/prizmkit-deploy/assets/deploy-document-template.md +89 -0
- package/bundled/skills/prizmkit-deploy/references/ci-cd-workflows.md +44 -14
- package/bundled/skills/prizmkit-deploy/references/cloud-platform-deploy.md +19 -3
- package/bundled/skills/prizmkit-deploy/references/database-setup.md +22 -12
- package/bundled/skills/prizmkit-deploy/references/deploy-config-schema.md +3 -1
- package/bundled/skills/prizmkit-deploy/references/deploy-history-schema.md +22 -6
- package/bundled/skills/prizmkit-deploy/references/deploy-metadata-schema.json +49 -0
- package/bundled/skills/prizmkit-deploy/references/live-validation-notes.md +1 -1
- package/bundled/skills/prizmkit-deploy/references/pending-input-schema.json +164 -0
- package/bundled/skills/prizmkit-deploy/references/ssh-adapter-flow.md +9 -8
- package/bundled/skills/prizmkit-deploy/references/ssh-execution-flow.md +6 -6
- package/bundled/skills/prizmkit-implement/SKILL.md +30 -66
- package/bundled/skills/prizmkit-implement/references/implementation-subagent-procedure.md +4 -4
- package/bundled/skills/prizmkit-init/SKILL.md +4 -0
- package/bundled/skills/prizmkit-plan/SKILL.md +21 -64
- package/bundled/skills/prizmkit-plan/references/artifact-identity.md +38 -0
- package/bundled/skills/prizmkit-plan/references/independent-plan-review.md +4 -4
- package/bundled/skills/prizmkit-plan/references/review-plan-spec-loop.md +5 -5
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +11 -1
- package/bundled/skills/prizmkit-retrospective/SKILL.md +63 -77
- package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -3
- package/bundled/skills/prizmkit-retrospective/references/retrospective-result-schema.json +138 -0
- package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +17 -23
- package/bundled/skills/prizmkit-test/SKILL.md +64 -51
- package/bundled/skills/prizmkit-test/references/boundary-contract-and-test-double-guidance.md +206 -0
- package/bundled/skills/prizmkit-test/references/independent-test-review.md +17 -9
- package/bundled/skills/prizmkit-test/references/test-coverage-model.md +45 -21
- package/bundled/skills/prizmkit-test/references/test-report-template.md +20 -13
- package/bundled/skills/prizmkit-workflow/SKILL.md +35 -37
- package/bundled/skills/prizmkit-workflow/references/artifact-identity.md +34 -0
- package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +22 -18
- package/bundled/skills/recovery-workflow/SKILL.md +9 -6
- package/bundled/skills/recovery-workflow/evals/evals.json +2 -2
- package/bundled/skills/recovery-workflow/references/detection.md +7 -6
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +16 -6
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +21 -13
- package/bundled/templates/project-memory-template.md +19 -11
- package/package.json +1 -1
- package/src/scaffold.js +33 -22
- package/bundled/dev-pipeline/prizmkit_runtime/runner_recovery.py +0 -228
- package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +0 -767
- package/bundled/dev-pipeline/templates/sections/bugfix-artifacts.md +0 -16
- package/bundled/dev-pipeline/templates/sections/bugfix-session-status.md +0 -31
- package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -7
- package/bundled/dev-pipeline/templates/sections/critical-paths-lite.md +0 -7
- package/bundled/dev-pipeline/templates/sections/directory-convention-agent.md +0 -9
- package/bundled/dev-pipeline/templates/sections/directory-convention-lite.md +0 -6
- package/bundled/dev-pipeline/templates/sections/headless-commit-authorization.md +0 -15
- package/bundled/dev-pipeline/templates/sections/phase-commit.md +0 -61
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +0 -24
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-lite-suffix.md +0 -12
- package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +0 -44
- package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +0 -25
- package/bundled/dev-pipeline/templates/sections/phase-plan-agent.md +0 -20
- package/bundled/dev-pipeline/templates/sections/phase-plan-lite.md +0 -20
- package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +0 -20
- package/bundled/dev-pipeline/templates/sections/refactor-artifacts.md +0 -17
- package/bundled/dev-pipeline/templates/sections/refactor-session-status.md +0 -28
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +0 -52
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +0 -52
- package/bundled/skills/prizmkit-code-review/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-committer/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-implement/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-plan/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-retrospective/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-test/references/external-contract-mock-guidance.md +0 -119
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.
|
|
2
|
+
"version": "1.1.155",
|
|
3
3
|
"skills": {
|
|
4
4
|
"prizmkit": {
|
|
5
5
|
"description": "Framework introduction and navigation for the formal single-requirement lifecycle, project initialization, Prizm docs, and independent deployment.",
|
|
@@ -23,35 +23,35 @@
|
|
|
23
23
|
"hasScripts": false
|
|
24
24
|
},
|
|
25
25
|
"prizmkit-plan": {
|
|
26
|
-
"description": "
|
|
26
|
+
"description": "Create and review spec.md and plan.md for one supplied requirement; return PLAN_READY or PLAN_BLOCKED.",
|
|
27
27
|
"tier": "1",
|
|
28
28
|
"category": "prizmkit-skill",
|
|
29
29
|
"hasAssets": true,
|
|
30
30
|
"hasScripts": false
|
|
31
31
|
},
|
|
32
32
|
"prizmkit-implement": {
|
|
33
|
-
"description": "Execute
|
|
33
|
+
"description": "Execute one reviewed plan or explicit repair scope, perform focused verification, and return IMPLEMENTED or IMPLEMENT_BLOCKED.",
|
|
34
34
|
"tier": "1",
|
|
35
35
|
"category": "prizmkit-skill",
|
|
36
36
|
"hasAssets": false,
|
|
37
37
|
"hasScripts": false
|
|
38
38
|
},
|
|
39
39
|
"prizmkit-code-review": {
|
|
40
|
-
"description": "
|
|
40
|
+
"description": "Review one supplied change with bounded Main-Agent repair, optional capability-gated independent review, verification, and PASS or NEEDS_FIXES output.",
|
|
41
41
|
"tier": "1",
|
|
42
42
|
"category": "prizmkit-skill",
|
|
43
43
|
"hasAssets": false,
|
|
44
44
|
"hasScripts": true
|
|
45
45
|
},
|
|
46
46
|
"prizmkit-committer": {
|
|
47
|
-
"description": "
|
|
47
|
+
"description": "Create an explicitly confirmed interactive commit or prepare an exact Runtime commit request from caller-supplied evidence; never push automatically.",
|
|
48
48
|
"tier": "1",
|
|
49
49
|
"category": "prizmkit-skill",
|
|
50
50
|
"hasAssets": false,
|
|
51
51
|
"hasScripts": false
|
|
52
52
|
},
|
|
53
53
|
"prizmkit-retrospective": {
|
|
54
|
-
"description": "
|
|
54
|
+
"description": "Synchronize durable Prizm docs for exact supplied change paths, or record NO_DOC_CHANGE; return RETRO_COMPLETE or RETRO_BLOCKED.",
|
|
55
55
|
"tier": "1",
|
|
56
56
|
"category": "prizmkit-skill",
|
|
57
57
|
"hasAssets": true,
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"hasScripts": false
|
|
73
73
|
},
|
|
74
74
|
"prizmkit-test": {
|
|
75
|
-
"description": "AI-led project-native
|
|
75
|
+
"description": "AI-led project-native affected-module and Regression Ring testing with contract authority, test-double fidelity, consumer/provider compatibility, browser and Full-stack E2E classification, persistence re-entry, bounded repair, review, and TEST_PASS/TEST_NEEDS_FIXES/TEST_BLOCKED results.",
|
|
76
76
|
"tier": "1",
|
|
77
77
|
"category": "prizmkit-skill",
|
|
78
78
|
"hasAssets": false,
|
|
@@ -159,12 +159,12 @@
|
|
|
159
159
|
"hasScripts": false
|
|
160
160
|
},
|
|
161
161
|
"recovery-workflow": {
|
|
162
|
-
"description": "Detect
|
|
162
|
+
"description": "Detect valid active feature, bugfix, or refactor checkout records and return exact operation-first continuation commands without executing or mutating state.",
|
|
163
163
|
"tier": "companion",
|
|
164
164
|
"category": "orchestration-skill",
|
|
165
165
|
"subcategory": "workflows",
|
|
166
166
|
"hasAssets": false,
|
|
167
|
-
"hasScripts":
|
|
167
|
+
"hasScripts": true
|
|
168
168
|
}
|
|
169
169
|
},
|
|
170
170
|
"suites": {
|
|
@@ -157,7 +157,7 @@ After Infrastructure configuration is complete (CP-AP-1.5), check whether the pr
|
|
|
157
157
|
|
|
158
158
|
Rules are optional. If the user skips, AI uses general best practices freely — no reminders, no blocking.
|
|
159
159
|
|
|
160
|
-
→ Read `${SKILL_DIR}/references/rules-configuration.md` for the full
|
|
160
|
+
→ Read `${SKILL_DIR}/references/rules-configuration.md` for the full contract: layer detection, explicit Quick/Full/Skip authorization, interactive decisions, invariant-only fixed rules, selected-option derivation with semantic fallback, dual-native profiles, conflict detection, deterministic resource validation, template rendering, and the `root.prizm` `RULES:` pointer update. Run `${SKILL_DIR}/scripts/validate-rules-configuration.py` before questioning and again before final rendering. Before writing rule files or updating the pointer, require both a passing decision-conflict gate and the Pre-Generation Headless Context Completeness Gate for every proposed new or changed rule.
|
|
161
161
|
|
|
162
162
|
### After rules configuration
|
|
163
163
|
|
|
@@ -289,7 +289,7 @@ Checkpoints catch cascading errors early — skipping one means the next phase b
|
|
|
289
289
|
| **CP-AP-0** | Intent Confirmed | User confirmed session goal (produce / explore) | 1 |
|
|
290
290
|
| **CP-AP-1** | Conventions Checked | Current-host project instruction target resolved; its `### Project Conventions` section is loaded or asked and up to date | 1 |
|
|
291
291
|
| **CP-AP-1.5** | Infrastructure Checked | Resolved project instruction target `### Infrastructure` section addressed — database, deployment **and cloud services** each configured or explicitly deferred | 1-2 |
|
|
292
|
-
| **CP-AP-1.6** | Rules Configured |
|
|
292
|
+
| **CP-AP-1.6** | Rules Configured | Rules resources pass deterministic validation; Quick defaults are explicitly authorized; every detected layer has a conflict-free `.prizmkit/rules/<layer>-rules.md` or an explicit skip; dual-native choices use separate profiles; no residual placeholders remain; `root.prizm` `RULES:` pointer is up to date. | 2 |
|
|
293
293
|
| **CP-AP-2** | Vision Summary | Goal/users/differentiators confirmed by user. For brownfield: existing purpose confirmed or refined. | 1-2 |
|
|
294
294
|
| **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 |
|
|
295
295
|
| **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 |
|
|
@@ -304,7 +304,7 @@ Run this gate before any final handoff whenever the current `app-planner` sessio
|
|
|
304
304
|
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.
|
|
305
305
|
2. **Read actual planning artifacts directly**: inspect current-session final outputs such as `.prizmkit/plans/project-brief.md`, changed sections in the resolved project instruction target, `.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.
|
|
306
306
|
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.`
|
|
307
|
-
4. **Run the local checklist and fresh-session simulation** from the reference: project brief completeness
|
|
307
|
+
4. **Run the local checklist and fresh-session simulation** from the reference: project brief completeness; consistency of conventions, infrastructure, and architecture decisions; Rules Configuration resource-validation and conflict-gate evidence; selected-decision precedence; explicit not-applicable/deferred sections; dual-native profile separation; 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.
|
|
308
308
|
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 resolved project instruction target's 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.
|
|
309
309
|
6. **Recheck changed sections directly** after every accepted fix batch.
|
|
310
310
|
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.
|
|
@@ -33,7 +33,7 @@ Do not rely on `git status`, `git diff`, or `git diff --cached` to decide whethe
|
|
|
33
33
|
|
|
34
34
|
- `project-brief.md` fixes go through the draft/checklist project brief source representation described in `project-brief-guide.md`, then rewrite the final brief through the existing project brief writer path.
|
|
35
35
|
- Project conventions, infrastructure, frontend design direction, and architecture decisions are source sections in the exact project instruction target selected for the current session. If a fix changes user-approved wording or meaning, ask for user confirmation before rewriting.
|
|
36
|
-
- `.prizmkit/rules/<layer>-rules.md` fixes should re-render from the
|
|
36
|
+
- `.prizmkit/rules/<layer>-rules.md` fixes should re-render from the normalized decision ledger, invariant/derivation sources, and template inputs. Rerun `scripts/validate-rules-configuration.py` and the Rules Configuration conflict gate before rewriting. If no structured source remains, rebuild the decision ledger or ask for clarification; do not hand-patch a contradictory final rule file.
|
|
37
37
|
- `root.prizm` fixes are limited to correcting or adding the `RULES:` pointer line; do not rewrite unrelated root content.
|
|
38
38
|
|
|
39
39
|
## Review Checklist
|
|
@@ -43,6 +43,7 @@ For every reviewed app-planning artifact or section, check:
|
|
|
43
43
|
- Project brief completeness: goal, users, differentiators, constraints, tech stack assumptions, and at least three actionable ideas when producing a final brief
|
|
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
|
+
- Rules Configuration integrity: the deterministic resource validator passed; Quick defaults were explicitly authorized; fixed content contains only invariants; selected decisions own their policy domains; no active rule conflicts with the decision ledger; unmatched/not-applicable choices are explicit; dual-native decisions remain in separate iOS/Android profiles; and rendered files contain no residual placeholders
|
|
46
47
|
- Rules pointer consistency: generated `.prizmkit/rules/<layer>-rules.md` files are referenced by the `root.prizm` `RULES:` line when rules were configured
|
|
47
48
|
- Substantive user meaning and detail preservation at matching detail after conversational normalization in project brief ideas, conventions, infrastructure notes, architecture decisions, and rules
|
|
48
49
|
- Artifact-wide readability: every generated natural-language value across all AI-visible fields and sections—including briefs/drafts, instruction sections, generated rules, appendices, comments, brainstorm summaries, quoted evidence, and parentheticals—is a standalone domain statement without dialogue-role labels, question IDs, answer tokens, planning-option recommendation markers, raw answer-map content, or planning provenance
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
## SEMANTIC_FALLBACK_POLICY
|
|
17
|
+
|
|
18
|
+
Every confirmed option is valid input even when no pre-authored block exists. For an unmatched framework, ORM, datastore, deployment, observability, or permission option, render the complete selected meaning, follow current official and detected project conventions, preserve brownfield behavior unless migration was selected, and import no rules from a recommended alternative. Render `none`, `not required`, deferred, and conditionally skipped decisions as explicit not-applicable or deferred statements; never leave placeholders blank.
|
|
19
|
+
|
|
20
|
+
Validate active blocks against the decision ledger before rendering. Architecture, API style, authentication, data technology, testing, observability, and AI permissions each have one selected owner; incompatible blocks fail generation.
|
|
16
21
|
|
|
17
22
|
## Phase 2 Normalized Semantic Fill Table
|
|
18
23
|
|
|
@@ -124,9 +129,9 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
124
129
|
### D-NODE-02
|
|
125
130
|
**Trigger**: Q1 = Node.js | **Inject into**: `{{ tech_stack_rules }}`
|
|
126
131
|
|
|
127
|
-
-
|
|
128
|
-
- `package.json` declares
|
|
129
|
-
-
|
|
132
|
+
- Preserve the package manager and lockfile already selected by the project; do not introduce a different manager as an implicit Node.js default.
|
|
133
|
+
- `package.json` declares the selected module format explicitly when the runtime requires it.
|
|
134
|
+
- Keep runtime declarations used by package metadata, local tooling, and CI consistent.
|
|
130
135
|
|
|
131
136
|
### D-PYTHON-01
|
|
132
137
|
**Trigger**: Q1 = Python | **Inject into**: `{{ tech_stack_rules }}`
|
|
@@ -354,38 +359,35 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
354
359
|
### D-MONGO-01
|
|
355
360
|
**Trigger**: Q8 = MongoDB | **Inject into**: `{{ data_rules }}`
|
|
356
361
|
|
|
357
|
-
-
|
|
358
|
-
-
|
|
359
|
-
-
|
|
360
|
-
-
|
|
361
|
-
-
|
|
362
|
-
- The relational-database-oriented F5 fixed rules (migration files, SELECT syntax, normalization) do NOT apply. Skip F5.1-F5.3 of the fixed rules content.
|
|
362
|
+
- Define collection validation at the database or application boundary and keep it synchronized with the selected model source.
|
|
363
|
+
- Derive indexes from measured query/sort paths and verify expensive operations with `explain()`; do not index every filterable field automatically.
|
|
364
|
+
- Treat field names and query operators as allowlisted input and never evaluate caller-controlled `$where` or executable expressions.
|
|
365
|
+
- Choose embedding versus references from aggregate ownership, update atomicity, document growth, and access patterns.
|
|
366
|
+
- Apply document-model, migration, and query rules only; do not import relational SQL or 3NF rules.
|
|
363
367
|
|
|
364
368
|
### D-MYSQL-01
|
|
365
369
|
**Trigger**: Q8 = MySQL | **Inject into**: `{{ data_rules }}`
|
|
366
370
|
|
|
367
|
-
-
|
|
368
|
-
-
|
|
369
|
-
-
|
|
370
|
-
-
|
|
371
|
-
- Migration files use the same tooling as PostgreSQL (golang-migrate, Flyway, Alembic). Schema differences documented in README.
|
|
371
|
+
- Use a supported MySQL release and a transactional engine for state requiring atomicity.
|
|
372
|
+
- Use `utf8mb4` for Unicode text and reject deprecated encodings in new structures.
|
|
373
|
+
- Select indexes from query patterns and engine support, and configure client lifetime against server timeouts.
|
|
374
|
+
- Use the migration mechanism selected by the project; do not inherit PostgreSQL syntax or tooling.
|
|
372
375
|
|
|
373
376
|
### D-SQLITE-01
|
|
374
377
|
**Trigger**: Q8 = SQLite | **Inject into**: `{{ data_rules }}`
|
|
375
378
|
|
|
376
|
-
- SQLite for
|
|
377
|
-
-
|
|
378
|
-
-
|
|
379
|
-
-
|
|
380
|
-
- No connection pool needed (single connection). Close connections explicitly after each operation.
|
|
379
|
+
- Use SQLite only for a workload whose concurrency, durability, and deployment model match its capabilities.
|
|
380
|
+
- Choose journal/WAL mode from the read/write and filesystem constraints and serialize writes when required.
|
|
381
|
+
- Version model changes and test with the supported production SQLite version when SQLite is the deployed store.
|
|
382
|
+
- Follow the selected driver lifecycle; do not impose a server-style connection pool.
|
|
381
383
|
|
|
382
384
|
### D-JWT-01
|
|
383
385
|
**Trigger**: Q9 = JWT | **Inject into**: `{{ auth_rules }}`
|
|
384
386
|
|
|
385
|
-
-
|
|
386
|
-
-
|
|
387
|
-
-
|
|
388
|
-
-
|
|
387
|
+
- Define issuer, audience, subject, scopes/claims, signing algorithm, access lifetime, refresh/re-issuance, rotation, and revocation from the threat model.
|
|
388
|
+
- Keep sensitive data out of token payloads and validate signature plus temporal and audience claims at every trust boundary.
|
|
389
|
+
- Keep signing material outside source control and support key rotation.
|
|
390
|
+
- Implement revocation through a compatible selected mechanism; JWT does not implicitly authorize Redis.
|
|
389
391
|
|
|
390
392
|
### D-OAUTH-01
|
|
391
393
|
**Trigger**: Q9 = OAuth2 | **Inject into**: `{{ auth_rules }}`
|
|
@@ -398,19 +400,17 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
398
400
|
### D-SESSION-01
|
|
399
401
|
**Trigger**: Q9 = Session | **Inject into**: `{{ auth_rules }}`
|
|
400
402
|
|
|
401
|
-
-
|
|
402
|
-
-
|
|
403
|
-
-
|
|
404
|
-
- Session ID must be rotated after successful login (prevent Session Fixation).
|
|
403
|
+
- Store sessions in a mechanism compatible with the selected deployment and availability topology; an external cache is not implied when Q10 selected no cache.
|
|
404
|
+
- Generate high-entropy opaque session identifiers, rotate them at authentication/privilege changes, and invalidate them on logout.
|
|
405
|
+
- Use `HttpOnly`, production `Secure`, and a SameSite/CSRF policy compatible with confirmed cross-site flows.
|
|
405
406
|
|
|
406
407
|
### D-APIKEY-01
|
|
407
408
|
**Trigger**: Q9 = API Key | **Inject into**: `{{ auth_rules }}`
|
|
408
409
|
|
|
409
|
-
- API keys
|
|
410
|
-
-
|
|
411
|
-
-
|
|
412
|
-
-
|
|
413
|
-
- Keys must have expiration (default 365d). Must be rotatable without downtime.
|
|
410
|
+
- Restrict API keys to named machine or integration principals, not end-user authentication.
|
|
411
|
+
- Generate high-entropy keys, display plaintext only at creation, and store a one-way verifier plus a non-secret lookup prefix.
|
|
412
|
+
- Compare verifiers safely and support scoped authorization, rotation, revocation, ownership, and last-used audit data.
|
|
413
|
+
- Set expiry from integration risk and lifecycle rather than a universal duration.
|
|
414
414
|
|
|
415
415
|
### D-REDIS-01
|
|
416
416
|
**Trigger**: Q10 = Redis | **Inject into**: `{{ cache_rules }}`
|
|
@@ -462,18 +462,16 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
462
462
|
### D-DOCKER-01
|
|
463
463
|
**Trigger**: Q12 = Docker | **Inject into**: `{{ deploy_rules }}`
|
|
464
464
|
|
|
465
|
-
-
|
|
466
|
-
-
|
|
467
|
-
-
|
|
468
|
-
- `.dockerignore` excludes node_modules, .git, log files.
|
|
465
|
+
- Use a reproducible build and a minimal runtime image compatible with the selected language/runtime; do not force Alpine when native dependencies make it unsafe.
|
|
466
|
+
- Exclude build-only tools and sensitive/unneeded context from the final image.
|
|
467
|
+
- Connect container health behavior to the selected application liveness/readiness contract rather than assuming one route.
|
|
469
468
|
|
|
470
469
|
### D-K8S-01
|
|
471
470
|
**Trigger**: Q12 = Kubernetes | **Inject into**: `{{ deploy_rules }}`
|
|
472
471
|
|
|
473
|
-
-
|
|
474
|
-
-
|
|
475
|
-
-
|
|
476
|
-
- Pod anti-affinity: same-type pods not scheduled on the same node (high availability).
|
|
472
|
+
- Configure probes against the application's selected liveness/readiness contract and set resource requests/limits from measured behavior.
|
|
473
|
+
- Keep sensitive and non-sensitive configuration in the platform's appropriate boundaries without committing secret values.
|
|
474
|
+
- Replicas, disruption budgets, anti-affinity, and multi-zone placement come from the confirmed availability objective; Kubernetes selection alone does not require them.
|
|
477
475
|
|
|
478
476
|
### D-AI-DEP-STRICT-01
|
|
479
477
|
**Trigger**: Q18 = Forbid | **Inject into**: `{{ ai_dependency_rule }}`
|
|
@@ -519,10 +517,9 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
519
517
|
### D-OBS-LOG-01
|
|
520
518
|
**Trigger**: Q16 = Structured JSON logging | **Inject into**: `{{ observability_rules }}`
|
|
521
519
|
|
|
522
|
-
-
|
|
523
|
-
-
|
|
524
|
-
-
|
|
525
|
-
- Forbid logging sensitive data (passwords, tokens, national IDs). Must mask.
|
|
520
|
+
- Emit structured events with timestamp, severity, message, service/operation, and available correlation context; add identity or request fields only when useful and privacy-safe.
|
|
521
|
+
- Send events through the centralized collection boundary selected by the deployment; do not force ELK or Loki.
|
|
522
|
+
- Define severity and alert mappings operationally, and redact credentials, tokens, and sensitive personal data.
|
|
526
523
|
|
|
527
524
|
### D-OBS-LOG-02
|
|
528
525
|
**Trigger**: Q16 = local files | **Inject into**: `{{ observability_rules }}`
|
|
@@ -543,26 +540,23 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
543
540
|
### D-OBS-METRICS-01
|
|
544
541
|
**Trigger**: Q17 = OpenTelemetry + Prometheus + Grafana | **Inject into**: `{{ observability_rules }}`
|
|
545
542
|
|
|
546
|
-
-
|
|
547
|
-
-
|
|
548
|
-
-
|
|
549
|
-
- Alerting rules: error rate > 5% for 5min triggers alert, p95 latency > 500ms for 5min triggers warning.
|
|
543
|
+
- Instrument applicable transport and dependency boundaries with the selected OpenTelemetry-compatible pipeline.
|
|
544
|
+
- Define service metrics and dashboards from confirmed service objectives and selected dependencies; cache metrics appear only when caching is selected.
|
|
545
|
+
- Expose or export telemetry through the selected collector/platform mechanism and derive alert thresholds from objectives and observed baselines rather than universal percentages.
|
|
550
546
|
|
|
551
547
|
### D-TEST-STRATEGY-01
|
|
552
548
|
**Trigger**: Q13 = Unit tests + Integration tests | **Inject into**: `{{ test_rules }}`
|
|
553
549
|
|
|
554
|
-
-
|
|
555
|
-
- Unit tests
|
|
556
|
-
-
|
|
557
|
-
- Coverage targets: service layer >= 80%, controller layer >= 60%.
|
|
558
|
-
- CI runs all tests. Integration tests run against a fresh DB instance each time.
|
|
550
|
+
- Include unit and integration behavior appropriate to the selected architecture and external boundaries.
|
|
551
|
+
- Unit tests isolate owned behavior; integration tests verify real contract boundaries using the separately selected mock/environment strategy.
|
|
552
|
+
- Set numeric coverage or timing thresholds only when the project confirms them. CI runs the enabled tiers in deterministic isolation.
|
|
559
553
|
|
|
560
554
|
### D-TEST-STRATEGY-02
|
|
561
555
|
**Trigger**: Q13 = Unit tests only | **Inject into**: `{{ test_rules }}`
|
|
562
556
|
|
|
563
|
-
-
|
|
564
|
-
-
|
|
565
|
-
-
|
|
557
|
+
- Keep the mandatory suite at the unit boundary selected by the project and isolate external dependencies according to Q15.
|
|
558
|
+
- Do not inject an unselected coverage percentage.
|
|
559
|
+
- Record the accepted lack of integration evidence and revisit it when production risk changes.
|
|
566
560
|
|
|
567
561
|
### D-TEST-STRATEGY-03
|
|
568
562
|
**Trigger**: Q13 = Critical path integration tests only | **Inject into**: `{{ test_rules }}`
|
|
@@ -574,10 +568,9 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
574
568
|
### D-TEST-MOCK-01
|
|
575
569
|
**Trigger**: Q15 = testcontainers | **Inject into**: `{{ test_rules }}`
|
|
576
570
|
|
|
577
|
-
-
|
|
578
|
-
-
|
|
579
|
-
-
|
|
580
|
-
- Test data: seeded per test file, cleaned up after each test. Forbid shared mutable test data.
|
|
571
|
+
- Mock external service dependencies at their contract boundary.
|
|
572
|
+
- For datastore integration tests, use a testcontainer or an in-memory implementation only when it faithfully represents the selected datastore behavior; do not start Redis unless caching/session decisions require it.
|
|
573
|
+
- Bound environment lifecycle and isolate mutable test data so tests remain repeatable.
|
|
581
574
|
|
|
582
575
|
### D-TEST-MOCK-02
|
|
583
576
|
**Trigger**: Q15 = including database | **Inject into**: `{{ test_rules }}`
|
|
@@ -590,10 +583,9 @@ Resolve each selected option or custom reply into the complete semantic value sh
|
|
|
590
583
|
### D-TEST-MOCK-03
|
|
591
584
|
**Trigger**: Q15 = real environments | **Inject into**: `{{ test_rules }}`
|
|
592
585
|
|
|
593
|
-
- Prefer real
|
|
594
|
-
-
|
|
595
|
-
-
|
|
596
|
-
- Requires CI access to test infrastructure. Tests may be slower but more realistic.
|
|
586
|
+
- Prefer representative real dependencies through dedicated test infrastructure where the selected risk justifies it.
|
|
587
|
+
- Shared infrastructure must still isolate tenants/data and support deterministic cleanup; a shared instance is not automatically required.
|
|
588
|
+
- Document CI access, cost, failure ownership, and any remaining non-production differences.
|
|
597
589
|
|
|
598
590
|
---
|
|
599
591
|
|