@xulthekl/team-flow 0.22.4
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/.agents/plugins/marketplace.json +20 -0
- package/.agents/skills +1 -0
- package/.claude/always/phase-guard.md +3 -0
- package/.claude-plugin/marketplace.json +20 -0
- package/.claude-plugin/plugin.json +31 -0
- package/.codex-plugin/plugin.json +45 -0
- package/.codexignore +6 -0
- package/.cursor-plugin/marketplace.json +17 -0
- package/.cursor-plugin/plugin.json +31 -0
- package/.github/copilot-instructions.md +15 -0
- package/.github/dependabot.yml +10 -0
- package/.github/plugin/marketplace.json +42 -0
- package/.github/workflows/ci.yml +98 -0
- package/.github/workflows/hol-plugin-scanner.yml +17 -0
- package/.opencode/INSTALL.md +61 -0
- package/.opencode/plugins/team-flow.js +70 -0
- package/AGENTS.md +280 -0
- package/CHANGELOG.md +635 -0
- package/CONTRIBUTING.md +115 -0
- package/GEMINI.md +14 -0
- package/HANDOFF.md +219 -0
- package/INSTALL.md +810 -0
- package/LICENSE +21 -0
- package/README.md +185 -0
- package/SECURITY.md +37 -0
- package/agents/bug-investigator.md +180 -0
- package/agents/change-split-auditor.md +257 -0
- package/agents/code-reviewer.md +171 -0
- package/agents/cross-change-consistency-checker.md +215 -0
- package/agents/prd-completeness-reviewer.md +197 -0
- package/agents/prototype-builder.md +230 -0
- package/agents/prototype-env-scout.md +156 -0
- package/agents/prototype-reviewer.md +226 -0
- package/assets/icon.svg +6 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +5 -0
- package/dist/parsing/change-parser.d.ts +12 -0
- package/dist/parsing/change-parser.js +54 -0
- package/dist/parsing/requirement-blocks.d.ts +31 -0
- package/dist/parsing/requirement-blocks.js +192 -0
- package/dist/schema/base.d.ts +7 -0
- package/dist/schema/base.js +1 -0
- package/dist/schema/change.d.ts +25 -0
- package/dist/schema/change.js +1 -0
- package/dist/schema/index.d.ts +3 -0
- package/dist/schema/index.js +1 -0
- package/dist/schema/spec.d.ts +11 -0
- package/dist/schema/spec.js +1 -0
- package/dist/validation/constants.d.ts +42 -0
- package/dist/validation/constants.js +42 -0
- package/dist/validation/tokenizer.d.ts +17 -0
- package/dist/validation/tokenizer.js +173 -0
- package/dist/validation/types.d.ts +40 -0
- package/dist/validation/types.js +1 -0
- package/dist/validation/validator.d.ts +21 -0
- package/dist/validation/validator.js +489 -0
- package/docs/README_en.md +358 -0
- package/docs/artifact-contract.md +96 -0
- package/docs/decision-points.md +88 -0
- package/docs/e2e-integration-design.md +207 -0
- package/docs/examples/README.md +25 -0
- package/docs/examples/add-dark-mode/README.md +13 -0
- package/docs/examples/add-dark-mode/design.md +49 -0
- package/docs/examples/add-dark-mode/execution-contract.md +56 -0
- package/docs/examples/add-dark-mode/proposal.md +46 -0
- package/docs/examples/add-dark-mode/specs/ui-theme/spec.md +35 -0
- package/docs/examples/add-dark-mode/tasks.md +26 -0
- package/docs/examples/refactor-auth-boundary/README.md +15 -0
- package/docs/examples/refactor-auth-boundary/design.md +41 -0
- package/docs/examples/refactor-auth-boundary/execution-contract.md +61 -0
- package/docs/examples/refactor-auth-boundary/proposal.md +47 -0
- package/docs/examples/refactor-auth-boundary/specs/auth-boundary/spec.md +45 -0
- package/docs/examples/refactor-auth-boundary/tasks.md +25 -0
- package/docs/plans/2026-07-07-fix-batch-design.md +68 -0
- package/docs/plans/2026-07-20-001-refactor-skill-collaboration-protocol-plan.md +128 -0
- package/docs/platform-matrix.md +45 -0
- package/docs/prototype-design-research.md +206 -0
- package/docs/release-checklist.md +96 -0
- package/docs/showcase.html +699 -0
- package/docs/skill-rename-v0.8.0.md +49 -0
- package/docs/state-machine.md +162 -0
- package/gemini-extension.json +6 -0
- package/hooks/hooks-cursor.json +8 -0
- package/hooks/hooks.json +26 -0
- package/hooks/pre-tool-use-guard +116 -0
- package/hooks/session-start +14 -0
- package/llms.txt +51 -0
- package/package.json +48 -0
- package/plugin.json +27 -0
- package/prd/v1/plan.md +443 -0
- package/prd/v1/prd.md +580 -0
- package/scripts/check-update.mjs +91 -0
- package/scripts/check-version-consistency.mjs +345 -0
- package/scripts/ensure-branch.mjs +71 -0
- package/scripts/get-config +31 -0
- package/scripts/guard/checks/artifacts-exist.mjs +36 -0
- package/scripts/guard/checks/contract-current.mjs +33 -0
- package/scripts/guard/checks/contract-fresh.mjs +17 -0
- package/scripts/guard/checks/dp-gate-passed.mjs +35 -0
- package/scripts/guard/checks/dp3-approved.mjs +22 -0
- package/scripts/guard/checks/execution-plan-ready.mjs +40 -0
- package/scripts/guard/checks/execution-reviews-passed.mjs +36 -0
- package/scripts/guard/checks/schema-valid.mjs +63 -0
- package/scripts/guard/checks/specs-merged.mjs +51 -0
- package/scripts/guard/checks/tasks-complete.mjs +31 -0
- package/scripts/guard/checks/tests-passing.mjs +31 -0
- package/scripts/guard/design-token-guard.mjs +237 -0
- package/scripts/guard/guard.mjs +205 -0
- package/scripts/infer-workflow.mjs +136 -0
- package/scripts/install-amazon-q.mjs +9 -0
- package/scripts/install-cline.mjs +9 -0
- package/scripts/install-continue.mjs +9 -0
- package/scripts/install-cursor.mjs +265 -0
- package/scripts/install-git-hooks.mjs +82 -0
- package/scripts/install-kiro.mjs +9 -0
- package/scripts/install-pi.mjs +9 -0
- package/scripts/install-qoder.mjs +9 -0
- package/scripts/install-qwen.mjs +9 -0
- package/scripts/install-roocode.mjs +9 -0
- package/scripts/install-windsurf.mjs +9 -0
- package/scripts/install-zcode.mjs +265 -0
- package/scripts/lib/cmd-audit.mjs +127 -0
- package/scripts/lib/cmd-checkpoint.mjs +118 -0
- package/scripts/lib/cmd-config.mjs +88 -0
- package/scripts/lib/cmd-doctor.mjs +267 -0
- package/scripts/lib/cmd-execution.mjs +206 -0
- package/scripts/lib/cmd-handoff.mjs +94 -0
- package/scripts/lib/cmd-inject.mjs +310 -0
- package/scripts/lib/cmd-install-amazon-q.mjs +11 -0
- package/scripts/lib/cmd-install-cline.mjs +11 -0
- package/scripts/lib/cmd-install-continue.mjs +11 -0
- package/scripts/lib/cmd-install-cursor.mjs +14 -0
- package/scripts/lib/cmd-install-kiro.mjs +11 -0
- package/scripts/lib/cmd-install-pi.mjs +11 -0
- package/scripts/lib/cmd-install-qoder.mjs +11 -0
- package/scripts/lib/cmd-install-qwen.mjs +11 -0
- package/scripts/lib/cmd-install-roocode.mjs +11 -0
- package/scripts/lib/cmd-install-windsurf.mjs +11 -0
- package/scripts/lib/cmd-install-workbuddy.mjs +359 -0
- package/scripts/lib/cmd-install-zcode.mjs +14 -0
- package/scripts/lib/cmd-isolate.mjs +37 -0
- package/scripts/lib/cmd-list.mjs +71 -0
- package/scripts/lib/cmd-runtime.mjs +85 -0
- package/scripts/lib/cmd-solutions.mjs +71 -0
- package/scripts/lib/cmd-state.mjs +231 -0
- package/scripts/lib/cmd-sync.mjs +102 -0
- package/scripts/lib/cmd-validate.mjs +105 -0
- package/scripts/lib/cmd-version.mjs +148 -0
- package/scripts/lib/config-loader.mjs +107 -0
- package/scripts/lib/execution-plan.mjs +492 -0
- package/scripts/lib/execution-recommendation.mjs +221 -0
- package/scripts/lib/hash.mjs +74 -0
- package/scripts/lib/install.mjs +267 -0
- package/scripts/lib/platform-runtime-inventory.mjs +27 -0
- package/scripts/lib/platforms.mjs +165 -0
- package/scripts/lib/prototype-sync.mjs +192 -0
- package/scripts/lib/sdd-overlay.mjs +262 -0
- package/scripts/lib/shell-quote.mjs +4 -0
- package/scripts/lib/solutions-capture.mjs +102 -0
- package/scripts/lib/solutions-index-gen.mjs +112 -0
- package/scripts/lib/solutions-inject.mjs +77 -0
- package/scripts/lib/solutions-promote.mjs +145 -0
- package/scripts/lib/spec-paths.mjs +85 -0
- package/scripts/lib/state-loader.mjs +154 -0
- package/scripts/lint/lint-skills.mjs +149 -0
- package/scripts/lint/rules/behavior-consistency.mjs +56 -0
- package/scripts/lint/rules/dp-trigger-points.mjs +60 -0
- package/scripts/lint/rules/exception-handling.mjs +59 -0
- package/scripts/lint/rules/no-contradictory-instructions.mjs +67 -0
- package/scripts/lint/rules/no-redundant-checks.mjs +50 -0
- package/scripts/lint/rules/token-rules.mjs +122 -0
- package/scripts/review-package +44 -0
- package/scripts/task-brief +40 -0
- package/scripts/team-flow.mjs +164 -0
- package/scripts/token-baseline.mjs +158 -0
- package/scripts/validate-artifacts +96 -0
- package/scripts/verify-marketplace-release.mjs +59 -0
- package/skills/architecture-design/SKILL.md +140 -0
- package/skills/architecture-design/chapters/ch01-4a-domains.md +27 -0
- package/skills/architecture-design/chapters/ch02-change-cascade.md +27 -0
- package/skills/architecture-design/chapters/ch03-architecture-outputs.md +25 -0
- package/skills/architecture-design/chapters/ch04-entity-to-aggregate.md +27 -0
- package/skills/architecture-design/chapters/ch05-cqrs.md +32 -0
- package/skills/architecture-design/chapters/ch06-integration.md +54 -0
- package/skills/architecture-design/cheatsheet.md +51 -0
- package/skills/architecture-design/glossary.md +23 -0
- package/skills/architecture-design/patterns.md +32 -0
- package/skills/bug-investigator/SKILL.md +77 -0
- package/skills/build-executor/SKILL.md +163 -0
- package/skills/build-executor/implementer-prompt.md +162 -0
- package/skills/build-executor/references/execution-modes.md +86 -0
- package/skills/build-executor/task-reviewer-prompt.md +195 -0
- package/skills/ce-brainstorm/SKILL.md +415 -0
- package/skills/ce-brainstorm/references/agents/slack-researcher.md +127 -0
- package/skills/ce-brainstorm/references/blindspot-pass.md +70 -0
- package/skills/ce-brainstorm/references/brainstorm-sections.md +285 -0
- package/skills/ce-brainstorm/references/handoff.md +168 -0
- package/skills/ce-brainstorm/references/html-rendering.md +634 -0
- package/skills/ce-brainstorm/references/markdown-rendering.md +241 -0
- package/skills/ce-brainstorm/references/model-tiers.md +9 -0
- package/skills/ce-brainstorm/references/prd-mapping.md +71 -0
- package/skills/ce-brainstorm/references/product-pressure-test.md +42 -0
- package/skills/ce-brainstorm/references/reasoning-elevation.md +63 -0
- package/skills/ce-brainstorm/references/settled-decisions.md +45 -0
- package/skills/ce-brainstorm/references/synthesis-summary.md +282 -0
- package/skills/ce-brainstorm/references/universal-brainstorming.md +73 -0
- package/skills/ce-brainstorm/references/verdict-routing.md +26 -0
- package/skills/ce-brainstorm/references/visual-probes.md +158 -0
- package/skills/ce-brainstorm/scripts/visual-probe-server.js +418 -0
- package/skills/ce-compound/SKILL.md +114 -0
- package/skills/ce-compound/assets/resolution-template.md +94 -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 +83 -0
- package/skills/ce-compound/references/concepts-vocabulary.md +78 -0
- package/skills/ce-compound/references/full-mode-workflow.md +413 -0
- package/skills/ce-compound/references/grounding-validation.md +84 -0
- package/skills/ce-compound/references/lightweight-mode.md +53 -0
- package/skills/ce-compound/references/output-standards.md +182 -0
- package/skills/ce-compound/references/promotion-rules.md +38 -0
- package/skills/ce-compound/references/schema.yaml +231 -0
- package/skills/ce-compound/references/three-tier-index.md +55 -0
- package/skills/ce-compound/references/v0.5-upgrade.md +32 -0
- package/skills/ce-compound/references/write-flow.md +36 -0
- package/skills/ce-compound/references/yaml-schema.md +118 -0
- package/skills/ce-compound/scripts/session-history/discover-sessions.sh +130 -0
- package/skills/ce-compound/scripts/session-history/extract-errors.py +254 -0
- package/skills/ce-compound/scripts/session-history/extract-metadata.py +456 -0
- package/skills/ce-compound/scripts/session-history/extract-skeleton.py +575 -0
- package/skills/ce-compound/scripts/validate-doc-claims.py +346 -0
- package/skills/ce-compound/scripts/validate-frontmatter.py +137 -0
- package/skills/ce-ideate/SKILL.md +402 -0
- package/skills/ce-ideate/references/agents/issue-intelligence-analyst.md +200 -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/divergent-ideation.md +89 -0
- package/skills/ce-ideate/references/html-rendering.md +634 -0
- package/skills/ce-ideate/references/ideation-sections.md +191 -0
- package/skills/ce-ideate/references/markdown-rendering.md +238 -0
- package/skills/ce-ideate/references/post-ideation-workflow.md +167 -0
- package/skills/ce-ideate/references/universal-ideation.md +107 -0
- package/skills/ce-ideate/references/web-research-cache.md +56 -0
- package/skills/ce-plan/SKILL.md +137 -0
- package/skills/ce-plan/references/agents/agent-native-planning-strategist.md +62 -0
- package/skills/ce-plan/references/agents/architecture-strategist.md +46 -0
- package/skills/ce-plan/references/agents/best-practices-researcher.md +114 -0
- package/skills/ce-plan/references/agents/data-integrity-guardian.md +68 -0
- package/skills/ce-plan/references/agents/data-migration-reviewer.md +103 -0
- package/skills/ce-plan/references/agents/deployment-verification-agent.md +157 -0
- package/skills/ce-plan/references/agents/framework-docs-researcher.md +93 -0
- package/skills/ce-plan/references/agents/git-history-analyzer.md +40 -0
- package/skills/ce-plan/references/agents/learnings-researcher.md +247 -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 +258 -0
- package/skills/ce-plan/references/agents/security-sentinel.md +91 -0
- package/skills/ce-plan/references/agents/slack-researcher.md +127 -0
- package/skills/ce-plan/references/agents/spec-flow-analyzer.md +80 -0
- package/skills/ce-plan/references/agents/web-researcher.md +121 -0
- package/skills/ce-plan/references/approach-altitude.md +55 -0
- package/skills/ce-plan/references/change-splitting.md +65 -0
- package/skills/ce-plan/references/completion-contract.md +33 -0
- package/skills/ce-plan/references/core-principles.md +40 -0
- package/skills/ce-plan/references/deepening-workflow.md +263 -0
- package/skills/ce-plan/references/dependency-graph.md +36 -0
- package/skills/ce-plan/references/html-rendering.md +634 -0
- package/skills/ce-plan/references/intake-routing.md +189 -0
- package/skills/ce-plan/references/markdown-rendering.md +238 -0
- package/skills/ce-plan/references/plan-handoff.md +150 -0
- package/skills/ce-plan/references/plan-sections.md +427 -0
- package/skills/ce-plan/references/plan-structure.md +120 -0
- package/skills/ce-plan/references/planning-modes.md +69 -0
- package/skills/ce-plan/references/reasoning-elevation.md +63 -0
- package/skills/ce-plan/references/research-workflow.md +165 -0
- package/skills/ce-plan/references/review-and-write.md +127 -0
- package/skills/ce-plan/references/settled-decisions.md +45 -0
- package/skills/ce-plan/references/synthesis-summary.md +418 -0
- package/skills/ce-plan/references/universal-planning.md +168 -0
- package/skills/ce-proof/SKILL.md +346 -0
- package/skills/ce-strategy/SKILL.md +97 -0
- package/skills/ce-strategy/references/interview.md +143 -0
- package/skills/ce-strategy/references/strategy-template.md +89 -0
- package/skills/code-reviewer/SKILL.md +84 -0
- package/skills/code-reviewer/code-reviewer-prompt.md +195 -0
- package/skills/contract-builder/SKILL.md +72 -0
- package/skills/design-system/SKILL.md +75 -0
- package/skills/design-system/references/agents/design-system-architect.md +138 -0
- package/skills/design-system/references/creation-flow.md +170 -0
- package/skills/design-system/references/preview-template.html +319 -0
- package/skills/design-system/references/token-derivation.md +115 -0
- package/skills/design-system/references/variant-schema.md +60 -0
- package/skills/e2e/SKILL.md +56 -0
- package/skills/e2e/references/test-verifier.md +40 -0
- package/skills/need-explorer/SKILL.md +79 -0
- package/skills/prototype/SKILL.md +98 -0
- package/skills/prototype/references/agents/design-system-architect.md +122 -0
- package/skills/prototype/references/checklist.md +82 -0
- package/skills/prototype/references/craft/accessibility-baseline.md +71 -0
- package/skills/prototype/references/craft/anti-ai-slop.md +87 -0
- package/skills/prototype/references/craft/laws-of-ux.md +60 -0
- package/skills/prototype/references/craft/state-coverage.md +81 -0
- package/skills/prototype/references/craft/typography-hierarchy.md +50 -0
- package/skills/prototype/references/layouts.md +223 -0
- package/skills/prototype/references/orchestration-flow.md +101 -0
- package/skills/prototype/references/prototype-scaffold/assets/design-tokens.css +19 -0
- package/skills/prototype/references/prototype-scaffold/components/button.html +3 -0
- package/skills/prototype/references/prototype-scaffold/design-system.md +7 -0
- package/skills/prototype/references/prototype-scaffold/flow.md +11 -0
- package/skills/prototype/references/prototype-scaffold/index.html +20 -0
- package/skills/prototype/references/prototype-scaffold/pages/index.html +11 -0
- package/skills/prototype/references/template.html +396 -0
- package/skills/release-archivist/SKILL.md +166 -0
- package/skills/release-archivist/references/closing-procedures.md +81 -0
- package/skills/session-handoff/SKILL.md +110 -0
- package/skills/session-handoff/references/context-extraction.md +70 -0
- package/skills/session-handoff/references/handoff-template.md +90 -0
- package/skills/session-handoff/references/skill-recommendation.md +43 -0
- package/skills/spec-merger/SKILL.md +66 -0
- package/skills/spec-writer/SKILL.md +149 -0
- package/skills/workflow-bootstrap/SKILL.md +148 -0
- package/skills/workflow-bootstrap/references/agents/codebase-recon-analyst.md +121 -0
- package/skills/workflow-bootstrap/references/b1-reconnaissance.md +80 -0
- package/skills/workflow-bootstrap/scripts/recon-probe.sh +328 -0
- package/skills/workflow-feedback/SKILL.md +120 -0
- package/skills/workflow-feedback/references/category-guide.md +121 -0
- package/skills/workflow-feedback/references/feedback-template.md +73 -0
- package/skills/workflow-feedback/references/review-mode.md +92 -0
- package/skills/workflow-orchestrator/SKILL.md +94 -0
- package/skills/workflow-orchestrator/references/feedback-loops.md +56 -0
- package/skills/workflow-orchestrator/references/s1-path-router.md +81 -0
- package/skills/workflow-orchestrator/references/s2-prd-prototype-loop.md +96 -0
- package/skills/workflow-orchestrator/references/s3-plan-pipeline.md +50 -0
- package/skills/workflow-orchestrator/references/s4-split-validate.md +108 -0
- package/skills/workflow-orchestrator/references/s5-monitoring.md +61 -0
- package/skills/workflow-orchestrator/references/state-model.md +185 -0
- package/skills/workflow-start/SKILL.md +147 -0
- package/skills/workflow-start/references/routing-rules.md +155 -0
- package/src/index.ts +16 -0
- package/src/parsing/change-parser.ts +79 -0
- package/src/parsing/requirement-blocks.ts +244 -0
- package/src/schema/base.ts +8 -0
- package/src/schema/change.ts +29 -0
- package/src/schema/index.ts +3 -0
- package/src/schema/spec.ts +12 -0
- package/src/validation/constants.ts +53 -0
- package/src/validation/tokenizer.ts +180 -0
- package/src/validation/types.ts +47 -0
- package/src/validation/validator.ts +552 -0
- package/templates/abandonment-summary.md +29 -0
- package/templates/design.md +37 -0
- package/templates/execution-contract.md +99 -0
- package/templates/plan.md +86 -0
- package/templates/prd.md +468 -0
- package/templates/proposal.md +37 -0
- package/templates/spec.md +31 -0
- package/templates/tasks.md +47 -0
- package/tests/e2e.test.mjs +266 -0
- package/tests/lib/cmd-audit.test.mjs +202 -0
- package/tests/lib/cmd-checkpoint.test.mjs +98 -0
- package/tests/lib/cmd-config.test.mjs +101 -0
- package/tests/lib/cmd-doctor.test.mjs +450 -0
- package/tests/lib/cmd-execution.test.mjs +647 -0
- package/tests/lib/cmd-handoff.test.mjs +137 -0
- package/tests/lib/cmd-inject.test.mjs +218 -0
- package/tests/lib/cmd-install-workbuddy.test.mjs +113 -0
- package/tests/lib/cmd-install-zcode.test.mjs +42 -0
- package/tests/lib/cmd-isolate.test.mjs +68 -0
- package/tests/lib/cmd-list.test.mjs +127 -0
- package/tests/lib/cmd-runtime.test.mjs +83 -0
- package/tests/lib/cmd-state-missing.test.mjs +65 -0
- package/tests/lib/cmd-state.test.mjs +365 -0
- package/tests/lib/cmd-sync-paths.test.mjs +84 -0
- package/tests/lib/cmd-validate-paths.test.mjs +90 -0
- package/tests/lib/config-loader.test.mjs +175 -0
- package/tests/lib/ensure-branch.test.mjs +59 -0
- package/tests/lib/execution-control-plane.test.mjs +168 -0
- package/tests/lib/execution-plan.test.mjs +474 -0
- package/tests/lib/guard-specs-merged.test.mjs +108 -0
- package/tests/lib/guard-tests-passing.test.mjs +112 -0
- package/tests/lib/guard-transitions.test.mjs +262 -0
- package/tests/lib/guard.test.mjs +611 -0
- package/tests/lib/hash.test.mjs +138 -0
- package/tests/lib/infer-workflow.test.mjs +161 -0
- package/tests/lib/install-git-hooks.test.mjs +20 -0
- package/tests/lib/marketplace-release-docs.test.mjs +31 -0
- package/tests/lib/minimality-discipline.test.mjs +37 -0
- package/tests/lib/model-profiles-docs.test.mjs +33 -0
- package/tests/lib/node20-compatibility.test.mjs +73 -0
- package/tests/lib/node20-test-entry.test.mjs +17 -0
- package/tests/lib/platform-runtime-distribution.test.mjs +150 -0
- package/tests/lib/raw-mode-smoke.test.mjs +42 -0
- package/tests/lib/sdd-overlay.test.mjs +118 -0
- package/tests/lib/spec-paths.test.mjs +80 -0
- package/tests/lib/state-loader.test.mjs +251 -0
- package/tests/lib/token-baseline.test.mjs +72 -0
- package/tests/lib/token-rules.test.mjs +94 -0
- package/tests/lib/verify-marketplace-release.test.mjs +128 -0
- package/tests/tsconfig.json +12 -0
- package/token-baseline.json +95 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Ideation Sections
|
|
2
|
+
|
|
3
|
+
This is the section contract for the ce-ideate artifact — it describes
|
|
4
|
+
*what* a persisted ideation document contains, independent of output
|
|
5
|
+
format. It is paired with a format-rendering reference
|
|
6
|
+
(`references/markdown-rendering.md` or `references/html-rendering.md`)
|
|
7
|
+
that describes *how* the resolved format presents these sections. The
|
|
8
|
+
same content renders in either format; only presentation differs.
|
|
9
|
+
|
|
10
|
+
Load this file at save time alongside the rendering reference matching
|
|
11
|
+
`OUTPUT_FORMAT` (see `references/post-ideation-workflow.md` §4.1).
|
|
12
|
+
|
|
13
|
+
## What the artifact contains
|
|
14
|
+
|
|
15
|
+
An ideation artifact is a ranked, critiqued candidate set, the grounding
|
|
16
|
+
the candidates were qualified against, and a record of what was cut. It
|
|
17
|
+
is a human-facing discovery document, not a requirements doc or plan —
|
|
18
|
+
keep it about the ideas and their basis, not implementation.
|
|
19
|
+
|
|
20
|
+
### Metadata
|
|
21
|
+
|
|
22
|
+
- **date** — composition date (YYYY-MM-DD).
|
|
23
|
+
- **topic** — kebab-case topic slug.
|
|
24
|
+
- **focus** — the focus hint, when one was given. Omit when open-ended.
|
|
25
|
+
- **mode** — `repo-grounded`, `elsewhere-software`, or
|
|
26
|
+
`elsewhere-non-software`.
|
|
27
|
+
|
|
28
|
+
Markdown renders metadata as YAML frontmatter at the top of the file.
|
|
29
|
+
HTML renders it as visible header text (per the html-rendering hard
|
|
30
|
+
invariant: one visible source of truth per value, no hidden
|
|
31
|
+
machine-readable copy).
|
|
32
|
+
|
|
33
|
+
**No status field — not on the doc, not per idea.** An ideation doc is a
|
|
34
|
+
point-in-time discovery artifact, not a tracked work item: it carries no
|
|
35
|
+
`active → completed` lifecycle and no per-idea "explored" marker.
|
|
36
|
+
Tracking mutable workflow progress inside the artifact would create a
|
|
37
|
+
second source of truth that drifts — whether an idea was later pursued is
|
|
38
|
+
knowable from downstream artifacts (a brainstorm or plan that picked it
|
|
39
|
+
up), so it is not duplicated here.
|
|
40
|
+
|
|
41
|
+
### Grounding Context
|
|
42
|
+
|
|
43
|
+
The Phase 1 grounding summary the ideas were qualified against — labeled
|
|
44
|
+
"Codebase Context" in repo mode, "Topic Context" in elsewhere mode.
|
|
45
|
+
|
|
46
|
+
### Topic Axes (conditional)
|
|
47
|
+
|
|
48
|
+
The 3-5 axes from Phase 1.5, one per line. When Phase 1.5 was skipped, a
|
|
49
|
+
single line records why (`Decomposition skipped — atomic subject` or
|
|
50
|
+
`Decomposition skipped — surprise-me mode`). Omit the section entirely
|
|
51
|
+
when not applicable.
|
|
52
|
+
|
|
53
|
+
### Ranked Ideas
|
|
54
|
+
|
|
55
|
+
The surviving candidates, ranked. Each idea carries:
|
|
56
|
+
|
|
57
|
+
- **title**
|
|
58
|
+
- **description** — concrete explanation.
|
|
59
|
+
- **axis** — the topic axis this idea targets. Omit when decomposition
|
|
60
|
+
was skipped.
|
|
61
|
+
- **basis** — tagged `direct:` (quoted evidence) / `external:` (named
|
|
62
|
+
prior art) / `reasoned:` (written-out first-principles argument).
|
|
63
|
+
- **rationale** — how the basis connects to the move's significance.
|
|
64
|
+
- **downsides** — tradeoffs or costs.
|
|
65
|
+
- **confidence** — 0-100%.
|
|
66
|
+
- **complexity** — Low / Medium / High.
|
|
67
|
+
|
|
68
|
+
**Keep idea cards expanded; add a jump-list when the section is long.**
|
|
69
|
+
Unlike plan Implementation Units, ideation idea cards are meant to be read
|
|
70
|
+
in full to choose a direction — do not hide their substance behind
|
|
71
|
+
default-closed `<details>`. But the Ranked Ideas section is typically 5-7
|
|
72
|
+
cards and runs long in HTML, so add a within-section jump-list of the
|
|
73
|
+
ranked titles (anchor links to each card) at the top of the section, per
|
|
74
|
+
the rendering reference's within-section sub-nav affordance.
|
|
75
|
+
|
|
76
|
+
**Illustrative visuals — decide on the idea's shape, not on how clear the
|
|
77
|
+
prose reads.** A well-placed visual can make a direction land faster for a
|
|
78
|
+
human scanning a set of candidates. Decide per survivor — none, a few, or
|
|
79
|
+
most may warrant one; there is no quota and no cap.
|
|
80
|
+
|
|
81
|
+
Watch one trap when you make this call: the prose always conveys the idea
|
|
82
|
+
(that is the hard rule below), and as a text-native reasoner you will tend
|
|
83
|
+
to read your own prose, judge it "clear," and conclude no visual is needed
|
|
84
|
+
— which quietly under-produces the visuals that actually help a reader. So
|
|
85
|
+
"the prose is already clear" is never the reason to skip. The real
|
|
86
|
+
question is what the idea *hinges on*, and whether that has a shape a
|
|
87
|
+
picture carries faster than a sentence.
|
|
88
|
+
|
|
89
|
+
**Concrete-vs-abstract is the wrong axis.** Don't reach for a visual
|
|
90
|
+
because an idea feels big or conceptual, and don't skip one because it
|
|
91
|
+
feels small or concrete. A new-feature *concept* is often the best
|
|
92
|
+
candidate — the reader has to picture an unfamiliar arrangement — while
|
|
93
|
+
many concrete changes (an error fix, a drop-in dependency swap) have
|
|
94
|
+
nothing structural to draw. Ask what the idea hinges on, not how abstract
|
|
95
|
+
it is.
|
|
96
|
+
|
|
97
|
+
- **Hinges on a structure → lean toward a visual.** A relationship
|
|
98
|
+
between parts, a flow or sequence, a before/after contrast, a
|
|
99
|
+
structural arrangement, an analogy mapping (especially cross-domain
|
|
100
|
+
ideas), a quantitative comparison. A picture lands these faster than a
|
|
101
|
+
sentence even when the prose is perfectly clear — and it should show
|
|
102
|
+
the *basis* or the *why-it-matters*, not restate the title. New-feature
|
|
103
|
+
concepts frequently live here.
|
|
104
|
+
- **A single point with nothing structural to show → no visual.** A
|
|
105
|
+
renamed thing, a copy change, "handle the null case," a drop-in library
|
|
106
|
+
swap — there is no shape a diagram would add; one here is decoration.
|
|
107
|
+
Size and abstraction don't decide this: a sweeping concept can still be
|
|
108
|
+
one proposition ("ship dark mode"), and a small concrete fix can still
|
|
109
|
+
re-route how two parts talk (real shape, worth drawing).
|
|
110
|
+
|
|
111
|
+
Decoration — a visual with no shape to show, or one that just restates the
|
|
112
|
+
title — is the failure mode, and it is slop whether it appears once or
|
|
113
|
+
five times. A visual that genuinely shows the idea's shape is never slop,
|
|
114
|
+
however many ideas warrant one.
|
|
115
|
+
|
|
116
|
+
Two constraints on any visual you do add:
|
|
117
|
+
|
|
118
|
+
- **Stay at the idea's altitude — illustrative, not a spec.** This is the
|
|
119
|
+
*opposite* of a plan or requirements diagram. The shared rendering
|
|
120
|
+
reference treats plan diagrams as authoritative content and forbids
|
|
121
|
+
"directional sketch" framing; ideation visuals are the reverse —
|
|
122
|
+
deliberately directional overviews of a direction nobody has committed
|
|
123
|
+
to yet. Keep them conceptual (contrast, analogy, rough flow). Detailed
|
|
124
|
+
architecture, sequence diagrams, and wireframes belong downstream in
|
|
125
|
+
ce-brainstorm / ce-plan once a direction is chosen, not here.
|
|
126
|
+
- **Keep the prose standing alone.** A reader who ignores the visual
|
|
127
|
+
still gets the complete idea and its basis. The visual accelerates
|
|
128
|
+
understanding; it never carries content found nowhere else.
|
|
129
|
+
|
|
130
|
+
Rendering mechanics (inline SVG in HTML with the layout-legibility and
|
|
131
|
+
halo rules; a fenced mermaid block in markdown when the shape suits it)
|
|
132
|
+
follow the rendering reference's Diagrams section — but that section's
|
|
133
|
+
plan-centric, authoritative-diagram framing is overridden here by the
|
|
134
|
+
illustrative, decide-per-idea stance above.
|
|
135
|
+
|
|
136
|
+
### Rejection Summary
|
|
137
|
+
|
|
138
|
+
A table of considered-and-cut ideas with a one-line reason each. When an
|
|
139
|
+
axis ended with zero survivors despite recovery, record it as its own
|
|
140
|
+
row so the coverage gap is visible rather than silently absent.
|
|
141
|
+
|
|
142
|
+
## Markdown skeleton
|
|
143
|
+
|
|
144
|
+
The section shape both formats carry. In markdown it is written
|
|
145
|
+
literally (omit clearly irrelevant fields only when necessary); in HTML
|
|
146
|
+
the same sections render per `html-rendering.md`.
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
---
|
|
150
|
+
date: YYYY-MM-DD
|
|
151
|
+
topic: <kebab-case-topic>
|
|
152
|
+
focus: <optional focus hint>
|
|
153
|
+
mode: <repo-grounded | elsewhere-software | elsewhere-non-software>
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
# Ideation: <Title>
|
|
157
|
+
|
|
158
|
+
## Grounding Context
|
|
159
|
+
[Grounding summary from Phase 1 — "Codebase Context" in repo mode, "Topic Context" in elsewhere mode]
|
|
160
|
+
|
|
161
|
+
## Topic Axes
|
|
162
|
+
[3-5 axes from Phase 1.5, one per line, OR a single `Decomposition skipped — ...` line. Omit the section if not applicable.]
|
|
163
|
+
|
|
164
|
+
## Ranked Ideas
|
|
165
|
+
|
|
166
|
+
### 1. <Idea Title>
|
|
167
|
+
**Description:** [Concrete explanation]
|
|
168
|
+
**Axis:** [Topic axis this idea targets — omit when decomposition was skipped]
|
|
169
|
+
**Basis:** [`direct:` / `external:` / `reasoned:` — quoted, cited, or written-out argument]
|
|
170
|
+
**Rationale:** [How the basis connects to the move's significance]
|
|
171
|
+
**Downsides:** [Tradeoffs or costs]
|
|
172
|
+
**Confidence:** [0-100%]
|
|
173
|
+
**Complexity:** [Low / Medium / High]
|
|
174
|
+
|
|
175
|
+
## Rejection Summary
|
|
176
|
+
|
|
177
|
+
| # | Idea | Reason Rejected |
|
|
178
|
+
|---|------|-----------------|
|
|
179
|
+
| 1 | <Idea> | <Reason rejected> |
|
|
180
|
+
|
|
181
|
+
[When applicable, append axis-coverage gaps as their own rows so the gap is visible:]
|
|
182
|
+
| - | axis: <name> | recovery skipped (cap reached) — no survivors on this axis |
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## No process exhaust
|
|
186
|
+
|
|
187
|
+
Keep engineering-process metadata out of the artifact — no "captured at
|
|
188
|
+
Phase X" notes, no skill-pointer "next steps", no italic provenance
|
|
189
|
+
lines. The reader wants the ideas and their basis. (HTML carries a
|
|
190
|
+
single visible composition-signal footer per the html-rendering
|
|
191
|
+
invariant; that is the one provenance element that belongs in the doc.)
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# Markdown Rendering
|
|
2
|
+
|
|
3
|
+
This is a format-rendering reference — it describes how to render any
|
|
4
|
+
artifact in markdown, independent of which skill is producing it.
|
|
5
|
+
|
|
6
|
+
It is paired with a section contract (`plan-sections.md`,
|
|
7
|
+
`brainstorm-sections.md`, etc.) that describes *what* the artifact contains.
|
|
8
|
+
This reference describes *how* markdown specifically presents it. The same
|
|
9
|
+
content rendered by different skills shares the same markdown principles.
|
|
10
|
+
|
|
11
|
+
## Hard invariants
|
|
12
|
+
|
|
13
|
+
These hold regardless of which skill produced the artifact.
|
|
14
|
+
|
|
15
|
+
- **YAML frontmatter at the top of the file.** Standard `---` delimited block
|
|
16
|
+
containing the artifact's stable metadata (title, date, type, etc.
|
|
17
|
+
— exact fields are per-skill, defined in the section contract).
|
|
18
|
+
- **ASCII identifiers in anchors.** Markdown headings auto-generate anchors
|
|
19
|
+
from the heading text. Keep headings ASCII so anchors are predictable
|
|
20
|
+
(`#implementation-units`, not `#implementación-units`).
|
|
21
|
+
- **Repo-relative paths for file references.** Always. Never absolute paths
|
|
22
|
+
— they break portability across machines, worktrees, teammates.
|
|
23
|
+
- **No HTML mixed in.** Keep the markdown pure. No `<div>`, no `<details>`,
|
|
24
|
+
no inline `<style>`. If a layout idea only works as HTML, defer it to the
|
|
25
|
+
HTML rendering. Markdown stays markdown.
|
|
26
|
+
- **No fixed-width line wrapping.** Do not hard-wrap prose to a column (e.g.
|
|
27
|
+
80 chars). Write one sentence per line, or let each paragraph flow as a
|
|
28
|
+
single line. The artifact is read rendered and shared, where fixed wraps add
|
|
29
|
+
nothing and only produce noisy mid-sentence diffs; markdown joins soft line
|
|
30
|
+
breaks within a paragraph, so wrapping never changes the rendered output.
|
|
31
|
+
- **Unified plan sections use stable headings.** For unified plan artifacts,
|
|
32
|
+
render the required sections with exact ASCII headings so agents can find
|
|
33
|
+
them by heading scan: `## Goal Capsule`, `## Product Contract`,
|
|
34
|
+
`## Planning Contract`, `## Implementation Units`, `## Verification Contract`,
|
|
35
|
+
`## Definition of Done`, and optional `## Appendix`. Requirements-only
|
|
36
|
+
artifacts omit the plan-only sections rather than emitting empty placeholders.
|
|
37
|
+
These stable headings are the wayfinding contract: consumers scan them
|
|
38
|
+
(markdown headings, or `<h1>`–`<h3>` / anchor ids in HTML) instead of reading
|
|
39
|
+
the whole document.
|
|
40
|
+
- **Goal Capsule is top-loaded.** It appears before Product Contract and long
|
|
41
|
+
appendices for fast orientation — not a hidden machine copy.
|
|
42
|
+
|
|
43
|
+
## Format principles
|
|
44
|
+
|
|
45
|
+
These shape what "good" markdown looks like; the agent applies them per
|
|
46
|
+
artifact based on content shape.
|
|
47
|
+
|
|
48
|
+
### ID prefix format
|
|
49
|
+
|
|
50
|
+
Stable IDs (R, U, A, F, AE, KTD) appear as plain prefixes at the start of
|
|
51
|
+
the bullet or heading — do NOT bold the prefix. The prefix is visually
|
|
52
|
+
distinctive on its own; bolding it inflates visual noise.
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
- R1. The plan returns paginated sessions. ← right
|
|
56
|
+
- **R1.** The plan returns paginated sessions. ← wrong (bolded prefix)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Same applies to unit headings: `### U1. Cloak detection in preflight contract`.
|
|
60
|
+
|
|
61
|
+
### Content shape: prose vs bullets vs tables
|
|
62
|
+
|
|
63
|
+
The same content can be rendered three ways; the agent picks per content
|
|
64
|
+
shape, not by template default.
|
|
65
|
+
|
|
66
|
+
- **Prose** when the content has narrative flow (motivation, decision
|
|
67
|
+
rationale, problem framing). Bullets fragment narrative into
|
|
68
|
+
disconnected pieces.
|
|
69
|
+
- **Bullets** when items share a parallel shape but each carries enough
|
|
70
|
+
prose to not fit a table cell.
|
|
71
|
+
- **Tables** when 5+ items share uniform structure (`ID + body`,
|
|
72
|
+
`name + value`, `decision + rationale`, `risk + mitigation`). Tables
|
|
73
|
+
scan faster at that scale and unlock additional columns (status,
|
|
74
|
+
traceability, severity) that bullets can't accommodate cleanly.
|
|
75
|
+
|
|
76
|
+
The test: which shape would a reader scan fastest for this content? If
|
|
77
|
+
items have parallel structure and 5+ instances, table. If items are 3-5
|
|
78
|
+
and each has a few lines of prose, bullets. If the content is a single
|
|
79
|
+
narrative thought, prose.
|
|
80
|
+
|
|
81
|
+
### Bold leader labels within bullets
|
|
82
|
+
|
|
83
|
+
When a bullet has substructure that benefits from named fields (Key Flows
|
|
84
|
+
with Trigger / Actors / Steps / Outcome, Acceptance Examples with Covers
|
|
85
|
+
/ Given / When / Then), use bold leader labels at the start of nested
|
|
86
|
+
bullets — not deeper heading levels.
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
- F1. Anonymous capture
|
|
90
|
+
- **Trigger:** Agent enters Step 2a with no session.
|
|
91
|
+
- **Actors:** A1, A2
|
|
92
|
+
- **Steps:** Preflight detects cloak; agent launches; capture proceeds.
|
|
93
|
+
- **Covered by:** R1, R2, R5
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
This gives the bullet structure without needing H4/H5 headings that would
|
|
97
|
+
clutter the doc and break TOC generation.
|
|
98
|
+
|
|
99
|
+
### Section separators
|
|
100
|
+
|
|
101
|
+
For substantial artifacts, use horizontal rules (`---`) between top-level
|
|
102
|
+
H2 sections. Omit for short docs where separators would dominate.
|
|
103
|
+
|
|
104
|
+
### Tables for genuinely comparative info only
|
|
105
|
+
|
|
106
|
+
Use tables for the uniform-shape case in "Content shape" above. Don't use
|
|
107
|
+
tables to render content lists that are really bullets — markdown tables
|
|
108
|
+
are noisier in raw form and worse for diffs.
|
|
109
|
+
|
|
110
|
+
## Section anatomy
|
|
111
|
+
|
|
112
|
+
How section types commonly render in markdown. These are patterns, not
|
|
113
|
+
contracts — the agent picks the shape that fits the content.
|
|
114
|
+
|
|
115
|
+
- **Goal Capsule** — bullets or a small table for objective, authority,
|
|
116
|
+
execution profile, stop conditions, and tail ownership.
|
|
117
|
+
- **Product Contract** — H2 section containing Summary, Problem Frame,
|
|
118
|
+
Requirements, and product-scope subsections. Put Requirements under
|
|
119
|
+
`### Requirements` so review tools can distinguish Product Requirements
|
|
120
|
+
from implementation detail.
|
|
121
|
+
- **Planning Contract** — H2 section for KTDs, high-level technical design,
|
|
122
|
+
assumptions, and sequencing.
|
|
123
|
+
- **Summary / Problem Frame** — prose paragraphs.
|
|
124
|
+
- **Requirements** — bullets with `R<N>.` prefix. When requirements span
|
|
125
|
+
more than one concern, grouping under bold inline headers is the default
|
|
126
|
+
shape, not optional polish (group by capability, not by discussion order);
|
|
127
|
+
render a flat list only when every requirement is about the same thing.
|
|
128
|
+
When requirements have status, traceability, or severity that warrant
|
|
129
|
+
additional columns, escalate to a table.
|
|
130
|
+
- **Implementation Units** — H3 heading per unit with `U<N>.` prefix.
|
|
131
|
+
Fields (Goal, Files, Patterns, Test Scenarios, Verification) render as
|
|
132
|
+
bullets with bold leader labels, or as sub-headings if the field has
|
|
133
|
+
multi-paragraph content.
|
|
134
|
+
- **Verification Contract / Definition of Done** — use tables when commands,
|
|
135
|
+
applicability, unit IDs, and done signals share a uniform shape. Name
|
|
136
|
+
concrete repo commands such as `bun test` rather than generic "run tests"
|
|
137
|
+
when the repo has known commands.
|
|
138
|
+
- **Key Technical Decisions** — bullets with bold decision name + prose
|
|
139
|
+
rationale, or numbered KTD-N pattern when traceability matters. A
|
|
140
|
+
`session-settled:` annotation renders as part of the KTD bullet's
|
|
141
|
+
visible text, stem preserved verbatim.
|
|
142
|
+
- **Key Flows / Acceptance Examples** — bullets with bold leader labels
|
|
143
|
+
(Trigger / Actors / Steps / Outcome / Covers / Given-When-Then).
|
|
144
|
+
- **Scope Boundaries** — bullets, optionally split into "Deferred for
|
|
145
|
+
later" / "Outside this product's identity" sub-headings when the
|
|
146
|
+
positioning distinction matters.
|
|
147
|
+
|
|
148
|
+
The agent picks more elaborate or simpler shapes based on what each
|
|
149
|
+
specific artifact's content needs.
|
|
150
|
+
|
|
151
|
+
## Diagrams
|
|
152
|
+
|
|
153
|
+
When the section contract calls for a diagram (architecture, sequence,
|
|
154
|
+
flowchart, state machine, swim lane, data-flow), markdown renders it as
|
|
155
|
+
a fenced mermaid block:
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
` ``mermaid
|
|
159
|
+
flowchart TB
|
|
160
|
+
A[Start] --> B{Decision}
|
|
161
|
+
B -->|yes| C[Action]
|
|
162
|
+
B -->|no| D[Other action]
|
|
163
|
+
` ``
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
(`TB` direction default — keeps diagrams narrow in source view and in
|
|
167
|
+
narrow rendered viewports.)
|
|
168
|
+
|
|
169
|
+
Markdown's diagram affordances are limited compared to HTML. For
|
|
170
|
+
quantitative comparisons (bar charts, scatter plots) markdown has no
|
|
171
|
+
native equivalent — use a table with the data and let prose or caption
|
|
172
|
+
carry the interpretation. The richer visualization happens in the HTML
|
|
173
|
+
rendering.
|
|
174
|
+
|
|
175
|
+
For a **UI/layout shape** that would be a wireframe in HTML, markdown has
|
|
176
|
+
no inline-SVG wireframe affordance. Render the region composition as a
|
|
177
|
+
mermaid layout `flowchart` (or describe it in prose) — never hand-draw a
|
|
178
|
+
box-drawing/ASCII wireframe; it violates the no-box-drawing-characters rule
|
|
179
|
+
and reads poorly. The wireframe proper is an HTML-only affordance.
|
|
180
|
+
|
|
181
|
+
## Inline code and code blocks
|
|
182
|
+
|
|
183
|
+
- **Inline code** for identifiers (variable names, function names,
|
|
184
|
+
flag names, file paths, IDs that aren't section anchors).
|
|
185
|
+
- **Fenced code blocks** with language tag for code, shell commands,
|
|
186
|
+
API request/response samples. Always specify the language for syntax
|
|
187
|
+
highlighting and accessibility.
|
|
188
|
+
|
|
189
|
+
```markdown
|
|
190
|
+
The flag `--cdp-url` accepts a URL.
|
|
191
|
+
|
|
192
|
+
` ``bash
|
|
193
|
+
browser-use --cdp-url http://localhost:9222
|
|
194
|
+
` ``
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## No process exhaust
|
|
198
|
+
|
|
199
|
+
Engineering process metadata stays out of the artifact:
|
|
200
|
+
|
|
201
|
+
- No "captured at Phase X" notes
|
|
202
|
+
- No `## Next Steps` pointing to the next skill
|
|
203
|
+
- No italic provenance lines ("*Brainstorm completed 2026-05-13*")
|
|
204
|
+
- No engineering-flow shepherding ("Now read this file:", "Next, run that
|
|
205
|
+
command:")
|
|
206
|
+
|
|
207
|
+
This information belongs in commit messages, tool output, and agent
|
|
208
|
+
transcripts — not in the artifact a reader returns to weeks later.
|
|
209
|
+
|
|
210
|
+
## Frontmatter shape
|
|
211
|
+
|
|
212
|
+
Per-skill frontmatter fields are defined in each skill's section contract
|
|
213
|
+
(`plan-sections.md` lists plan frontmatter; `brainstorm-sections.md` lists
|
|
214
|
+
brainstorm frontmatter). Common rules:
|
|
215
|
+
|
|
216
|
+
- YAML at the top of the file, delimited by `---` on its own line above
|
|
217
|
+
and below.
|
|
218
|
+
- Field names in lowercase snake_case (`created_at`, `topic`, not
|
|
219
|
+
`CreatedAt`, `Topic`).
|
|
220
|
+
- **No status / lifecycle field.** Artifacts are point-in-time records
|
|
221
|
+
(decision or discovery), not tracked work items. Do not introduce a
|
|
222
|
+
mutable `status` field or an `active → completed` lifecycle — whether
|
|
223
|
+
the work shipped is derived from git, not stored in the doc.
|
|
224
|
+
- Stable across artifact revisions — never rename or repurpose a field.
|
|
225
|
+
|
|
226
|
+
## Post-write audit
|
|
227
|
+
|
|
228
|
+
Before declaring the markdown file written, scan it for these common
|
|
229
|
+
slips:
|
|
230
|
+
|
|
231
|
+
- All stable IDs are plain-prefix format, not bolded.
|
|
232
|
+
- No HTML elements mixed in.
|
|
233
|
+
- All file paths are repo-relative.
|
|
234
|
+
- Horizontal rule separators between H2s (for Standard / Deep artifacts).
|
|
235
|
+
- No process exhaust (Phase X notes, Next Steps pointers, provenance
|
|
236
|
+
lines).
|
|
237
|
+
- Tables only where 5+ uniform-shape items justify them.
|
|
238
|
+
- Frontmatter has all the per-skill required fields with reasonable values.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Post-Ideation Workflow
|
|
2
|
+
|
|
3
|
+
Read this file after Phase 2 ideation agents return and the orchestrator has merged and deduped their outputs into a master candidate list. Do not load before Phase 2 completes.
|
|
4
|
+
|
|
5
|
+
## Phase 3: Adversarial Filtering
|
|
6
|
+
|
|
7
|
+
Review every candidate idea critically. Critique runs in two layers — a fresh-context verifier first, then orchestrator arbitration. Fresh-context verification outperforms self-critique: the orchestrator synthesized some of these candidates itself and carries the full generation history, so it is anchored in ways a verifier that never saw the generation is not.
|
|
8
|
+
|
|
9
|
+
1. **Basis verification (one generation-tier sub-agent — see SKILL.md Model Tiers).** Dispatch a verifier whose payload is only the consolidated grounding summary (including the evidence gists and dossier file paths — it reads dossier files itself as needed) and the merged candidate list — none of the generation history. Prompt it to refute: for each candidate, check that the stated basis actually supports the claimed move, that `direct:` quotes exist where cited (spot-check by reading the file in repo mode), that `external:` prior art is real and relevantly analogous, that `reasoned:` arguments hold, and that the idea genuinely passes the meeting-test. It returns a per-candidate verdict (sound / weak / refuted) with a one-line reason. The verifier did not write the ideas, so its meeting-test judgment supersedes the generators' self-attestation. Under `go deep` (Phase 0.5), dispatch a second, ceiling-tier critic focused on novelty and feasibility with the same fresh-context payload.
|
|
10
|
+
|
|
11
|
+
2. **Orchestrator arbitration.** The orchestrator makes the final cut, weighing verifier verdicts without being bound by them — overrule a verdict when evidence in context contradicts it, and say so in the rejection reason.
|
|
12
|
+
|
|
13
|
+
If verifier dispatch fails (platform limits, errors), fall back to orchestrator-only filtering and note the degradation in the rejection summary.
|
|
14
|
+
|
|
15
|
+
Do not generate replacement ideas in this phase unless explicitly refining.
|
|
16
|
+
|
|
17
|
+
For each rejected idea, write a one-line reason.
|
|
18
|
+
|
|
19
|
+
Rejection criteria:
|
|
20
|
+
- too vague
|
|
21
|
+
- not actionable
|
|
22
|
+
- duplicates a stronger idea
|
|
23
|
+
- not grounded in the stated context
|
|
24
|
+
- too expensive relative to likely value
|
|
25
|
+
- already covered by existing workflows or docs
|
|
26
|
+
- interesting but better handled as a brainstorm variant, not a product improvement
|
|
27
|
+
- **unjustified — no articulated basis** (sub-agent failed to provide `direct:`, `external:`, or `reasoned:` justification, or the stated basis does not actually support the claimed move)
|
|
28
|
+
- **basis refuted by verification** (the verifier found a cited quote absent, prior art mischaracterized, or a reasoned argument unsound — and the orchestrator concurs)
|
|
29
|
+
- **below ambition floor** (fails the meeting-test: would not warrant team discussion — except when Phase 0.5 detected tactical focus signals, in which case this criterion is waived)
|
|
30
|
+
- **subject-replacement** (abandons or replaces the subject of ideation rather than operating on it — e.g., "pivot to an unrelated domain," "become a different organization")
|
|
31
|
+
- **scope overrun** (expands beyond the asked scope rather than ideating within it — e.g., proposes changes to the whole product when the user asked about one flow, stage, or section). Allowed only when the basis explicitly justifies the expansion; default is reject or downgrade.
|
|
32
|
+
|
|
33
|
+
Score survivors using a consistent rubric weighing: groundedness in stated context, **basis strength** (`direct:` > `external:` > `reasoned:`; none excluded, but direct-evidence ideas score higher all else equal), expected value, novelty, pragmatism, leverage on future work, implementation burden, overlap with stronger ideas, and **axis spread** (when Phase 1.5 produced an axis list) — survivor sets that cover the topic's surface outscore sets that cluster on one axis, all else equal.
|
|
34
|
+
|
|
35
|
+
**Axis coverage as a list-level concern.** When axes were defined, axis spread is evaluated across the survivor set, not per-idea. After per-idea filtering, check the survivor set: if axis coverage is uneven and stronger candidates exist on under-represented axes, prefer the spread when promoting borderline candidates. Phase 2's recovery dispatch should already have surfaced candidates for empty axes; this is a polish step on the survivor selection. If an axis ends up with zero survivors despite recovery (or because recovery hit the 2-axis cap), note it in the rejection summary as a deliberate gap rather than an oversight.
|
|
36
|
+
|
|
37
|
+
Target output:
|
|
38
|
+
- keep 5-7 survivors by default
|
|
39
|
+
- if too many survive, run a second stricter pass
|
|
40
|
+
- if fewer than 5 survive, report that honestly rather than lowering the bar
|
|
41
|
+
|
|
42
|
+
## Phase 4: Write and Present the Deliverable
|
|
43
|
+
|
|
44
|
+
The ideation artifact is produced **automatically** — persistence is not opt-in. After filtering, write the deliverable, show a concise summary, and open it. The full content lives in the file; the session shows only an orienting summary, so the rich format is what the reader actually engages with.
|
|
45
|
+
|
|
46
|
+
**Checkpoint B (V17).** Before writing the deliverable, write `<scratch-dir>/survivors.md` (absolute path from Phase 1) containing the survivor list plus key context (focus hint, grounding summary, rejection summary). Best-effort: if the write fails, log a warning and proceed; the checkpoint is not load-bearing. Reuses the same `<run-id>` / `<scratch-dir>` generated in Phase 1.
|
|
47
|
+
|
|
48
|
+
### 4.1 Write the Deliverable (automatic, both modes)
|
|
49
|
+
|
|
50
|
+
`OUTPUT_FORMAT` (resolved in SKILL.md Phase 0.0; default `html`) sets the extension. Write the file every run — do not wait for the user to ask.
|
|
51
|
+
|
|
52
|
+
1. **Resolve the target directory and extension.**
|
|
53
|
+
- Extension follows `OUTPUT_FORMAT` (`.html` default, `.md` on override).
|
|
54
|
+
- **Repo mode:** ensure `docs/ideation/` exists (create if absent).
|
|
55
|
+
- **Elsewhere mode with `docs/ideation/` already present:** use it.
|
|
56
|
+
- **Otherwise (no repo, or elsewhere with no `docs/ideation/`):** write into the run's CE temp area — the `<scratch-dir>` resolved in Phase 1 (`<scratch-root>/ce-ideate/<run-id>/`). Do **not** write into the user's current working directory, and do **not** create a `docs/ideation/` tree for a subject unrelated to the repo. Announce the absolute path and note it is temporary (`/tmp` is cleared on reboot — move it to keep it).
|
|
57
|
+
2. **Choose the file path:** `<dir>/YYYY-MM-DD-<topic>-ideation.<ext>` (or `<dir>/YYYY-MM-DD-open-ideation.<ext>` when no focus exists).
|
|
58
|
+
3. **Load the section contract and rendering reference** (deferred from Phase 0.0): read `references/ideation-sections.md` and the format-rendering reference matching `OUTPUT_FORMAT` — `references/markdown-rendering.md` for `md`, `references/html-rendering.md` for `html`.
|
|
59
|
+
4. **Write the document** per those references. `ideation-sections.md` defines the section contract (metadata, Grounding Context, Topic Axes, Ranked Ideas with per-idea fields, Rejection Summary); the rendering reference defines how the resolved format presents it. Content is identical across formats; only presentation differs.
|
|
60
|
+
- **On write failure** (no writable path, permissions): announce the failure and offer a custom path (validate writable; create parent dirs). Never lose the survivors silently.
|
|
61
|
+
|
|
62
|
+
**Resume:** update the existing file in place, in its existing format (per SKILL.md Phase 0.1 format precedence); carry the prior ideas and rejection summary forward, adding to them rather than overwriting.
|
|
63
|
+
|
|
64
|
+
### 4.2 Present a Concise Summary (not the full deliverable)
|
|
65
|
+
|
|
66
|
+
The full cards, rationale, downsides, diagrams, and the rejection table live in the file. Do **not** reproduce them in the session — reprinting the whole deliverable as chat text defeats the rich format and leads the reader through plain text before they ever see it. Show a tight orientation instead:
|
|
67
|
+
|
|
68
|
+
- One line with counts and the path: e.g. `Wrote 7 ranked ideas (36 raw, 13 cut) across 5 axes → <absolute path>`.
|
|
69
|
+
- A ranked list, **one line per survivor**: `1. <Title> · <axis> · Conf <High/Med/Low> · Cx <S/M/L>`.
|
|
70
|
+
- The top pick called out in a sentence.
|
|
71
|
+
- Any axis with zero survivors noted in one line (the deliberate gap).
|
|
72
|
+
|
|
73
|
+
This ranked list doubles as the index the user references when choosing an idea in Phase 5. Terminal-only readers still get a usable view; depth is one open away.
|
|
74
|
+
|
|
75
|
+
### 4.3 Open It
|
|
76
|
+
|
|
77
|
+
- **HTML:** in an interactive session, best-effort open the file in the browser via the platform's open primitive (`open` on macOS, `xdg-open` on Linux, `start` on Windows); always print the absolute path so it can be reopened or shared. Skip auto-open in headless / pipeline runs (no interactive surface).
|
|
78
|
+
- **Markdown:** print the path. Proof (the markdown share surface) is reached through the Phase 5 menu — it is a network action, not auto-invoked.
|
|
79
|
+
|
|
80
|
+
## Phase 5: Next Steps
|
|
81
|
+
|
|
82
|
+
Ask what to do next using the platform's blocking question tool: `AskUserQuestion` in Claude Code (call `ToolSearch` with `select:AskUserQuestion` first if its schema isn't loaded), `request_user_input` in Codex, `ask_question` in Antigravity CLI (`agy`), `ask_user` in Pi (requires the `pi-ask-user` extension). Fall back to numbered options in chat only when no blocking tool exists in the harness or the call errors (e.g., Codex edit modes) — not because a schema load is required. Never silently skip the question. Free-text answers are accepted.
|
|
83
|
+
|
|
84
|
+
The deliverable already exists (Phase 4), so the menu is purely *what next* — there is no "save" step.
|
|
85
|
+
|
|
86
|
+
**Stem:** "Your ideation is saved to `<path>`. What next?"
|
|
87
|
+
|
|
88
|
+
Offer four options (self-contained labels with the distinguishing word front-loaded so they stay distinct when truncated). Option 1 is **format-keyed** — render exactly one of its two labels per run, matching `OUTPUT_FORMAT`:
|
|
89
|
+
|
|
90
|
+
1. *(when `OUTPUT_FORMAT=html`)* **Open in browser** — open the saved HTML deliverable (re-open if it was already opened).
|
|
91
|
+
*(when `OUTPUT_FORMAT=md`)* **Publish to Proof** — publish the saved markdown to Proof and get a shareable link; one-way, the local file stays canonical.
|
|
92
|
+
2. **Brainstorm one idea with `ce-brainstorm`** — commit a chosen idea to a requirements-only unified plan under `docs/plans/`; leaves ce-ideate. Asks which idea first.
|
|
93
|
+
3. **Discuss or refine the ideas first** — stay here to think across the set before committing: adjust or interrogate one idea, compare several, or combine/merge them. Asks what you want to work on.
|
|
94
|
+
4. **Done — keep the file and stop.**
|
|
95
|
+
|
|
96
|
+
**Adjacent nudge (prose, not a slot):** "Don't want it kept? Say 'discard' and the agent deletes the file." Handled via free text (see §5.5); it is create-only and never deletes a resumed or pre-existing doc.
|
|
97
|
+
|
|
98
|
+
If the user already named what they want to work on inline (e.g. "brainstorm the table tool", "tighten the highlighter idea", "merge the table and highlighter ideas"), skip the follow-up that asks what to work on for §5.2 / §5.3.
|
|
99
|
+
|
|
100
|
+
### 5.1 Open in Browser (html) / Publish to Proof (md)
|
|
101
|
+
|
|
102
|
+
- **HTML — Open in browser.** (Re)open the saved file via the platform primitive where available; otherwise print the absolute path. Return to the Phase 5 menu. No Proof — the HTML file is the canonical record.
|
|
103
|
+
- **Markdown — Publish to Proof.** The local markdown file already exists (Phase 4) and stays canonical; Proof is a one-way published copy, not a sync target. Load the `ce-proof` skill to publish, passing:
|
|
104
|
+
- **source file:** the saved `.md` file from Phase 4.
|
|
105
|
+
- **doc title:** `Ideation: <topic>` or the doc's H1.
|
|
106
|
+
- **identity:** `ai:compound-engineering` / `Compound Engineering`.
|
|
107
|
+
|
|
108
|
+
ce-proof creates a shared Proof doc (Create and Share workflow) and returns the share URL. Surface it to the user, then return to the Phase 5 menu — nothing syncs back to disk. If the Proof handoff fails after the proof skill's internal retry plus one orchestrator-side retry (~2s pause, narrated as "Retrying Proof... attempt 2/2"), tell the user Proof is unavailable and that the local file is intact at `<path>`, then return to the menu — the deliverable was never at risk (it was written in Phase 4). *(If the user explicitly asked for Proof during an HTML run: Proof is markdown-only and cannot ingest HTML, so render a throwaway markdown copy of the survivors as the Proof source and do not upload the `.html`.)*
|
|
109
|
+
|
|
110
|
+
### 5.2 Brainstorm One Idea
|
|
111
|
+
|
|
112
|
+
1. **Identify the idea** by number or name (skip if the user already named it). Match against the ranked list from Phase 4.2.
|
|
113
|
+
2. **Build a focused seed** from the idea's substance already in the orchestrator's context. Do **not** pass the whole file — wasteful and noisy (the other survivors, grounding, and rejection table are irrelevant to defining this one idea, and an HTML file carries CSS/SVG chrome). Do **not** pass only a file pointer — that forces `ce-brainstorm` to re-open and re-extract the idea the orchestrator already holds. The seed is feature-description-shaped:
|
|
114
|
+
|
|
115
|
+
> `<title> — <description>. Basis: <basis/evidence>. Why it matters: <rationale>. Known tradeoffs: <downsides>.`
|
|
116
|
+
|
|
117
|
+
The basis/evidence directly feeds `ce-brainstorm`'s product-pressure-test, so it won't re-derive what we already know. Append a one-line provenance pointer: `(Seeded from ce-ideate: <path>, idea "<title>")` — it records origin and lets brainstorm pull adjacent detail if it wants, without being forced to read anything.
|
|
118
|
+
3. **Load the `ce-brainstorm` skill** with that seed. The saved file is already the record — no extra write step.
|
|
119
|
+
|
|
120
|
+
**Repo mode only:** do **not** skip brainstorming and go straight to `ce-plan` — `ce-plan` wants a brainstorm-grounded Product Contract. In elsewhere modes, ideation is a legitimate terminal state; brainstorming is optional deeper development of one idea, not a required next rung on an implementation ladder that does not exist in these modes.
|
|
121
|
+
|
|
122
|
+
### 5.3 Discuss or Refine the Ideas First
|
|
123
|
+
|
|
124
|
+
This stays in ce-ideate — no skill handoff. It is the "think across the set before committing" step, and it is a normal, expected outcome of ideation: seeing several strong candidates and wanting to deliberate is more common than instantly committing one. The orchestrator still holds the full grounding and generation context, so it can reason across every survivor — this is where that context pays off. The work here is either **single-idea** (sharpen or interrogate one) or **cross-idea** (compare, combine, or merge several); do not force the user to name a single idea before they can engage.
|
|
125
|
+
|
|
126
|
+
1. **Establish what the user wants to work on and how.** Infer from their phrasing when given; otherwise ask one open question ("What do you want to work on?") rather than assuming a single idea. The scope may be one idea, a subset, or the whole set.
|
|
127
|
+
2. **Route by intent:**
|
|
128
|
+
- **Ask / compare** ("why High confidence?", "how does this compare to FigJam?", "which of these overlap?", "which two are closest?") — answer in conversation, grounded in the ideas' bases and the Phase 1 grounding. Spans one idea or many. **No file rewrite** unless the discussion yields a change the user wants captured.
|
|
129
|
+
- **Adjust** ("smaller scope", "drop the paste-import part", "reframe around X") — revise that idea's framing, scope, or basis as discussed, then **rewrite the saved file** so the deliverable stays current.
|
|
130
|
+
- **Deepen** ("expand the second-order effects") — extend an idea's analysis; capture into the file only if the user wants it kept.
|
|
131
|
+
- **Combine / merge** ("merge the table and highlighter ideas", "fold 2 into 5") — synthesize the named ideas into one: write a unified title, description, and basis that draws from each source idea (carry the strongest basis forward; union their evidence). On a file rewrite, **replace the merged source entries with the single combined entry** — do not leave the originals alongside the merge — and renumber the ranked list. Re-evaluate the combined idea's axis and confidence rather than copying one source's. Note the merge in the rejection summary if a source idea effectively drops out.
|
|
132
|
+
3. **Rewrite only on change.** The file is rewritten only when idea content actually changes (adjust, deepen-and-keep, or merge) — Q&A and comparison alone do not churn it.
|
|
133
|
+
4. **Return to the Phase 5 menu.** Typically the user next brainstorms a sharpened or merged idea (§5.2), discusses more, opens it, or finishes.
|
|
134
|
+
|
|
135
|
+
### 5.4 Done
|
|
136
|
+
|
|
137
|
+
The file is already written, so there is no save step.
|
|
138
|
+
|
|
139
|
+
- **Inside a git repo:** offer to commit only the ideation doc (do not create a branch, do not push; if the user declines, leave it uncommitted).
|
|
140
|
+
- **Temp-area or non-repo file:** skip the commit offer.
|
|
141
|
+
|
|
142
|
+
Then narrate the path and end the session — do not return to the menu.
|
|
143
|
+
|
|
144
|
+
### 5.5 Discard (free text)
|
|
145
|
+
|
|
146
|
+
Only when the file was **created fresh this run**: delete it, confirm the deletion, and end. On a **resume** run (a pre-existing file was updated in place), do **not** delete — tell the user the existing doc at `<path>` remains and offer no destructive action. Discard is never a default; it fires only on an explicit request.
|
|
147
|
+
|
|
148
|
+
Do not delete the run's scratch directory (`<scratch-dir>`) on completion — it holds the V15 web-research cache reused across run-ids by later ideation invocations in the same session (see `references/web-research-cache.md`), the Checkpoint A/B files, the evidence dossiers, and (in the no-repo case) the deliverable itself. OS handles eventual cleanup.
|
|
149
|
+
|
|
150
|
+
## Quality Bar
|
|
151
|
+
|
|
152
|
+
Before finishing, check:
|
|
153
|
+
|
|
154
|
+
- the idea set is grounded in the stated context (codebase in repo mode; user-supplied context in elsewhere mode)
|
|
155
|
+
- **every surviving idea has an articulated basis** (`direct:`, `external:`, or `reasoned:`) that actually supports the claimed move — speculation dressed as ambition was rejected, with reasons
|
|
156
|
+
- load-bearing `direct:` bases were verified against the repo (or the supplied context) — by the generating agent's verification reads or the Phase 3 verifier — not taken on faith
|
|
157
|
+
- **every surviving idea passes the meeting-test** unless Phase 0.5 detected tactical focus signals that waived the floor
|
|
158
|
+
- **no surviving idea replaces the subject** rather than operating on it
|
|
159
|
+
- when Phase 1.5 produced an axis list, the survivor set spreads across axes rather than clustering on one — and any axis with zero survivors is noted as a deliberate gap in the rejection summary, not silently absent
|
|
160
|
+
- the candidate list was generated before filtering
|
|
161
|
+
- the original many-ideas -> critique -> survivors mechanism was preserved
|
|
162
|
+
- if sub-agents were used, they improved diversity without replacing the core workflow
|
|
163
|
+
- every rejected idea has a reason
|
|
164
|
+
- survivors are materially better than a naive "give me ideas" list
|
|
165
|
+
- the deliverable was written automatically in both modes (Phase 4) — to `docs/ideation/` when present, else the CE temp area, never the user's CWD
|
|
166
|
+
- the session showed a concise summary, not a reproduction of the full deliverable
|
|
167
|
+
- acting on an idea routes to `ce-brainstorm` (with a substance seed, not the whole file), not directly to implementation
|