@bonesofspring/ai-rules 0.2.17 → 0.2.18
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 +18 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/presets/_shared/README.md +1 -1
- package/presets/_shared/core/agent-team/agent-artifact-contracts.md +3 -0
- package/presets/_shared/core/agent-team/agent-team-orchestrator.md +4 -4
- package/presets/_shared/core/architecture/feature-delivery-workflow.md +1 -1
- package/presets/_shared/core/meta/preset-no-cross-stack-leakage.md +4 -2
- package/presets/_shared/core/review/mockup-review.md +105 -0
- package/presets/_shared/core/review/ux-design.md +97 -0
- package/presets/claude/android-kotlin/agents/README.md +2 -2
- package/presets/claude/android-kotlin/agents/build-verifier.md +6 -0
- package/presets/claude/android-kotlin/agents/feature-developer.md +6 -0
- package/presets/claude/android-kotlin/agents/mockup-reviewer.md +59 -0
- package/presets/claude/android-kotlin/agents/task-analyst.md +18 -1
- package/presets/claude/android-kotlin/agents/task-router.md +11 -2
- package/presets/claude/android-kotlin/commands/task-continue.md +6 -4
- package/presets/claude/android-kotlin/commands/task.md +2 -0
- package/presets/claude/android-kotlin/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/android-kotlin/rules/README.md +2 -0
- package/presets/claude/android-kotlin/rules/architecture/feature-delivery.md +2 -0
- package/presets/claude/android-kotlin/rules/tooling-and-review/agent-team-orchestrator.md +6 -3
- package/presets/claude/android-kotlin/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/android-kotlin/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -3
- package/presets/claude/android-kotlin/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/android-kotlin/skills/README.md +2 -0
- package/presets/claude/android-kotlin/skills/feature-delivery/SKILL.md +3 -0
- package/presets/claude/android-kotlin/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/android-kotlin/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/android-kotlin/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/claude/android-kotlin/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/android-kotlin/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/android-kotlin/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/android-kotlin/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/android-kotlin/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/go/MCP.md +1 -1
- package/presets/claude/go/agents/build-verifier.md +6 -0
- package/presets/claude/go/agents/task-router.md +1 -1
- package/presets/claude/go/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/ios-swift/agents/README.md +2 -2
- package/presets/claude/ios-swift/agents/build-verifier.md +6 -0
- package/presets/claude/ios-swift/agents/feature-developer.md +6 -0
- package/presets/claude/ios-swift/agents/mockup-reviewer.md +59 -0
- package/presets/claude/ios-swift/agents/task-analyst.md +18 -1
- package/presets/claude/ios-swift/agents/task-router.md +11 -2
- package/presets/claude/ios-swift/commands/task-continue.md +6 -4
- package/presets/claude/ios-swift/commands/task.md +2 -0
- package/presets/claude/ios-swift/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/ios-swift/rules/README.md +4 -0
- package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +2 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +6 -3
- package/presets/claude/ios-swift/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/ios-swift/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/ios-swift/skills/README.md +2 -0
- package/presets/claude/ios-swift/skills/feature-delivery/SKILL.md +3 -0
- package/presets/claude/ios-swift/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/ios-swift/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/ios-swift/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/claude/ios-swift/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/ios-swift/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/ios-swift/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/ios-swift/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/ios-swift/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/java/agents/build-verifier.md +7 -1
- package/presets/claude/java/agents/task-router.md +1 -1
- package/presets/claude/java/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/mcp-ts/agents/build-verifier.md +7 -1
- package/presets/claude/mcp-ts/agents/task-router.md +1 -1
- package/presets/claude/mcp-ts/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/next/agents/README.md +2 -1
- package/presets/claude/next/agents/build-verifier.md +6 -0
- package/presets/claude/next/agents/feature-developer.md +6 -0
- package/presets/claude/next/agents/mockup-reviewer.md +59 -0
- package/presets/claude/next/agents/task-analyst.md +18 -1
- package/presets/claude/next/agents/task-router.md +12 -3
- package/presets/claude/next/commands/task-continue.md +6 -4
- package/presets/claude/next/commands/task.md +2 -0
- package/presets/claude/next/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/next/rules/README.md +5 -1
- package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +2 -0
- package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +6 -3
- package/presets/claude/next/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/next/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/next/skills/README.md +2 -0
- package/presets/claude/next/skills/feature-delivery/SKILL.md +3 -0
- package/presets/claude/next/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/next/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/next/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/claude/next/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/next/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/next/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/next/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/next/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/nuxt/agents/README.md +2 -1
- package/presets/claude/nuxt/agents/build-verifier.md +6 -0
- package/presets/claude/nuxt/agents/feature-developer.md +6 -0
- package/presets/claude/nuxt/agents/mockup-reviewer.md +59 -0
- package/presets/claude/nuxt/agents/task-analyst.md +18 -1
- package/presets/claude/nuxt/agents/task-router.md +12 -3
- package/presets/claude/nuxt/commands/task-continue.md +6 -4
- package/presets/claude/nuxt/commands/task.md +2 -0
- package/presets/claude/nuxt/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/nuxt/rules/README.md +4 -0
- package/presets/claude/nuxt/rules/architecture/feature-delivery-workflow.md +2 -0
- package/presets/claude/nuxt/rules/tooling-and-review/agent-team-orchestrator.md +6 -3
- package/presets/claude/nuxt/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/nuxt/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/nuxt/skills/README.md +2 -0
- package/presets/claude/nuxt/skills/feature-delivery/SKILL.md +3 -0
- package/presets/claude/nuxt/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/nuxt/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/nuxt/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/claude/nuxt/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/nuxt/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/nuxt/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/nuxt/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/nuxt/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/claude/php-hexagonal/agents/build-verifier.md +7 -1
- package/presets/claude/php-hexagonal/agents/task-router.md +1 -1
- package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/php-laravel/agents/build-verifier.md +7 -1
- package/presets/claude/php-laravel/agents/task-router.md +1 -1
- package/presets/claude/php-laravel/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/svelte/agents/README.md +2 -1
- package/presets/claude/svelte/agents/build-verifier.md +6 -0
- package/presets/claude/svelte/agents/feature-developer.md +6 -0
- package/presets/claude/svelte/agents/mockup-reviewer.md +59 -0
- package/presets/claude/svelte/agents/task-analyst.md +18 -1
- package/presets/claude/svelte/agents/task-router.md +12 -3
- package/presets/claude/svelte/commands/task-continue.md +6 -4
- package/presets/claude/svelte/commands/task.md +2 -0
- package/presets/claude/svelte/hooks/chain-team-phases.sh +26 -0
- package/presets/claude/svelte/rules/README.md +4 -0
- package/presets/claude/svelte/rules/architecture/feature-delivery-workflow.md +2 -0
- package/presets/claude/svelte/rules/tooling-and-review/agent-team-orchestrator.md +6 -3
- package/presets/claude/svelte/rules/tooling-and-review/mockup-review.md +118 -0
- package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +4 -2
- package/presets/claude/svelte/rules/tooling-and-review/ux-design.md +110 -0
- package/presets/claude/svelte/skills/README.md +2 -0
- package/presets/claude/svelte/skills/feature-delivery/SKILL.md +3 -0
- package/presets/claude/svelte/skills/mockup-review/SKILL.md +29 -0
- package/presets/claude/svelte/skills/ux-design/SKILL.md +36 -0
- package/presets/claude/svelte/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/claude/svelte/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/claude/svelte/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/claude/svelte/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/claude/svelte/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/claude/svelte/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/android-kotlin/agents/README.md +2 -2
- package/presets/cursor/android-kotlin/agents/build-verifier.md +6 -0
- package/presets/cursor/android-kotlin/agents/feature-developer.md +6 -0
- package/presets/cursor/android-kotlin/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/android-kotlin/agents/task-analyst.md +18 -1
- package/presets/cursor/android-kotlin/agents/task-router.md +11 -2
- package/presets/cursor/android-kotlin/commands/task-continue.md +6 -4
- package/presets/cursor/android-kotlin/commands/task.md +2 -0
- package/presets/cursor/android-kotlin/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/android-kotlin/rules/README.md +4 -0
- package/presets/cursor/android-kotlin/rules/agent-team-orchestrator.mdc +6 -3
- package/presets/cursor/android-kotlin/rules/feature-delivery-workflow.mdc +2 -0
- package/presets/cursor/android-kotlin/rules/mockup-review.mdc +116 -0
- package/presets/cursor/android-kotlin/rules/preset-no-cross-stack-leakage.mdc +4 -3
- package/presets/cursor/android-kotlin/rules/ux-design.mdc +108 -0
- package/presets/cursor/android-kotlin/skills/README.md +2 -0
- package/presets/cursor/android-kotlin/skills/feature-delivery/SKILL.md +3 -0
- package/presets/cursor/android-kotlin/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/android-kotlin/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/android-kotlin/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/cursor/android-kotlin/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/android-kotlin/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/android-kotlin/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/android-kotlin/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/android-kotlin/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/go/MCP.md +1 -1
- package/presets/cursor/go/agents/build-verifier.md +6 -0
- package/presets/cursor/go/agents/task-router.md +1 -1
- package/presets/cursor/go/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/ios-swift/agents/README.md +2 -2
- package/presets/cursor/ios-swift/agents/build-verifier.md +6 -0
- package/presets/cursor/ios-swift/agents/feature-developer.md +6 -0
- package/presets/cursor/ios-swift/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/ios-swift/agents/task-analyst.md +18 -1
- package/presets/cursor/ios-swift/agents/task-router.md +11 -2
- package/presets/cursor/ios-swift/commands/task-continue.md +6 -4
- package/presets/cursor/ios-swift/commands/task.md +2 -0
- package/presets/cursor/ios-swift/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/ios-swift/rules/README.md +5 -1
- package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +6 -3
- package/presets/cursor/ios-swift/rules/feature-delivery-workflow.mdc +2 -0
- package/presets/cursor/ios-swift/rules/mockup-review.mdc +116 -0
- package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/ios-swift/rules/ux-design.mdc +108 -0
- package/presets/cursor/ios-swift/skills/README.md +2 -0
- package/presets/cursor/ios-swift/skills/feature-delivery/SKILL.md +3 -0
- package/presets/cursor/ios-swift/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/ios-swift/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/ios-swift/team/fixtures/artifact-manifest.example.json +25 -0
- package/presets/cursor/ios-swift/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/ios-swift/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/ios-swift/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/ios-swift/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/ios-swift/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/java/agents/build-verifier.md +7 -1
- package/presets/cursor/java/agents/task-router.md +1 -1
- package/presets/cursor/java/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/mcp-ts/agents/build-verifier.md +7 -1
- package/presets/cursor/mcp-ts/agents/task-router.md +1 -1
- package/presets/cursor/mcp-ts/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/next/agents/README.md +2 -1
- package/presets/cursor/next/agents/build-verifier.md +6 -0
- package/presets/cursor/next/agents/feature-developer.md +6 -0
- package/presets/cursor/next/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/next/agents/task-analyst.md +18 -1
- package/presets/cursor/next/agents/task-router.md +12 -3
- package/presets/cursor/next/commands/task-continue.md +6 -4
- package/presets/cursor/next/commands/task.md +2 -0
- package/presets/cursor/next/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/next/rules/README.md +3 -1
- package/presets/cursor/next/rules/agent-team-orchestrator.mdc +6 -3
- package/presets/cursor/next/rules/feature-delivery-workflow.mdc +2 -0
- package/presets/cursor/next/rules/mockup-review.mdc +116 -0
- package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/next/rules/ux-design.mdc +108 -0
- package/presets/cursor/next/skills/README.md +2 -0
- package/presets/cursor/next/skills/feature-delivery/SKILL.md +3 -0
- package/presets/cursor/next/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/next/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/next/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/cursor/next/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/next/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/next/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/next/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/next/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/nuxt/agents/README.md +2 -1
- package/presets/cursor/nuxt/agents/build-verifier.md +6 -0
- package/presets/cursor/nuxt/agents/feature-developer.md +6 -0
- package/presets/cursor/nuxt/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/nuxt/agents/task-analyst.md +18 -1
- package/presets/cursor/nuxt/agents/task-router.md +12 -3
- package/presets/cursor/nuxt/commands/task-continue.md +6 -4
- package/presets/cursor/nuxt/commands/task.md +2 -0
- package/presets/cursor/nuxt/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/nuxt/rules/README.md +3 -1
- package/presets/cursor/nuxt/rules/agent-team-orchestrator.mdc +6 -3
- package/presets/cursor/nuxt/rules/feature-delivery-workflow.mdc +2 -0
- package/presets/cursor/nuxt/rules/mockup-review.mdc +116 -0
- package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/nuxt/rules/ux-design.mdc +108 -0
- package/presets/cursor/nuxt/skills/README.md +2 -0
- package/presets/cursor/nuxt/skills/feature-delivery/SKILL.md +3 -0
- package/presets/cursor/nuxt/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/nuxt/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/nuxt/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/cursor/nuxt/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/nuxt/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/nuxt/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/nuxt/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/nuxt/team/fixtures/ux-design-standalone.json +15 -0
- package/presets/cursor/php-hexagonal/agents/build-verifier.md +7 -1
- package/presets/cursor/php-hexagonal/agents/task-router.md +1 -1
- package/presets/cursor/php-hexagonal/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/php-laravel/agents/build-verifier.md +7 -1
- package/presets/cursor/php-laravel/agents/task-router.md +1 -1
- package/presets/cursor/php-laravel/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/svelte/agents/README.md +2 -1
- package/presets/cursor/svelte/agents/build-verifier.md +6 -0
- package/presets/cursor/svelte/agents/feature-developer.md +6 -0
- package/presets/cursor/svelte/agents/mockup-reviewer.md +60 -0
- package/presets/cursor/svelte/agents/task-analyst.md +18 -1
- package/presets/cursor/svelte/agents/task-router.md +12 -3
- package/presets/cursor/svelte/commands/task-continue.md +6 -4
- package/presets/cursor/svelte/commands/task.md +2 -0
- package/presets/cursor/svelte/hooks/chain-team-phases.sh +26 -0
- package/presets/cursor/svelte/rules/README.md +3 -1
- package/presets/cursor/svelte/rules/agent-team-orchestrator.mdc +6 -3
- package/presets/cursor/svelte/rules/feature-delivery-workflow.mdc +2 -0
- package/presets/cursor/svelte/rules/mockup-review.mdc +116 -0
- package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +4 -2
- package/presets/cursor/svelte/rules/ux-design.mdc +108 -0
- package/presets/cursor/svelte/skills/README.md +2 -0
- package/presets/cursor/svelte/skills/feature-delivery/SKILL.md +3 -0
- package/presets/cursor/svelte/skills/mockup-review/SKILL.md +29 -0
- package/presets/cursor/svelte/skills/ux-design/SKILL.md +36 -0
- package/presets/cursor/svelte/team/fixtures/artifact-manifest.example.json +20 -2
- package/presets/cursor/svelte/team/fixtures/feature-with-figma-url.json +17 -0
- package/presets/cursor/svelte/team/fixtures/feature-with-ux-no-figma.json +17 -0
- package/presets/cursor/svelte/team/fixtures/mockup-review-fail-embedded-status.json +8 -0
- package/presets/cursor/svelte/team/fixtures/mockup-review-standalone.json +14 -0
- package/presets/cursor/svelte/team/fixtures/ux-design-standalone.json +15 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "example-mockup-review",
|
|
4
|
+
"updatedAt": "2026-07-31T12:05:45.000Z",
|
|
5
|
+
"artifacts": [
|
|
6
|
+
{
|
|
7
|
+
"id": "mockup-review",
|
|
8
|
+
"producer": "mockup-reviewer",
|
|
9
|
+
"status": "completed",
|
|
10
|
+
"authoritativePaths": ["mockup-review.md"],
|
|
11
|
+
"acceptanceCriteriaIds": ["AC-4", "AC-5", "AC-6", "AC-7", "AC-8"],
|
|
12
|
+
"taskIds": [],
|
|
13
|
+
"timestamps": {
|
|
14
|
+
"createdAt": "2026-07-31T12:05:30.000Z",
|
|
15
|
+
"updatedAt": "2026-07-31T12:05:45.000Z",
|
|
16
|
+
"completedAt": "2026-07-31T12:05:45.000Z"
|
|
17
|
+
},
|
|
18
|
+
"receipt": {
|
|
19
|
+
"outcome": "completed",
|
|
20
|
+
"summary": "Mockup review completed with verdict PASS_WITH_NOTES.",
|
|
21
|
+
"evidencePaths": ["mockup-review.md"]
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "example-feature-with-figma",
|
|
3
|
+
"intent": "feature",
|
|
4
|
+
"profile": "full",
|
|
5
|
+
"summary": "Feature with Figma mockup URL — mockup-reviewer after analyst, before architect and developer",
|
|
6
|
+
"steps": [
|
|
7
|
+
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
8
|
+
{ "agent": "mockup-reviewer", "label": "Figma mockup review", "model": "strong" },
|
|
9
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
10
|
+
{ "agent": "feature-developer", "label": "Implement" },
|
|
11
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
|
|
12
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" }
|
|
13
|
+
],
|
|
14
|
+
"humanGates": ["after:task-analyst"],
|
|
15
|
+
"autoChain": true,
|
|
16
|
+
"skipped": []
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "example-feature-with-ux-no-figma",
|
|
3
|
+
"intent": "feature",
|
|
4
|
+
"profile": "standard",
|
|
5
|
+
"summary": "Feature with required-signal UX and no Figma URL — task-analyst loads skill ux-design; no mockup-reviewer step",
|
|
6
|
+
"steps": [
|
|
7
|
+
{ "agent": "task-analyst", "label": "Clarify, UX design, decompose" },
|
|
8
|
+
{ "agent": "feature-developer", "label": "Implement" },
|
|
9
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
|
|
10
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" }
|
|
11
|
+
],
|
|
12
|
+
"humanGates": ["after:task-analyst"],
|
|
13
|
+
"autoChain": true,
|
|
14
|
+
"skipped": [
|
|
15
|
+
{ "agent": "mockup-reviewer", "reason": "No figma.com URL; analyst skill ux-design covers behavioral UX" }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "example-mockup-fail-gate",
|
|
3
|
+
"state": "awaiting_approval",
|
|
4
|
+
"currentAgent": "mockup-reviewer",
|
|
5
|
+
"awaitingHumanGate": true,
|
|
6
|
+
"retryAfterFix": null,
|
|
7
|
+
"note": "Embedded mockup FAIL: hook must NOT set retryAfterFix to feature-developer. Resume only via /task-continue."
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "example-mockup-review-standalone",
|
|
3
|
+
"intent": "mockup-review",
|
|
4
|
+
"profile": "light",
|
|
5
|
+
"summary": "Standalone Figma mockup review (report-only)",
|
|
6
|
+
"steps": [
|
|
7
|
+
{ "agent": "mockup-reviewer", "label": "Figma mockup review", "model": "strong" }
|
|
8
|
+
],
|
|
9
|
+
"humanGates": [],
|
|
10
|
+
"autoChain": true,
|
|
11
|
+
"skipped": [
|
|
12
|
+
{ "agent": "feature-developer", "reason": "Standalone mockup-review is report-only" }
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "example-ux-design-standalone",
|
|
3
|
+
"intent": "ux-design",
|
|
4
|
+
"profile": "light",
|
|
5
|
+
"summary": "Standalone behavioral UX design (analyst + skill ux-design; report-only; no developer)",
|
|
6
|
+
"steps": [
|
|
7
|
+
{ "agent": "task-analyst", "label": "UX design (skill ux-design)" }
|
|
8
|
+
],
|
|
9
|
+
"humanGates": [],
|
|
10
|
+
"autoChain": true,
|
|
11
|
+
"skipped": [
|
|
12
|
+
{ "agent": "feature-developer", "reason": "Standalone ux-design is report-only" },
|
|
13
|
+
{ "agent": "mockup-reviewer", "reason": "No figma.com URL; not a mockup review" }
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -31,7 +31,7 @@ Hard gates for the **java** stack:
|
|
|
31
31
|
|------|-----------|
|
|
32
32
|
| **twin-map** | `java` missing from `STACKS`, or Cursor↔Claude orphan/missing twins |
|
|
33
33
|
| **token-budget** | Cursor `alwaysApply` ≠ 3 or Claude session-start (excl. README) ≠ 3, or trio body sum > 140 |
|
|
34
|
-
| **leakage** | `JAVA_FORBIDDEN_*` hits (Playwright/XCUITest/`lint:js`/`accessibility-reviewer` as required handoffs) |
|
|
34
|
+
| **leakage** | `JAVA_FORBIDDEN_*` hits (Playwright/XCUITest/`lint:js`/`accessibility-reviewer` / `mockup-reviewer` as required handoffs) |
|
|
35
35
|
| **chain fork** | `hooks/chain-team-phases.sh` byte-identical to **next**, **ios-swift**, **go**, **mcp-ts**, **php-hexagonal**, or **php-laravel** (same platform) |
|
|
36
36
|
|
|
37
37
|
Also document:
|
|
@@ -44,6 +44,12 @@ Also document:
|
|
|
44
44
|
|
|
45
45
|
Document PASS/FAIL in `validation-report.md`.
|
|
46
46
|
|
|
47
|
+
|
|
48
|
+
**Forbidden mockup-reviewer:** agent file `agents/mockup-reviewer.md` or required `AGENT_HANDOFF` / pipeline handoff for `mockup-reviewer` → **FAIL** (no UI mockup reviewer).
|
|
49
|
+
|
|
50
|
+
**Forbidden ux-designer / ux-design:** agent file `agents/ux-designer.md` or required `skills/ux-design` / `rules/ux-design` / pipeline handoff stem `ux-design` → **FAIL** (no UI UX surface).
|
|
51
|
+
|
|
52
|
+
|
|
47
53
|
## Artifact contract
|
|
48
54
|
|
|
49
55
|
- **Authoritative inputs:** read `.claude/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation evidence, pipeline scope, and changed files.
|
|
@@ -31,7 +31,7 @@ You are a task router for a **Java hexagonal backend** agent team. You **do not*
|
|
|
31
31
|
| `spike` | «исследуй» (explore), "spike", proof of concept | task-analyst → solution-architect | <!-- i18n-keep: E4 -->
|
|
32
32
|
| `retro` | «ретро» (retro), "postmortem" | (orchestrator → `/technical-retro`) | <!-- i18n-keep: E4 -->
|
|
33
33
|
|
|
34
|
-
**Never schedule** Playwright (`playwright-test-*`), XCUITest (`xcuitest-test-*`), or `accessibility-reviewer`. Put them in `skipped` with reason "Java backend uses integration-test trio".
|
|
34
|
+
**Never schedule** Playwright (`playwright-test-*`), XCUITest (`xcuitest-test-*`), or `accessibility-reviewer` / `mockup-reviewer`. Put them in `skipped` with reason "Java backend uses integration-test trio".
|
|
35
35
|
|
|
36
36
|
## Pipeline profiles
|
|
37
37
|
|
|
@@ -70,7 +70,8 @@ Shared backend-stack bans (`go`, `java`, `php-hexagonal`, and `php-laravel`):
|
|
|
70
70
|
- `playwright-test-`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
|
|
71
71
|
- Positive yarn recipes `lint:js` / `lint:css`
|
|
72
72
|
- `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
|
|
73
|
-
- Agent
|
|
73
|
+
- Agent files `accessibility-reviewer`, `mockup-reviewer`, `ux-designer` (no UI surface)
|
|
74
|
+
- Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
|
|
74
75
|
|
|
75
76
|
Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`), `java-tooling` (`mvn test` / `./gradlew test`), or `php-tooling` (`php artisan test` / `composer test` / `vendor/bin/phpunit`).
|
|
76
77
|
|
|
@@ -82,7 +83,8 @@ Same UI/mobile bans as backend stacks, plus:
|
|
|
82
83
|
- Positive yarn recipes `lint:js` / `lint:css` as required gates
|
|
83
84
|
- `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
|
|
84
85
|
- Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
|
|
85
|
-
- Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`
|
|
86
|
+
- Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`, `mockup-reviewer`, `ux-designer`
|
|
87
|
+
- Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
|
|
86
88
|
|
|
87
89
|
Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
|
|
88
90
|
|
|
@@ -35,9 +35,15 @@ Document PASS/FAIL in `validation-report.md`. Soft leakage output:
|
|
|
35
35
|
|
|
36
36
|
1. **Root AGENTS template:** each installable preset (`cursor|claude` × `next|nuxt|svelte|ios-swift|go|java|mcp-ts|php-hexagonal|php-laravel`) must ship `REPO_AGENTS.md` when validating preset packaging → **FAIL** if missing.
|
|
37
37
|
2. **Hooks cookbook:** default `hooks.json` must **not** reference `hooks/examples/` → **FAIL** if it does.
|
|
38
|
-
3. **Forbidden agent filenames** (Playwright / XCUITest / integration-test / accessibility-reviewer / contract-test): must be absent → **FAIL** via `check:preset-leakage`.
|
|
38
|
+
3. **Forbidden agent filenames** (Playwright / XCUITest / integration-test / accessibility-reviewer / mockup-reviewer / ux-designer / contract-test): must be absent → **FAIL** via `check:preset-leakage`.
|
|
39
39
|
4. **Rule eval (WARN):** optional maintainer smoke — not part of default `check:preset-structure`.
|
|
40
40
|
|
|
41
|
+
|
|
42
|
+
**Forbidden mockup-reviewer:** agent file `agents/mockup-reviewer.md` or required `AGENT_HANDOFF` / pipeline handoff for `mockup-reviewer` → **FAIL** (no UI mockup reviewer).
|
|
43
|
+
|
|
44
|
+
**Forbidden ux-designer / ux-design:** agent file `agents/ux-designer.md` or required `skills/ux-design` / `rules/ux-design` / pipeline handoff stem `ux-design` → **FAIL** (no UI UX surface).
|
|
45
|
+
|
|
46
|
+
|
|
41
47
|
## Artifact contract
|
|
42
48
|
|
|
43
49
|
- **Authoritative inputs:** read `.claude/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for brief/decomposition, implementation evidence, pipeline scope, and changed files.
|
|
@@ -38,7 +38,7 @@ Append **`security-reviewer` after `build-verifier`** for `feature` / `bugfix` /
|
|
|
38
38
|
|
|
39
39
|
**Phase 1 available agents only:** `task-router`, `task-analyst`, `solution-architect`, `feature-developer`, `build-verifier`, `security-reviewer`.
|
|
40
40
|
|
|
41
|
-
**Never schedule** Playwright (`playwright-test-*`), XCUITest (`xcuitest-test-*`), `accessibility-reviewer`, `integration-test-*`, or Phase 2 `contract-test-*`. Put them in `skipped` with reason "mcp-ts Phase 1 roster".
|
|
41
|
+
**Never schedule** Playwright (`playwright-test-*`), XCUITest (`xcuitest-test-*`), `accessibility-reviewer`, `mockup-reviewer`, `integration-test-*`, or Phase 2 `contract-test-*`. Put them in `skipped` with reason "mcp-ts Phase 1 roster".
|
|
42
42
|
|
|
43
43
|
## Pipeline profiles
|
|
44
44
|
|
|
@@ -70,7 +70,8 @@ Shared backend-stack bans (`go`, `java`, `php-hexagonal`, and `php-laravel`):
|
|
|
70
70
|
- `playwright-test-`, `playwright-e2e`, `user-playwright`, `app/__tests__/e2e`
|
|
71
71
|
- Positive yarn recipes `lint:js` / `lint:css`
|
|
72
72
|
- `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
|
|
73
|
-
- Agent
|
|
73
|
+
- Agent files `accessibility-reviewer`, `mockup-reviewer`, `ux-designer` (no UI surface)
|
|
74
|
+
- Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
|
|
74
75
|
|
|
75
76
|
Required instead: `integration-test-*`; build-verifier / `post-change-test` plus stack tooling — `go-tooling` (`go test`, `go vet`), `java-tooling` (`mvn test` / `./gradlew test`), or `php-tooling` (`php artisan test` / `composer test` / `vendor/bin/phpunit`).
|
|
76
77
|
|
|
@@ -82,7 +83,8 @@ Same UI/mobile bans as backend stacks, plus:
|
|
|
82
83
|
- Positive yarn recipes `lint:js` / `lint:css` as required gates
|
|
83
84
|
- `xcuitest-test-`, `instrumentation-test-`, `xcodebuild`, `SwiftLint` as required handoffs
|
|
84
85
|
- Go tool commands as required MCP delivery gates: `go test`, `go vet`, `golangci-lint`
|
|
85
|
-
- Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`
|
|
86
|
+
- Agent files: `playwright-test-*`, `xcuitest-test-*`, `instrumentation-test-*`, `integration-test-*`, `accessibility-reviewer`, `mockup-reviewer`, `ux-designer`
|
|
87
|
+
- Required `skills/ux-design`, required `rules/ux-design`, or required pipeline handoff stem `ux-design`
|
|
86
88
|
|
|
87
89
|
Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`, `post-change-test`); Phase 1 gates `build-verifier` + `security-reviewer`.
|
|
88
90
|
|
|
@@ -35,6 +35,7 @@ Specialized subagents (personas) — per [Claude Code documentation](https://cod
|
|
|
35
35
|
| A11y reviewer | `accessibility-reviewer.md` | no |
|
|
36
36
|
| Security reviewer | `security-reviewer.md` | no |
|
|
37
37
|
| Performance auditor | `performance-auditor.md` | no |
|
|
38
|
+
| Mockup reviewer | `mockup-reviewer.md` | no |
|
|
38
39
|
|
|
39
40
|
## Testing
|
|
40
41
|
|
|
@@ -64,7 +65,7 @@ Default SoT — YAML `model` in each agent file. Optional `steps[].model` (`chea
|
|
|
64
65
|
|------|---------------------|--------|
|
|
65
66
|
| **cheap** | `fast` | `task-router`, `task-analyst`, `build-verifier`, `code-reviewer`, `tech-writer`, `codebase-analyzer` |
|
|
66
67
|
| **standard** | `inherit` or `sonnet` | `feature-developer`, `debugger`, `ci-investigator`, `api-contract-reviewer`, `accessibility-reviewer`, `qa-tester`, `unit-test-*`, `playwright-test-*` (`sonnet` where already pinned) |
|
|
67
|
-
| **strong** | `opus` | `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` |
|
|
68
|
+
| **strong** | `opus` | `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor`, `mockup-reviewer` |
|
|
68
69
|
|
|
69
70
|
**Notes**
|
|
70
71
|
|
|
@@ -48,6 +48,12 @@ When validating **preset packaging** changes (paths under `packages/ai-rules/pre
|
|
|
48
48
|
13. **Product-specs assets (FAIL):** package must ship `presets/_shared/assets/docs-specs/INDEX.md`, `_templates/page.md`, `_templates/feature.md`. Cursor+Claude twins for `product-specs` and `product-specs-authoring` must embed matching shared-core markers; both stems **requestable** (`alwaysApply: false` / Claude `paths: docs/specs/**`) — never session-start.
|
|
49
49
|
14. **Optional consumer check (WARN default):** `scripts/check-product-specs.sh` + schema stub may exist for opt-in consumer CI; **FAIL** only with `--strict` or AC that requires named specs — do not force consumer CI.
|
|
50
50
|
|
|
51
|
+
|
|
52
|
+
**mockup-reviewer (UI):** `agents/mockup-reviewer.md` and `skills/mockup-review/` must exist (Cursor + Claude). Missing → **FAIL**. Backend stacks must **not** ship that agent file or a required `mockup-reviewer` chain handoff → **FAIL** if present.
|
|
53
|
+
|
|
54
|
+
**ux-design (UI):** `skills/ux-design/` and requestable rule `ux-design` (`ux-design.mdc` / `tooling-and-review/ux-design.md`) must exist (Cursor + Claude). Missing → **FAIL**. Do **not** require `agents/ux-designer.md`. Backend stacks must **not** ship that agent file or a required `ux-design` skill/rule/handoff → **FAIL** if present.
|
|
55
|
+
|
|
56
|
+
|
|
51
57
|
### Soft notes
|
|
52
58
|
|
|
53
59
|
- Thin aliases may be <15 body lines.
|
|
@@ -51,6 +51,12 @@ Do not perform formal code review — that is the code-reviewer subagent's job.
|
|
|
51
51
|
|
|
52
52
|
- When editing `app/**/*.{ts,tsx}`, load / follow rule `react-next-anti-hallucination`.
|
|
53
53
|
|
|
54
|
+
## UX design (behavioral)
|
|
55
|
+
|
|
56
|
+
Read order when present: manifest → `brief.md` / `decomposition.md` → **`ux-design.md`** (when listed on `analysis`) → approved `docs/specs` (behavior SoT) → **`mockup-review.md`** when Figma was in scope → `architecture.md`.
|
|
57
|
+
|
|
58
|
+
If required-signal fired (user asked UX, AC require flows/states, or spec-gen page/feature) and there is **no** `figma.com` URL, and `ux-design.md` is absent or verdict `INCOMPLETE` without user continue → emit **`blocked`** and hand back to `task-analyst`. Do not invent flows/states. Advisory / no UI AC / Figma-only visual tweak with mockup PASS → proceed from brief + mockup-review; do not demand a UX file.
|
|
59
|
+
|
|
54
60
|
## Product specs (docs/specs)
|
|
55
61
|
|
|
56
62
|
When work touches a page/feature/route/alias: if `docs/specs/INDEX.md` exists (or brief lists approved specs), load **`product-specs`** and treat **approved** specs from brief/handoff as **behavior SoT**. Soft-fail on miss (`open_questions` + code / `.ai/context` fallback); **never invent** product behavior.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mockup-reviewer
|
|
3
|
+
description: Figma mockup review specialist. Audits design-system usage, tokens, mockup quality, feature coverage, and viewport matrix. Writes mockup-review.md only; never edits production code or Figma.
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a Figma mockup reviewer for a Next.js React frontend.
|
|
8
|
+
|
|
9
|
+
You write **only** `.claude/team/tasks/<slug>/mockup-review.md` (and the owned manifest receipt). Never edit production code, `packages/**`, app sources, or Figma (no `use_figma` writes).
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
1. `.claude/team/tasks/<slug>/artifact-manifest.json`.
|
|
14
|
+
2. Prompt Figma URL(s); `brief.md` / `decomposition.md` when present.
|
|
15
|
+
3. Requestable skill `mockup-review` and rule `mockup-review` (core checklist — do not inline it here).
|
|
16
|
+
4. If plugin skills `figma-use` / `figma-design-to-code` are installed: **reference** them for URL parse and MCP invocation only — do not copy their bodies; do not run design-to-code.
|
|
17
|
+
|
|
18
|
+
## MCP tools
|
|
19
|
+
|
|
20
|
+
**Required when MCP is up:** `get_metadata`, `get_design_context`, `search_design_system`, `get_variable_defs`, `get_screenshot`.
|
|
21
|
+
|
|
22
|
+
**Optional:** `get_libraries`, `get_code_connect_map`.
|
|
23
|
+
|
|
24
|
+
**Forbidden:** `use_figma`, `create_new_file`, `generate_*`, `weave_*`, `upload_assets`, `send_code_connect_mappings`. FigJam URL → `BLOCKED_MCP`.
|
|
25
|
+
|
|
26
|
+
Cite `fileKey` + node IDs. Screenshot is supporting evidence, not a second reviewer.
|
|
27
|
+
|
|
28
|
+
**Node caps:** ≤12 screen-level frames; `get_metadata` depth ≤3; ≤3 screenshots (prefer one per small/medium/large). `search_design_system` once; `get_variable_defs` once per file. Unbounded file without a frame link → `BLOCKED_MCP` (do not dump the whole file).
|
|
29
|
+
|
|
30
|
+
MCP unavailable or OAuth fail → verdict `BLOCKED_MCP`. Do not invent DS claims.
|
|
31
|
+
|
|
32
|
+
## Review dimensions
|
|
33
|
+
|
|
34
|
+
Follow the requestable `mockup-review` checklist (DS components, tokens, quality, coverage, viewports). Do not duplicate that checklist here.
|
|
35
|
+
|
|
36
|
+
## Output
|
|
37
|
+
|
|
38
|
+
Write `.claude/team/tasks/<slug>/mockup-review.md` using the report headings in the `mockup-review` rule.
|
|
39
|
+
|
|
40
|
+
## Verdicts and receipts
|
|
41
|
+
|
|
42
|
+
Report verdict: `PASS | PASS_WITH_NOTES | FAIL | BLOCKED_MCP`.
|
|
43
|
+
|
|
44
|
+
| Verdict | Standalone receipt | Embedded receipt | Artifact `status` |
|
|
45
|
+
|---------|--------------------|------------------|-------------------|
|
|
46
|
+
| `PASS` / `PASS_WITH_NOTES` | `completed` | `completed` | `completed` |
|
|
47
|
+
| `FAIL` | `completed` (report-only, like `perf-audit`) | `changes_requested` | `blocked` |
|
|
48
|
+
| `BLOCKED_MCP` | `blocked` | `blocked` | `blocked` |
|
|
49
|
+
|
|
50
|
+
Standalone FAIL must **not** set `changes_requested`. Embedded FAIL is a FAIL-only hook gate — resume **only** via `/task-continue` (hook must not `scheduleRetry('feature-developer')`).
|
|
51
|
+
|
|
52
|
+
## Artifact contract
|
|
53
|
+
|
|
54
|
+
- **Authoritative inputs:** read `.claude/team/tasks/<slug>/artifact-manifest.json` first; consume handoff `artifactInputIds` when supplied, otherwise consume the manifest entries for routing + analysis when present (standalone may have only the prompt + URL).
|
|
55
|
+
- **Owned outputs:** `mockup-review.md`; upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `mockup-review`) and preserve all foreign entries.
|
|
56
|
+
- **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed`, `changes_requested`, or `blocked` per the table above. Bind it to the supplied `attemptId` when present.
|
|
57
|
+
- **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
|
|
58
|
+
|
|
59
|
+
Do not modify production code or tests.
|
|
@@ -120,9 +120,26 @@ Add to `brief.md`:
|
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
|
|
123
|
+
## UX design (behavioral)
|
|
124
|
+
|
|
125
|
+
Load requestable skill **`ux-design`** and rule **`ux-design`** when:
|
|
126
|
+
- standalone router intent `ux-design`, or
|
|
127
|
+
- **required-signal:** the user asked for UX, **or** AC explicitly require flows/states, **or** `spec-gen` / `/spec-start` for a **page/feature**, or
|
|
128
|
+
- advisory UI AC on this UI stack (notes only; skip if no UI surface).
|
|
129
|
+
|
|
130
|
+
**Order:** write `ux-design.md` **before** author mode / skill `spec-authoring` when both apply. You remain the only INDEX writer.
|
|
131
|
+
|
|
132
|
+
Write `.claude/team/tasks/<slug>/ux-design.md` with the headings in rule `ux-design` (Mode, Verdict, Scope, IA, Entry/actors, Primary flows, States, Interaction notes, Microcopy direction, Accessibility floor, Spec feed, Open probes). Modes: `synthesize` | `review`.
|
|
133
|
+
|
|
134
|
+
**Required vs advisory:** required-signal + missing named primary flows **or** empty/error/loading matrix → DoR not met (`open_questions` / blocked analysis). Isolated missing microcopy never blocks. Advisory `INCOMPLETE` → notes only. Do **not** copy the mockup FAIL-only hook.
|
|
135
|
+
|
|
136
|
+
**Forbidden:** Figma MCP tools (`get_metadata`, `get_design_context`, `get_screenshot`, `search_design_system`, `get_variable_defs`, `use_figma`, `create_new_file`, `generate_*`). When Figma is present and required-signal fires, emit a **thin** `ux-design.md` from AC only (no visual claims). Only `mockup-reviewer` reads Figma.
|
|
137
|
+
|
|
138
|
+
When produced, append `ux-design.md` to this step's **`analysis`** `authoritativePaths` / `evidencePaths`. No new manifest producer row.
|
|
139
|
+
|
|
123
140
|
## Artifact contract
|
|
124
141
|
|
|
125
142
|
- **Authoritative inputs:** read `.claude/team/tasks/<slug>/artifact-manifest.json` first; consume `pipeline.json`, the manifest routing entry, user-approved decisions, and any authoritative architecture/approval entries.
|
|
126
|
-
- **Owned outputs:** `brief.md` and `decomposition.md
|
|
143
|
+
- **Owned outputs:** `brief.md` and `decomposition.md` (plus `ux-design.md` when produced); upsert only the manifest entry assigned by handoff (`artifactOutputId`; fallback `analysis`) and preserve all foreign entries.
|
|
127
144
|
- **Terminal receipt:** cover applicable AC/task IDs, list authoritative evidence paths, and emit `completed` or `blocked`. Bind it to the supplied `attemptId` when present.
|
|
128
145
|
- **Shared state:** never create or mutate `status.json` or `metrics.json`; the orchestration runtime/hook owns lifecycle, gates, retries, attempts, and timestamps.
|
|
@@ -22,6 +22,8 @@ You are a task router for a Next.js frontend agent team. You **do not** implemen
|
|
|
22
22
|
| `migration` | «миграция» (migration), «upgrade», «обнови Next» (upgrade Next), «переход на» (move to), major version <!-- i18n-keep: E4 --> | task-analyst → migration-specialist → feature-developer → build-verifier → code-reviewer → qa-tester (regression) |
|
|
23
23
|
| `perf-audit` | «производительность» (performance), «perf», «bundle», «LCP», «медленно» (slow), «waterfall» <!-- i18n-keep: E4 --> | performance-auditor |
|
|
24
24
|
| `a11y` | «a11y», «доступность» (accessibility), «accessibility», «WCAG», «screen reader», «клавиатура» (keyboard) <!-- i18n-keep: E4 --> | task-analyst → feature-developer → build-verifier → accessibility-reviewer → code-reviewer |
|
|
25
|
+
| `mockup-review` | «ревью макета» (mockup review), «mockup review», «проверь Figma» (check Figma), «figma review», «макет» (mockup) + review verb, `figma.com` + review-not-implement <!-- i18n-keep: E4 --> | mockup-reviewer |
|
|
26
|
+
| `ux-design` | «разработай UX» (design UX), «спроектируй» (design/plan) flows, «journey», «IA», «state matrix», «ревью UX» (UX review) without Figma <!-- i18n-keep: E4 --> | task-analyst |
|
|
25
27
|
| `review-only` | «ревью» (review), «review MR», «проверь diff» (check diff), «code review» <!-- i18n-keep: E4 --> | code-reviewer |
|
|
26
28
|
| `test-only` | «покрой тестами» (add tests), «напиши тесты» (write tests) (mixed unit+e2e, no impl) <!-- i18n-keep: E4 --> | task-analyst → qa-tester |
|
|
27
29
|
| `unit-only` | «unit», «юнит» (unit), «mapper tests», «покрой маппер» (cover mapper), «почини unit» (fix unit) <!-- i18n-keep: E4 --> | unit-test-planner → unit-test-generator, or unit-test-healer |
|
|
@@ -33,7 +35,7 @@ You are a task router for a Next.js frontend agent team. You **do not** implemen
|
|
|
33
35
|
|
|
34
36
|
## Pipeline profiles
|
|
35
37
|
|
|
36
|
-
Set optional top-level `"profile": "full" | "standard" | "light"` in `pipeline.json`. Default when omitted: **`standard`** for `feature`/`refactor`/`bugfix`; **`light`** for `review-only`, `perf-audit`; **`full`** when cross-layer or e2e AC required.
|
|
38
|
+
Set optional top-level `"profile": "full" | "standard" | "light"` in `pipeline.json`. Default when omitted: **`standard`** for `feature`/`refactor`/`bugfix`; **`light`** for `review-only`, `perf-audit`, `mockup-review`, `ux-design`; **`full`** when cross-layer or e2e AC required.
|
|
37
39
|
|
|
38
40
|
| Profile | When | Typical `feature` steps |
|
|
39
41
|
|---------|------|------------------------|
|
|
@@ -50,6 +52,8 @@ Set optional top-level `"profile": "full" | "standard" | "light"` in `pipeline.j
|
|
|
50
52
|
| `feature` | developer → build-verifier |
|
|
51
53
|
| `bugfix` | debugger → build-verifier (`skipIf: debugger.fixed` on developer) |
|
|
52
54
|
| `review-only` | code-reviewer |
|
|
55
|
+
| `mockup-review` | mockup-reviewer |
|
|
56
|
+
| `ux-design` | task-analyst |
|
|
53
57
|
| `docs-only` | tech-writer (skip analyst if brief exists) |
|
|
54
58
|
| `ci-fix` | ci-investigator → build-verifier (`skipIf: ci-investigator.resolved`) |
|
|
55
59
|
|
|
@@ -78,6 +82,9 @@ Keep top-level `profile` and emit this top-level object in every new `pipeline.j
|
|
|
78
82
|
|
|
79
83
|
## Adjust steps (when context is clear)
|
|
80
84
|
|
|
85
|
+
- If prompt or `brief.md` contains `figma.com` on `feature` / `refactor` / `spike` / `spec-gen`, insert **mockup-reviewer** after **task-analyst** (when present) and before **solution-architect** and **feature-developer**. Set `model: "strong"` on that step. Do not add static `humanGates: ["after:mockup-reviewer"]` (FAIL-only hook exception). Never put `mockup-reviewer` in a `parallel: true` step (FAIL-only gate is serial).
|
|
86
|
+
- Classify intent `mockup-review` **before** `ux-design` **before** `review-only`. A `figma.com` URL with review-not-implement language is `mockup-review` even without the word «макет», including when the user said «ревью UX». <!-- i18n-keep: E4 -->
|
|
87
|
+
- If UI stack and (required-signal or advisory UI AC), instruct **task-analyst** to load skill `ux-design` (no new pipeline step; analyst default model, not `strong`). Required-signal: user asked UX, or AC require flows/states, or spec-gen page/feature.
|
|
81
88
|
- Skip **task-analyst** if AC/scope fully specified → document in `skipped`.
|
|
82
89
|
- Add **solution-architect** for cross-layer / new public APIs — after analyst, before developer.
|
|
83
90
|
- Add **api-contract-reviewer** for new/changed backend contracts — before developer.
|
|
@@ -92,11 +99,11 @@ Optional per-step field: `"model": "cheap" | "standard" | "strong"`. Omit → ag
|
|
|
92
99
|
|
|
93
100
|
| When | What to write |
|
|
94
101
|
|------|----------------|
|
|
95
|
-
| `profile: light` | set `cheap` on **all** steps (
|
|
102
|
+
| `profile: light` | set `cheap` on **all** steps (exceptions: unclear bug root cause on `debugger` → `strong`; `mockup-reviewer` always `strong`) |
|
|
96
103
|
| `profile: standard` | omit (frontmatter defaults) |
|
|
97
104
|
| `profile: full` | set `strong` on `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` when present; omit others |
|
|
98
105
|
| `intent: spike` | set `strong` on `solution-architect` (and analyst may stay default/`cheap`) |
|
|
99
|
-
| `intent: perf-audit` / security-heavy feature | `strong` on auditor/reviewer step |
|
|
106
|
+
| `intent: perf-audit` / `mockup-review` / security-heavy feature | `strong` on auditor/reviewer step (`mockup-reviewer` never `cheap`) |
|
|
100
107
|
| Always | **never** `strong` on `build-verifier`, `tech-writer`, `task-router` |
|
|
101
108
|
|
|
102
109
|
Claude Code mapping when orchestrator invokes Agent tool: `cheap` → `haiku` (or rely on frontmatter `fast`); `standard` → omit / `sonnet` / inherit; `strong` → pass `opus` (or rely on frontmatter `opus`). Prefer explicit per-invocation `model` when frontmatter is unreliable.
|
|
@@ -113,6 +120,8 @@ Claude Code mapping when orchestrator invokes Agent tool: `cheap` → `haiku` (o
|
|
|
113
120
|
| `bugfix`, `review-only`, `ci-fix` | `[]` |
|
|
114
121
|
| `spike` | `["after:solution-architect"]` |
|
|
115
122
|
| `perf-audit` | `[]` |
|
|
123
|
+
| `mockup-review` | `[]` |
|
|
124
|
+
| `ux-design` | `[]` |
|
|
116
125
|
|
|
117
126
|
## Output
|
|
118
127
|
|
|
@@ -32,17 +32,19 @@ printf '%s\n' '{"status":"completed","action":"end_human_gate","activateNext":tr
|
|
|
32
32
|
|
|
33
33
|
3. Re-read `status.json` (and the hook `followup_message`).
|
|
34
34
|
4. Invoke the subagent named in `status.currentAgent` / followup — do **not** advance the pipeline a second time.
|
|
35
|
-
3. **Review `changes_requested`** (not a human gate): set `currentAgent` to `feature-developer` (same index / find developer in steps), `state: in_progress`, then invoke developer. Do **not** call `end_human_gate` unless `activeHumanGateEventId` is set.
|
|
36
|
-
4.
|
|
37
|
-
5.
|
|
35
|
+
3. **Review `changes_requested`** (not a human gate): if `currentAgent` is **`mockup-reviewer`**, this is the FAIL-only mockup gate — do **not** retry `feature-developer`. Read `mockup-review.md` and resume via the human-gate path (`end_human_gate` / `activateNext`). Otherwise: set `currentAgent` to `feature-developer` (same index / find developer in steps), `state: in_progress`, then invoke developer. Do **not** call `end_human_gate` unless `activeHumanGateEventId` is set.
|
|
36
|
+
4. **`blocked` + `currentAgent: mockup-reviewer`** (`BLOCKED_MCP`): skip-forward via the same `end_human_gate`/`activateNext` path (explicit «proceed without MCP»). Do not invent DS claims.
|
|
37
|
+
5. **Other resume**: restore `pipelineIndex` / `currentAgent` from status and invoke that agent.
|
|
38
|
+
6. After the invoked agent completes, `chain-team-phases.sh` on `subagentStop` continues the chain when `autoChain: true`.
|
|
38
39
|
|
|
39
40
|
## Artifacts for handoff
|
|
40
41
|
|
|
41
42
|
| Agent | Read |
|
|
42
43
|
|-------|------|
|
|
43
|
-
| feature-developer | brief.md (incl. **Related specs**), decomposition.md, validation-report.md (if retry), review.md (if retry), architecture.md; if `docs/specs/INDEX.md` exists → load **`product-specs`** |
|
|
44
|
+
| feature-developer | brief.md (incl. **Related specs**), decomposition.md, ux-design.md (if present), mockup-review.md (if present), validation-report.md (if retry), review.md (if retry), architecture.md; if `docs/specs/INDEX.md` exists → load **`product-specs`** |
|
|
44
45
|
| build-verifier | git diff, decomposition.md |
|
|
45
46
|
| code-reviewer | brief.md, validation-report.md, git diff |
|
|
47
|
+
| mockup-reviewer | mockup-review.md |
|
|
46
48
|
| qa-tester | brief.md, decomposition.md, scope from pipeline step |
|
|
47
49
|
|
|
48
50
|
## Product specs (docs/specs)
|
|
@@ -22,6 +22,8 @@ Examples:
|
|
|
22
22
|
- `/task Write changelog for filter release`
|
|
23
23
|
- `/task Review my changes in store/orders`
|
|
24
24
|
- `/task Write e2e for payment flow`
|
|
25
|
+
- `/task Review mockup https://figma.com/design/...`
|
|
26
|
+
- `/task Design UX flows for Order History` (no Figma)
|
|
25
27
|
|
|
26
28
|
## Algorithm
|
|
27
29
|
|
|
@@ -135,6 +135,7 @@ const DEFAULT_ARTIFACT_OUTPUT_IDS = {
|
|
|
135
135
|
'security-reviewer': 'security-review',
|
|
136
136
|
'accessibility-reviewer': 'a11y-review',
|
|
137
137
|
'performance-auditor': 'perf-report',
|
|
138
|
+
'mockup-reviewer': 'mockup-review',
|
|
138
139
|
'api-contract-reviewer': 'api-contract-review',
|
|
139
140
|
'tech-writer': 'documentation',
|
|
140
141
|
};
|
|
@@ -311,6 +312,8 @@ const AGENT_HANDOFF = {
|
|
|
311
312
|
`Invoke accessibility-reviewer (readonly) for slug "${s}". Review UI diff; write a11y-review.md. Upsert the owned terminal receipt in artifact-manifest.json; do not mutate status.json lifecycle fields.`,
|
|
312
313
|
'performance-auditor': (s) =>
|
|
313
314
|
`Invoke performance-auditor (readonly) for slug "${s}". Write perf-report.md. Upsert the owned terminal receipt in artifact-manifest.json; do not mutate status.json lifecycle fields.`,
|
|
315
|
+
'mockup-reviewer': (s) =>
|
|
316
|
+
`Invoke mockup-reviewer (readonly) for slug "${s}". Write mockup-review.md. Load requestable mockup-review skill/rule. Upsert the owned terminal receipt in artifact-manifest.json; do not mutate status.json lifecycle fields.`,
|
|
314
317
|
'code-reviewer': (s) =>
|
|
315
318
|
`Invoke code-reviewer subagent (readonly) for slug "${s}". Review git diff vs brief.md per tooling-and-review/code-review-mr.md. ` +
|
|
316
319
|
`Upsert the owned terminal receipt in artifact-manifest.json; do not mutate status.json lifecycle fields.`,
|
|
@@ -596,6 +599,18 @@ if (currentStep?.parallel && stepAgents.length > 1) {
|
|
|
596
599
|
}
|
|
597
600
|
|
|
598
601
|
const retryReviewer = stepAgents.find((agent) => outcomes[agent]?.outcome === 'changes_requested');
|
|
602
|
+
if (retryReviewer === 'mockup-reviewer') {
|
|
603
|
+
beginHumanGate();
|
|
604
|
+
writeStatus({
|
|
605
|
+
awaitingHumanGate: true,
|
|
606
|
+
state: 'awaiting_approval',
|
|
607
|
+
currentAgent: 'mockup-reviewer',
|
|
608
|
+
parallelCompleted: [],
|
|
609
|
+
parallelOutcomes: {},
|
|
610
|
+
});
|
|
611
|
+
out(`Mockup review FAIL for slug "${slug}". Read mockup-review.md. Resume only via /task-continue. Do not retry feature-developer.`);
|
|
612
|
+
process.exit(0);
|
|
613
|
+
}
|
|
599
614
|
if (retryReviewer) {
|
|
600
615
|
const retryAfterFixStepIndex = idx;
|
|
601
616
|
const predecessor = outcomes[retryReviewer]
|
|
@@ -628,6 +643,17 @@ if (status.state === 'blocked') {
|
|
|
628
643
|
process.exit(0);
|
|
629
644
|
}
|
|
630
645
|
|
|
646
|
+
if (status.state === 'changes_requested' && (completedAgent === 'mockup-reviewer' || status.currentAgent === 'mockup-reviewer')) {
|
|
647
|
+
beginHumanGate();
|
|
648
|
+
writeStatus({
|
|
649
|
+
awaitingHumanGate: true,
|
|
650
|
+
state: 'awaiting_approval',
|
|
651
|
+
currentAgent: 'mockup-reviewer',
|
|
652
|
+
});
|
|
653
|
+
out(`Mockup review FAIL for slug "${slug}". Read mockup-review.md. Resume only via /task-continue. Do not retry feature-developer.`);
|
|
654
|
+
process.exit(0);
|
|
655
|
+
}
|
|
656
|
+
|
|
631
657
|
if (status.state === 'changes_requested') {
|
|
632
658
|
const reviewer = status.currentAgent || finishedAttempt?.entry?.agent;
|
|
633
659
|
if (!reviewer) {
|
|
@@ -15,7 +15,7 @@ In Claude Code all `.md` files under `rules/` are **discovered recursively**. Bo
|
|
|
15
15
|
## Loading strategy
|
|
16
16
|
|
|
17
17
|
- **Session start (no `paths:`):** exactly **3** — `next-app-core`, `package-manager`, `code-quality`
|
|
18
|
-
- **On-demand (`paths:` or via commands):** `post-change-lint` (**must after code edits**), `agent-team-intake`, `agent-team-orchestrator`, `code-review-mr`, `security-next`, architecture, imports, UI, tests, feature-delivery-workflow, `design-guidance`, `anti-sycophancy-discipline`, `react-next-anti-hallucination`, reference-features, next-app-router, react-a11y-coding, `technical-retro`, **preset-*** meta (paths on `packages/ai-rules/presets/**`)
|
|
18
|
+
- **On-demand (`paths:` or via commands):** `post-change-lint` (**must after code edits**), `agent-team-intake`, `agent-team-orchestrator`, `code-review-mr`, `security-next`, architecture, imports, UI, tests, feature-delivery-workflow, `design-guidance`, `anti-sycophancy-discipline`, `react-next-anti-hallucination`, reference-features, next-app-router, react-a11y-coding, `technical-retro`, `mockup-review`, `ux-design`, **preset-*** meta (paths on `packages/ai-rules/presets/**`)
|
|
19
19
|
- **Skills:** long workflows (`feature-delivery`, `code-review`, …)
|
|
20
20
|
|
|
21
21
|
### UI edit bundle (consolidated paths)
|
|
@@ -71,6 +71,8 @@ When editing `app/src/ui/**/*.tsx`, a **reduced** set loads:
|
|
|
71
71
|
| `agent-team-intake.mdc` | `tooling-and-review/agent-team-intake.md` |
|
|
72
72
|
| `agent-team-orchestrator.mdc` | `tooling-and-review/agent-team-orchestrator.md` |
|
|
73
73
|
| `technical-retro.mdc` | `tooling-and-review/technical-retro.md` |
|
|
74
|
+
| `mockup-review.mdc` | `tooling-and-review/mockup-review.md` |
|
|
75
|
+
| `ux-design.mdc` | `tooling-and-review/ux-design.md` |
|
|
74
76
|
| `preset-layering.mdc` | `tooling-and-review/preset-layering.md` |
|
|
75
77
|
| `preset-twin-sync.mdc` | `tooling-and-review/preset-twin-sync.md` |
|
|
76
78
|
| `preset-token-budget.mdc` | `tooling-and-review/preset-token-budget.md` |
|
|
@@ -91,6 +93,8 @@ When editing `app/src/ui/**/*.tsx`, a **reduced** set loads:
|
|
|
91
93
|
| `architecture/product-specs.md` | `product-specs.mdc` | INDEX discovery; Stack notes |
|
|
92
94
|
| `review/code-review-mr.md` | `code-review-mr.mdc` | Next checklist refs |
|
|
93
95
|
| `review/technical-retro.md` | `technical-retro.mdc` | thin alias |
|
|
96
|
+
| `review/mockup-review.md` | `mockup-review.mdc` | Stack notes breakpoints; on-demand |
|
|
97
|
+
| `review/ux-design.md` | `ux-design.mdc` | Stack notes form-factor; on-demand |
|
|
94
98
|
| `meta/preset-*.md` | `preset-*.mdc` | author globs only |
|
|
95
99
|
|
|
96
100
|
## Folders
|
|
@@ -6,6 +6,8 @@ paths:
|
|
|
6
6
|
- app/src/types/**/*
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
When the prompt or `brief.md` contains a `figma.com` URL, **mockup review** (`mockup-reviewer` / skill `mockup-review`) must complete — or the user must continue past FAIL/`BLOCKED_MCP` via `/task-continue` — **before UI implementation**. Non-UI tasks no-op this gate. When required-signal and **no** `figma.com`, **`ux-design.md`** (on the analysis manifest entry) must exist and not be `INCOMPLETE` before UI work — else **blocked**, hand back to `task-analyst`. Parallel to the mockup gate.
|
|
10
|
+
|
|
9
11
|
<!-- shared-core: architecture/feature-delivery-workflow.md -->
|
|
10
12
|
|
|
11
13
|
|
|
@@ -29,7 +29,7 @@ Work request without `/task` — see **`tooling-and-review/agent-team-intake.md`
|
|
|
29
29
|
| Agent | May edit production code | Typical intent |
|
|
30
30
|
|-------|--------------------------|----------------|
|
|
31
31
|
| `task-router` | no | Every `/task` — writes `pipeline.json` |
|
|
32
|
-
| `task-analyst` | no | feature, refactor, test-only, a11y, docs-only, migration |
|
|
32
|
+
| `task-analyst` | no | feature, refactor, test-only, a11y, docs-only, migration, ux-design |
|
|
33
33
|
| `solution-architect` | no | spike, complex cross-layer feature |
|
|
34
34
|
| `migration-specialist` | no | migration — phased upgrade plan |
|
|
35
35
|
| `api-contract-reviewer` | no | new/changed backend API contracts |
|
|
@@ -39,6 +39,7 @@ Work request without `/task` — see **`tooling-and-review/agent-team-intake.md`
|
|
|
39
39
|
| `build-verifier` | no | lint/type-check/unit gate after developer |
|
|
40
40
|
| `accessibility-reviewer` | no | a11y, UI-heavy feature |
|
|
41
41
|
| `performance-auditor` | no | perf-audit, perf-sensitive feature |
|
|
42
|
+
| `mockup-reviewer` | no (team only) | mockup-review, feature/refactor/spike/spec-gen with `figma.com` |
|
|
42
43
|
| `code-reviewer` | no | most pipelines, review-only |
|
|
43
44
|
| `security-reviewer` | no | auth, forms, sensitive data |
|
|
44
45
|
| `qa-tester` | tests only | feature, bugfix, test-only |
|
|
@@ -52,6 +53,8 @@ Work request without `/task` — see **`tooling-and-review/agent-team-intake.md`
|
|
|
52
53
|
|
|
53
54
|
Full prompts: `.claude/agents/*.md`. Artifact conventions: `.claude/team/README.md`; schema SoT: **agent-artifact-contracts**.
|
|
54
55
|
|
|
56
|
+
**Behavioral UX:** `task-analyst` loads requestable skill `ux-design` for standalone intent `ux-design` and embedded required-signal / advisory UI AC. No `ux-designer` agent in v1.
|
|
57
|
+
|
|
55
58
|
## Dynamic pipeline
|
|
56
59
|
|
|
57
60
|
```mermaid
|
|
@@ -142,8 +145,8 @@ On each `subagentStop`, the hook reconciles `status.state` from the completing p
|
|
|
142
145
|
2. Read `pipeline.json` before every subagent invocation.
|
|
143
146
|
3. One role per subagent call — **except** parallel steps.
|
|
144
147
|
4. **Never** skip `humanGates` without `/task-continue` or explicit user approval.
|
|
145
|
-
5. Persist handoffs including `validation-report.md` (write files; do not rely on Shell `mkdir` alone).
|
|
146
|
-
6. On `changes_requested`: hook sets `retryAfterFix` → developer → same reviewer.
|
|
148
|
+
5. Persist handoffs including `validation-report.md`, `mockup-review.md`, and `ux-design.md` when produced (write files; do not rely on Shell `mkdir` alone).
|
|
149
|
+
6. On `changes_requested`: hook sets `retryAfterFix` → developer → same reviewer. Exception: embedded `mockup-reviewer` FAIL → `awaiting_approval` / `/task-continue` only — do **not** retry `feature-developer`.
|
|
147
150
|
7. On `validation_failed`: hook sets `retryAfterFix: build-verifier` → developer → build-verifier.
|
|
148
151
|
8. When all steps complete, suggest `/technical-retro <slug>`.
|
|
149
152
|
9. If `autoChain: false`, manual step only.
|