@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
|
@@ -8,6 +8,8 @@ paths:
|
|
|
8
8
|
- "**/*.{kt,kts}"
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
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.
|
|
12
|
+
|
|
11
13
|
<!-- shared-core: architecture/feature-delivery-workflow.md -->
|
|
12
14
|
|
|
13
15
|
# Feature delivery (Android Kotlin)
|
|
@@ -31,7 +31,7 @@ Work request without `/task` — see **`tooling-and-review/agent-team-intake.md`
|
|
|
31
31
|
| Agent | Prod writes | Typical intent |
|
|
32
32
|
|-------|-------------|----------------|
|
|
33
33
|
| `task-router` | no (team) | Every `/task` |
|
|
34
|
-
| `task-analyst` | no | feature, refactor, test-only, a11y, docs, migration |
|
|
34
|
+
| `task-analyst` | no | feature, refactor, test-only, a11y, docs, migration, ux-design |
|
|
35
35
|
| `solution-architect` | no | spike, cross-layer Feature |
|
|
36
36
|
| `migration-specialist` | no | Android Studio / AGP/Gradle modules/Android upgrades |
|
|
37
37
|
| `api-contract-reviewer` | no | OpenAPI / Kotlin codegen contracts |
|
|
@@ -41,6 +41,7 @@ Work request without `/task` — see **`tooling-and-review/agent-team-intake.md`
|
|
|
41
41
|
| `build-verifier` | no | ./gradlew + ktlint/detekt/Format + unit smoke; preset-structure for preset PRs |
|
|
42
42
|
| `accessibility-reviewer` | no | TalkBack / font scale / semantics |
|
|
43
43
|
| `performance-auditor` | no | launch / Profiler / Macrobenchmark |
|
|
44
|
+
| `mockup-reviewer` | no (team only) | mockup-review, feature/refactor/spike/spec-gen with `figma.com` |
|
|
44
45
|
| `code-reviewer` | no | most pipelines, review-only |
|
|
45
46
|
| `security-reviewer` | no | Android Keystore / encrypted storage, network security / cleartext, PII |
|
|
46
47
|
| `qa-tester` | tests | feature, bugfix, test-only |
|
|
@@ -54,6 +55,8 @@ Work request without `/task` — see **`tooling-and-review/agent-team-intake.md`
|
|
|
54
55
|
|
|
55
56
|
Full prompts: `.claude/agents/*.md`. Artifact conventions: `.claude/team/README.md`; schema SoT: **agent-artifact-contracts**.
|
|
56
57
|
|
|
58
|
+
**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.
|
|
59
|
+
|
|
57
60
|
**Product specs:** When `/task`, `/feature-start`, or `/spec-start` touches pages/features/`docs/specs`: if INDEX exists and no generate intent → instruct next agent to load requestable **`product-specs`** (consume; soft-fail; never invent). If generate/bootstrap/`spec-gen` → load **`product-specs-authoring`** + skill **`spec-authoring`** inside **task-analyst** (not a separate pipeline step); pass created spec paths + INDEX diff in handoff; human gate must approve before feature-developer. No-op if INDEX absent and no author intent.
|
|
58
61
|
|
|
59
62
|
When editing `packages/ai-rules/presets/**`, follow **`tooling-and-review/preset-pr-checklist.md`** (+ twin-sync / layering / token-budget / leakage meta-rules).
|
|
@@ -103,8 +106,8 @@ On each `subagentStop`, the hook reconciles `status.state` from the completing p
|
|
|
103
106
|
2. Read `pipeline.json` before every subagent invocation.
|
|
104
107
|
3. One role per Task call — except parallel steps.
|
|
105
108
|
4. **Never** skip `humanGates` without `/task-continue` or explicit approval.
|
|
106
|
-
5. Persist handoffs to disk under `.claude/team/tasks/<slug>/` via **Write** (not Shell `mkdir`).
|
|
107
|
-
6. On `changes_requested`: developer → same reviewer.
|
|
109
|
+
5. Persist handoffs to disk under `.claude/team/tasks/<slug>/` via **Write** (not Shell `mkdir`), including `mockup-review.md` / `ux-design.md` when those producers ran.
|
|
110
|
+
6. On `changes_requested`: developer → same reviewer. Exception: embedded `mockup-reviewer` FAIL → `awaiting_approval` / `/task-continue` only (no developer retry).
|
|
108
111
|
7. On `validation_failed`: developer → build-verifier.
|
|
109
112
|
8. When all steps complete, suggest `/technical-retro <slug>`.
|
|
110
113
|
9. If `autoChain: false`, do not rely on hook.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Figma mockup review checklist (DS, coverage, viewports). On-demand — load via mockup-reviewer / skill mockup-review.
|
|
3
|
+
paths:
|
|
4
|
+
- .claude/commands/**/*
|
|
5
|
+
- .claude/team/**/*
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- shared-core: review/mockup-review.md -->
|
|
9
|
+
|
|
10
|
+
# Mockup review checklist
|
|
11
|
+
|
|
12
|
+
On-demand reviewer checklist for Figma mockups. **Procedure:** skill `mockup-review`. **Agent:** `mockup-reviewer`. Do not inline this checklist into the agent prompt.
|
|
13
|
+
|
|
14
|
+
Stack-agnostic: no app-source globs, Playwright, or `xcodebuild`. Breakpoint **examples** live in adapter **Stack notes** only — do not FAIL on exact pixels.
|
|
15
|
+
|
|
16
|
+
## When to load
|
|
17
|
+
|
|
18
|
+
- Pipeline step `mockup-reviewer` (standalone intent `mockup-review` or embedded after analyst)
|
|
19
|
+
- Prompt or `brief.md` contains a `figma.com` URL on a UI-capable stack
|
|
20
|
+
- User asks to review a mockup / Figma file (not a code MR)
|
|
21
|
+
|
|
22
|
+
## Inputs
|
|
23
|
+
|
|
24
|
+
1. Task `artifact-manifest.json`, then prompt Figma URL(s); `brief.md` / `decomposition.md` when present
|
|
25
|
+
2. Skill `mockup-review` + this rule
|
|
26
|
+
3. 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
|
|
27
|
+
|
|
28
|
+
## MCP-first
|
|
29
|
+
|
|
30
|
+
Required when MCP is up: `get_metadata`, `get_design_context`, `search_design_system`, `get_variable_defs`, `get_screenshot`. Optional: `get_libraries`, `get_code_connect_map`.
|
|
31
|
+
|
|
32
|
+
**Forbidden:** `use_figma`, `create_new_file`, `generate_*`, `weave_*`, `upload_assets`, `send_code_connect_mappings`. FigJam URL → `BLOCKED_MCP` / out of scope (do not call `get_figjam` unless the URL is a FigJam board — then still `BLOCKED_MCP`).
|
|
33
|
+
|
|
34
|
+
Cite `fileKey` + node IDs. Screenshots are supporting evidence, not a second reviewer. No screenshot-only path.
|
|
35
|
+
|
|
36
|
+
**Node caps:** ≤12 screen-level frames; `get_metadata` depth ≤3 named-frame levels; ≤3 screenshots (prefer one per small/medium/large). `search_design_system` once; `get_variable_defs` once per file. No node-id on URL: pick top-level frames matching the feature name; if still unbounded → `BLOCKED_MCP` (or `PASS_WITH_NOTES` only if MCP returned a tiny file) — do not dump the whole file.
|
|
37
|
+
|
|
38
|
+
**Degradation:** MCP unavailable or OAuth fail → verdict `BLOCKED_MCP`. Do **not** invent DS compliance claims.
|
|
39
|
+
|
|
40
|
+
## Review dimensions
|
|
41
|
+
|
|
42
|
+
### DS components (AC-4)
|
|
43
|
+
|
|
44
|
+
When an attached library is detectable (`search_design_system` / `get_metadata`): list **library component instances vs custom frames** with file/node references. Flag substitutions where a DS equivalent exists.
|
|
45
|
+
|
|
46
|
+
- Critical DS reimplementation (custom frame where an attached-library component exists) → **FAIL**
|
|
47
|
+
- One-off frame, no DS equivalent; mixed/unpublished library → WARN or notes (`PASS_WITH_NOTES`)
|
|
48
|
+
- No attached library detectable → notes only; do not invent DS claims (`PASS_WITH_NOTES`)
|
|
49
|
+
|
|
50
|
+
Confidence: `high` (MCP library match) / `low` (unpublished or mixed) — prefer `PASS_WITH_NOTES` over FAIL when confidence is low.
|
|
51
|
+
|
|
52
|
+
### Tokens (AC-5)
|
|
53
|
+
|
|
54
|
+
When variables/styles are available (`get_variable_defs`, style metadata): flag fills, strokes, spacing, or typography that use raw values instead of bound variables/styles.
|
|
55
|
+
|
|
56
|
+
- Isolated unbound values → **WARN** (`PASS_WITH_NOTES`)
|
|
57
|
+
- Wholesale token ignore on a library-attached file (systemic; treat as critical DS with AC-4) → **FAIL**
|
|
58
|
+
|
|
59
|
+
### Quality (AC-6)
|
|
60
|
+
|
|
61
|
+
Cover at minimum, each item PASS / WARN / FAIL eligible:
|
|
62
|
+
|
|
63
|
+
- Layer/frame naming hygiene
|
|
64
|
+
- Auto-layout vs absolute positioning for responsive regions
|
|
65
|
+
- Text style usage
|
|
66
|
+
- Component variant/property correctness
|
|
67
|
+
- Detached or orphaned component instances
|
|
68
|
+
|
|
69
|
+
Naming hygiene, minor detached instances, text-style drift → **WARN**. Detached **core** DS component that is a substitution → **FAIL** (same as AC-4 critical). Absolute layout on a region that is the only «responsive» evidence → WARN unless it also fails viewports.
|
|
70
|
+
|
|
71
|
+
### Feature coverage (AC-7)
|
|
72
|
+
|
|
73
|
+
Map **flows → screens/frames**, **actions → interactive elements**, and **states** (empty, loading, error, success, disabled/validation). List explicit **missing** items. Label scope **`inferred`** when only a URL is provided (no brief AC).
|
|
74
|
+
|
|
75
|
+
- Missing **core** flow or primary action from brief AC (or labeled `inferred` primary flow from the URL) → **FAIL**
|
|
76
|
+
- Missing empty/loading/error/success on a form/list called out in AC → **FAIL**
|
|
77
|
+
- Missing secondary states (disabled/validation) not in AC → **WARN**
|
|
78
|
+
|
|
79
|
+
### Viewports (AC-8)
|
|
80
|
+
|
|
81
|
+
Verify **≥3 viewport representations** (small / medium / large) via dedicated frames, Figma viewport presets, or responsive component variants.
|
|
82
|
+
|
|
83
|
+
- Fewer than 3 → **FAIL**
|
|
84
|
+
- 3 exist but sizes ≠ stack example buckets → **WARN** only (no exact pixel enforcement in core)
|
|
85
|
+
|
|
86
|
+
## Severity (v1)
|
|
87
|
+
|
|
88
|
+
Isolated **WARN** never blocks. Overall verdict = worst FAIL > BLOCKED_MCP > PASS_WITH_NOTES > PASS. Multiple WARNs without FAIL → `PASS_WITH_NOTES`, not FAIL.
|
|
89
|
+
|
|
90
|
+
## Report headings
|
|
91
|
+
|
|
92
|
+
Write `mockup-review.md` with these headings (must match the agent template):
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
# Mockup review: <slug>
|
|
96
|
+
|
|
97
|
+
## Verdict
|
|
98
|
+
PASS | PASS_WITH_NOTES | FAIL | BLOCKED_MCP
|
|
99
|
+
|
|
100
|
+
## Scope
|
|
101
|
+
- Figma fileKey / node IDs
|
|
102
|
+
- MCP: available | unavailable (reason)
|
|
103
|
+
- Feature scope source: brief AC | prompt | inferred
|
|
104
|
+
|
|
105
|
+
## Critical (must fix)
|
|
106
|
+
## Warnings (should fix)
|
|
107
|
+
## Suggestions
|
|
108
|
+
## DS compliance (AC-4, AC-5)
|
|
109
|
+
## Quality (AC-6)
|
|
110
|
+
## Feature coverage (AC-7)
|
|
111
|
+
## Viewport matrix (AC-8)
|
|
112
|
+
## AC coverage
|
|
113
|
+
| Criterion | Status | Notes |
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Stack notes
|
|
117
|
+
|
|
118
|
+
Illustrative Android buckets (not enforced pixels): ~sw360 / sw600 / sw840 (phone / tablet / large) mapped to small / medium / large.
|
package/presets/claude/android-kotlin/rules/tooling-and-review/preset-no-cross-stack-leakage.md
CHANGED
|
@@ -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
|
|
|
@@ -94,7 +96,6 @@ Required instead: package-manager–discovered typecheck/test (`mcp-ts-tooling`,
|
|
|
94
96
|
## Chain fork
|
|
95
97
|
|
|
96
98
|
`hooks/chain-team-phases.sh` must differ **byte-wise** pairwise among `next`, `nuxt`, `svelte`, `ios-swift`, `android-kotlin`, `go`, `java`, `mcp-ts`, `php-hexagonal`, and `php-laravel` (per platform).
|
|
97
|
-
|
|
98
99
|
## Stack notes
|
|
99
100
|
|
|
100
101
|
- **Authoring meta:** forbidden/required sections above describe **other stacks** (and this one) for preset authors. Consumer installs of `android-kotlin` must still keep foreign agent stems out of required handoffs.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Behavioral UX design checklist (IA, flows, states). On-demand — load via task-analyst / skill ux-design.
|
|
3
|
+
paths:
|
|
4
|
+
- .claude/commands/**/*
|
|
5
|
+
- .claude/team/**/*
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- shared-core: review/ux-design.md -->
|
|
9
|
+
|
|
10
|
+
# UX design checklist
|
|
11
|
+
|
|
12
|
+
On-demand behavioral UX checklist (IA, named flows, state matrix). **Procedure:** skill `ux-design`. **Producer:** `task-analyst` (not a pipeline agent). Do not inline this checklist into the analyst prompt.
|
|
13
|
+
|
|
14
|
+
Stack-agnostic: no app-source globs, Playwright, or `xcodebuild`. Form-factor **examples** live in adapter **Stack notes** only.
|
|
15
|
+
|
|
16
|
+
## When to load
|
|
17
|
+
|
|
18
|
+
- Standalone `/task` intent `ux-design` (modes `synthesize` | `review`; profile `light`; steps only `task-analyst`)
|
|
19
|
+
- Embedded on a UI-capable stack when **required-signal** or advisory UI AC fires on `feature` / `refactor` / `spike` / `spec-gen`
|
|
20
|
+
- Required-signal (any one): the user asked for UX, **or** AC explicitly require flows/states, **or** intent is `spec-gen` / `/spec-start` for a **page/feature**. Else **advisory** (notes only; skip if no UI surface)
|
|
21
|
+
- **Do not** load for backend-only AC even on a UI stack. Classify `mockup-review` (Figma) before `ux-design` before `review-only`
|
|
22
|
+
|
|
23
|
+
## Inputs
|
|
24
|
+
|
|
25
|
+
1. Task `artifact-manifest.json`, then prompt / `brief.md` / `decomposition.md` when present
|
|
26
|
+
2. Skill `ux-design` + this rule
|
|
27
|
+
3. Approved `docs/specs` only as product-behavior SoT **after** UX synthesis maps via Spec feed — do not write INDEX here
|
|
28
|
+
|
|
29
|
+
## Forbidden Figma MCP
|
|
30
|
+
|
|
31
|
+
Do **not** call Figma MCP. Only `mockup-reviewer` reads Figma. Forbidden by name: `get_metadata`, `get_design_context`, `get_screenshot`, `search_design_system`, `get_variable_defs`, `use_figma`, `create_new_file`, `generate_*`.
|
|
32
|
+
|
|
33
|
+
When `figma.com` is present and required-signal fires, emit a **thin** `ux-design.md` from AC only (IA/flows the mockup must cover; no visual or DS claims). If the user only pasted a URL and AC are visual, the UX file may be omitted; `mockup-review.md` coverage stands.
|
|
34
|
+
|
|
35
|
+
Do **not** write BMAD-style `DESIGN.md` or a second visual spine. One experience artifact: `ux-design.md`.
|
|
36
|
+
|
|
37
|
+
## Modes
|
|
38
|
+
|
|
39
|
+
| Mode | When |
|
|
40
|
+
|------|------|
|
|
41
|
+
| `synthesize` | Design UX from a brief/AC (standalone «разработай UX» / embedded required-signal) | <!-- i18n-keep: E4 -->
|
|
42
|
+
| `review` | Critique a brief/wireframe/description **without** Figma («ревью UX»). Figma + review-not-implement remains intent `mockup-review` | <!-- i18n-keep: E4 -->
|
|
43
|
+
|
|
44
|
+
## Required vs advisory
|
|
45
|
+
|
|
46
|
+
- **Required** when required-signal fires (user-asked-ux / ac-requires-flows-states / spec-gen-page-feature)
|
|
47
|
+
- **Advisory** otherwise (UI AC without those signals). Advisory `INCOMPLETE` → notes only; DoR may complete
|
|
48
|
+
- Skip the skill when there is no UI surface or the prompt is empty of UX-relevant AC
|
|
49
|
+
|
|
50
|
+
## Verdicts
|
|
51
|
+
|
|
52
|
+
`PASS` | `PASS_WITH_NOTES` | `INCOMPLETE`. Never copy the mockup FAIL-only hook (`changes_requested` + do-not-retry-developer). Incomplete UX is an analyst/DoR problem.
|
|
53
|
+
|
|
54
|
+
| Verdict | Required step | Advisory step | Standalone intent `ux-design` |
|
|
55
|
+
|---------|---------------|---------------|-------------------------------|
|
|
56
|
+
| `PASS` / `PASS_WITH_NOTES` | Analysis may complete DoR | Analysis may complete | `completed` |
|
|
57
|
+
| `INCOMPLETE` | DoR **not** met: `open_questions` / blocked analysis; existing `after:task-analyst` gate | Notes only; DoR may complete | `completed` (report-only) |
|
|
58
|
+
|
|
59
|
+
**Block (`INCOMPLETE` as DoR failure) only when the step was required and primary flows *or* the empty/error/loading matrix are missing.** Isolated missing microcopy or optional protagonist names never block.
|
|
60
|
+
|
|
61
|
+
## Surface-closure
|
|
62
|
+
|
|
63
|
+
Each stated need → a surface; each surface → a flow that lands there. If closure fails, list probes under **Open probes** — **do not invent** screens, flows, or copy to fill gaps.
|
|
64
|
+
|
|
65
|
+
## Spec feed
|
|
66
|
+
|
|
67
|
+
Analyst remains the **only** writer of `docs/specs` INDEX and page/feature files. Map `ux-design.md` → templates **after** UX synthesis (UX before `spec-authoring` author mode):
|
|
68
|
+
|
|
69
|
+
| `ux-design.md` heading | Page template | Feature template |
|
|
70
|
+
|------------------------|---------------|------------------|
|
|
71
|
+
| Scope + IA | **Overview** | **Overview** |
|
|
72
|
+
| Entry / actors | **Entry / actors** | — (page-level) |
|
|
73
|
+
| Primary flows | **Primary flows** | **Shared behavior / constraints** when a flow is cross-page |
|
|
74
|
+
| States | **States** (loading/empty/error/success) | **Cross-cutting states** when shared |
|
|
75
|
+
| Interaction notes + microcopy direction | Inform **Acceptance criteria**; leftover → **Edge cases** | Shared constraints |
|
|
76
|
+
| Accessibility floor (behavioral) | Testable AC without pixels; else Edge cases | Shared constraints |
|
|
77
|
+
| Surface-closure probes | Analyst `open_questions` — **do not** invent spec rows | Same |
|
|
78
|
+
|
|
79
|
+
## Manifest
|
|
80
|
+
|
|
81
|
+
When produced, append `ux-design.md` to the **`analysis`** entry `authoritativePaths` and `evidencePaths`. Do **not** add a new default producer row for v1 (`ux-designer` is deferred).
|
|
82
|
+
|
|
83
|
+
## Report headings
|
|
84
|
+
|
|
85
|
+
Write `ux-design.md` with these headings (must match the architecture artifact contract):
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
# UX design: <slug>
|
|
89
|
+
## Mode
|
|
90
|
+
synthesize | review
|
|
91
|
+
## Verdict
|
|
92
|
+
PASS | PASS_WITH_NOTES | INCOMPLETE
|
|
93
|
+
## Scope
|
|
94
|
+
- Form factor: web | ios | android | mixed
|
|
95
|
+
- Figma present: yes | no
|
|
96
|
+
- Required-signal: user-asked-ux | ac-requires-flows-states | spec-gen-page-feature | advisory
|
|
97
|
+
## Information architecture
|
|
98
|
+
## Entry / actors
|
|
99
|
+
## Primary flows
|
|
100
|
+
## States
|
|
101
|
+
## Interaction notes
|
|
102
|
+
## Microcopy direction
|
|
103
|
+
## Accessibility floor (behavioral)
|
|
104
|
+
## Spec feed
|
|
105
|
+
## Open probes
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Stack notes
|
|
109
|
+
|
|
110
|
+
Form-factor **android**: navigation chrome, system back, TalkBack / font-scale intent. Same `ux-design.md` schema as web; put sw/window-size examples here only — do not FAIL on exact dp.
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
| Skill | Purpose |
|
|
4
4
|
|-------|---------|
|
|
5
5
|
| `feature-delivery` | Domain → Data → VM → View → tests → post-change-build |
|
|
6
|
+
| `mockup-review` | Figma mockup review: DS, coverage, viewports (standalone or embedded) |
|
|
7
|
+
| `ux-design` | Behavioral UX synthesis/review via task-analyst (standalone or embedded; no Figma MCP) |
|
|
6
8
|
| `code-review` | Android MR checklist |
|
|
7
9
|
| `unit-testing` | JUnit 4/5 (repo default) |
|
|
8
10
|
| `instrumentation-ui-e2e` | Android instrumentation plan/generate/heal (← next `playwright-e2e`) |
|
|
@@ -19,6 +19,9 @@ description: Delivers Android Kotlin/Jetpack Compose features end-to-end across
|
|
|
19
19
|
- **Don't** invent alternate architecture or persistence stacks (e.g. MVI frameworks, Room vs SQLDelight) unless the repo already uses them.
|
|
20
20
|
- **Don't** use yarn, browser e2e, or `app/src` paths — wrong stack.
|
|
21
21
|
|
|
22
|
+
- If the prompt or brief contains a `figma.com` URL, load requestable skill `mockup-review` and do not start UI work until the mockup-reviewer step is completed or the user continued past FAIL/`BLOCKED_MCP`.
|
|
23
|
+
- When required-signal (user asked UX, AC require flows/states, or spec-gen page/feature) and **no** `figma.com` URL: `ux-design.md` must exist on the analysis manifest entry (verdict not `INCOMPLETE`) before UI work. If missing, **blocked** — hand back to `task-analyst`. Parallel to the mockup gate when Figma exists.
|
|
24
|
+
|
|
22
25
|
## Scope discipline
|
|
23
26
|
|
|
24
27
|
Implement only the current AC / decomposition task. Clarify ambiguity before coding; do not add unrelated hardening, polish, or drive-by refactors. See `feature-developer` → **Zero improvisation**.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mockup-review
|
|
3
|
+
description: Reviews a Figma mockup for design-system compliance, feature coverage, and viewport matrix via Figma MCP. Use for standalone mockup-review intent or when a feature/refactor/spike/spec-gen task includes a figma.com URL.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Mockup review
|
|
7
|
+
|
|
8
|
+
Requestable procedure for agent `mockup-reviewer`. Checklist lives in rule `mockup-review` — do not duplicate it here.
|
|
9
|
+
|
|
10
|
+
## When to run
|
|
11
|
+
|
|
12
|
+
- Standalone `/task` intent `mockup-review` (report-only; profile `light`; steps only `mockup-reviewer`).
|
|
13
|
+
- Embedded: `feature` / `refactor` / `spike` / `spec-gen` whose prompt or `brief.md` contains a `figma.com` URL on a UI stack — after `task-analyst` (when present), before architect and developer.
|
|
14
|
+
|
|
15
|
+
## MCP OAuth preflight
|
|
16
|
+
|
|
17
|
+
Confirm Figma MCP is configured (see `MCP.md`). Do not ship secrets. If MCP is down or auth fails, write `mockup-review.md` with verdict `BLOCKED_MCP` and receipt `blocked`. Do not invent DS claims. Embedded skip-forward is `/task-continue` (explicit «proceed without MCP»).
|
|
18
|
+
|
|
19
|
+
## Plugin skills
|
|
20
|
+
|
|
21
|
+
If plugin skills `figma-design-to-code` / `figma-use` are installed, load them for MCP invocation recipes; do not paste their bodies; do not run design-to-code. Preset owns the checklist, agent, and routing; plugin owns MCP recipes.
|
|
22
|
+
|
|
23
|
+
## Load the checklist
|
|
24
|
+
|
|
25
|
+
Load requestable rule `mockup-review` and follow its review dimensions, node caps, and report headings.
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
|
|
29
|
+
Write `.claude/team/tasks/<slug>/mockup-review.md` and upsert manifest entry id `mockup-review` (producer `mockup-reviewer`). Receipt mapping is in the agent prompt.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ux-design
|
|
3
|
+
description: Behavioral UX synthesis and review for task-analyst. Modes synthesize|review. Standalone intent ux-design or embedded required-signal / advisory UI AC. No Figma MCP; no DESIGN.md.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UX design
|
|
7
|
+
|
|
8
|
+
Requestable procedure for **task-analyst** (not a pipeline agent). Checklist lives in rule `ux-design` — do not duplicate it here.
|
|
9
|
+
|
|
10
|
+
**Not** a Figma workflow: do not call Figma MCP; do not write `DESIGN.md`. Visual/DS/viewport audit stays with `mockup-reviewer` / skill `mockup-review`.
|
|
11
|
+
|
|
12
|
+
## When to run
|
|
13
|
+
|
|
14
|
+
- Standalone `/task` intent `ux-design` (report-only; profile `light`; steps only `task-analyst`; modes `synthesize` | `review`; `humanGates: []`).
|
|
15
|
+
- Embedded: `feature` / `refactor` / `spike` / `spec-gen` on a UI stack when required-signal or advisory UI AC fires — inside the analyst step (no new pipeline agent). Required-signal: user asked UX, or AC require flows/states, or spec-gen page/feature.
|
|
16
|
+
|
|
17
|
+
## Modes
|
|
18
|
+
|
|
19
|
+
- `synthesize` — elicit IA, named primary flows, empty/error/loading matrix from the brief/AC.
|
|
20
|
+
- `review` — critique a brief/wireframe/description **without** Figma. A `figma.com` URL with review-not-implement language is intent `mockup-review`, not this skill.
|
|
21
|
+
|
|
22
|
+
## Order
|
|
23
|
+
|
|
24
|
+
UX synthesis **before** skill `spec-authoring` / author mode when both apply. Analyst remains the only INDEX writer. Map headings via the rule's Spec feed table; do not paste the whole UX file into `docs/specs`.
|
|
25
|
+
|
|
26
|
+
## Forbidden Figma MCP
|
|
27
|
+
|
|
28
|
+
Do not call `get_metadata`, `get_design_context`, `get_screenshot`, `search_design_system`, `get_variable_defs`, `use_figma`, `create_new_file`, `generate_*`. Only `mockup-reviewer` reads Figma.
|
|
29
|
+
|
|
30
|
+
## Load the checklist
|
|
31
|
+
|
|
32
|
+
Load requestable rule `ux-design` and follow its required-signal vs advisory rules, forbidden MCP list, verdicts, surface-closure, and report headings.
|
|
33
|
+
|
|
34
|
+
## Output
|
|
35
|
+
|
|
36
|
+
Write `.claude/team/tasks/<slug>/ux-design.md` and append that path to the **`analysis`** manifest entry (`authoritativePaths` / `evidencePaths`). Do **not** create a new producer row. Receipt stays on `analysis`: required `INCOMPLETE` (missing primary flows or empty/error/loading matrix) → DoR not met; advisory `INCOMPLETE` → notes only. Never copy the mockup FAIL-only hook.
|
|
@@ -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
|
+
}
|
package/presets/claude/go/MCP.md
CHANGED
|
@@ -11,6 +11,6 @@ Copied to `.mcp.json` on `ai-rules init claude --preset go`.
|
|
|
11
11
|
|
|
12
12
|
Browser e2e MCP (Playwright / Chrome DevTools) are **not** part of the go preset.
|
|
13
13
|
|
|
14
|
-
Do not put secrets in the file. Optional: `CONTEXT7_API_KEY` in the environment. Figma — OAuth (do not commit the token).
|
|
14
|
+
Do not put secrets in the file. Optional: `CONTEXT7_API_KEY` in the environment. Figma — OAuth (do not commit the token). Optional Figma MCP is design context only — **not** a mockup-review pipeline (this preset never schedules `mockup-reviewer`).
|
|
15
15
|
|
|
16
16
|
After init: Claude Code MCP → enable servers. `init` overwrites the same-named `mcp.json`.
|
|
@@ -34,6 +34,12 @@ Document PASS/FAIL in `validation-report.md`.
|
|
|
34
34
|
3. **No react-performance on ios/go/java:** skill directory / required handoff must be absent under ios-swift, go, java, mcp-ts, php-hexagonal, and php-laravel → **FAIL** (leakage). Prefer `check:preset-leakage`.
|
|
35
35
|
4. **Rule eval (WARN):** `scripts/check-rule-eval.mjs` / `yarn check:rule-eval` should exist for maintainers; smoke optional. Hard fail only when the opt-in eval job runs — not part of default `check:preset-structure`.
|
|
36
36
|
|
|
37
|
+
|
|
38
|
+
**Forbidden mockup-reviewer:** agent file `agents/mockup-reviewer.md` or required `AGENT_HANDOFF` / pipeline handoff for `mockup-reviewer` → **FAIL** (no UI mockup reviewer).
|
|
39
|
+
|
|
40
|
+
**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).
|
|
41
|
+
|
|
42
|
+
|
|
37
43
|
## Artifact contract
|
|
38
44
|
|
|
39
45
|
- **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 **Go 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 "Go 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 "Go 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
|
|
|
@@ -22,7 +22,7 @@ When copying next pipeline templates: put Playwright stems in `skipped` with rea
|
|
|
22
22
|
| feature-developer | yes |
|
|
23
23
|
| build-verifier | no |
|
|
24
24
|
| debugger, ci-investigator | minimal |
|
|
25
|
-
| code-reviewer, accessibility-reviewer, security-reviewer, performance-auditor | no |
|
|
25
|
+
| code-reviewer, accessibility-reviewer, security-reviewer, performance-auditor, mockup-reviewer | no |
|
|
26
26
|
| qa-tester, unit-test-*, xcuitest-test-* | tests only |
|
|
27
27
|
| tech-writer | docs only |
|
|
28
28
|
|
|
@@ -38,7 +38,7 @@ Same tiers as **cursor/next** (see that README for full notes). Defaults in this
|
|
|
38
38
|
|------|-------------|--------|
|
|
39
39
|
| **cheap** | `fast` | router, analyst, build-verifier, code-reviewer, tech-writer, codebase-analyzer |
|
|
40
40
|
| **standard** | `inherit` | developer, debugger, ci-investigator, api-contract, a11y, qa, unit-*, xcuitest-* |
|
|
41
|
-
| **strong** | `claude-opus-4-8[effort=high]` | solution-architect, migration-specialist, security-reviewer, performance-auditor |
|
|
41
|
+
| **strong** | `claude-opus-4-8[effort=high]` | solution-architect, migration-specialist, security-reviewer, performance-auditor, mockup-reviewer |
|
|
42
42
|
|
|
43
43
|
Optional `steps[].model`: `cheap` \| `standard` \| `strong` (router/orchestrator policy — same as next).
|
|
44
44
|
|
|
@@ -42,6 +42,12 @@ When validating **ios-swift preset** changes (or `scope: preset-structure-valida
|
|
|
42
42
|
10. **Embed drift (hard in `check:preset-structure`):** `packages/ai-rules/scripts/check-shared-core-drift.sh` with `AI_RULES_DRIFT_FAIL=1`.
|
|
43
43
|
11. **Dogfood (monorepo soft):** `packages/ai-rules/scripts/sync-dogfood-cursor.sh`; mass deletion without migration doc → risk / FAIL for maintainers.
|
|
44
44
|
|
|
45
|
+
|
|
46
|
+
**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.
|
|
47
|
+
|
|
48
|
+
**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.
|
|
49
|
+
|
|
50
|
+
|
|
45
51
|
### Soft rules (do not FAIL alone)
|
|
46
52
|
|
|
47
53
|
- **Thin aliases:** `agent-team-intake`, `technical-retro` may be <15 body lines. Enforce ≥15 on **domain** rules.
|
|
@@ -55,6 +55,12 @@ Emit the owned implementation receipt with outcome `completed`. Handoff by layer
|
|
|
55
55
|
|
|
56
56
|
- When writing or changing code, load / follow rule `anti-sycophancy-discipline`.
|
|
57
57
|
|
|
58
|
+
## UX design (behavioral)
|
|
59
|
+
|
|
60
|
+
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`.
|
|
61
|
+
|
|
62
|
+
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.
|
|
63
|
+
|
|
58
64
|
## Product specs (docs/specs)
|
|
59
65
|
|
|
60
66
|
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.
|