@bonesofspring/ai-rules 0.2.13 → 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 +36 -1
- package/README.md +6 -2
- package/bin/cli.js +4 -0
- package/package.json +2 -1
- package/presets/_shared/README.md +1 -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 +16 -2
- 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/meta/preset-twin-sync.md +4 -0
- 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/build-verifier.md +1 -1
- 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 -12
- package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -2
- package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +6 -6
- package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +3 -3
- package/presets/claude/go/rules/tooling-and-review/preset-twin-sync.md +4 -0
- 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/build-verifier.md +2 -2
- 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 -12
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +6 -6
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +3 -3
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +4 -0
- 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/build-verifier.md +1 -1
- 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 -12
- package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -2
- package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +6 -6
- package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +3 -3
- package/presets/claude/java/rules/tooling-and-review/preset-twin-sync.md +4 -0
- 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/build-verifier.md +1 -1
- 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 -12
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -2
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +6 -6
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +3 -3
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-twin-sync.md +4 -0
- 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/build-verifier.md +3 -3
- 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 -12
- package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -2
- package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +6 -6
- package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +3 -3
- package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +4 -0
- 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 +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 +206 -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 +51 -0
- package/presets/claude/nuxt/commands/feature-continue.md +19 -0
- package/presets/claude/nuxt/commands/feature-start.md +33 -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 +85 -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 +77 -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 +68 -0
- package/presets/claude/nuxt/rules/architecture/README.md +12 -0
- package/presets/claude/nuxt/rules/architecture/architecture-boundaries-ui.md +16 -0
- package/presets/claude/nuxt/rules/architecture/architecture-boundaries.md +99 -0
- package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +89 -0
- package/presets/claude/nuxt/rules/architecture/layer-barrel-exports.md +72 -0
- package/presets/claude/nuxt/rules/architecture/public-imports.md +61 -0
- package/presets/claude/nuxt/rules/architecture/reference-features.md +50 -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 +62 -0
- package/presets/claude/nuxt/rules/stack/nuxt-app-core.md +44 -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 +41 -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 +16 -0
- package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +192 -0
- package/presets/claude/nuxt/rules/tooling-and-review/anti-sycophancy-discipline.md +34 -0
- package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +51 -0
- package/presets/claude/nuxt/rules/tooling-and-review/code-review-mr.md +64 -0
- package/presets/claude/nuxt/rules/tooling-and-review/design-guidance.md +115 -0
- package/presets/claude/nuxt/rules/tooling-and-review/package-manager.md +17 -0
- package/presets/claude/nuxt/rules/tooling-and-review/post-change-lint.md +44 -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 +38 -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 +16 -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 +35 -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 +140 -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/MCP.md +7 -7
- package/presets/claude/php-hexagonal/agents/README.md +3 -3
- package/presets/claude/php-hexagonal/agents/build-verifier.md +1 -1
- 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 -12
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +16 -2
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +6 -6
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +3 -3
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-twin-sync.md +4 -0
- 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/build-verifier.md +1 -1
- 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 -12
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +17 -2
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +7 -6
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +4 -3
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-twin-sync.md +5 -0
- 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 +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 +206 -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 +141 -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 +51 -0
- package/presets/claude/svelte/commands/feature-continue.md +19 -0
- package/presets/claude/svelte/commands/feature-start.md +33 -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 +85 -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 +50 -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 +51 -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 +35 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +82 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +38 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +40 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +53 -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 +140 -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.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/build-verifier.md +1 -1
- 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 -12
- package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +16 -2
- package/presets/cursor/go/rules/preset-pr-checklist.mdc +6 -6
- package/presets/cursor/go/rules/preset-token-budget.mdc +3 -3
- package/presets/cursor/go/rules/preset-twin-sync.mdc +4 -0
- 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/build-verifier.md +2 -2
- 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 -12
- package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +16 -2
- package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +6 -6
- package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +3 -3
- package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +4 -0
- 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/build-verifier.md +1 -1
- 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 -12
- package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +16 -2
- package/presets/cursor/java/rules/preset-pr-checklist.mdc +6 -6
- package/presets/cursor/java/rules/preset-token-budget.mdc +3 -3
- package/presets/cursor/java/rules/preset-twin-sync.mdc +4 -0
- 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/build-verifier.md +1 -1
- 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 -12
- package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +16 -2
- package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +6 -6
- package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +3 -3
- package/presets/cursor/mcp-ts/rules/preset-twin-sync.mdc +4 -0
- 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/build-verifier.md +3 -3
- 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 -12
- package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +16 -2
- package/presets/cursor/next/rules/preset-pr-checklist.mdc +6 -6
- package/presets/cursor/next/rules/preset-token-budget.mdc +3 -3
- package/presets/cursor/next/rules/preset-twin-sync.mdc +4 -0
- 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 +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 +52 -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 +36 -0
- package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +83 -0
- package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +39 -0
- package/presets/cursor/nuxt/rules/preset-token-budget.mdc +41 -0
- package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +54 -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 +50 -0
- package/presets/cursor/nuxt/rules/tests-unit.mdc +77 -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.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/build-verifier.md +1 -1
- 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 -12
- package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +16 -2
- package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +6 -6
- package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +3 -3
- package/presets/cursor/php-hexagonal/rules/preset-twin-sync.mdc +4 -0
- 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/build-verifier.md +1 -1
- 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 -12
- package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +16 -2
- package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +6 -6
- package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +3 -3
- package/presets/cursor/php-laravel/rules/preset-twin-sync.mdc +4 -0
- 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 +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 +52 -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 +36 -0
- package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +83 -0
- package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +39 -0
- package/presets/cursor/svelte/rules/preset-token-budget.mdc +41 -0
- package/presets/cursor/svelte/rules/preset-twin-sync.mdc +54 -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 +50 -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
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Networking layer, API clients, and mapper conventions
|
|
3
3
|
paths:
|
|
4
4
|
- "**/{Data,Network,Networking}/**/*.swift"
|
|
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 — **`api-and-data/persistence.md`**; 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
|
paths:
|
|
4
4
|
- "**/Persistence/**/*.swift"
|
|
5
5
|
- "**/Keychain/**/*.swift"
|
|
@@ -10,21 +10,21 @@ paths:
|
|
|
10
10
|
|
|
11
11
|
# Persistence (Data)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Separate from HTTP (`api-and-data/networking.md`): local storage and secrets on disk/Keychain live here.
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Frame
|
|
16
16
|
|
|
17
|
-
-
|
|
18
|
-
- Public API —
|
|
19
|
-
- **Keychain** —
|
|
17
|
+
- Stack choice (**SwiftData / Core Data / UserDefaults / files**) — **as in the repo**; do not introduce a second persistence stack without a task.
|
|
18
|
+
- Public API — protocols in Domain (`…Repository` / `…Store`); implementations in Data.
|
|
19
|
+
- **Keychain** — credentials/tokens only; do not put PII in UserDefaults “for convenience”.
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Rules
|
|
22
22
|
|
|
23
|
-
- DTO/Entity
|
|
24
|
-
-
|
|
25
|
-
- `@MainActor`
|
|
26
|
-
-
|
|
23
|
+
- Persistence DTO/Entity ≠ network DTO; mapping is explicit.
|
|
24
|
+
- Schema migrations — follow the repo’s process; do not break silently.
|
|
25
|
+
- `@MainActor` on a store — only if UI-facing; heavy I/O — off-main + hop back.
|
|
26
|
+
- Errors — typed; do not swallow `try?` on critical persist.
|
|
27
27
|
|
|
28
|
-
##
|
|
28
|
+
## Agent requirement
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Do not mix URLSession and persistence in one type without a repository facade. Tests — in-memory / fake store.
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Architectural boundaries and dependency rules for an iOS app
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Layer boundaries
|
|
6
6
|
|
|
7
7
|
- **Presentation** (Views, ViewModels, DesignSystem):
|
|
8
|
-
-
|
|
9
|
-
-
|
|
8
|
+
- May: Domain (entities, use case protocols), DesignSystem, Core (non-UI).
|
|
9
|
+
- Must not: import Data (repositories, DTOs, API clients); know HTTP/Codable/endpoints; map DTO → domain.
|
|
10
10
|
- **Domain**:
|
|
11
|
-
-
|
|
12
|
-
-
|
|
11
|
+
- May: Core (base types, protocols).
|
|
12
|
+
- Must not: import SwiftUI, UIKit, networking; know concrete repository implementations.
|
|
13
13
|
- **Data**:
|
|
14
|
-
-
|
|
15
|
-
-
|
|
14
|
+
- May: Domain (protocols, entities), Core.
|
|
15
|
+
- Must not: import SwiftUI/UIKit; depend on View/ViewModel.
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
# Dependencies and modules
|
|
18
18
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- SPM: Domain
|
|
22
|
-
-
|
|
19
|
+
- Direction: **Presentation → Domain ← Data**.
|
|
20
|
+
- Shared code — in Core / DesignSystem; to another feature — only **public API** (protocol, facade, coordinator), not deep-import.
|
|
21
|
+
- SPM: Domain does not link Data; Data implementations are wired via DI in `App/`.
|
|
22
|
+
- Feature layout — as in `stack/ios-app-core.md` / neighboring `Features/*` in the repo (Presentation / Domain / Data + tests).
|
|
23
23
|
|
|
24
|
-
# DI
|
|
24
|
+
# DI and composition root
|
|
25
25
|
|
|
26
|
-
-
|
|
27
|
-
- ViewModel
|
|
28
|
-
-
|
|
26
|
+
- Graph assembly — in `App/` (or `DI/` / CompositionRoot), not in the View.
|
|
27
|
+
- ViewModel receives **protocols** (use case / repository), not concrete Data types.
|
|
28
|
+
- Previews and tests — mock/stub implementations.
|
|
29
29
|
|
|
30
|
-
#
|
|
30
|
+
# Agent requirement
|
|
31
31
|
|
|
32
|
-
-
|
|
33
|
-
-
|
|
32
|
+
- Place files in the matching layers; repository protocols in Domain, implementations in Data.
|
|
33
|
+
- Do not “short-circuit” layers (API from a View “for speed”).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: End-to-end iOS feature delivery checklist and zone→rule matrix. Use when implementing features, adding screens/API, or extending existing iOS flows.
|
|
3
3
|
paths:
|
|
4
4
|
- .claude/commands/**/*
|
|
5
5
|
- .claude/team/**/*
|
|
@@ -12,21 +12,22 @@ paths:
|
|
|
12
12
|
|
|
13
13
|
<!-- shared-core: architecture/feature-delivery-workflow.md -->
|
|
14
14
|
|
|
15
|
+
# Feature delivery (iOS)
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
## Stack notes
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
Typical feature with data and UI. Layer details — `architecture/boundaries.md`, `stack/ios-app-core.md`.
|
|
19
20
|
|
|
20
|
-
##
|
|
21
|
+
## Checklist (work order)
|
|
21
22
|
|
|
22
|
-
1. **Domain** — entities, value types,
|
|
23
|
-
2. **Data** —
|
|
24
|
-
3. **ViewModel** —
|
|
25
|
-
4. **View / navigation** —
|
|
26
|
-
5.
|
|
27
|
-
6.
|
|
23
|
+
1. **Domain** — entities, value types, repository / use case protocols (`Features/**/Domain/**`).
|
|
24
|
+
2. **Data** — DTOs (`Codable`), Domain ↔ DTO mappers, repository implementations, API client (`api-and-data/networking.md`).
|
|
25
|
+
3. **ViewModel** — state, use case / protocol calls; DI from App; no DTOs or URLs (`ui-and-accessibility/viewmodels.md`).
|
|
26
|
+
4. **View / navigation** — thin SwiftUI Views, Design System; navigation as in the repo (`ui-and-accessibility/swiftui.md`).
|
|
27
|
+
5. **Tests** — unit for mappers / use cases / VM (`testing/unit.md`); UI flows — XCUITest (`testing/ui.md`).
|
|
28
|
+
6. **Completion** — **invoke** `tooling-and-review/post-change-build.md` (+ `tooling-and-review/xcode-tooling.md` for schemes/commands): build touched targets + lint/format per repo config.
|
|
28
29
|
|
|
29
|
-
##
|
|
30
|
+
## Data flow (orientation)
|
|
30
31
|
|
|
31
32
|
```mermaid
|
|
32
33
|
flowchart LR
|
|
@@ -38,36 +39,36 @@ flowchart LR
|
|
|
38
39
|
DataImpl[Data impl] -.-> Repo
|
|
39
40
|
```
|
|
40
41
|
|
|
41
|
-
##
|
|
42
|
+
## Partial scenarios
|
|
42
43
|
|
|
43
|
-
|
|
|
44
|
-
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
44
|
+
| Task | Minimum |
|
|
45
|
+
|------|---------|
|
|
46
|
+
| API / model only | Domain + DTO + mapper + repo impl; unit for mapper. |
|
|
47
|
+
| VM / logic only | Domain protocols; mocks in tests; no HTTP in View. |
|
|
48
|
+
| UI only | View + existing VM/state; no DTOs. |
|
|
49
|
+
| Tests only | Specs per repo convention; do not change production without need. |
|
|
49
50
|
|
|
50
|
-
##
|
|
51
|
+
## Anti-patterns
|
|
51
52
|
|
|
52
|
-
- DTO / `Codable` transport
|
|
53
|
-
- `URLSession` /
|
|
54
|
-
- Domain
|
|
55
|
-
- Deep-import
|
|
56
|
-
-
|
|
57
|
-
- **Ubiquitous language:**
|
|
53
|
+
- DTO / `Codable` transport types in View or ViewModel.
|
|
54
|
+
- `URLSession` / concrete API client in ViewModel or View.
|
|
55
|
+
- Domain imports SwiftUI / UIKit.
|
|
56
|
+
- Deep-import of another feature’s internal files.
|
|
57
|
+
- Assembling DI inside a View.
|
|
58
|
+
- **Ubiquitous language:** Domain/type names reflect the feature domain — do not mix transport/framework terms into domain without need.
|
|
58
59
|
- Load `design-guidance` (rule stem) when assessing structure, smells, or pattern fit.
|
|
59
60
|
|
|
60
|
-
##
|
|
61
|
+
## Matrix: zone → rules
|
|
61
62
|
|
|
62
|
-
|
|
|
63
|
+
| Zone | Rules |
|
|
63
64
|
|------|---------|
|
|
64
65
|
| `Features/**/Domain/**`, `Core/Domain/**` | `architecture/boundaries.md`, `stack/ios-app-core.md` |
|
|
65
66
|
| `Features/**/Data/**`, `**/Network*/**` | `api-and-data/networking.md`, `architecture/boundaries.md` |
|
|
66
67
|
| `*ViewModel*.swift`, Presentation state | `ui-and-accessibility/viewmodels.md` |
|
|
67
68
|
| `Presentation/**`, `DesignSystem/**` | `ui-and-accessibility/swiftui.md`, `architecture/boundaries.md` |
|
|
68
|
-
| `**/*.swift` (
|
|
69
|
+
| `**/*.swift` (style) | `stack/swift-conventions.md` |
|
|
69
70
|
| `*Tests/**` | `testing/unit.md` |
|
|
70
71
|
| `*UITests/**` | `testing/ui.md` |
|
|
71
|
-
|
|
|
72
|
+
| After Swift edits | `tooling-and-review/post-change-build.md` |
|
|
72
73
|
|
|
73
|
-
|
|
74
|
+
When adding or extending a feature, **walk the checklist** and the table rules for touched zones.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: SPM /
|
|
2
|
+
description: SPM / modules — public API, access control, ban deep-import of internals
|
|
3
3
|
paths:
|
|
4
4
|
- "**/Package.swift"
|
|
5
5
|
- "**/*Public*.swift"
|
|
@@ -8,18 +8,18 @@ paths:
|
|
|
8
8
|
|
|
9
9
|
# Module public API (SPM)
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Frame
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
- Deep-import
|
|
13
|
+
- Module consumers import **only public/open** API; `internal`/`fileprivate` — for implementation.
|
|
14
|
+
- Deep-import of another module’s internal files — reason to promote the symbol to public API or refactor boundaries.
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Rules
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
- Barrel
|
|
20
|
-
-
|
|
21
|
-
-
|
|
18
|
+
- New public type/function — explicit `public` + documentation/usage example when needed.
|
|
19
|
+
- Barrel style: one entry module / umbrella when that is how the repo is set up.
|
|
20
|
+
- Do not export network DTOs from Presentation-facing modules.
|
|
21
|
+
- Breaking API versioning — intentional (package SemVer / release notes).
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## Agent requirement
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Before marking a type `public` — check whether it is needed externally. Follow neighboring modules’ access control.
|
|
@@ -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
|
paths:
|
|
4
4
|
- Features/**/*
|
|
5
5
|
- "**/Presentation/**/*"
|
|
@@ -10,50 +10,53 @@ paths:
|
|
|
10
10
|
|
|
11
11
|
<!-- shared-core: architecture/reference-features.template.md -->
|
|
12
12
|
|
|
13
|
+
# Reference features
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
## Stack notes
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
Before implementing, find a Feature of the same type and **mirror its structure**; do not invent a new file organization.
|
|
17
18
|
|
|
18
19
|
Taxonomy / shared core: [`presets/_shared/README.md`](../../../../_shared/README.md) · [Preset contribution guide](../../../../docs/PRESET-CONTRIBUTION.md).
|
|
19
20
|
|
|
20
|
-
##
|
|
21
|
+
## Reference table
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
After `ai-rules init`, replace examples with **real** consumer-repo paths. Below — conventional placeholders for greenfield / dogfood.
|
|
23
24
|
|
|
24
|
-
|
|
|
25
|
+
| Layer | Reference (example → replace) | Conventional glob / path |
|
|
25
26
|
|------|----------------------------|--------------------------|
|
|
26
27
|
| Feature module | `Features/Orders/` | `Features/**` |
|
|
27
28
|
| Presentation / UI | `Features/Orders/Presentation/` | `**/Presentation/**`, `**/DesignSystem/**` |
|
|
28
29
|
| Domain | `Features/Orders/Domain/` | `**/Domain/**` |
|
|
29
30
|
| Data / Network | `Features/Orders/Data/` | `**/Data/**`, `**/Network*/**` |
|
|
30
31
|
| Persistence | `Features/Orders/Data/Persistence/` | `**/Persistence/**`, `**/Keychain/**` |
|
|
31
|
-
| Unit tests | `Features/OrdersTests/`
|
|
32
|
+
| Unit tests | `Features/OrdersTests/` or colocated `*Tests` | `**/*Tests/**/*.swift` |
|
|
32
33
|
| UI tests | `OrdersUITests/` | `**/*UITests/**/*.swift` |
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
If the repo uses another layout (`Modules/`, `Sources/`) — rewrite the table once and keep it as SoT for agents.
|
|
35
36
|
|
|
36
|
-
##
|
|
37
|
+
## How to use
|
|
37
38
|
|
|
38
|
-
1.
|
|
39
|
-
2.
|
|
40
|
-
3.
|
|
41
|
-
4.
|
|
39
|
+
1. Identify affected layers from `decomposition.md` or the task.
|
|
40
|
+
2. Open the reference from the table (after paths are filled).
|
|
41
|
+
3. Mirror naming, file order, DI, and test patterns.
|
|
42
|
+
4. If there is no reference — pick the **closest** existing feature of the same layer and record the choice in the handoff.
|
|
42
43
|
|
|
43
|
-
## Dogfood checklist (5
|
|
44
|
+
## Dogfood checklist (5 scenarios)
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
Run after preset init (manual smoke for agents):
|
|
47
|
+
|
|
48
|
+
1. `/task` new feature under `Features/<Name>` — analyst → developer → build-verifier (xcodebuild).
|
|
49
|
+
2. ViewModel bug — debugger → fix → unit test.
|
|
50
|
+
3. DTO↔domain mapper — unit-test-planner/generator.
|
|
48
51
|
4. UI flow — `xcuitest-test-planner` → generator (accessibilityIdentifier).
|
|
49
|
-
5. Auth/Keychain touch — security-reviewer + `security-ios`.
|
|
52
|
+
5. Auth/Keychain touch — security-reviewer + `tooling-and-review/security-ios.md`.
|
|
50
53
|
|
|
51
54
|
## Living conventions
|
|
52
55
|
|
|
53
56
|
Post-init gotchas / patterns / decisions: **`.claude/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.
|
|
54
57
|
|
|
55
|
-
##
|
|
58
|
+
## Related rules
|
|
56
59
|
|
|
57
|
-
- `tooling-and-review/code-quality.md` —
|
|
58
|
-
- `architecture/feature-delivery.md` —
|
|
59
|
-
- skill `feature-delivery` — end-to-end
|
|
60
|
+
- `tooling-and-review/code-quality.md` — repeat patterns.
|
|
61
|
+
- `architecture/feature-delivery.md` — layer order.
|
|
62
|
+
- skill `feature-delivery` — end-to-end scenario.
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Core principles, stack, and structure for an iOS Swift app (preset)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Stack and environment
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Versions come **from Xcode / Package.swift / repo configs**. Frame: Swift, iOS; SwiftUI preferred (UIKit where the repo already uses it); Xcode + SPM/CocoaPods as in the repo; `async`/`await`, `@MainActor`; XCTest/Swift Testing + XCUITest; networking — `URLSession`/`Codable`; UI — `DesignSystem/` tokens; observability — only if already in the project.
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# Project structure
|
|
10
10
|
|
|
11
|
-
Feature-first
|
|
11
|
+
Feature-first or top-level layers (as in the repo): `App/` (composition root), `Features/<Name>/` (Presentation / Domain / Data), `Core/`, `DesignSystem/`, `Tests/`. Place new files next to analogs. Boundaries/DI — **`architecture/boundaries.md`**.
|
|
12
12
|
|
|
13
|
-
# Swift
|
|
13
|
+
# Swift and quality
|
|
14
14
|
|
|
15
|
-
API Design Guidelines + SwiftLint/SwiftFormat
|
|
15
|
+
API Design Guidelines + the repo’s SwiftLint/SwiftFormat; no `!`/`try!` in production; `guard` / typed errors; follow neighboring-file patterns.
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
# Agent work
|
|
18
18
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
19
|
+
- Layer → neighbor patterns; no `URLSession` in Views and no DTOs in ViewModels (`architecture/boundaries.md`).
|
|
20
|
+
- Features: `architecture/feature-delivery.md`; after Swift edits — **invoke** `tooling-and-review/post-change-build.md`; toolchain — `tooling-and-review/xcode-tooling.md`.
|
|
@@ -7,28 +7,28 @@ paths:
|
|
|
7
7
|
# Naming and API design
|
|
8
8
|
|
|
9
9
|
- Types: `UpperCamelCase`; methods, properties, enum cases: `lowerCamelCase`.
|
|
10
|
-
- Protocols
|
|
11
|
-
-
|
|
10
|
+
- Protocols that describe a capability: `-able`, `-ing`, or `Protocol` suffix — as in the repo.
|
|
11
|
+
- Avoid abbreviations in names except common ones (URL, ID, HTTP).
|
|
12
12
|
|
|
13
13
|
# Optionals and errors
|
|
14
14
|
|
|
15
15
|
```swift
|
|
16
|
-
// ❌
|
|
16
|
+
// ❌ Bad
|
|
17
17
|
let name = user!.name
|
|
18
18
|
|
|
19
|
-
// ✅
|
|
19
|
+
// ✅ Good
|
|
20
20
|
guard let name = user?.name else { return }
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
- `throws` + typed errors
|
|
24
|
-
- `guard`
|
|
23
|
+
- `throws` + typed errors instead of `Result` where that is the layer convention; stay consistent within a module.
|
|
24
|
+
- `guard` for early exit; do not nest deep `if let` pyramids.
|
|
25
25
|
|
|
26
26
|
# Concurrency
|
|
27
27
|
|
|
28
28
|
- UI types — `@MainActor`.
|
|
29
|
-
- Shared mutable state — `actor`
|
|
30
|
-
- `Task { }`
|
|
31
|
-
- Prefer `async/await` over completion handlers
|
|
29
|
+
- Shared mutable state — `actor` or isolation via a queue; document thread expectations.
|
|
30
|
+
- `Task { }` in ViewModel: account for cancellation; `[weak self]` in escaping closures when retain cycles are possible (default when capturing `self` in escaping work).
|
|
31
|
+
- Prefer `async/await` over completion handlers for new code.
|
|
32
32
|
|
|
33
33
|
## Anti-hallucination (Swift / concurrency)
|
|
34
34
|
|
|
@@ -42,20 +42,20 @@ guard let name = user?.name else { return }
|
|
|
42
42
|
|
|
43
43
|
# Access control
|
|
44
44
|
|
|
45
|
-
-
|
|
46
|
-
-
|
|
45
|
+
- Minimum necessary level: `private` / `fileprivate` by default for implementation details.
|
|
46
|
+
- Feature public API — explicit types and protocols; do not export DTOs outside the module.
|
|
47
47
|
|
|
48
48
|
# Value semantics
|
|
49
49
|
|
|
50
|
-
-
|
|
51
|
-
- `class` —
|
|
50
|
+
- Prefer `struct` for models and state where there is no identity semantics.
|
|
51
|
+
- `class` — when identity, inheritance, or Objective-C interop is required.
|
|
52
52
|
|
|
53
53
|
# Extensions
|
|
54
54
|
|
|
55
|
-
-
|
|
56
|
-
- Protocol extensions
|
|
55
|
+
- Group extensions by type; do not dump unrelated helpers into one unstructured `Extensions.swift`.
|
|
56
|
+
- Protocol extensions for shared default behavior.
|
|
57
57
|
|
|
58
|
-
#
|
|
58
|
+
# Agent requirement
|
|
59
59
|
|
|
60
60
|
- Style gate: **SwiftLint** (and SwiftFormat when configured) — prefer fixing lint over prose style essays; `// swiftlint:disable` only with an explicit reason.
|
|
61
|
-
-
|
|
61
|
+
- New code — Swift Concurrency-ready (`Sendable` where the project compiler/linter requires it).
|