@bonesofspring/ai-rules 0.2.17 → 0.2.19
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/CHANGELOG.md +63 -0
- package/README.md +6 -4
- package/bin/cli.js +111 -4
- package/package.json +6 -3
- package/presets/_shared/README.md +2 -2
- package/presets/_shared/assets/docs-specs/schemas/frontmatter-v1.schema.json +1 -1
- package/presets/_shared/core/agent-team/agent-artifact-contracts.md +41 -0
- package/presets/_shared/core/agent-team/agent-team-orchestrator.md +5 -4
- package/presets/_shared/core/architecture/feature-delivery-workflow.md +3 -2
- package/presets/_shared/core/architecture/product-specs-authoring.md +6 -3
- package/presets/_shared/core/architecture/product-specs.md +8 -3
- package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +5 -2
- package/presets/_shared/core/quality/anti-sycophancy-discipline.md +1 -1
- package/presets/_shared/core/quality/code-quality-and-refactoring.md +1 -1
- package/presets/_shared/core/quality/mcp-usage.md +84 -0
- package/presets/_shared/core/review/mockup-review.md +105 -0
- package/presets/_shared/core/review/ux-design.md +97 -0
- package/presets/claude/android-kotlin/MCP.md +20 -1
- package/presets/claude/android-kotlin/agents/README.md +2 -2
- package/presets/claude/android-kotlin/agents/accessibility-reviewer.md +6 -0
- package/presets/claude/android-kotlin/agents/build-verifier.md +6 -0
- package/presets/claude/android-kotlin/agents/ci-investigator.md +8 -0
- package/presets/claude/android-kotlin/agents/debugger.md +8 -0
- package/presets/claude/android-kotlin/agents/feature-developer.md +29 -0
- package/presets/claude/android-kotlin/agents/migration-specialist.md +6 -0
- package/presets/claude/android-kotlin/agents/mockup-reviewer.md +59 -0
- package/presets/claude/android-kotlin/agents/performance-auditor.md +6 -0
- package/presets/claude/android-kotlin/agents/solution-architect.md +6 -0
- package/presets/claude/android-kotlin/agents/task-analyst.md +35 -1
- package/presets/claude/android-kotlin/agents/task-router.md +17 -2
- package/presets/claude/android-kotlin/commands/spec-start.md +1 -1
- package/presets/claude/android-kotlin/commands/task-continue.md +6 -4
- package/presets/claude/android-kotlin/commands/task.md +2 -0
- package/presets/claude/android-kotlin/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/android-kotlin/mcp.json +1 -1
- package/presets/claude/android-kotlin/rules/README.md +3 -0
- package/presets/claude/android-kotlin/rules/architecture/feature-delivery.md +5 -1
- package/presets/claude/android-kotlin/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/android-kotlin/rules/architecture/product-specs.md +8 -4
- package/presets/claude/android-kotlin/rules/tooling-and-review/agent-team-orchestrator.md +7 -3
- package/presets/claude/android-kotlin/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/android-kotlin/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/android-kotlin/rules/tooling-and-review/mcp-usage.md +100 -0
- package/presets/claude/android-kotlin/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/android-kotlin/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/android-kotlin/skills/README.md +4 -0
- package/presets/claude/android-kotlin/skills/ci-investigation/SKILL.md +8 -0
- package/presets/claude/android-kotlin/skills/debug-investigation/SKILL.md +8 -0
- package/presets/claude/android-kotlin/skills/feature-delivery/SKILL.md +9 -0
- package/presets/claude/android-kotlin/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/android-kotlin/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/android-kotlin/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/android-kotlin/team/README.md +8 -0
- package/presets/claude/android-kotlin/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/claude/android-kotlin/team/fixtures/feature-full.json +1 -0
- package/presets/claude/android-kotlin/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/android-kotlin/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/android-kotlin/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/android-kotlin/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/android-kotlin/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/android-kotlin/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/go/MCP.md +23 -2
- package/presets/claude/go/agents/build-verifier.md +6 -0
- package/presets/claude/go/agents/ci-investigator.md +8 -0
- package/presets/claude/go/agents/debugger.md +8 -0
- package/presets/claude/go/agents/feature-developer.md +23 -0
- package/presets/claude/go/agents/migration-specialist.md +6 -0
- package/presets/claude/go/agents/performance-auditor.md +6 -0
- package/presets/claude/go/agents/solution-architect.md +6 -0
- package/presets/claude/go/agents/task-analyst.md +17 -0
- package/presets/claude/go/agents/task-router.md +7 -1
- package/presets/claude/go/commands/feature-continue.md +11 -40
- package/presets/claude/go/commands/spec-start.md +1 -1
- package/presets/claude/go/mcp.json +1 -1
- package/presets/claude/go/rules/README.md +2 -1
- package/presets/claude/go/rules/architecture/feature-delivery.md +2 -1
- package/presets/claude/go/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/go/rules/architecture/product-specs.md +8 -4
- package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +1 -0
- package/presets/claude/go/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/mcp-usage.md +99 -0
- package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/go/skills/README.md +1 -1
- package/presets/claude/go/skills/ci-investigation/SKILL.md +7 -0
- package/presets/claude/go/skills/code-review/SKILL.md +1 -0
- package/presets/claude/go/skills/debug-investigation/SKILL.md +8 -0
- package/presets/claude/go/skills/feature-delivery/SKILL.md +7 -1
- package/presets/claude/go/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/go/team/README.md +8 -0
- package/presets/claude/go/team/fixtures/feature-full.json +46 -10
- package/presets/claude/go/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/ios-swift/MCP.md +20 -1
- package/presets/claude/ios-swift/agents/README.md +2 -2
- package/presets/claude/ios-swift/agents/accessibility-reviewer.md +7 -10
- package/presets/claude/ios-swift/agents/api-contract-reviewer.md +2 -11
- package/presets/claude/ios-swift/agents/build-verifier.md +6 -0
- package/presets/claude/ios-swift/agents/ci-investigator.md +10 -11
- package/presets/claude/ios-swift/agents/debugger.md +10 -11
- package/presets/claude/ios-swift/agents/feature-developer.md +29 -0
- package/presets/claude/ios-swift/agents/migration-specialist.md +8 -11
- package/presets/claude/ios-swift/agents/mockup-reviewer.md +59 -0
- package/presets/claude/ios-swift/agents/performance-auditor.md +8 -11
- package/presets/claude/ios-swift/agents/qa-tester.md +2 -11
- package/presets/claude/ios-swift/agents/security-reviewer.md +2 -11
- package/presets/claude/ios-swift/agents/solution-architect.md +6 -0
- package/presets/claude/ios-swift/agents/task-analyst.md +35 -1
- package/presets/claude/ios-swift/agents/task-router.md +17 -2
- package/presets/claude/ios-swift/agents/unit-test-generator.md +2 -11
- package/presets/claude/ios-swift/agents/unit-test-healer.md +2 -11
- package/presets/claude/ios-swift/agents/unit-test-planner.md +2 -11
- package/presets/claude/ios-swift/agents/xcuitest-test-generator.md +1 -11
- package/presets/claude/ios-swift/agents/xcuitest-test-healer.md +1 -11
- package/presets/claude/ios-swift/agents/xcuitest-test-planner.md +1 -13
- package/presets/claude/ios-swift/commands/spec-start.md +1 -1
- package/presets/claude/ios-swift/commands/task-continue.md +6 -4
- package/presets/claude/ios-swift/commands/task.md +2 -0
- package/presets/claude/ios-swift/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/ios-swift/mcp.json +1 -1
- package/presets/claude/ios-swift/rules/README.md +7 -1
- package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +4 -1
- package/presets/claude/ios-swift/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/ios-swift/rules/architecture/product-specs.md +8 -4
- package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +7 -3
- package/presets/claude/ios-swift/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/mcp-usage.md +100 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/ios-swift/skills/README.md +4 -0
- package/presets/claude/ios-swift/skills/ci-investigation/SKILL.md +8 -0
- package/presets/claude/ios-swift/skills/code-review/SKILL.md +1 -1
- package/presets/claude/ios-swift/skills/debug-investigation/SKILL.md +9 -1
- package/presets/claude/ios-swift/skills/feature-delivery/SKILL.md +10 -1
- package/presets/claude/ios-swift/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/ios-swift/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/ios-swift/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/ios-swift/team/README.md +8 -0
- package/presets/claude/ios-swift/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/claude/ios-swift/team/fixtures/feature-full.json +39 -9
- package/presets/claude/ios-swift/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/ios-swift/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/ios-swift/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/ios-swift/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/ios-swift/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/ios-swift/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/java/CLAUDE.md +1 -1
- package/presets/claude/java/MCP.md +21 -0
- package/presets/claude/java/agents/build-verifier.md +7 -1
- package/presets/claude/java/agents/ci-investigator.md +8 -0
- package/presets/claude/java/agents/debugger.md +8 -0
- package/presets/claude/java/agents/feature-developer.md +23 -0
- package/presets/claude/java/agents/migration-specialist.md +6 -0
- package/presets/claude/java/agents/performance-auditor.md +6 -0
- package/presets/claude/java/agents/solution-architect.md +6 -0
- package/presets/claude/java/agents/task-analyst.md +17 -0
- package/presets/claude/java/agents/task-router.md +7 -1
- package/presets/claude/java/commands/feature-continue.md +11 -40
- package/presets/claude/java/commands/spec-start.md +1 -1
- package/presets/claude/java/mcp.json +1 -1
- package/presets/claude/java/rules/README.md +1 -0
- package/presets/claude/java/rules/architecture/feature-delivery.md +2 -1
- package/presets/claude/java/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/java/rules/architecture/product-specs.md +8 -4
- package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +1 -0
- package/presets/claude/java/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/mcp-usage.md +98 -0
- package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/java/skills/README.md +1 -1
- package/presets/claude/java/skills/ci-investigation/SKILL.md +7 -0
- package/presets/claude/java/skills/code-review/SKILL.md +1 -0
- package/presets/claude/java/skills/debug-investigation/SKILL.md +8 -0
- package/presets/claude/java/skills/feature-delivery/SKILL.md +7 -1
- package/presets/claude/java/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/java/team/README.md +8 -0
- package/presets/claude/java/team/fixtures/feature-full.json +46 -10
- package/presets/claude/java/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/mcp-ts/MCP.md +20 -1
- package/presets/claude/mcp-ts/agents/build-verifier.md +7 -1
- package/presets/claude/mcp-ts/agents/feature-developer.md +23 -0
- package/presets/claude/mcp-ts/agents/solution-architect.md +5 -0
- package/presets/claude/mcp-ts/agents/task-analyst.md +17 -0
- package/presets/claude/mcp-ts/agents/task-router.md +7 -1
- package/presets/claude/mcp-ts/commands/spec-start.md +1 -1
- package/presets/claude/mcp-ts/mcp.json +1 -1
- package/presets/claude/mcp-ts/rules/README.md +1 -0
- package/presets/claude/mcp-ts/rules/architecture/feature-delivery.md +3 -1
- package/presets/claude/mcp-ts/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/mcp-ts/rules/architecture/product-specs.md +8 -4
- package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-orchestrator.md +1 -0
- package/presets/claude/mcp-ts/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/mcp-usage.md +99 -0
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/mcp-ts/skills/README.md +2 -0
- package/presets/claude/mcp-ts/skills/code-review/SKILL.md +1 -0
- package/presets/claude/mcp-ts/skills/debug-investigation/SKILL.md +7 -0
- package/presets/claude/mcp-ts/skills/feature-delivery/SKILL.md +7 -1
- package/presets/claude/mcp-ts/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/mcp-ts/team/README.md +7 -0
- package/presets/claude/mcp-ts/team/fixtures/feature-full.json +5 -2
- package/presets/claude/mcp-ts/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/next/MCP.md +22 -0
- package/presets/claude/next/agents/README.md +2 -1
- package/presets/claude/next/agents/accessibility-reviewer.md +8 -0
- package/presets/claude/next/agents/build-verifier.md +6 -0
- package/presets/claude/next/agents/ci-investigator.md +8 -0
- package/presets/claude/next/agents/debugger.md +12 -0
- package/presets/claude/next/agents/feature-developer.md +31 -0
- package/presets/claude/next/agents/migration-specialist.md +6 -0
- package/presets/claude/next/agents/mockup-reviewer.md +59 -0
- package/presets/claude/next/agents/performance-auditor.md +8 -0
- package/presets/claude/next/agents/playwright-test-generator.md +11 -1
- package/presets/claude/next/agents/playwright-test-healer.md +8 -1
- package/presets/claude/next/agents/solution-architect.md +6 -0
- package/presets/claude/next/agents/task-analyst.md +35 -1
- package/presets/claude/next/agents/task-router.md +18 -3
- package/presets/claude/next/commands/feature-continue.md +11 -40
- package/presets/claude/next/commands/spec-start.md +1 -1
- package/presets/claude/next/commands/task-continue.md +6 -4
- package/presets/claude/next/commands/task.md +2 -0
- package/presets/claude/next/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/next/mcp.json +3 -3
- package/presets/claude/next/rules/README.md +9 -3
- package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +4 -1
- package/presets/claude/next/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/next/rules/architecture/product-specs.md +8 -4
- package/presets/claude/next/rules/testing/tests-unit.md +5 -0
- package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +7 -3
- package/presets/claude/next/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/next/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/next/rules/tooling-and-review/mcp-usage.md +101 -0
- package/presets/claude/next/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/next/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/next/skills/README.md +4 -0
- package/presets/claude/next/skills/ci-investigation/SKILL.md +8 -0
- package/presets/claude/next/skills/code-review/SKILL.md +1 -1
- package/presets/claude/next/skills/debug-investigation/SKILL.md +13 -1
- package/presets/claude/next/skills/feature-delivery/SKILL.md +12 -1
- package/presets/claude/next/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/next/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/next/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/next/team/README.md +11 -0
- package/presets/claude/next/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/claude/next/team/fixtures/feature-full.json +43 -9
- package/presets/claude/next/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/next/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/next/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/next/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/next/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/next/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/nuxt/MCP.md +22 -0
- package/presets/claude/nuxt/agents/README.md +2 -1
- package/presets/claude/nuxt/agents/accessibility-reviewer.md +8 -0
- package/presets/claude/nuxt/agents/build-verifier.md +6 -0
- package/presets/claude/nuxt/agents/ci-investigator.md +8 -0
- package/presets/claude/nuxt/agents/debugger.md +12 -0
- package/presets/claude/nuxt/agents/feature-developer.md +31 -0
- package/presets/claude/nuxt/agents/migration-specialist.md +6 -0
- package/presets/claude/nuxt/agents/mockup-reviewer.md +59 -0
- package/presets/claude/nuxt/agents/performance-auditor.md +8 -0
- package/presets/claude/nuxt/agents/playwright-test-generator.md +11 -1
- package/presets/claude/nuxt/agents/playwright-test-healer.md +8 -1
- package/presets/claude/nuxt/agents/solution-architect.md +6 -0
- package/presets/claude/nuxt/agents/task-analyst.md +35 -1
- package/presets/claude/nuxt/agents/task-router.md +22 -7
- package/presets/claude/nuxt/commands/spec-start.md +1 -1
- package/presets/claude/nuxt/commands/task-continue.md +6 -4
- package/presets/claude/nuxt/commands/task.md +2 -0
- package/presets/claude/nuxt/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/nuxt/mcp.json +3 -3
- package/presets/claude/nuxt/rules/README.md +6 -0
- package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +4 -1
- package/presets/claude/nuxt/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/nuxt/rules/architecture/product-specs.md +8 -4
- package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +7 -3
- package/presets/claude/nuxt/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/nuxt/rules/tooling-and-review/mcp-usage.md +106 -0
- package/presets/claude/nuxt/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/nuxt/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/nuxt/skills/README.md +4 -0
- package/presets/claude/nuxt/skills/ci-investigation/SKILL.md +8 -0
- package/presets/claude/nuxt/skills/code-review/SKILL.md +1 -1
- package/presets/claude/nuxt/skills/debug-investigation/SKILL.md +13 -1
- package/presets/claude/nuxt/skills/feature-delivery/SKILL.md +12 -1
- package/presets/claude/nuxt/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/nuxt/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/nuxt/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/nuxt/team/README.md +11 -0
- package/presets/claude/nuxt/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/claude/nuxt/team/fixtures/feature-full.json +43 -9
- package/presets/claude/nuxt/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/nuxt/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/nuxt/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/nuxt/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/nuxt/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/nuxt/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/php-hexagonal/CLAUDE.md +1 -1
- package/presets/claude/php-hexagonal/MCP.md +20 -1
- package/presets/claude/php-hexagonal/agents/build-verifier.md +7 -1
- package/presets/claude/php-hexagonal/agents/ci-investigator.md +8 -0
- package/presets/claude/php-hexagonal/agents/debugger.md +8 -0
- package/presets/claude/php-hexagonal/agents/feature-developer.md +23 -0
- package/presets/claude/php-hexagonal/agents/migration-specialist.md +6 -0
- package/presets/claude/php-hexagonal/agents/performance-auditor.md +6 -0
- package/presets/claude/php-hexagonal/agents/solution-architect.md +6 -0
- package/presets/claude/php-hexagonal/agents/task-analyst.md +17 -0
- package/presets/claude/php-hexagonal/agents/task-router.md +7 -1
- package/presets/claude/php-hexagonal/commands/feature-continue.md +11 -40
- package/presets/claude/php-hexagonal/commands/spec-start.md +1 -1
- package/presets/claude/php-hexagonal/mcp.json +1 -1
- package/presets/claude/php-hexagonal/rules/README.md +1 -0
- package/presets/claude/php-hexagonal/rules/architecture/feature-delivery.md +2 -1
- package/presets/claude/php-hexagonal/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/php-hexagonal/rules/architecture/product-specs.md +8 -4
- package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +1 -0
- package/presets/claude/php-hexagonal/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/mcp-usage.md +98 -0
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/php-hexagonal/skills/README.md +1 -1
- package/presets/claude/php-hexagonal/skills/ci-investigation/SKILL.md +7 -0
- package/presets/claude/php-hexagonal/skills/code-review/SKILL.md +1 -0
- package/presets/claude/php-hexagonal/skills/debug-investigation/SKILL.md +8 -0
- package/presets/claude/php-hexagonal/skills/feature-delivery/SKILL.md +7 -1
- package/presets/claude/php-hexagonal/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/php-hexagonal/team/README.md +8 -0
- package/presets/claude/php-hexagonal/team/fixtures/feature-full.json +46 -10
- package/presets/claude/php-hexagonal/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/php-laravel/MCP.md +21 -0
- package/presets/claude/php-laravel/agents/build-verifier.md +7 -1
- package/presets/claude/php-laravel/agents/ci-investigator.md +8 -0
- package/presets/claude/php-laravel/agents/debugger.md +8 -0
- package/presets/claude/php-laravel/agents/feature-developer.md +23 -0
- package/presets/claude/php-laravel/agents/migration-specialist.md +6 -0
- package/presets/claude/php-laravel/agents/performance-auditor.md +6 -0
- package/presets/claude/php-laravel/agents/solution-architect.md +6 -0
- package/presets/claude/php-laravel/agents/task-analyst.md +17 -0
- package/presets/claude/php-laravel/agents/task-router.md +7 -1
- package/presets/claude/php-laravel/commands/feature-continue.md +11 -40
- package/presets/claude/php-laravel/commands/spec-start.md +1 -1
- package/presets/claude/php-laravel/mcp.json +1 -1
- package/presets/claude/php-laravel/rules/README.md +1 -0
- package/presets/claude/php-laravel/rules/architecture/feature-delivery.md +3 -1
- package/presets/claude/php-laravel/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/php-laravel/rules/architecture/product-specs.md +8 -4
- package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +1 -0
- package/presets/claude/php-laravel/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/mcp-usage.md +98 -0
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/php-laravel/skills/README.md +1 -1
- package/presets/claude/php-laravel/skills/ci-investigation/SKILL.md +7 -0
- package/presets/claude/php-laravel/skills/code-review/SKILL.md +1 -0
- package/presets/claude/php-laravel/skills/debug-investigation/SKILL.md +8 -0
- package/presets/claude/php-laravel/skills/feature-delivery/SKILL.md +7 -1
- package/presets/claude/php-laravel/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/php-laravel/team/README.md +7 -0
- package/presets/claude/php-laravel/team/fixtures/feature-full.json +38 -9
- package/presets/claude/php-laravel/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/svelte/MCP.md +22 -0
- package/presets/claude/svelte/agents/README.md +2 -1
- package/presets/claude/svelte/agents/accessibility-reviewer.md +8 -0
- package/presets/claude/svelte/agents/build-verifier.md +6 -0
- package/presets/claude/svelte/agents/ci-investigator.md +8 -0
- package/presets/claude/svelte/agents/debugger.md +12 -0
- package/presets/claude/svelte/agents/feature-developer.md +31 -0
- package/presets/claude/svelte/agents/migration-specialist.md +6 -0
- package/presets/claude/svelte/agents/mockup-reviewer.md +59 -0
- package/presets/claude/svelte/agents/performance-auditor.md +8 -0
- package/presets/claude/svelte/agents/playwright-test-generator.md +11 -1
- package/presets/claude/svelte/agents/playwright-test-healer.md +8 -1
- package/presets/claude/svelte/agents/solution-architect.md +6 -0
- package/presets/claude/svelte/agents/task-analyst.md +35 -1
- package/presets/claude/svelte/agents/task-router.md +18 -3
- package/presets/claude/svelte/commands/spec-start.md +1 -1
- package/presets/claude/svelte/commands/task-continue.md +6 -4
- package/presets/claude/svelte/commands/task.md +2 -0
- package/presets/claude/svelte/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/svelte/mcp.json +3 -3
- package/presets/claude/svelte/rules/README.md +6 -0
- package/presets/claude/svelte/rules/architecture/feature-delivery-workflow.md +4 -1
- package/presets/claude/svelte/rules/architecture/product-specs-authoring.md +6 -4
- package/presets/claude/svelte/rules/architecture/product-specs.md +8 -4
- package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +7 -3
- package/presets/claude/svelte/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -1
- package/presets/claude/svelte/rules/tooling-and-review/code-quality.md +1 -1
- package/presets/claude/svelte/rules/tooling-and-review/mcp-usage.md +101 -0
- package/presets/claude/svelte/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +5 -2
- package/presets/claude/svelte/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/svelte/skills/README.md +4 -0
- package/presets/claude/svelte/skills/ci-investigation/SKILL.md +8 -0
- package/presets/claude/svelte/skills/code-review/SKILL.md +1 -1
- package/presets/claude/svelte/skills/debug-investigation/SKILL.md +13 -1
- package/presets/claude/svelte/skills/feature-delivery/SKILL.md +12 -1
- package/presets/claude/svelte/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/svelte/skills/spec-discovery/SKILL.md +58 -0
- package/presets/claude/svelte/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/svelte/team/README.md +11 -0
- package/presets/claude/svelte/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/claude/svelte/team/fixtures/feature-full.json +43 -9
- package/presets/claude/svelte/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/svelte/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/svelte/team/fixtures/memlog.example.md +9 -0
- package/presets/claude/svelte/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/svelte/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/svelte/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/android-kotlin/MCP.md +20 -1
- package/presets/cursor/android-kotlin/agents/README.md +2 -2
- package/presets/cursor/android-kotlin/agents/accessibility-reviewer.md +6 -0
- package/presets/cursor/android-kotlin/agents/build-verifier.md +6 -0
- package/presets/cursor/android-kotlin/agents/ci-investigator.md +8 -0
- package/presets/cursor/android-kotlin/agents/debugger.md +8 -0
- package/presets/cursor/android-kotlin/agents/feature-developer.md +29 -0
- package/presets/cursor/android-kotlin/agents/migration-specialist.md +6 -0
- package/presets/cursor/android-kotlin/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/android-kotlin/agents/performance-auditor.md +6 -0
- package/presets/cursor/android-kotlin/agents/solution-architect.md +6 -0
- package/presets/cursor/android-kotlin/agents/task-analyst.md +35 -1
- package/presets/cursor/android-kotlin/agents/task-router.md +17 -2
- package/presets/cursor/android-kotlin/commands/spec-start.md +1 -1
- package/presets/cursor/android-kotlin/commands/task-continue.md +6 -4
- package/presets/cursor/android-kotlin/commands/task.md +2 -0
- package/presets/cursor/android-kotlin/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/android-kotlin/mcp.json +1 -1
- package/presets/cursor/android-kotlin/rules/README.md +6 -0
- package/presets/cursor/android-kotlin/rules/agent-team-orchestrator.mdc +7 -3
- package/presets/cursor/android-kotlin/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/android-kotlin/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/android-kotlin/rules/feature-delivery-workflow.mdc +5 -1
- package/presets/cursor/android-kotlin/rules/mcp-usage.mdc +99 -0
- package/presets/cursor/android-kotlin/rules/mockup-review.mdc +116 -0
- package/presets/cursor/android-kotlin/rules/preset-no-cross-stack-leakage.mdc +6 -3
- package/presets/cursor/android-kotlin/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/android-kotlin/rules/product-specs.mdc +8 -4
- package/presets/cursor/android-kotlin/rules/ux-design.mdc +108 -0
- package/presets/cursor/android-kotlin/skills/README.md +4 -0
- package/presets/cursor/android-kotlin/skills/ci-investigation/SKILL.md +8 -0
- package/presets/cursor/android-kotlin/skills/debug-investigation/SKILL.md +8 -0
- package/presets/cursor/android-kotlin/skills/feature-delivery/SKILL.md +9 -0
- package/presets/cursor/android-kotlin/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/android-kotlin/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/android-kotlin/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/android-kotlin/team/README.md +8 -0
- package/presets/cursor/android-kotlin/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/cursor/android-kotlin/team/fixtures/feature-full.json +1 -0
- package/presets/cursor/android-kotlin/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/android-kotlin/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/android-kotlin/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/android-kotlin/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/android-kotlin/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/android-kotlin/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/go/MCP.md +23 -2
- package/presets/cursor/go/agents/build-verifier.md +6 -0
- package/presets/cursor/go/agents/ci-investigator.md +8 -0
- package/presets/cursor/go/agents/debugger.md +8 -0
- package/presets/cursor/go/agents/feature-developer.md +23 -0
- package/presets/cursor/go/agents/migration-specialist.md +6 -0
- package/presets/cursor/go/agents/performance-auditor.md +6 -0
- package/presets/cursor/go/agents/solution-architect.md +6 -0
- package/presets/cursor/go/agents/task-analyst.md +17 -0
- package/presets/cursor/go/agents/task-router.md +7 -1
- package/presets/cursor/go/commands/spec-start.md +1 -1
- package/presets/cursor/go/mcp.json +1 -1
- package/presets/cursor/go/rules/README.md +2 -1
- package/presets/cursor/go/rules/agent-team-orchestrator.mdc +1 -0
- package/presets/cursor/go/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/go/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/go/rules/feature-delivery-workflow.mdc +2 -1
- package/presets/cursor/go/rules/mcp-usage.mdc +98 -0
- package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/go/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/go/rules/product-specs.mdc +8 -4
- package/presets/cursor/go/skills/README.md +1 -1
- package/presets/cursor/go/skills/ci-investigation/SKILL.md +7 -0
- package/presets/cursor/go/skills/code-review/SKILL.md +1 -0
- package/presets/cursor/go/skills/debug-investigation/SKILL.md +8 -0
- package/presets/cursor/go/skills/feature-delivery/SKILL.md +7 -1
- package/presets/cursor/go/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/go/team/README.md +8 -0
- package/presets/cursor/go/team/fixtures/feature-full.json +46 -10
- package/presets/cursor/go/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/ios-swift/MCP.md +20 -1
- package/presets/cursor/ios-swift/agents/README.md +2 -2
- package/presets/cursor/ios-swift/agents/accessibility-reviewer.md +7 -10
- package/presets/cursor/ios-swift/agents/api-contract-reviewer.md +2 -11
- package/presets/cursor/ios-swift/agents/build-verifier.md +6 -0
- package/presets/cursor/ios-swift/agents/ci-investigator.md +10 -11
- package/presets/cursor/ios-swift/agents/debugger.md +10 -11
- package/presets/cursor/ios-swift/agents/feature-developer.md +29 -0
- package/presets/cursor/ios-swift/agents/migration-specialist.md +8 -11
- package/presets/cursor/ios-swift/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/ios-swift/agents/performance-auditor.md +8 -11
- package/presets/cursor/ios-swift/agents/qa-tester.md +2 -11
- package/presets/cursor/ios-swift/agents/security-reviewer.md +2 -11
- package/presets/cursor/ios-swift/agents/solution-architect.md +6 -0
- package/presets/cursor/ios-swift/agents/task-analyst.md +35 -1
- package/presets/cursor/ios-swift/agents/task-router.md +17 -2
- package/presets/cursor/ios-swift/agents/unit-test-generator.md +2 -11
- package/presets/cursor/ios-swift/agents/unit-test-healer.md +2 -11
- package/presets/cursor/ios-swift/agents/unit-test-planner.md +2 -11
- package/presets/cursor/ios-swift/agents/xcuitest-test-generator.md +1 -11
- package/presets/cursor/ios-swift/agents/xcuitest-test-healer.md +1 -11
- package/presets/cursor/ios-swift/agents/xcuitest-test-planner.md +1 -13
- package/presets/cursor/ios-swift/commands/spec-start.md +1 -1
- package/presets/cursor/ios-swift/commands/task-continue.md +6 -4
- package/presets/cursor/ios-swift/commands/task.md +2 -0
- package/presets/cursor/ios-swift/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/ios-swift/mcp.json +1 -1
- package/presets/cursor/ios-swift/rules/README.md +7 -1
- package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +7 -3
- package/presets/cursor/ios-swift/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +4 -1
- package/presets/cursor/ios-swift/rules/mcp-usage.mdc +99 -0
- package/presets/cursor/ios-swift/rules/mockup-review.mdc +116 -0
- package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/ios-swift/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/ios-swift/rules/product-specs.mdc +8 -4
- package/presets/cursor/ios-swift/rules/ux-design.mdc +108 -0
- package/presets/cursor/ios-swift/skills/README.md +4 -0
- package/presets/cursor/ios-swift/skills/ci-investigation/SKILL.md +8 -0
- package/presets/cursor/ios-swift/skills/code-review/SKILL.md +1 -1
- package/presets/cursor/ios-swift/skills/debug-investigation/SKILL.md +9 -1
- package/presets/cursor/ios-swift/skills/feature-delivery/SKILL.md +10 -1
- package/presets/cursor/ios-swift/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/ios-swift/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/ios-swift/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/ios-swift/team/README.md +8 -0
- package/presets/cursor/ios-swift/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/cursor/ios-swift/team/fixtures/feature-full.json +39 -9
- package/presets/cursor/ios-swift/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/ios-swift/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/ios-swift/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/ios-swift/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/ios-swift/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/ios-swift/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/java/AGENTS.md +1 -1
- package/presets/cursor/java/MCP.md +20 -1
- package/presets/cursor/java/agents/build-verifier.md +7 -1
- package/presets/cursor/java/agents/ci-investigator.md +8 -0
- package/presets/cursor/java/agents/debugger.md +8 -0
- package/presets/cursor/java/agents/feature-developer.md +23 -0
- package/presets/cursor/java/agents/migration-specialist.md +6 -0
- package/presets/cursor/java/agents/performance-auditor.md +6 -0
- package/presets/cursor/java/agents/solution-architect.md +6 -0
- package/presets/cursor/java/agents/task-analyst.md +17 -0
- package/presets/cursor/java/agents/task-router.md +7 -1
- package/presets/cursor/java/commands/spec-start.md +1 -1
- package/presets/cursor/java/mcp.json +1 -1
- package/presets/cursor/java/rules/README.md +2 -1
- package/presets/cursor/java/rules/agent-team-orchestrator.mdc +1 -0
- package/presets/cursor/java/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/java/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/java/rules/feature-delivery-workflow.mdc +2 -1
- package/presets/cursor/java/rules/mcp-usage.mdc +97 -0
- package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/java/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/java/rules/product-specs.mdc +8 -4
- package/presets/cursor/java/skills/README.md +1 -1
- package/presets/cursor/java/skills/ci-investigation/SKILL.md +7 -0
- package/presets/cursor/java/skills/code-review/SKILL.md +1 -0
- package/presets/cursor/java/skills/debug-investigation/SKILL.md +8 -0
- package/presets/cursor/java/skills/feature-delivery/SKILL.md +7 -1
- package/presets/cursor/java/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/java/team/README.md +8 -0
- package/presets/cursor/java/team/fixtures/feature-full.json +46 -10
- package/presets/cursor/java/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/mcp-ts/MCP.md +20 -1
- package/presets/cursor/mcp-ts/agents/build-verifier.md +7 -1
- package/presets/cursor/mcp-ts/agents/feature-developer.md +23 -0
- package/presets/cursor/mcp-ts/agents/solution-architect.md +5 -0
- package/presets/cursor/mcp-ts/agents/task-analyst.md +17 -0
- package/presets/cursor/mcp-ts/agents/task-router.md +7 -1
- package/presets/cursor/mcp-ts/commands/spec-start.md +1 -1
- package/presets/cursor/mcp-ts/mcp.json +1 -1
- package/presets/cursor/mcp-ts/rules/README.md +3 -2
- package/presets/cursor/mcp-ts/rules/agent-team-orchestrator.mdc +1 -0
- package/presets/cursor/mcp-ts/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/feature-delivery-workflow.mdc +2 -1
- package/presets/cursor/mcp-ts/rules/mcp-usage.mdc +98 -0
- package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/mcp-ts/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/mcp-ts/rules/product-specs.mdc +8 -4
- package/presets/cursor/mcp-ts/skills/README.md +2 -0
- package/presets/cursor/mcp-ts/skills/code-review/SKILL.md +1 -0
- package/presets/cursor/mcp-ts/skills/debug-investigation/SKILL.md +7 -0
- package/presets/cursor/mcp-ts/skills/feature-delivery/SKILL.md +7 -1
- package/presets/cursor/mcp-ts/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/mcp-ts/team/README.md +7 -0
- package/presets/cursor/mcp-ts/team/fixtures/feature-full.json +5 -2
- package/presets/cursor/mcp-ts/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/next/MCP.md +21 -1
- package/presets/cursor/next/agents/README.md +2 -1
- package/presets/cursor/next/agents/accessibility-reviewer.md +8 -0
- package/presets/cursor/next/agents/build-verifier.md +6 -0
- package/presets/cursor/next/agents/ci-investigator.md +8 -0
- package/presets/cursor/next/agents/debugger.md +12 -0
- package/presets/cursor/next/agents/feature-developer.md +31 -0
- package/presets/cursor/next/agents/migration-specialist.md +6 -0
- package/presets/cursor/next/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/next/agents/performance-auditor.md +8 -0
- package/presets/cursor/next/agents/playwright-test-generator.md +9 -1
- package/presets/cursor/next/agents/playwright-test-healer.md +9 -1
- package/presets/cursor/next/agents/playwright-test-planner.md +1 -1
- package/presets/cursor/next/agents/solution-architect.md +6 -0
- package/presets/cursor/next/agents/task-analyst.md +35 -1
- package/presets/cursor/next/agents/task-router.md +18 -3
- package/presets/cursor/next/commands/spec-start.md +1 -1
- package/presets/cursor/next/commands/task-continue.md +6 -4
- package/presets/cursor/next/commands/task.md +2 -0
- package/presets/cursor/next/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/next/mcp.json +3 -3
- package/presets/cursor/next/rules/README.md +5 -2
- package/presets/cursor/next/rules/agent-team-orchestrator.mdc +7 -3
- package/presets/cursor/next/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/next/rules/feature-delivery-workflow.mdc +4 -1
- package/presets/cursor/next/rules/mcp-usage.mdc +100 -0
- package/presets/cursor/next/rules/mockup-review.mdc +116 -0
- package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/next/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/next/rules/product-specs.mdc +8 -4
- package/presets/cursor/next/rules/tests-unit.mdc +5 -0
- package/presets/cursor/next/rules/ux-design.mdc +108 -0
- package/presets/cursor/next/skills/README.md +4 -0
- package/presets/cursor/next/skills/ci-investigation/SKILL.md +8 -0
- package/presets/cursor/next/skills/code-review/SKILL.md +1 -1
- package/presets/cursor/next/skills/debug-investigation/SKILL.md +13 -1
- package/presets/cursor/next/skills/feature-delivery/SKILL.md +12 -1
- package/presets/cursor/next/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/next/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/next/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/next/team/README.md +11 -0
- package/presets/cursor/next/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/cursor/next/team/fixtures/feature-full.json +1 -0
- package/presets/cursor/next/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/next/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/next/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/next/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/next/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/next/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/nuxt/MCP.md +21 -1
- package/presets/cursor/nuxt/agents/README.md +2 -1
- package/presets/cursor/nuxt/agents/accessibility-reviewer.md +8 -0
- package/presets/cursor/nuxt/agents/build-verifier.md +6 -0
- package/presets/cursor/nuxt/agents/ci-investigator.md +8 -0
- package/presets/cursor/nuxt/agents/debugger.md +12 -0
- package/presets/cursor/nuxt/agents/feature-developer.md +31 -0
- package/presets/cursor/nuxt/agents/migration-specialist.md +6 -0
- package/presets/cursor/nuxt/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/nuxt/agents/performance-auditor.md +8 -0
- package/presets/cursor/nuxt/agents/playwright-test-generator.md +9 -1
- package/presets/cursor/nuxt/agents/playwright-test-healer.md +9 -1
- package/presets/cursor/nuxt/agents/playwright-test-planner.md +1 -1
- package/presets/cursor/nuxt/agents/solution-architect.md +6 -0
- package/presets/cursor/nuxt/agents/task-analyst.md +35 -1
- package/presets/cursor/nuxt/agents/task-router.md +18 -3
- package/presets/cursor/nuxt/commands/spec-start.md +1 -1
- package/presets/cursor/nuxt/commands/task-continue.md +6 -4
- package/presets/cursor/nuxt/commands/task.md +2 -0
- package/presets/cursor/nuxt/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/nuxt/mcp.json +3 -3
- package/presets/cursor/nuxt/rules/README.md +4 -1
- package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +7 -3
- package/presets/cursor/nuxt/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/nuxt/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/nuxt/rules/feature-delivery-workflow.mdc +4 -1
- package/presets/cursor/nuxt/rules/mcp-usage.mdc +100 -0
- package/presets/cursor/nuxt/rules/mockup-review.mdc +116 -0
- package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/nuxt/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/nuxt/rules/product-specs.mdc +8 -4
- package/presets/cursor/nuxt/rules/ux-design.mdc +108 -0
- package/presets/cursor/nuxt/skills/README.md +4 -0
- package/presets/cursor/nuxt/skills/ci-investigation/SKILL.md +8 -0
- package/presets/cursor/nuxt/skills/code-review/SKILL.md +1 -1
- package/presets/cursor/nuxt/skills/debug-investigation/SKILL.md +13 -1
- package/presets/cursor/nuxt/skills/feature-delivery/SKILL.md +12 -1
- package/presets/cursor/nuxt/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/nuxt/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/nuxt/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/nuxt/team/README.md +11 -0
- package/presets/cursor/nuxt/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/cursor/nuxt/team/fixtures/feature-full.json +43 -9
- package/presets/cursor/nuxt/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/nuxt/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/nuxt/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/nuxt/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/nuxt/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/nuxt/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/php-hexagonal/AGENTS.md +1 -1
- package/presets/cursor/php-hexagonal/MCP.md +20 -1
- package/presets/cursor/php-hexagonal/agents/build-verifier.md +7 -1
- package/presets/cursor/php-hexagonal/agents/ci-investigator.md +8 -0
- package/presets/cursor/php-hexagonal/agents/debugger.md +8 -0
- package/presets/cursor/php-hexagonal/agents/feature-developer.md +23 -0
- package/presets/cursor/php-hexagonal/agents/migration-specialist.md +6 -0
- package/presets/cursor/php-hexagonal/agents/performance-auditor.md +6 -0
- package/presets/cursor/php-hexagonal/agents/solution-architect.md +6 -0
- package/presets/cursor/php-hexagonal/agents/task-analyst.md +17 -0
- package/presets/cursor/php-hexagonal/agents/task-router.md +7 -1
- package/presets/cursor/php-hexagonal/commands/spec-start.md +1 -1
- package/presets/cursor/php-hexagonal/mcp.json +1 -1
- package/presets/cursor/php-hexagonal/rules/README.md +2 -1
- package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +1 -0
- package/presets/cursor/php-hexagonal/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/php-hexagonal/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/php-hexagonal/rules/feature-delivery-workflow.mdc +2 -1
- package/presets/cursor/php-hexagonal/rules/mcp-usage.mdc +97 -0
- package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/php-hexagonal/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/php-hexagonal/rules/product-specs.mdc +8 -4
- package/presets/cursor/php-hexagonal/skills/README.md +1 -1
- package/presets/cursor/php-hexagonal/skills/ci-investigation/SKILL.md +7 -0
- package/presets/cursor/php-hexagonal/skills/code-review/SKILL.md +1 -0
- package/presets/cursor/php-hexagonal/skills/debug-investigation/SKILL.md +8 -0
- package/presets/cursor/php-hexagonal/skills/feature-delivery/SKILL.md +7 -1
- package/presets/cursor/php-hexagonal/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/php-hexagonal/team/README.md +8 -0
- package/presets/cursor/php-hexagonal/team/fixtures/feature-full.json +46 -10
- package/presets/cursor/php-hexagonal/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/php-laravel/AGENTS.md +1 -1
- package/presets/cursor/php-laravel/MCP.md +21 -0
- package/presets/cursor/php-laravel/agents/build-verifier.md +7 -1
- package/presets/cursor/php-laravel/agents/ci-investigator.md +8 -0
- package/presets/cursor/php-laravel/agents/debugger.md +8 -0
- package/presets/cursor/php-laravel/agents/feature-developer.md +23 -0
- package/presets/cursor/php-laravel/agents/migration-specialist.md +6 -0
- package/presets/cursor/php-laravel/agents/performance-auditor.md +6 -0
- package/presets/cursor/php-laravel/agents/solution-architect.md +6 -0
- package/presets/cursor/php-laravel/agents/task-analyst.md +17 -0
- package/presets/cursor/php-laravel/agents/task-router.md +7 -1
- package/presets/cursor/php-laravel/commands/spec-start.md +1 -1
- package/presets/cursor/php-laravel/mcp.json +1 -1
- package/presets/cursor/php-laravel/rules/README.md +2 -1
- package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +1 -0
- package/presets/cursor/php-laravel/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/php-laravel/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/php-laravel/rules/feature-delivery-workflow.mdc +2 -1
- package/presets/cursor/php-laravel/rules/mcp-usage.mdc +97 -0
- package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/php-laravel/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/php-laravel/rules/product-specs.mdc +8 -4
- package/presets/cursor/php-laravel/skills/README.md +1 -1
- package/presets/cursor/php-laravel/skills/ci-investigation/SKILL.md +7 -0
- package/presets/cursor/php-laravel/skills/code-review/SKILL.md +1 -0
- package/presets/cursor/php-laravel/skills/debug-investigation/SKILL.md +8 -0
- package/presets/cursor/php-laravel/skills/feature-delivery/SKILL.md +7 -1
- package/presets/cursor/php-laravel/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/php-laravel/team/README.md +7 -0
- package/presets/cursor/php-laravel/team/fixtures/feature-full.json +38 -9
- package/presets/cursor/php-laravel/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/svelte/MCP.md +21 -1
- package/presets/cursor/svelte/agents/README.md +2 -1
- package/presets/cursor/svelte/agents/accessibility-reviewer.md +8 -0
- package/presets/cursor/svelte/agents/build-verifier.md +6 -0
- package/presets/cursor/svelte/agents/ci-investigator.md +8 -0
- package/presets/cursor/svelte/agents/debugger.md +12 -0
- package/presets/cursor/svelte/agents/feature-developer.md +31 -0
- package/presets/cursor/svelte/agents/migration-specialist.md +6 -0
- package/presets/cursor/svelte/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/svelte/agents/performance-auditor.md +8 -0
- package/presets/cursor/svelte/agents/playwright-test-generator.md +9 -1
- package/presets/cursor/svelte/agents/playwright-test-healer.md +9 -1
- package/presets/cursor/svelte/agents/playwright-test-planner.md +1 -1
- package/presets/cursor/svelte/agents/solution-architect.md +6 -0
- package/presets/cursor/svelte/agents/task-analyst.md +35 -1
- package/presets/cursor/svelte/agents/task-router.md +18 -3
- package/presets/cursor/svelte/commands/spec-start.md +1 -1
- package/presets/cursor/svelte/commands/task-continue.md +6 -4
- package/presets/cursor/svelte/commands/task.md +2 -0
- package/presets/cursor/svelte/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/svelte/mcp.json +3 -3
- package/presets/cursor/svelte/rules/README.md +4 -1
- package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +7 -3
- package/presets/cursor/svelte/rules/anti-sycophancy-discipline.mdc +1 -1
- package/presets/cursor/svelte/rules/code-quality-and-refactoring.mdc +1 -1
- package/presets/cursor/svelte/rules/feature-delivery-workflow.mdc +4 -1
- package/presets/cursor/svelte/rules/mcp-usage.mdc +100 -0
- package/presets/cursor/svelte/rules/mockup-review.mdc +116 -0
- package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +5 -2
- package/presets/cursor/svelte/rules/product-specs-authoring.mdc +6 -4
- package/presets/cursor/svelte/rules/product-specs.mdc +8 -4
- package/presets/cursor/svelte/rules/ux-design.mdc +108 -0
- package/presets/cursor/svelte/skills/README.md +4 -0
- package/presets/cursor/svelte/skills/ci-investigation/SKILL.md +8 -0
- package/presets/cursor/svelte/skills/code-review/SKILL.md +1 -1
- package/presets/cursor/svelte/skills/debug-investigation/SKILL.md +13 -1
- package/presets/cursor/svelte/skills/feature-delivery/SKILL.md +12 -1
- package/presets/cursor/svelte/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/svelte/skills/spec-discovery/SKILL.md +58 -0
- package/presets/cursor/svelte/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/svelte/team/README.md +11 -0
- package/presets/cursor/svelte/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/cursor/svelte/team/fixtures/feature-full.json +43 -9
- package/presets/cursor/svelte/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/svelte/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/svelte/team/fixtures/memlog.example.md +9 -0
- package/presets/cursor/svelte/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/svelte/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/svelte/team/fixtures/ux-design-standalone.json +15 -0
- package/scripts/aggregate-agent-task-metrics.mjs +212 -0
- package/scripts/check-hook-only-lifecycle.sh +46 -0
- package/scripts/check-preset-i18n.sh +61 -0
- package/scripts/check-preset-leakage.sh +450 -0
- package/scripts/check-preset-structure.sh +70 -0
- package/scripts/check-preset-token-budget.sh +139 -0
- package/scripts/check-preset-twin-map.sh +122 -0
- package/scripts/check-product-specs.sh +90 -0
- package/scripts/check-rule-eval.mjs +149 -0
- package/scripts/check-shared-core-drift.sh +148 -0
- package/scripts/close-agent-task-human-gate.mjs +61 -0
- package/scripts/sync-dogfood-cursor.sh +70 -0
- package/scripts/sync-shared-core-embeds.sh +114 -0
- package/scripts/test-agent-task-metrics-hooks.mjs +895 -0
- package/scripts/test-cli-mcp-merge.mjs +137 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,69 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
Grouping for the next npm cut: **(A)** post-`0.2.18` delta — MCP merge, spec P0/P1, hook-only lifecycle, and the review follow-up below; **(B)** sections after MCP (UX, mockup reviewer, product-specs, android-kotlin, nuxt/svelte/php-laravel, …) were already Unreleased **on the `v0.2.18` tag** and were never versioned.
|
|
6
|
+
|
|
7
|
+
### Follow-up: review fixes (lifecycle, MCP merge, docs)
|
|
8
|
+
|
|
9
|
+
- Hook-only lifecycle sweep: 22 ios-swift agents, 8 next/nuxt/svelte/ios `code-review` skills, 5 Claude `feature-continue` commands, Claude Playwright generators, and backend `code-review` skills upsert `artifact-manifest.json` receipts and must not mutate `status.json`. New hard gate `check:hook-only-lifecycle` (wired into `check:preset-structure`).
|
|
10
|
+
- CLI `init` MCP merge: nested `env` / `headers` on shipped keys are preserved; invalid / JSONC / non-object files get a timestamped `*.bak.<iso>` then preset replace; `mcpServers` as an array is backed up and merged as empty extras. Tests cover those paths.
|
|
11
|
+
- Shipped MCP packages pinned: Context7 `@upstash/context7-mcp@4.0.2`, Playwright `@playwright/mcp@0.0.79`, Chrome DevTools `chrome-devtools-mcp@1.7.0` (no `@latest`).
|
|
12
|
+
- `mcp-usage`: Figma policy is stack-class-specific (UI Stack notes: only `mockup-reviewer` for mockup review). Overlay matching prefers documented aliases / `plugin-*` over substring guessing. Cursor adapters are requestable (no source-tree `globs`); Claude keeps `paths:` so the stem is not a 4th session-start rule.
|
|
13
|
+
- Docs: applyReadiness is YAML on `implementation.md` and a JSON-shaped object on the analyst receipt; Claude rules README twin FAIL list is all 10 stacks; backend AGENTS/CLAUDE inventories list 10 skills including `spec-authoring` / `spec-discovery`. Package README documents JSONC backup and non-sticky shipped-server deletes.
|
|
14
|
+
|
|
15
|
+
### Follow-up: hook-only lifecycle + stack-neutral discovery examples
|
|
16
|
+
|
|
17
|
+
- **`debug-investigation`** (next / nuxt / svelte / ios-swift, Cursor + Claude) upserts the owned `artifact-manifest.json` receipt; it must not mutate `status.json`. Cursor **`playwright-test-*`** (planner/generator/healer) and iOS **`xcuitest-test-*`** use the same receipt pattern.
|
|
18
|
+
- **`spec-discovery`** claim-ledger example is stack-neutral (no `app/src/ui/Cart.tsx`). Backend / mobile **`memlog.example.md`** fixtures no longer cite Next `CartEmpty.tsx`.
|
|
19
|
+
- Next **`tests-unit`** Incorrect/Correct pair includes a fenced Correct example (`yarn check:rule-eval`).
|
|
20
|
+
|
|
21
|
+
### Spec workflow P1 capabilities
|
|
22
|
+
|
|
23
|
+
- **`specMode`** (`consume` | `generate` | `none`) on `brief.md` / optional `pipeline.json`. Spike/research uses `none` — no dummy INDEX row.
|
|
24
|
+
- **`applyReadiness`:** YAML frontmatter on developer `implementation.md`; JSON-shaped `{ state: blocked|ready|all_done, contextFiles[] }` on the analyst receipt (analyst may emit `blocked` before the authoring gate).
|
|
25
|
+
- Requestable skill **`spec-discovery`** (11 methods, mandatory claim ledger). Analyst loads it only for research-before-spec — not default `/task` consume. Cursor + Claude ×10 stacks.
|
|
26
|
+
- **Memlog** `.cursor/team/tasks/<slug>/.memlog.md` (Claude: `.claude/…`) — append-only agent notes; hook does not parse it.
|
|
27
|
+
- **Code Map** (3–8 annotated paths) + **Suggested Review Order** when a WP spans more than one layer.
|
|
28
|
+
- Skills README catalogs include **`spec-authoring`** (was missing beside `spec-discovery`). Claude nuxt `task-router` writes `.claude/team` (not `.cursor/team`).
|
|
29
|
+
- Consumers: re-run `npx @bonesofspring/ai-rules init cursor|claude --preset <stack>` after publish.
|
|
30
|
+
|
|
31
|
+
### Spec workflow P0 hygiene
|
|
32
|
+
|
|
33
|
+
- Router intent **`spec-gen`** now has a default human gate `["after:task-analyst"]` on every stack `task-router` (hook will stop author drafts before `feature-developer`).
|
|
34
|
+
- Orchestrator **Entry points** lists **`/spec-start`** (intent `spec-gen` → analyst author mode → human gate) across Cursor + Claude twins.
|
|
35
|
+
- `feature-delivery` and `debug-investigation` skills, Cursor `playwright-test-*` (planner/generator/healer), and iOS `xcuitest-test-*` no longer tell agents to write `status.json`; the orchestration hook is the single lifecycle writer (receipts stay on `artifact-manifest.json`).
|
|
36
|
+
- Embed drift check includes `architecture/product-specs-authoring.md` (same mode as `product-specs`).
|
|
37
|
+
- npm tarball now ships `scripts/` so consumers can run `check-product-specs.sh` (and the other structure/drift checkers) from the package. The checker is bash INDEX/frontmatter/heading validation — it does **not** evaluate `frontmatter-v1.schema.json`. The schema’s hosted `$id` (404) was removed; `$comment` documents that split.
|
|
38
|
+
- Consumers: re-run `npx @bonesofspring/ai-rules init cursor|claude --preset <stack>` after publish to pick up Entry points / router / skill wording.
|
|
39
|
+
|
|
40
|
+
### MCP usage protocol + `mcp.json` merge
|
|
41
|
+
|
|
42
|
+
- New requestable shared-core stem **`mcp-usage`** (Cursor + Claude twins ×10 stacks). Runtime catalog is SoT. **Context7** (already shipped): query installed-major docs when lockfile + sibling files are not enough; cap ≤3 queries; degrade to `// VERIFY` if down — do not block.
|
|
43
|
+
- **Chrome DevTools** (already shipped on next/nuxt/svelte): wired for `debugger` / `performance-auditor` against a running app. Playwright MCP stays the e2e path. Not interchangeable.
|
|
44
|
+
- **Local overlay** (not shipped): Storybook (`user-storybook` / `@storybook/addon-mcp`), Sentry/Datadog, Linear/Jira/Notion, optional GitHub MCP. Use only when the server is ready **and** the task fits. Ticket MCP is read-only; task-folder artifacts remain SoT. No new pipeline agents.
|
|
45
|
+
- `anti-sycophancy-discipline` rule 1 and always-on `code-quality` essentials point at Context7 via `mcp-usage`.
|
|
46
|
+
- CLI **`init` merges `mcpServers`**: extra local servers are kept; shipped keys update; nested `env` / `headers` on shipped keys are preserved unless the preset defines them. Invalid / JSONC / non-object JSON is copied to a timestamped `*.bak.<iso>` and replaced with the preset (extras are not merged on that path). Deleting a shipped server is not sticky across re-init. Help + package README updated.
|
|
47
|
+
- Leakage: `storybook-reviewer` forbidden as an agent stem on backend/mobile; Storybook/Chrome DevTools must not be required handoffs there.
|
|
48
|
+
- Consumers: re-run `npx @bonesofspring/ai-rules init cursor|claude --preset <stack>` after publish. Overlay servers in project `mcp.json` survive re-init **when the existing file is valid JSON**.
|
|
49
|
+
|
|
50
|
+
### UX design skill (UI stacks)
|
|
51
|
+
|
|
52
|
+
- New requestable skill/rule **`ux-design`** on **`next`**, **`nuxt`**, **`svelte`**, **`ios-swift`**, **`android-kotlin`** (Cursor + Claude twins). Shared-core checklist: `presets/_shared/core/review/ux-design.md`. Invoked by **`task-analyst`** — **no** `ux-designer` agent, **no** FAIL-only hook, **no** Figma MCP in the skill/rule.
|
|
53
|
+
- Standalone intent **`ux-design`**: synthesize or review behavioral UX (IA, named flows, empty/error/loading matrix) → profile `light`, steps only `task-analyst`, `humanGates: []`. Classify `mockup-review` before `ux-design` before `review-only`.
|
|
54
|
+
- Embedded: on UI required-signal or advisory AC, analyst loads the skill (no new pipeline step). Required `INCOMPLETE` blocks DoR; advisory notes only. Developer gate: required-signal + no Figma + missing/`INCOMPLETE` UX artifact → `blocked`, hand back to analyst.
|
|
55
|
+
- Backend stacks (`go`, `java`, `mcp-ts`, `php-*`) never ship `skills/ux-design` / `rules/ux-design` or `agents/ux-designer.md`; leakage checker forbids those stems.
|
|
56
|
+
- `/task` examples include standalone UX (no Figma). `artifact-manifest.example.json` analysis paths append `ux-design.md` on web stacks.
|
|
57
|
+
- Consumers: re-run `npx @bonesofspring/ai-rules init cursor|claude --preset <ui-stack>` after publish.
|
|
58
|
+
|
|
59
|
+
### Mockup reviewer (UI stacks)
|
|
60
|
+
|
|
61
|
+
- New **`mockup-reviewer`** agent + requestable skill/rule **`mockup-review`** on **`next`**, **`nuxt`**, **`svelte`**, **`ios-swift`**, **`android-kotlin`** (Cursor + Claude twins). Shared-core checklist: `presets/_shared/core/review/mockup-review.md`. Report template fence is a single closed block (no stray fence after AC coverage).
|
|
62
|
+
- Standalone intent **`mockup-review`**: `/task` + Figma URL (e.g. «ревью макета …») → profile `light`, steps only `mockup-reviewer`, report-only exit on FAIL (like `perf-audit`).
|
|
63
|
+
- Embedded: `figma.com` in feature/refactor/spike/spec-gen → reviewer after `task-analyst`, before architect/developer. Embedded **FAIL** → receipt `changes_requested` + FAIL-only hook gate (`awaiting_approval`); resume via `/task-continue` only — no `feature-developer` retry. Orchestrator rule 6 and UI `chain-team-phases.sh` parallel-join now match that exception; ios-swift/android-kotlin `AGENT_HANDOFF` includes `mockup-reviewer`. Never put `mockup-reviewer` in `parallel: true`.
|
|
64
|
+
- Figma MCP-first (read-only subset + node caps); `BLOCKED_MCP` when OAuth/MCP unavailable. Go keeps optional Figma MCP for ad-hoc context — **not** a mockup-review pipeline.
|
|
65
|
+
- Backend stacks (`go`, `java`, `mcp-ts`, `php-*`) never schedule `mockup-reviewer`; leakage checker forbids agent stem on backend.
|
|
66
|
+
- Consumers: re-run `npx @bonesofspring/ai-rules init cursor|claude --preset <ui-stack>` after publish.
|
|
67
|
+
|
|
5
68
|
### Product specs authoring (Phases A–E)
|
|
6
69
|
|
|
7
70
|
- **Generation modes** (shared-core): **Consume** (default discovery, soft-fail on miss) · **Generate** (explicit intent / AC / `/spec-start` with existing tree) · **Bootstrap** (same triggers when `docs/specs/` absent). Greenfield policy: no INDEX/spec invention without explicit intent; conflict precedence human > brief AC > approved spec > code.
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ npx @bonesofspring/ai-rules clean cursor
|
|
|
13
13
|
|
|
14
14
|
Global: `npm i -g @bonesofspring/ai-rules`, then `ai-rules ...`.
|
|
15
15
|
|
|
16
|
-
`init` merges into the **current working directory** (or `--cwd <dir>`): dirs are created, matching files are **overwritten
|
|
16
|
+
`init` merges into the **current working directory** (or `--cwd <dir>`): dirs are created, matching files are **overwritten**, except **`mcp.json` / `.mcp.json`** where `mcpServers` is **merged** (extra local servers are kept; shipped keys update; nested `env` / `headers` on shipped keys are preserved unless the preset defines them). `--preset` defaults to **`next`**. Supported forms:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npx @bonesofspring/ai-rules init cursor --preset next
|
|
@@ -24,6 +24,8 @@ npx @bonesofspring/ai-rules cursor init --preset next
|
|
|
24
24
|
|
|
25
25
|
If `.cursor` does not appear, check the command output for errors and confirm you run init from the **target project root** (where the app lives), not from `node_modules`. Success ends with: `Done. .cursor installed at <absolute-path>`.
|
|
26
26
|
|
|
27
|
+
**`mcp.json` troubleshooting:** extra overlay servers survive re-init only when the existing file is **valid JSON**. JSONC / trailing commas / a non-object file is copied to a timestamped `mcp.json.bak.<iso>` (or `.mcp.json.bak.<iso>`) and **replaced with the preset** — extras are not merged on that path. Nested `env` / `headers` on shipped server names are kept when the file is valid. Deleting a shipped server (Playwright, Chrome DevTools, Context7, Figma) is **not sticky**: the next `init` restores it.
|
|
28
|
+
|
|
27
29
|
### `clean` (breaking vs older wipe behavior)
|
|
28
30
|
|
|
29
31
|
`clean cursor` / `clean claude` removes **only CLI-managed paths** — not the entire `.cursor/` or `.claude/` tree:
|
|
@@ -47,12 +49,12 @@ Where things go on `init`:
|
|
|
47
49
|
| hooks cookbook | `.cursor/hooks/examples/` (not in default `hooks.json`) | `.claude/hooks/examples/` |
|
|
48
50
|
| skills | `.cursor/skills` | `.claude/skills` |
|
|
49
51
|
| team artifacts template | `.cursor/team` (incl. `conventions.md`) | `.claude/team` |
|
|
50
|
-
| MCP | `mcp.json` → `.cursor/mcp.json
|
|
52
|
+
| MCP | `mcp.json` → `.cursor/mcp.json` (**merge** `mcpServers`), `MCP.md` → `.cursor/` | `mcp.json` → **`.mcp.json`** (project root, **merge** `mcpServers`), `MCP.md` → `.claude/` |
|
|
51
53
|
| tool map | `AGENTS.md` → `.cursor/AGENTS.md`, `BUGBOT.md` | `CLAUDE.md` → `.claude/CLAUDE.md` |
|
|
52
54
|
| **repo-root agents** | `REPO_AGENTS.md` → **`<cwd>/AGENTS.md`** | same |
|
|
53
55
|
| **docs/specs seed** | When `<cwd>/docs/specs/` is **absent**, copy INDEX stub + `_templates/*` from `presets/_shared/assets/docs-specs/` (never overwrite existing INDEX) | same |
|
|
54
56
|
|
|
55
|
-
Skills of note: `write-adr` (all stacks); `spec-authoring` (Generate/Bootstrap `docs/specs`); `react-performance` (**next only**); `vue-performance` (**nuxt only**); `svelte-performance` (**svelte only**). Optional command `/spec-start`. Living gotchas: `team/conventions.md`. Opt-in rule samples eval: `yarn check:rule-eval` (workflow `rule-eval.yml`; not part of `check:preset-structure`). Optional consumer specs check: `yarn check:product-specs` (WARN default; `--strict` FAIL).
|
|
57
|
+
Skills of note: `write-adr` (all stacks); `spec-authoring` (Generate/Bootstrap `docs/specs`); `mockup-review` (**next** / **nuxt** / **svelte** / **ios-swift** / **android-kotlin** — Figma mockup reviewer via agent `mockup-reviewer`); `ux-design` (**next** / **nuxt** / **svelte** / **ios-swift** / **android-kotlin** — behavioral UX via `task-analyst`, no agent); `react-performance` (**next only**); `vue-performance` (**nuxt only**); `svelte-performance` (**svelte only**). Optional command `/spec-start`. Living gotchas: `team/conventions.md`. Opt-in rule samples eval: `yarn check:rule-eval` (workflow `rule-eval.yml`; not part of `check:preset-structure`). Optional consumer specs check: `yarn check:product-specs` (WARN default; `--strict` FAIL).
|
|
56
58
|
|
|
57
59
|
## Product specs (`docs/specs/`)
|
|
58
60
|
|
|
@@ -101,7 +103,7 @@ Presets are developed in this monorepo under `presets/`. If you add or change ru
|
|
|
101
103
|
|
|
102
104
|
- **Taxonomy & layers:** [`presets/_shared/README.md`](presets/_shared/README.md) — shared core (`_shared/core`), stack adapters, platform packaging (includes requestable embed stem `architecture/product-specs` for consumer `docs/specs` INDEX discovery)
|
|
103
105
|
- **Contribution guide:** [`docs/PRESET-CONTRIBUTION.md`](docs/PRESET-CONTRIBUTION.md) — SoT, twin sync, embed vs lineage, token budget (≤3 always-on), PR checklist, new stack preset, platform-only files (`BUGBOT.md`, `CLAUDE.md`)
|
|
104
|
-
- **Dogfood / drift scripts:** [`scripts/sync-dogfood-cursor.sh`](scripts/sync-dogfood-cursor.sh) (also syncs root `AGENTS.md` from `REPO_AGENTS.md`; seeds `team/conventions.md` if absent), [`scripts/check-shared-core-drift.sh`](scripts/check-shared-core-drift.sh)
|
|
106
|
+
- **Dogfood / drift scripts:** [`scripts/sync-dogfood-cursor.sh`](scripts/sync-dogfood-cursor.sh) (also syncs root `AGENTS.md` from `REPO_AGENTS.md`; seeds `team/conventions.md` if absent), [`scripts/check-shared-core-drift.sh`](scripts/check-shared-core-drift.sh). Published npm `files` include `scripts/` so consumers can run `check-product-specs.sh` from the package.
|
|
105
107
|
- **Preset structure CI gates** (exit non-zero on FAIL): `yarn check:preset-structure` (or `bash scripts/check-preset-structure.sh`) — twin map, session-start budget (Option A), leakage, shared-core drift (`AI_RULES_DRIFT_FAIL=1`)
|
|
106
108
|
- **Opt-in rule eval:** `yarn check:rule-eval` + `.github/workflows/rule-eval.yml` (`workflow_dispatch` + paths-scoped PR) — **not** wired into `check:preset-structure`
|
|
107
109
|
- **CLI note:** `_shared` is not an installable `--preset`; `init` copies only `presets/cursor/<name>/` or `presets/claude/<name>/`
|
package/bin/cli.js
CHANGED
|
@@ -60,7 +60,10 @@ Options:
|
|
|
60
60
|
--cwd <dir> Target project directory (default: current working directory)
|
|
61
61
|
|
|
62
62
|
Notes:
|
|
63
|
-
init merges into the target directory; same-named files are overwritten.
|
|
63
|
+
init merges into the target directory; same-named files are overwritten except mcp.json
|
|
64
|
+
(mcpServers is merged: extra local servers are kept; shipped keys update; nested env/headers
|
|
65
|
+
on shipped keys are preserved unless the preset defines them. Invalid / non-object JSON is
|
|
66
|
+
copied to a timestamped *.bak.* then replaced with the preset file. JSONC is not supported).
|
|
64
67
|
Cursor init copies rules, commands, agents, hooks, skills, team, hooks.json, BUGBOT.md, AGENTS.md → .cursor/AGENTS.md, MCP.md, mcp.json → .cursor/mcp.json.
|
|
65
68
|
Claude init copies rules, commands, skills, agents, hooks, team, CLAUDE.md, MCP.md, and mcp.json → .mcp.json (project root).
|
|
66
69
|
Both tools also copy REPO_AGENTS.md → <cwd>/AGENTS.md (repo-root cross-tool agents file; overwrite).
|
|
@@ -204,6 +207,112 @@ function assertPresetDirInsideRoot(presetsRoot, presetBase) {
|
|
|
204
207
|
}
|
|
205
208
|
}
|
|
206
209
|
|
|
210
|
+
function isPlainObject(value) {
|
|
211
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function ownKeys(object) {
|
|
215
|
+
return Object.keys(object).filter((key) => Object.hasOwn(object, key));
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
function backupMcpFile(mcpDestAbs) {
|
|
219
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
220
|
+
const bak = `${mcpDestAbs}.bak.${stamp}`;
|
|
221
|
+
fs.copyFileSync(mcpDestAbs, bak);
|
|
222
|
+
return bak;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function replaceMcpWithPreset(mcpFrom, mcpDestAbs, reason) {
|
|
226
|
+
const bak = backupMcpFile(mcpDestAbs);
|
|
227
|
+
fs.copyFileSync(mcpFrom, mcpDestAbs);
|
|
228
|
+
console.warn(`${reason}; backed up to ${bak} and replaced with the preset file.`);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Merge one shipped server object. Preset scalar fields win; nested `env` / `headers`
|
|
233
|
+
* keep consumer keys unless the preset defines the same nested key.
|
|
234
|
+
*/
|
|
235
|
+
function mergeServerEntry(existingEntry, presetEntry) {
|
|
236
|
+
if (!isPlainObject(existingEntry) || !isPlainObject(presetEntry)) {
|
|
237
|
+
return presetEntry;
|
|
238
|
+
}
|
|
239
|
+
const merged = { ...existingEntry, ...presetEntry };
|
|
240
|
+
for (const nested of ['env', 'headers']) {
|
|
241
|
+
const existingNested = existingEntry[nested];
|
|
242
|
+
const presetNested = presetEntry[nested];
|
|
243
|
+
if (isPlainObject(existingNested) && isPlainObject(presetNested)) {
|
|
244
|
+
merged[nested] = { ...existingNested, ...presetNested };
|
|
245
|
+
} else if (isPlainObject(existingNested) && presetNested === undefined) {
|
|
246
|
+
merged[nested] = existingNested;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return merged;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Extra local `mcpServers` keys are kept. Shipped keys update; nested `env` / `headers`
|
|
254
|
+
* on overlapping keys are preserved unless the preset defines them.
|
|
255
|
+
* Other unknown top-level keys on the existing file are preserved.
|
|
256
|
+
* @returns {{ merged: object, extrasKept: string[], existingServersInvalid: boolean }}
|
|
257
|
+
*/
|
|
258
|
+
function mergeMcpConfig(presetObj, existingObj) {
|
|
259
|
+
const preset = isPlainObject(presetObj) ? presetObj : {};
|
|
260
|
+
const existing = isPlainObject(existingObj) ? existingObj : {};
|
|
261
|
+
const existingServersInvalid =
|
|
262
|
+
Object.hasOwn(existing, 'mcpServers') && !isPlainObject(existing.mcpServers);
|
|
263
|
+
const presetServers = isPlainObject(preset.mcpServers) ? preset.mcpServers : {};
|
|
264
|
+
const existingServers =
|
|
265
|
+
!existingServersInvalid && isPlainObject(existing.mcpServers) ? existing.mcpServers : {};
|
|
266
|
+
const extrasKept = ownKeys(existingServers).filter((key) => !Object.hasOwn(presetServers, key));
|
|
267
|
+
const mergedServers = { ...existingServers };
|
|
268
|
+
for (const key of ownKeys(presetServers)) {
|
|
269
|
+
mergedServers[key] = mergeServerEntry(existingServers[key], presetServers[key]);
|
|
270
|
+
}
|
|
271
|
+
return {
|
|
272
|
+
merged: { ...existing, ...preset, mcpServers: mergedServers },
|
|
273
|
+
extrasKept,
|
|
274
|
+
existingServersInvalid,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function installMcpJson(mcpFrom, mcpDestAbs, destLabel) {
|
|
279
|
+
const presetRaw = fs.readFileSync(mcpFrom, 'utf8');
|
|
280
|
+
const presetObj = JSON.parse(presetRaw);
|
|
281
|
+
if (!fs.existsSync(mcpDestAbs)) {
|
|
282
|
+
fs.mkdirSync(path.dirname(mcpDestAbs), { recursive: true });
|
|
283
|
+
fs.copyFileSync(mcpFrom, mcpDestAbs);
|
|
284
|
+
console.log(`Copied ${path.basename(mcpFrom)} → ${destLabel}`);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
let existingObj;
|
|
288
|
+
try {
|
|
289
|
+
existingObj = JSON.parse(fs.readFileSync(mcpDestAbs, 'utf8'));
|
|
290
|
+
} catch {
|
|
291
|
+
replaceMcpWithPreset(mcpFrom, mcpDestAbs, `Existing ${destLabel} was not valid JSON`);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (!isPlainObject(existingObj)) {
|
|
295
|
+
replaceMcpWithPreset(mcpFrom, mcpDestAbs, `Existing ${destLabel} was not a JSON object`);
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const { merged, extrasKept, existingServersInvalid } = mergeMcpConfig(presetObj, existingObj);
|
|
299
|
+
if (existingServersInvalid) {
|
|
300
|
+
const bak = backupMcpFile(mcpDestAbs);
|
|
301
|
+
console.warn(
|
|
302
|
+
`Existing ${destLabel} mcpServers was not a JSON object; backed up to ${bak} and merging as empty extras.`,
|
|
303
|
+
);
|
|
304
|
+
}
|
|
305
|
+
fs.mkdirSync(path.dirname(mcpDestAbs), { recursive: true });
|
|
306
|
+
fs.writeFileSync(mcpDestAbs, `${JSON.stringify(merged, null, 2)}\n`);
|
|
307
|
+
if (extrasKept.length > 0) {
|
|
308
|
+
console.log(
|
|
309
|
+
`Merged ${path.basename(mcpFrom)} → ${destLabel} (kept extra servers: ${extrasKept.join(', ')})`,
|
|
310
|
+
);
|
|
311
|
+
} else {
|
|
312
|
+
console.log(`Merged ${path.basename(mcpFrom)} → ${destLabel}`);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
207
316
|
function copyDir(src, dest) {
|
|
208
317
|
if (!fs.existsSync(src)) {
|
|
209
318
|
throw new Error(`Source not found: ${src}`);
|
|
@@ -431,9 +540,7 @@ function cmdInit(tool, preset, cwdOption) {
|
|
|
431
540
|
const mcpFrom = path.join(base, cfg.mcpJsonSrc);
|
|
432
541
|
if (fs.existsSync(mcpFrom)) {
|
|
433
542
|
const mcpDestAbs = path.join(cwd, cfg.mcpJsonDest);
|
|
434
|
-
|
|
435
|
-
fs.copyFileSync(mcpFrom, mcpDestAbs);
|
|
436
|
-
console.log(`Copied ${cfg.mcpJsonSrc} → ${cfg.mcpJsonDest}`);
|
|
543
|
+
installMcpJson(mcpFrom, mcpDestAbs, cfg.mcpJsonDest);
|
|
437
544
|
copiedSteps++;
|
|
438
545
|
}
|
|
439
546
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bonesofspring/ai-rules",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.19",
|
|
4
4
|
"description": "Presets of Cursor and Claude rules/commands for Revy Ross personal use",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Revy Ross",
|
|
@@ -22,18 +22,21 @@
|
|
|
22
22
|
"README.md",
|
|
23
23
|
"CHANGELOG.md",
|
|
24
24
|
"bin",
|
|
25
|
-
"presets"
|
|
25
|
+
"presets",
|
|
26
|
+
"scripts"
|
|
26
27
|
],
|
|
27
28
|
"scripts": {
|
|
28
29
|
"check:preset-structure": "bash scripts/check-preset-structure.sh",
|
|
29
30
|
"check:preset-twin-map": "bash scripts/check-preset-twin-map.sh",
|
|
30
31
|
"check:preset-token-budget": "bash scripts/check-preset-token-budget.sh",
|
|
31
32
|
"check:preset-leakage": "bash scripts/check-preset-leakage.sh",
|
|
33
|
+
"check:hook-only-lifecycle": "bash scripts/check-hook-only-lifecycle.sh",
|
|
32
34
|
"check:preset-i18n": "AI_RULES_I18N_FAIL=1 AI_RULES_I18N_SOFT=0 bash scripts/check-preset-i18n.sh",
|
|
33
35
|
"check:shared-core-drift": "bash scripts/check-shared-core-drift.sh",
|
|
34
36
|
"check:product-specs": "bash scripts/check-product-specs.sh",
|
|
35
37
|
"check:product-specs:dogfood": "bash scripts/check-product-specs.sh ../../dogfood/mcp-ts-sample",
|
|
36
|
-
"check:rule-eval": "node scripts/check-rule-eval.mjs"
|
|
38
|
+
"check:rule-eval": "node scripts/check-rule-eval.mjs",
|
|
39
|
+
"test:cli-mcp-merge": "node scripts/test-cli-mcp-merge.mjs"
|
|
37
40
|
},
|
|
38
41
|
"engines": {
|
|
39
42
|
"node": ">=18"
|
|
@@ -36,10 +36,10 @@ Do **not** expect lineage adapters to byte-match core. Embed adapters should mat
|
|
|
36
36
|
|
|
37
37
|
| Dir | Contents |
|
|
38
38
|
|-----|----------|
|
|
39
|
-
| `core/quality/` | Boy-scout + Principles (always-on slim); requestable `anti-sycophancy-discipline` (~17 rules); requestable `design-guidance` (smells ≤12 + GoF ≤8) |
|
|
39
|
+
| `core/quality/` | Boy-scout + Principles (always-on slim); requestable `anti-sycophancy-discipline` (~17 rules); requestable `design-guidance` (smells ≤12 + GoF ≤8); requestable `mcp-usage` (Context7 + local overlay MCP) |
|
|
40
40
|
| `core/agent-team/` | Orchestrator + intake (pipeline language) |
|
|
41
41
|
| `core/architecture/` | Feature-delivery abstract + reference-features template + product-specs (+ product-specs-authoring) + assets/docs-specs templates |
|
|
42
|
-
| `core/review/` | Code-review MR + technical-retro alias |
|
|
42
|
+
| `core/review/` | Code-review MR + technical-retro alias + mockup-review checklist + ux-design checklist |
|
|
43
43
|
| `core/meta/` | Author-facing preset meta-rules |
|
|
44
44
|
|
|
45
45
|
## CLI note
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$
|
|
3
|
+
"$comment": "Shipped with the npm package as documentation. scripts/check-product-specs.sh validates required keys and headings in bash; it does not load or evaluate this file.",
|
|
4
4
|
"title": "Product spec frontmatter v1",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": ["id", "type", "domain", "routes", "ui", "store", "api", "aliases", "e2e"],
|
|
@@ -103,12 +103,53 @@ A producer finishes its step by upserting only its owned artifact entry and term
|
|
|
103
103
|
| `security-reviewer` | `security-review` | `security-review.md` |
|
|
104
104
|
| `accessibility-reviewer` | `a11y-review` | `a11y-review.md` |
|
|
105
105
|
| `performance-auditor` | `perf-report` | `perf-report.md` |
|
|
106
|
+
| `mockup-reviewer` | `mockup-review` | `mockup-review.md` |
|
|
106
107
|
| `api-contract-reviewer` | `api-contract-review` | `api-contract-review.md` |
|
|
107
108
|
| `qa-tester` / unit or e2e planners | stack-native test IDs | plan/spec paths named in the agent prompt |
|
|
108
109
|
| `tech-writer` | `documentation` | `documentation.md` |
|
|
109
110
|
|
|
110
111
|
Use these defaults unless a step's `artifactOutputId` / `artifactOutputIds` assigns a distinct owned ID (parallel reviewers must not share one `id`). `artifactInputIds` defaults to the applicable authoritative entries already present in the manifest.
|
|
111
112
|
|
|
113
|
+
**v1 UX artifact:** when `task-analyst` produces `ux-design.md`, append it to the **`analysis`** entry `authoritativePaths` and `evidencePaths`. Do **not** add a default producer row for `ux-designer` in v1.
|
|
114
|
+
|
|
115
|
+
## specMode
|
|
116
|
+
|
|
117
|
+
Primary location: `brief.md` heading `## Spec mode` with exactly one of `consume` | `generate` | `none` (analyst writes). Optional mirror: top-level `pipeline.json` `specMode` (router echo). Brief wins on conflict.
|
|
118
|
+
|
|
119
|
+
| Value | When | Behavior |
|
|
120
|
+
|-------|------|----------|
|
|
121
|
+
| `consume` | Default when INDEX exists and there is no generate intent | Discover via INDEX; never invent specs |
|
|
122
|
+
| `generate` | `/spec-start`, router `spec-gen`, or brief AC | Author/bootstrap INDEX + specs |
|
|
123
|
+
| `none` | Spike / research / preset-only; no product-behavior SoT | Skip INDEX row requirement and author mode; do not invent a dummy INDEX |
|
|
124
|
+
|
|
125
|
+
## applyReadiness
|
|
126
|
+
|
|
127
|
+
Optional JSON on the producer receipt and, for `feature-developer`, YAML frontmatter on `implementation.md`:
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"state": "blocked",
|
|
132
|
+
"contextFiles": ["docs/specs/domains/orders/page-checkout.md"]
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
| `state` | Meaning | Typical emitter |
|
|
137
|
+
|---------|---------|-----------------|
|
|
138
|
+
| `blocked` | Do not implement; read `contextFiles` | analyst (pre-gate), developer (missing SoT) |
|
|
139
|
+
| `ready` | Safe to implement the current WP | developer |
|
|
140
|
+
| `all_done` | WP complete; mechanical spec sync done | developer terminal receipt |
|
|
141
|
+
|
|
142
|
+
`contextFiles` are repo-relative paths the next agent must read or that block progress.
|
|
143
|
+
|
|
144
|
+
## Memlog
|
|
145
|
+
|
|
146
|
+
Optional append-only file beside slug artifacts:
|
|
147
|
+
|
|
148
|
+
- Cursor: `.cursor/team/tasks/<slug>/.memlog.md`
|
|
149
|
+
- Claude: `.claude/team/tasks/<slug>/.memlog.md`
|
|
150
|
+
|
|
151
|
+
Agent-written chronological markdown (`## YYYY-MM-DD` headings). Suggested line tags: `decision`, `assumption`, `override`, `event`, `claim`. Writers: `task-analyst`, `feature-developer`. `/task-continue` may read it. The hook does **not** parse memlog and does **not** treat it as `status.json` / `metrics.json`.
|
|
152
|
+
|
|
112
153
|
## Minimal terminal handoff
|
|
113
154
|
|
|
114
155
|
Report the owned entry ID, outcome, authoritative paths, covered AC/task IDs, and remaining gaps. The hook advances pipeline state from the terminal receipt; the agent receipt is evidence that drives the state transition, not a substitute for writing `status.json`.
|
|
@@ -12,6 +12,7 @@ Work request without `/task` — see **agent-team-intake** (when to suggest the
|
|
|
12
12
|
| `/task-continue <slug>` | After human gate or pause |
|
|
13
13
|
| `/feature-start <desc>` | Legacy: analyst-only start (no router) |
|
|
14
14
|
| `/feature-continue <slug>` | Alias of task-continue |
|
|
15
|
+
| `/spec-start [desc]` | Generate/bootstrap `docs/specs` — router intent `spec-gen` → analyst author mode → human gate |
|
|
15
16
|
| `/technical-retro [slug]` | Retro with agent team block |
|
|
16
17
|
|
|
17
18
|
## Roles (shared catalog)
|
|
@@ -20,9 +21,9 @@ Roster of specialists is **stack-specific** (agent names and write scopes differ
|
|
|
20
21
|
|
|
21
22
|
| Kind | Examples (names vary by stack) |
|
|
22
23
|
|------|--------------------------------|
|
|
23
|
-
| Planning | `task-router`, `task-analyst
|
|
24
|
+
| Planning | `task-router`, `task-analyst` (plus skill `ux-design` for behavioral UX **where the stack has a UI surface**), `solution-architect`, `migration-specialist` |
|
|
24
25
|
| Implementation | `feature-developer`, `debugger`, `ci-investigator` |
|
|
25
|
-
| Gates / review | `build-verifier`, `code-reviewer`, `security-reviewer`, `performance-auditor`; plus stack-native a11y/UI reviewer **only when the stack has a UI surface** |
|
|
26
|
+
| Gates / review | `build-verifier`, `code-reviewer`, `security-reviewer`, `performance-auditor`; plus stack-native a11y/UI reviewer and `mockup-reviewer` **only when the stack has a UI surface** |
|
|
26
27
|
| Tests | unit planner/generator/healer; e2e/UI planner/generator/healer (stack-native) |
|
|
27
28
|
| Docs | `tech-writer` |
|
|
28
29
|
|
|
@@ -158,8 +159,8 @@ On each `subagentStop`, the hook reconciles `status.state` from the completing p
|
|
|
158
159
|
2. Read `pipeline.json` before every subagent invocation.
|
|
159
160
|
3. One role per Task call — **except** parallel steps: multiple Task calls in one message.
|
|
160
161
|
4. **Never** skip `humanGates` without `/task-continue` or explicit user approval.
|
|
161
|
-
5. Persist handoffs to disk (`brief.md`, `decomposition.md`, `debug-report.md`, `validation-report.md`, `architecture.md`, `migration-plan.md`, `ci-report.md`, `a11y-review.md`, `perf-report.md`, `security-review.md`, `api-contract-review.md`, `unit-test-plan.md`, `documentation.md`, `review.md`) and update the producer-owned terminal receipt in `artifact-manifest.json`.
|
|
162
|
-
6. On `changes_requested` from reviewers: hook sets `retryAfterFix` → developer → same reviewer.
|
|
162
|
+
5. Persist handoffs to disk (`brief.md`, `decomposition.md`, `debug-report.md`, `validation-report.md`, `architecture.md`, `migration-plan.md`, `ci-report.md`, `a11y-review.md`, `perf-report.md`, `security-review.md`, `api-contract-review.md`, `unit-test-plan.md`, `documentation.md`, `review.md`, `mockup-review.md`, `ux-design.md`) and update the producer-owned terminal receipt in `artifact-manifest.json`.
|
|
163
|
+
6. On `changes_requested` from reviewers: hook sets `retryAfterFix` → developer → same reviewer. Exception: embedded `mockup-reviewer` FAIL (`changes_requested` while the completed/current agent is `mockup-reviewer`) → `awaiting_approval` / `/task-continue` only — do **not** `retryAfterFix` to developer.
|
|
163
164
|
7. On `validation_failed` from `build-verifier`: hook sets `retryAfterFix: build-verifier` → developer → build-verifier.
|
|
164
165
|
8. When all steps complete, suggest `/technical-retro <slug>`.
|
|
165
166
|
9. If `autoChain: false` in pipeline, do not rely on hook — manual step only.
|
|
@@ -8,9 +8,9 @@ Typical feature with data and UI. Concrete directories and rule stems — in the
|
|
|
8
8
|
2. **Transport / DTO** — DTOs and mappers Domain ↔ transport (must not leak into UI).
|
|
9
9
|
3. **Services / Data** — repository / API-service implementations via the stack’s public clients.
|
|
10
10
|
4. **State** — store / ViewModel / use cases; no direct HTTP and no DTOs in UI.
|
|
11
|
-
5. **UI** — thin views/components; data via state; design system.
|
|
11
|
+
5. **UI** — thin views/components; data via state; design system. If the prompt or `brief.md` contains a `figma.com` URL, **mockup review must complete** (or the user must continue past FAIL/`BLOCKED_MCP` via `/task-continue`) **before UI work**. When required-signal and **no** `figma.com`, **`ux-design.md` must exist** (not `INCOMPLETE`) before UI work — else blocked, hand back to analyst. Non-UI tasks no-op these gates.
|
|
12
12
|
6. **Tests** — unit for mappers / non-trivial logic; e2e/UI per stack convention.
|
|
13
|
-
7. **Completion** — stack post-change gate (lint/build) + package/toolchain rules.
|
|
13
|
+
7. **Completion** — stack post-change gate (lint/build) + package/toolchain rules. When the current WP spans **more than one** layer or module, `implementation.md` includes a **Code Map** (3–8 annotated repo-relative paths) and **Suggested Review Order** (`concern | path:line | ≤15 word note`). Omit both for a single-file or single-layer WP.
|
|
14
14
|
|
|
15
15
|
## Data flow (orientation)
|
|
16
16
|
|
|
@@ -40,6 +40,7 @@ flowchart LR
|
|
|
40
40
|
- Breaking layer boundaries for brevity.
|
|
41
41
|
- **Ubiquitous language:** Domain/type names and boundaries reflect the feature’s subject domain — do not mix transport/framework terms into the domain without need; presentation must not dictate the model vocabulary.
|
|
42
42
|
- When assessing structure, smells, or pattern choice — load requestable **`design-guidance`** (not always-on); do not copy the catalog into the feature checklist.
|
|
43
|
+
- Do not mutate pipeline `status.json` / `metrics.json`; the orchestration hook is the single writer. Skills upsert the owned terminal receipt in `artifact-manifest.json`.
|
|
43
44
|
|
|
44
45
|
## Zone → rules matrix
|
|
45
46
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Load when **Generate** or **Bootstrap** is requested (`/spec-start`, router `spec-gen`, brief AC, or analyst author mode). Discovery-only work stays on **`product-specs`**.
|
|
4
4
|
|
|
5
|
+
**Optional prefix:** when the user or AC asks **research-before-spec**, load skill **`spec-discovery`** first (subset of methods; **claim-ledger** mandatory). Not the default `/task` consume path and not a new pipeline step.
|
|
6
|
+
|
|
5
7
|
## Modes
|
|
6
8
|
|
|
7
9
|
1. **Consume** — default; never invent INDEX/specs (see `product-specs`).
|
|
@@ -75,7 +77,7 @@ Compliant = valid frontmatter + all required headings present (non-empty prose o
|
|
|
75
77
|
|
|
76
78
|
## Templates & assets
|
|
77
79
|
|
|
78
|
-
**Package SoT:** `packages/ai-rules/presets/_shared/assets/docs-specs/` (`INDEX.md` stub, `_templates/page.md`, `_templates/feature.md`;
|
|
80
|
+
**Package SoT:** `packages/ai-rules/presets/_shared/assets/docs-specs/` (`INDEX.md` stub, `_templates/page.md`, `_templates/feature.md`; `schemas/frontmatter-v1.schema.json` is a documentation artifact — the checker does not evaluate it).
|
|
79
81
|
|
|
80
82
|
**CLI `init`:** when consumer `docs/specs/` is **absent**, copy INDEX stub + `_templates/*` (idempotent; **never overwrite** existing INDEX). When the tree already exists, skip seed entirely.
|
|
81
83
|
|
|
@@ -85,7 +87,7 @@ Compliant = valid frontmatter + all required headings present (non-empty prose o
|
|
|
85
87
|
|
|
86
88
|
| Role | Responsibility |
|
|
87
89
|
|------|----------------|
|
|
88
|
-
| **task-analyst** | Primary author (Generate + Bootstrap); INDEX bootstrap; brief **Related specs** + **Spec gaps / generation requested**; loads this stem + skill `spec-authoring` |
|
|
90
|
+
| **task-analyst** | Primary author (Generate + Bootstrap); INDEX bootstrap; brief **Related specs** + **Spec gaps / generation requested**; loads this stem + skill `spec-authoring`; optional skill `spec-discovery` when research-before-spec |
|
|
89
91
|
| **tech-writer** | Post-delivery sync where present; never invent product behavior without AC/code source |
|
|
90
92
|
| **feature-developer** | Consumes approved specs as SoT; mechanical INDEX/frontmatter fixes only on renames |
|
|
91
93
|
| **mcp-ts** | No tech-writer — author + post-sync via **task-analyst** only |
|
|
@@ -104,4 +106,5 @@ Block handoff via `open_questions` until fixed:
|
|
|
104
106
|
|
|
105
107
|
- `product-specs` — discovery / consume
|
|
106
108
|
- Skill `spec-authoring` — procedural checklist
|
|
107
|
-
-
|
|
109
|
+
- Skill `spec-discovery` — opt-in research-before-spec (not default)
|
|
110
|
+
- Optional consumer script `scripts/check-product-specs.sh` (ships in the npm package; WARN default; `--strict` FAIL). Bash checks INDEX links, required frontmatter keys, and body headings — it does **not** evaluate `frontmatter-v1.schema.json`
|
|
@@ -4,6 +4,8 @@ Product page/feature **behavior** specs live under the consumer repo `docs/specs
|
|
|
4
4
|
|
|
5
5
|
**Authoring** (Generate / Bootstrap modes, INDEX/frontmatter v1, body checklist, greenfield, conflict precedence) → load **`product-specs-authoring`** when generation is requested (`/spec-start`, brief AC, or router `spec-gen`).
|
|
6
6
|
|
|
7
|
+
**Pipeline `specMode`:** `consume` (this stem) · `generate` (authoring stem) · `none` (spike/research — skip INDEX row requirement; do not invent a dummy INDEX). Primary field: `brief.md` `## Spec mode`; optional `pipeline.json` `specMode`.
|
|
8
|
+
|
|
7
9
|
## Modes (summary)
|
|
8
10
|
|
|
9
11
|
| Mode | When | Behavior |
|
|
@@ -11,19 +13,21 @@ Product page/feature **behavior** specs live under the consumer repo `docs/specs
|
|
|
11
13
|
| **Consume** (default) | INDEX exists or globs hit `docs/specs/**` without generate intent | Discover via INDEX; soft-fail on miss; **never invent** INDEX/specs |
|
|
12
14
|
| **Generate** | Explicit generate intent / AC / `/spec-start` with existing tree | Create/update page/feature specs + INDEX from stated sources |
|
|
13
15
|
| **Bootstrap** | Explicit bootstrap / `/spec-start` when tree absent | Create INDEX + templates + first domain spec |
|
|
16
|
+
| **None** (`specMode: none`) | Spike / research / preset-only | Skip INDEX requirement and author mode; no dummy INDEX row |
|
|
14
17
|
|
|
15
18
|
Greenfield: agents may create INDEX/specs **only** on explicit intent, AC, or `/spec-start`. Missing INDEX alone does **not** authorize inventing the tree.
|
|
16
19
|
|
|
17
20
|
## Presence policy
|
|
18
21
|
|
|
22
|
+
- If `specMode` is **`none`** → do **not** require an INDEX row; continue from brief/AC. Do not invent INDEX.
|
|
19
23
|
- If `docs/specs/INDEX.md` is **missing** → the tree is **optional** (greenfield OK for *consume*). Continue with code/brief discovery; do not invent an INDEX solely because this stem loaded.
|
|
20
|
-
- If INDEX **exists** → it is the **required discovery path** for work that touches a listed page, feature, route, or alias.
|
|
24
|
+
- If INDEX **exists** and `specMode` is not `none` → it is the **required discovery path** for work that touches a listed page, feature, route, or alias.
|
|
21
25
|
|
|
22
26
|
## Discovery algorithm
|
|
23
27
|
|
|
24
|
-
1. Always start at `docs/specs/INDEX.md` when present.
|
|
28
|
+
1. Always start at `docs/specs/INDEX.md` when present (skip when `specMode: none`).
|
|
25
29
|
2. Resolve the entry by: route, stable `id`, PageName / alias, or domain folder.
|
|
26
|
-
3. Read the linked page spec
|
|
30
|
+
3. Read the **linked page** spec and, when INDEX or page Related links it, the optional domain `feature.md`. Do **not** dump the whole `docs/specs/**` tree into the prompt — locator = those linked files.
|
|
27
31
|
|
|
28
32
|
## Miss policy (INDEX present, row or file missing)
|
|
29
33
|
|
|
@@ -45,5 +49,6 @@ Same-changeset INDEX updates, frontmatter v1, required body headings, templates,
|
|
|
45
49
|
## Related
|
|
46
50
|
|
|
47
51
|
- `product-specs-authoring` — generation modes, contracts, self-check.
|
|
52
|
+
- Skill `spec-discovery` — opt-in research-before-spec (author mode only; not default consume).
|
|
48
53
|
- `reference-features` — code structure mirror (how to layout files), not product behavior.
|
|
49
54
|
- Consumer `.ai/context/**` when present — review/domain glossary; cross-link, do not replace.
|
|
@@ -12,6 +12,7 @@ Ban leakage of stack-specific names, paths, and handoff stems across presets.
|
|
|
12
12
|
- `go` / `java` / `php-hexagonal` / `php-laravel` / `mcp-ts` must not ship Playwright, XCUITest, Android instrumentation agents, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
|
|
13
13
|
- `mcp-ts` must not ship Go tool commands (`go test`, `go vet`, `golangci-lint`) or `integration-test-*` agents as required delivery gates.
|
|
14
14
|
- Shared core must not embed stack paths (`app/src/**`, `Features/**`, `playwright`, `xcodebuild`).
|
|
15
|
+
- Storybook / Chrome DevTools MCP must **not** be required handoffs or agent stems (`storybook-reviewer`) on backend or mobile stacks. Frontend overlay mentions in `MCP.md` / `mcp-usage` Stack notes are OK.
|
|
15
16
|
|
|
16
17
|
## Forbidden in ios-swift hooks/agents (FAIL)
|
|
17
18
|
|
|
@@ -59,7 +60,8 @@ Shared backend-stack bans (`go`, `java`, `php-hexagonal`, and `php-laravel`):
|
|
|
59
60
|
- `playwright-test-`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
|
|
60
61
|
- Positive yarn recipes `lint:js` / `lint:css`
|
|
61
62
|
- `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
|
|
62
|
-
- Agent
|
|
63
|
+
- Agent files `accessibility-reviewer`, `mockup-reviewer`, `ux-designer` (no UI surface)
|
|
64
|
+
- Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
|
|
63
65
|
|
|
64
66
|
Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`), `java-tooling` (`mvn test` / `./gradlew test`), or `php-tooling` (`php artisan test` / `composer test` / `vendor/bin/phpunit`).
|
|
65
67
|
|
|
@@ -71,7 +73,8 @@ Same UI/mobile bans as backend stacks, plus:
|
|
|
71
73
|
- Positive yarn recipes `lint:js` / `lint:css` as required gates
|
|
72
74
|
- `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
|
|
73
75
|
- Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
|
|
74
|
-
- Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`
|
|
76
|
+
- Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`, `mockup-reviewer`, `ux-designer`
|
|
77
|
+
- Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
|
|
75
78
|
|
|
76
79
|
Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
|
|
77
80
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Procedural rules for code generation and review. Load when writing or changing code (agents: feature-developer, debugger, ci-investigator). Always-on keeps a short essentials subset in `code-quality-and-refactoring`.
|
|
4
4
|
|
|
5
|
-
1. **Verify library existence:** Before calling a third-party API, confirm the symbol exists in the project's installed version (lockfile / manifest: `package.json`, `go.mod`, `Podfile.lock`, `pom.xml`, `Cargo.toml`, or equivalent). If you cannot verify, mark `// VERIFY: lib.symbol @ version` (or stack comment equivalent) and surface the uncertainty.
|
|
5
|
+
1. **Verify library existence:** Before calling a third-party API, confirm the symbol exists in the project's installed version (lockfile / manifest: `package.json`, `go.mod`, `Podfile.lock`, `pom.xml`, `Cargo.toml`, or equivalent). If that is not enough and Context7 MCP is available, load **`mcp-usage`** and query docs for the **installed major**. If you still cannot verify, mark `// VERIFY: lib.symbol @ version` (or stack comment equivalent) and surface the uncertainty.
|
|
6
6
|
2. **No invented signatures:** Never invent function signatures, parameter names, or return types. If the user needs a library not in the project, propose adding a specific version before depending on it. Silent stubs are worse than refusal.
|
|
7
7
|
3. **Enumerate edge cases before validating:** When asked "is this correct?" or "does this work?", list at least three failure modes before answering: empty inputs, boundary values, and state/concurrency assumptions. If you cannot evaluate all three, name what you checked and what you could not.
|
|
8
8
|
4. **Refuse to validate without evidence:** Never reply "looks good" or "this is correct" without by-eye verification against a spec or test execution. If no spec exists, ask for one or refuse to validate.
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
Essentials below. Full procedural set (~17 rules) → load **`anti-sycophancy-discipline`**.
|
|
28
28
|
|
|
29
|
-
- Unverifiable third-party API → mark `// VERIFY: lib.symbol @ version` (or stack equivalent); never invent signatures.
|
|
29
|
+
- Unverifiable third-party API → if Context7 is up, load **`mcp-usage`** and query the installed major; else mark `// VERIFY: lib.symbol @ version` (or stack equivalent); never invent signatures.
|
|
30
30
|
- Before "is this correct?" — ≥3 failure modes (empty, boundary, concurrency/state) or name what you could not check.
|
|
31
31
|
- Refactor without tests → propose characterization test; if declined, label `UNTESTED`.
|
|
32
32
|
- Comments = WHY only when non-obvious; ban self-referential "added for issue Y".
|