Skip to main content

sfra-review

SFRA (Storefront Reference Architecture) code review skill using Swarm pattern. Analyzes controllers, models, ISML, services, jobs for best practices, security, and performance. Triggers on "SFRA review", "SFCC code review", "cartridge review"

Jump to install

Source facts

Repository
sizukutamago/claude-sfcc-plugin
Last source activity
February 6, 2026 at 16:55
Detected SKILL.md language
Japanese
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
26 files

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
name
sfra-review
description
SFRA (Storefront Reference Architecture) code review skill using Swarm pattern. Analyzes controllers, models, ISML, services, jobs for best practices, security, and performance. Triggers on "SFRA review", "SFCC code review", "cartridge review"
version
1.1.0
triggers
["SFRA review","SFCC code review","cartridge review","SFRA ใƒฌใƒ“ใƒฅใƒผ","ใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผ"]
# SFRA Best Practices Review ใ‚นใ‚ญใƒซ SFCC/SFRA ใ‚ณใƒผใƒ‰ใƒ™ใƒผใ‚นใฎใƒ™ใ‚นใƒˆใƒ—ใƒฉใ‚ฏใƒ†ใ‚ฃใ‚นใƒฌใƒ“ใƒฅใƒผใ‚’ๅฎŸ่กŒใ™ใ‚‹ใ€‚**Swarm ใƒ‘ใ‚ฟใƒผใƒณ**๏ผˆไธฆๅˆ—ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆๅฎŸ่กŒ๏ผ‰ใง็ถฒ็พ…็š„ใชๅˆ†ๆžใ‚’่กŒใ„ใ€P0/P1/P2 ใฎ้‡ๅคงๅบฆไป˜ใใƒฌใƒ“ใƒฅใƒผใƒฌใƒใƒผใƒˆใ‚’็”Ÿๆˆใ€‚ ## ๆฆ‚่ฆ | ้ …็›ฎ | ๅ†…ๅฎน | |------|------| | **ๅฏพ่ฑก** | SFRA Storefront + Jobs๏ผˆapp_storefront_base + overlay cartridges๏ผ‰ | | **้™คๅค–** | Headless/SCAPI/PWA Kit ใฎๅฎŸ่ฃ…ใƒฌใƒ“ใƒฅใƒผ๏ผˆๅˆฅใ‚นใ‚ญใƒซใงๅฏพๅฟœ๏ผ‰ใ€‚SCAPI ็งป่กŒ**ๆบ–ๅ‚™ๅบฆ**ใƒใ‚งใƒƒใ‚ฏใฏๅซใ‚€ | | **ๅ‡บๅŠ›ๅฝขๅผ** | Markdown ใƒฌใƒ“ใƒฅใƒผใƒฌใƒใƒผใƒˆ๏ผˆP0/P1/P2 ้‡ๅคงๅบฆไป˜ใ๏ผ‰ | | **ไธญ้–“ๆˆๆžœ็‰ฉ** | `docs/review/.work/` ใซไฟๅญ˜ | | **ๆœ€็ต‚ๆˆๆžœ็‰ฉ** | `docs/review/sfra-review.md` | ## ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Orchestrator (SKILL.md) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ Phase 0: Scope Detection โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚ โ”‚ โ”‚ - Cartridge ๆง‹ๆˆๆคœๅ‡บ๏ผˆapp_storefront_base, plugin_, int_๏ผ‰ โ”‚โ”‚ โ”‚ โ”‚ - Sites/Locales ๆคœๅ‡บ โ”‚โ”‚ โ”‚ โ”‚ - ๅฏพ่ฑกใƒ•ใ‚กใ‚คใƒซๆ•ฐ/LOC ็ฎ—ๅ‡บ โ”‚โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Phase 1: Indexer (sequential) โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚ โ”‚ โ”‚ Controllers/Routes ใƒžใƒƒใƒ—ใ€ISML ไธ€่ฆงใ€Services ๅฎš็พฉใ€ โ”‚โ”‚ โ”‚ โ”‚ Hooks/Jobs ไธ€่ฆงใ€Model ไธ€่ฆงใ‚’ "ๅœฐๅ›ณ" ใจใ—ใฆ็”Ÿๆˆ โ”‚โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Phase 2: Explorer Swarm (ไธฆๅˆ— - 7 agents) โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚controllerโ”‚ model โ”‚ isml โ”‚ client โ”‚ service โ”‚cartridgeโ”‚ jobs โ”‚ โ”‚ โ”‚ (sonnet) โ”‚ (opus) โ”‚(sonnet) โ”‚(sonnet) โ”‚ (opus) โ”‚(sonnet) โ”‚(sonnet) โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚ โ”‚ โ–ผ โ”‚ โ”‚ Aggregator (opus) โ”‚ โ”‚ Two-step Reduce โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Phase 3: Reviewer Swarm (ไธฆๅˆ— - 4 agents) โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚perform. โ”‚security โ”‚ best- โ”‚ anti- โ”‚ โ”‚ โ”‚ โ”‚ (haiku) โ”‚ (opus) โ”‚practice โ”‚ pattern โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ (haiku) โ”‚ (haiku) โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ–ผ โ”‚ โ”‚ Aggregator (opus) โ”‚ โ”‚ ็ตฑๅˆใƒฌใƒ“ใƒฅใƒผ + Gate ๅˆคๅฎš โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Phase 4: Reporter (sonnet) โ”‚ โ”‚ โ–ผ โ”‚ โ”‚ sfra-review.md โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผ ### Phase 0: ใ‚นใ‚ณใƒผใƒ—ๆคœๅ‡บ **็›ฎ็š„**: ใƒฌใƒ“ใƒฅใƒผๅฏพ่ฑกใฎ Cartridge ๆง‹ๆˆใจ่ฆๆจกใ‚’ๆŠŠๆก **ๆ‰‹้ †**: 1. ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใƒซใƒผใƒˆใง cartridge ๆง‹ๆˆใ‚’ๆคœๅ‡บ 2. `cartridge` ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช้…ไธ‹ใฎๆง‹้€ ใ‚’ๅˆ†ๆž 3. ๅฏพ่ฑกใƒ•ใ‚กใ‚คใƒซๆ•ฐใจ LOC ใ‚’็ฎ—ๅ‡บ **ๆคœๅ‡บ้ …็›ฎ**: ```yaml scope: cartridges: - name: "app_storefront_base" type: "base" path: "cartridges/app_storefront_base" - name: "app_custom_mystore" type: "overlay" path: "cartridges/app_custom_mystore" - name: "int_payment" type: "integration" path: "cartridges/int_payment" stats: total_files: 450 total_loc: 25000 controllers: 35 models: 28 templates: 120 jobs: 8 ``` **ๅ‡บๅŠ›**: `docs/review/.work/00_scope.json` **Done ๆกไปถ**: cartridge ๆง‹ๆˆใŒๆคœๅ‡บใ•ใ‚Œใ€stats ใŒ็ฎ—ๅ‡บใ•ใ‚Œใฆใ„ใ‚‹ --- ### Phase 1: Indexer๏ผˆใ‚ณใƒผใƒ‰ใƒ™ใƒผใ‚นๅœฐๅ›ณไฝœๆˆ๏ผ‰ **็›ฎ็š„**: ใƒฌใƒ“ใƒฅใƒผๅฏพ่ฑกใฎใ‚ณใƒผใƒ‰ใƒ™ใƒผใ‚นๅ…จไฝ“ๅƒใ‚’ "ๅœฐๅ›ณ" ใจใ—ใฆๅฏ่ฆ–ๅŒ– **ๅ…ฅๅŠ›**: Phase 0 ใฎ scope ๆƒ…ๅ ฑ **ๆ‰‹้ †**: 1. Task ใƒ„ใƒผใƒซใง `sfra-indexer` ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’่ตทๅ‹•๏ผˆmodel: sonnet๏ผ‰ 2. Controllers/Routes ใฎใƒžใƒƒใƒ”ใƒณใ‚ฐ 3. Models/Decorators ใฎไธ€่ฆงๅŒ– 4. ISML ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใฎไพๅญ˜้–ขไฟ‚ 5. Services/Hooks ใฎๅฎš็พฉๅŽ้›† 6. Jobs ใฎไธ€่ฆงๅŒ– **ๅ‡บๅŠ›**: `docs/review/.work/01_index.md` **ๅ‡บๅŠ›ๅฝขๅผ**: ```markdown # SFRA Codebase Index ## Controllers (35 files) | Controller | Routes | Middleware | Cartridge | |------------|--------|------------|-----------| | Account.js | Login, Register, ... | auth, csrf | app_custom | ## Models (28 files) | Model | Decorators | Used By | |-------|------------|---------| | ProductModel.js | base, full | PDP, PLP | ## ISML Templates (120 files) | Template | Includes | Remote Includes | |----------|----------|-----------------| | pdpMain.isml | productCard, reviews | recommendations | ## Services (12 definitions) | Service ID | Type | Timeout | Retry | |------------|------|---------|-------| | payment.authorize | HTTP | 30s | 3 | ## Jobs (8 definitions) | Job ID | Steps | Schedule | |--------|-------|----------| | ProductSync | 3 | Daily 2AM | ``` **Done ๆกไปถ**: ๅ…จใ‚ซใƒ†ใ‚ดใƒชใฎ index ใŒ็”Ÿๆˆใ•ใ‚Œใฆใ„ใ‚‹ --- ### Phase 2: Explorer Swarm๏ผˆใ‚ณใƒผใƒ‰ๅˆ†ๆž๏ผ‰ **็›ฎ็š„**: ๅ„ใƒฌใ‚คใƒคใƒผใ‚’ๅฐ‚้–€ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใŒไธฆๅˆ—ใงๅˆ†ๆž **ๅ…ฅๅŠ›**: Phase 1 ใฎ index ๆƒ…ๅ ฑ **ๆ‰‹้ †**: 1. **ไธฆๅˆ—ๅฎŸ่กŒ**: 7 ใคใฎ Explorer ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ Task ใƒ„ใƒผใƒซใงๅŒๆ™‚่ตทๅ‹• ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ไธฆๅˆ—ๅฎŸ่กŒ๏ผˆๅ˜ไธ€ใƒกใƒƒใ‚ปใƒผใ‚ธใง่ค‡ๆ•ฐ Task tool ๅ‘ผใณๅ‡บใ—๏ผ‰ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ Task(sfra-explorer-controller, model: sonnet) โ”€โ”€โ” โ”‚ โ”‚ Task(sfra-explorer-model, model: opus) โ”€โ”€โ”ผโ”€โ†’ ไธฆๅˆ— โ”‚ โ”‚ Task(sfra-explorer-isml, model: sonnet) โ”€โ”€โ”ค โ”‚ โ”‚ Task(sfra-explorer-client, model: sonnet) โ”€โ”€โ”ค โ”‚ โ”‚ Task(sfra-explorer-service, model: opus) โ”€โ”€โ”ค โ”‚ โ”‚ Task(sfra-explorer-cartridge, model: sonnet) โ”€โ”€โ”ค โ”‚ โ”‚ Task(sfra-explorer-jobs, model: sonnet) โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` 2. ๅ„ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฏๆ‹…ๅฝ“็ฏ„ๅ›ฒใฎใฟใ‚’ๅˆ†ๆžใ—ใ€ใƒใƒณใƒ‰ใ‚ชใƒ•ๅฐ็ญ’ๅฝขๅผใงๅ‡บๅŠ› 3. **Aggregator ๅ‘ผใณๅ‡บใ—**: Two-step Reduce ใง็ตฑๅˆ - Step 1: JSON ๆญฃ่ฆๅŒ–๏ผˆๅ„ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฎ findings ใ‚’ใƒžใƒผใ‚ธ๏ผ‰ - Step 2: Adjudication Pass๏ผˆ็Ÿ›็›พ่งฃๆถˆใ€้‡่ค‡ๆŽ’้™ค๏ผ‰ **Explorer ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆไธ€่ฆง**: | Agent | Model | ๆ‹…ๅฝ“็ฏ„ๅ›ฒ | |-------|-------|----------| | explorer-controller | sonnet | Controllers, Routes, Middleware | | explorer-model | opus | Models, Decorators, Transactions | | explorer-isml | sonnet | Templates, Resource Bundles | | explorer-client | sonnet | Client-side JS, CSS | | explorer-service | opus | Services, External Integrations | | explorer-cartridge | sonnet | Architecture, Layering | | explorer-jobs | sonnet | Jobs, Batch Processing | **ๅ‡บๅŠ›**: - `docs/review/.work/02_explorer/*.md`๏ผˆๅ„ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฎ็”Ÿๅ‡บๅŠ›๏ผ‰ - `docs/review/.work/03_explorer_unified.md`๏ผˆ็ตฑๅˆๆธˆใฟๅˆ†ๆž๏ผ‰ **Done ๆกไปถ**: - 7 ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ™ในใฆใŒ status: ok ใงๅฎŒไบ† - explorer_unified.md ใŒ็”Ÿๆˆใ•ใ‚Œใฆใ„ใ‚‹ --- ### Phase 3: Reviewer Swarm๏ผˆๅ“่ณชใƒฌใƒ“ใƒฅใƒผ๏ผ‰ **็›ฎ็š„**: Cross-cutting concerns ใ‚’ๅฐ‚้–€ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใŒไธฆๅˆ—ใงใƒฌใƒ“ใƒฅใƒผ **ๅ…ฅๅŠ›**: Phase 2 ใฎ็ตฑๅˆๅˆ†ๆž็ตๆžœ **ๆ‰‹้ †**: 1. **ไธฆๅˆ—ๅฎŸ่กŒ**: 4 ใคใฎ Reviewer ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ Task ใƒ„ใƒผใƒซใงๅŒๆ™‚่ตทๅ‹• ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ไธฆๅˆ—ๅฎŸ่กŒ๏ผˆๅ˜ไธ€ใƒกใƒƒใ‚ปใƒผใ‚ธใง่ค‡ๆ•ฐ Task tool ๅ‘ผใณๅ‡บใ—๏ผ‰ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ Task(sfra-reviewer-performance, model: haiku) โ”€โ”€โ” โ”‚ โ”‚ Task(sfra-reviewer-security, model: opus) โ”€โ”€โ”ผโ”€โ†’ ไธฆๅˆ— โ”‚ โ”‚ Task(sfra-reviewer-bestpractice, model: haiku) โ”€โ”€โ”ค โ”‚ โ”‚ Task(sfra-reviewer-antipattern, model: haiku) โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` 2. ๅ„ Reviewer ใฏ P0/P1/P2 ใฎ้‡ๅคงๅบฆไป˜ใใงๆŒ‡ๆ‘˜ไบ‹้ …ใ‚’ๅ‡บๅŠ› 3. **Aggregator ๅ‘ผใณๅ‡บใ—**: ๆŒ‡ๆ‘˜ใฎ็ตฑๅˆใจ Gate ๅˆคๅฎš **Reviewer ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆไธ€่ฆง**: | Agent | Model | ๆ‹…ๅฝ“็ฏ„ๅ›ฒ | |-------|-------|----------| | reviewer-performance | haiku | Caching, require scope, API calls | | reviewer-security | opus | XSS, CSRF, Input validation, PII | | reviewer-bestpractice | haiku | SFRA guidelines, patterns | | reviewer-antipattern | haiku | Known anti-patterns detection | **ๅ‡บๅŠ›**: - `docs/review/.work/04_reviewer/*.md`๏ผˆๅ„ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฎ็”Ÿๅ‡บๅŠ›๏ผ‰ - `docs/review/.work/05_review_unified.md`๏ผˆ็ตฑๅˆๆธˆใฟใƒฌใƒ“ใƒฅใƒผ๏ผ‰ **Done ๆกไปถ**: - 4 ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ™ในใฆใŒ status: ok ใงๅฎŒไบ† - Gate ๅˆคๅฎšใŒๅฎŸ่กŒใ•ใ‚Œใฆใ„ใ‚‹ --- ### Phase 4: Reporter๏ผˆใƒฌใƒใƒผใƒˆ็”Ÿๆˆ๏ผ‰ **็›ฎ็š„**: ๆœ€็ต‚ใƒฌใƒ“ใƒฅใƒผใƒฌใƒใƒผใƒˆใ‚’็”Ÿๆˆ **ๅ…ฅๅŠ›**: Phase 3 ใฎ็ตฑๅˆใƒฌใƒ“ใƒฅใƒผ็ตๆžœ **ๆ‰‹้ †**: 1. Task ใƒ„ใƒผใƒซใง `sfra-reporter` ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’่ตทๅ‹•๏ผˆmodel: sonnet๏ผ‰ 2. ใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใซๅŸบใฅใ„ใฆใƒฌใƒใƒผใƒˆ็”Ÿๆˆ 3. Executive Summary ไฝœๆˆ 4. ใ‚ซใƒ†ใ‚ดใƒชๅˆฅ Findings ๆ•ด็† 5. Recommendations ไฝœๆˆ **ๅ‡บๅŠ›**: `docs/review/sfra-review.md` **Done ๆกไปถ**: ใƒฌใƒใƒผใƒˆใŒ็”Ÿๆˆใ•ใ‚Œใ€P0/P1/P2 ใฎใ‚ตใƒžใƒชใƒผใŒๅซใพใ‚Œใฆใ„ใ‚‹ --- ## Gate ๅˆคๅฎšใƒญใ‚ธใƒƒใ‚ฏ ### P0 (Blocker) - 1 ใคใง FAIL | Category | Trigger | |----------|---------| | Security | XSS ่„†ๅผฑๆ€งใ€PII ใƒญใ‚ฐๅ‡บๅŠ›ใ€CSRF ๆœชๅฏพ็ญ– | | Transaction | Transaction ๅขƒ็•Œๅค–ใฎๆ›ธใ่พผใฟ | | Architecture | app_storefront_base ็›ดๆŽฅ็ทจ้›† | | Performance | ใ‚ฐใƒญใƒผใƒใƒซ require ใŒ 10 ็ฎ‡ๆ‰€ไปฅไธŠ | ### P1 (Major) - 2 ใคไปฅไธŠใง FAIL | Category | Trigger | |----------|---------| | Controller | server.append() ใงใฎ ViewData ๅค‰ๆ›ด | | ISML | isscript ๅ†… business logic 5 ็ฎ‡ๆ‰€ไปฅไธŠ | | Service | ใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆ/ใƒชใƒˆใƒฉใ‚คๆœช่จญๅฎš | | Cartridge | Naming collision ๆคœๅ‡บ | | Jobs | ๅ†ช็ญ‰ๆ€งๆœชไฟ่จผใ€Transaction ๅขƒ็•Œ้•ๅ | ### P2 (Minor) - ่ฆๅฏพๅฟœใƒชใ‚นใƒˆ | Category | Trigger | |----------|---------| | Performance | ใ‚ญใƒฃใƒƒใ‚ทใƒฅๆœชๆดป็”จ | | Code Quality | Magic numbers | | Best Practice | ่ปฝๅพฎใชใ‚ฌใ‚คใƒ‰ใƒฉใ‚คใƒณ้•ๅ | ### Gate ๅˆคๅฎš็ตๆžœ ```yaml gate_decision: p0_count: 0 p1_count: 3 p2_count: 12 result: "PASS" # P0=0 ใ‹ใค P1<2 ใชใ‚‰ PASS overall_status: "REVIEW_NEEDED" # P1>0 ใพใŸใฏ P2>5 ใชใ‚‰่ฆใƒฌใƒ“ใƒฅใƒผ ``` --- ## ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆๅ‘ผใณๅ‡บใ—ใƒ‘ใ‚ฟใƒผใƒณ ### Phase 2 Explorer Swarm ๅ‘ผใณๅ‡บใ—ไพ‹ ```markdown 7 ใคใฎ Explorer ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ไธฆๅˆ—ใง่ตทๅ‹•ใ™ใ‚‹ใ€‚ ๅ˜ไธ€ใฎใƒกใƒƒใ‚ปใƒผใ‚ธๅ†…ใง่ค‡ๆ•ฐใฎ Task tool ใ‚’ๅ‘ผใณๅ‡บใ™ใ€‚ Task( description: "Analyze SFRA controllers", prompt: "Index ใƒ•ใ‚กใ‚คใƒซ (.work/01_index.md) ใ‚’่ชญใฟใ€ Controllers/Routes/Middleware ใ‚’ๅˆ†ๆžใ—ใฆ ใƒ™ใ‚นใƒˆใƒ—ใƒฉใ‚ฏใƒ†ใ‚ฃใ‚น้•ๅใ‚’ๆคœๅ‡บใ›ใ‚ˆใ€‚ ๅ‡บๅŠ›: .work/02_explorer/controller.md", subagent_type: "sfra-explorer-controller", model: "sonnet" ) Task( description: "Analyze SFRA models", prompt: "Index ใƒ•ใ‚กใ‚คใƒซ (.work/01_index.md) ใ‚’่ชญใฟใ€ Models/Decorators/Transactions ใ‚’ๅˆ†ๆžใ—ใฆ ใƒ™ใ‚นใƒˆใƒ—ใƒฉใ‚ฏใƒ†ใ‚ฃใ‚น้•ๅใ‚’ๆคœๅ‡บใ›ใ‚ˆใ€‚ ๅ‡บๅŠ›: .work/02_explorer/model.md", subagent_type: "sfra-explorer-model", model: "opus" ) // ... ๆฎ‹ใ‚Š 5 ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆๅŒๆง˜ ``` ### Aggregator ๅ‘ผใณๅ‡บใ—ไพ‹ ```markdown ๅ…จ Explorer ใฎๅ‡บๅŠ›ใŒๆƒใฃใŸใ‚‰ Aggregator ใ‚’ๅ‘ผใณๅ‡บใ™ใ€‚ Task( description: "Aggregate explorer findings", prompt: ".work/02_explorer/ ้…ไธ‹ใฎๅ…จใƒ•ใ‚กใ‚คใƒซใ‚’่ชญใฟใ€ Two-step Reduce ใง็ตฑๅˆใ›ใ‚ˆใ€‚ Step 1: findings ใฎใƒžใƒผใ‚ธ Step 2: ็Ÿ›็›พ่งฃๆถˆใƒป้‡่ค‡ๆŽ’้™ค ๅ‡บๅŠ›: .work/03_explorer_unified.md", subagent_type: "sfra-aggregator", model: "opus" ) ``` --- ## ใƒ„ใƒผใƒซไฝฟ็”จใƒซใƒผใƒซ ### ๅ„ Phase ใงไฝฟ็”จๅฏ่ƒฝใชใƒ„ใƒผใƒซ | Phase | ่จฑๅฏใƒ„ใƒผใƒซ | ๅ‚™่€ƒ | |-------|-----------|------| | Phase 0 | Glob, Bash (read-only) | ใƒ•ใ‚กใ‚คใƒซๆคœๅ‡บใฎใฟ | | Phase 1 | Read, Glob, Grep | Index ไฝœๆˆ | | Phase 2 | Read, Glob, Grep | ๅˆ†ๆžใฎใฟ | | Phase 3 | Read | ใƒฌใƒ“ใƒฅใƒผใฎใฟ | | Phase 4 | Read, Write | ใƒฌใƒใƒผใƒˆ็”Ÿๆˆ | ### ๆ›ธใ่พผใฟๅˆถ้™ - **ๆ›ธใ่พผใฟๅฏ่ƒฝ**: `docs/review/` ใŠใ‚ˆใณ `docs/review/.work/` ใฎใฟ - **่ชญใฟๅ–ใ‚Šๅฐ‚็”จ**: ใใฎไป–ใ™ในใฆใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช --- ## Orchestrate ใ‚ณใƒžใƒณใƒ‰ ่‡ชๅ‹•ๅฎŸ่กŒใƒขใƒผใƒ‰ใงใฏใ€ไปฅไธ‹ใฎใƒ•ใƒญใƒผใงๅ…จ Phase ใ‚’้ †ๆฌกๅฎŸ่กŒใ™ใ‚‹: ### ่‡ชๅ‹•ๅฎŸ่กŒใƒ•ใƒญใƒผ ``` /sfra-review โ†’ Phase 0 โ†’ Phase 1 โ†’ Phase 2 (7 agents) โ†’ Aggregator โ†’ Phase 3 (4 agents) โ†’ Aggregator + Gate โ†’ Phase 4 โ†’ Report ``` ### Done ๅˆคๅฎš ๅ„ Phase ใฎๅฎŒไบ†ๆกไปถใ‚’ใƒใ‚งใƒƒใ‚ฏใ—ใ€ๆฌกใฎ Phase ใซ่‡ชๅ‹•้ท็งป: | Phase | Done ๆกไปถ | |-------|----------| | 0 | `00_scope.json` ใŒ็”Ÿๆˆๆธˆใฟ | | 1 | `01_index.md` ใŒ็”Ÿๆˆๆธˆใฟ | | 2 | 7 Explorer ใŒ status: okใ€`03_explorer_unified.md` ็”Ÿๆˆๆธˆใฟ | | 3 | 4 Reviewer ใŒ status: okใ€Gate ๅˆคๅฎšๅฎŒไบ† | | 4 | `sfra-review.md` ใŒ็”Ÿๆˆๆธˆใฟ | ### ใ‚จใƒฉใƒผใƒชใ‚ซใƒใƒชใƒผ - Explorer ไธ€้ƒจๅคฑๆ•—: ๆˆๅŠŸๅˆ†ใฎใฟใง Aggregator ๅฎŸ่กŒ๏ผˆ่ญฆๅ‘Šไป˜ใ๏ผ‰ - Reviewer ๅคฑๆ•—: Phase 3 ใ‹ใ‚‰ใƒชใƒˆใƒฉใ‚ค - Aggregator ๅคฑๆ•—: ๅฏพๅฟœใ™ใ‚‹ Phase ใ‹ใ‚‰ใƒชใƒˆใƒฉใ‚ค --- ## ใ‚จใƒฉใƒผใƒใƒณใƒ‰ใƒชใƒณใ‚ฐ | ็Šถๆณ | ๅฏพๅฟœ | |------|------| | Cartridge ๆœชๆคœๅ‡บ | status: blockedใ€ใƒฆใƒผใ‚ถใƒผใซใƒ‘ใ‚น็ขบ่ชใ‚’ๆฑ‚ใ‚ใ‚‹ | | Explorer ไธ€้ƒจๅคฑๆ•— | ่ญฆๅ‘Šใ‚’ๅ‡บๅŠ›ใ—ใ€ๆˆๅŠŸใ—ใŸใ‚‚ใฎใ ใ‘ใง็ถš่กŒ | | ๅ…จ Explorer ๅคฑๆ•— | status: blockedใ€ๅŽŸๅ› ใ‚’ๅ ฑๅ‘Š | | Aggregator ๅคฑๆ•— | Phase 2 ใ‹ใ‚‰ใƒชใƒˆใƒฉใ‚ค | | Reporter ๅคฑๆ•— | Phase 4 ใ‹ใ‚‰ใƒชใƒˆใƒฉใ‚ค | --- ## ๅ‡บๅŠ›ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชๆง‹้€  ``` docs/review/ โ”œโ”€โ”€ .work/ # ไธญ้–“ๆˆๆžœ็‰ฉ๏ผˆ.gitignore ๆŽจๅฅจ๏ผ‰ โ”‚ โ”œโ”€โ”€ 00_scope.json # Phase 0: ใ‚นใ‚ณใƒผใƒ— โ”‚ โ”œโ”€โ”€ 01_index.md # Phase 1: Index โ”‚ โ”œโ”€โ”€ 02_explorer/ # Phase 2: Explorer ็”Ÿๅ‡บๅŠ› โ”‚ โ”‚ โ”œโ”€โ”€ controller.md
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub