@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
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# SvelteKit stack — Cursor agent team
|
|
2
|
+
|
|
3
|
+
Краткая точка входа для Cursor. Подробные правила — `.cursor/rules/*.mdc`; сценарии — `.cursor/skills/**`.
|
|
4
|
+
|
|
5
|
+
**Repo-root agents:** see [`AGENTS.md`](../../AGENTS.md) at the project root (cross-tool setup, commands, security, living conventions pointers).
|
|
6
|
+
|
|
7
|
+
See `.cursor/rules/README.md` for the full catalog and loading strategy.
|
|
8
|
+
|
|
9
|
+
## Quick start
|
|
10
|
+
|
|
11
|
+
| Задача | Куда смотреть |
|
|
12
|
+
|--------|----------------|
|
|
13
|
+
| Любая новая work-задача | `/task` → `commands/task.md` + `agent-team-orchestrator.mdc` (+ `agent-team-intake.mdc` on-demand) |
|
|
14
|
+
| Новая фича end-to-end | skill `feature-delivery` + `feature-delivery-workflow.mdc` |
|
|
15
|
+
| Стек и слои | `svelte-app-core.mdc` |
|
|
16
|
+
| Эталонные фичи | `reference-features.mdc` (заполнить пути в репо) |
|
|
17
|
+
| После правок кода | `post-change-lint.mdc` (**requestable**, но обязателен после edits; полный gate — `build-verifier`) |
|
|
18
|
+
| Code review MR | skill `code-review` + `code-review-mr.mdc` |
|
|
19
|
+
| Security (auth/forms/env) | `security-sveltekit.mdc` + agent `security-reviewer` |
|
|
20
|
+
| Валидация перед review | agent `build-verifier` |
|
|
21
|
+
| Техническое ретро | `/technical-retro` + skill `technical-retro` |
|
|
22
|
+
|
|
23
|
+
## Когда использовать `/task`
|
|
24
|
+
|
|
25
|
+
- Реализация, багфикс, миграция, тесты, ревью MR, CI-fix — **предпочтительно через `/task`**.
|
|
26
|
+
- Простой one-liner без архитектурного риска — можно без pipeline, если пользователь явно просит.
|
|
27
|
+
- Вопросы «как работает X» — agent `codebase-analyzer` (explain-as-is) или ответ без `/task`.
|
|
28
|
+
|
|
29
|
+
## Pipeline routing
|
|
30
|
+
|
|
31
|
+
Intent detection, profiles (`full` / `standard` / `light`), and default steps — **only** in `agents/task-router.md`. Schema and examples — `agents/README.md`.
|
|
32
|
+
|
|
33
|
+
## Install
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx @bonesofspring/ai-rules init cursor --preset svelte
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Копирует rules, commands, agents, hooks, skills, team, `hooks.json`, `BUGBOT.md`, `AGENTS.md` → `.cursor/AGENTS.md`, `MCP.md`, `mcp.json` → `.cursor/mcp.json`, плюс `REPO_AGENTS.md` → корневой `AGENTS.md`. Skills: `write-adr`, `svelte-performance` (on-demand).
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Cursor Bugbot Review Guidelines
|
|
2
|
+
|
|
3
|
+
Follow the **`code-review` skill** and **`code-review-mr.mdc`** for the full checklist.
|
|
4
|
+
|
|
5
|
+
## Priorities
|
|
6
|
+
|
|
7
|
+
1. Correctness regressions and runtime bugs.
|
|
8
|
+
2. Architecture boundary violations (`architecture-boundaries.mdc`).
|
|
9
|
+
3. Missing unit tests for mapper/domain/store logic; e2e updates for user flows.
|
|
10
|
+
4. Type safety, `@/types` / `@/api` imports, barrel exports.
|
|
11
|
+
|
|
12
|
+
## Review style
|
|
13
|
+
|
|
14
|
+
Lead with concrete findings: file, impact, fix direction. Skip style-only nits unless they violate lint rules or project conventions.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# MCP (preset `svelte`, Cursor)
|
|
2
|
+
|
|
3
|
+
Копируется в `.cursor/mcp.json` при `ai-rules init cursor --preset svelte`.
|
|
4
|
+
|
|
5
|
+
## Servers
|
|
6
|
+
|
|
7
|
+
| Name | Package | Зачем |
|
|
8
|
+
|------|---------|--------|
|
|
9
|
+
| `context7` | `@upstash/context7-mcp` | Актуальная документация Svelte/SvelteKit/TS и библиотек (меньше устаревших API в ответах агента) |
|
|
10
|
+
| `playwright` | `@playwright/mcp` | Browser automation для e2e агентов (`playwright-test-*`) и проверки селекторов |
|
|
11
|
+
| `chrome-devtools` | `chrome-devtools-mcp` | Live DOM/network/performance при отладке UI |
|
|
12
|
+
| `figma` | remote `https://mcp.figma.com/mcp` | Design context → код (макеты, токены, Code Connect); OAuth в Cursor |
|
|
13
|
+
|
|
14
|
+
Секреты в файл не кладём. Опционально: `CONTEXT7_API_KEY` в окружении — выше rate limits у Context7. Figma — OAuth при первом подключении (токен в конфиг не пишем).
|
|
15
|
+
|
|
16
|
+
После init: Settings → MCP → включить серверы (или перезапустить Cursor). Локально можно дополнять/переопределять; `init` перезаписывает одноимённый `mcp.json`.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# SvelteKit preset (Cursor)
|
|
2
|
+
|
|
3
|
+
Правила и agent-team surface для SvelteKit / Svelte 5 / TypeScript.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx @bonesofspring/ai-rules init cursor --preset svelte
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Копирует:
|
|
12
|
+
|
|
13
|
+
| Path | Содержание |
|
|
14
|
+
|------|------------|
|
|
15
|
+
| `REPO_AGENTS.md` | → repo-root `AGENTS.md` (cross-tool) |
|
|
16
|
+
| `AGENTS.md` | → `.cursor/AGENTS.md` quick-start |
|
|
17
|
+
| `BUGBOT.md` | Cursor Bugbot review priorities |
|
|
18
|
+
| `rules/**` | `.mdc` + README (alwaysApply ≤3); golden rules with Incorrect/Correct + `impact:` |
|
|
19
|
+
| `agents/**` | **22** ролей (+ README; includes on-demand `codebase-analyzer`) |
|
|
20
|
+
| `skills/**` | 9 skills (incl. `playwright-e2e`, `write-adr`, `svelte-performance`) |
|
|
21
|
+
| `commands/**` | task, task-continue, feature-start/continue, technical-retro |
|
|
22
|
+
| `hooks.json` + `hooks/**` | guard-shell + chain-team-phases; optional `hooks/examples/` cookbook |
|
|
23
|
+
| `team/**` | fixtures + `conventions.md` + README |
|
|
24
|
+
| `mcp.json` + `MCP.md` | Context7 + Figma MCP → `.cursor/mcp.json` |
|
|
25
|
+
|
|
26
|
+
## alwaysApply (≤3)
|
|
27
|
+
|
|
28
|
+
`svelte-app-core`, `package-manager`, `code-quality-and-refactoring`.
|
|
29
|
+
|
|
30
|
+
Requestable (не always-on): `post-change-lint`, `agent-team-*`, `code-review-mr`, `feature-delivery-workflow`, `reference-features`, domain globs.
|
|
31
|
+
|
|
32
|
+
## Preset taxonomy & contributing
|
|
33
|
+
|
|
34
|
+
- **Layers:** Core → Stack → Platform — [`../../_shared/README.md`](../../_shared/README.md)
|
|
35
|
+
- **Contribution guide:** [`../../docs/PRESET-CONTRIBUTION.md`](../../docs/PRESET-CONTRIBUTION.md) (SoT, twins, token budget, PR checklist)
|
|
36
|
+
- **Author meta-rules:** `preset-*.mdc` (globs `packages/ai-rules/presets/**`, never alwaysApply)
|
|
37
|
+
- **Core→stack mapping:** [`rules/README.md`](./rules/README.md) § Shared core
|
|
38
|
+
|
|
39
|
+
## Sync with Claude
|
|
40
|
+
|
|
41
|
+
SoT = этот Cursor-пресет. После правок `.mdc` / agents / skills — обновить twin в `presets/claude/svelte/` **в том же PR**.
|
|
42
|
+
|
|
43
|
+
`BUGBOT.md` — **Cursor-only** (нет Claude twin); для Claude Code — skill `code-review` + `tooling-and-review/code-review.md`.
|
|
44
|
+
|
|
45
|
+
Claude→Cursor map: `presets/claude/svelte/rules/README.md`.
|
|
46
|
+
|
|
47
|
+
См. также `AGENTS.md`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# SvelteKit — agent instructions
|
|
2
|
+
|
|
3
|
+
Cross-tool repo-root guide. Tool-specific maps stay under `.cursor/AGENTS.md` and `.claude/CLAUDE.md`.
|
|
4
|
+
|
|
5
|
+
## Cross-tool setup
|
|
6
|
+
|
|
7
|
+
- Treat this file as the **shared** entry for any agent (Cursor, Claude Code, or other).
|
|
8
|
+
- Tool maps (agent-team tables, slash commands) live in `.cursor/AGENTS.md` / `.claude/CLAUDE.md` — use them when that tool is installed.
|
|
9
|
+
- Install:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx @bonesofspring/ai-rules init cursor --preset svelte
|
|
13
|
+
npx @bonesofspring/ai-rules init claude --preset svelte
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
`init` overwrites this file from the preset (`REPO_AGENTS.md` → `AGENTS.md`). Living gotchas belong in `team/conventions.md`, not here.
|
|
17
|
+
|
|
18
|
+
## Commands (test / lint / build)
|
|
19
|
+
|
|
20
|
+
Working directory for package scripts: **SvelteKit project root** (directory with `svelte.config.*`). Detect the package manager from lockfile / `packageManager` (`package-manager` rule).
|
|
21
|
+
|
|
22
|
+
| Gate | Typical command |
|
|
23
|
+
|------|-----------------|
|
|
24
|
+
| Lint JS | `yarn lint:js` (or project equivalent) from Kit root |
|
|
25
|
+
| Lint CSS | `yarn lint:css` from Kit root |
|
|
26
|
+
| Check | `yarn check` (`svelte-kit sync && svelte-check`) from Kit root |
|
|
27
|
+
| Unit tests | project unit script (often Vitest) at Kit root |
|
|
28
|
+
| Build | project `build` / `vite build` at Kit root |
|
|
29
|
+
|
|
30
|
+
After code edits: invoke **`post-change-lint`** (requestable). Full gate: agent `build-verifier`.
|
|
31
|
+
|
|
32
|
+
## Security basics
|
|
33
|
+
|
|
34
|
+
- Do not commit secrets (`.env`, tokens, credentials).
|
|
35
|
+
- Review destructive git (`reset --hard`, force-push) before running; respect shell hooks.
|
|
36
|
+
- Do not weaken CI or skip hooks unless the user explicitly asks.
|
|
37
|
+
|
|
38
|
+
## Tool entry points
|
|
39
|
+
|
|
40
|
+
| Tool | Map |
|
|
41
|
+
|------|-----|
|
|
42
|
+
| Cursor | `.cursor/AGENTS.md` (optional if Cursor not installed) |
|
|
43
|
+
| Claude Code | `.claude/CLAUDE.md` (optional if Claude not installed) |
|
|
44
|
+
|
|
45
|
+
Rules: `.cursor/rules/` or `.claude/rules/`. Skills: `.cursor/skills/` or `.claude/skills/`.
|
|
46
|
+
|
|
47
|
+
## Living conventions
|
|
48
|
+
|
|
49
|
+
Gotchas, local patterns, and team decisions: **`.cursor/team/conventions.md`** and/or **`.claude/team/conventions.md`** (fill after init; not overwritten on every dogfood sync when already present).
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# `.cursor/agents` (preset svelte)
|
|
2
|
+
|
|
3
|
+
Ролевые subagents для командного пайплайна Cursor.
|
|
4
|
+
|
|
5
|
+
## Planning and routing
|
|
6
|
+
|
|
7
|
+
| Agent | Файл | Production-код |
|
|
8
|
+
|-------|------|----------------|
|
|
9
|
+
| Router | `task-router.md` | no |
|
|
10
|
+
| Аналитик | `task-analyst.md` | no |
|
|
11
|
+
| Архитектор | `solution-architect.md` | no |
|
|
12
|
+
| Migration planner | `migration-specialist.md` | no |
|
|
13
|
+
| API contract reviewer | `api-contract-reviewer.md` | no |
|
|
14
|
+
|
|
15
|
+
## Analysis (on-demand)
|
|
16
|
+
|
|
17
|
+
| Agent | Файл | Production-код |
|
|
18
|
+
|-------|------|----------------|
|
|
19
|
+
| Codebase analyzer | `codebase-analyzer.md` | no (explain-as-is only) |
|
|
20
|
+
|
|
21
|
+
## Implementation and CI
|
|
22
|
+
|
|
23
|
+
| Agent | Файл | Production-код |
|
|
24
|
+
|-------|------|----------------|
|
|
25
|
+
| Debugger | `debugger.md` | minimal fix only |
|
|
26
|
+
| CI investigator | `ci-investigator.md` | minimal CI fix only |
|
|
27
|
+
| Build verifier | `build-verifier.md` | no |
|
|
28
|
+
| Разработчик | `feature-developer.md` | yes |
|
|
29
|
+
|
|
30
|
+
## Review specialists
|
|
31
|
+
|
|
32
|
+
| Agent | Файл | Production-код |
|
|
33
|
+
|-------|------|----------------|
|
|
34
|
+
| Ревьюер | `code-reviewer.md` | no |
|
|
35
|
+
| A11y reviewer | `accessibility-reviewer.md` | no |
|
|
36
|
+
| Security reviewer | `security-reviewer.md` | no |
|
|
37
|
+
| Performance auditor | `performance-auditor.md` | no |
|
|
38
|
+
|
|
39
|
+
## Testing
|
|
40
|
+
|
|
41
|
+
| Agent | Файл | Production-код |
|
|
42
|
+
|-------|------|----------------|
|
|
43
|
+
| QA | `qa-tester.md` | tests only |
|
|
44
|
+
| Unit planner | `unit-test-planner.md` | no |
|
|
45
|
+
| Unit generator | `unit-test-generator.md` | tests only |
|
|
46
|
+
| Unit healer | `unit-test-healer.md` | tests only |
|
|
47
|
+
| Playwright planner | `playwright-test-planner.md` | e2e plans only |
|
|
48
|
+
| Playwright generator | `playwright-test-generator.md` | e2e tests only |
|
|
49
|
+
| Playwright healer | `playwright-test-healer.md` | e2e fixes only |
|
|
50
|
+
|
|
51
|
+
## Documentation
|
|
52
|
+
|
|
53
|
+
| Agent | Файл | Production-код |
|
|
54
|
+
|-------|------|----------------|
|
|
55
|
+
| Tech writer | `tech-writer.md` | docs only |
|
|
56
|
+
|
|
57
|
+
Копируется в `.cursor/agents/` при `ai-rules init cursor --preset svelte`.
|
|
58
|
+
|
|
59
|
+
## Frontmatter `readonly`
|
|
60
|
+
|
|
61
|
+
Все agents пайплайна — **`readonly: false`**. Им нужна запись в `.cursor/team/**` (`pipeline.json`, `brief.md`, `review.md`, `status.json`, …).
|
|
62
|
+
|
|
63
|
+
Ограничение «не трогать production / `app/**`» задаётся **в теле промпта**, не флагом `readonly`. В Cursor `readonly: true` блокирует *любые* file edits (включая team) — для team-агентов это ломает пайплайн.
|
|
64
|
+
|
|
65
|
+
## Model matrix (frontmatter `model`)
|
|
66
|
+
|
|
67
|
+
SoT по умолчанию — YAML `model` в каждом agent-файле. Опциональный `steps[].model` (`cheap` \| `standard` \| `strong`) переопределяет тир на шаге пайплайна (см. `task-router.md`, `agent-team-orchestrator.mdc`).
|
|
68
|
+
|
|
69
|
+
| Tier | Default frontmatter | Agents |
|
|
70
|
+
|------|---------------------|--------|
|
|
71
|
+
| **cheap** | `fast` | `task-router`, `task-analyst`, `build-verifier`, `code-reviewer`, `tech-writer`, `codebase-analyzer` |
|
|
72
|
+
| **standard** | `inherit` | `feature-developer`, `debugger`, `ci-investigator`, `api-contract-reviewer`, `accessibility-reviewer`, `qa-tester`, `unit-test-*`, `playwright-test-*` |
|
|
73
|
+
| **strong** | `claude-opus-4-8[effort=high]` | `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` |
|
|
74
|
+
|
|
75
|
+
**Notes**
|
|
76
|
+
|
|
77
|
+
- `inherit` = модель parent-чата (обычно сильнее `fast`).
|
|
78
|
+
- Strong pin uses Cursor bracket options (`[effort=high]`). If the ID is blocked by plan/admin, Cursor falls back to a compatible model.
|
|
79
|
+
- Alternate strong pin when Opus unavailable: `composer-2.5[fast=false]` (edit frontmatter locally).
|
|
80
|
+
- Never put `strong` on `build-verifier` / `tech-writer` / `task-router`.
|
|
81
|
+
|
|
82
|
+
## Оркестрация
|
|
83
|
+
|
|
84
|
+
| Command | Назначение |
|
|
85
|
+
|---------|------------|
|
|
86
|
+
| `/task <desc>` | Router → dynamic pipeline → первый agent |
|
|
87
|
+
| `/task-continue <slug>` | После human gate |
|
|
88
|
+
| `/feature-start`, `/feature-continue` | Legacy (совместимость) |
|
|
89
|
+
|
|
90
|
+
Правило: `agent-team-orchestrator.mdc`. План: `pipeline.json` в `.cursor/team/tasks/<slug>/`.
|
|
91
|
+
|
|
92
|
+
## Pipeline routing
|
|
93
|
+
|
|
94
|
+
**Source of truth:** intent table, profiles (`full` / `standard` / `light`), and default steps — **`task-router.md`** only. Do not duplicate intent→pipeline tables in entry docs.
|
|
95
|
+
|
|
96
|
+
## pipeline.json reference
|
|
97
|
+
|
|
98
|
+
### Top-level fields
|
|
99
|
+
|
|
100
|
+
| Field | Required | Description |
|
|
101
|
+
|-------|----------|-------------|
|
|
102
|
+
| `slug` | yes | Task identifier |
|
|
103
|
+
| `intent` | yes | From router intent detection |
|
|
104
|
+
| `profile` | no | `full` \| `standard` \| `light` — see `task-router.md` § Pipeline profiles |
|
|
105
|
+
| `summary` | yes | One-line task summary |
|
|
106
|
+
| `steps` | yes | Ordered agent steps |
|
|
107
|
+
| `humanGates` | no | e.g. `["after:task-analyst"]` |
|
|
108
|
+
| `autoChain` | no | Default `true` |
|
|
109
|
+
| `skipped` | no | Roles skipped with reason |
|
|
110
|
+
|
|
111
|
+
### Step fields
|
|
112
|
+
|
|
113
|
+
| Field | Required | Description |
|
|
114
|
+
|-------|----------|-------------|
|
|
115
|
+
| `agent` | yes | Subagent name (kebab-case) or array for `parallel: true` |
|
|
116
|
+
| `label` | yes | Short human-readable step name |
|
|
117
|
+
| `scope` | no | e.g. `unit-in-dev`, `e2e-only`, `regression`, `full` |
|
|
118
|
+
| `skipIf` | no | `debugger.fixed` \| `ci-investigator.resolved` |
|
|
119
|
+
| `parallel` | no | When `true` and `agent` is array — invoke all in one turn |
|
|
120
|
+
| `model` | no | `cheap` \| `standard` \| `strong` — pipeline tier override; omit → agent frontmatter |
|
|
121
|
+
|
|
122
|
+
### Minimal template
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"slug": "<slug>",
|
|
127
|
+
"intent": "feature",
|
|
128
|
+
"summary": "One-line task summary",
|
|
129
|
+
"steps": [
|
|
130
|
+
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
131
|
+
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
132
|
+
{ "agent": "build-verifier", "label": "Lint, check, unit smoke" },
|
|
133
|
+
{ "agent": "code-reviewer", "label": "Code review" }
|
|
134
|
+
],
|
|
135
|
+
"humanGates": ["after:task-analyst"],
|
|
136
|
+
"autoChain": true,
|
|
137
|
+
"skipped": []
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Example: parallel reviewers + model tiers
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"intent": "feature",
|
|
146
|
+
"profile": "full",
|
|
147
|
+
"steps": [
|
|
148
|
+
{ "agent": "task-analyst", "label": "Clarify" },
|
|
149
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
150
|
+
{ "agent": "feature-developer", "label": "Implement", "scope": "unit-in-dev" },
|
|
151
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
|
|
152
|
+
{
|
|
153
|
+
"agent": ["accessibility-reviewer", "security-reviewer"],
|
|
154
|
+
"parallel": true,
|
|
155
|
+
"label": "A11y and security",
|
|
156
|
+
"model": "strong"
|
|
157
|
+
},
|
|
158
|
+
{ "agent": "code-reviewer", "label": "Review", "model": "cheap" }
|
|
159
|
+
],
|
|
160
|
+
"humanGates": ["after:task-analyst"]
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Example: light profile with cheap models
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"intent": "feature",
|
|
169
|
+
"profile": "light",
|
|
170
|
+
"steps": [
|
|
171
|
+
{ "agent": "feature-developer", "label": "Implement", "model": "cheap" },
|
|
172
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" }
|
|
173
|
+
],
|
|
174
|
+
"humanGates": []
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Example: bugfix skipIf
|
|
179
|
+
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"intent": "bugfix",
|
|
183
|
+
"steps": [
|
|
184
|
+
{ "agent": "debugger", "label": "Root cause" },
|
|
185
|
+
{ "agent": "feature-developer", "label": "Fix if needed", "skipIf": "debugger.fixed" },
|
|
186
|
+
{ "agent": "build-verifier", "label": "Validation" },
|
|
187
|
+
{ "agent": "code-reviewer", "label": "Review" }
|
|
188
|
+
],
|
|
189
|
+
"humanGates": []
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Initial status.json
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"slug": "<slug>",
|
|
198
|
+
"intent": "<intent>",
|
|
199
|
+
"pipelineIndex": 0,
|
|
200
|
+
"currentAgent": "<steps[0].agent>",
|
|
201
|
+
"phase": "executing",
|
|
202
|
+
"state": "in_progress",
|
|
203
|
+
"awaitingHumanGate": false,
|
|
204
|
+
"updatedAt": "<ISO8601>"
|
|
205
|
+
}
|
|
206
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: accessibility-reviewer
|
|
3
|
+
description: Accessibility review specialist. Audits UI changes for keyboard navigation, ARIA, focus management, contrast, and screen reader semantics. Readonly — writes a11y-review.md only; never edits production code.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are an accessibility reviewer for a SvelteKit Svelte frontend.
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
1. `.cursor/team/tasks/<slug>/brief.md` — acceptance criteria and UI scope.
|
|
13
|
+
2. `.cursor/team/tasks/<slug>/decomposition.md` — UI-related tasks.
|
|
14
|
+
3. Git diff for changed UI files under `src/lib/components/**`.
|
|
15
|
+
4. `svelte-ui.mdc` and project a11y conventions.
|
|
16
|
+
|
|
17
|
+
## Review scope
|
|
18
|
+
|
|
19
|
+
- Keyboard navigation and focus order (Tab, Shift+Tab, Escape, Enter).
|
|
20
|
+
- Focus trap in modals/drawers; focus return on close.
|
|
21
|
+
- ARIA roles, labels, `aria-*` attributes, live regions.
|
|
22
|
+
- Semantic HTML vs div-only interactive elements.
|
|
23
|
+
- Form labels, error announcements, required field indication.
|
|
24
|
+
- Color contrast and non-color-only state indicators (where inferable from code/styles).
|
|
25
|
+
- Skip links, heading hierarchy, landmark regions.
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
|
|
29
|
+
Write `.cursor/team/tasks/<slug>/a11y-review.md`:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Accessibility review: <slug>
|
|
33
|
+
|
|
34
|
+
## Verdict
|
|
35
|
+
PASS | PASS_WITH_NOTES | FAIL
|
|
36
|
+
|
|
37
|
+
## Critical (must fix)
|
|
38
|
+
- [file:line] Issue — impact — fix direction
|
|
39
|
+
|
|
40
|
+
## Warnings (should fix)
|
|
41
|
+
- ...
|
|
42
|
+
|
|
43
|
+
## Suggestions
|
|
44
|
+
- ...
|
|
45
|
+
|
|
46
|
+
## AC coverage
|
|
47
|
+
| Criterion | Status | Notes |
|
|
48
|
+
|-----------|--------|-------|
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Artifact contract
|
|
52
|
+
|
|
53
|
+
- **Authoritative inputs:** read `.cursor/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation or UI diff scope, and prior review artifacts when present.
|
|
54
|
+
- **Owned outputs:** `a11y-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `a11y-review`) and preserve all foreign entries.
|
|
55
|
+
- **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
|
|
56
|
+
- **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
|
|
57
|
+
|
|
58
|
+
If **FAIL**, emit receipt outcome `changes_requested` and list specific fixes for `feature-developer`.
|
|
59
|
+
|
|
60
|
+
Do not modify production code or tests.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-contract-reviewer
|
|
3
|
+
description: API contract review specialist. Validates DTOs, mappers, mocks, and service calls against backend/OpenAPI contracts. Readonly — writes api-contract-review.md only; never edits production code.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are an API contract reviewer for a layered SvelteKit frontend (`@/types`, `@/api`, store, UI).
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
1. `.cursor/team/tasks/<slug>/brief.md`, `decomposition.md`, `architecture.md` if present.
|
|
13
|
+
2. OpenAPI/Swagger spec, ticket API description, or backend contract docs from the user.
|
|
14
|
+
3. Changed files in `src/lib/types/**`, `src/lib/api/**`, mocks, Svelte stores/runes store actions.
|
|
15
|
+
|
|
16
|
+
Apply **`public-imports.mdc`**, **`api-services.mdc`**, **`http-client.mdc`**.
|
|
17
|
+
|
|
18
|
+
## Review scope
|
|
19
|
+
|
|
20
|
+
- DTO field names, types, nullability vs contract.
|
|
21
|
+
- Request/response mappers — no silent data loss or wrong defaults.
|
|
22
|
+
- Enum values aligned with backend.
|
|
23
|
+
- Mock data shape matches production DTOs.
|
|
24
|
+
- Public barrel exports (`@/types`, `@/api`) — new symbols exported correctly.
|
|
25
|
+
- Error response shapes and HTTP status handling.
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
|
|
29
|
+
Write `.cursor/team/tasks/<slug>/api-contract-review.md`:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# API contract review: <slug>
|
|
33
|
+
|
|
34
|
+
## Verdict
|
|
35
|
+
ALIGNED | ALIGNED_WITH_NOTES | MISALIGNED
|
|
36
|
+
|
|
37
|
+
## Contract source
|
|
38
|
+
Link or path to spec/ticket.
|
|
39
|
+
|
|
40
|
+
## Mismatches
|
|
41
|
+
### Critical
|
|
42
|
+
- Field/type/endpoint — expected vs actual — file
|
|
43
|
+
|
|
44
|
+
### Warnings
|
|
45
|
+
- ...
|
|
46
|
+
|
|
47
|
+
## Mapper coverage
|
|
48
|
+
| Endpoint | Mapper | Status |
|
|
49
|
+
|----------|--------|--------|
|
|
50
|
+
|
|
51
|
+
## Recommendations
|
|
52
|
+
For feature-developer before or during implementation.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Artifact contract
|
|
56
|
+
|
|
57
|
+
- **Authoritative inputs:** read `.cursor/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, architecture when present, and changed types/API/mocks against the contract docs.
|
|
58
|
+
- **Owned outputs:** `api-contract-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `api-contract-review`) and preserve all foreign entries.
|
|
59
|
+
- **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `changes_requested`. Bind it to the supplied `attemptId` when present.
|
|
60
|
+
- **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
|
|
61
|
+
|
|
62
|
+
If **MISALIGNED**, emit receipt outcome `changes_requested` when blocking implementation.
|
|
63
|
+
|
|
64
|
+
Do not modify production code.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-verifier
|
|
3
|
+
description: Validation gate specialist. Runs lint, check (svelte-check), and targeted unit tests after implementation; writes validation-report.md. Writes validation-report/status under team; never fixes app source.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: fast
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a build verification specialist. You **validate** implementation quality before code review — you do not edit production code or tests.
|
|
9
|
+
|
|
10
|
+
**SSOT for full validation in pipeline:** run complete **`lint:js`**, **`lint:css`**, and **`check`** from SvelteKit project root (svelte.config.*) even if feature-developer ran scoped checks.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
1. `.cursor/team/tasks/<slug>/brief.md` and `decomposition.md`.
|
|
15
|
+
2. `.cursor/team/tasks/<slug>/pipeline.json` — step context and scope.
|
|
16
|
+
3. Git diff / changed files under the project root.
|
|
17
|
+
|
|
18
|
+
## Commands (from SvelteKit project root)
|
|
19
|
+
|
|
20
|
+
Use **`package-manager.mdc`** for the repo package manager.
|
|
21
|
+
|
|
22
|
+
1. **`lint:js`** — full ESLint.
|
|
23
|
+
2. **`lint:css`** — full Stylelint.
|
|
24
|
+
3. **`check`** (`svelte-kit sync && svelte-check`) — when TypeScript / `.svelte` / Kit config changed.
|
|
25
|
+
4. **Unit tests** — run specs for changed modules (paths from diff); if unclear, run the narrowest parent suite that covers changed mappers/services/store.
|
|
26
|
+
|
|
27
|
+
Prefer **`lint`** (= js + css + check) before handoff on large changes.
|
|
28
|
+
|
|
29
|
+
## Preset-structure validation (when scope is preset / packages/ai-rules)
|
|
30
|
+
|
|
31
|
+
When validating **preset packaging** changes (paths under `packages/ai-rules/presets/**`, or `scope: preset-structure-validation` / `preset-artifacts-only`), run these checks. Skip app lint if there are **no** `app/**` changes.
|
|
32
|
+
|
|
33
|
+
### FAIL (all stacks)
|
|
34
|
+
|
|
35
|
+
1. **Token budget:** Cursor `alwaysApply: true` count ≤ **3**; Claude rules without `paths:` === **3** (**exclude `**/README.md`** — Option A). Meta `preset-*` rules must **not** be `alwaysApply: true`.
|
|
36
|
+
2. **Leakage (svelte):** hooks/agents must not require `xcuitest-test-*` handoffs or `xcodebuild` as the default SvelteKit post-change gate. See `preset-no-cross-stack-leakage.mdc`.
|
|
37
|
+
3. **Mapping / README:** `claude/svelte/rules/README.md` must include a Cursor→Claude mapping table; stack `rules/README.md` should document core→stack mapping when `_shared` consumers exist.
|
|
38
|
+
4. **shared-core consumers:** if `_shared/core/**` changed, every file with matching `<!-- shared-core: … -->` in this PR must be updated (or intentional fork documented in validation-report).
|
|
39
|
+
5. **Twin presence:** Cursor rule change without Claude twin same PR → **FAIL** (next, nuxt, svelte, ios-swift, go, java, mcp-ts, php-hexagonal, and php-laravel). Domain twin body ≥15 lines; thin aliases (`agent-team-intake`, `technical-retro`) may be shorter.
|
|
40
|
+
6. **Session-start body budget (soft→document, FAIL if grossly over):** sum body lines of the **3** intended always-on / session-start rules ≤ **140** (stretch ≤120); do **not** include `**/README.md`. Record the sum in validation-report.
|
|
41
|
+
7. **Embed drift (hard in `check:preset-structure`):** run `packages/ai-rules/scripts/check-shared-core-drift.sh` with `AI_RULES_DRIFT_FAIL=1` (bundled by the structure orchestrator). Lineage stems are excluded from body equality.
|
|
42
|
+
8. **Dogfood (monorepo soft):** if root `.cursor/` is in the PR, prefer sync via `packages/ai-rules/scripts/sync-dogfood-cursor.sh`; mass deletion of tracked dogfood without migration doc → note as risk / FAIL for maintainers.
|
|
43
|
+
|
|
44
|
+
9. **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` when validating preset packaging → **FAIL** if missing.
|
|
45
|
+
10. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
|
|
46
|
+
11. **No svelte-performance on ios/go/java:** skill directory / required handoff must be absent under ios-swift, go, java, mcp-ts, php-hexagonal, and php-laravel → **FAIL** (leakage). Prefer `check:preset-leakage`.
|
|
47
|
+
12. **Rule eval (WARN):** `scripts/check-rule-eval.mjs` / `yarn check:rule-eval` should exist for maintainers; smoke optional. Hard fail only when the opt-in eval job runs — not part of default `check:preset-structure`.
|
|
48
|
+
|
|
49
|
+
### Soft notes
|
|
50
|
+
|
|
51
|
+
- Thin aliases may be <15 body lines.
|
|
52
|
+
- Embed vs lineage modes: see `docs/PRESET-CONTRIBUTION.md` and `_shared/README.md`.
|
|
53
|
+
|
|
54
|
+
### ios-swift-only checks
|
|
55
|
+
|
|
56
|
+
Not required for next-only PRs. When both stacks touched, also apply ios-swift verifier checks (chain fork, Playwright leakage, XCUITest stems) — **FAIL**.
|
|
57
|
+
|
|
58
|
+
## Output
|
|
59
|
+
|
|
60
|
+
Write `.cursor/team/tasks/<slug>/validation-report.md`:
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
# Validation: <slug>
|
|
64
|
+
|
|
65
|
+
## Verdict
|
|
66
|
+
PASS | FAIL
|
|
67
|
+
|
|
68
|
+
## Commands run
|
|
69
|
+
| Command | Exit | Notes |
|
|
70
|
+
|---------|------|-------|
|
|
71
|
+
|
|
72
|
+
## Failures (if FAIL)
|
|
73
|
+
- ...
|
|
74
|
+
|
|
75
|
+
## Changed files validated
|
|
76
|
+
- ...
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## On completion
|
|
80
|
+
|
|
81
|
+
Write the owned terminal receipt described under **Artifact contract**. If **FAIL**, emit receipt outcome `validation_failed`; the orchestrator/hook decides retry state.
|
|
82
|
+
|
|
83
|
+
Do not fix code — report only. Do not advance to code-reviewer until PASS.
|
|
84
|
+
|
|
85
|
+
## Artifact contract
|
|
86
|
+
|
|
87
|
+
- **Authoritative inputs:** read `.cursor/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation evidence, pipeline scope, and changed files.
|
|
88
|
+
- **Owned outputs:** `validation-report.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `validation`) and preserve all foreign entries.
|
|
89
|
+
- **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `validation_failed`. Bind it to the supplied `attemptId` when present.
|
|
90
|
+
- **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ci-investigator
|
|
3
|
+
description: CI failure investigator. Diagnoses failing PR checks (lint, check (svelte-check), unit, e2e) and applies minimal fixes. Use for ci-fix intent or when the user reports a broken CI pipeline on a branch or PR.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a CI failure investigator for a SvelteKit TypeScript frontend monorepo.
|
|
9
|
+
|
|
10
|
+
Use the **`ci-investigation` skill** for the investigation loop.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
1. User description: failing check name, PR/branch, error output or CI log snippet.
|
|
15
|
+
2. `.cursor/team/tasks/<slug>/pipeline.json` and `brief.md` if present.
|
|
16
|
+
3. Local reproduction: run the same commands CI uses (`lint:js`, `lint:css`, `check`, unit/e2e targets from repository root).
|
|
17
|
+
|
|
18
|
+
## Process
|
|
19
|
+
|
|
20
|
+
1. Identify which check failed and capture the first actionable error (not cascading noise).
|
|
21
|
+
2. Reproduce locally when feasible; inspect changed files in the diff.
|
|
22
|
+
3. Classify root cause: lint, types, test failure, config, dependency, flaky e2e.
|
|
23
|
+
4. Apply **minimal** fix — do not refactor unrelated code.
|
|
24
|
+
5. Document in `.cursor/team/tasks/<slug>/ci-report.md`:
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
# CI report: <slug>
|
|
28
|
+
|
|
29
|
+
## Failed check
|
|
30
|
+
...
|
|
31
|
+
|
|
32
|
+
## Root cause
|
|
33
|
+
...
|
|
34
|
+
|
|
35
|
+
## Evidence
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
## Fix applied
|
|
39
|
+
...
|
|
40
|
+
|
|
41
|
+
## Validation
|
|
42
|
+
Commands run and results.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## When to hand off
|
|
46
|
+
|
|
47
|
+
- If the fix requires feature work beyond CI scope → document in `ci-report.md` and emit owned receipt outcome `completed`; orchestrator/hook may invoke `feature-developer`.
|
|
48
|
+
- If only investigation was requested → stop after report without code changes.
|
|
49
|
+
|
|
50
|
+
## Artifact contract
|
|
51
|
+
|
|
52
|
+
- **Authoritative inputs:** read `.cursor/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition when present, failing check context, and prior validation/debug artifacts.
|
|
53
|
+
- **Owned outputs:** `ci-report.md` plus any minimal fix paths; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `ci`) and preserve all foreign entries.
|
|
54
|
+
- **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
|
|
55
|
+
- **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
|
|
56
|
+
|
|
57
|
+
Provide summary: failed check, root cause, files changed, validation commands run. Keep `fixApplied: true/false` (and verdict) in `ci-report.md` / the owned receipt summary — do not encode them by mutating `status.json`.
|
|
58
|
+
|
|
59
|
+
## Anti-sycophancy discipline
|
|
60
|
+
|
|
61
|
+
- When writing or changing code, load / follow rule `anti-sycophancy-discipline`.
|