@bonesofspring/ai-rules 0.2.13 → 0.2.14
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 +20 -0
- package/README.md +6 -2
- package/bin/cli.js +4 -0
- package/package.json +1 -1
- package/presets/_shared/README.md +1 -1
- package/presets/_shared/core/meta/preset-layering.md +1 -1
- package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +15 -1
- package/presets/_shared/core/meta/preset-pr-checklist.md +1 -1
- package/presets/_shared/core/meta/preset-twin-sync.md +4 -0
- package/presets/claude/go/agents/build-verifier.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/preset-layering.md +2 -1
- package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
- package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +2 -1
- package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +1 -0
- package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +5 -0
- package/presets/claude/ios-swift/agents/build-verifier.md +2 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +2 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +2 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +1 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +5 -0
- package/presets/claude/java/agents/build-verifier.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/preset-layering.md +2 -1
- package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
- package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +2 -1
- package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +1 -0
- package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +5 -0
- package/presets/claude/mcp-ts/agents/build-verifier.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +2 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +2 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +1 -0
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-twin-sync.md +5 -0
- package/presets/claude/next/agents/build-verifier.md +3 -3
- package/presets/claude/next/rules/tooling-and-review/preset-layering.md +2 -1
- package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
- package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +2 -1
- package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +1 -0
- package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +5 -0
- package/presets/claude/nuxt/CLAUDE.md +39 -0
- package/presets/claude/nuxt/MCP.md +16 -0
- package/presets/claude/nuxt/README.md +39 -0
- package/presets/claude/nuxt/REPO_AGENTS.md +49 -0
- package/presets/claude/nuxt/agents/README.md +199 -0
- package/presets/claude/nuxt/agents/accessibility-reviewer.md +59 -0
- package/presets/claude/nuxt/agents/api-contract-reviewer.md +63 -0
- package/presets/claude/nuxt/agents/build-verifier.md +89 -0
- package/presets/claude/nuxt/agents/ci-investigator.md +60 -0
- package/presets/claude/nuxt/agents/code-reviewer.md +62 -0
- package/presets/claude/nuxt/agents/codebase-analyzer.md +28 -0
- package/presets/claude/nuxt/agents/debugger.md +65 -0
- package/presets/claude/nuxt/agents/feature-developer.md +59 -0
- package/presets/claude/nuxt/agents/migration-specialist.md +67 -0
- package/presets/claude/nuxt/agents/performance-auditor.md +66 -0
- package/presets/claude/nuxt/agents/playwright-test-generator.md +75 -0
- package/presets/claude/nuxt/agents/playwright-test-healer.md +61 -0
- package/presets/claude/nuxt/agents/playwright-test-planner.md +67 -0
- package/presets/claude/nuxt/agents/qa-tester.md +54 -0
- package/presets/claude/nuxt/agents/security-reviewer.md +60 -0
- package/presets/claude/nuxt/agents/solution-architect.md +68 -0
- package/presets/claude/nuxt/agents/task-analyst.md +109 -0
- package/presets/claude/nuxt/agents/task-router.md +140 -0
- package/presets/claude/nuxt/agents/tech-writer.md +54 -0
- package/presets/claude/nuxt/agents/unit-test-generator.md +37 -0
- package/presets/claude/nuxt/agents/unit-test-healer.md +38 -0
- package/presets/claude/nuxt/agents/unit-test-planner.md +60 -0
- package/presets/claude/nuxt/commands/README.md +13 -0
- package/presets/claude/nuxt/commands/feature-continue.md +51 -0
- package/presets/claude/nuxt/commands/feature-start.md +30 -0
- package/presets/claude/nuxt/commands/task-continue.md +50 -0
- package/presets/claude/nuxt/commands/task.md +56 -0
- package/presets/claude/nuxt/commands/technical-retro.md +62 -0
- package/presets/claude/nuxt/hooks/README.md +14 -0
- package/presets/claude/nuxt/hooks/chain-team-phases.sh +723 -0
- package/presets/claude/nuxt/hooks/examples/README.md +18 -0
- package/presets/claude/nuxt/hooks/examples/format-edited.example.sh +11 -0
- package/presets/claude/nuxt/hooks/examples/secret-guard.example.sh +10 -0
- package/presets/claude/nuxt/hooks/examples/test-on-save.example.sh +8 -0
- package/presets/claude/nuxt/hooks/guard-shell-command.sh +77 -0
- package/presets/claude/nuxt/mcp.json +20 -0
- package/presets/claude/nuxt/rules/README.md +90 -0
- package/presets/claude/nuxt/rules/anti-hallucination/vue-nuxt-anti-hallucination.md +72 -0
- package/presets/claude/nuxt/rules/api-and-data/README.md +9 -0
- package/presets/claude/nuxt/rules/api-and-data/api-services.md +76 -0
- package/presets/claude/nuxt/rules/api-and-data/http-client.md +16 -0
- package/presets/claude/nuxt/rules/api-and-data/store-pinia.md +67 -0
- package/presets/claude/nuxt/rules/architecture/README.md +12 -0
- package/presets/claude/nuxt/rules/architecture/architecture-boundaries-ui.md +15 -0
- package/presets/claude/nuxt/rules/architecture/architecture-boundaries.md +98 -0
- package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +88 -0
- package/presets/claude/nuxt/rules/architecture/layer-barrel-exports.md +71 -0
- package/presets/claude/nuxt/rules/architecture/public-imports.md +60 -0
- package/presets/claude/nuxt/rules/architecture/reference-features.md +49 -0
- package/presets/claude/nuxt/rules/stack/README.md +12 -0
- package/presets/claude/nuxt/rules/stack/navigation-router-ui.md +14 -0
- package/presets/claude/nuxt/rules/stack/navigation-router.md +59 -0
- package/presets/claude/nuxt/rules/stack/no-type-assertion.md +61 -0
- package/presets/claude/nuxt/rules/stack/nuxt-app-core.md +43 -0
- package/presets/claude/nuxt/rules/stack/nuxt-pages-routing.md +39 -0
- package/presets/claude/nuxt/rules/stack/script-setup-conventions.md +12 -0
- package/presets/claude/nuxt/rules/stack/types-jsdoc.md +40 -0
- package/presets/claude/nuxt/rules/testing/README.md +11 -0
- package/presets/claude/nuxt/rules/testing/playwright-agents.md +78 -0
- package/presets/claude/nuxt/rules/testing/tests-e2e-structure.md +49 -0
- package/presets/claude/nuxt/rules/testing/tests-unit.md +75 -0
- package/presets/claude/nuxt/rules/tooling-and-review/README.md +15 -0
- package/presets/claude/nuxt/rules/tooling-and-review/agent-team-intake.md +15 -0
- package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +191 -0
- package/presets/claude/nuxt/rules/tooling-and-review/anti-sycophancy-discipline.md +33 -0
- package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +49 -0
- package/presets/claude/nuxt/rules/tooling-and-review/code-review-mr.md +63 -0
- package/presets/claude/nuxt/rules/tooling-and-review/design-guidance.md +114 -0
- package/presets/claude/nuxt/rules/tooling-and-review/package-manager.md +16 -0
- package/presets/claude/nuxt/rules/tooling-and-review/post-change-lint.md +43 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-layering.md +32 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +79 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-pr-checklist.md +35 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-token-budget.md +39 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-twin-sync.md +50 -0
- package/presets/claude/nuxt/rules/tooling-and-review/security-nuxt.md +37 -0
- package/presets/claude/nuxt/rules/tooling-and-review/technical-retro.md +15 -0
- package/presets/claude/nuxt/rules/ui-and-accessibility/README.md +12 -0
- package/presets/claude/nuxt/rules/ui-and-accessibility/css-property-order.md +11 -0
- package/presets/claude/nuxt/rules/ui-and-accessibility/no-v-bind-spread.md +12 -0
- package/presets/claude/nuxt/rules/ui-and-accessibility/vue-a11y-coding.md +16 -0
- package/presets/claude/nuxt/rules/ui-and-accessibility/vue-ui.md +34 -0
- package/presets/claude/nuxt/skills/README.md +17 -0
- package/presets/claude/nuxt/skills/ci-investigation/SKILL.md +36 -0
- package/presets/claude/nuxt/skills/code-review/SKILL.md +38 -0
- package/presets/claude/nuxt/skills/debug-investigation/SKILL.md +32 -0
- package/presets/claude/nuxt/skills/feature-delivery/SKILL.md +34 -0
- package/presets/claude/nuxt/skills/playwright-e2e/SKILL.md +37 -0
- package/presets/claude/nuxt/skills/technical-retro/SKILL.md +54 -0
- package/presets/claude/nuxt/skills/unit-testing/SKILL.md +32 -0
- package/presets/claude/nuxt/skills/vue-performance/SKILL.md +53 -0
- package/presets/claude/nuxt/skills/write-adr/SKILL.md +41 -0
- package/presets/claude/nuxt/team/README.md +136 -0
- package/presets/claude/nuxt/team/conventions.md +21 -0
- package/presets/claude/nuxt/team/fixtures/artifact-manifest.example.json +61 -0
- package/presets/claude/nuxt/team/fixtures/bugfix-standard.json +25 -0
- package/presets/claude/nuxt/team/fixtures/feature-full.json +28 -0
- package/presets/claude/nuxt/team/fixtures/feature-light.json +27 -0
- package/presets/claude/nuxt/team/tasks/.gitkeep +1 -0
- package/presets/claude/php-hexagonal/agents/build-verifier.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-layering.md +2 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +2 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +1 -0
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-twin-sync.md +5 -0
- package/presets/claude/php-laravel/agents/build-verifier.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-layering.md +2 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +2 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +1 -0
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-twin-sync.md +5 -0
- package/presets/claude/svelte/CLAUDE.md +39 -0
- package/presets/claude/svelte/MCP.md +16 -0
- package/presets/claude/svelte/README.md +13 -0
- package/presets/claude/svelte/REPO_AGENTS.md +49 -0
- package/presets/claude/svelte/agents/README.md +199 -0
- package/presets/claude/svelte/agents/accessibility-reviewer.md +59 -0
- package/presets/claude/svelte/agents/api-contract-reviewer.md +63 -0
- package/presets/claude/svelte/agents/build-verifier.md +89 -0
- package/presets/claude/svelte/agents/ci-investigator.md +60 -0
- package/presets/claude/svelte/agents/code-reviewer.md +62 -0
- package/presets/claude/svelte/agents/codebase-analyzer.md +28 -0
- package/presets/claude/svelte/agents/debugger.md +65 -0
- package/presets/claude/svelte/agents/feature-developer.md +59 -0
- package/presets/claude/svelte/agents/migration-specialist.md +67 -0
- package/presets/claude/svelte/agents/performance-auditor.md +66 -0
- package/presets/claude/svelte/agents/playwright-test-generator.md +75 -0
- package/presets/claude/svelte/agents/playwright-test-healer.md +61 -0
- package/presets/claude/svelte/agents/playwright-test-planner.md +67 -0
- package/presets/claude/svelte/agents/qa-tester.md +54 -0
- package/presets/claude/svelte/agents/security-reviewer.md +60 -0
- package/presets/claude/svelte/agents/solution-architect.md +68 -0
- package/presets/claude/svelte/agents/task-analyst.md +109 -0
- package/presets/claude/svelte/agents/task-router.md +140 -0
- package/presets/claude/svelte/agents/tech-writer.md +54 -0
- package/presets/claude/svelte/agents/unit-test-generator.md +37 -0
- package/presets/claude/svelte/agents/unit-test-healer.md +38 -0
- package/presets/claude/svelte/agents/unit-test-planner.md +60 -0
- package/presets/claude/svelte/commands/README.md +13 -0
- package/presets/claude/svelte/commands/feature-continue.md +51 -0
- package/presets/claude/svelte/commands/feature-start.md +30 -0
- package/presets/claude/svelte/commands/task-continue.md +50 -0
- package/presets/claude/svelte/commands/task.md +56 -0
- package/presets/claude/svelte/commands/technical-retro.md +62 -0
- package/presets/claude/svelte/hooks/README.md +14 -0
- package/presets/claude/svelte/hooks/chain-team-phases.sh +723 -0
- package/presets/claude/svelte/hooks/examples/README.md +18 -0
- package/presets/claude/svelte/hooks/examples/format-edited.example.sh +13 -0
- package/presets/claude/svelte/hooks/examples/secret-guard.example.sh +10 -0
- package/presets/claude/svelte/hooks/examples/test-on-save.example.sh +14 -0
- package/presets/claude/svelte/hooks/guard-shell-command.sh +77 -0
- package/presets/claude/svelte/mcp.json +20 -0
- package/presets/claude/svelte/rules/README.md +90 -0
- package/presets/claude/svelte/rules/anti-hallucination/svelte-sveltekit-anti-hallucination.md +71 -0
- package/presets/claude/svelte/rules/api-and-data/README.md +9 -0
- package/presets/claude/svelte/rules/api-and-data/api-services.md +45 -0
- package/presets/claude/svelte/rules/api-and-data/http-client.md +17 -0
- package/presets/claude/svelte/rules/api-and-data/store-svelte.md +67 -0
- package/presets/claude/svelte/rules/architecture/README.md +12 -0
- package/presets/claude/svelte/rules/architecture/architecture-boundaries-ui.md +16 -0
- package/presets/claude/svelte/rules/architecture/architecture-boundaries.md +65 -0
- package/presets/claude/svelte/rules/architecture/feature-delivery-workflow.md +61 -0
- package/presets/claude/svelte/rules/architecture/layer-barrel-exports.md +73 -0
- package/presets/claude/svelte/rules/architecture/public-imports.md +43 -0
- package/presets/claude/svelte/rules/architecture/reference-features.md +50 -0
- package/presets/claude/svelte/rules/stack/README.md +12 -0
- package/presets/claude/svelte/rules/stack/navigation-router-ui.md +26 -0
- package/presets/claude/svelte/rules/stack/navigation-router.md +41 -0
- package/presets/claude/svelte/rules/stack/no-type-assertion.md +59 -0
- package/presets/claude/svelte/rules/stack/svelte-app-core.md +44 -0
- package/presets/claude/svelte/rules/stack/svelte-script-conventions.md +33 -0
- package/presets/claude/svelte/rules/stack/sveltekit-routing.md +40 -0
- package/presets/claude/svelte/rules/stack/types-jsdoc.md +42 -0
- package/presets/claude/svelte/rules/testing/README.md +11 -0
- package/presets/claude/svelte/rules/testing/playwright-agents.md +80 -0
- package/presets/claude/svelte/rules/testing/tests-e2e-structure.md +51 -0
- package/presets/claude/svelte/rules/testing/tests-unit.md +40 -0
- package/presets/claude/svelte/rules/tooling-and-review/README.md +15 -0
- package/presets/claude/svelte/rules/tooling-and-review/agent-team-intake.md +17 -0
- package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +193 -0
- package/presets/claude/svelte/rules/tooling-and-review/anti-sycophancy-discipline.md +29 -0
- package/presets/claude/svelte/rules/tooling-and-review/code-quality.md +50 -0
- package/presets/claude/svelte/rules/tooling-and-review/code-review-mr.md +64 -0
- package/presets/claude/svelte/rules/tooling-and-review/design-guidance.md +110 -0
- package/presets/claude/svelte/rules/tooling-and-review/package-manager.md +17 -0
- package/presets/claude/svelte/rules/tooling-and-review/post-change-lint.md +44 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-layering.md +36 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +83 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +39 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +41 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +54 -0
- package/presets/claude/svelte/rules/tooling-and-review/security-sveltekit.md +41 -0
- package/presets/claude/svelte/rules/tooling-and-review/technical-retro.md +17 -0
- package/presets/claude/svelte/rules/ui-and-accessibility/README.md +12 -0
- package/presets/claude/svelte/rules/ui-and-accessibility/css-property-order.md +12 -0
- package/presets/claude/svelte/rules/ui-and-accessibility/no-rest-props-spread.md +32 -0
- package/presets/claude/svelte/rules/ui-and-accessibility/svelte-a11y-coding.md +28 -0
- package/presets/claude/svelte/rules/ui-and-accessibility/svelte-ui.md +38 -0
- package/presets/claude/svelte/skills/README.md +17 -0
- package/presets/claude/svelte/skills/ci-investigation/SKILL.md +36 -0
- package/presets/claude/svelte/skills/code-review/SKILL.md +38 -0
- package/presets/claude/svelte/skills/debug-investigation/SKILL.md +32 -0
- package/presets/claude/svelte/skills/feature-delivery/SKILL.md +34 -0
- package/presets/claude/svelte/skills/playwright-e2e/SKILL.md +37 -0
- package/presets/claude/svelte/skills/svelte-performance/SKILL.md +52 -0
- package/presets/claude/svelte/skills/technical-retro/SKILL.md +54 -0
- package/presets/claude/svelte/skills/unit-testing/SKILL.md +32 -0
- package/presets/claude/svelte/skills/write-adr/SKILL.md +41 -0
- package/presets/claude/svelte/team/README.md +136 -0
- package/presets/claude/svelte/team/conventions.md +21 -0
- package/presets/claude/svelte/team/fixtures/artifact-manifest.example.json +61 -0
- package/presets/claude/svelte/team/fixtures/bugfix-standard.json +25 -0
- package/presets/claude/svelte/team/fixtures/feature-full.json +28 -0
- package/presets/claude/svelte/team/fixtures/feature-light.json +27 -0
- package/presets/claude/svelte/team/tasks/.gitkeep +1 -0
- package/presets/cursor/go/agents/build-verifier.md +1 -1
- package/presets/cursor/go/rules/preset-layering.mdc +2 -1
- package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +16 -1
- package/presets/cursor/go/rules/preset-pr-checklist.mdc +2 -1
- package/presets/cursor/go/rules/preset-token-budget.mdc +1 -0
- package/presets/cursor/go/rules/preset-twin-sync.mdc +5 -0
- package/presets/cursor/ios-swift/agents/build-verifier.md +2 -2
- package/presets/cursor/ios-swift/rules/preset-layering.mdc +2 -1
- package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +16 -1
- package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +2 -1
- package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +1 -0
- package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +5 -0
- package/presets/cursor/java/agents/build-verifier.md +1 -1
- package/presets/cursor/java/rules/preset-layering.mdc +2 -1
- package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +16 -1
- package/presets/cursor/java/rules/preset-pr-checklist.mdc +2 -1
- package/presets/cursor/java/rules/preset-token-budget.mdc +1 -0
- package/presets/cursor/java/rules/preset-twin-sync.mdc +5 -0
- package/presets/cursor/mcp-ts/agents/build-verifier.md +1 -1
- package/presets/cursor/mcp-ts/rules/preset-layering.mdc +2 -1
- package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +16 -1
- package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +2 -1
- package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +1 -0
- package/presets/cursor/mcp-ts/rules/preset-twin-sync.mdc +5 -0
- package/presets/cursor/next/agents/build-verifier.md +3 -3
- package/presets/cursor/next/rules/preset-layering.mdc +2 -1
- package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +16 -1
- package/presets/cursor/next/rules/preset-pr-checklist.mdc +2 -1
- package/presets/cursor/next/rules/preset-token-budget.mdc +1 -0
- package/presets/cursor/next/rules/preset-twin-sync.mdc +5 -0
- package/presets/cursor/nuxt/AGENTS.md +39 -0
- package/presets/cursor/nuxt/BUGBOT.md +14 -0
- package/presets/cursor/nuxt/MCP.md +16 -0
- package/presets/cursor/nuxt/README.md +47 -0
- package/presets/cursor/nuxt/REPO_AGENTS.md +49 -0
- package/presets/cursor/nuxt/agents/README.md +206 -0
- package/presets/cursor/nuxt/agents/accessibility-reviewer.md +60 -0
- package/presets/cursor/nuxt/agents/api-contract-reviewer.md +64 -0
- package/presets/cursor/nuxt/agents/build-verifier.md +90 -0
- package/presets/cursor/nuxt/agents/ci-investigator.md +61 -0
- package/presets/cursor/nuxt/agents/code-reviewer.md +63 -0
- package/presets/cursor/nuxt/agents/codebase-analyzer.md +28 -0
- package/presets/cursor/nuxt/agents/debugger.md +66 -0
- package/presets/cursor/nuxt/agents/feature-developer.md +60 -0
- package/presets/cursor/nuxt/agents/migration-specialist.md +68 -0
- package/presets/cursor/nuxt/agents/performance-auditor.md +67 -0
- package/presets/cursor/nuxt/agents/playwright-test-generator.md +27 -0
- package/presets/cursor/nuxt/agents/playwright-test-healer.md +27 -0
- package/presets/cursor/nuxt/agents/playwright-test-planner.md +28 -0
- package/presets/cursor/nuxt/agents/qa-tester.md +55 -0
- package/presets/cursor/nuxt/agents/security-reviewer.md +61 -0
- package/presets/cursor/nuxt/agents/solution-architect.md +69 -0
- package/presets/cursor/nuxt/agents/task-analyst.md +110 -0
- package/presets/cursor/nuxt/agents/task-router.md +141 -0
- package/presets/cursor/nuxt/agents/tech-writer.md +55 -0
- package/presets/cursor/nuxt/agents/unit-test-generator.md +38 -0
- package/presets/cursor/nuxt/agents/unit-test-healer.md +39 -0
- package/presets/cursor/nuxt/agents/unit-test-planner.md +61 -0
- package/presets/cursor/nuxt/commands/README.md +51 -0
- package/presets/cursor/nuxt/commands/feature-continue.md +19 -0
- package/presets/cursor/nuxt/commands/feature-start.md +33 -0
- package/presets/cursor/nuxt/commands/task-continue.md +50 -0
- package/presets/cursor/nuxt/commands/task.md +56 -0
- package/presets/cursor/nuxt/commands/technical-retro.md +85 -0
- package/presets/cursor/nuxt/hooks/README.md +12 -0
- package/presets/cursor/nuxt/hooks/chain-team-phases.sh +727 -0
- package/presets/cursor/nuxt/hooks/examples/README.md +18 -0
- package/presets/cursor/nuxt/hooks/examples/format-edited.example.sh +11 -0
- package/presets/cursor/nuxt/hooks/examples/secret-guard.example.sh +10 -0
- package/presets/cursor/nuxt/hooks/examples/test-on-save.example.sh +8 -0
- package/presets/cursor/nuxt/hooks/guard-shell-command.sh +77 -0
- package/presets/cursor/nuxt/hooks.json +17 -0
- package/presets/cursor/nuxt/mcp.json +19 -0
- package/presets/cursor/nuxt/rules/README.md +108 -0
- package/presets/cursor/nuxt/rules/agent-team-intake.mdc +16 -0
- package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +192 -0
- package/presets/cursor/nuxt/rules/anti-sycophancy-discipline.mdc +30 -0
- package/presets/cursor/nuxt/rules/api-services.mdc +79 -0
- package/presets/cursor/nuxt/rules/architecture-boundaries-ui.mdc +15 -0
- package/presets/cursor/nuxt/rules/architecture-boundaries.mdc +97 -0
- package/presets/cursor/nuxt/rules/code-quality-and-refactoring.mdc +51 -0
- package/presets/cursor/nuxt/rules/code-review-mr.mdc +58 -0
- package/presets/cursor/nuxt/rules/css-property-order-stylelint.mdc +12 -0
- package/presets/cursor/nuxt/rules/design-guidance.mdc +111 -0
- package/presets/cursor/nuxt/rules/feature-delivery-workflow.mdc +83 -0
- package/presets/cursor/nuxt/rules/http-client.mdc +15 -0
- package/presets/cursor/nuxt/rules/layer-barrel-exports.mdc +74 -0
- package/presets/cursor/nuxt/rules/navigation-router-stack.mdc +61 -0
- package/presets/cursor/nuxt/rules/navigation-router-ui.mdc +16 -0
- package/presets/cursor/nuxt/rules/no-type-assertion-as-import-export.mdc +60 -0
- package/presets/cursor/nuxt/rules/no-v-bind-spread.mdc +13 -0
- package/presets/cursor/nuxt/rules/nuxt-app-core.mdc +45 -0
- package/presets/cursor/nuxt/rules/nuxt-pages-routing.mdc +37 -0
- package/presets/cursor/nuxt/rules/package-manager.mdc +18 -0
- package/presets/cursor/nuxt/rules/playwright-agents.mdc +80 -0
- package/presets/cursor/nuxt/rules/post-change-lint.mdc +42 -0
- package/presets/cursor/nuxt/rules/preset-layering.mdc +37 -0
- package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +84 -0
- package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +40 -0
- package/presets/cursor/nuxt/rules/preset-token-budget.mdc +42 -0
- package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +55 -0
- package/presets/cursor/nuxt/rules/public-imports.mdc +62 -0
- package/presets/cursor/nuxt/rules/reference-features.mdc +49 -0
- package/presets/cursor/nuxt/rules/script-setup-conventions.mdc +13 -0
- package/presets/cursor/nuxt/rules/security-nuxt.mdc +34 -0
- package/presets/cursor/nuxt/rules/store-pinia.mdc +68 -0
- package/presets/cursor/nuxt/rules/technical-retro.mdc +16 -0
- package/presets/cursor/nuxt/rules/tests-e2e-structure.mdc +51 -0
- package/presets/cursor/nuxt/rules/tests-unit.mdc +78 -0
- package/presets/cursor/nuxt/rules/types-jsdoc.mdc +42 -0
- package/presets/cursor/nuxt/rules/vue-a11y-coding.mdc +15 -0
- package/presets/cursor/nuxt/rules/vue-nuxt-anti-hallucination.mdc +68 -0
- package/presets/cursor/nuxt/rules/vue-ui.mdc +33 -0
- package/presets/cursor/nuxt/skills/README.md +17 -0
- package/presets/cursor/nuxt/skills/ci-investigation/SKILL.md +36 -0
- package/presets/cursor/nuxt/skills/code-review/SKILL.md +38 -0
- package/presets/cursor/nuxt/skills/debug-investigation/SKILL.md +32 -0
- package/presets/cursor/nuxt/skills/feature-delivery/SKILL.md +34 -0
- package/presets/cursor/nuxt/skills/playwright-e2e/SKILL.md +37 -0
- package/presets/cursor/nuxt/skills/technical-retro/SKILL.md +54 -0
- package/presets/cursor/nuxt/skills/unit-testing/SKILL.md +32 -0
- package/presets/cursor/nuxt/skills/vue-performance/SKILL.md +53 -0
- package/presets/cursor/nuxt/skills/write-adr/SKILL.md +41 -0
- package/presets/cursor/nuxt/team/README.md +140 -0
- package/presets/cursor/nuxt/team/conventions.md +21 -0
- package/presets/cursor/nuxt/team/fixtures/artifact-manifest.example.json +61 -0
- package/presets/cursor/nuxt/team/fixtures/bugfix-standard.json +25 -0
- package/presets/cursor/nuxt/team/fixtures/feature-full.json +28 -0
- package/presets/cursor/nuxt/team/fixtures/feature-light.json +27 -0
- package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
- package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
- package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
- package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
- package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
- package/presets/cursor/nuxt/team/fixtures/metrics.example.json +54 -0
- package/presets/cursor/nuxt/team/tasks/.gitkeep +0 -0
- package/presets/cursor/php-hexagonal/agents/build-verifier.md +1 -1
- package/presets/cursor/php-hexagonal/rules/preset-layering.mdc +2 -1
- package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +16 -1
- package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +2 -1
- package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +1 -0
- package/presets/cursor/php-hexagonal/rules/preset-twin-sync.mdc +5 -0
- package/presets/cursor/php-laravel/agents/build-verifier.md +1 -1
- package/presets/cursor/php-laravel/rules/preset-layering.mdc +2 -1
- package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +16 -1
- package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +2 -1
- package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +1 -0
- package/presets/cursor/php-laravel/rules/preset-twin-sync.mdc +5 -0
- package/presets/cursor/svelte/AGENTS.md +39 -0
- package/presets/cursor/svelte/BUGBOT.md +14 -0
- package/presets/cursor/svelte/MCP.md +16 -0
- package/presets/cursor/svelte/README.md +47 -0
- package/presets/cursor/svelte/REPO_AGENTS.md +49 -0
- package/presets/cursor/svelte/agents/README.md +206 -0
- package/presets/cursor/svelte/agents/accessibility-reviewer.md +60 -0
- package/presets/cursor/svelte/agents/api-contract-reviewer.md +64 -0
- package/presets/cursor/svelte/agents/build-verifier.md +90 -0
- package/presets/cursor/svelte/agents/ci-investigator.md +61 -0
- package/presets/cursor/svelte/agents/code-reviewer.md +63 -0
- package/presets/cursor/svelte/agents/codebase-analyzer.md +28 -0
- package/presets/cursor/svelte/agents/debugger.md +66 -0
- package/presets/cursor/svelte/agents/feature-developer.md +60 -0
- package/presets/cursor/svelte/agents/migration-specialist.md +68 -0
- package/presets/cursor/svelte/agents/performance-auditor.md +67 -0
- package/presets/cursor/svelte/agents/playwright-test-generator.md +27 -0
- package/presets/cursor/svelte/agents/playwright-test-healer.md +27 -0
- package/presets/cursor/svelte/agents/playwright-test-planner.md +28 -0
- package/presets/cursor/svelte/agents/qa-tester.md +55 -0
- package/presets/cursor/svelte/agents/security-reviewer.md +61 -0
- package/presets/cursor/svelte/agents/solution-architect.md +69 -0
- package/presets/cursor/svelte/agents/task-analyst.md +110 -0
- package/presets/cursor/svelte/agents/task-router.md +141 -0
- package/presets/cursor/svelte/agents/tech-writer.md +55 -0
- package/presets/cursor/svelte/agents/unit-test-generator.md +38 -0
- package/presets/cursor/svelte/agents/unit-test-healer.md +39 -0
- package/presets/cursor/svelte/agents/unit-test-planner.md +61 -0
- package/presets/cursor/svelte/commands/README.md +51 -0
- package/presets/cursor/svelte/commands/feature-continue.md +19 -0
- package/presets/cursor/svelte/commands/feature-start.md +33 -0
- package/presets/cursor/svelte/commands/task-continue.md +50 -0
- package/presets/cursor/svelte/commands/task.md +56 -0
- package/presets/cursor/svelte/commands/technical-retro.md +85 -0
- package/presets/cursor/svelte/hooks/README.md +12 -0
- package/presets/cursor/svelte/hooks/chain-team-phases.sh +727 -0
- package/presets/cursor/svelte/hooks/examples/README.md +18 -0
- package/presets/cursor/svelte/hooks/examples/format-edited.example.sh +13 -0
- package/presets/cursor/svelte/hooks/examples/secret-guard.example.sh +10 -0
- package/presets/cursor/svelte/hooks/examples/test-on-save.example.sh +14 -0
- package/presets/cursor/svelte/hooks/guard-shell-command.sh +77 -0
- package/presets/cursor/svelte/hooks.json +17 -0
- package/presets/cursor/svelte/mcp.json +19 -0
- package/presets/cursor/svelte/rules/README.md +86 -0
- package/presets/cursor/svelte/rules/agent-team-intake.mdc +16 -0
- package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +192 -0
- package/presets/cursor/svelte/rules/anti-sycophancy-discipline.mdc +30 -0
- package/presets/cursor/svelte/rules/api-services.mdc +46 -0
- package/presets/cursor/svelte/rules/architecture-boundaries-ui.mdc +15 -0
- package/presets/cursor/svelte/rules/architecture-boundaries.mdc +61 -0
- package/presets/cursor/svelte/rules/code-quality-and-refactoring.mdc +51 -0
- package/presets/cursor/svelte/rules/code-review-mr.mdc +58 -0
- package/presets/cursor/svelte/rules/css-property-order-stylelint.mdc +12 -0
- package/presets/cursor/svelte/rules/design-guidance.mdc +111 -0
- package/presets/cursor/svelte/rules/feature-delivery-workflow.mdc +55 -0
- package/presets/cursor/svelte/rules/http-client.mdc +16 -0
- package/presets/cursor/svelte/rules/layer-barrel-exports.mdc +74 -0
- package/presets/cursor/svelte/rules/navigation-router-stack.mdc +40 -0
- package/presets/cursor/svelte/rules/navigation-router-ui.mdc +25 -0
- package/presets/cursor/svelte/rules/no-rest-props-spread.mdc +32 -0
- package/presets/cursor/svelte/rules/no-type-assertion-as-import-export.mdc +60 -0
- package/presets/cursor/svelte/rules/package-manager.mdc +18 -0
- package/presets/cursor/svelte/rules/playwright-agents.mdc +80 -0
- package/presets/cursor/svelte/rules/post-change-lint.mdc +42 -0
- package/presets/cursor/svelte/rules/preset-layering.mdc +37 -0
- package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +84 -0
- package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +40 -0
- package/presets/cursor/svelte/rules/preset-token-budget.mdc +42 -0
- package/presets/cursor/svelte/rules/preset-twin-sync.mdc +55 -0
- package/presets/cursor/svelte/rules/public-imports.mdc +45 -0
- package/presets/cursor/svelte/rules/reference-features.mdc +51 -0
- package/presets/cursor/svelte/rules/security-sveltekit.mdc +38 -0
- package/presets/cursor/svelte/rules/store-svelte.mdc +66 -0
- package/presets/cursor/svelte/rules/svelte-a11y-coding.mdc +27 -0
- package/presets/cursor/svelte/rules/svelte-app-core.mdc +45 -0
- package/presets/cursor/svelte/rules/svelte-script-conventions.mdc +33 -0
- package/presets/cursor/svelte/rules/svelte-sveltekit-anti-hallucination.mdc +69 -0
- package/presets/cursor/svelte/rules/svelte-ui.mdc +37 -0
- package/presets/cursor/svelte/rules/sveltekit-routing.mdc +39 -0
- package/presets/cursor/svelte/rules/technical-retro.mdc +16 -0
- package/presets/cursor/svelte/rules/tests-e2e-structure.mdc +51 -0
- package/presets/cursor/svelte/rules/tests-unit.mdc +42 -0
- package/presets/cursor/svelte/rules/types-jsdoc.mdc +42 -0
- package/presets/cursor/svelte/skills/README.md +17 -0
- package/presets/cursor/svelte/skills/ci-investigation/SKILL.md +36 -0
- package/presets/cursor/svelte/skills/code-review/SKILL.md +38 -0
- package/presets/cursor/svelte/skills/debug-investigation/SKILL.md +32 -0
- package/presets/cursor/svelte/skills/feature-delivery/SKILL.md +34 -0
- package/presets/cursor/svelte/skills/playwright-e2e/SKILL.md +37 -0
- package/presets/cursor/svelte/skills/svelte-performance/SKILL.md +52 -0
- package/presets/cursor/svelte/skills/technical-retro/SKILL.md +54 -0
- package/presets/cursor/svelte/skills/unit-testing/SKILL.md +32 -0
- package/presets/cursor/svelte/skills/write-adr/SKILL.md +41 -0
- package/presets/cursor/svelte/team/README.md +140 -0
- package/presets/cursor/svelte/team/conventions.md +21 -0
- package/presets/cursor/svelte/team/fixtures/artifact-manifest.example.json +61 -0
- package/presets/cursor/svelte/team/fixtures/bugfix-standard.json +25 -0
- package/presets/cursor/svelte/team/fixtures/feature-full.json +28 -0
- package/presets/cursor/svelte/team/fixtures/feature-light.json +27 -0
- package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
- package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
- package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
- package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
- package/presets/cursor/svelte/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
- package/presets/cursor/svelte/team/fixtures/metrics.example.json +54 -0
- package/presets/cursor/svelte/team/tasks/.gitkeep +0 -0
package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"task": {
|
|
4
|
+
"runId": "parallel-receipts-run",
|
|
5
|
+
"slug": "parallel-receipts",
|
|
6
|
+
"preset": "ai-rules",
|
|
7
|
+
"stack": "nuxt",
|
|
8
|
+
"platform": "cursor",
|
|
9
|
+
"intent": "feature",
|
|
10
|
+
"profile": "full"
|
|
11
|
+
},
|
|
12
|
+
"events": [
|
|
13
|
+
{
|
|
14
|
+
"eventId": "parallel-receipts-run:task",
|
|
15
|
+
"type": "task_started",
|
|
16
|
+
"at": "2026-07-31T16:00:00.000Z",
|
|
17
|
+
"source": "router",
|
|
18
|
+
"attributionConfidence": "high"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"eventId": "parallel-receipts-run:1:code-reviewer:1:start",
|
|
22
|
+
"type": "attempt_started",
|
|
23
|
+
"at": "2026-07-31T16:00:00.000Z",
|
|
24
|
+
"attemptId": "parallel-receipts-run:step-1:code-reviewer:attempt-1",
|
|
25
|
+
"stepIndex": 1,
|
|
26
|
+
"stepLabel": null,
|
|
27
|
+
"agent": "code-reviewer",
|
|
28
|
+
"role": "review",
|
|
29
|
+
"attempt": 1,
|
|
30
|
+
"parallelGroupId": "parallel-receipts-run:step-1",
|
|
31
|
+
"source": "hook",
|
|
32
|
+
"attributionConfidence": "high"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"eventId": "parallel-receipts-run:1:security-reviewer:1:start",
|
|
36
|
+
"type": "attempt_started",
|
|
37
|
+
"at": "2026-07-31T16:00:00.000Z",
|
|
38
|
+
"attemptId": "parallel-receipts-run:step-1:security-reviewer:attempt-1",
|
|
39
|
+
"stepIndex": 1,
|
|
40
|
+
"stepLabel": null,
|
|
41
|
+
"agent": "security-reviewer",
|
|
42
|
+
"role": "review",
|
|
43
|
+
"attempt": 1,
|
|
44
|
+
"parallelGroupId": "parallel-receipts-run:step-1",
|
|
45
|
+
"source": "hook",
|
|
46
|
+
"attributionConfidence": "high"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"eventId": "parallel-receipts-run:1:security-reviewer:1:finish",
|
|
50
|
+
"type": "attempt_finished",
|
|
51
|
+
"at": "2026-07-31T16:01:00.000Z",
|
|
52
|
+
"attemptId": "parallel-receipts-run:step-1:security-reviewer:attempt-1",
|
|
53
|
+
"outcome": "completed",
|
|
54
|
+
"durationMs": 60000,
|
|
55
|
+
"retryAfterFix": null,
|
|
56
|
+
"source": "agent",
|
|
57
|
+
"attributionConfidence": "fallback"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"eventId": "parallel-receipts-run:1:code-reviewer:1:finish",
|
|
61
|
+
"type": "attempt_finished",
|
|
62
|
+
"at": "2026-07-31T16:02:00.000Z",
|
|
63
|
+
"attemptId": "parallel-receipts-run:step-1:code-reviewer:attempt-1",
|
|
64
|
+
"outcome": "completed",
|
|
65
|
+
"durationMs": 120000,
|
|
66
|
+
"retryAfterFix": null,
|
|
67
|
+
"source": "agent",
|
|
68
|
+
"attributionConfidence": "fallback"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"eventId": "parallel-receipts-run:done",
|
|
72
|
+
"type": "task_completed",
|
|
73
|
+
"at": "2026-07-31T16:02:00.000Z",
|
|
74
|
+
"outcome": "completed",
|
|
75
|
+
"source": "hook",
|
|
76
|
+
"attributionConfidence": "high"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"task": {
|
|
4
|
+
"runId": "serial-retry-run",
|
|
5
|
+
"slug": "serial-retry",
|
|
6
|
+
"preset": "ai-rules",
|
|
7
|
+
"stack": "nuxt",
|
|
8
|
+
"platform": "cursor",
|
|
9
|
+
"intent": "feature",
|
|
10
|
+
"profile": "full"
|
|
11
|
+
},
|
|
12
|
+
"events": [
|
|
13
|
+
{
|
|
14
|
+
"eventId": "serial-retry-run:task",
|
|
15
|
+
"type": "task_started",
|
|
16
|
+
"at": "2026-07-31T14:00:00.000Z",
|
|
17
|
+
"source": "router",
|
|
18
|
+
"attributionConfidence": "high"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"eventId": "serial-retry-run:2:code-reviewer:1:start",
|
|
22
|
+
"type": "attempt_started",
|
|
23
|
+
"at": "2026-07-31T14:00:00.000Z",
|
|
24
|
+
"attemptId": "serial-retry-run:step-2:code-reviewer:attempt-1",
|
|
25
|
+
"stepIndex": 2,
|
|
26
|
+
"stepLabel": null,
|
|
27
|
+
"agent": "code-reviewer",
|
|
28
|
+
"role": "review",
|
|
29
|
+
"attempt": 1,
|
|
30
|
+
"parallelGroupId": null,
|
|
31
|
+
"source": "hook",
|
|
32
|
+
"attributionConfidence": "high"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"eventId": "serial-retry-run:2:code-reviewer:1:finish",
|
|
36
|
+
"type": "attempt_finished",
|
|
37
|
+
"at": "2026-07-31T14:01:00.000Z",
|
|
38
|
+
"attemptId": "serial-retry-run:step-2:code-reviewer:attempt-1",
|
|
39
|
+
"outcome": "changes_requested",
|
|
40
|
+
"durationMs": 60000,
|
|
41
|
+
"retryAfterFix": null,
|
|
42
|
+
"source": "hook",
|
|
43
|
+
"attributionConfidence": "high"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"eventId": "serial-retry-run:retry:1",
|
|
47
|
+
"type": "retry_scheduled",
|
|
48
|
+
"at": "2026-07-31T14:01:00.000Z",
|
|
49
|
+
"attemptId": "serial-retry-run:step-2:code-reviewer:attempt-1",
|
|
50
|
+
"nextAgent": "feature-developer",
|
|
51
|
+
"retryAfterFix": "code-reviewer",
|
|
52
|
+
"source": "hook",
|
|
53
|
+
"attributionConfidence": "high"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"eventId": "serial-retry-run:1:feature-developer:1:start",
|
|
57
|
+
"type": "attempt_started",
|
|
58
|
+
"at": "2026-07-31T14:01:00.000Z",
|
|
59
|
+
"attemptId": "serial-retry-run:step-1:feature-developer:attempt-1",
|
|
60
|
+
"stepIndex": 1,
|
|
61
|
+
"stepLabel": null,
|
|
62
|
+
"agent": "feature-developer",
|
|
63
|
+
"role": "implementation",
|
|
64
|
+
"attempt": 1,
|
|
65
|
+
"parallelGroupId": null,
|
|
66
|
+
"source": "hook",
|
|
67
|
+
"attributionConfidence": "high"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"eventId": "serial-retry-run:1:feature-developer:1:finish",
|
|
71
|
+
"type": "attempt_finished",
|
|
72
|
+
"at": "2026-07-31T14:03:00.000Z",
|
|
73
|
+
"attemptId": "serial-retry-run:step-1:feature-developer:attempt-1",
|
|
74
|
+
"outcome": "completed",
|
|
75
|
+
"durationMs": 120000,
|
|
76
|
+
"retryAfterFix": null,
|
|
77
|
+
"source": "hook",
|
|
78
|
+
"attributionConfidence": "high"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"eventId": "serial-retry-run:retry:2",
|
|
82
|
+
"type": "retry_scheduled",
|
|
83
|
+
"at": "2026-07-31T14:03:00.000Z",
|
|
84
|
+
"attemptId": "serial-retry-run:step-1:feature-developer:attempt-1",
|
|
85
|
+
"nextAgent": "code-reviewer",
|
|
86
|
+
"retryAfterFix": null,
|
|
87
|
+
"source": "hook",
|
|
88
|
+
"attributionConfidence": "high"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"eventId": "serial-retry-run:2:code-reviewer:2:start",
|
|
92
|
+
"type": "attempt_started",
|
|
93
|
+
"at": "2026-07-31T14:03:00.000Z",
|
|
94
|
+
"attemptId": "serial-retry-run:step-2:code-reviewer:attempt-2",
|
|
95
|
+
"stepIndex": 2,
|
|
96
|
+
"stepLabel": null,
|
|
97
|
+
"agent": "code-reviewer",
|
|
98
|
+
"role": "review",
|
|
99
|
+
"attempt": 2,
|
|
100
|
+
"parallelGroupId": null,
|
|
101
|
+
"source": "hook",
|
|
102
|
+
"attributionConfidence": "high"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"eventId": "serial-retry-run:2:code-reviewer:2:finish",
|
|
106
|
+
"type": "attempt_finished",
|
|
107
|
+
"at": "2026-07-31T14:04:00.000Z",
|
|
108
|
+
"attemptId": "serial-retry-run:step-2:code-reviewer:attempt-2",
|
|
109
|
+
"outcome": "completed",
|
|
110
|
+
"durationMs": 60000,
|
|
111
|
+
"retryAfterFix": null,
|
|
112
|
+
"source": "hook",
|
|
113
|
+
"attributionConfidence": "high"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"eventId": "serial-retry-run:done",
|
|
117
|
+
"type": "task_completed",
|
|
118
|
+
"at": "2026-07-31T14:04:00.000Z",
|
|
119
|
+
"outcome": "completed",
|
|
120
|
+
"source": "hook",
|
|
121
|
+
"attributionConfidence": "high"
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
package/presets/cursor/nuxt/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"task": {
|
|
4
|
+
"runId": "validation-failed-run",
|
|
5
|
+
"slug": "validation-failed",
|
|
6
|
+
"preset": "ai-rules",
|
|
7
|
+
"stack": "nuxt",
|
|
8
|
+
"platform": "cursor",
|
|
9
|
+
"intent": "feature",
|
|
10
|
+
"profile": "full"
|
|
11
|
+
},
|
|
12
|
+
"events": [
|
|
13
|
+
{
|
|
14
|
+
"eventId": "validation-failed-run:task",
|
|
15
|
+
"type": "task_started",
|
|
16
|
+
"at": "2026-07-31T15:00:00.000Z",
|
|
17
|
+
"source": "router",
|
|
18
|
+
"attributionConfidence": "high"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"eventId": "validation-failed-run:2:build-verifier:1:start",
|
|
22
|
+
"type": "attempt_started",
|
|
23
|
+
"at": "2026-07-31T15:00:00.000Z",
|
|
24
|
+
"attemptId": "validation-failed-run:step-2:build-verifier:attempt-1",
|
|
25
|
+
"stepIndex": 2,
|
|
26
|
+
"stepLabel": null,
|
|
27
|
+
"agent": "build-verifier",
|
|
28
|
+
"role": "validation",
|
|
29
|
+
"attempt": 1,
|
|
30
|
+
"parallelGroupId": null,
|
|
31
|
+
"source": "hook",
|
|
32
|
+
"attributionConfidence": "high"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"eventId": "validation-failed-run:2:build-verifier:1:finish",
|
|
36
|
+
"type": "attempt_finished",
|
|
37
|
+
"at": "2026-07-31T15:02:00.000Z",
|
|
38
|
+
"attemptId": "validation-failed-run:step-2:build-verifier:attempt-1",
|
|
39
|
+
"outcome": "validation_failed",
|
|
40
|
+
"durationMs": 120000,
|
|
41
|
+
"retryAfterFix": null,
|
|
42
|
+
"source": "hook",
|
|
43
|
+
"attributionConfidence": "high"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"eventId": "validation-failed-run:retry:1",
|
|
47
|
+
"type": "retry_scheduled",
|
|
48
|
+
"at": "2026-07-31T15:02:00.000Z",
|
|
49
|
+
"attemptId": "validation-failed-run:step-2:build-verifier:attempt-1",
|
|
50
|
+
"nextAgent": "feature-developer",
|
|
51
|
+
"retryAfterFix": "build-verifier",
|
|
52
|
+
"source": "hook",
|
|
53
|
+
"attributionConfidence": "high"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"eventId": "validation-failed-run:1:feature-developer:1:start",
|
|
57
|
+
"type": "attempt_started",
|
|
58
|
+
"at": "2026-07-31T15:02:00.000Z",
|
|
59
|
+
"attemptId": "validation-failed-run:step-1:feature-developer:attempt-1",
|
|
60
|
+
"stepIndex": 1,
|
|
61
|
+
"stepLabel": null,
|
|
62
|
+
"agent": "feature-developer",
|
|
63
|
+
"role": "implementation",
|
|
64
|
+
"attempt": 1,
|
|
65
|
+
"parallelGroupId": null,
|
|
66
|
+
"source": "hook",
|
|
67
|
+
"attributionConfidence": "high"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"eventId": "validation-failed-run:1:feature-developer:1:finish",
|
|
71
|
+
"type": "attempt_finished",
|
|
72
|
+
"at": "2026-07-31T15:05:00.000Z",
|
|
73
|
+
"attemptId": "validation-failed-run:step-1:feature-developer:attempt-1",
|
|
74
|
+
"outcome": "completed",
|
|
75
|
+
"durationMs": 180000,
|
|
76
|
+
"retryAfterFix": null,
|
|
77
|
+
"source": "hook",
|
|
78
|
+
"attributionConfidence": "high"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"eventId": "validation-failed-run:retry:2",
|
|
82
|
+
"type": "retry_scheduled",
|
|
83
|
+
"at": "2026-07-31T15:05:00.000Z",
|
|
84
|
+
"attemptId": "validation-failed-run:step-1:feature-developer:attempt-1",
|
|
85
|
+
"nextAgent": "build-verifier",
|
|
86
|
+
"retryAfterFix": null,
|
|
87
|
+
"source": "hook",
|
|
88
|
+
"attributionConfidence": "high"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"eventId": "validation-failed-run:2:build-verifier:2:start",
|
|
92
|
+
"type": "attempt_started",
|
|
93
|
+
"at": "2026-07-31T15:05:00.000Z",
|
|
94
|
+
"attemptId": "validation-failed-run:step-2:build-verifier:attempt-2",
|
|
95
|
+
"stepIndex": 2,
|
|
96
|
+
"stepLabel": null,
|
|
97
|
+
"agent": "build-verifier",
|
|
98
|
+
"role": "validation",
|
|
99
|
+
"attempt": 2,
|
|
100
|
+
"parallelGroupId": null,
|
|
101
|
+
"source": "hook",
|
|
102
|
+
"attributionConfidence": "high"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"eventId": "validation-failed-run:2:build-verifier:2:finish",
|
|
106
|
+
"type": "attempt_finished",
|
|
107
|
+
"at": "2026-07-31T15:06:00.000Z",
|
|
108
|
+
"attemptId": "validation-failed-run:step-2:build-verifier:attempt-2",
|
|
109
|
+
"outcome": "completed",
|
|
110
|
+
"durationMs": 60000,
|
|
111
|
+
"retryAfterFix": null,
|
|
112
|
+
"source": "hook",
|
|
113
|
+
"attributionConfidence": "high"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"eventId": "validation-failed-run:done",
|
|
117
|
+
"type": "task_completed",
|
|
118
|
+
"at": "2026-07-31T15:06:00.000Z",
|
|
119
|
+
"outcome": "completed",
|
|
120
|
+
"source": "hook",
|
|
121
|
+
"attributionConfidence": "high"
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"task": {
|
|
4
|
+
"runId": "example-run-1",
|
|
5
|
+
"slug": "example-feature-full",
|
|
6
|
+
"preset": "ai-rules",
|
|
7
|
+
"stack": "nuxt",
|
|
8
|
+
"platform": "cursor",
|
|
9
|
+
"intent": "feature",
|
|
10
|
+
"profile": "full"
|
|
11
|
+
},
|
|
12
|
+
"events": [
|
|
13
|
+
{
|
|
14
|
+
"eventId": "example-run-1:task_started",
|
|
15
|
+
"type": "task_started",
|
|
16
|
+
"at": "2026-07-31T14:00:00.000Z",
|
|
17
|
+
"source": "router",
|
|
18
|
+
"attributionConfidence": "high"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"eventId": "example-run-1:attempt-1:start",
|
|
22
|
+
"type": "attempt_started",
|
|
23
|
+
"at": "2026-07-31T14:00:00.000Z",
|
|
24
|
+
"attemptId": "example-run-1:step-0:task-analyst:attempt-1",
|
|
25
|
+
"stepIndex": 0,
|
|
26
|
+
"stepLabel": "Clarify and decompose",
|
|
27
|
+
"agent": "task-analyst",
|
|
28
|
+
"role": "planning",
|
|
29
|
+
"attempt": 1,
|
|
30
|
+
"parallelGroupId": null,
|
|
31
|
+
"source": "router",
|
|
32
|
+
"attributionConfidence": "high"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"eventId": "example-run-1:attempt-1:end",
|
|
36
|
+
"type": "attempt_finished",
|
|
37
|
+
"at": "2026-07-31T14:02:00.000Z",
|
|
38
|
+
"attemptId": "example-run-1:step-0:task-analyst:attempt-1",
|
|
39
|
+
"outcome": "completed",
|
|
40
|
+
"durationMs": 120000,
|
|
41
|
+
"retryAfterFix": null,
|
|
42
|
+
"source": "hook",
|
|
43
|
+
"attributionConfidence": "high"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"eventId": "example-run-1:task_completed",
|
|
47
|
+
"type": "task_completed",
|
|
48
|
+
"at": "2026-07-31T14:02:00.000Z",
|
|
49
|
+
"outcome": "completed",
|
|
50
|
+
"source": "hook",
|
|
51
|
+
"attributionConfidence": "high"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
File without changes
|
|
@@ -36,7 +36,7 @@ Hard gates for the **php-hexagonal** stack (and peers):
|
|
|
36
36
|
|
|
37
37
|
Also document:
|
|
38
38
|
|
|
39
|
-
1. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|ios-swift|go|java|mcp-ts|php-hexagonal`) must ship `REPO_AGENTS.md` → **FAIL** if missing.
|
|
39
|
+
1. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|nuxt|svelte|ios-swift|go|java|mcp-ts|php-hexagonal|php-laravel`) must ship `REPO_AGENTS.md` → **FAIL** if missing.
|
|
40
40
|
2. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
|
|
41
41
|
3. **No react-performance / Playwright / a11y on backend stacks:** skill directory / required handoff must be absent under go, java, php-hexagonal, php-laravel, mcp-ts → **FAIL** (leakage). Prefer `check:preset-leakage`.
|
|
42
42
|
4. **Shared-core drift (hard in `check:preset-structure`):** `check-shared-core-drift` with `AI_RULES_DRIFT_FAIL=1`.
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-layering.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset layering
|
|
13
14
|
|
|
14
15
|
Правила для **авторов пресетов** (`packages/ai-rules/presets/**`). Не always-on в consumer apps.
|
|
@@ -24,7 +25,7 @@ alwaysApply: false
|
|
|
24
25
|
## Куда класть новое правило
|
|
25
26
|
|
|
26
27
|
1. Общие принципы для всех стеков → **core** + адаптеры с `<!-- shared-core: … -->`.
|
|
27
|
-
2. Только один из installable стеков (`next` / `ios-swift` / `go` / `java` / `mcp-ts` / `php-hexagonal` / `php-laravel`) → **stack-specific** (не в `_shared`).
|
|
28
|
+
2. Только один из installable стеков (`next` / `nuxt` / `svelte` / `ios-swift` / `go` / `java` / `mcp-ts` / `php-hexagonal` / `php-laravel`) → **stack-specific** (не в `_shared`).
|
|
28
29
|
3. Только Cursor или только Claude packaging → platform artifact / frontmatter, не дублировать семантику.
|
|
29
30
|
|
|
30
31
|
## SoT
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-no-cross-stack-leakage.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset no cross-stack leakage
|
|
13
14
|
|
|
14
15
|
Запрет протекания stack-specific имён, путей и handoff stems между пресетами.
|
|
@@ -16,6 +17,8 @@ alwaysApply: false
|
|
|
16
17
|
## Principles
|
|
17
18
|
|
|
18
19
|
- `next` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
|
|
20
|
+
- `nuxt` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
|
|
21
|
+
- `svelte` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
|
|
19
22
|
- `ios-swift` must not ship Playwright handoffs or Next lint recipes as required commands.
|
|
20
23
|
- `go` / `java` / `php-hexagonal` / `php-laravel` / `mcp-ts` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
|
|
21
24
|
- `mcp-ts` must not ship Go tool commands (`go test`, `go vet`, `golangci-lint`) or `integration-test-*` agents as required delivery gates.
|
|
@@ -36,6 +39,18 @@ Required instead: `xcuitest-test-*` stems; build-verifier mentions `xcodebuild`
|
|
|
36
39
|
- `xcuitest-test-` as handoff stems
|
|
37
40
|
- Requiring `xcodebuild` / SwiftLint as the default post-change gate for Next app work
|
|
38
41
|
|
|
42
|
+
## Forbidden in nuxt hooks/agents (FAIL when present as required)
|
|
43
|
+
|
|
44
|
+
- `xcuitest-test-` as handoff stems
|
|
45
|
+
- Requiring `xcodebuild` / SwiftLint as the default post-change gate for Nuxt app work
|
|
46
|
+
- Frontend profile mirrors `next`: Playwright / `lint:js` / `lint:css` allowed
|
|
47
|
+
|
|
48
|
+
## Forbidden in svelte hooks/agents (FAIL when present as required)
|
|
49
|
+
|
|
50
|
+
- `xcuitest-test-` as handoff stems
|
|
51
|
+
- Requiring `xcodebuild` / SwiftLint as the default post-change gate for SvelteKit app work
|
|
52
|
+
- Frontend profile mirrors `next` / `nuxt`: Playwright / `lint:js` / `lint:css` allowed
|
|
53
|
+
|
|
39
54
|
## Forbidden in go / java / php-hexagonal / php-laravel hooks/agents (FAIL)
|
|
40
55
|
|
|
41
56
|
Shared backend-stack bans (`go`, `java`, `php-hexagonal`, and `php-laravel`):
|
|
@@ -66,4 +81,4 @@ Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`,
|
|
|
66
81
|
|
|
67
82
|
## Chain fork
|
|
68
83
|
|
|
69
|
-
`hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, `java`, `mcp-ts`, `php-hexagonal`, and `php-laravel` (per platform).
|
|
84
|
+
`hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `nuxt`, `svelte`, `ios-swift`, `go`, `java`, `mcp-ts`, `php-hexagonal`, and `php-laravel` (per platform).
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-pr-checklist.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset PR checklist
|
|
13
14
|
|
|
14
15
|
Чеклист для PR, затрагивающих `packages/ai-rules/presets/**` (и dogfood `.cursor/` sync).
|
|
@@ -17,7 +18,7 @@ alwaysApply: false
|
|
|
17
18
|
|
|
18
19
|
- [ ] **SoT:** правки в `packages/…` (не только root `.cursor/`)
|
|
19
20
|
- [ ] **Core:** если менялся `_shared/core/**` — обновлены все `<!-- shared-core: … -->` consumers (или documented intentional fork)
|
|
20
|
-
- [ ] **Twin:** Cursor change → Claude twin **same PR** (**FAIL** if missing on next, ios-swift, go, java, mcp-ts, php-hexagonal, and php-laravel — см. `preset-twin-sync`)
|
|
21
|
+
- [ ] **Twin:** Cursor change → Claude twin **same PR** (**FAIL** if missing on next, nuxt, svelte, ios-swift, go, java, mcp-ts, php-hexagonal, and php-laravel — см. `preset-twin-sync`)
|
|
21
22
|
- [ ] **Mapping:** `claude/<stack>/rules/README.md` mapping table актуален
|
|
22
23
|
- [ ] **Token budget:** alwaysApply / session-start ≤ 3; meta rules not always-on
|
|
23
24
|
- [ ] **Leakage:** нет чужих stack agent stems / handoff strings (`preset-no-cross-stack-leakage`)
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-twin-sync.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset twin sync
|
|
13
14
|
|
|
14
15
|
Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
|
|
@@ -18,6 +19,8 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
|
|
|
18
19
|
| Stack | Cursor SoT | Claude derive | Mapping table |
|
|
19
20
|
|-------|------------|---------------|---------------|
|
|
20
21
|
| `next` | `presets/cursor/next/rules/*.mdc` | `presets/claude/next/rules/<topic>/` | **Required** in `claude/next/rules/README.md` |
|
|
22
|
+
| `nuxt` | `presets/cursor/nuxt/rules/*.mdc` | `presets/claude/nuxt/rules/<topic>/` | **Required** in `claude/nuxt/rules/README.md` |
|
|
23
|
+
| `svelte` | `presets/cursor/svelte/rules/*.mdc` | `presets/claude/svelte/rules/<topic>/` | **Required** in `claude/svelte/rules/README.md` |
|
|
21
24
|
| `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
|
|
22
25
|
| `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
|
|
23
26
|
| `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
|
|
@@ -40,6 +43,8 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
|
|
|
40
43
|
## Severity (build-verifier)
|
|
41
44
|
|
|
42
45
|
- **next:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
|
|
46
|
+
- **nuxt:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
|
|
47
|
+
- **svelte:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
|
|
43
48
|
- **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
|
|
44
49
|
- **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
|
|
45
50
|
- **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
|
|
@@ -36,7 +36,7 @@ Hard gates for the **php-laravel** stack (and peers):
|
|
|
36
36
|
|
|
37
37
|
Also document:
|
|
38
38
|
|
|
39
|
-
1. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|ios-swift|go|java|mcp-ts|php-hexagonal|php-laravel`) must ship `REPO_AGENTS.md` → **FAIL** if missing.
|
|
39
|
+
1. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|nuxt|svelte|ios-swift|go|java|mcp-ts|php-hexagonal|php-laravel`) must ship `REPO_AGENTS.md` → **FAIL** if missing.
|
|
40
40
|
2. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
|
|
41
41
|
3. **No react-performance / Playwright / a11y on backend stacks:** skill directory / required handoff must be absent under go, java, php-hexagonal, php-laravel, mcp-ts → **FAIL** (leakage). Prefer `check:preset-leakage`.
|
|
42
42
|
4. **Shared-core drift (hard in `check:preset-structure`):** `check-shared-core-drift` with `AI_RULES_DRIFT_FAIL=1`.
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-layering.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset layering
|
|
13
14
|
|
|
14
15
|
Правила для **авторов пресетов** (`packages/ai-rules/presets/**`). Не always-on в consumer apps.
|
|
@@ -24,7 +25,7 @@ alwaysApply: false
|
|
|
24
25
|
## Куда класть новое правило
|
|
25
26
|
|
|
26
27
|
1. Общие принципы для всех стеков → **core** + адаптеры с `<!-- shared-core: … -->`.
|
|
27
|
-
2. Только один из installable стеков (`next` / `ios-swift` / `go` / `java` / `mcp-ts` / `php-hexagonal` / `php-laravel`) → **stack-specific** (не в `_shared`).
|
|
28
|
+
2. Только один из installable стеков (`next` / `nuxt` / `svelte` / `ios-swift` / `go` / `java` / `mcp-ts` / `php-hexagonal` / `php-laravel`) → **stack-specific** (не в `_shared`).
|
|
28
29
|
3. Только Cursor или только Claude packaging → platform artifact / frontmatter, не дублировать семантику.
|
|
29
30
|
|
|
30
31
|
## SoT
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-no-cross-stack-leakage.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset no cross-stack leakage
|
|
13
14
|
|
|
14
15
|
Запрет протекания stack-specific имён, путей и handoff stems между пресетами.
|
|
@@ -16,6 +17,8 @@ alwaysApply: false
|
|
|
16
17
|
## Principles
|
|
17
18
|
|
|
18
19
|
- `next` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
|
|
20
|
+
- `nuxt` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
|
|
21
|
+
- `svelte` must not require iOS-only agents/tooling (`xcuitest-*`, `xcodebuild` as required handoff, Keychain-only rules).
|
|
19
22
|
- `ios-swift` must not ship Playwright handoffs or Next lint recipes as required commands.
|
|
20
23
|
- `go` / `java` / `php-hexagonal` / `php-laravel` / `mcp-ts` must not ship Playwright, XCUITest, Next lint recipes, or `xcodebuild`/`SwiftLint` as required handoffs.
|
|
21
24
|
- `mcp-ts` must not ship Go tool commands (`go test`, `go vet`, `golangci-lint`) or `integration-test-*` agents as required delivery gates.
|
|
@@ -36,6 +39,18 @@ Required instead: `xcuitest-test-*` stems; build-verifier mentions `xcodebuild`
|
|
|
36
39
|
- `xcuitest-test-` as handoff stems
|
|
37
40
|
- Requiring `xcodebuild` / SwiftLint as the default post-change gate for Next app work
|
|
38
41
|
|
|
42
|
+
## Forbidden in nuxt hooks/agents (FAIL when present as required)
|
|
43
|
+
|
|
44
|
+
- `xcuitest-test-` as handoff stems
|
|
45
|
+
- Requiring `xcodebuild` / SwiftLint as the default post-change gate for Nuxt app work
|
|
46
|
+
- Frontend profile mirrors `next`: Playwright / `lint:js` / `lint:css` allowed
|
|
47
|
+
|
|
48
|
+
## Forbidden in svelte hooks/agents (FAIL when present as required)
|
|
49
|
+
|
|
50
|
+
- `xcuitest-test-` as handoff stems
|
|
51
|
+
- Requiring `xcodebuild` / SwiftLint as the default post-change gate for SvelteKit app work
|
|
52
|
+
- Frontend profile mirrors `next` / `nuxt`: Playwright / `lint:js` / `lint:css` allowed
|
|
53
|
+
|
|
39
54
|
## Forbidden in go / java / php-hexagonal / php-laravel hooks/agents (FAIL)
|
|
40
55
|
|
|
41
56
|
Shared backend-stack bans (`go`, `java`, `php-hexagonal`, and `php-laravel`):
|
|
@@ -66,4 +81,4 @@ Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`,
|
|
|
66
81
|
|
|
67
82
|
## Chain fork
|
|
68
83
|
|
|
69
|
-
`hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `ios-swift`, `go`, `java`, `mcp-ts`, `php-hexagonal`, and `php-laravel` (per platform).
|
|
84
|
+
`hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `nuxt`, `svelte`, `ios-swift`, `go`, `java`, `mcp-ts`, `php-hexagonal`, and `php-laravel` (per platform).
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-pr-checklist.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset PR checklist
|
|
13
14
|
|
|
14
15
|
Чеклист для PR, затрагивающих `packages/ai-rules/presets/**` (и dogfood `.cursor/` sync).
|
|
@@ -17,7 +18,7 @@ alwaysApply: false
|
|
|
17
18
|
|
|
18
19
|
- [ ] **SoT:** правки в `packages/…` (не только root `.cursor/`)
|
|
19
20
|
- [ ] **Core:** если менялся `_shared/core/**` — обновлены все `<!-- shared-core: … -->` consumers (или documented intentional fork)
|
|
20
|
-
- [ ] **Twin:** Cursor change → Claude twin **same PR** (**FAIL** if missing on next, ios-swift, go, java, mcp-ts, php-hexagonal, and php-laravel — см. `preset-twin-sync`)
|
|
21
|
+
- [ ] **Twin:** Cursor change → Claude twin **same PR** (**FAIL** if missing on next, nuxt, svelte, ios-swift, go, java, mcp-ts, php-hexagonal, and php-laravel — см. `preset-twin-sync`)
|
|
21
22
|
- [ ] **Mapping:** `claude/<stack>/rules/README.md` mapping table актуален
|
|
22
23
|
- [ ] **Token budget:** alwaysApply / session-start ≤ 3; meta rules not always-on
|
|
23
24
|
- [ ] **Leakage:** нет чужих stack agent stems / handoff strings (`preset-no-cross-stack-leakage`)
|
|
@@ -9,6 +9,7 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-twin-sync.md -->
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
# Preset twin sync
|
|
13
14
|
|
|
14
15
|
Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
|
|
@@ -18,6 +19,8 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
|
|
|
18
19
|
| Stack | Cursor SoT | Claude derive | Mapping table |
|
|
19
20
|
|-------|------------|---------------|---------------|
|
|
20
21
|
| `next` | `presets/cursor/next/rules/*.mdc` | `presets/claude/next/rules/<topic>/` | **Required** in `claude/next/rules/README.md` |
|
|
22
|
+
| `nuxt` | `presets/cursor/nuxt/rules/*.mdc` | `presets/claude/nuxt/rules/<topic>/` | **Required** in `claude/nuxt/rules/README.md` |
|
|
23
|
+
| `svelte` | `presets/cursor/svelte/rules/*.mdc` | `presets/claude/svelte/rules/<topic>/` | **Required** in `claude/svelte/rules/README.md` |
|
|
21
24
|
| `ios-swift` | `presets/cursor/ios-swift/rules/*.mdc` | `presets/claude/ios-swift/rules/<topic>/` | Keep in `claude/ios-swift/rules/README.md` |
|
|
22
25
|
| `go` | `presets/cursor/go/rules/*.mdc` | `presets/claude/go/rules/<topic>/` | Keep in `claude/go/rules/README.md` |
|
|
23
26
|
| `java` | `presets/cursor/java/rules/*.mdc` | `presets/claude/java/rules/<topic>/` | Keep in `claude/java/rules/README.md` |
|
|
@@ -40,6 +43,8 @@ Cursor `.mdc` — **SoT per stack**. Claude topic `.md` — derived twin.
|
|
|
40
43
|
## Severity (build-verifier)
|
|
41
44
|
|
|
42
45
|
- **next:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
|
|
46
|
+
- **nuxt:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
|
|
47
|
+
- **svelte:** missing Claude twin for a changed Cursor rule → **FAIL** (mapping table required).
|
|
43
48
|
- **ios-swift:** missing Claude twin for a changed Cursor rule → **FAIL**.
|
|
44
49
|
- **go:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift; mapping table required).
|
|
45
50
|
- **java:** missing Claude twin for a changed Cursor rule → **FAIL** (same as next / ios-swift / go; mapping table required).
|