@bonesofspring/ai-rules 0.2.14 → 0.2.15
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 +16 -1
- package/package.json +2 -1
- package/presets/_shared/core/agent-team/agent-team-intake.md +2 -2
- package/presets/_shared/core/agent-team/agent-team-orchestrator.md +4 -4
- package/presets/_shared/core/architecture/feature-delivery-workflow.md +27 -27
- package/presets/_shared/core/architecture/reference-features.template.md +23 -23
- package/presets/_shared/core/meta/preset-layering.md +12 -12
- package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +1 -1
- package/presets/_shared/core/meta/preset-pr-checklist.md +6 -6
- package/presets/_shared/core/meta/preset-token-budget.md +3 -3
- package/presets/_shared/core/quality/code-quality-and-refactoring.md +19 -19
- package/presets/_shared/core/quality/design-guidance.md +54 -54
- package/presets/_shared/core/review/code-review-mr.md +4 -4
- package/presets/_shared/core/review/technical-retro.md +3 -3
- package/presets/claude/go/MCP.md +7 -7
- package/presets/claude/go/README.md +3 -3
- package/presets/claude/go/agents/README.md +2 -2
- package/presets/claude/go/agents/task-router.md +13 -13
- package/presets/claude/go/commands/README.md +8 -8
- package/presets/claude/go/commands/feature-continue.md +21 -21
- package/presets/claude/go/commands/feature-start.md +16 -16
- package/presets/claude/go/commands/task-continue.md +14 -14
- package/presets/claude/go/commands/task.md +32 -32
- package/presets/claude/go/commands/technical-retro.md +38 -38
- package/presets/claude/go/rules/architecture/boundaries.md +10 -10
- package/presets/claude/go/rules/stack/README.md +1 -1
- package/presets/claude/go/rules/stack/go-app-core.md +11 -11
- package/presets/claude/go/rules/tooling-and-review/README.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/agent-team-intake.md +2 -2
- package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
- package/presets/claude/go/rules/tooling-and-review/code-quality.md +21 -20
- package/presets/claude/go/rules/tooling-and-review/code-review.md +4 -4
- package/presets/claude/go/rules/tooling-and-review/design-guidance.md +54 -54
- package/presets/claude/go/rules/tooling-and-review/post-change-test.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/preset-layering.md +12 -13
- package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -2
- package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +6 -7
- package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +0 -1
- package/presets/claude/go/rules/tooling-and-review/technical-retro.md +3 -3
- package/presets/claude/go/team/README.md +1 -1
- package/presets/claude/ios-swift/CLAUDE.md +16 -16
- package/presets/claude/ios-swift/MCP.md +10 -8
- package/presets/claude/ios-swift/README.md +8 -8
- package/presets/claude/ios-swift/agents/README.md +11 -11
- package/presets/claude/ios-swift/agents/feature-developer.md +1 -1
- package/presets/claude/ios-swift/agents/task-analyst.md +1 -1
- package/presets/claude/ios-swift/agents/task-router.md +18 -18
- package/presets/claude/ios-swift/commands/README.md +48 -10
- package/presets/claude/ios-swift/commands/feature-continue.md +9 -41
- package/presets/claude/ios-swift/commands/feature-start.md +19 -16
- package/presets/claude/ios-swift/commands/task-continue.md +14 -14
- package/presets/claude/ios-swift/commands/task.md +33 -33
- package/presets/claude/ios-swift/commands/technical-retro.md +61 -38
- package/presets/claude/ios-swift/rules/README.md +7 -7
- package/presets/claude/ios-swift/rules/api-and-data/README.md +1 -1
- package/presets/claude/ios-swift/rules/api-and-data/networking.md +31 -31
- package/presets/claude/ios-swift/rules/api-and-data/persistence.md +13 -13
- package/presets/claude/ios-swift/rules/architecture/README.md +1 -1
- package/presets/claude/ios-swift/rules/architecture/boundaries.md +20 -20
- package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +31 -30
- package/presets/claude/ios-swift/rules/architecture/module-public-api.md +11 -11
- package/presets/claude/ios-swift/rules/architecture/reference-features.md +25 -22
- package/presets/claude/ios-swift/rules/stack/README.md +1 -1
- package/presets/claude/ios-swift/rules/stack/ios-app-core.md +10 -10
- package/presets/claude/ios-swift/rules/stack/swift-conventions.md +17 -17
- package/presets/claude/ios-swift/rules/testing/README.md +1 -1
- package/presets/claude/ios-swift/rules/testing/ui.md +27 -27
- package/presets/claude/ios-swift/rules/testing/unit.md +25 -25
- package/presets/claude/ios-swift/rules/tooling-and-review/README.md +5 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-intake.md +2 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +51 -21
- package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +25 -24
- package/presets/claude/ios-swift/rules/tooling-and-review/code-review.md +40 -39
- package/presets/claude/ios-swift/rules/tooling-and-review/design-guidance.md +54 -54
- package/presets/claude/ios-swift/rules/tooling-and-review/post-change-build.md +18 -18
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +12 -13
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +6 -7
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +0 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/security-ios.md +14 -14
- package/presets/claude/ios-swift/rules/tooling-and-review/technical-retro.md +4 -4
- package/presets/claude/ios-swift/rules/tooling-and-review/xcode-tooling.md +11 -11
- package/presets/claude/ios-swift/rules/ui-and-accessibility/README.md +1 -1
- package/presets/claude/ios-swift/rules/ui-and-accessibility/navigation.md +13 -13
- package/presets/claude/ios-swift/rules/ui-and-accessibility/swiftui.md +39 -39
- package/presets/claude/ios-swift/rules/ui-and-accessibility/viewmodels.md +24 -24
- package/presets/claude/ios-swift/skills/README.md +3 -3
- package/presets/claude/ios-swift/team/README.md +6 -2
- package/presets/claude/java/MCP.md +5 -5
- package/presets/claude/java/agents/README.md +2 -2
- package/presets/claude/java/agents/task-router.md +13 -13
- package/presets/claude/java/commands/README.md +8 -8
- package/presets/claude/java/commands/feature-continue.md +21 -21
- package/presets/claude/java/commands/feature-start.md +16 -16
- package/presets/claude/java/commands/task-continue.md +14 -14
- package/presets/claude/java/commands/task.md +32 -32
- package/presets/claude/java/commands/technical-retro.md +38 -38
- package/presets/claude/java/rules/architecture/boundaries.md +10 -10
- package/presets/claude/java/rules/stack/README.md +1 -1
- package/presets/claude/java/rules/stack/java-app-core.md +9 -9
- package/presets/claude/java/rules/tooling-and-review/README.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/agent-team-intake.md +2 -2
- package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
- package/presets/claude/java/rules/tooling-and-review/code-quality.md +21 -20
- package/presets/claude/java/rules/tooling-and-review/code-review.md +5 -4
- package/presets/claude/java/rules/tooling-and-review/design-guidance.md +55 -54
- package/presets/claude/java/rules/tooling-and-review/post-change-test.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/preset-layering.md +12 -13
- package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -2
- package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +6 -7
- package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +0 -1
- package/presets/claude/java/rules/tooling-and-review/technical-retro.md +3 -3
- package/presets/claude/java/team/README.md +1 -1
- package/presets/claude/mcp-ts/MCP.md +5 -5
- package/presets/claude/mcp-ts/agents/task-router.md +7 -7
- package/presets/claude/mcp-ts/commands/README.md +1 -1
- package/presets/claude/mcp-ts/commands/feature-continue.md +8 -8
- package/presets/claude/mcp-ts/commands/feature-start.md +17 -17
- package/presets/claude/mcp-ts/commands/task-continue.md +14 -14
- package/presets/claude/mcp-ts/commands/task.md +32 -32
- package/presets/claude/mcp-ts/commands/technical-retro.md +54 -54
- package/presets/claude/mcp-ts/rules/architecture/mcp-server-boundaries.md +2 -2
- package/presets/claude/mcp-ts/rules/stack/mcp-ts-app-core.md +9 -9
- package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-intake.md +3 -3
- package/presets/claude/mcp-ts/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
- package/presets/claude/mcp-ts/rules/tooling-and-review/code-quality.md +21 -20
- package/presets/claude/mcp-ts/rules/tooling-and-review/code-review.md +5 -4
- package/presets/claude/mcp-ts/rules/tooling-and-review/design-guidance.md +55 -54
- package/presets/claude/mcp-ts/rules/tooling-and-review/post-change-test.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +12 -13
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -2
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +6 -7
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-twin-sync.md +0 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/technical-retro.md +3 -3
- package/presets/claude/next/CLAUDE.md +17 -17
- package/presets/claude/next/MCP.md +8 -8
- package/presets/claude/next/README.md +16 -16
- package/presets/claude/next/agents/README.md +19 -19
- package/presets/claude/next/agents/feature-developer.md +1 -1
- package/presets/claude/next/agents/task-analyst.md +1 -1
- package/presets/claude/next/agents/task-router.md +16 -16
- package/presets/claude/next/commands/README.md +9 -9
- package/presets/claude/next/commands/feature-continue.md +21 -21
- package/presets/claude/next/commands/feature-start.md +16 -16
- package/presets/claude/next/commands/task-continue.md +14 -14
- package/presets/claude/next/commands/task.md +33 -33
- package/presets/claude/next/commands/technical-retro.md +38 -38
- package/presets/claude/next/rules/README.md +12 -12
- package/presets/claude/next/rules/api-and-data/README.md +6 -6
- package/presets/claude/next/rules/api-and-data/api-services.md +42 -42
- package/presets/claude/next/rules/api-and-data/http-client.md +22 -21
- package/presets/claude/next/rules/api-and-data/store-rtk.md +60 -60
- package/presets/claude/next/rules/architecture/README.md +8 -8
- package/presets/claude/next/rules/architecture/architecture-boundaries-ui.md +6 -6
- package/presets/claude/next/rules/architecture/architecture-boundaries.md +44 -44
- package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +39 -39
- package/presets/claude/next/rules/architecture/layer-barrel-exports.md +30 -29
- package/presets/claude/next/rules/architecture/public-imports.md +13 -13
- package/presets/claude/next/rules/architecture/reference-features.md +16 -16
- package/presets/claude/next/rules/stack/README.md +9 -9
- package/presets/claude/next/rules/stack/arrow-functions.md +7 -7
- package/presets/claude/next/rules/stack/navigation-router-ui.md +6 -6
- package/presets/claude/next/rules/stack/navigation-router.md +37 -37
- package/presets/claude/next/rules/stack/next-app-core.md +17 -17
- package/presets/claude/next/rules/stack/next-app-router.md +17 -17
- package/presets/claude/next/rules/stack/no-type-assertion.md +28 -28
- package/presets/claude/next/rules/stack/types-jsdoc.md +31 -20
- package/presets/claude/next/rules/testing/README.md +5 -5
- package/presets/claude/next/rules/testing/playwright-agents.md +1 -1
- package/presets/claude/next/rules/testing/tests-e2e-structure.md +48 -47
- package/presets/claude/next/rules/testing/tests-unit.md +50 -51
- package/presets/claude/next/rules/tooling-and-review/README.md +9 -9
- package/presets/claude/next/rules/tooling-and-review/agent-team-intake.md +2 -2
- package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
- package/presets/claude/next/rules/tooling-and-review/code-quality.md +25 -24
- package/presets/claude/next/rules/tooling-and-review/code-review-mr.md +4 -4
- package/presets/claude/next/rules/tooling-and-review/design-guidance.md +54 -54
- package/presets/claude/next/rules/tooling-and-review/package-manager.md +7 -7
- package/presets/claude/next/rules/tooling-and-review/post-change-lint.md +22 -22
- package/presets/claude/next/rules/tooling-and-review/preset-layering.md +12 -13
- package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -2
- package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +6 -7
- package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +0 -1
- package/presets/claude/next/rules/tooling-and-review/technical-retro.md +4 -4
- package/presets/claude/next/rules/ui-and-accessibility/README.md +7 -7
- package/presets/claude/next/rules/ui-and-accessibility/css-property-order.md +3 -3
- package/presets/claude/next/rules/ui-and-accessibility/no-props-spread.md +18 -18
- package/presets/claude/next/rules/ui-and-accessibility/react-a11y-coding.md +20 -20
- package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +63 -63
- package/presets/claude/next/skills/README.md +4 -4
- package/presets/claude/next/skills/feature-delivery/SKILL.md +1 -1
- package/presets/claude/next/team/README.md +2 -2
- package/presets/claude/nuxt/CLAUDE.md +19 -19
- package/presets/claude/nuxt/MCP.md +8 -8
- package/presets/claude/nuxt/README.md +18 -18
- package/presets/claude/nuxt/agents/README.md +38 -31
- package/presets/claude/nuxt/agents/feature-developer.md +1 -1
- package/presets/claude/nuxt/agents/task-analyst.md +1 -1
- package/presets/claude/nuxt/agents/task-router.md +22 -22
- package/presets/claude/nuxt/commands/README.md +48 -10
- package/presets/claude/nuxt/commands/feature-continue.md +9 -41
- package/presets/claude/nuxt/commands/feature-start.md +19 -16
- package/presets/claude/nuxt/commands/task-continue.md +14 -14
- package/presets/claude/nuxt/commands/task.md +33 -33
- package/presets/claude/nuxt/commands/technical-retro.md +61 -38
- package/presets/claude/nuxt/rules/README.md +5 -5
- package/presets/claude/nuxt/rules/api-and-data/README.md +6 -6
- package/presets/claude/nuxt/rules/api-and-data/api-services.md +44 -43
- package/presets/claude/nuxt/rules/api-and-data/store-pinia.md +27 -26
- package/presets/claude/nuxt/rules/architecture/README.md +8 -8
- package/presets/claude/nuxt/rules/architecture/architecture-boundaries-ui.md +8 -7
- package/presets/claude/nuxt/rules/architecture/architecture-boundaries.md +59 -58
- package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +45 -44
- package/presets/claude/nuxt/rules/architecture/layer-barrel-exports.md +32 -31
- package/presets/claude/nuxt/rules/architecture/public-imports.md +15 -14
- package/presets/claude/nuxt/rules/architecture/reference-features.md +18 -17
- package/presets/claude/nuxt/rules/stack/README.md +8 -8
- package/presets/claude/nuxt/rules/stack/navigation-router-ui.md +6 -6
- package/presets/claude/nuxt/rules/stack/navigation-router.md +37 -37
- package/presets/claude/nuxt/rules/stack/no-type-assertion.md +30 -29
- package/presets/claude/nuxt/rules/stack/nuxt-app-core.md +17 -16
- package/presets/claude/nuxt/rules/stack/types-jsdoc.md +23 -22
- package/presets/claude/nuxt/rules/testing/README.md +5 -5
- package/presets/claude/nuxt/rules/testing/tests-e2e-structure.md +45 -45
- package/presets/claude/nuxt/rules/testing/tests-unit.md +52 -52
- package/presets/claude/nuxt/rules/tooling-and-review/README.md +9 -9
- package/presets/claude/nuxt/rules/tooling-and-review/agent-team-intake.md +3 -2
- package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +5 -4
- package/presets/claude/nuxt/rules/tooling-and-review/anti-sycophancy-discipline.md +1 -0
- package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +26 -24
- package/presets/claude/nuxt/rules/tooling-and-review/code-review-mr.md +6 -5
- package/presets/claude/nuxt/rules/tooling-and-review/design-guidance.md +55 -54
- package/presets/claude/nuxt/rules/tooling-and-review/package-manager.md +9 -8
- package/presets/claude/nuxt/rules/tooling-and-review/post-change-lint.md +24 -23
- package/presets/claude/nuxt/rules/tooling-and-review/preset-layering.md +13 -13
- package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +2 -2
- package/presets/claude/nuxt/rules/tooling-and-review/preset-pr-checklist.md +7 -7
- package/presets/claude/nuxt/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/nuxt/rules/tooling-and-review/preset-twin-sync.md +1 -1
- package/presets/claude/nuxt/rules/tooling-and-review/technical-retro.md +5 -4
- package/presets/claude/nuxt/rules/ui-and-accessibility/README.md +7 -7
- package/presets/claude/nuxt/rules/ui-and-accessibility/vue-ui.md +7 -6
- package/presets/claude/nuxt/skills/README.md +4 -4
- package/presets/claude/nuxt/skills/feature-delivery/SKILL.md +1 -1
- package/presets/claude/nuxt/team/README.md +8 -4
- package/presets/claude/php-hexagonal/MCP.md +7 -7
- package/presets/claude/php-hexagonal/agents/README.md +3 -3
- package/presets/claude/php-hexagonal/agents/task-router.md +12 -12
- package/presets/claude/php-hexagonal/commands/README.md +9 -9
- package/presets/claude/php-hexagonal/commands/feature-continue.md +21 -21
- package/presets/claude/php-hexagonal/commands/feature-start.md +16 -16
- package/presets/claude/php-hexagonal/commands/task-continue.md +14 -14
- package/presets/claude/php-hexagonal/commands/task.md +32 -32
- package/presets/claude/php-hexagonal/commands/technical-retro.md +38 -38
- package/presets/claude/php-hexagonal/rules/architecture/boundaries.md +11 -10
- package/presets/claude/php-hexagonal/rules/stack/README.md +1 -1
- package/presets/claude/php-hexagonal/rules/stack/php-app-core.md +11 -10
- package/presets/claude/php-hexagonal/rules/tooling-and-review/README.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-intake.md +2 -2
- package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
- package/presets/claude/php-hexagonal/rules/tooling-and-review/code-quality.md +21 -21
- package/presets/claude/php-hexagonal/rules/tooling-and-review/code-review.md +4 -4
- package/presets/claude/php-hexagonal/rules/tooling-and-review/design-guidance.md +54 -54
- package/presets/claude/php-hexagonal/rules/tooling-and-review/post-change-test.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-layering.md +12 -13
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -2
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +6 -7
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-twin-sync.md +0 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/technical-retro.md +3 -3
- package/presets/claude/php-hexagonal/team/README.md +1 -1
- package/presets/claude/php-laravel/agents/README.md +3 -3
- package/presets/claude/php-laravel/agents/task-router.md +14 -14
- package/presets/claude/php-laravel/commands/README.md +9 -9
- package/presets/claude/php-laravel/commands/feature-continue.md +21 -21
- package/presets/claude/php-laravel/commands/feature-start.md +16 -16
- package/presets/claude/php-laravel/commands/task-continue.md +14 -14
- package/presets/claude/php-laravel/commands/task.md +32 -32
- package/presets/claude/php-laravel/commands/technical-retro.md +38 -38
- package/presets/claude/php-laravel/rules/api-and-data/events-listeners.md +1 -1
- package/presets/claude/php-laravel/rules/architecture/boundaries.md +11 -11
- package/presets/claude/php-laravel/rules/stack/laravel-app-core.md +8 -8
- package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-intake.md +3 -2
- package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +4 -4
- package/presets/claude/php-laravel/rules/tooling-and-review/code-quality.md +21 -20
- package/presets/claude/php-laravel/rules/tooling-and-review/code-review.md +4 -5
- package/presets/claude/php-laravel/rules/tooling-and-review/design-guidance.md +54 -54
- package/presets/claude/php-laravel/rules/tooling-and-review/post-change-test.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-layering.md +13 -13
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +2 -2
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +7 -7
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +4 -4
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-twin-sync.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/technical-retro.md +4 -3
- package/presets/claude/php-laravel/team/README.md +1 -1
- package/presets/claude/svelte/CLAUDE.md +17 -17
- package/presets/claude/svelte/MCP.md +8 -8
- package/presets/claude/svelte/README.md +1 -1
- package/presets/claude/svelte/agents/README.md +37 -30
- package/presets/claude/svelte/agents/feature-developer.md +1 -1
- package/presets/claude/svelte/agents/task-analyst.md +1 -1
- package/presets/claude/svelte/agents/task-router.md +19 -18
- package/presets/claude/svelte/commands/README.md +48 -10
- package/presets/claude/svelte/commands/feature-continue.md +9 -41
- package/presets/claude/svelte/commands/feature-start.md +19 -16
- package/presets/claude/svelte/commands/task-continue.md +14 -14
- package/presets/claude/svelte/commands/task.md +33 -33
- package/presets/claude/svelte/commands/technical-retro.md +61 -38
- package/presets/claude/svelte/rules/README.md +2 -2
- package/presets/claude/svelte/rules/api-and-data/README.md +6 -6
- package/presets/claude/svelte/rules/api-and-data/api-services.md +14 -14
- package/presets/claude/svelte/rules/api-and-data/store-svelte.md +26 -26
- package/presets/claude/svelte/rules/architecture/README.md +8 -8
- package/presets/claude/svelte/rules/architecture/architecture-boundaries-ui.md +7 -7
- package/presets/claude/svelte/rules/architecture/architecture-boundaries.md +19 -19
- package/presets/claude/svelte/rules/architecture/feature-delivery-workflow.md +26 -26
- package/presets/claude/svelte/rules/architecture/layer-barrel-exports.md +31 -31
- package/presets/claude/svelte/rules/architecture/public-imports.md +8 -8
- package/presets/claude/svelte/rules/architecture/reference-features.md +18 -18
- package/presets/claude/svelte/rules/stack/README.md +8 -8
- package/presets/claude/svelte/rules/stack/navigation-router-ui.md +1 -1
- package/presets/claude/svelte/rules/stack/navigation-router.md +6 -6
- package/presets/claude/svelte/rules/stack/no-type-assertion.md +29 -29
- package/presets/claude/svelte/rules/stack/svelte-app-core.md +16 -16
- package/presets/claude/svelte/rules/stack/types-jsdoc.md +22 -22
- package/presets/claude/svelte/rules/testing/README.md +5 -5
- package/presets/claude/svelte/rules/testing/tests-e2e-structure.md +45 -46
- package/presets/claude/svelte/rules/testing/tests-unit.md +17 -17
- package/presets/claude/svelte/rules/tooling-and-review/README.md +9 -9
- package/presets/claude/svelte/rules/tooling-and-review/agent-team-intake.md +2 -2
- package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +9 -9
- package/presets/claude/svelte/rules/tooling-and-review/code-quality.md +25 -24
- package/presets/claude/svelte/rules/tooling-and-review/code-review-mr.md +5 -5
- package/presets/claude/svelte/rules/tooling-and-review/design-guidance.md +54 -54
- package/presets/claude/svelte/rules/tooling-and-review/package-manager.md +8 -8
- package/presets/claude/svelte/rules/tooling-and-review/post-change-lint.md +23 -23
- package/presets/claude/svelte/rules/tooling-and-review/preset-layering.md +12 -13
- package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -2
- package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +6 -7
- package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +3 -4
- package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +0 -1
- package/presets/claude/svelte/rules/tooling-and-review/technical-retro.md +4 -4
- package/presets/claude/svelte/rules/ui-and-accessibility/README.md +7 -7
- package/presets/claude/svelte/rules/ui-and-accessibility/svelte-ui.md +6 -6
- package/presets/claude/svelte/skills/README.md +4 -4
- package/presets/claude/svelte/skills/feature-delivery/SKILL.md +1 -1
- package/presets/claude/svelte/team/README.md +8 -4
- package/presets/cursor/go/AGENTS.md +10 -10
- package/presets/cursor/go/MCP.md +7 -7
- package/presets/cursor/go/README.md +4 -4
- package/presets/cursor/go/agents/README.md +3 -3
- package/presets/cursor/go/agents/task-router.md +13 -13
- package/presets/cursor/go/commands/README.md +23 -23
- package/presets/cursor/go/commands/feature-continue.md +8 -8
- package/presets/cursor/go/commands/feature-start.md +17 -17
- package/presets/cursor/go/commands/task-continue.md +14 -14
- package/presets/cursor/go/commands/task.md +32 -32
- package/presets/cursor/go/commands/technical-retro.md +49 -49
- package/presets/cursor/go/rules/README.md +3 -3
- package/presets/cursor/go/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/go/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/go/rules/architecture-boundaries.mdc +10 -10
- package/presets/cursor/go/rules/code-quality-and-refactoring.mdc +21 -20
- package/presets/cursor/go/rules/code-review-mr.mdc +4 -4
- package/presets/cursor/go/rules/design-guidance.mdc +54 -54
- package/presets/cursor/go/rules/go-app-core.mdc +11 -11
- package/presets/cursor/go/rules/post-change-test.mdc +1 -1
- package/presets/cursor/go/rules/preset-layering.mdc +12 -13
- package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/go/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/go/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/go/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/go/rules/technical-retro.mdc +3 -3
- package/presets/cursor/go/team/README.md +1 -1
- package/presets/cursor/ios-swift/AGENTS.md +20 -20
- package/presets/cursor/ios-swift/MCP.md +8 -8
- package/presets/cursor/ios-swift/README.md +9 -9
- package/presets/cursor/ios-swift/agents/README.md +7 -7
- package/presets/cursor/ios-swift/agents/feature-developer.md +1 -1
- package/presets/cursor/ios-swift/agents/task-analyst.md +1 -1
- package/presets/cursor/ios-swift/agents/task-router.md +16 -16
- package/presets/cursor/ios-swift/commands/README.md +23 -23
- package/presets/cursor/ios-swift/commands/feature-continue.md +8 -8
- package/presets/cursor/ios-swift/commands/feature-start.md +17 -17
- package/presets/cursor/ios-swift/commands/task-continue.md +14 -14
- package/presets/cursor/ios-swift/commands/task.md +33 -33
- package/presets/cursor/ios-swift/commands/technical-retro.md +50 -50
- package/presets/cursor/ios-swift/rules/README.md +23 -23
- package/presets/cursor/ios-swift/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +2 -2
- package/presets/cursor/ios-swift/rules/architecture-boundaries.mdc +20 -20
- package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +25 -24
- package/presets/cursor/ios-swift/rules/code-review-mr.mdc +40 -40
- package/presets/cursor/ios-swift/rules/design-guidance.mdc +54 -54
- package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +30 -30
- package/presets/cursor/ios-swift/rules/ios-app-core.mdc +10 -10
- package/presets/cursor/ios-swift/rules/module-public-api.mdc +11 -11
- package/presets/cursor/ios-swift/rules/navigation-coordinators.mdc +13 -13
- package/presets/cursor/ios-swift/rules/networking-services.mdc +31 -31
- package/presets/cursor/ios-swift/rules/persistence-data.mdc +13 -13
- package/presets/cursor/ios-swift/rules/post-change-build.mdc +18 -18
- package/presets/cursor/ios-swift/rules/preset-layering.mdc +12 -13
- package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/ios-swift/rules/reference-features.mdc +22 -22
- package/presets/cursor/ios-swift/rules/security-ios.mdc +14 -14
- package/presets/cursor/ios-swift/rules/state-and-viewmodels.mdc +24 -24
- package/presets/cursor/ios-swift/rules/swift-conventions.mdc +17 -17
- package/presets/cursor/ios-swift/rules/swiftui-ui.mdc +39 -39
- package/presets/cursor/ios-swift/rules/technical-retro.mdc +4 -4
- package/presets/cursor/ios-swift/rules/tests-ui.mdc +27 -26
- package/presets/cursor/ios-swift/rules/tests-unit.mdc +25 -25
- package/presets/cursor/ios-swift/rules/xcode-tooling.mdc +11 -11
- package/presets/cursor/ios-swift/skills/README.md +3 -3
- package/presets/cursor/ios-swift/team/README.md +1 -1
- package/presets/cursor/java/AGENTS.md +10 -10
- package/presets/cursor/java/MCP.md +6 -6
- package/presets/cursor/java/agents/README.md +3 -3
- package/presets/cursor/java/agents/task-router.md +13 -13
- package/presets/cursor/java/commands/README.md +23 -23
- package/presets/cursor/java/commands/feature-continue.md +8 -8
- package/presets/cursor/java/commands/feature-start.md +17 -17
- package/presets/cursor/java/commands/task-continue.md +14 -14
- package/presets/cursor/java/commands/task.md +32 -32
- package/presets/cursor/java/commands/technical-retro.md +49 -49
- package/presets/cursor/java/rules/README.md +2 -2
- package/presets/cursor/java/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/java/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/java/rules/architecture-boundaries.mdc +10 -10
- package/presets/cursor/java/rules/code-quality-and-refactoring.mdc +21 -20
- package/presets/cursor/java/rules/code-review-mr.mdc +4 -4
- package/presets/cursor/java/rules/design-guidance.mdc +54 -54
- package/presets/cursor/java/rules/java-app-core.mdc +9 -9
- package/presets/cursor/java/rules/post-change-test.mdc +1 -1
- package/presets/cursor/java/rules/preset-layering.mdc +12 -13
- package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/java/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/java/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/java/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/java/rules/technical-retro.mdc +3 -3
- package/presets/cursor/java/team/README.md +1 -1
- package/presets/cursor/mcp-ts/AGENTS.md +6 -6
- package/presets/cursor/mcp-ts/MCP.md +5 -5
- package/presets/cursor/mcp-ts/agents/task-router.md +7 -7
- package/presets/cursor/mcp-ts/commands/README.md +1 -1
- package/presets/cursor/mcp-ts/commands/feature-continue.md +8 -8
- package/presets/cursor/mcp-ts/commands/feature-start.md +17 -17
- package/presets/cursor/mcp-ts/commands/task-continue.md +14 -14
- package/presets/cursor/mcp-ts/commands/task.md +32 -32
- package/presets/cursor/mcp-ts/commands/technical-retro.md +50 -50
- package/presets/cursor/mcp-ts/rules/README.md +1 -1
- package/presets/cursor/mcp-ts/rules/agent-team-intake.mdc +3 -3
- package/presets/cursor/mcp-ts/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/mcp-ts/rules/code-quality-and-refactoring.mdc +21 -20
- package/presets/cursor/mcp-ts/rules/code-review-mr.mdc +5 -4
- package/presets/cursor/mcp-ts/rules/design-guidance.mdc +55 -54
- package/presets/cursor/mcp-ts/rules/mcp-server-boundaries.mdc +2 -2
- package/presets/cursor/mcp-ts/rules/mcp-ts-app-core.mdc +9 -9
- package/presets/cursor/mcp-ts/rules/post-change-test.mdc +1 -1
- package/presets/cursor/mcp-ts/rules/preset-layering.mdc +12 -13
- package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/mcp-ts/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/mcp-ts/rules/technical-retro.mdc +3 -3
- package/presets/cursor/next/AGENTS.md +15 -15
- package/presets/cursor/next/MCP.md +9 -9
- package/presets/cursor/next/README.md +9 -9
- package/presets/cursor/next/agents/README.md +22 -22
- package/presets/cursor/next/agents/feature-developer.md +1 -1
- package/presets/cursor/next/agents/task-analyst.md +1 -1
- package/presets/cursor/next/agents/task-router.md +16 -16
- package/presets/cursor/next/commands/README.md +22 -22
- package/presets/cursor/next/commands/feature-continue.md +8 -8
- package/presets/cursor/next/commands/feature-start.md +17 -17
- package/presets/cursor/next/commands/task-continue.md +14 -14
- package/presets/cursor/next/commands/task.md +33 -33
- package/presets/cursor/next/commands/technical-retro.md +49 -49
- package/presets/cursor/next/rules/README.md +52 -52
- package/presets/cursor/next/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/next/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/next/rules/api-services.mdc +43 -43
- package/presets/cursor/next/rules/architecture-boundaries-ui.mdc +7 -7
- package/presets/cursor/next/rules/architecture-boundaries.mdc +45 -45
- package/presets/cursor/next/rules/arrow-functions.mdc +8 -8
- package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +25 -24
- package/presets/cursor/next/rules/code-review-mr.mdc +5 -5
- package/presets/cursor/next/rules/css-property-order-stylelint.mdc +4 -4
- package/presets/cursor/next/rules/design-guidance.mdc +54 -54
- package/presets/cursor/next/rules/feature-delivery-workflow.mdc +43 -43
- package/presets/cursor/next/rules/http-client.mdc +23 -22
- package/presets/cursor/next/rules/layer-barrel-exports.mdc +31 -30
- package/presets/cursor/next/rules/navigation-router-stack.mdc +37 -37
- package/presets/cursor/next/rules/navigation-router-ui.mdc +7 -7
- package/presets/cursor/next/rules/next-app-core.mdc +16 -16
- package/presets/cursor/next/rules/next-app-router.mdc +17 -17
- package/presets/cursor/next/rules/no-props-spread.mdc +20 -20
- package/presets/cursor/next/rules/no-type-assertion-as-import-export.mdc +29 -29
- package/presets/cursor/next/rules/package-manager.mdc +8 -8
- package/presets/cursor/next/rules/post-change-lint.mdc +22 -22
- package/presets/cursor/next/rules/preset-layering.mdc +12 -13
- package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/next/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/next/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/next/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/next/rules/public-imports.mdc +14 -14
- package/presets/cursor/next/rules/react-a11y-coding.mdc +21 -21
- package/presets/cursor/next/rules/react-ui.mdc +66 -66
- package/presets/cursor/next/rules/reference-features.mdc +17 -17
- package/presets/cursor/next/rules/store-rtk.mdc +60 -60
- package/presets/cursor/next/rules/technical-retro.mdc +4 -4
- package/presets/cursor/next/rules/tests-e2e-structure.mdc +46 -46
- package/presets/cursor/next/rules/tests-unit.mdc +51 -52
- package/presets/cursor/next/rules/types-jsdoc.mdc +29 -22
- package/presets/cursor/next/skills/feature-delivery/SKILL.md +1 -1
- package/presets/cursor/next/team/README.md +2 -2
- package/presets/cursor/nuxt/AGENTS.md +15 -15
- package/presets/cursor/nuxt/MCP.md +9 -9
- package/presets/cursor/nuxt/README.md +10 -10
- package/presets/cursor/nuxt/agents/README.md +30 -30
- package/presets/cursor/nuxt/agents/feature-developer.md +1 -1
- package/presets/cursor/nuxt/agents/task-analyst.md +1 -1
- package/presets/cursor/nuxt/agents/task-router.md +16 -16
- package/presets/cursor/nuxt/commands/README.md +24 -24
- package/presets/cursor/nuxt/commands/feature-continue.md +8 -8
- package/presets/cursor/nuxt/commands/feature-start.md +17 -17
- package/presets/cursor/nuxt/commands/task-continue.md +14 -14
- package/presets/cursor/nuxt/commands/task.md +33 -33
- package/presets/cursor/nuxt/commands/technical-retro.md +50 -50
- package/presets/cursor/nuxt/rules/README.md +53 -53
- package/presets/cursor/nuxt/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/nuxt/rules/api-services.mdc +43 -43
- package/presets/cursor/nuxt/rules/architecture-boundaries-ui.mdc +7 -7
- package/presets/cursor/nuxt/rules/architecture-boundaries.mdc +58 -58
- package/presets/cursor/nuxt/rules/code-quality-and-refactoring.mdc +25 -24
- package/presets/cursor/nuxt/rules/code-review-mr.mdc +5 -5
- package/presets/cursor/nuxt/rules/design-guidance.mdc +54 -54
- package/presets/cursor/nuxt/rules/feature-delivery-workflow.mdc +44 -44
- package/presets/cursor/nuxt/rules/layer-barrel-exports.mdc +31 -31
- package/presets/cursor/nuxt/rules/navigation-router-stack.mdc +38 -38
- package/presets/cursor/nuxt/rules/navigation-router-ui.mdc +7 -7
- package/presets/cursor/nuxt/rules/no-type-assertion-as-import-export.mdc +29 -29
- package/presets/cursor/nuxt/rules/nuxt-app-core.mdc +16 -16
- package/presets/cursor/nuxt/rules/package-manager.mdc +8 -8
- package/presets/cursor/nuxt/rules/post-change-lint.mdc +23 -23
- package/presets/cursor/nuxt/rules/preset-layering.mdc +12 -13
- package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/nuxt/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/nuxt/rules/public-imports.mdc +14 -14
- package/presets/cursor/nuxt/rules/reference-features.mdc +17 -17
- package/presets/cursor/nuxt/rules/store-pinia.mdc +26 -26
- package/presets/cursor/nuxt/rules/technical-retro.mdc +4 -4
- package/presets/cursor/nuxt/rules/tests-e2e-structure.mdc +45 -46
- package/presets/cursor/nuxt/rules/tests-unit.mdc +51 -52
- package/presets/cursor/nuxt/rules/types-jsdoc.mdc +22 -22
- package/presets/cursor/nuxt/rules/vue-ui.mdc +6 -6
- package/presets/cursor/nuxt/skills/feature-delivery/SKILL.md +1 -1
- package/presets/cursor/nuxt/team/README.md +2 -2
- package/presets/cursor/php-hexagonal/AGENTS.md +11 -11
- package/presets/cursor/php-hexagonal/MCP.md +7 -7
- package/presets/cursor/php-hexagonal/agents/README.md +4 -4
- package/presets/cursor/php-hexagonal/agents/task-router.md +12 -12
- package/presets/cursor/php-hexagonal/commands/README.md +25 -25
- package/presets/cursor/php-hexagonal/commands/feature-continue.md +8 -8
- package/presets/cursor/php-hexagonal/commands/feature-start.md +17 -17
- package/presets/cursor/php-hexagonal/commands/task-continue.md +14 -14
- package/presets/cursor/php-hexagonal/commands/task.md +32 -32
- package/presets/cursor/php-hexagonal/commands/technical-retro.md +49 -49
- package/presets/cursor/php-hexagonal/rules/README.md +2 -2
- package/presets/cursor/php-hexagonal/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/php-hexagonal/rules/architecture-boundaries.mdc +10 -10
- package/presets/cursor/php-hexagonal/rules/code-quality-and-refactoring.mdc +20 -20
- package/presets/cursor/php-hexagonal/rules/code-review-mr.mdc +4 -4
- package/presets/cursor/php-hexagonal/rules/design-guidance.mdc +54 -54
- package/presets/cursor/php-hexagonal/rules/php-app-core.mdc +10 -10
- package/presets/cursor/php-hexagonal/rules/post-change-test.mdc +1 -1
- package/presets/cursor/php-hexagonal/rules/preset-layering.mdc +12 -13
- package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/php-hexagonal/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/php-hexagonal/rules/technical-retro.mdc +3 -3
- package/presets/cursor/php-hexagonal/team/README.md +1 -1
- package/presets/cursor/php-laravel/AGENTS.md +10 -10
- package/presets/cursor/php-laravel/agents/README.md +4 -4
- package/presets/cursor/php-laravel/agents/task-router.md +14 -14
- package/presets/cursor/php-laravel/commands/README.md +25 -25
- package/presets/cursor/php-laravel/commands/feature-continue.md +8 -8
- package/presets/cursor/php-laravel/commands/feature-start.md +17 -17
- package/presets/cursor/php-laravel/commands/task-continue.md +14 -14
- package/presets/cursor/php-laravel/commands/task.md +32 -32
- package/presets/cursor/php-laravel/commands/technical-retro.md +50 -50
- package/presets/cursor/php-laravel/rules/README.md +2 -2
- package/presets/cursor/php-laravel/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/php-laravel/rules/architecture-boundaries.mdc +11 -11
- package/presets/cursor/php-laravel/rules/code-quality-and-refactoring.mdc +20 -20
- package/presets/cursor/php-laravel/rules/code-review-mr.mdc +4 -5
- package/presets/cursor/php-laravel/rules/design-guidance.mdc +54 -54
- package/presets/cursor/php-laravel/rules/events-listeners.mdc +1 -1
- package/presets/cursor/php-laravel/rules/laravel-app-core.mdc +8 -8
- package/presets/cursor/php-laravel/rules/post-change-test.mdc +1 -1
- package/presets/cursor/php-laravel/rules/preset-layering.mdc +12 -13
- package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/php-laravel/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/php-laravel/rules/technical-retro.mdc +3 -3
- package/presets/cursor/php-laravel/team/README.md +1 -1
- package/presets/cursor/svelte/AGENTS.md +15 -15
- package/presets/cursor/svelte/MCP.md +9 -9
- package/presets/cursor/svelte/README.md +9 -9
- package/presets/cursor/svelte/agents/README.md +29 -29
- package/presets/cursor/svelte/agents/feature-developer.md +1 -1
- package/presets/cursor/svelte/agents/task-analyst.md +1 -1
- package/presets/cursor/svelte/agents/task-router.md +16 -16
- package/presets/cursor/svelte/commands/README.md +24 -24
- package/presets/cursor/svelte/commands/feature-continue.md +8 -8
- package/presets/cursor/svelte/commands/feature-start.md +17 -17
- package/presets/cursor/svelte/commands/task-continue.md +14 -14
- package/presets/cursor/svelte/commands/task.md +33 -33
- package/presets/cursor/svelte/commands/technical-retro.md +50 -50
- package/presets/cursor/svelte/rules/README.md +34 -34
- package/presets/cursor/svelte/rules/agent-team-intake.mdc +2 -2
- package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +4 -4
- package/presets/cursor/svelte/rules/api-services.mdc +14 -14
- package/presets/cursor/svelte/rules/architecture-boundaries-ui.mdc +7 -7
- package/presets/cursor/svelte/rules/architecture-boundaries.mdc +19 -19
- package/presets/cursor/svelte/rules/code-quality-and-refactoring.mdc +25 -24
- package/presets/cursor/svelte/rules/code-review-mr.mdc +5 -5
- package/presets/cursor/svelte/rules/design-guidance.mdc +54 -54
- package/presets/cursor/svelte/rules/feature-delivery-workflow.mdc +26 -26
- package/presets/cursor/svelte/rules/layer-barrel-exports.mdc +31 -31
- package/presets/cursor/svelte/rules/navigation-router-stack.mdc +6 -6
- package/presets/cursor/svelte/rules/navigation-router-ui.mdc +1 -1
- package/presets/cursor/svelte/rules/no-type-assertion-as-import-export.mdc +29 -29
- package/presets/cursor/svelte/rules/package-manager.mdc +8 -8
- package/presets/cursor/svelte/rules/post-change-lint.mdc +23 -23
- package/presets/cursor/svelte/rules/preset-layering.mdc +12 -13
- package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +1 -2
- package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +6 -7
- package/presets/cursor/svelte/rules/preset-token-budget.mdc +3 -4
- package/presets/cursor/svelte/rules/preset-twin-sync.mdc +0 -1
- package/presets/cursor/svelte/rules/public-imports.mdc +8 -8
- package/presets/cursor/svelte/rules/reference-features.mdc +17 -17
- package/presets/cursor/svelte/rules/store-svelte.mdc +26 -26
- package/presets/cursor/svelte/rules/svelte-app-core.mdc +16 -16
- package/presets/cursor/svelte/rules/svelte-ui.mdc +6 -6
- package/presets/cursor/svelte/rules/technical-retro.mdc +4 -4
- package/presets/cursor/svelte/rules/tests-e2e-structure.mdc +45 -46
- package/presets/cursor/svelte/rules/tests-unit.mdc +17 -17
- package/presets/cursor/svelte/rules/types-jsdoc.mdc +22 -22
- package/presets/cursor/svelte/skills/feature-delivery/SKILL.md +1 -1
- package/presets/cursor/svelte/team/README.md +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: SPM /
|
|
2
|
+
description: SPM / modules — public API, access control, ban deep-import of internals
|
|
3
3
|
globs:
|
|
4
4
|
- "**/Package.swift"
|
|
5
5
|
- "**/*Public*.swift"
|
|
@@ -9,18 +9,18 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
# Module public API (SPM)
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Frame
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
- Deep-import
|
|
14
|
+
- Module consumers import **only public/open** API; `internal`/`fileprivate` — for implementation.
|
|
15
|
+
- Deep-import of another module’s internal files — reason to promote the symbol to public API or refactor boundaries.
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Rules
|
|
18
18
|
|
|
19
|
-
-
|
|
20
|
-
- Barrel
|
|
21
|
-
-
|
|
22
|
-
-
|
|
19
|
+
- New public type/function — explicit `public` + documentation/usage example when needed.
|
|
20
|
+
- Barrel style: one entry module / umbrella when that is how the repo is set up.
|
|
21
|
+
- Do not export network DTOs from Presentation-facing modules.
|
|
22
|
+
- Breaking API versioning — intentional (package SemVer / release notes).
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## Agent requirement
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Before marking a type `public` — check whether it is needed externally. Follow neighboring modules’ access control.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: NavigationStack,
|
|
2
|
+
description: NavigationStack, coordinators, deep links — Presentation boundaries
|
|
3
3
|
globs:
|
|
4
4
|
- "**/Presentation/**/*Navigator*.swift"
|
|
5
5
|
- "**/Presentation/**/*Coordinator*.swift"
|
|
@@ -9,21 +9,21 @@ globs:
|
|
|
9
9
|
alwaysApply: false
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
#
|
|
12
|
+
# Navigation (iOS)
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Frame
|
|
15
15
|
|
|
16
|
-
- **SwiftUI-first:** `NavigationStack` / `navigationDestination` / sheet / fullScreenCover —
|
|
17
|
-
- UIKit / coordinator —
|
|
18
|
-
-
|
|
16
|
+
- **SwiftUI-first:** `NavigationStack` / `navigationDestination` / sheet / fullScreenCover — as in the repo.
|
|
17
|
+
- UIKit / coordinator — only if already adopted in the module; do not mix two styles in one Feature without reason.
|
|
18
|
+
- Routes and deep links — **Presentation** (or App shell); Domain does not know about `NavigationPath`.
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Rules
|
|
21
21
|
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
- Deep link → route mapping
|
|
25
|
-
-
|
|
22
|
+
- One Feature — one explicit navigation entry (root view / coordinator); do not scatter `NavigationLink` through Data.
|
|
23
|
+
- Screen parameters — typed (route enum / struct), not “magic” strings without a registry.
|
|
24
|
+
- Deep link → route mapping is centralized (App or Navigation hub); ViewModel does not parse URLs directly.
|
|
25
|
+
- Modals: presentation-state owner — parent VM/coordinator, not a global singleton without need.
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## Agent requirement
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
Copy the pattern of the nearest Feature from `reference-features.mdc`. Do not drag networking into the navigation layer.
|
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Networking layer, API clients, and mapper conventions
|
|
3
3
|
globs: "**/{Data,Network,Networking}/**/*.swift"
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# Role of the Data / Network layer
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
- HTTP
|
|
9
|
+
- Encapsulate:
|
|
10
|
+
- HTTP requests (`URLSession` or the project client),
|
|
11
11
|
- URL, headers, status codes,
|
|
12
|
-
- Codable
|
|
13
|
-
-
|
|
14
|
-
-
|
|
12
|
+
- Codable DTOs (transport).
|
|
13
|
+
- Local storage / Keychain — **`persistence-data.mdc`**; do not mix with the HTTP client without a repository facade.
|
|
14
|
+
- Externally (Domain, ViewModel via repository) expose **domain types**, not DTOs.
|
|
15
15
|
|
|
16
|
-
#
|
|
16
|
+
# Module structure
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- `*APIClient.swift` / `*Service.swift` —
|
|
21
|
-
- `*DTO.swift` —
|
|
18
|
+
- Per domain area — a folder under `Features/<Feature>/Data/` or `Core/Network/<Service>/`.
|
|
19
|
+
- Inside:
|
|
20
|
+
- `*APIClient.swift` / `*Service.swift` — endpoint calls;
|
|
21
|
+
- `*DTO.swift` — transport models (`Codable`);
|
|
22
22
|
- `*Mapper.swift` — DTO ↔ domain;
|
|
23
|
-
- `*RepositoryImpl.swift` —
|
|
24
|
-
- Public surface —
|
|
23
|
+
- `*RepositoryImpl.swift` — implementation of a Domain protocol.
|
|
24
|
+
- Public surface — repository protocols in Domain; Data types are not exported to Views.
|
|
25
25
|
|
|
26
|
-
#
|
|
26
|
+
# DTOs, mappers, and types
|
|
27
27
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
28
|
+
- DTOs **exactly** mirror the backend contract (`CodingKeys` when names diverge).
|
|
29
|
+
- Domain entities — in Domain; mappers — **pure functions** with no side effects.
|
|
30
|
+
- Perform computations in the mapper (flags, formatting, aggregates) so the ViewModel receives a ready model.
|
|
31
|
+
- Handle optionals and missing fields explicitly; do not push a raw optional cascade into the UI.
|
|
32
32
|
|
|
33
|
-
# Async, errors
|
|
33
|
+
# Async, errors, and retries
|
|
34
34
|
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
- Retry, auth refresh, logging —
|
|
35
|
+
- Network methods — `async throws` with **typed errors** (`NetworkError`, `APIError`) per repo convention.
|
|
36
|
+
- Do not swallow errors; rethrow or map to domain errors for the ViewModel.
|
|
37
|
+
- Retry, auth refresh, logging — centralized (interceptor, middleware, `URLProtocol`), not in every method.
|
|
38
38
|
|
|
39
|
-
# Codable
|
|
39
|
+
# Codable and versioning
|
|
40
40
|
|
|
41
|
-
-
|
|
42
|
-
- `@MainActor`
|
|
41
|
+
- Avoid `[String: Any]`; for polymorphism — enum + associated values or explicit DTOs.
|
|
42
|
+
- Do not put `@MainActor` on Data types without need.
|
|
43
43
|
|
|
44
|
-
#
|
|
44
|
+
# Agent requirement
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
- ViewModel
|
|
46
|
+
When adding/changing an API:
|
|
47
|
+
- Follow existing clients and mappers as the reference.
|
|
48
|
+
- Add/update mapper tests for non-trivial transforms.
|
|
49
|
+
- ViewModel and View must not import DTO files.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Persistence — SwiftData / Core Data /
|
|
2
|
+
description: Persistence — SwiftData / Core Data / files / Keychain (not HTTP)
|
|
3
3
|
globs:
|
|
4
4
|
- "**/Persistence/**/*.swift"
|
|
5
5
|
- "**/Keychain/**/*.swift"
|
|
@@ -11,21 +11,21 @@ alwaysApply: false
|
|
|
11
11
|
|
|
12
12
|
# Persistence (Data)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Separate from HTTP (`networking-services.mdc`): local storage and secrets on disk/Keychain live here.
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Frame
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
- Public API —
|
|
20
|
-
- **Keychain** —
|
|
18
|
+
- Stack choice (**SwiftData / Core Data / UserDefaults / files**) — **as in the repo**; do not introduce a second persistence stack without a task.
|
|
19
|
+
- Public API — protocols in Domain (`…Repository` / `…Store`); implementations in Data.
|
|
20
|
+
- **Keychain** — credentials/tokens only; do not put PII in UserDefaults “for convenience”.
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## Rules
|
|
23
23
|
|
|
24
|
-
- DTO/Entity
|
|
25
|
-
-
|
|
26
|
-
- `@MainActor`
|
|
27
|
-
-
|
|
24
|
+
- Persistence DTO/Entity ≠ network DTO; mapping is explicit.
|
|
25
|
+
- Schema migrations — follow the repo’s process; do not break silently.
|
|
26
|
+
- `@MainActor` on a store — only if UI-facing; heavy I/O — off-main + hop back.
|
|
27
|
+
- Errors — typed; do not swallow `try?` on critical persist.
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## Agent requirement
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
Do not mix URLSession and persistence in one type without a repository facade. Tests — in-memory / fake store.
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Build and lint after Swift/iOS code changes. Use after editing iOS/Swift sources, Xcode targets, or Package.swift.
|
|
3
3
|
alwaysApply: false
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Build and lint after changes
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## When to apply
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
After changes to Swift sources / Xcode project files / `Package.swift` that affect compilation or style.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Exceptions: docs-only, README, `.cursor/rules/**` without app-code edits.
|
|
13
13
|
|
|
14
|
-
**Pipeline:**
|
|
14
|
+
**Pipeline:** if the next step is a separate verifier/CI agent, touched targets are enough; in single-agent mode — a full reasonable run as in the repo.
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## How to determine commands
|
|
17
17
|
|
|
18
|
-
1.
|
|
19
|
-
2. Lint — `SwiftLint` / `.swiftlint.yml
|
|
20
|
-
3. Format — `SwiftFormat` /
|
|
21
|
-
4.
|
|
18
|
+
1. Schemes / targets — from `.xcodeproj` / `.xcworkspace` / `Package.swift` (as in CI or neighboring scripts).
|
|
19
|
+
2. Lint — `SwiftLint` / `.swiftlint.yml` when present.
|
|
20
|
+
3. Format — `SwiftFormat` / config when adopted in the repo.
|
|
21
|
+
4. Tests — XCTest or Swift Testing — only if the task touches them.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Do not invent a foreign toolchain: copy flags/`xcodebuild` from Makefile, scripts, CI.
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## Algorithm
|
|
26
26
|
|
|
27
|
-
1.
|
|
28
|
-
2.
|
|
29
|
-
3.
|
|
30
|
-
4.
|
|
27
|
+
1. Finish edits.
|
|
28
|
+
2. Build **touched** targets (`xcodebuild` / `swift build` — as in the repo).
|
|
29
|
+
3. Run lint/format when configs exist; fix errors in task files.
|
|
30
|
+
4. Repeat until a clean build or report a blocker to the user.
|
|
31
31
|
|
|
32
|
-
**Errors** —
|
|
32
|
+
**Errors** — must fix; warnings in task files — drive to zero when possible.
|
|
@@ -9,29 +9,28 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-layering.md -->
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
# Preset layering
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
Rules for **preset authors** (`packages/ai-rules/presets/**`). Not always-on in consumer apps.
|
|
16
15
|
|
|
17
|
-
##
|
|
16
|
+
## Layers
|
|
18
17
|
|
|
19
|
-
|
|
|
20
|
-
|
|
21
|
-
| **Core** | `presets/_shared/core/**` | Stack-agnostic prose + checklists;
|
|
22
|
-
| **Stack** | `presets/{cursor\|claude}/<stack>/` | Domain/tooling, always-on trio
|
|
18
|
+
| Layer | Where | What to put |
|
|
19
|
+
|-------|-------|-------------|
|
|
20
|
+
| **Core** | `presets/_shared/core/**` | Stack-agnostic prose + checklists; no frontmatter; no paths `app/**`, `Features/**`, Playwright, xcodebuild |
|
|
21
|
+
| **Stack** | `presets/{cursor\|claude}/<stack>/` | Domain/tooling, stack always-on trio, stack examples in **Stack notes** |
|
|
23
22
|
| **Platform** | Cursor `.mdc` / Claude `.md` | Frontmatter (`alwaysApply`/`globs` vs `paths:`), platform-only (`BUGBOT.md`, `CLAUDE.md`) |
|
|
24
23
|
|
|
25
|
-
##
|
|
24
|
+
## Where to put a new rule
|
|
26
25
|
|
|
27
|
-
1.
|
|
28
|
-
2.
|
|
29
|
-
3.
|
|
26
|
+
1. Shared principles for all stacks → **core** + adapters with `<!-- shared-core: … -->`.
|
|
27
|
+
2. Only one of the installable stacks (`next` / `nuxt` / `svelte` / `ios-swift` / `go` / `java` / `mcp-ts` / `php-hexagonal` / `php-laravel`) → **stack-specific** (not in `_shared`).
|
|
28
|
+
3. Only Cursor or only Claude packaging → platform artifact / frontmatter; do not duplicate semantics.
|
|
30
29
|
|
|
31
30
|
## SoT
|
|
32
31
|
|
|
33
32
|
- Packages path — SoT; root `.cursor/` — dogfood sync.
|
|
34
33
|
- Per stack: **Cursor** `presets/cursor/<stack>/` → Claude twin same PR.
|
|
35
|
-
- `_shared`
|
|
34
|
+
- `_shared` is **not** a `--preset` and is not copied by CLI `init`.
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
See also: `preset-twin-sync`, `preset-token-budget`, `preset-pr-checklist`, `preset-no-cross-stack-leakage`.
|
|
@@ -9,10 +9,9 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-no-cross-stack-leakage.md -->
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
# Preset no cross-stack leakage
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
Ban leakage of stack-specific names, paths, and handoff stems across presets.
|
|
16
15
|
|
|
17
16
|
## Principles
|
|
18
17
|
|
|
@@ -9,19 +9,18 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-pr-checklist.md -->
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
# Preset PR checklist
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
Checklist for PRs that touch `packages/ai-rules/presets/**` (and dogfood `.cursor/` sync).
|
|
16
15
|
|
|
17
16
|
## Before merge
|
|
18
17
|
|
|
19
|
-
- [ ] **SoT:**
|
|
20
|
-
- [ ] **Core:**
|
|
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 —
|
|
22
|
-
- [ ] **Mapping:** `claude/<stack>/rules/README.md` mapping table
|
|
18
|
+
- [ ] **SoT:** edits in `packages/…` (not only root `.cursor/`)
|
|
19
|
+
- [ ] **Core:** if `_shared/core/**` changed — all `<!-- shared-core: … -->` consumers updated (or documented intentional fork)
|
|
20
|
+
- [ ] **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 — see `preset-twin-sync`)
|
|
21
|
+
- [ ] **Mapping:** `claude/<stack>/rules/README.md` mapping table is current
|
|
23
22
|
- [ ] **Token budget:** alwaysApply / session-start ≤ 3; meta rules not always-on
|
|
24
|
-
- [ ] **Leakage:**
|
|
23
|
+
- [ ] **Leakage:** no foreign stack agent stems / handoff strings (`preset-no-cross-stack-leakage`)
|
|
25
24
|
- [ ] **Twin depth:** domain ≥15 lines; thin aliases documented
|
|
26
25
|
- [ ] **README:** stack `rules/README.md` core→stack mapping / catalog updated if stems added
|
|
27
26
|
- [ ] **CHANGELOG / package README:** note when public preset paths or install surface change
|
|
@@ -9,21 +9,20 @@ alwaysApply: false
|
|
|
9
9
|
|
|
10
10
|
<!-- shared-core: meta/preset-token-budget.md -->
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
# Preset token budget
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
Invariants for rule loading in an **installed** preset (consumer app).
|
|
16
15
|
|
|
17
16
|
## Hard caps
|
|
18
17
|
|
|
19
18
|
| Platform | Always-on | Cap |
|
|
20
19
|
|----------|-----------|-----|
|
|
21
20
|
| Cursor | `alwaysApply: true` | **≤ 3** |
|
|
22
|
-
| Claude | rules **without** `paths:` |
|
|
21
|
+
| Claude | rules **without** `paths:` | **exactly 3** |
|
|
23
22
|
|
|
24
23
|
**Claude Option A (README exclusion):** when counting Claude rules without `paths:` / session-start, **exclude `**/README.md`** (topic indexes are not session-start rules). The intended session-start trio remains **exactly 3**; body budget sums **only those 3** rules.
|
|
25
24
|
|
|
26
|
-
Session-start body budget (
|
|
25
|
+
Session-start body budget (where documented): ≤140 lines total (stretch ≤120).
|
|
27
26
|
|
|
28
27
|
## Meta / author rules
|
|
29
28
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Reference Feature modules of the repository — copy structure when implementing. Fill in paths after init in the target iOS repo.
|
|
3
3
|
globs:
|
|
4
4
|
- Features/**/*
|
|
5
5
|
- "**/Presentation/**/*"
|
|
@@ -11,44 +11,44 @@ alwaysApply: false
|
|
|
11
11
|
|
|
12
12
|
<!-- shared-core: architecture/reference-features.template.md -->
|
|
13
13
|
|
|
14
|
-
#
|
|
14
|
+
# Reference features
|
|
15
15
|
|
|
16
16
|
## Stack notes
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Before implementing, find a Feature of the same type and **mirror its structure**; do not invent a new file organization.
|
|
19
19
|
|
|
20
20
|
Taxonomy / shared core: [`presets/_shared/README.md`](../../../../_shared/README.md) · [Preset contribution guide](../../../../docs/PRESET-CONTRIBUTION.md).
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## Reference table
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
After `ai-rules init`, replace examples with **real** consumer-repo paths. Below — conventional placeholders for greenfield / dogfood.
|
|
25
25
|
|
|
26
|
-
|
|
|
26
|
+
| Layer | Reference (example → replace) | Conventional glob / path |
|
|
27
27
|
|------|----------------------------|--------------------------|
|
|
28
28
|
| Feature module | `Features/Orders/` | `Features/**` |
|
|
29
29
|
| Presentation / UI | `Features/Orders/Presentation/` | `**/Presentation/**`, `**/DesignSystem/**` |
|
|
30
30
|
| Domain | `Features/Orders/Domain/` | `**/Domain/**` |
|
|
31
31
|
| Data / Network | `Features/Orders/Data/` | `**/Data/**`, `**/Network*/**` |
|
|
32
32
|
| Persistence | `Features/Orders/Data/Persistence/` | `**/Persistence/**`, `**/Keychain/**` |
|
|
33
|
-
| Unit tests | `Features/OrdersTests/`
|
|
33
|
+
| Unit tests | `Features/OrdersTests/` or colocated `*Tests` | `**/*Tests/**/*.swift` |
|
|
34
34
|
| UI tests | `OrdersUITests/` | `**/*UITests/**/*.swift` |
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
If the repo uses another layout (`Modules/`, `Sources/`) — rewrite the table once and keep it as SoT for agents.
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## How to use
|
|
39
39
|
|
|
40
|
-
1.
|
|
41
|
-
2.
|
|
42
|
-
3.
|
|
43
|
-
4.
|
|
40
|
+
1. Identify affected layers from `decomposition.md` or the task.
|
|
41
|
+
2. Open the reference from the table (after paths are filled).
|
|
42
|
+
3. Mirror naming, file order, DI, and test patterns.
|
|
43
|
+
4. If there is no reference — pick the **closest** existing feature of the same layer and record the choice in the handoff.
|
|
44
44
|
|
|
45
|
-
## Dogfood checklist (5
|
|
45
|
+
## Dogfood checklist (5 scenarios)
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
Run after preset init (manual smoke for agents):
|
|
48
48
|
|
|
49
|
-
1. `/task`
|
|
50
|
-
2.
|
|
51
|
-
3.
|
|
49
|
+
1. `/task` new feature under `Features/<Name>` — analyst → developer → build-verifier (xcodebuild).
|
|
50
|
+
2. ViewModel bug — debugger → fix → unit test.
|
|
51
|
+
3. DTO↔domain mapper — unit-test-planner/generator.
|
|
52
52
|
4. UI flow — `xcuitest-test-planner` → generator (accessibilityIdentifier).
|
|
53
53
|
5. Auth/Keychain touch — security-reviewer + `security-ios.mdc`.
|
|
54
54
|
|
|
@@ -56,8 +56,8 @@ Taxonomy / shared core: [`presets/_shared/README.md`](../../../../_shared/README
|
|
|
56
56
|
|
|
57
57
|
Post-init gotchas / patterns / decisions: **`.cursor/team/conventions.md`** (and the twin tool path if both Cursor and Claude are installed). Consumer-owned; not always-on. See root `AGENTS.md` § Living conventions.
|
|
58
58
|
|
|
59
|
-
##
|
|
59
|
+
## Related rules
|
|
60
60
|
|
|
61
|
-
- `code-quality-and-refactoring.mdc` —
|
|
62
|
-
- `feature-delivery-workflow.mdc` —
|
|
63
|
-
- skill `feature-delivery` — end-to-end
|
|
61
|
+
- `code-quality-and-refactoring.mdc` — repeat patterns.
|
|
62
|
+
- `feature-delivery-workflow.mdc` — layer order.
|
|
63
|
+
- skill `feature-delivery` — end-to-end scenario.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: ATS, Keychain, PII,
|
|
2
|
+
description: ATS, Keychain, PII, secrets, safe iOS logging
|
|
3
3
|
globs:
|
|
4
4
|
- "**/*Keychain*.swift"
|
|
5
5
|
- "**/*Auth*.swift"
|
|
@@ -11,25 +11,25 @@ alwaysApply: false
|
|
|
11
11
|
|
|
12
12
|
# Security (iOS)
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Secrets and config
|
|
15
15
|
|
|
16
|
-
-
|
|
17
|
-
- Debug-only
|
|
16
|
+
- No API keys / tokens in sources or git; use Keychain, xcconfig (not in VCS), CI secrets.
|
|
17
|
+
- Debug-only ATS / SSL bypass — `#if DEBUG` only and never in Release.
|
|
18
18
|
|
|
19
|
-
## ATS
|
|
19
|
+
## ATS and networking
|
|
20
20
|
|
|
21
|
-
- ATS exceptions
|
|
22
|
-
- Certificate pinning —
|
|
21
|
+
- ATS exceptions in Info.plist — minimal, with rationale; prefer HTTPS.
|
|
22
|
+
- Certificate pinning — only if already adopted in the repo.
|
|
23
23
|
|
|
24
|
-
## PII
|
|
24
|
+
## PII and logs
|
|
25
25
|
|
|
26
|
-
-
|
|
27
|
-
- Crash/APM: scrub PII
|
|
26
|
+
- Do not log tokens, passwords, full card/document numbers.
|
|
27
|
+
- Crash/APM: scrub PII per repo policy.
|
|
28
28
|
|
|
29
|
-
## Keychain /
|
|
29
|
+
## Keychain / biometrics
|
|
30
30
|
|
|
31
|
-
-
|
|
31
|
+
- Accessibility levels and `kSecAttrAccessible` — intentional; Face ID/Touch ID — via LocalAuthentication as in the repo.
|
|
32
32
|
|
|
33
|
-
##
|
|
33
|
+
## Agent requirement
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
For auth/forms/payments — check this rule and `code-review-mr.mdc`. Involve security-reviewer for sensitive features.
|
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: ViewModels,
|
|
2
|
+
description: ViewModels, screen state, and domain flow
|
|
3
3
|
globs: "**/{Presentation,Domain}/**/*ViewModel*.swift"
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# General principles
|
|
8
8
|
|
|
9
|
-
- ViewModel
|
|
10
|
-
-
|
|
11
|
-
- `@MainActor`
|
|
9
|
+
- ViewModel is the **single orchestration point** for a screen: load, submit, validation, navigation intents.
|
|
10
|
+
- Store and expose to the View **domain models** and UI-specific state (loading, error message, selected tab).
|
|
11
|
+
- `@MainActor` on ViewModel; heavy work — in use case / repository (`async`); do not block the main thread.
|
|
12
12
|
- Unidirectional flow: View → intent → ViewModel → use case → state update → View.
|
|
13
13
|
|
|
14
14
|
# State
|
|
15
15
|
|
|
16
|
-
-
|
|
17
|
-
- `idle`, `loading`, `loaded(Data)`, `failed(Error)` —
|
|
18
|
-
-
|
|
19
|
-
- `@Observable` / `ObservableObject` —
|
|
16
|
+
- Explicit enum or struct for UI state where appropriate:
|
|
17
|
+
- `idle`, `loading`, `loaded(Data)`, `failed(Error)` — or the repo’s analog.
|
|
18
|
+
- Avoid many unsynchronized `@Published` flags when one enum covers the scenario.
|
|
19
|
+
- `@Observable` / `ObservableObject` — as in the project; do not mix styles in one feature without reason.
|
|
20
20
|
|
|
21
|
-
# Use cases
|
|
21
|
+
# Use cases and repositories
|
|
22
22
|
|
|
23
|
-
- ViewModel
|
|
24
|
-
-
|
|
25
|
-
-
|
|
23
|
+
- ViewModel depends on **protocols** (`LoadOrdersUseCase`, `OrderRepository`), not `*RepositoryImpl`.
|
|
24
|
+
- One use case — one business operation; do not inflate ViewModels to hundreds of lines — extract use cases into Domain.
|
|
25
|
+
- Caching and offline — in repository/Data, not in ViewModel.
|
|
26
26
|
|
|
27
27
|
# Side effects
|
|
28
28
|
|
|
29
|
-
- Analytics, haptics, deep links —
|
|
30
|
-
- `Task`
|
|
29
|
+
- Analytics, haptics, deep links — via injected services or a middleware pattern, not hardcoded singletons.
|
|
30
|
+
- `Task` in ViewModel: cancel on `deinit` / `onDisappear` when needed (`task(id:)`, store `Task?` with cancel).
|
|
31
31
|
|
|
32
|
-
#
|
|
32
|
+
# Testability
|
|
33
33
|
|
|
34
|
-
-
|
|
35
|
-
-
|
|
34
|
+
- ViewModel initializer takes protocols (DI); no hidden network/DB singletons.
|
|
35
|
+
- Cover business branches with unit tests using mock use cases.
|
|
36
36
|
|
|
37
|
-
#
|
|
37
|
+
# Agent requirement
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
39
|
+
When creating a ViewModel:
|
|
40
|
+
- Do not call `URLSession` / API client directly.
|
|
41
|
+
- Do not parse JSON or declare DTOs in the ViewModel.
|
|
42
|
+
- Naming: `FeatureViewModel`, methods as verbs (`loadOrders()`, `submitOrder()`).
|
|
43
|
+
- Follow the style of existing ViewModels in the same feature.
|