@bonesofspring/ai-rules 0.2.2 → 0.2.4
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 +65 -0
- package/README.md +27 -4
- package/bin/cli.js +285 -72
- package/package.json +3 -2
- package/presets/claude/ios-swift/CLAUDE.md +28 -20
- package/presets/claude/ios-swift/MCP.md +14 -0
- package/presets/claude/ios-swift/README.md +18 -15
- package/presets/claude/ios-swift/agents/README.md +55 -0
- package/presets/claude/ios-swift/agents/accessibility-reviewer.md +67 -0
- package/presets/claude/ios-swift/agents/api-contract-reviewer.md +72 -0
- package/presets/claude/ios-swift/agents/build-verifier.md +64 -0
- package/presets/claude/ios-swift/agents/ci-investigator.md +73 -0
- package/presets/claude/ios-swift/agents/code-reviewer.md +75 -0
- package/presets/claude/ios-swift/agents/debugger.md +72 -0
- package/presets/claude/ios-swift/agents/feature-developer.md +35 -0
- package/presets/claude/ios-swift/agents/migration-specialist.md +73 -0
- package/presets/claude/ios-swift/agents/performance-auditor.md +72 -0
- package/presets/claude/ios-swift/agents/qa-tester.md +65 -0
- package/presets/claude/ios-swift/agents/security-reviewer.md +69 -0
- package/presets/claude/ios-swift/agents/solution-architect.md +17 -0
- package/presets/claude/ios-swift/agents/task-analyst.md +25 -0
- package/presets/claude/ios-swift/agents/task-router.md +62 -0
- package/presets/claude/ios-swift/agents/tech-writer.md +63 -0
- package/presets/claude/ios-swift/agents/unit-test-generator.md +54 -0
- package/presets/claude/ios-swift/agents/unit-test-healer.md +53 -0
- package/presets/claude/ios-swift/agents/unit-test-planner.md +64 -0
- package/presets/claude/ios-swift/agents/xcuitest-test-generator.md +47 -0
- package/presets/claude/ios-swift/agents/xcuitest-test-healer.md +47 -0
- package/presets/claude/ios-swift/agents/xcuitest-test-planner.md +67 -0
- package/presets/claude/ios-swift/commands/README.md +12 -2
- package/presets/claude/ios-swift/commands/feature-continue.md +51 -0
- package/presets/claude/ios-swift/commands/feature-start.md +30 -0
- package/presets/claude/ios-swift/commands/task-continue.md +49 -0
- package/presets/claude/ios-swift/commands/task.md +50 -0
- package/presets/claude/ios-swift/commands/technical-retro.md +58 -0
- package/presets/claude/ios-swift/hooks/README.md +10 -0
- package/presets/claude/ios-swift/hooks/chain-team-phases.sh +382 -0
- package/presets/claude/ios-swift/hooks/guard-shell-command.sh +79 -0
- package/presets/claude/ios-swift/mcp.json +12 -0
- package/presets/claude/ios-swift/rules/README.md +25 -14
- package/presets/claude/ios-swift/rules/api-and-data/README.md +2 -1
- package/presets/claude/ios-swift/rules/api-and-data/networking.md +2 -2
- package/presets/claude/ios-swift/rules/api-and-data/persistence.md +30 -0
- package/presets/claude/ios-swift/rules/architecture/README.md +3 -1
- package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +10 -2
- package/presets/claude/ios-swift/rules/architecture/module-public-api.md +25 -0
- package/presets/claude/ios-swift/rules/architecture/reference-features.md +50 -0
- package/presets/claude/ios-swift/rules/stack/ios-app-core.md +2 -1
- package/presets/claude/ios-swift/rules/testing/ui.md +2 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/README.md +6 -1
- package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-intake.md +18 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +47 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/code-review.md +5 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/post-change-build.md +5 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/security-ios.md +36 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/technical-retro.md +14 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/xcode-tooling.md +24 -0
- package/presets/claude/ios-swift/rules/ui-and-accessibility/README.md +2 -1
- package/presets/claude/ios-swift/rules/ui-and-accessibility/navigation.md +28 -0
- package/presets/claude/ios-swift/skills/README.md +13 -0
- package/presets/claude/ios-swift/skills/ci-investigation/SKILL.md +39 -0
- package/presets/claude/ios-swift/skills/code-review/SKILL.md +27 -0
- package/presets/claude/ios-swift/skills/debug-investigation/SKILL.md +30 -0
- package/presets/claude/ios-swift/skills/feature-delivery/SKILL.md +27 -0
- package/presets/claude/ios-swift/skills/technical-retro/SKILL.md +10 -0
- package/presets/claude/ios-swift/skills/unit-testing/SKILL.md +32 -0
- package/presets/claude/ios-swift/skills/xcuitest-e2e/SKILL.md +33 -0
- package/presets/claude/ios-swift/team/README.md +27 -0
- package/presets/claude/ios-swift/team/fixtures/bugfix-standard.json +33 -0
- package/presets/claude/ios-swift/team/fixtures/feature-full.json +48 -0
- package/presets/claude/ios-swift/team/fixtures/feature-light.json +36 -0
- package/presets/claude/next/CLAUDE.md +29 -5
- package/presets/claude/next/MCP.md +16 -0
- package/presets/claude/next/README.md +12 -0
- package/presets/claude/next/agents/README.md +155 -1
- package/presets/claude/next/agents/accessibility-reviewer.md +65 -0
- package/presets/claude/next/agents/api-contract-reviewer.md +69 -0
- package/presets/claude/next/agents/build-verifier.md +64 -0
- package/presets/claude/next/agents/ci-investigator.md +62 -0
- package/presets/claude/next/agents/code-reviewer.md +63 -0
- package/presets/claude/next/agents/debugger.md +63 -0
- package/presets/claude/next/agents/feature-developer.md +27 -0
- package/presets/claude/next/agents/migration-specialist.md +69 -0
- package/presets/claude/next/agents/performance-auditor.md +68 -0
- package/presets/claude/next/agents/qa-tester.md +56 -0
- package/presets/claude/next/agents/security-reviewer.md +64 -0
- package/presets/claude/next/agents/solution-architect.md +70 -0
- package/presets/claude/next/agents/task-analyst.md +111 -0
- package/presets/claude/next/agents/task-router.md +94 -0
- package/presets/claude/next/agents/tech-writer.md +61 -0
- package/presets/claude/next/agents/unit-test-generator.md +37 -0
- package/presets/claude/next/agents/unit-test-healer.md +38 -0
- package/presets/claude/next/agents/unit-test-planner.md +62 -0
- package/presets/claude/next/commands/README.md +10 -2
- package/presets/claude/next/commands/feature-continue.md +51 -0
- package/presets/claude/next/commands/feature-start.md +30 -0
- package/presets/claude/next/commands/task-continue.md +49 -0
- package/presets/claude/next/commands/task.md +50 -0
- package/presets/claude/next/commands/technical-retro.md +58 -0
- package/presets/claude/next/hooks/README.md +5 -2
- package/presets/claude/next/hooks/chain-team-phases.sh +380 -0
- package/presets/claude/next/hooks/guard-shell-command.sh +77 -0
- package/presets/claude/next/mcp.json +20 -0
- package/presets/claude/next/rules/README.md +42 -11
- package/presets/claude/next/rules/api-and-data/README.md +7 -1
- package/presets/claude/next/rules/api-and-data/api-services.md +57 -0
- package/presets/claude/next/rules/api-and-data/http-client.md +40 -0
- package/presets/claude/next/rules/api-and-data/store-rtk.md +65 -0
- package/presets/claude/next/rules/architecture/README.md +11 -2
- package/presets/claude/next/rules/architecture/architecture-boundaries-ui.md +15 -0
- package/presets/claude/next/rules/architecture/architecture-boundaries.md +75 -0
- package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +79 -0
- package/presets/claude/next/rules/architecture/layer-barrel-exports.md +58 -0
- package/presets/claude/next/rules/architecture/public-imports.md +46 -0
- package/presets/claude/next/rules/architecture/reference-features.md +37 -0
- package/presets/claude/next/rules/stack/README.md +10 -1
- package/presets/claude/next/rules/stack/arrow-functions.md +45 -0
- package/presets/claude/next/rules/stack/navigation-router-ui.md +15 -0
- package/presets/claude/next/rules/stack/navigation-router.md +64 -0
- package/presets/claude/next/rules/stack/next-app-core.md +33 -0
- package/presets/claude/next/rules/stack/next-app-router.md +36 -0
- package/presets/claude/next/rules/stack/no-type-assertion.md +59 -0
- package/presets/claude/next/rules/stack/types-jsdoc.md +37 -0
- package/presets/claude/next/rules/testing/README.md +9 -1
- package/presets/claude/next/rules/testing/playwright-agents.md +74 -0
- package/presets/claude/next/rules/testing/tests-e2e-structure.md +52 -0
- package/presets/claude/next/rules/testing/tests-unit.md +66 -0
- package/presets/claude/next/rules/tooling-and-review/README.md +12 -1
- package/presets/claude/next/rules/tooling-and-review/agent-team-intake.md +15 -0
- package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +145 -0
- package/presets/claude/next/rules/tooling-and-review/code-quality.md +42 -0
- package/presets/claude/next/rules/tooling-and-review/code-review-mr.md +30 -0
- package/presets/claude/next/rules/tooling-and-review/package-manager.md +11 -0
- package/presets/claude/next/rules/tooling-and-review/post-change-lint.md +44 -0
- package/presets/claude/next/rules/ui-and-accessibility/README.md +10 -1
- package/presets/claude/next/rules/ui-and-accessibility/css-property-order.md +14 -0
- package/presets/claude/next/rules/ui-and-accessibility/no-props-spread.md +57 -0
- package/presets/claude/next/rules/ui-and-accessibility/react-a11y-coding.md +37 -0
- package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +91 -0
- package/presets/claude/next/skills/README.md +11 -1
- package/presets/claude/next/skills/ci-investigation/SKILL.md +36 -0
- package/presets/claude/next/skills/code-review/SKILL.md +26 -0
- package/presets/claude/next/skills/debug-investigation/SKILL.md +28 -0
- package/presets/claude/next/skills/feature-delivery/SKILL.md +15 -0
- package/presets/claude/next/skills/playwright-e2e/SKILL.md +31 -0
- package/presets/claude/next/skills/technical-retro/SKILL.md +40 -0
- package/presets/claude/next/skills/unit-testing/SKILL.md +32 -0
- package/presets/claude/next/team/README.md +105 -0
- package/presets/claude/next/team/fixtures/bugfix-standard.json +15 -0
- package/presets/claude/next/team/fixtures/feature-full.json +16 -0
- package/presets/claude/next/team/fixtures/feature-light.json +17 -0
- package/presets/claude/next/team/tasks/.gitkeep +1 -0
- package/presets/cursor/ios-swift/AGENTS.md +47 -0
- package/presets/cursor/ios-swift/BUGBOT.md +15 -0
- package/presets/cursor/ios-swift/MCP.md +16 -0
- package/presets/cursor/ios-swift/README.md +27 -7
- package/presets/cursor/ios-swift/agents/README.md +55 -0
- package/presets/cursor/ios-swift/agents/accessibility-reviewer.md +67 -0
- package/presets/cursor/ios-swift/agents/api-contract-reviewer.md +72 -0
- package/presets/cursor/ios-swift/agents/build-verifier.md +64 -0
- package/presets/cursor/ios-swift/agents/ci-investigator.md +73 -0
- package/presets/cursor/ios-swift/agents/code-reviewer.md +75 -0
- package/presets/cursor/ios-swift/agents/debugger.md +72 -0
- package/presets/cursor/ios-swift/agents/feature-developer.md +35 -0
- package/presets/cursor/ios-swift/agents/migration-specialist.md +73 -0
- package/presets/cursor/ios-swift/agents/performance-auditor.md +72 -0
- package/presets/cursor/ios-swift/agents/qa-tester.md +65 -0
- package/presets/cursor/ios-swift/agents/security-reviewer.md +69 -0
- package/presets/cursor/ios-swift/agents/solution-architect.md +17 -0
- package/presets/cursor/ios-swift/agents/task-analyst.md +25 -0
- package/presets/cursor/ios-swift/agents/task-router.md +62 -0
- package/presets/cursor/ios-swift/agents/tech-writer.md +63 -0
- package/presets/cursor/ios-swift/agents/unit-test-generator.md +54 -0
- package/presets/cursor/ios-swift/agents/unit-test-healer.md +53 -0
- package/presets/cursor/ios-swift/agents/unit-test-planner.md +64 -0
- package/presets/cursor/ios-swift/agents/xcuitest-test-generator.md +47 -0
- package/presets/cursor/ios-swift/agents/xcuitest-test-healer.md +47 -0
- package/presets/cursor/ios-swift/agents/xcuitest-test-planner.md +67 -0
- package/presets/cursor/ios-swift/commands/README.md +49 -1
- package/presets/cursor/ios-swift/commands/feature-continue.md +19 -0
- package/presets/cursor/ios-swift/commands/feature-start.md +33 -0
- package/presets/cursor/ios-swift/commands/task-continue.md +49 -0
- package/presets/cursor/ios-swift/commands/task.md +50 -0
- package/presets/cursor/ios-swift/commands/technical-retro.md +81 -0
- package/presets/cursor/ios-swift/hooks/README.md +8 -0
- package/presets/cursor/ios-swift/hooks/chain-team-phases.sh +382 -0
- package/presets/cursor/ios-swift/hooks/guard-shell-command.sh +79 -0
- package/presets/cursor/ios-swift/hooks.json +17 -0
- package/presets/cursor/ios-swift/mcp.json +11 -0
- package/presets/cursor/ios-swift/rules/README.md +45 -13
- package/presets/cursor/ios-swift/rules/agent-team-intake.mdc +16 -0
- package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +85 -0
- package/presets/cursor/ios-swift/rules/code-review-mr.mdc +1 -0
- package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +1 -1
- package/presets/cursor/ios-swift/rules/ios-app-core.mdc +2 -1
- package/presets/cursor/ios-swift/rules/module-public-api.mdc +26 -0
- package/presets/cursor/ios-swift/rules/navigation-coordinators.mdc +29 -0
- package/presets/cursor/ios-swift/rules/networking-services.mdc +2 -2
- package/presets/cursor/ios-swift/rules/persistence-data.mdc +31 -0
- package/presets/cursor/ios-swift/rules/reference-features.mdc +53 -0
- package/presets/cursor/ios-swift/rules/security-ios.mdc +35 -0
- package/presets/cursor/ios-swift/rules/technical-retro.mdc +12 -0
- package/presets/cursor/ios-swift/rules/tests-ui.mdc +1 -0
- package/presets/cursor/ios-swift/rules/xcode-tooling.mdc +20 -0
- package/presets/cursor/ios-swift/skills/README.md +13 -0
- package/presets/cursor/ios-swift/skills/ci-investigation/SKILL.md +39 -0
- package/presets/cursor/ios-swift/skills/code-review/SKILL.md +27 -0
- package/presets/cursor/ios-swift/skills/debug-investigation/SKILL.md +30 -0
- package/presets/cursor/ios-swift/skills/feature-delivery/SKILL.md +27 -0
- package/presets/cursor/ios-swift/skills/technical-retro/SKILL.md +10 -0
- package/presets/cursor/ios-swift/skills/unit-testing/SKILL.md +32 -0
- package/presets/cursor/ios-swift/skills/xcuitest-e2e/SKILL.md +33 -0
- package/presets/cursor/ios-swift/team/README.md +31 -0
- package/presets/cursor/ios-swift/team/fixtures/bugfix-standard.json +33 -0
- package/presets/cursor/ios-swift/team/fixtures/feature-full.json +48 -0
- package/presets/cursor/ios-swift/team/fixtures/feature-light.json +36 -0
- package/presets/cursor/next/AGENTS.md +36 -0
- package/presets/cursor/next/BUGBOT.md +14 -0
- package/presets/cursor/next/MCP.md +16 -0
- package/presets/cursor/next/agents/README.md +165 -0
- package/presets/cursor/next/agents/accessibility-reviewer.md +67 -0
- package/presets/cursor/next/agents/api-contract-reviewer.md +71 -0
- package/presets/cursor/next/agents/build-verifier.md +66 -0
- package/presets/cursor/next/agents/ci-investigator.md +64 -0
- package/presets/cursor/next/agents/code-reviewer.md +64 -0
- package/presets/cursor/next/agents/debugger.md +64 -0
- package/presets/cursor/next/agents/feature-developer.md +28 -0
- package/presets/cursor/next/agents/migration-specialist.md +71 -0
- package/presets/cursor/next/agents/performance-auditor.md +70 -0
- package/presets/cursor/next/agents/playwright-test-generator.md +27 -0
- package/presets/cursor/next/agents/playwright-test-healer.md +27 -0
- package/presets/cursor/next/agents/playwright-test-planner.md +28 -0
- package/presets/cursor/next/agents/qa-tester.md +58 -0
- package/presets/cursor/next/agents/security-reviewer.md +66 -0
- package/presets/cursor/next/agents/solution-architect.md +71 -0
- package/presets/cursor/next/agents/task-analyst.md +112 -0
- package/presets/cursor/next/agents/task-router.md +95 -0
- package/presets/cursor/next/agents/tech-writer.md +62 -0
- package/presets/cursor/next/agents/unit-test-generator.md +39 -0
- package/presets/cursor/next/agents/unit-test-healer.md +40 -0
- package/presets/cursor/next/agents/unit-test-planner.md +64 -0
- package/presets/cursor/next/commands/README.md +49 -1
- package/presets/cursor/next/commands/feature-continue.md +19 -0
- package/presets/cursor/next/commands/feature-start.md +33 -0
- package/presets/cursor/next/commands/task-continue.md +49 -0
- package/presets/cursor/next/commands/task.md +50 -0
- package/presets/cursor/next/commands/technical-retro.md +81 -0
- package/presets/cursor/next/hooks/README.md +8 -0
- package/presets/cursor/next/hooks/chain-team-phases.sh +380 -0
- package/presets/cursor/next/hooks/guard-shell-command.sh +77 -0
- package/presets/cursor/next/hooks.json +17 -0
- package/presets/cursor/next/mcp.json +19 -0
- package/presets/cursor/next/rules/README.md +67 -0
- package/presets/cursor/next/rules/agent-team-intake.mdc +14 -0
- package/presets/cursor/next/rules/agent-team-orchestrator.mdc +147 -0
- package/presets/cursor/next/rules/api-services.mdc +12 -10
- package/presets/cursor/next/rules/architecture-boundaries-ui.mdc +15 -0
- package/presets/cursor/next/rules/architecture-boundaries.mdc +31 -12
- package/presets/cursor/next/rules/arrow-functions.mdc +46 -0
- package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +5 -4
- package/presets/cursor/next/rules/code-review-mr.mdc +21 -40
- package/presets/cursor/next/rules/css-property-order-stylelint.mdc +16 -0
- package/presets/cursor/next/rules/feature-delivery-workflow.mdc +76 -0
- package/presets/cursor/next/rules/http-client.mdc +42 -0
- package/presets/cursor/next/rules/layer-barrel-exports.mdc +59 -0
- package/presets/cursor/next/rules/navigation-router-stack.mdc +62 -0
- package/presets/cursor/next/rules/navigation-router-ui.mdc +16 -0
- package/presets/cursor/next/rules/next-app-core.mdc +18 -61
- package/presets/cursor/next/rules/next-app-router.mdc +36 -0
- package/presets/cursor/next/rules/no-props-spread.mdc +27 -4
- package/presets/cursor/next/rules/no-type-assertion-as-import-export.mdc +60 -0
- package/presets/cursor/next/rules/package-manager.mdc +16 -0
- package/presets/cursor/next/rules/playwright-agents.mdc +2 -1
- package/presets/cursor/next/rules/post-change-lint.mdc +40 -0
- package/presets/cursor/next/rules/public-imports.mdc +48 -0
- package/presets/cursor/next/rules/react-a11y-coding.mdc +37 -0
- package/presets/cursor/next/rules/react-ui.mdc +33 -3
- package/presets/cursor/next/rules/reference-features.mdc +39 -0
- package/presets/cursor/next/rules/store-rtk.mdc +13 -6
- package/presets/cursor/next/rules/technical-retro.mdc +12 -0
- package/presets/cursor/next/rules/tests-unit.mdc +30 -10
- package/presets/cursor/next/rules/types-jsdoc.mdc +42 -0
- package/presets/cursor/next/skills/README.md +15 -0
- package/presets/cursor/next/skills/ci-investigation/SKILL.md +36 -0
- package/presets/cursor/next/skills/code-review/SKILL.md +26 -0
- package/presets/cursor/next/skills/debug-investigation/SKILL.md +28 -0
- package/presets/cursor/next/skills/feature-delivery/SKILL.md +15 -0
- package/presets/cursor/next/skills/playwright-e2e/SKILL.md +31 -0
- package/presets/cursor/next/skills/technical-retro/SKILL.md +40 -0
- package/presets/cursor/next/skills/unit-testing/SKILL.md +32 -0
- package/presets/cursor/next/team/README.md +109 -0
- package/presets/cursor/next/team/fixtures/bugfix-standard.json +15 -0
- package/presets/cursor/next/team/fixtures/feature-full.json +16 -0
- package/presets/cursor/next/team/fixtures/feature-light.json +17 -0
- package/presets/cursor/next/team/tasks/.gitkeep +0 -0
|
@@ -2,26 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
Краткая точка входа для Claude Code. Подробные правила — модульные topic `.md` под `rules/` (derived из Cursor SoT).
|
|
4
4
|
|
|
5
|
-
See @rules/README.md for
|
|
6
|
-
|
|
7
|
-
## Where to look
|
|
8
|
-
|
|
9
|
-
| Area | Folder |
|
|
10
|
-
|------|--------|
|
|
11
|
-
| Stack / conventions | @rules/stack/ |
|
|
12
|
-
| Architecture / feature delivery | @rules/architecture/ |
|
|
13
|
-
| Networking / data | @rules/api-and-data/ |
|
|
14
|
-
| SwiftUI / ViewModels | @rules/ui-and-accessibility/ |
|
|
15
|
-
| Tests | @rules/testing/ |
|
|
16
|
-
| Quality / review / build | @rules/tooling-and-review/ |
|
|
5
|
+
See @rules/README.md for mapping and loading strategy.
|
|
17
6
|
|
|
18
7
|
## Conventions
|
|
19
8
|
|
|
20
|
-
- Одна тема на файл; path scope — frontmatter `paths
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
9
|
+
- Одна тема на файл; path scope — frontmatter `paths:`.
|
|
10
|
+
- **Session-start rules** (без `paths:`) — ровно **три**: `ios-app-core`, `boundaries`, `code-quality`.
|
|
11
|
+
- Requestable / paths: orchestrator, intake, feature-delivery, code-review, post-change-build, xcode-tooling, reference-features, security-ios, technical-retro, domain globs.
|
|
12
|
+
- Slash-команды — `commands/`; skills — `skills/`; subagents — `agents/`.
|
|
13
|
+
|
|
14
|
+
## Quick start
|
|
15
|
+
|
|
16
|
+
| Задача | Куда смотреть |
|
|
17
|
+
|--------|----------------|
|
|
18
|
+
| Work-задача | `commands/task.md` + `tooling-and-review/agent-team-orchestrator.md` |
|
|
19
|
+
| Фича end-to-end | skill `feature-delivery` + `architecture/feature-delivery.md` |
|
|
20
|
+
| Эталоны Feature | `architecture/reference-features.md` (примеры `Features/Orders/…`) |
|
|
21
|
+
| Стек | `stack/ios-app-core.md` |
|
|
22
|
+
| Toolchain | `tooling-and-review/xcode-tooling.md` |
|
|
23
|
+
| После правок Swift | `tooling-and-review/post-change-build.md` (requestable, обязателен) |
|
|
24
|
+
| UI-тесты | skill `xcuitest-e2e` |
|
|
25
|
+
| Security | `tooling-and-review/security-ios.md` |
|
|
26
|
+
| Валидация | agent `build-verifier` |
|
|
27
|
+
| Ретро | `commands/technical-retro.md` |
|
|
28
|
+
|
|
29
|
+
## Install
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx @bonesofspring/ai-rules init claude --preset ios-swift
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Копирует `CLAUDE.md`, `rules/**`, `commands/**`, `agents/**`, `skills/**`, `hooks/**`, `team/**`, `MCP.md` в `.claude/`, плюс `mcp.json` → **`.mcp.json`** в корне.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# MCP (preset `ios-swift`, Claude Code)
|
|
2
|
+
|
|
3
|
+
Копируется в **корень проекта** как `.mcp.json` при `ai-rules init claude --preset ios-swift`.
|
|
4
|
+
|
|
5
|
+
## Servers
|
|
6
|
+
|
|
7
|
+
| Name | Package | Зачем |
|
|
8
|
+
|------|---------|--------|
|
|
9
|
+
| `context7` | `@upstash/context7-mcp` | Актуальная документация Swift / SwiftUI / Apple frameworks |
|
|
10
|
+
| `figma` | remote `https://mcp.figma.com/mcp` | Design context → SwiftUI; OAuth при первом подключении |
|
|
11
|
+
|
|
12
|
+
Playwright / Chrome DevTools не входят в ios-пресет.
|
|
13
|
+
|
|
14
|
+
Секреты не коммитим. Опционально: `CONTEXT7_API_KEY`. Figma — OAuth. Approve project MCP через `/mcp`.
|
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
# Preset `ios-swift` (Claude Code)
|
|
2
2
|
|
|
3
|
-
Правила для Swift
|
|
3
|
+
Правила и agent-team surface для Swift / SwiftUI / XCTest / XCUITest.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Структура: topic folders под `rules/` + agents/skills/commands/hooks/team (как next Claude).
|
|
6
6
|
|
|
7
7
|
| В пресете | Куда копирует `ai-rules init claude --preset ios-swift` |
|
|
8
8
|
|-----------|---------------------------------------------------------|
|
|
9
|
-
| `CLAUDE.md` | `.claude/CLAUDE.md`
|
|
10
|
-
| `rules/**` | `.claude/rules/**`
|
|
9
|
+
| `CLAUDE.md` | `.claude/CLAUDE.md` |
|
|
10
|
+
| `rules/**` | `.claude/rules/**` |
|
|
11
11
|
| `commands/**` | `.claude/commands/**` |
|
|
12
|
-
| `skills/**` | `.claude/skills/**` (
|
|
13
|
-
| `agents/**` | `.claude/agents/**` (
|
|
14
|
-
| `hooks/**` | `.claude/hooks/**` (
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
| `skills/**` | `.claude/skills/**` (**7**, в т.ч. `xcuitest-e2e`) |
|
|
13
|
+
| `agents/**` | `.claude/agents/**` (**21**, XCUITest trio) |
|
|
14
|
+
| `hooks/**` | `.claude/hooks/**` (scripts + README; **нет** `hooks.json`) |
|
|
15
|
+
| `team/**` | `.claude/team/**` |
|
|
16
|
+
| `mcp.json` | **`.mcp.json`** в корне (Context7 + Figma) |
|
|
17
|
+
| `MCP.md` | `.claude/MCP.md` |
|
|
17
18
|
|
|
18
19
|
```bash
|
|
19
20
|
npx @bonesofspring/ai-rules init claude --preset ios-swift
|
|
20
21
|
```
|
|
21
22
|
|
|
22
|
-
##
|
|
23
|
+
## Session-start (= Cursor alwaysApply)
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- **Entry index:** [`CLAUDE.md`](./CLAUDE.md) (thin — no second long-form SoT)
|
|
25
|
+
Ровно **3** файла без `paths:`: `stack/ios-app-core.md`, `architecture/boundaries.md`, `tooling-and-review/code-quality.md`. Бюджет тела ≤120 строк суммарно.
|
|
26
|
+
|
|
27
|
+
## Parity with Cursor
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
- **SoT:** `presets/cursor/ios-swift/`
|
|
30
|
+
- Change Cursor → update Claude twin **same PR**
|
|
31
|
+
- Mapping: [`rules/README.md`](./rules/README.md)
|
|
32
|
+
- **`BUGBOT.md`:** Cursor-only (нет twin); review в Claude — skill `code-review` + `tooling-and-review/code-review.md`
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# `.claude/agents` (preset ios-swift)
|
|
2
|
+
|
|
3
|
+
Ролевые subagents для командного пайплайна Cursor (iOS / Swift / SwiftUI).
|
|
4
|
+
|
|
5
|
+
## next → ios-swift rename map
|
|
6
|
+
|
|
7
|
+
| next stem | ios-swift stem |
|
|
8
|
+
|-----------|----------------|
|
|
9
|
+
| `task-router` … `unit-test-healer` (same names) | unchanged |
|
|
10
|
+
| `playwright-test-planner` | **`xcuitest-test-planner`** |
|
|
11
|
+
| `playwright-test-generator` | **`xcuitest-test-generator`** |
|
|
12
|
+
| `playwright-test-healer` | **`xcuitest-test-healer`** |
|
|
13
|
+
|
|
14
|
+
When copying next pipeline templates: put Playwright stems in `skipped` with reason «iOS uses XCUITest» and schedule xcuitest trio instead.
|
|
15
|
+
|
|
16
|
+
## Roster (21)
|
|
17
|
+
|
|
18
|
+
| Agent | Production-код |
|
|
19
|
+
|-------|----------------|
|
|
20
|
+
| task-router, task-analyst, solution-architect, migration-specialist, api-contract-reviewer | no |
|
|
21
|
+
| feature-developer | yes |
|
|
22
|
+
| build-verifier | no |
|
|
23
|
+
| debugger, ci-investigator | minimal |
|
|
24
|
+
| code-reviewer, accessibility-reviewer, security-reviewer, performance-auditor | no |
|
|
25
|
+
| qa-tester, unit-test-*, xcuitest-test-* | tests only |
|
|
26
|
+
| tech-writer | docs only |
|
|
27
|
+
|
|
28
|
+
## Frontmatter `readonly`
|
|
29
|
+
|
|
30
|
+
Все agents — **`readonly: false`** (нужна запись в `.claude/team/**`). Ограничения production — в теле промпта.
|
|
31
|
+
|
|
32
|
+
## Pipeline routing
|
|
33
|
+
|
|
34
|
+
**SoT:** intent table / profiles — **`task-router.md`**. Schema — ниже (same as next).
|
|
35
|
+
|
|
36
|
+
### pipeline.json (minimal)
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"slug": "<slug>",
|
|
41
|
+
"intent": "feature",
|
|
42
|
+
"summary": "One-line",
|
|
43
|
+
"steps": [
|
|
44
|
+
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
45
|
+
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
46
|
+
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke" },
|
|
47
|
+
{ "agent": "code-reviewer", "label": "Code review" }
|
|
48
|
+
],
|
|
49
|
+
"humanGates": ["after:task-analyst"],
|
|
50
|
+
"autoChain": true,
|
|
51
|
+
"skipped": []
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Копируется в `.claude/agents/` при `ai-rules init claude --preset ios-swift`.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: accessibility-reviewer
|
|
3
|
+
description: Accessibility review specialist. Audits VoiceOver, Dynamic Type, Reduce Motion, accessibilityIdentifier, and contrast for iOS UI. Readonly — writes a11y-review.md only; never edits production code.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are an accessibility reviewer for an **iOS SwiftUI / UIKit** frontend.
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
1. `.claude/team/tasks/<slug>/brief.md` — acceptance criteria and UI scope.
|
|
13
|
+
2. `.claude/team/tasks/<slug>/decomposition.md` — UI-related tasks.
|
|
14
|
+
3. Git diff for changed Views / UI under `Features/**/Presentation/**` (and DesignSystem if touched).
|
|
15
|
+
4. `ui-and-accessibility/swiftui.md` and project a11y conventions.
|
|
16
|
+
|
|
17
|
+
## Review scope
|
|
18
|
+
|
|
19
|
+
- VoiceOver: labels, traits, hints; meaningful accessibility elements (not unlabeled buttons/icons).
|
|
20
|
+
- Dynamic Type: text scales; layouts do not clip or overlap at larger sizes (infer from modifiers / fonts).
|
|
21
|
+
- Reduce Motion / prefersReducedMotion handling for custom animations when present.
|
|
22
|
+
- `accessibilityIdentifier` on interactive / assertable elements for XCUITest (`{screen}__{element}`).
|
|
23
|
+
- Contrast and non-color-only state (where inferable from Design System / asset usage).
|
|
24
|
+
- Focus / rotor order for custom controls; hit targets roughly ≥44pt when obvious from layout.
|
|
25
|
+
- Sheet/modal dismissal discoverability for VoiceOver users.
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
|
|
29
|
+
Write `.claude/team/tasks/<slug>/a11y-review.md`:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Accessibility review: <slug>
|
|
33
|
+
|
|
34
|
+
## Verdict
|
|
35
|
+
PASS | PASS_WITH_NOTES | FAIL
|
|
36
|
+
|
|
37
|
+
## Critical (must fix)
|
|
38
|
+
- [file:line] Issue — impact — fix direction
|
|
39
|
+
|
|
40
|
+
## Warnings (should fix)
|
|
41
|
+
- ...
|
|
42
|
+
|
|
43
|
+
## Suggestions
|
|
44
|
+
- ...
|
|
45
|
+
|
|
46
|
+
## AC coverage
|
|
47
|
+
| Criterion | Status | Notes |
|
|
48
|
+
|-----------|--------|-------|
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## On completion
|
|
52
|
+
|
|
53
|
+
Update `status.json`:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"slug": "<slug>",
|
|
58
|
+
"currentAgent": "accessibility-reviewer",
|
|
59
|
+
"phase": "executing",
|
|
60
|
+
"state": "completed",
|
|
61
|
+
"updatedAt": "<ISO8601>"
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If **FAIL**, set `"state": "changes_requested"` and list specific fixes for `feature-developer`.
|
|
66
|
+
|
|
67
|
+
Do not modify production code or tests.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-contract-reviewer
|
|
3
|
+
description: API contract review specialist. Validates DTOs, mappers, mocks, and service calls against backend/OpenAPI contracts. Readonly — writes api-contract-review.md only; never edits production code.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are an API contract reviewer for a layered **iOS** Feature module (Domain / Data / Presentation).
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
1. `.claude/team/tasks/<slug>/brief.md`, `decomposition.md`, `architecture.md` if present.
|
|
13
|
+
2. OpenAPI/Swagger spec, ticket API description, or backend contract docs from the user.
|
|
14
|
+
3. Changed files: DTO models, mappers, API clients/services, mocks/fixtures under Data (and Domain entities).
|
|
15
|
+
|
|
16
|
+
Apply `api-and-data/networking.md`, `architecture/boundaries.md`, `architecture/module-public-api.md` as relevant.
|
|
17
|
+
|
|
18
|
+
## Review scope
|
|
19
|
+
|
|
20
|
+
- DTO field names, types, nullability / optionality vs contract.
|
|
21
|
+
- Request/response mappers — no silent data loss or wrong defaults.
|
|
22
|
+
- Enum / status values aligned with backend.
|
|
23
|
+
- Mock/fixture JSON shape matches production DTOs.
|
|
24
|
+
- Public module exports for new types when using SPM Feature modules.
|
|
25
|
+
- Error response shapes and HTTP status handling in clients.
|
|
26
|
+
- Domain models must not leak transport DTOs into Presentation.
|
|
27
|
+
|
|
28
|
+
## Output
|
|
29
|
+
|
|
30
|
+
Write `.claude/team/tasks/<slug>/api-contract-review.md`:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# API contract review: <slug>
|
|
34
|
+
|
|
35
|
+
## Verdict
|
|
36
|
+
ALIGNED | ALIGNED_WITH_NOTES | MISALIGNED
|
|
37
|
+
|
|
38
|
+
## Contract source
|
|
39
|
+
Link or path to spec/ticket.
|
|
40
|
+
|
|
41
|
+
## Mismatches
|
|
42
|
+
### Critical
|
|
43
|
+
- Field/type/endpoint — expected vs actual — file
|
|
44
|
+
|
|
45
|
+
### Warnings
|
|
46
|
+
- ...
|
|
47
|
+
|
|
48
|
+
## Mapper coverage
|
|
49
|
+
| Endpoint | Mapper | Status |
|
|
50
|
+
|----------|--------|--------|
|
|
51
|
+
|
|
52
|
+
## Recommendations
|
|
53
|
+
For feature-developer before or during implementation.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## On completion
|
|
57
|
+
|
|
58
|
+
Update `status.json`:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"slug": "<slug>",
|
|
63
|
+
"currentAgent": "api-contract-reviewer",
|
|
64
|
+
"phase": "executing",
|
|
65
|
+
"state": "completed",
|
|
66
|
+
"updatedAt": "<ISO8601>"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
If **MISALIGNED**, set `"state": "changes_requested"` when blocking implementation.
|
|
71
|
+
|
|
72
|
+
Do not modify production code.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-verifier
|
|
3
|
+
description: Validation gate specialist. Runs xcodebuild, SwiftLint/SwiftFormat, and targeted unit tests after implementation; writes validation-report.md. Never fixes app source. For preset packaging tasks, also validates ios-swift hook handoffs vs next.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: fast
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You **validate** iOS implementation quality — do not edit production code or tests.
|
|
9
|
+
|
|
10
|
+
**SSOT for full validation:** use `tooling-and-review/xcode-tooling.md` + `tooling-and-review/post-change-build.md`. Run full scheme build / lint as in CI even if developer ran scoped checks.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
1. `.claude/team/tasks/<slug>/brief.md` and `decomposition.md`.
|
|
15
|
+
2. `.claude/team/tasks/<slug>/pipeline.json` — step context and `scope`.
|
|
16
|
+
3. Git diff / changed files (Swift targets or preset paths).
|
|
17
|
+
|
|
18
|
+
## App / Feature validation (default)
|
|
19
|
+
|
|
20
|
+
1. Resolve scheme/workspace via `tooling-and-review/xcode-tooling.md`.
|
|
21
|
+
2. `xcodebuild` (or `swift build` for SPM-only) for affected targets.
|
|
22
|
+
3. SwiftLint / SwiftFormat if configs exist.
|
|
23
|
+
4. Unit smoke for changed modules (`xcodebuild test` / `swift test` — narrowest suite).
|
|
24
|
+
|
|
25
|
+
Never require yarn/`lint:js`/Playwright for iOS app work.
|
|
26
|
+
|
|
27
|
+
## Preset-structure validation (when scope is preset / packages/ai-rules)
|
|
28
|
+
|
|
29
|
+
When validating **ios-swift preset** changes (or `scope: preset-structure-validation`), **also** run these checks and **FAIL** on any mismatch:
|
|
30
|
+
|
|
31
|
+
1. **Chain fork check:** `hooks/chain-team-phases.sh` must **not** be byte-identical to `presets/cursor/next/hooks/chain-team-phases.sh` (Claude: vs `presets/claude/next/hooks/…`).
|
|
32
|
+
2. **Forbidden handoff strings** in ios-swift `chain-team-phases.sh` (Cursor + Claude): `playwright-test-`, `playwright-agents`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`, and positive yarn lint recipes (`lint:js` / `lint:css` as commands to run — negation prose alone is not enough; prefer zero occurrences).
|
|
33
|
+
3. **Required handoff stems:** `AGENT_HANDOFF` must include `xcuitest-test-planner` (or generator/healer) and `build-verifier` text must mention `xcodebuild` or `post-change-build` / `xcode-tooling`.
|
|
34
|
+
4. **Roster:** 21 agent stems; no `playwright-test-*` files under ios-swift `agents/`.
|
|
35
|
+
5. **Token budget:** Cursor `alwaysApply: true` count ≤ 3; Claude rules without `paths:` === 3.
|
|
36
|
+
|
|
37
|
+
### Soft rules (do not FAIL alone)
|
|
38
|
+
|
|
39
|
+
- **AC-19 thin aliases:** `agent-team-intake` and similar thin requestable aliases may be <15 body lines if they mirror next’s thin-alias pattern. Enforce ≥15 strictly on **domain** rules (navigation, persistence, security, modules, networking, UI).
|
|
40
|
+
|
|
41
|
+
## Output
|
|
42
|
+
|
|
43
|
+
Write `.claude/team/tasks/<slug>/validation-report.md`:
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
# Validation: <slug>
|
|
47
|
+
|
|
48
|
+
## Verdict
|
|
49
|
+
PASS | FAIL
|
|
50
|
+
|
|
51
|
+
## Commands run
|
|
52
|
+
| Command | Exit | Notes |
|
|
53
|
+
|---------|------|-------|
|
|
54
|
+
|
|
55
|
+
## Failures (if FAIL)
|
|
56
|
+
- ...
|
|
57
|
+
|
|
58
|
+
## Changed files validated
|
|
59
|
+
- ...
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## On completion
|
|
63
|
+
|
|
64
|
+
Update `status.json`: `currentAgent: build-verifier`, `state: completed` (or `validation_failed` on FAIL). Do not fix code — report only.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ci-investigator
|
|
3
|
+
description: CI failure investigator. Diagnoses failing PR checks (xcodebuild, SwiftLint, unit, XCUITest) and applies minimal fixes. Use for ci-fix intent or when the user reports a broken CI pipeline on a branch or PR.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a CI failure investigator for an **iOS Swift** project (Xcode Cloud, GitHub Actions iOS, or similar).
|
|
9
|
+
|
|
10
|
+
Use the **`ci-investigation` skill** for the investigation loop.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
1. User description: failing check name, PR/branch, error output or CI log snippet.
|
|
15
|
+
2. `.claude/team/tasks/<slug>/pipeline.json` and `brief.md` if present.
|
|
16
|
+
3. Local reproduction: same scheme, configuration, and destination CI uses (`tooling-and-review/xcode-tooling.md`).
|
|
17
|
+
|
|
18
|
+
## Process
|
|
19
|
+
|
|
20
|
+
1. Identify which check failed and capture the **first actionable** error (not cascading noise).
|
|
21
|
+
2. Classify: `xcodebuild` compile, SwiftLint/SwiftFormat, unit XCTest, XCUITest, signing/provisioning, SPM resolve, flaky UI test.
|
|
22
|
+
3. Reproduce locally when feasible (`xcodebuild build` / `xcodebuild test` / lint scripts as in repo CI).
|
|
23
|
+
4. Inspect changed files in the git diff related to the failure.
|
|
24
|
+
5. Apply **minimal** fix — do not refactor unrelated code.
|
|
25
|
+
6. Document in `.claude/team/tasks/<slug>/ci-report.md`:
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
# CI report: <slug>
|
|
29
|
+
|
|
30
|
+
## Failed check
|
|
31
|
+
...
|
|
32
|
+
|
|
33
|
+
## Root cause
|
|
34
|
+
...
|
|
35
|
+
|
|
36
|
+
## Evidence
|
|
37
|
+
Log excerpt / local reproduction...
|
|
38
|
+
|
|
39
|
+
## Fix applied
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
resolved: true | false
|
|
43
|
+
|
|
44
|
+
## Validation
|
|
45
|
+
Commands run and results.
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## When to hand off
|
|
49
|
+
|
|
50
|
+
- Feature work beyond CI scope → document in `ci-report.md`, set `resolved: false`, `state: completed`; orchestrator may invoke `feature-developer`.
|
|
51
|
+
- Flaky XCUITest after root cause identified → prefer `xcuitest-test-healer`.
|
|
52
|
+
- Investigation-only request → stop after report without code changes.
|
|
53
|
+
|
|
54
|
+
## Stack constraints
|
|
55
|
+
|
|
56
|
+
- Do **not** run `yarn`, `lint:js`, Playwright, or Next.js scripts.
|
|
57
|
+
- Prefer schemes/destinations documented in `tooling-and-review/xcode-tooling.md`.
|
|
58
|
+
|
|
59
|
+
## On completion
|
|
60
|
+
|
|
61
|
+
Update `status.json`:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"slug": "<slug>",
|
|
66
|
+
"currentAgent": "ci-investigator",
|
|
67
|
+
"phase": "executing",
|
|
68
|
+
"state": "completed",
|
|
69
|
+
"updatedAt": "<ISO8601>"
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Provide summary: failed check, root cause, files changed, validation commands run, `resolved`.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-reviewer
|
|
3
|
+
description: Expert code review specialist for iOS. Reviews after feature development using code-review-mr checklist. Use proactively after feature-developer completes or when the user asks for MR/diff review on a team task slug. Writes only review artifacts/status; never edits production code.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: fast
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a senior iOS / Swift / SwiftUI code reviewer. You may write only review artifacts under `.claude/team/**` and update task `status.json`; do not modify production code.
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
1. `.claude/team/tasks/<slug>/brief.md` — verify implementation matches acceptance criteria.
|
|
13
|
+
2. `.claude/team/tasks/<slug>/decomposition.md` — check coverage of planned tasks.
|
|
14
|
+
3. Git diff for changed files (`git diff`, `git status`).
|
|
15
|
+
4. `.claude/team/tasks/<slug>/validation-report.md` if `build-verifier` already ran.
|
|
16
|
+
|
|
17
|
+
Apply the **`code-review` skill** and `tooling-and-review/code-review.md` checklist. Also weigh `architecture/boundaries.md`, `stack/swift-conventions.md`, `ui-and-accessibility/swiftui.md`, `api-and-data/networking.md`, `testing/unit.md`, `testing/ui.md`.
|
|
18
|
+
|
|
19
|
+
## Review focus (iOS)
|
|
20
|
+
|
|
21
|
+
- **Layers:** View does not call API / know DTO; ViewModel does not depend on Data implementations; Domain has no SwiftUI/UIKit; Data does not pull Presentation.
|
|
22
|
+
- **DI / modules:** composition root in `App/`; protocol-based dependencies; no deep-imports across Features; SPM public API when relevant (`architecture/module-public-api.md`).
|
|
23
|
+
- **Swift concurrency:** `@MainActor` on UI surfaces; typed errors; no unjustified force unwrap; Task cancellation where needed (`stack/swift-conventions.md`).
|
|
24
|
+
- **SwiftUI:** thin Views; Design System tokens; `accessibilityIdentifier` on interactive elements (`ui-and-accessibility/swiftui.md`).
|
|
25
|
+
- **Networking / Data:** DTO vs domain separation; mappers cover nil/empty edges (`api-and-data/networking.md`).
|
|
26
|
+
- **Security-sensitive diffs:** Keychain, tokens, ATS — flag and defer detail to `security-reviewer` when needed (`tooling-and-review/security-ios.md`).
|
|
27
|
+
|
|
28
|
+
## Tests gate
|
|
29
|
+
|
|
30
|
+
- If diff changes mappers, use cases, ViewModels, or domain logic **without** new/updated `*Tests` coverage → **REQUEST_CHANGES** unless task scope explicitly excludes tests.
|
|
31
|
+
- If `validation-report.md` exists and verdict is FAIL → **REQUEST_CHANGES** (developer must fix before review passes).
|
|
32
|
+
- User-flow changes without XCUITest plan/spec updates → note in warnings; REQUEST_CHANGES when AC requires UI tests.
|
|
33
|
+
- Never expect Playwright, Jest, `app/src`, or `yarn lint` — this is an Xcode / Swift stack.
|
|
34
|
+
|
|
35
|
+
## Review artifact
|
|
36
|
+
|
|
37
|
+
Write `.claude/team/tasks/<slug>/review.md` with this format:
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
# Code review: <slug>
|
|
41
|
+
|
|
42
|
+
## Verdict
|
|
43
|
+
APPROVE | APPROVE_WITH_NOTES | REQUEST_CHANGES
|
|
44
|
+
|
|
45
|
+
## Critical (must fix)
|
|
46
|
+
- ...
|
|
47
|
+
|
|
48
|
+
## Warnings (should fix)
|
|
49
|
+
- ...
|
|
50
|
+
|
|
51
|
+
## Suggestions (nice to have)
|
|
52
|
+
- ...
|
|
53
|
+
|
|
54
|
+
## AC coverage
|
|
55
|
+
| Criterion | Status | Notes |
|
|
56
|
+
|-----------|--------|-------|
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## On completion
|
|
60
|
+
|
|
61
|
+
Update `status.json`:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"slug": "<slug>",
|
|
66
|
+
"currentAgent": "code-reviewer",
|
|
67
|
+
"phase": "executing",
|
|
68
|
+
"state": "completed",
|
|
69
|
+
"updatedAt": "<ISO8601>"
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If **REQUEST_CHANGES**, set `"state": "changes_requested"` (hook will re-invoke feature-developer).
|
|
74
|
+
|
|
75
|
+
Do not mix this output with retrospective facilitation — keep review and retro separate.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugger
|
|
3
|
+
description: Debugging specialist for errors, test failures, and unexpected behavior. Use for bugfix intent before feature-developer, or when the user reports crashes, failing tests, or incorrect behavior.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are an expert debugger for an **iOS Swift/SwiftUI** app. Use the **`debug-investigation` skill** for the investigation loop.
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
1. `.claude/team/tasks/<slug>/brief.md` if present; else the user task description.
|
|
13
|
+
2. `.claude/team/tasks/<slug>/pipeline.json` for context.
|
|
14
|
+
3. Error messages, stack traces, crash logs, failing XCTest/XCUITest output, or reproduction steps from the user.
|
|
15
|
+
|
|
16
|
+
## Process
|
|
17
|
+
|
|
18
|
+
1. Capture symptom: crash, assertion, wrong UI state, network failure, flaky test — plus stack / console excerpt.
|
|
19
|
+
2. Prefer **runtime evidence** before coding: Xcode console, lldb, Instruments (Time Profiler / Allocations when relevant), XCTest/XCUITest logs, `os_log` / Logger output.
|
|
20
|
+
3. Inspect relevant Feature layers (Presentation / Domain / Data) via Read/Grep — do not guess.
|
|
21
|
+
4. Form hypothesis; falsify with the smallest check (targeted unit test, breakpoint path, or narrow `xcodebuild test`).
|
|
22
|
+
5. Document root cause in `.claude/team/tasks/<slug>/debug-report.md`:
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
# Debug report: <slug>
|
|
26
|
+
|
|
27
|
+
## Symptoms
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
## Root cause
|
|
31
|
+
...
|
|
32
|
+
|
|
33
|
+
## Evidence
|
|
34
|
+
Xcode console / lldb / test log / Instruments note...
|
|
35
|
+
|
|
36
|
+
## Recommended fix
|
|
37
|
+
...
|
|
38
|
+
|
|
39
|
+
## Fix applied
|
|
40
|
+
false
|
|
41
|
+
|
|
42
|
+
fixApplied: false
|
|
43
|
+
|
|
44
|
+
## Files to change
|
|
45
|
+
- Features/<Name>/... — ...
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
6. If fix is trivial and clearly scoped, you **may** apply the minimal fix and set `fixApplied: true` in the report. Otherwise leave implementation to **feature-developer** with `fixApplied: false`.
|
|
49
|
+
7. Prefer adding/updating a failing XCTest as a regression guard when the bug is domain/VM logic.
|
|
50
|
+
|
|
51
|
+
## Stack constraints
|
|
52
|
+
|
|
53
|
+
- No Playwright, browser MCP, `app/src`, or yarn/npm scripts.
|
|
54
|
+
- Reproduce with schemes/destinations from `tooling-and-review/xcode-tooling.md` when running tests locally.
|
|
55
|
+
|
|
56
|
+
## On completion
|
|
57
|
+
|
|
58
|
+
Update `status.json`:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"slug": "<slug>",
|
|
63
|
+
"currentAgent": "debugger",
|
|
64
|
+
"phase": "executing",
|
|
65
|
+
"state": "completed",
|
|
66
|
+
"updatedAt": "<ISO8601>"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Handoff summary: root cause, recommended fix, files touched (if any), `fixApplied`.
|
|
71
|
+
|
|
72
|
+
Do not perform formal code review or write XCUITest plans — those are separate agents.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-developer
|
|
3
|
+
description: Feature implementation specialist for iOS Swift/SwiftUI. Implements tasks from decomposition.md following feature-delivery workflow. Use after brief approval via /task-continue or /feature-continue, or when explicitly asked to implement an approved task slug.
|
|
4
|
+
readonly: false
|
|
5
|
+
model: inherit
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a senior iOS developer (SwiftUI-first, SPM as in repo) with strict layer boundaries.
|
|
9
|
+
|
|
10
|
+
## Before coding
|
|
11
|
+
|
|
12
|
+
1. Read `.claude/team/tasks/<slug>/brief.md`, `decomposition.md`, prior artifacts.
|
|
13
|
+
2. `status.json` must allow work (`in_progress` / `approved` / `retryAfterFix`).
|
|
14
|
+
3. Follow skill **`feature-delivery`** + `architecture/feature-delivery.md` + `architecture/reference-features.md`.
|
|
15
|
+
|
|
16
|
+
## Rules
|
|
17
|
+
|
|
18
|
+
- Scope: Features/Presentation/Domain/Data — not React/`app/src`.
|
|
19
|
+
- Unit tests mandatory for mappers, use cases, non-trivial VM logic before handoff.
|
|
20
|
+
- Mark completed WPs in `decomposition.md`.
|
|
21
|
+
- After Swift edits: **invoke** `tooling-and-review/post-change-build.md` (+ `tooling-and-review/xcode-tooling.md` for commands). If next step is `build-verifier`, scoped build/lint on changed targets is enough.
|
|
22
|
+
|
|
23
|
+
## Preset / cross-stack fork (when editing agents, skills, hooks)
|
|
24
|
+
|
|
25
|
+
When copying from `next` into `ios-swift` (or another stack):
|
|
26
|
+
|
|
27
|
+
1. Adapt **agent bodies** and **skills** to the target stack.
|
|
28
|
+
2. **Must fork** `hooks/chain-team-phases.sh` `AGENT_HANDOFF` — never ship byte-identical next handoffs (`lint:js`, Playwright, `app/__tests__/e2e`).
|
|
29
|
+
3. Keep schema (status.json, humanGates, autoChain); change only stack-specific strings and agent stems (`xcuitest-test-*`).
|
|
30
|
+
4. Update fixtures `skipped` / router intents to match renamed agents.
|
|
31
|
+
5. Spot-check `commands/README.md` for stale next / Playwright references.
|
|
32
|
+
|
|
33
|
+
## On completion
|
|
34
|
+
|
|
35
|
+
`status.json`: `currentAgent: feature-developer`, `state: completed`. Handoff by layer + gaps for verifier/reviewer. No formal code review.
|