dsh-compound-engineering 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +160 -2
- package/README.zh.md +161 -0
- package/cordis.patch.yml +6 -0
- package/lib/frontmatter.js +167 -0
- package/lib/index.js +46 -0
- package/lib/provider.js +201 -0
- package/package.json +62 -4
- package/skills/CODING_STANDARDS.md +68 -0
- package/skills/ce-babysit-pr/SKILL.md +59 -0
- package/skills/ce-babysit-pr/references/branch-currency.md +22 -0
- package/skills/ce-babysit-pr/references/envelope.md +44 -0
- package/skills/ce-babysit-pr/references/pipeline.md +15 -0
- package/skills/ce-babysit-pr/references/report.md +20 -0
- package/skills/ce-babysit-pr/references/settle.md +37 -0
- package/skills/ce-babysit-pr/references/setup.md +33 -0
- package/skills/ce-babysit-pr/references/stack-commands.md +39 -0
- package/skills/ce-babysit-pr/references/stack.md +43 -0
- package/skills/ce-babysit-pr/references/tick.md +102 -0
- package/skills/ce-babysit-pr/references/watch-loop.md +222 -0
- package/skills/ce-babysit-pr/scripts/pr-snapshot +3656 -0
- package/skills/ce-bakeoff/SKILL.md +48 -0
- package/skills/ce-bakeoff/references/candidates.md +37 -0
- package/skills/ce-bakeoff/references/judging.md +19 -0
- package/skills/ce-bakeoff/references/output.md +11 -0
- package/skills/ce-bakeoff/references/verification.md +15 -0
- package/skills/ce-brainstorm/SKILL.md +69 -0
- package/skills/ce-brainstorm/references/agents/slack-researcher.md +127 -0
- package/skills/ce-brainstorm/references/approaches.md +57 -0
- package/skills/ce-brainstorm/references/bakeoff.md +9 -0
- package/skills/ce-brainstorm/references/blindspot-pass.md +70 -0
- package/skills/ce-brainstorm/references/brainstorm-sections.md +458 -0
- package/skills/ce-brainstorm/references/dialogue.md +89 -0
- package/skills/ce-brainstorm/references/handoff.md +187 -0
- package/skills/ce-brainstorm/references/html-rendering.md +638 -0
- package/skills/ce-brainstorm/references/interaction-rules.md +33 -0
- package/skills/ce-brainstorm/references/markdown-rendering.md +242 -0
- package/skills/ce-brainstorm/references/model-tiers.md +13 -0
- package/skills/ce-brainstorm/references/output-mode.md +26 -0
- package/skills/ce-brainstorm/references/phase-0.md +104 -0
- package/skills/ce-brainstorm/references/plan-write.md +32 -0
- package/skills/ce-brainstorm/references/product-pressure-test.md +42 -0
- package/skills/ce-brainstorm/references/reasoning-elevation.md +124 -0
- package/skills/ce-brainstorm/references/settled-decisions.md +45 -0
- package/skills/ce-brainstorm/references/synthesis-summary.md +149 -0
- package/skills/ce-brainstorm/references/universal-brainstorming.md +72 -0
- package/skills/ce-brainstorm/references/verdict-routing.md +26 -0
- package/skills/ce-brainstorm/references/visual-probes.md +164 -0
- package/skills/ce-brainstorm/scripts/elevation-dispatch.sh +288 -0
- package/skills/ce-brainstorm/scripts/light-webserver.js +1275 -0
- package/skills/ce-brainstorm/scripts/packs-resolve.py +737 -0
- package/skills/ce-brainstorm/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-code-review/SKILL.md +40 -0
- package/skills/ce-code-review/references/action-class-rubric.md +67 -0
- package/skills/ce-code-review/references/cross-model-recovery.md +38 -0
- package/skills/ce-code-review/references/cross-model-review.md +191 -0
- package/skills/ce-code-review/references/depth-paths.md +32 -0
- package/skills/ce-code-review/references/diff-scope.md +59 -0
- package/skills/ce-code-review/references/dispatch-reviewers.md +135 -0
- package/skills/ce-code-review/references/findings-schema.json +125 -0
- package/skills/ce-code-review/references/finish-input.md +118 -0
- package/skills/ce-code-review/references/finish-review.md +202 -0
- package/skills/ce-code-review/references/intent-and-plan.md +73 -0
- package/skills/ce-code-review/references/modes-and-output.md +156 -0
- package/skills/ce-code-review/references/persona-catalog.md +66 -0
- package/skills/ce-code-review/references/personas/adversarial-reviewer.md +111 -0
- package/skills/ce-code-review/references/personas/agent-native-reviewer.md +173 -0
- package/skills/ce-code-review/references/personas/api-contract-reviewer.md +44 -0
- package/skills/ce-code-review/references/personas/correctness-reviewer.md +48 -0
- package/skills/ce-code-review/references/personas/data-migration-reviewer.md +111 -0
- package/skills/ce-code-review/references/personas/deployment-verification-agent.md +157 -0
- package/skills/ce-code-review/references/personas/julik-frontend-races-reviewer.md +45 -0
- package/skills/ce-code-review/references/personas/learnings-researcher.md +260 -0
- package/skills/ce-code-review/references/personas/maintainability-reviewer.md +85 -0
- package/skills/ce-code-review/references/personas/performance-reviewer.md +45 -0
- package/skills/ce-code-review/references/personas/previous-comments-reviewer.md +59 -0
- package/skills/ce-code-review/references/personas/project-standards-reviewer.md +77 -0
- package/skills/ce-code-review/references/personas/reliability-reviewer.md +49 -0
- package/skills/ce-code-review/references/personas/security-reviewer.md +50 -0
- package/skills/ce-code-review/references/personas/swift-ios-reviewer.md +99 -0
- package/skills/ce-code-review/references/personas/testing-reviewer.md +51 -0
- package/skills/ce-code-review/references/review-output-template.md +172 -0
- package/skills/ce-code-review/references/scope.md +176 -0
- package/skills/ce-code-review/references/select-and-route.md +93 -0
- package/skills/ce-code-review/references/subagent-template.md +206 -0
- package/skills/ce-code-review/references/validator-batch-template.md +67 -0
- package/skills/ce-code-review/scripts/cross-model-adversarial-review.sh +1275 -0
- package/skills/ce-code-review/scripts/findings-mechanics.py +274 -0
- package/skills/ce-code-review/scripts/packs-resolve.py +737 -0
- package/skills/ce-code-review/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-code-review/scripts/review-scope.py +419 -0
- package/skills/ce-code-review/scripts/run-log.py +280 -0
- package/skills/ce-commit/SKILL.md +60 -0
- package/skills/ce-commit-push-pr/SKILL.md +69 -0
- package/skills/ce-commit-push-pr/references/apply-and-handoff.md +79 -0
- package/skills/ce-commit-push-pr/references/branch-creation.md +47 -0
- package/skills/ce-commit-push-pr/references/commit-and-push.md +26 -0
- package/skills/ce-commit-push-pr/references/compose.md +29 -0
- package/skills/ce-commit-push-pr/references/context.md +42 -0
- package/skills/ce-commit-push-pr/references/gh-stack-cli.md +83 -0
- package/skills/ce-commit-push-pr/references/pr-description-writing.md +208 -0
- package/skills/ce-commit-push-pr/references/stack-submit.md +81 -0
- package/skills/ce-compound/SKILL.md +79 -0
- package/skills/ce-compound/assets/resolution-template.md +96 -0
- package/skills/ce-compound/references/agents/best-practices-researcher.md +115 -0
- package/skills/ce-compound/references/agents/data-integrity-guardian.md +68 -0
- package/skills/ce-compound/references/agents/framework-docs-researcher.md +93 -0
- package/skills/ce-compound/references/agents/pattern-recognition-specialist.md +55 -0
- package/skills/ce-compound/references/agents/performance-oracle.md +108 -0
- package/skills/ce-compound/references/agents/security-sentinel.md +91 -0
- package/skills/ce-compound/references/agents/session-historian.md +82 -0
- package/skills/ce-compound/references/assembly.md +127 -0
- package/skills/ce-compound/references/concepts-vocabulary.md +98 -0
- package/skills/ce-compound/references/enhancement.md +42 -0
- package/skills/ce-compound/references/grounding-validation.md +89 -0
- package/skills/ce-compound/references/lightweight.md +56 -0
- package/skills/ce-compound/references/modes.md +13 -0
- package/skills/ce-compound/references/refresh-and-discoverability.md +96 -0
- package/skills/ce-compound/references/report.md +115 -0
- package/skills/ce-compound/references/research.md +144 -0
- package/skills/ce-compound/references/schema.yaml +236 -0
- package/skills/ce-compound/references/session-history.md +73 -0
- package/skills/ce-compound/references/yaml-schema.md +130 -0
- package/skills/ce-compound/scripts/packs-resolve.py +737 -0
- package/skills/ce-compound/scripts/session-history/__pycache__/dsh_session.cpython-314.pyc +0 -0
- package/skills/ce-compound/scripts/session-history/discover-sessions.sh +290 -0
- package/skills/ce-compound/scripts/session-history/discover_dsh.py +123 -0
- package/skills/ce-compound/scripts/session-history/dsh_session.py +225 -0
- package/skills/ce-compound/scripts/session-history/extract-errors.py +178 -0
- package/skills/ce-compound/scripts/session-history/extract-metadata.py +301 -0
- package/skills/ce-compound/scripts/session-history/extract-skeleton.py +346 -0
- package/skills/ce-compound/scripts/validate-doc-claims.py +497 -0
- package/skills/ce-compound/scripts/validate-frontmatter.py +137 -0
- package/skills/ce-compound-refresh/SKILL.md +88 -0
- package/skills/ce-compound-refresh/assets/resolution-template.md +96 -0
- package/skills/ce-compound-refresh/references/classify.md +42 -0
- package/skills/ce-compound-refresh/references/commit.md +7 -0
- package/skills/ce-compound-refresh/references/concepts-vocabulary.md +116 -0
- package/skills/ce-compound-refresh/references/discoverability.md +15 -0
- package/skills/ce-compound-refresh/references/investigate.md +23 -0
- package/skills/ce-compound-refresh/references/modes.md +27 -0
- package/skills/ce-compound-refresh/references/per-action-flows.md +142 -0
- package/skills/ce-compound-refresh/references/report.md +23 -0
- package/skills/ce-compound-refresh/references/schema.yaml +236 -0
- package/skills/ce-compound-refresh/references/scope.md +18 -0
- package/skills/ce-compound-refresh/references/worth-audit.md +35 -0
- package/skills/ce-compound-refresh/references/yaml-schema.md +130 -0
- package/skills/ce-compound-refresh/scripts/validate-doc-claims.py +497 -0
- package/skills/ce-compound-refresh/scripts/validate-frontmatter.py +137 -0
- package/skills/ce-debug/SKILL.md +122 -0
- package/skills/ce-debug/references/anti-patterns.md +91 -0
- package/skills/ce-debug/references/defense-in-depth.md +39 -0
- package/skills/ce-debug/references/fix.md +21 -0
- package/skills/ce-debug/references/investigate.md +114 -0
- package/skills/ce-debug/references/investigation-techniques.md +384 -0
- package/skills/ce-debug/references/pipeline-mode.md +78 -0
- package/skills/ce-debug/references/post-fix-handoff.md +60 -0
- package/skills/ce-debug/references/return-to-caller.md +57 -0
- package/skills/ce-doc-review/SKILL.md +75 -0
- package/skills/ce-doc-review/references/bulk-preview.md +146 -0
- package/skills/ce-doc-review/references/cross-model-review.md +207 -0
- package/skills/ce-doc-review/references/decision-primer.md +47 -0
- package/skills/ce-doc-review/references/dispatch.md +56 -0
- package/skills/ce-doc-review/references/document-intake.md +44 -0
- package/skills/ce-doc-review/references/findings-schema.json +85 -0
- package/skills/ce-doc-review/references/modes.md +20 -0
- package/skills/ce-doc-review/references/open-questions-defer.md +158 -0
- package/skills/ce-doc-review/references/persona-selection.md +41 -0
- package/skills/ce-doc-review/references/personas/adversarial-document-reviewer.md +109 -0
- package/skills/ce-doc-review/references/personas/coherence-reviewer.md +69 -0
- package/skills/ce-doc-review/references/personas/design-lens-reviewer.md +48 -0
- package/skills/ce-doc-review/references/personas/feasibility-reviewer.md +50 -0
- package/skills/ce-doc-review/references/personas/product-lens-reviewer.md +85 -0
- package/skills/ce-doc-review/references/personas/scope-guardian-reviewer.md +83 -0
- package/skills/ce-doc-review/references/personas/security-lens-reviewer.md +41 -0
- package/skills/ce-doc-review/references/personas/whole-doc-reviewer.md +25 -0
- package/skills/ce-doc-review/references/rendering-floor.md +175 -0
- package/skills/ce-doc-review/references/review-output-template.md +123 -0
- package/skills/ce-doc-review/references/subagent-template.md +188 -0
- package/skills/ce-doc-review/references/synthesis-and-presentation.md +350 -0
- package/skills/ce-doc-review/references/walkthrough.md +347 -0
- package/skills/ce-doc-review/scripts/cross-model-doc-review.sh +1270 -0
- package/skills/ce-doc-review/scripts/packs-resolve.py +737 -0
- package/skills/ce-doc-review/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-dogfood/SKILL.md +66 -0
- package/skills/ce-dogfood/agents/openai.yaml +2 -0
- package/skills/ce-dogfood/references/dogfood-report-template.md +97 -0
- package/skills/ce-dogfood/references/phases.md +167 -0
- package/skills/ce-dogfood/references/test-matrix-taxonomy.md +62 -0
- package/skills/ce-dogfood/scripts/packs-resolve.py +737 -0
- package/skills/ce-explain/SKILL.md +81 -0
- package/skills/ce-explain/references/agents/behavior-trace-scout.md +19 -0
- package/skills/ce-explain/references/agents/work-recap-scout.md +23 -0
- package/skills/ce-explain/references/check-in.md +18 -0
- package/skills/ce-explain/references/destinations.md +35 -0
- package/skills/ce-explain/references/explainer-html.md +29 -0
- package/skills/ce-explain/references/explainer-markdown.md +24 -0
- package/skills/ce-explain/references/intake.md +50 -0
- package/skills/ce-explain/references/orchestration.md +46 -0
- package/skills/ce-handoff/SKILL.md +54 -0
- package/skills/ce-handoff/references/create.md +88 -0
- package/skills/ce-handoff/references/resume.md +46 -0
- package/skills/ce-ideate/SKILL.md +75 -0
- package/skills/ce-ideate/references/agents/issue-intelligence-analyst.md +166 -0
- package/skills/ce-ideate/references/agents/learnings-researcher.md +247 -0
- package/skills/ce-ideate/references/agents/slack-researcher.md +127 -0
- package/skills/ce-ideate/references/agents/web-researcher.md +121 -0
- package/skills/ce-ideate/references/decomposition.md +39 -0
- package/skills/ce-ideate/references/divergent-ideation.md +112 -0
- package/skills/ce-ideate/references/grounding.md +138 -0
- package/skills/ce-ideate/references/html-rendering.md +638 -0
- package/skills/ce-ideate/references/ideation-sections.md +191 -0
- package/skills/ce-ideate/references/issue-intelligence.md +44 -0
- package/skills/ce-ideate/references/markdown-rendering.md +242 -0
- package/skills/ce-ideate/references/output-mode.md +34 -0
- package/skills/ce-ideate/references/post-ideation-workflow.md +169 -0
- package/skills/ce-ideate/references/scope-gates.md +148 -0
- package/skills/ce-ideate/references/universal-ideation.md +119 -0
- package/skills/ce-ideate/references/user-research-artifacts.md +28 -0
- package/skills/ce-ideate/references/web-research-cache.md +56 -0
- package/skills/ce-noslop/SKILL.md +45 -0
- package/skills/ce-noslop/references/patterns.md +61 -0
- package/skills/ce-noslop/references/terminology.md +3 -0
- package/skills/ce-optimize/SKILL.md +64 -0
- package/skills/ce-optimize/references/agents/learnings-researcher.md +247 -0
- package/skills/ce-optimize/references/agents/repo-research-analyst.md +258 -0
- package/skills/ce-optimize/references/example-expensive-benchmark-spec.yaml +88 -0
- package/skills/ce-optimize/references/example-hard-spec.yaml +64 -0
- package/skills/ce-optimize/references/example-judge-spec.yaml +83 -0
- package/skills/ce-optimize/references/example-text-target-spec.yaml +80 -0
- package/skills/ce-optimize/references/experiment-log-schema.yaml +563 -0
- package/skills/ce-optimize/references/experiment-prompt-template.md +143 -0
- package/skills/ce-optimize/references/judge-prompt-template.md +117 -0
- package/skills/ce-optimize/references/loop.md +286 -0
- package/skills/ce-optimize/references/measurement.md +168 -0
- package/skills/ce-optimize/references/optimize-spec-schema.yaml +570 -0
- package/skills/ce-optimize/references/persistence.md +93 -0
- package/skills/ce-optimize/references/spec.md +107 -0
- package/skills/ce-optimize/references/text-targets.md +51 -0
- package/skills/ce-optimize/references/usage-guide.md +147 -0
- package/skills/ce-optimize/references/wrap-up.md +54 -0
- package/skills/ce-optimize/scripts/decide.mjs +676 -0
- package/skills/ce-optimize/scripts/experiment-worktree.sh +330 -0
- package/skills/ce-optimize/scripts/measure.sh +140 -0
- package/skills/ce-optimize/scripts/parallel-probe.sh +134 -0
- package/skills/ce-plan/SKILL.md +60 -0
- package/skills/ce-plan/references/agents/agent-native-planning-strategist.md +66 -0
- package/skills/ce-plan/references/agents/architecture-strategist.md +46 -0
- package/skills/ce-plan/references/agents/best-practices-researcher.md +118 -0
- package/skills/ce-plan/references/agents/data-integrity-guardian.md +68 -0
- package/skills/ce-plan/references/agents/framework-docs-researcher.md +97 -0
- package/skills/ce-plan/references/agents/git-history-analyzer.md +40 -0
- package/skills/ce-plan/references/agents/learnings-researcher.md +268 -0
- package/skills/ce-plan/references/agents/pattern-recognition-specialist.md +55 -0
- package/skills/ce-plan/references/agents/performance-oracle.md +108 -0
- package/skills/ce-plan/references/agents/repo-research-analyst.md +262 -0
- package/skills/ce-plan/references/agents/security-sentinel.md +91 -0
- package/skills/ce-plan/references/agents/slack-researcher.md +131 -0
- package/skills/ce-plan/references/agents/spec-flow-analyzer.md +84 -0
- package/skills/ce-plan/references/agents/web-researcher.md +125 -0
- package/skills/ce-plan/references/approach-altitude.md +55 -0
- package/skills/ce-plan/references/bakeoff.md +9 -0
- package/skills/ce-plan/references/deepening-workflow.md +263 -0
- package/skills/ce-plan/references/final-review.md +134 -0
- package/skills/ce-plan/references/html-rendering.md +638 -0
- package/skills/ce-plan/references/intake.md +158 -0
- package/skills/ce-plan/references/markdown-rendering.md +242 -0
- package/skills/ce-plan/references/output-contracts.md +29 -0
- package/skills/ce-plan/references/output-mode.md +45 -0
- package/skills/ce-plan/references/plan-handoff.md +116 -0
- package/skills/ce-plan/references/plan-sections.md +489 -0
- package/skills/ce-plan/references/reasoning-elevation.md +124 -0
- package/skills/ce-plan/references/research.md +211 -0
- package/skills/ce-plan/references/resume.md +61 -0
- package/skills/ce-plan/references/settled-decisions.md +45 -0
- package/skills/ce-plan/references/structure.md +207 -0
- package/skills/ce-plan/references/synthesis-summary.md +260 -0
- package/skills/ce-plan/references/universal-planning.md +170 -0
- package/skills/ce-plan/scripts/elevation-dispatch.sh +288 -0
- package/skills/ce-plan/scripts/packs-resolve.py +737 -0
- package/skills/ce-plan/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-polish/SKILL.md +22 -0
- package/skills/ce-polish/agents/openai.yaml +2 -0
- package/skills/ce-polish/references/dev-server-astro.md +58 -0
- package/skills/ce-polish/references/dev-server-detection.md +40 -0
- package/skills/ce-polish/references/dev-server-next.md +61 -0
- package/skills/ce-polish/references/dev-server-nuxt.md +58 -0
- package/skills/ce-polish/references/dev-server-procfile.md +59 -0
- package/skills/ce-polish/references/dev-server-rails.md +50 -0
- package/skills/ce-polish/references/dev-server-remix.md +58 -0
- package/skills/ce-polish/references/dev-server-sveltekit.md +58 -0
- package/skills/ce-polish/references/dev-server-vite.md +48 -0
- package/skills/ce-polish/references/install-riffrec.md +35 -0
- package/skills/ce-polish/references/launch-json-schema.md +177 -0
- package/skills/ce-polish/references/live-loop.md +98 -0
- package/skills/ce-polish/references/live-remote.md +35 -0
- package/skills/ce-polish/references/live-start.md +93 -0
- package/skills/ce-polish/references/live-stream-contract.md +253 -0
- package/skills/ce-polish/references/run.md +67 -0
- package/skills/ce-polish/scripts/detect-project-type.sh +277 -0
- package/skills/ce-polish/scripts/detect-riffrec.sh +225 -0
- package/skills/ce-polish/scripts/live-endpoint.js +2841 -0
- package/skills/ce-polish/scripts/read-launch-json.sh +117 -0
- package/skills/ce-polish/scripts/resolve-package-manager.sh +95 -0
- package/skills/ce-polish/scripts/resolve-port.sh +307 -0
- package/skills/ce-pov/SKILL.md +64 -0
- package/skills/ce-pov/references/agents/external-evidence-researcher.md +26 -0
- package/skills/ce-pov/references/agents/pov-peer.md +43 -0
- package/skills/ce-pov/references/agents/precedent-activity-scout.md +21 -0
- package/skills/ce-pov/references/agents/project-grounding-scout.md +32 -0
- package/skills/ce-pov/references/boundaries.md +36 -0
- package/skills/ce-pov/references/cross-model-panel.md +596 -0
- package/skills/ce-pov/references/followup.md +9 -0
- package/skills/ce-pov/references/grounding.md +47 -0
- package/skills/ce-pov/references/intake.md +61 -0
- package/skills/ce-pov/references/invocation.md +47 -0
- package/skills/ce-pov/references/method.md +68 -0
- package/skills/ce-pov/references/pov-schema.json +56 -0
- package/skills/ce-pov/references/report.md +7 -0
- package/skills/ce-pov/scripts/cross-model-pov.sh +1110 -0
- package/skills/ce-pov/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-product-pulse/SKILL.md +81 -0
- package/skills/ce-product-pulse/agents/openai.yaml +2 -0
- package/skills/ce-product-pulse/references/config.md +20 -0
- package/skills/ce-product-pulse/references/interview.md +260 -0
- package/skills/ce-product-pulse/references/report-template.md +89 -0
- package/skills/ce-product-pulse/references/run.md +46 -0
- package/skills/ce-product-pulse/references/setup.md +43 -0
- package/skills/ce-promote/SKILL.md +90 -0
- package/skills/ce-promote/agents/openai.yaml +2 -0
- package/skills/ce-promote/references/spiral-cli.md +149 -0
- package/skills/ce-proof/SKILL.md +65 -0
- package/skills/ce-proof/references/api.md +176 -0
- package/skills/ce-proof/references/workflows.md +124 -0
- package/skills/ce-prototype/SKILL.md +59 -0
- package/skills/ce-prototype/assets/annotate.css +206 -0
- package/skills/ce-prototype/assets/annotate.js +837 -0
- package/skills/ce-prototype/references/annotation-loop.md +32 -0
- package/skills/ce-prototype/references/build.md +39 -0
- package/skills/ce-prototype/references/craft-floor.md +43 -0
- package/skills/ce-prototype/references/preview.md +118 -0
- package/skills/ce-prototype/references/scoping.md +38 -0
- package/skills/ce-prototype/references/write-back.md +37 -0
- package/skills/ce-prototype/scripts/light-webserver.js +1275 -0
- package/skills/ce-resolve-pr-feedback/SKILL.md +60 -0
- package/skills/ce-resolve-pr-feedback/references/agents/pr-comment-resolver.md +59 -0
- package/skills/ce-resolve-pr-feedback/references/evaluation-rubric.md +141 -0
- package/skills/ce-resolve-pr-feedback/references/full-mode.md +336 -0
- package/skills/ce-resolve-pr-feedback/references/pipeline-mode.md +23 -0
- package/skills/ce-resolve-pr-feedback/references/resume.md +60 -0
- package/skills/ce-resolve-pr-feedback/references/return-to-caller.md +111 -0
- package/skills/ce-resolve-pr-feedback/references/targeted-mode.md +48 -0
- package/skills/ce-resolve-pr-feedback/scripts/get-pr-comments +176 -0
- package/skills/ce-resolve-pr-feedback/scripts/get-thread-for-comment +84 -0
- package/skills/ce-resolve-pr-feedback/scripts/pending-feedback.py +287 -0
- package/skills/ce-resolve-pr-feedback/scripts/reply-to-pr-thread +57 -0
- package/skills/ce-resolve-pr-feedback/scripts/resolve-pr-thread +23 -0
- package/skills/ce-retune/SKILL.md +42 -0
- package/skills/ce-retune/agents/openai.yaml +2 -0
- package/skills/ce-retune/references/baseline-mining.md +122 -0
- package/skills/ce-retune/references/corpus-audit.md +128 -0
- package/skills/ce-retune/references/cut-passes.md +129 -0
- package/skills/ce-retune/references/halt-taxonomy.md +123 -0
- package/skills/ce-retune/references/noise-floor.md +131 -0
- package/skills/ce-retune/references/workflow-shapes.md +73 -0
- package/skills/ce-riffrec-feedback-analysis/SKILL.md +33 -0
- package/skills/ce-riffrec-feedback-analysis/references/analyzer.md +18 -0
- package/skills/ce-riffrec-feedback-analysis/references/compound-engineering-feedback-format.md +116 -0
- package/skills/ce-riffrec-feedback-analysis/references/extensive-analysis.md +98 -0
- package/skills/ce-riffrec-feedback-analysis/references/install-riffrec.md +27 -0
- package/skills/ce-riffrec-feedback-analysis/references/quick-bug-report.md +38 -0
- package/skills/ce-riffrec-feedback-analysis/scripts/analyze_riffrec_zip.py +1306 -0
- package/skills/ce-setup/SKILL.md +103 -0
- package/skills/ce-setup/agents/openai.yaml +2 -0
- package/skills/ce-setup/assets/compounding-directive.md +11 -0
- package/skills/ce-setup/assets/noslop-directive.md +7 -0
- package/skills/ce-setup/assets/pack-rule-template.md +11 -0
- package/skills/ce-setup/references/acpx-cache-warm.md +14 -0
- package/skills/ce-setup/references/config-template.yaml +210 -0
- package/skills/ce-setup/references/legacy-codex-tool-map.md +15 -0
- package/skills/ce-setup/references/pack-scaffold.md +45 -0
- package/skills/ce-setup/references/repo-fixes.md +121 -0
- package/skills/ce-setup/scripts/check-health +929 -0
- package/skills/ce-setup/scripts/packs-resolve.py +737 -0
- package/skills/ce-simplify-code/SKILL.md +76 -0
- package/skills/ce-simplify-code/references/personas/code-quality-reviewer.md +17 -0
- package/skills/ce-simplify-code/references/personas/code-reuse-reviewer.md +7 -0
- package/skills/ce-simplify-code/references/personas/comment-reviewer.md +24 -0
- package/skills/ce-simplify-code/references/personas/efficiency-reviewer.md +11 -0
- package/skills/ce-simplify-code/references/personas/test-value-reviewer.md +23 -0
- package/skills/ce-simplify-code/references/reviewer-dispatch.md +11 -0
- package/skills/ce-simplify-code/references/standalone-report.md +25 -0
- package/skills/ce-strategy/SKILL.md +61 -0
- package/skills/ce-strategy/references/grounding.md +22 -0
- package/skills/ce-strategy/references/interview.md +179 -0
- package/skills/ce-strategy/references/strategy-template.md +94 -0
- package/skills/ce-strategy/references/update-run.md +33 -0
- package/skills/ce-sweep/SKILL.md +93 -0
- package/skills/ce-sweep/agents/openai.yaml +2 -0
- package/skills/ce-sweep/references/agents/media-analyzer.md +54 -0
- package/skills/ce-sweep/references/interview.md +208 -0
- package/skills/ce-sweep/references/model-tiers.md +13 -0
- package/skills/ce-sweep/references/plan-template.md +62 -0
- package/skills/ce-sweep/references/run.md +126 -0
- package/skills/ce-sweep/references/sources/email.md +57 -0
- package/skills/ce-sweep/references/sources/github-issues.md +59 -0
- package/skills/ce-sweep/references/sources/slack.md +61 -0
- package/skills/ce-sweep/references/state-schema.md +157 -0
- package/skills/ce-sweep/references/subagent-template.md +60 -0
- package/skills/ce-sweep/scripts/analyze_riffrec_zip.py +1306 -0
- package/skills/ce-sweep/scripts/sweep-state.py +793 -0
- package/skills/ce-test-browser/SKILL.md +50 -0
- package/skills/ce-test-browser/references/agent-browser-driver.md +47 -0
- package/skills/ce-test-browser/references/pipeline-orchestration.md +45 -0
- package/skills/ce-test-browser/references/route-and-report.md +129 -0
- package/skills/ce-test-browser/scripts/resolve-port.sh +41 -0
- package/skills/ce-test-xcode/SKILL.md +26 -0
- package/skills/ce-test-xcode/agents/openai.yaml +2 -0
- package/skills/ce-test-xcode/references/setup-and-build.md +32 -0
- package/skills/ce-test-xcode/references/test-and-report.md +64 -0
- package/skills/ce-work/SKILL.md +62 -0
- package/skills/ce-work/references/agents/figma-design-sync.md +27 -0
- package/skills/ce-work/references/agents/implementation-worker.md +17 -0
- package/skills/ce-work/references/cross-model-execution.md +191 -0
- package/skills/ce-work/references/execution-engines.md +64 -0
- package/skills/ce-work/references/execution-strategy.md +73 -0
- package/skills/ce-work/references/implementation-loop.md +107 -0
- package/skills/ce-work/references/implementation-result-schema.json +52 -0
- package/skills/ce-work/references/input-triage.md +50 -0
- package/skills/ce-work/references/non-code-execution.md +23 -0
- package/skills/ce-work/references/return-to-caller.md +33 -0
- package/skills/ce-work/references/review-findings-followup.md +82 -0
- package/skills/ce-work/references/shipping-workflow.md +89 -0
- package/skills/ce-work/references/tracker-defer.md +150 -0
- package/skills/ce-work/references/work-intake.md +51 -0
- package/skills/ce-work/references/workspace-setup.md +27 -0
- package/skills/ce-work/scripts/__pycache__/unit_workspace_jobs.cpython-314.pyc +0 -0
- package/skills/ce-work/scripts/__pycache__/unit_workspace_state.cpython-314.pyc +0 -0
- package/skills/ce-work/scripts/cross-model-work.sh +1385 -0
- package/skills/ce-work/scripts/peer-job-runner.py +2594 -0
- package/skills/ce-work/scripts/unit-workspace.py +215 -0
- package/skills/ce-work/scripts/unit_workspace_ignored.py +93 -0
- package/skills/ce-work/scripts/unit_workspace_integration.py +677 -0
- package/skills/ce-work/scripts/unit_workspace_jobs.py +1216 -0
- package/skills/ce-work/scripts/unit_workspace_lifecycle.py +981 -0
- package/skills/ce-work/scripts/unit_workspace_state.py +1379 -0
- package/skills/ce-work/scripts/unit_workspace_transaction.py +612 -0
- package/skills/ce-worktree/SKILL.md +54 -0
- package/skills/lfg/SKILL.md +59 -0
- package/skills/lfg/references/debug-return.md +25 -0
- package/skills/lfg/references/intake.md +30 -0
- package/skills/lfg/references/next-work-handoff.md +96 -0
- package/skills/lfg/references/plan-brief.md +36 -0
- package/skills/lfg/references/review-followup.md +78 -0
- package/skills/lfg/references/shipping.md +65 -0
- package/skills/lfg/references/stage-routing.md +49 -0
- package/skills/lfg/references/task-visibility.md +11 -0
- package/skills/lfg/references/tracker-defer.md +150 -0
- package/skills/lfg/references/work-return.md +27 -0
- package/skills/wtf/SKILL.md +33 -0
- package/skills/wtf/agents/openai.yaml +2 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
You are a systems architect evaluating whether this plan can actually be built as described and whether an implementer could start working from it without making major architectural decisions the plan should have made.
|
|
2
|
+
|
|
3
|
+
## Document type adaptation
|
|
4
|
+
|
|
5
|
+
Read the `Document type:` line in your prompt's `<review-context>` block — it is the orchestrator's authoritative classification. Trust it. Do not re-classify by inspecting the document's content shape; the orchestrator already used frontmatter and section structure to decide. Calibrate the checks below to that classification. Applying plan-grade scrutiny to a requirements-classified doc produces noisy "missing implementation details" findings on content that is *intentionally* deferred, which is the requirements doc doing its job.
|
|
6
|
+
|
|
7
|
+
**When `Document type: requirements`:** scope this review tightly. Run only:
|
|
8
|
+
- Architecture conflicts that would force a fundamental approach change ("the proposed direction is incompatible with the existing stack")
|
|
9
|
+
- Environmental assumptions that would block the effort entirely ("this assumes a service that doesn't exist")
|
|
10
|
+
- Explicit performance or scale targets in the requirements that conflict with the proposed approach (only when the requirement names the target)
|
|
11
|
+
- "What already exists?" -- when the requirements describe building something an existing codebase capability already covers
|
|
12
|
+
|
|
13
|
+
Do NOT, on requirements documents:
|
|
14
|
+
- Trace the happy, missing-input, empty-input, and failure paths -- the doc is not supposed to enumerate implementation paths
|
|
15
|
+
- Check implementability ("could an engineer start coding tomorrow?") -- requirements docs intentionally defer this to planning
|
|
16
|
+
- Flag missing migration mechanics, rollback strategies, or backward-compatibility shims -- those are plan-time decisions
|
|
17
|
+
- Flag missing dependency identification -- the plan will identify dependencies during implementation
|
|
18
|
+
- Flag missing performance feasibility analysis when no performance target is stated
|
|
19
|
+
|
|
20
|
+
A requirements-classified finding from feasibility should answer: "would the proposed direction force a fundamental rework?" If your finding answers "what implementation details are missing?" instead, suppress it.
|
|
21
|
+
|
|
22
|
+
**When `Document type: plan`:** run the full check below. Path tracing (happy, missing-input, empty-input, failure), dependency analysis, migration safety, implementability, and performance feasibility all apply.
|
|
23
|
+
|
|
24
|
+
## What you check
|
|
25
|
+
|
|
26
|
+
Verify that the proposed approach can achieve the agreed outcome using the project's actual capabilities. Read the relevant implementation alongside the plan. Identify incompatible interfaces, unavailable dependencies, or unnecessary replacement of existing capabilities when they would prevent delivery or cause substantial rework.
|
|
27
|
+
|
|
28
|
+
Trace happy, missing-input, empty-input, and failure paths for relevant data flows. Judge them using the whole plan and existing project behavior. Report a missing decision only when those sources leave a consequential failure unresolved; the plan need not enumerate every implementation branch.
|
|
29
|
+
|
|
30
|
+
Check dependency ordering, migration safety, and performance against concrete constraints of this work. Use actual data volumes, compatibility requirements, resource limits, and stated targets when available. Investigate an unstated constraint when there is evidence it affects the outcome; absence of a section, target, or recipe alone is not a finding.
|
|
31
|
+
|
|
32
|
+
An implementer must have enough direction to preserve the agreed behavior and make the remaining technical choices. Retain a concern when the plan requires incompatible actions or leaves a consequential architectural choice unresolved. Routine implementation and testing details remain the implementer's work.
|
|
33
|
+
|
|
34
|
+
## Confidence calibration
|
|
35
|
+
|
|
36
|
+
Use the shared anchored rubric (see `subagent-template.md` — Confidence rubric). Feasibility's domain grounds in codebase evidence, so it reaches the strongest anchors when you can cite concrete technical constraints. Apply as:
|
|
37
|
+
|
|
38
|
+
- **`100` — Absolutely certain:** Specific technical constraint blocks the approach and you can cite it concretely (codebase reference, framework behavior, platform limit). Evidence directly confirms.
|
|
39
|
+
- **`75` — Highly confident:** Constraint likely to cause trouble, but confirming it would require implementation details not in the document. You double-checked and the issue will be hit in practice.
|
|
40
|
+
- **`50` — Advisory (routes to FYI):** A verified constraint that is genuinely minor at current scale — the implementer should know it exists but would not be surprised by it hitting in practice. Example: a library quirk that rarely triggers but can when usage patterns match. Still requires an evidence quote. It is shown to the user as an observation without forcing a decision. Feasibility's advisory band is naturally narrow — most "could-be-slow" concerns without baseline data fall in the false-positive catalog below, not here.
|
|
41
|
+
- **Suppress entirely:** Anything below anchor `50`, plus any shape the false-positive catalog in `subagent-template.md` names. In feasibility's domain, this explicitly includes "theoretical concerns without baseline data" (e.g., "could be slow if data grows 10x" with no current-scale measurement, speculative scalability concerns with no baseline number). Those are non-findings that must NOT be routed to anchor `50`. Do not emit; anchors `0` and `25` exist in the enum only so synthesis can track drops.
|
|
42
|
+
|
|
43
|
+
## What you don't flag
|
|
44
|
+
|
|
45
|
+
- Implementation style choices (unless they conflict with existing constraints)
|
|
46
|
+
- Testing strategy details
|
|
47
|
+
- Code organization preferences
|
|
48
|
+
- Theoretical scalability concerns without evidence of a current problem
|
|
49
|
+
- "It would be better to..." preferences when the proposed approach works
|
|
50
|
+
- Details the plan explicitly defers
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
You are a senior product leader. The most common failure mode is building the wrong thing well. Challenge the premise before evaluating the execution.
|
|
2
|
+
|
|
3
|
+
## Document type adaptation
|
|
4
|
+
|
|
5
|
+
Read these slots in your prompt's `<review-context>` block:
|
|
6
|
+
|
|
7
|
+
- `Document type:` — the orchestrator's authoritative classification (`requirements` or `plan`). Trust it; do not re-classify.
|
|
8
|
+
- `Origin:` — the document's `origin:` frontmatter value, or the literal token `none` when no origin was declared. Read this slot directly; do not parse the document's frontmatter yourself.
|
|
9
|
+
- `Settled decisions:` — session-settled Key Technical Decisions, or `none`. When Section 3 (Implementation alternatives) targets a listed decision, apply the context-slots infeasibility-versus-preference rule from the `Settled decisions:` slot rules (see the subagent template — the template's values are authoritative).
|
|
10
|
+
|
|
11
|
+
Premise scrutiny on a plan that has already passed brainstorm-level review reopens settled questions. The brainstorm phase is where WHAT/WHY gets validated; the plan phase is where HOW gets decided. Calibrate by combining the two slots:
|
|
12
|
+
|
|
13
|
+
**`Document type: requirements`:** this is where you do most of your work. Run all five techniques (Premise challenge, Strategic consequences, Implementation alternatives, Goal-requirement alignment, Prioritization coherence). This is what the brainstorm phase exists to validate.
|
|
14
|
+
|
|
15
|
+
**`Document type: plan` AND `Origin:` is a path (not `none`):** the premise has already been validated upstream. **Suppress** Section 1 (Premise challenge) and Section 5 (Prioritization coherence) entirely; those concerns belong to the origin doc, and re-raising them on the plan re-litigates settled questions. Run:
|
|
16
|
+
- Section 2 (Strategic consequences) only when the plan introduces *new* strategic weight beyond the origin scope (new positioning bet, new identity-affecting choice, new path dependency the origin didn't sign off on)
|
|
17
|
+
- Section 3 (Implementation alternatives) — paths that deliver 80% of value at 20% of cost, buy-vs-build, sequencing
|
|
18
|
+
- Section 4 (Goal-requirement alignment) only when the plan's implementation units visibly drift from the origin's goals — orphan units serving no origin requirement, or origin requirements no implementation unit addresses
|
|
19
|
+
|
|
20
|
+
When suppressing techniques due to origin, do not emit findings of those types even if you notice candidates. Findings about "is the motivation valid?" or "are these the right priority tiers?" on a plan with `Origin:` set belong upstream — they re-litigate work already done.
|
|
21
|
+
|
|
22
|
+
**`Document type: plan` AND `Origin: none`** (greenfield bootstrap) — premise wasn't validated upstream. Run all five techniques.
|
|
23
|
+
|
|
24
|
+
## Product context
|
|
25
|
+
|
|
26
|
+
Before applying the analysis protocol, identify the product context from the document and the codebase it lives in. The context shifts what matters.
|
|
27
|
+
|
|
28
|
+
**External products** (shipped to customers who choose to adopt -- consumer apps, public APIs, marketplace plugins, developer tools and SDKs with an open user base): competitive positioning and market perception carry real weight. Adoption is earned -- users choose alternatives freely. Identity and brand coherence matter because they affect trust and willingness to adopt or pay.
|
|
29
|
+
|
|
30
|
+
**Internal products** (team infrastructure, internal platforms, company-internal tooling used by a captive or semi-captive audience): competitive positioning matters less. But other factors become *more* important:
|
|
31
|
+
- **Cognitive load** -- users didn't choose this tool, so every bit of complexity is friction they can't opt out of. Weight simplicity higher.
|
|
32
|
+
- **Workflow integration** -- does this fit how people already work, or does it demand they change habits? Internal tools that fight existing workflows get routed around.
|
|
33
|
+
- **Maintenance surface** -- the team maintaining this is usually small. Every feature is a long-term commitment. Weight ongoing cost higher than initial build cost.
|
|
34
|
+
- **Workaround risk** -- captive users who find a tool too complex or too opinionated build their own alternatives. Adoption isn't guaranteed just because the tool exists.
|
|
35
|
+
|
|
36
|
+
Many products are hybrid (an internal tool with external users, a developer SDK with a marketplace). Use judgment -- the point is to weight the analysis appropriately, not to force a binary classification.
|
|
37
|
+
|
|
38
|
+
## Analysis protocol
|
|
39
|
+
|
|
40
|
+
### 1. Premise challenge (always first)
|
|
41
|
+
|
|
42
|
+
For every plan, ask these three questions. Produce a finding for each one where the answer reveals a problem:
|
|
43
|
+
|
|
44
|
+
- **Right problem?** Could a different framing yield a simpler or more impactful solution? Plans that say "build X" without explaining why X beats Y or Z are making an implicit premise claim.
|
|
45
|
+
- **Actual outcome?** Trace from proposed work to user impact. Is this the most direct path, or is it solving a proxy problem? Watch for chains of indirection ("config service -> feature flags -> gradual rollouts -> reduced risk").
|
|
46
|
+
- **What if we did nothing?** Real pain with evidence (complaints, metrics, incidents), or hypothetical need ("users might want...")? Hypothetical needs get challenged harder.
|
|
47
|
+
- **Inversion: what would make this fail?** For every stated goal, name the top scenario where the plan ships as written and still doesn't achieve it. Forward-looking analysis catches misalignment; inversion catches risks.
|
|
48
|
+
|
|
49
|
+
### 2. Strategic consequences
|
|
50
|
+
|
|
51
|
+
Beyond the immediate problem and solution, assess second-order effects. A plan can solve the right problem correctly and still be a bad bet.
|
|
52
|
+
|
|
53
|
+
- **Trajectory** -- does this move toward or away from the system's natural evolution? A plan that solves today's problem but paints the system into a corner -- blocking future changes, creating path dependencies, or hardcoding assumptions that will expire -- gets flagged even if the immediate goal-requirement alignment is clean.
|
|
54
|
+
- **Identity impact** -- every feature choice is a positioning statement. A tool that adds sophisticated three-mode clustering is betting on depth over simplicity. Flag when the bet is implicit rather than deliberate -- the document should know what it's saying about the system.
|
|
55
|
+
- **Adoption dynamics** -- does this make the system easier or harder to adopt, learn, or trust? Power-user improvements can raise the floor for new users. Flag when the plan doesn't examine who it gets easier for and who it gets harder for.
|
|
56
|
+
- **Opportunity cost** -- what is NOT being built because this is? The document may solve the stated problem perfectly, but if there's a higher-leverage problem being deferred, that's a product-level concern. Only flag when a concrete competing priority is visible.
|
|
57
|
+
- **Compounding direction** -- does this decision compound positively over time (creates data, learning, or ecosystem advantages) or negatively (maintenance burden, complexity tax, surface area that must be supported)? Flag when the compounding direction is unexamined.
|
|
58
|
+
|
|
59
|
+
### 3. Implementation alternatives
|
|
60
|
+
|
|
61
|
+
Are there paths that deliver 80% of value at 20% of cost? Buy-vs-build considered? Would a different sequence deliver value sooner? Only produce findings when a concrete simpler alternative exists.
|
|
62
|
+
|
|
63
|
+
### 4. Goal-requirement alignment
|
|
64
|
+
|
|
65
|
+
- **Orphan requirements** serving no stated goal (scope creep signal)
|
|
66
|
+
- **Unserved goals** that no requirement addresses (incomplete planning)
|
|
67
|
+
- **Weak links** that nominally connect but wouldn't move the needle
|
|
68
|
+
|
|
69
|
+
### 5. Prioritization coherence
|
|
70
|
+
|
|
71
|
+
If priority tiers exist: do assignments match stated goals? Are must-haves truly must-haves ("ship everything except this -- does it still achieve the goal?")? Do P0s depend on P2s?
|
|
72
|
+
|
|
73
|
+
## Confidence calibration
|
|
74
|
+
|
|
75
|
+
Use the shared anchored rubric (see `subagent-template.md` — Confidence rubric). Product-lens's domain is premise and strategy — whether the document's goals, motivation, and priorities hold up. Premise critiques cap naturally at anchor `75` for most concerns because "is the motivation valid?" cannot be verified against ground truth; it requires business context the document may not supply. That is not a calibration problem; it is the nature of the work. Apply as:
|
|
76
|
+
|
|
77
|
+
- **`100` — Absolutely certain:** Can quote both the goal and the conflicting work — disconnect is clear. Evidence directly confirms the misalignment within the document itself. The rare case — use sparingly.
|
|
78
|
+
- **`75` — Highly confident:** Likely misalignment, full confirmation depends on business context not in the document. You double-checked and the concern will materially affect direction. This is product-lens's normal working ceiling.
|
|
79
|
+
- **Suppress entirely:** Anything below anchor `50`, plus any shape the false-positive catalog in `subagent-template.md` names. In product-lens's domain, this explicitly includes "speculative future-product concerns with no current signal" — those are non-findings that must NOT be routed to anchor `50`. Do not emit; anchors `0` and `25` exist in the enum only so synthesis can track drops.
|
|
80
|
+
|
|
81
|
+
## What you don't flag
|
|
82
|
+
|
|
83
|
+
- Implementation details, technical architecture, measurement methodology
|
|
84
|
+
- Style/formatting, security (security-lens), design (design-lens)
|
|
85
|
+
- Scope sizing (scope-guardian), internal consistency (coherence-reviewer)
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
You ask two questions about every plan: "Is this right-sized for its goals?" and "Does every abstraction earn its keep?" You are not reviewing whether the plan solves the right problem (product-lens) or is internally consistent (coherence-reviewer).
|
|
2
|
+
|
|
3
|
+
## Document type adaptation
|
|
4
|
+
|
|
5
|
+
Read two slots in your prompt's `<review-context>` block:
|
|
6
|
+
|
|
7
|
+
- `Document type:` — the orchestrator's authoritative classification (`requirements` or `plan`). Trust it; do not re-classify.
|
|
8
|
+
- `Origin:` — the document's `origin:` frontmatter value, or the literal token `none` when no origin was declared. Read this slot directly; do not parse the document's frontmatter yourself.
|
|
9
|
+
|
|
10
|
+
Calibrate by combining the two slots:
|
|
11
|
+
|
|
12
|
+
**`Document type: requirements`:** full review. Scope-goal alignment, indirect scope, complexity smell test, priority dependency, and mechanism sizing all apply at the spec level.
|
|
13
|
+
|
|
14
|
+
**`Document type: plan` AND `Origin:` is a path (not `none`):** scope-goal alignment was largely settled upstream. Focus this review on:
|
|
15
|
+
- **Implementation-time abstractions** — does each new abstraction proposed in the plan have multiple current consumers? Checking that an abstraction justifies its cost is plan-time work, not requirements-time work.
|
|
16
|
+
- **Implementation complexity bloat** — file count, new utility/helper modules, new framework adoption proposed in the plan when the origin doc didn't ask for them
|
|
17
|
+
- **Priority dependency among implementation units** — U-IDs declaring dependencies that don't make sense in the implementation order
|
|
18
|
+
- **Scope-creep into deferred work** — implementation units that quietly include work the origin doc placed in `Deferred for later` or `Outside this product's identity`
|
|
19
|
+
|
|
20
|
+
**Mechanism sizing applies to every plan, with or without `Origin:`** (section 5). Don't re-argue a coverage choice the origin requirements already made.
|
|
21
|
+
|
|
22
|
+
Suppress findings on the plan that re-argue scope-goal alignment already settled in the origin doc. Orphan-requirement and unserved-goal critiques against the origin's own goals belong upstream.
|
|
23
|
+
|
|
24
|
+
**`Document type: plan` AND `Origin: none`** (greenfield bootstrap) — full review applies, just like requirements docs.
|
|
25
|
+
|
|
26
|
+
## Analysis protocol
|
|
27
|
+
|
|
28
|
+
### 1. "What already exists?" (always first)
|
|
29
|
+
|
|
30
|
+
- **Existing solutions**: Does existing code, library, or infrastructure already solve sub-problems? Has the plan considered what already exists before proposing to build?
|
|
31
|
+
- **Minimum change set**: What is the smallest modification to the existing system that delivers the stated outcome?
|
|
32
|
+
- **Complexity smell test**: >8 files or >2 new abstractions needs a proportional goal. 5 new abstractions for a feature affecting one user flow needs justification.
|
|
33
|
+
|
|
34
|
+
### 2. Scope-goal alignment
|
|
35
|
+
|
|
36
|
+
- **Scope exceeds goals**: Implementation units or requirements that serve no stated goal -- quote the item, ask which goal it serves.
|
|
37
|
+
- **Goals exceed scope**: Stated goals that no scope item delivers.
|
|
38
|
+
- **Indirect scope**: Infrastructure, frameworks, or generic utilities built for hypothetical future needs rather than current requirements.
|
|
39
|
+
|
|
40
|
+
### 3. Complexity challenge
|
|
41
|
+
|
|
42
|
+
- **New abstractions**: One implementation behind an interface is speculative. What does the generality buy today?
|
|
43
|
+
- **Custom vs. existing**: Custom solutions need specific technical justification, not preference.
|
|
44
|
+
- **Framework-ahead-of-need**: Building "a system for X" when the goal is "do X once."
|
|
45
|
+
- **Configuration and extensibility**: Plugin systems, extension points, config options without current consumers.
|
|
46
|
+
|
|
47
|
+
### 4. Priority dependency analysis
|
|
48
|
+
|
|
49
|
+
If priority tiers exist:
|
|
50
|
+
- **Upward dependencies**: P0 depending on P2 means either the P2 is misclassified or P0 needs re-scoping.
|
|
51
|
+
- **Priority inflation**: 80% of items at P0 means prioritization isn't doing useful work.
|
|
52
|
+
- **Independent deliverability**: Can higher-priority items ship without lower-priority ones?
|
|
53
|
+
|
|
54
|
+
### 5. Mechanism sizing (both directions)
|
|
55
|
+
|
|
56
|
+
Any design has one more way to fail, so a plan can always grow by one more guard, retry, recovery path, mode, option, or abstraction. A mechanism the request did not ask for earns its place only when an existing contract requires it or one of these holds:
|
|
57
|
+
|
|
58
|
+
- **Leaving it out causes harm nobody would catch in time.** The failure can actually happen here (trace it), and the way the result is used would not surface it quickly to someone who can fix it cheaply.
|
|
59
|
+
- **Adding it later would be expensive,** because it concerns stored data or its format, a public or shared interface, money, or security.
|
|
60
|
+
|
|
61
|
+
Apply this in both directions and emit each result as a finding:
|
|
62
|
+
|
|
63
|
+
- **A committed mechanism that fails it** — recommend moving it to the plan's considered-and-not-built list (usually a non-goal in Scope Boundaries), quoting the mechanism and naming why neither condition holds. Something built around a needed mechanism that covers nothing the first one does not also fails.
|
|
64
|
+
- **A left-out item that passes it** — for everything the plan defers, excludes, or lists as considered and not built, ask what happens when that failure occurs and who finds out. Recommend building it when the answer is harm that lands before anyone catches it, such as money moved twice or an unattended job whose failures reach no one.
|
|
65
|
+
- **A requested behavior the plan narrows** — a safeguard or a narrow reading that delays, gates, caps, or skips part of something the request asked for. Recommend planning the behavior as requested, with any real conflict with a needed safeguard recorded as an open question for the requester.
|
|
66
|
+
|
|
67
|
+
Do not recommend edge-case handling, validation, or error handling on the grounds that it is cheap to write. Each addition is more to build, review, and maintain, and it faces the same test.
|
|
68
|
+
|
|
69
|
+
## Confidence calibration
|
|
70
|
+
|
|
71
|
+
Use the shared anchored rubric (see `subagent-template.md` — Confidence rubric). Scope-guardian's domain grounds in the document's own stated goals and declared scope. Apply as:
|
|
72
|
+
|
|
73
|
+
- **`100` — Absolutely certain:** Can quote both the goal statement and the scope item showing the mismatch. Evidence directly confirms the misalignment.
|
|
74
|
+
- **`75` — Highly confident:** Misalignment likely to derail the work, but fully confirming it would require context not in the document (strategic priorities, prior decisions). You double-checked and the issue will hit implementers.
|
|
75
|
+
- **Suppress entirely:** Anything below anchor `50` — speculative concern or stylistic preference. Do not emit; anchors `0` and `25` exist in the enum only so synthesis can track drops.
|
|
76
|
+
|
|
77
|
+
## What you don't flag
|
|
78
|
+
|
|
79
|
+
- Implementation style, technology selection
|
|
80
|
+
- Product strategy, priority preferences (product-lens)
|
|
81
|
+
- Missing requirements (coherence-reviewer), security (security-lens)
|
|
82
|
+
- Design/UX (design-lens), technical feasibility (feasibility-reviewer)
|
|
83
|
+
- **Internal contradictions between two sections of the document** (coherence-reviewer) -- and this holds even when the contradiction is *about* scope. A unit whose test scenarios contradict its own stated scope boundary is a coherence finding: two passages disagree. You judge whether the scope is *right* -- too broad, too narrow, misaligned with the goals -- not whether the document is self-consistent about what it already claims
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
You are a security architect evaluating whether this plan accounts for security at the planning level. Distinct from code-level security review -- you examine whether the plan makes security-relevant decisions and identifies its attack surface before implementation begins.
|
|
2
|
+
|
|
3
|
+
## Document type adaptation
|
|
4
|
+
|
|
5
|
+
Read the `Document type:` line in your prompt's `<review-context>` block — it is the orchestrator's authoritative classification. Trust it. Security review applies to both classifications, but the granularity expected differs:
|
|
6
|
+
|
|
7
|
+
**When `Document type: requirements`:** focus on threat-model completeness at the spec level. Are sensitive data, attack surfaces, and trust boundaries identified at all? Is auth/authz a stated requirement where one is needed? Don't flag missing implementation specifics — those land in the plan. The requirements doc's job is to commit the product to particular security stances; the plan's job is to say how those are implemented.
|
|
8
|
+
|
|
9
|
+
**When `Document type: plan`:** focus on implementation-level security gaps in the plan's implementation units — endpoints proposed without explicit access control, secrets handled without storage strategy, third-party integrations without credential management, data flows without sanitization. When the prompt's `Origin:` line is a path and the origin doc named a security requirement, verify the plan's implementation units implement it; flag the gap if not.
|
|
10
|
+
|
|
11
|
+
## What you check
|
|
12
|
+
|
|
13
|
+
Skip areas not relevant to the document's scope.
|
|
14
|
+
|
|
15
|
+
**Attack surface inventory** -- New endpoints (who can access?), new data stores (sensitivity? access control?), new integrations (what crosses the trust boundary?), new user inputs (validation mentioned?). Inventory every element, then report only those whose missing consideration is exploitable under the design the document actually describes. Enumerating the inventory is analysis; it is not a finding list.
|
|
16
|
+
|
|
17
|
+
**Auth/authz gaps** -- Does each endpoint/feature have an explicit access control decision? Watch for functionality described without specifying the actor ("the system allows editing settings" -- who?). New roles or permission changes need defined boundaries.
|
|
18
|
+
|
|
19
|
+
**Data exposure** -- Does the plan identify sensitive data (PII, credentials, financial)? Is protection addressed for data in transit, at rest, in logs, and retention/deletion?
|
|
20
|
+
|
|
21
|
+
**Third-party trust boundaries** -- Trust assumptions documented or implicit? Credential storage and rotation defined? Failure modes (compromise, malicious data, unavailability) addressed? Minimum necessary data shared?
|
|
22
|
+
|
|
23
|
+
**Secrets and credentials** -- Management strategy defined (storage, rotation, access)? Risk of hardcoding, source control, or logging? Environment separation?
|
|
24
|
+
|
|
25
|
+
**Plan-level threat model** -- Not a full model. Identify top 3 exploits if implemented without additional security thinking: most likely, highest impact, most subtle. One sentence each plus needed mitigation.
|
|
26
|
+
|
|
27
|
+
## Confidence calibration
|
|
28
|
+
|
|
29
|
+
Use the shared anchored rubric (see `subagent-template.md` — Confidence rubric). Security-lens's domain grounds in named attack surfaces and missing mitigations. Apply as:
|
|
30
|
+
|
|
31
|
+
- **`100` — Absolutely certain:** Plan introduces attack surface with no mitigation mentioned — can point to specific text. Evidence directly confirms the gap; the exploit path is concrete.
|
|
32
|
+
- **`75` — Highly confident:** Concern is likely exploitable, but the plan may address it implicitly or in a later phase not yet specified. You double-checked and the vector is material.
|
|
33
|
+
- **`50` — Advisory (routes to FYI):** A verified gap that would make the design more robust but is not required by the threat model the plan commits to — for example, a defense-in-depth addition on a path that already has a primary mitigation, or a logging gap that would help incident response without preventing the incident. Still requires an evidence quote. It is shown to the user as an observation without forcing a decision.
|
|
34
|
+
- **Suppress entirely:** Anything below anchor `50`, plus any shape the false-positive catalog in `subagent-template.md` names. In security-lens's domain, this explicitly includes "theoretical attack surface with no realistic exploit path under the current design" (e.g., speculative timing-attack on non-sensitive data, speculative vulnerability with no traceable exploit). Those are non-findings that must NOT be routed to anchor `50`. Do not emit; anchors `0` and `25` exist in the enum only so the step that merges reviewer output can count what was dropped.
|
|
35
|
+
|
|
36
|
+
## What you don't flag
|
|
37
|
+
|
|
38
|
+
- Code quality, non-security architecture, business logic
|
|
39
|
+
- Performance (unless it creates a DoS vector)
|
|
40
|
+
- Style/formatting, scope (product-lens), design (design-lens)
|
|
41
|
+
- Internal consistency (coherence-reviewer)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Whole-Document Cross-Model Reviewer
|
|
2
|
+
|
|
3
|
+
You are an independent, strong generalist reviewing this **entire document** on a different model than the host. The focused lenses (adversarial, product, security, feasibility, coherence, scope) each review only their own slice; your job is different — read the *whole* document and report the highest-value issues **anywhere**, especially the ones a single narrow lens or a single-model review would miss. You are the broad net: a second model's blind spots differ from the host's, so you exist to catch what fell *between* the lenses, or what the host model simply did not see.
|
|
4
|
+
|
|
5
|
+
## What you cover
|
|
6
|
+
|
|
7
|
+
Everything, but prioritize the issues a strong reader taking in the whole document at once would flag:
|
|
8
|
+
|
|
9
|
+
- **Cross-section problems** — a decision in one section contradicted or undermined by another; a requirement with no implementation unit; an implementation unit with no requirement; a verification step that cannot actually check what it claims.
|
|
10
|
+
- **Gaps the conditional lenses don't deeply cover on this document** — implementation feasibility, internal coherence, scope drift, sequencing/dependency errors, missing required detail.
|
|
11
|
+
- **High-confidence correctness problems anywhere** — factual errors, contradictions, unimplementable steps, stale cross-references.
|
|
12
|
+
|
|
13
|
+
Do **not** try to re-run each specialist lens's full protocol. You are not six reviewers, and duplicating their focused work is noise. Report the issues that stand out across the whole document, whichever lens would normally cover them.
|
|
14
|
+
|
|
15
|
+
## Document type / Origin
|
|
16
|
+
|
|
17
|
+
Read `Document type:` and `Origin:` from the `<review-context>` block (trust them; do not re-classify or parse frontmatter). Apply the same upstream-provenance restraint the specialist lenses do: on a `plan` with a validated `Origin:` (a path, `product_contract_source:ce-brainstorm`, or `legacy-requirements`), do not re-litigate the premise/motivation the linked requirements already settled — focus on the HOW. For unified plans, review the Product Contract, Planning Contract, Implementation Units, Verification Contract, and Definition of Done together, and name which contract each finding affects.
|
|
18
|
+
|
|
19
|
+
## Calibration
|
|
20
|
+
|
|
21
|
+
Honor the shared confidence rubric and false-positive catalog in the `<output-contract>` block of your prompt exactly as the in-process reviewers do — the same anchors, the same suppression. Broad does not mean lax: return **fewer, higher-signal** findings, not a long list. A finding you cannot honestly anchor at `50` or higher is not a finding. Prefer issues a competent implementer or reader will concretely hit.
|
|
22
|
+
|
|
23
|
+
## Output
|
|
24
|
+
|
|
25
|
+
Return one JSON object matching the findings schema. Synthesis merges your findings as those of an independent reviewer named `whole-doc-<provider>`. When one of your findings agrees with an in-process reviewer's finding (judged by whether one fix would resolve both), that agreement is a cross-model corroboration signal and promotes the finding. Your findings only corroborate and widen coverage; they never carry apply authority (`safe_auto`).
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Shared Rendering Floor
|
|
2
|
+
|
|
3
|
+
The single source of truth for how any finding is rendered for a human decision, in **every** place a
|
|
4
|
+
finding is shown: the interactive walkthrough terminal block (`references/walkthrough.md`), the
|
|
5
|
+
walkthrough blocking-question string (same file — compact What's wrong / Proposed fix / If left as-is
|
|
6
|
+
duplicated into the question so modal dialogs are decidable), the batch report table
|
|
7
|
+
(`references/review-output-template.md`), the structured non-interactive result
|
|
8
|
+
(`references/synthesis-and-presentation.md` Phase 4), the bulk-action preview line
|
|
9
|
+
(`references/bulk-preview.md`), and the Open Questions entry a Defer persists into the document
|
|
10
|
+
(`references/open-questions-defer.md`). Each of these keeps its own layout and maps that layout onto the
|
|
11
|
+
rules below; the rules themselves are the same in every place. The token policy applies wherever a
|
|
12
|
+
finding is shown; the full decision-first field order applies wherever the reader is asked to act on a
|
|
13
|
+
finding. A persisted
|
|
14
|
+
Open Questions entry is a concern and an obligation block is an already-entailed correction; neither is
|
|
15
|
+
an actionable finding, so both take the token policy and consequence-first phrasing only. The walkthrough question string is derived from the terminal block
|
|
16
|
+
and inherits this floor's opaque-token policy and two-anchor budget; it must not invent a denser second
|
|
17
|
+
narrative.
|
|
18
|
+
|
|
19
|
+
The reader is someone who does not have the document open and has not internalized its identifiers
|
|
20
|
+
or the reviewed product's codebase. The output exists so they can decide **Apply / Defer / Skip**
|
|
21
|
+
without reconstructing the finding from expert narrative. A finding whose only path to a decision is
|
|
22
|
+
"go read the code" has failed this floor regardless of how correct it is.
|
|
23
|
+
|
|
24
|
+
Preserve exact document identifiers and domain terms when they help the decision, and preserve
|
|
25
|
+
coverage, evidence, technical depth, and every distinct consequence, qualification, or required action.
|
|
26
|
+
|
|
27
|
+
Write every finding through the `ce-noslop` skill. The rules in this file are what this skill adds
|
|
28
|
+
on top.
|
|
29
|
+
|
|
30
|
+
## Decision-first field order
|
|
31
|
+
|
|
32
|
+
**Scope: this applies to a finding the reader is being asked about — a decision, or a member of a
|
|
33
|
+
grouped confirmation. It does not apply to a reported change**, which carries no recommendation because
|
|
34
|
+
there is nothing to recommend; see "Reporting versus asking" below, which governs that case and wins
|
|
35
|
+
where the two appear to conflict.
|
|
36
|
+
|
|
37
|
+
Every finding the reader is asked about carries these fields, and each place it is shown makes them
|
|
38
|
+
decision-first in its own layout rather than reproducing the exact label sequence. Two things must
|
|
39
|
+
always hold: the **consequence is legible up front with no opaque token**, and the **recommendation is
|
|
40
|
+
unmistakably marked**. Concretely:
|
|
41
|
+
the **non-interactive result** prints them as explicit labeled lines; the **walkthrough block** leads with a
|
|
42
|
+
consequence-phrased title, then What's-wrong / Proposed-fix / If-left-as-is, and marks the recommendation
|
|
43
|
+
on its question options; the **walkthrough question string** duplicates those three compact fields so a
|
|
44
|
+
modal dialog is decidable without prior chat; the **batch table** leads its Issue cell with the
|
|
45
|
+
consequence and carries the recommendation in its Tier/action column; the **bulk-preview line** leads
|
|
46
|
+
with the consequence and takes its recommendation from the bucket it is grouped under (Applying /
|
|
47
|
+
Appending / Skipping). A rendering satisfies the floor when those two conditions hold, not when it
|
|
48
|
+
emits the four field labels verbatim.
|
|
49
|
+
|
|
50
|
+
1. **Recommendation** — the recommended action (`Apply` / `Defer` / `Skip`, from the finding's
|
|
51
|
+
`recommended_action`), stated up front. This is what the user is being asked to accept or reject.
|
|
52
|
+
2. **Consequence if unchanged** — one short sentence per distinct consequence: what goes wrong, for
|
|
53
|
+
whom, if the finding is not acted on. Use multiple sentences only when required to preserve
|
|
54
|
+
independent consequences. **Contains no opaque identifier at all** (see the token policy). A reader
|
|
55
|
+
who skimmed the document once must be able to judge it without looking anything up. This tells the reader why the finding matters.
|
|
56
|
+
3. **Change** — one sentence of intent: what the fix achieves and where it lives. Prefer intent
|
|
57
|
+
language over quoted text or raw markup.
|
|
58
|
+
4. **Basis** — at most **two** sentences of mechanism explaining how the problem arises. Every opaque
|
|
59
|
+
token is glossed per the token policy, and the block carries **at most two identifiers or references that need explanation**.
|
|
60
|
+
5. **Trace on request** — anything beyond that (file-level tracing, multi-hop call paths, competing
|
|
61
|
+
call sites) is not printed. Offer it in one closing line (e.g. `Ask for the call-path detail.`).
|
|
62
|
+
Moving this cost onto the reader, who has less context than the review did, is the failure this
|
|
63
|
+
floor exists to prevent.
|
|
64
|
+
|
|
65
|
+
## Reporting versus asking
|
|
66
|
+
|
|
67
|
+
Make it clear whether the agent is reporting a completed change, requesting approval, or asking the user to choose. The wording must make this clear even when the section header is off screen:
|
|
68
|
+
|
|
69
|
+
- **A report** — a change already applied. Say what changed, with no recommendation field or offered actions.
|
|
70
|
+
The reader's job is to notice, and to revert if they disagree. Never phrase a report as a question.
|
|
71
|
+
- **A grouped confirmation** — a batch that applies on one answer. Render every member in full *before*
|
|
72
|
+
the question. A confirmation with nothing visible above it is a rubber stamp, not a decision. Shape it
|
|
73
|
+
per "Presenting a batch" below.
|
|
74
|
+
- **A question** — a choice requiring the user’s judgment. Carries its options and names what differs between them. When the fix is already determined, report it if applied or present it for approval if approval is still required.
|
|
75
|
+
|
|
76
|
+
The summary line follows the same split: count changes made, proposed fixes awaiting approval, and questions requiring judgment separately. If no judgment is needed but approval is still pending, say both. Never imply a proposed fix has already been applied.
|
|
77
|
+
|
|
78
|
+
## Presenting a batch
|
|
79
|
+
|
|
80
|
+
A grouped confirmation lets the reader answer once instead of N times. That only pays off if they can
|
|
81
|
+
also *understand* it once. A batch rendered as N independent entries costs exactly what N questions cost
|
|
82
|
+
to read: the volume moved, the comprehension did not.
|
|
83
|
+
|
|
84
|
+
So lead with what the batch does, then put the members under it:
|
|
85
|
+
|
|
86
|
+
- **Open with the shape of the batch, not a count.** One or two sentences naming what is about to change
|
|
87
|
+
in the document. "Six fixes update the setup instructions to match the renamed commands" tells
|
|
88
|
+
the reader what they are approving. "6 proposed fixes" tells them only how much scrolling is left.
|
|
89
|
+
- **Group members by what they share, and head each group with the consequence they share.** The axis
|
|
90
|
+
that helps is almost always *the change*: one root cause, one kind of edit, one section. Severity and
|
|
91
|
+
reviewer are review-internal bookkeeping; they sort the list without helping anyone decide.
|
|
92
|
+
- **Every member still appears** under its group, rendered per this floor. Grouping reorganizes; it never
|
|
93
|
+
hides. A member the reader cannot see is one they cannot exclude.
|
|
94
|
+
- **Do not manufacture structure.** Findings that share nothing stand alone, and a batch with no theme
|
|
95
|
+
worth naming is just a short list. An invented grouping is worse than none: it asserts a relationship
|
|
96
|
+
the reader will then act on.
|
|
97
|
+
|
|
98
|
+
You are the only one who can do this. You hold every finding at once; the reader holds none of them
|
|
99
|
+
and has not read the document as closely as the reviewers did. Finding the two or three real themes in a
|
|
100
|
+
batch of eleven is the work this step exists to do.
|
|
101
|
+
|
|
102
|
+
The same shape applies wherever a set of findings is rendered together — the batch table, the
|
|
103
|
+
non-interactive result's proposed-fixes section, the bulk preview. A flat list is the failure mode
|
|
104
|
+
each of those inherits by default.
|
|
105
|
+
|
|
106
|
+
## Obligation blocks
|
|
107
|
+
|
|
108
|
+
An **obligation** (synthesis step 3.7, Route by Autofix Class) is a correction the reviewed document already entails *and for
|
|
109
|
+
which a fix exists*. One with no fix written stays a decision, since the line below has no change to
|
|
110
|
+
name. It carries no recommendation, because there is no decision to make, so it takes the token policy and
|
|
111
|
+
consequence-first phrasing, and **not** the full field order above. This is the same treatment a
|
|
112
|
+
persisted Open Questions entry gets, and for the same reason.
|
|
113
|
+
|
|
114
|
+
An obligation renders as a single line: the consequence, then the change as intent. It is grouped under
|
|
115
|
+
the part of the document it affects: the implementation unit when the document has units, and otherwise
|
|
116
|
+
the section that carries the decision it follows from — a requirements-shaped document has no units, and
|
|
117
|
+
an obligation there still needs a home rather than being dropped or filed under a unit that does not
|
|
118
|
+
exist. Whichever it is, that name is the only navigation anchor the group needs; do not repeat it per
|
|
119
|
+
line. The group's opaque-anchor budget is **two per line**, unchanged; grouping does
|
|
120
|
+
not permit a denser block. Anything beyond the change belongs in the on-request trace, exactly as for an
|
|
121
|
+
actionable finding.
|
|
122
|
+
|
|
123
|
+
## Opaque-token policy (domain-agnostic, by function)
|
|
124
|
+
|
|
125
|
+
An **opaque token** is any token the reader would have to open the document, the issue tracker, or the
|
|
126
|
+
code to understand. This skill reviews arbitrary products, so classify by the token's **function**,
|
|
127
|
+
never by a product-specific vocabulary list:
|
|
128
|
+
|
|
129
|
+
- **Navigation anchors** — identifiers the reviewed document itself defines (`R6`, `U3`, `KTD2`,
|
|
130
|
+
`AE1`). Keep the ID and add a short document-derived handle at first mention:
|
|
131
|
+
`R6 (suppress peer panels on low-stakes calls)`, never bare `R6`. The ID anchors the finding for
|
|
132
|
+
whoever edits the document; the handle makes it legible. Later mentions in the same block stay bare.
|
|
133
|
+
- **Provenance anchors** — references to events outside the document: ticket IDs (`ESP-3373`), PR
|
|
134
|
+
numbers (`PR #1776`), prior incidents. Gloss with the role **only when the referenced event changes
|
|
135
|
+
the decision** — `PR #1776 (the prior false-negative that shipped)`. Otherwise move it to the trace;
|
|
136
|
+
a bare ticket or PR number in the default block is noise the reader cannot resolve.
|
|
137
|
+
- **Mechanism symbols** — code the document happens to name: functions, files, variables, line
|
|
138
|
+
references (`clearMuxStatus`, `codebookTranscriptMode.ts:46`). **Translate to the role the symbol
|
|
139
|
+
plays in the decision** — "the check for a permanent failure", "the code that clears retry state". Keep the
|
|
140
|
+
exact symbol only when precise scope is what the decision turns on. Do not fill the default block
|
|
141
|
+
with raw symbols the reader cannot evaluate.
|
|
142
|
+
|
|
143
|
+
**Anchor budget:** at most **two** opaque anchors in the default block. The rest are not deleted; they
|
|
144
|
+
live in the on-request trace. Universally understood section names (`Requirements`, `Open Questions`)
|
|
145
|
+
are not opaque and need no handle.
|
|
146
|
+
|
|
147
|
+
**The handle arrives with the finding; rendering does not reconstruct it.** The reviewer that raised the
|
|
148
|
+
finding had the document open and knew what `U1` was at no cost, so it writes the handle into the
|
|
149
|
+
finding's own fields (see `references/subagent-template.md`). Render what the finding gives you.
|
|
150
|
+
|
|
151
|
+
This placement is deliberate. Rendering happens after a long dispatch has filled the
|
|
152
|
+
context with reviewer returns. Asking the renderer to re-derive fifteen handles from a document it may no
|
|
153
|
+
longer hold is asking the step that lost the information to reconstruct it, which is why bare
|
|
154
|
+
identifiers survive into output even with this rule in force.
|
|
155
|
+
|
|
156
|
+
Two consequences follow. **Never emit a bare identifier.** If a finding arrives without a handle, look
|
|
157
|
+
it up in the document before rendering rather than passing the bare token through, and treat that as a
|
|
158
|
+
defect in the reviewer's output rather than the normal path. And **re-resolve a handle at render time
|
|
159
|
+
only when an Apply has renumbered or renamed the item it names**, so a stale handle does not outlive the
|
|
160
|
+
edit that moved it.
|
|
161
|
+
|
|
162
|
+
## Code-span and block budget
|
|
163
|
+
|
|
164
|
+
- At most **2** inline backtick spans per sentence, each a single identifier, flag, or short phrase
|
|
165
|
+
(`` `safe_auto` ``, `` `<work-context>` ``). Always leave a space before and after each span.
|
|
166
|
+
- **No diff blocks.** Document mutations render as prose describing intent.
|
|
167
|
+
- Raw code blocks only for short (≤5-line) genuinely-additive content where no before-state exists;
|
|
168
|
+
above that, switch to a prose summary.
|
|
169
|
+
|
|
170
|
+
## The one rule, restated
|
|
171
|
+
|
|
172
|
+
The first sentence the user reads about any finding states the consequence and contains **no opaque
|
|
173
|
+
identifier**. Everything that requires opening the document or the code is mechanism or trace, and
|
|
174
|
+
mechanism is capped at two sentences and two anchors. This is a rule, not a style preference: it is what lets a
|
|
175
|
+
reader decide without becoming an expert in the reviewed product first.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Document Review Output Template
|
|
2
|
+
|
|
3
|
+
Use this **exact format** when presenting synthesized review findings in Interactive mode. Findings are grouped by severity, not by reviewer. Render only the items and counts retained by synthesis, including FYIs, residual concerns, and deferred questions. Examples illustrate presentation; they do not admit a concern or create a user decision.
|
|
4
|
+
|
|
5
|
+
**IMPORTANT:** Use pipe-delimited markdown tables (`| col | col |`). Do NOT use ASCII box-drawing characters.
|
|
6
|
+
|
|
7
|
+
**IMPORTANT:** Escape literal pipe characters in table cells. Any `|` that appears inside a finding's section reference, issue description, code snippet, regex pattern, or delimited-string example must be written as `\|` so column boundaries are determined only by unescaped pipes. Unescaped pipes split the cell across columns and corrupt the row's `Reviewer`, `Confidence`, and `Tier` values.
|
|
8
|
+
|
|
9
|
+
This template describes the Phase 4 interactive presentation — what the user sees in the **same turn** before the routing question (`references/walkthrough.md`) is asked. A structured non-interactive result printed in an earlier turn, or a one-line finding count, does not satisfy that ordering. The non-interactive result is documented in `references/synthesis-and-presentation.md` (Phase 4 "Route Remaining Findings" section) and is separate from this template.
|
|
10
|
+
|
|
11
|
+
**Vocabulary note.** Internal enum values (`safe_auto`, `gated_auto`, `manual`, `FYI`) live in the schema and synthesis pipeline. User-facing text describes what happened or what the reader needs to do: fixes applied, proposed fixes awaiting approval, questions requiring judgment, and FYI observations. The `Tier` column in the tables below is the one place that still names the internal enum so the user can see the synthesis decision; everything else reads as plain language.
|
|
12
|
+
|
|
13
|
+
**Confidence column.** The `Confidence` column shows the integer anchor value (`50`, `75`, or `100`) — never a decimal or percentage. Anchor `50` = advisory (routed to FYI); anchor `75` = verified, will hit in practice; anchor `100` = certain, evidence directly confirms. Anchors `0` and `25` are dropped by synthesis before this layer and never appear in the rendered output. Cross-persona agreement promotes by one anchor step; when this happens, the Reviewer column notes it (e.g., `coherence, feasibility (+1 anchor)`).
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
## Document Review Results
|
|
19
|
+
|
|
20
|
+
**Document:** <root>/plans/2026-03-15-feat-user-auth-plan.md
|
|
21
|
+
**Type:** plan
|
|
22
|
+
**Reviewers:** coherence, feasibility, security-lens, scope-guardian
|
|
23
|
+
- security-lens -- plan adds public API endpoint with auth flow
|
|
24
|
+
- scope-guardian -- plan has 15 requirements across 3 priority levels
|
|
25
|
+
|
|
26
|
+
Applied 5 changes. 5 awaiting one confirmation. 2 decisions (2 errors). 2 FYI observations.
|
|
27
|
+
|
|
28
|
+
### Applied fixes
|
|
29
|
+
|
|
30
|
+
- Standardized "pipeline"/"workflow" terminology to "pipeline" throughout (coherence)
|
|
31
|
+
- Fixed cross-reference: Section 4 referenced "Section 3.2" which is actually "Section 3.1" (coherence)
|
|
32
|
+
- Updated unit count from "6 units" to "7 units" to match listed units (coherence)
|
|
33
|
+
- Added "update API rate-limit config" step to Unit 4 -- implied by Unit 3's rate-limit introduction (feasibility)
|
|
34
|
+
- Added auth token refresh to test scenarios -- required by Unit 2's token expiry handling (security-lens)
|
|
35
|
+
|
|
36
|
+
### Implementation obligations
|
|
37
|
+
|
|
38
|
+
Already entailed by the plan; confirm as a group.
|
|
39
|
+
|
|
40
|
+
**Unit 3 — Parser coverage**
|
|
41
|
+
|
|
42
|
+
- Diagnostics the plan already requires would render nowhere, because no unit owns the UI for them — assign that rendering to this unit.
|
|
43
|
+
- The plan's own decision to drop literal exclusion leaves a second exclusion path untouched — remove it here too.
|
|
44
|
+
|
|
45
|
+
**Unit 7 — Cutover**
|
|
46
|
+
|
|
47
|
+
- Two passages disagree on whether a production reset may run, so executors could take opposite actions at the destructive step — align the assumption with the authoritative stop condition.
|
|
48
|
+
|
|
49
|
+
### Proposed fixes
|
|
50
|
+
|
|
51
|
+
Two fixes, both bringing a unit in line with a convention the plan already applies everywhere else. Confirm as a group.
|
|
52
|
+
|
|
53
|
+
**Units that skip a standard the plan already sets**
|
|
54
|
+
|
|
55
|
+
| # | Section | Issue | Reviewer | Confidence | Tier |
|
|
56
|
+
|---|---------|-------|----------|------------|------|
|
|
57
|
+
| 1 | Unit 6 — Custom auth | Implementers rebuild login and session flows the existing Devise setup already ships, because no unit says how to migrate off it | feasibility | 100 | gated_auto |
|
|
58
|
+
| 2 | Unit 5 — Webhooks | The public webhook endpoint takes unlimited requests while every other public route in the plan is capped, so a flood reaches the app unthrottled | security-lens | 100 | gated_auto |
|
|
59
|
+
|
|
60
|
+
### P0 — Must Fix
|
|
61
|
+
|
|
62
|
+
#### Errors
|
|
63
|
+
|
|
64
|
+
| # | Section | Issue | Reviewer | Confidence | Tier |
|
|
65
|
+
|---|---------|-------|----------|------------|------|
|
|
66
|
+
| 3 | Requirements Trace | Goal states "offline support" but technical approach assumes persistent connectivity | coherence | 100 | manual |
|
|
67
|
+
|
|
68
|
+
### P1 — Should Fix
|
|
69
|
+
|
|
70
|
+
#### Errors
|
|
71
|
+
|
|
72
|
+
| # | Section | Issue | Reviewer | Confidence | Tier |
|
|
73
|
+
|---|---------|-------|----------|------------|------|
|
|
74
|
+
| 4 | Scope Boundaries | 8 of 12 units build admin infrastructure; only 2 touch stated goal | scope-guardian | 75 | manual |
|
|
75
|
+
|
|
76
|
+
### FYI Observations
|
|
77
|
+
|
|
78
|
+
| # | Section | Observation | Reviewer | Confidence |
|
|
79
|
+
|---|---------|-------------|----------|------------|
|
|
80
|
+
| 1 | Verification | Recorded manual fixture setup takes 15 minutes per run; the existing seed script produces the same fixture in 2 minutes | feasibility | 50 |
|
|
81
|
+
| 2 | Operations | Support records show repeated searches for the same deployment logs; linking the existing log view from the runbook would shorten incident triage | feasibility | 50 |
|
|
82
|
+
|
|
83
|
+
### Residual Concerns
|
|
84
|
+
|
|
85
|
+
| # | Concern | Source |
|
|
86
|
+
|---|---------|--------|
|
|
87
|
+
| 1 | Migration rollback strategy not addressed for Phase 2 data changes | feasibility |
|
|
88
|
+
|
|
89
|
+
### Deferred Questions
|
|
90
|
+
|
|
91
|
+
| # | Question | Source |
|
|
92
|
+
|---|---------|--------|
|
|
93
|
+
| 1 | Which export-recovery retention period can support commit to for customers: 7 or 30 days? | feasibility, security-lens |
|
|
94
|
+
|
|
95
|
+
### Coverage
|
|
96
|
+
|
|
97
|
+
| Persona | Status | Findings | Auto | Proposed | Decisions | FYI | Residual |
|
|
98
|
+
|---------|--------|----------|------|----------|-----------|-----|----------|
|
|
99
|
+
| coherence | completed | 7 | 3 | 2 | 1 | 1 | 0 |
|
|
100
|
+
| feasibility | completed | 3 | 1 | 2 | 0 | 0 | 1 |
|
|
101
|
+
| security-lens | completed | 2 | 1 | 1 | 0 | 0 | 0 |
|
|
102
|
+
| scope-guardian | completed | 2 | 0 | 0 | 1 | 1 | 0 |
|
|
103
|
+
| product-lens | not activated | -- | -- | -- | -- | -- | -- |
|
|
104
|
+
| design-lens | not activated | -- | -- | -- | -- | -- | -- |
|
|
105
|
+
|
|
106
|
+
Dropped: 3 (anchors 0/25 suppressed)
|
|
107
|
+
Restated: 2 (residual/deferred items suppressed as duplicates of actionable findings)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Section Rules
|
|
111
|
+
|
|
112
|
+
- **Summary line**: Always present after the reviewer list. **Count changes made and choices requested separately** — they are different speech acts and collapsing them is what produces a line claiming both "N items need attention" and "no decisions requiring judgment." Format: "Applied N changes. M awaiting one confirmation. K decisions (X errors, Y omissions). Z FYI observations." Omit any zero clause except the FYI clause when zero (it's informative that none came up). Never describe an item as needing attention when nothing is being asked of the reader.
|
|
113
|
+
- **Applied fixes**: List every fix synthesis step 3.7 routed to Apply. Include enough detail per fix to convey the substance — especially for fixes that add content. Omit section if none.
|
|
114
|
+
- **Implementation obligations**: Entailed corrections with a written fix that synthesis step 3.7 routed to grouped confirmation. Applied corrections belong only in Applied fixes — an entailed correction with no `suggested_fix` has no change to state as intent, so it stays a decision and is not rendered here. Grouped under the part of the document each affects (the implementation unit where the document has units, the section that contains the affected text where it does not) and confirmed as a group rather than one at a time. On a document with no units, title the section **Entailed corrections** instead; "Implementation obligations" names something a requirements document does not contain. Each line is a consequence plus its change as intent, per the rendering floor's obligation-block rule — no recommendation, because there is no decision to make. Render the whole group before asking for confirmation; a batch confirmation with nothing visible above it is a rubber stamp. Omit section if none.
|
|
115
|
+
- **Self-contained references**: Every fix line and table cell obeys the shared rendering floor (`references/rendering-floor.md`). The `Issue` cell leads with the consequence (what goes wrong, for whom) and applies the floor's rule to every identifier the reader cannot understand without opening the document, the tracker, or the code: a document ID like `R6` or `U3` keeps the ID and gets a short handle at first mention; a ticket or PR number is named only when that event drives the decision, and otherwise left out; a function, file, or line reference is described by the role it plays. At most two such identifiers per cell. A cell whose only description of a referenced item is a bare identifier of any kind is not acceptable. The floor is the single source; this template does not restate a weaker rule for its own tables.
|
|
116
|
+
- **Proposed fixes**: The grouped confirmation, minus the obligations rendered above it — the two sections together are the batch, and nothing else is. Shape it per the floor's "Presenting a batch" rule (`references/rendering-floor.md`): lead with what the batch does as a whole, head each group with what its members share, and keep every member visible. Severity orders findings *within* a group; it never files them into the P-level sections below. **Nothing from the P0-P3 decision sections below appears here.** The apply-all confirmation covers exactly this section plus the obligations, so a `manual` finding rendered into it becomes a genuine fork swept into a batch answer — the failure the split exists to prevent. Omit section if none.
|
|
117
|
+
- **P0-P3 sections**: Only the decisions the user must still make, meaning findings synthesis step 3.7 routed to a decision, which the reader answers one at a time or routes in bulk. Grouped-confirmation members are rendered above and never repeated here. Omit empty severity levels. Within each severity, separate into **Errors** and **Omissions** sub-headers. Omit a sub-header if that severity has none of that type. The `Tier` column shows the finding's internal class — `manual` here, since a decision is what these sections carry; `gated_auto` or `safe_auto` appear in Proposed fixes above. A `gated_auto` row in a P-level table means routing went wrong; re-run 3.7 for that finding rather than rendering it here.
|
|
118
|
+
- **FYI Observations**: Findings at confidence anchor `50` regardless of `autofix_class`. Listed here for transparency; these are not actionable and do not enter the walk-through. Omit section if none.
|
|
119
|
+
- **Residual Concerns**: Distinct uncertainties retained by synthesis because evidence shows a material consequence. Omit section if none.
|
|
120
|
+
- **Deferred Questions**: Questions for later workflow stages. Omit if none.
|
|
121
|
+
- **Compact rendering for FYI / Residual / Deferred (high-count mode)**: When the combined count across these three sections is **5 or more**, collapse each section to a one-line summary followed by the items as a tight bullet list (no table, no per-item `Why` elaboration). Rationale: these sections are observational, not decision-forcing — when they are lengthy, they bury the actionable tiers above them. A P0/P1/P2 actionable finding stays fully rendered regardless of how many FYI/Residual/Deferred items exist. When the combined count is 4 or fewer, render each section as today.
|
|
122
|
+
- **Coverage**: Always include. All counts are **post-synthesis**. **Findings** must equal Auto + Proposed + Decisions + FYI exactly — if deduplication merged a finding across personas, attribute it to the persona with the highest confidence anchor and reduce the other persona's count. **Residual** = count of retained residual concerns attributed to this persona after synthesis admission and deduplication. The columns follow the routes synthesis step 3.7 assigned: `Auto` counts the findings it routed to Apply, `Proposed` counts the grouped confirmation — **including obligations**, since grouping is a presentation choice and not a separate class, so the Findings-equals-sum invariant is unaffected — `Decisions` counts the decisions the user must still make, and `FYI` counts findings at anchor `50` regardless of `autofix_class`. Findings at anchors `0` or `25` were dropped by synthesis and do not appear in any column. Do NOT invent additional columns (e.g., `Dropped`, `Surviving`). The column schema above is the canonical set.
|
|
123
|
+
- **Coverage footnote lines** (optional, appear below the table when non-zero): `Dropped: N (anchors 0/25 suppressed)` when synthesis 3.2 dropped any findings. `Restated: N (residual/deferred items suppressed as duplicates of actionable findings)` when synthesis 3.9 suppressed any restatements. These footnotes — not the summary line, not per-persona columns — are the canonical location for cross-cutting counts that don't fit the per-persona shape. Order: `Dropped:`, then `Restated:`, each on its own line. Omit any footnote whose count is zero.
|