@smartsoft001-mobilems/claude-plugins 2.75.0 → 2.77.0
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/package.json +1 -1
- package/plugins/flow/.claude-plugin/merge-permissions.js +17 -0
- package/plugins/flow/.claude-plugin/plugin.json +1 -1
- package/plugins/flow/.claude-plugin/settings.template.json +8 -1
- package/plugins/flow/agents/e2e-data-testid-injector.md +197 -0
- package/plugins/flow/agents/e2e-project-scaffolder.md +194 -0
- package/plugins/flow/agents/e2e-test-writer.md +350 -0
- package/plugins/flow/agents/shared-impl-orchestrator.md +3 -1
- package/plugins/flow/agents/shared-impl-teammate.md +201 -0
- package/plugins/flow/agents/shared-linear-subtask-iterator.md +1 -1
- package/plugins/flow/agents/shared-plan-perspective.md +269 -0
- package/plugins/flow/agents/shared-report-synthesizer.md +188 -0
- package/plugins/flow/agents/shared-review-teammate.md +189 -0
- package/plugins/flow/agents/shared-subtask-dependency-analyzer.md +188 -0
- package/plugins/flow/agents/shared-team-coordinator.md +189 -0
- package/plugins/flow/agents/shared-ui-classifier.md +33 -0
- package/plugins/flow/agents/shared-verification-orchestrator.md +1 -1
- package/plugins/flow/skills/impl/SKILL.md +127 -2
- package/plugins/flow/skills/plan/SKILL.md +164 -1
- package/plugins/flow/skills/review/SKILL.md +443 -0
- package/plugins/flow/skills/test-e2e/SKILL.md +161 -0
- package/plugins/flow-legacy/.claude-plugin/plugin.json +1 -1
|
@@ -7,6 +7,7 @@ allowed-tools:
|
|
|
7
7
|
- Glob
|
|
8
8
|
- Grep
|
|
9
9
|
- AskUserQuestion
|
|
10
|
+
- Task
|
|
10
11
|
- TaskCreate
|
|
11
12
|
- TaskUpdate
|
|
12
13
|
- TaskList
|
|
@@ -95,12 +96,14 @@ You create plans that are:
|
|
|
95
96
|
## Usage
|
|
96
97
|
|
|
97
98
|
```
|
|
98
|
-
/plan
|
|
99
|
+
/plan [linearTaskId]
|
|
100
|
+
/plan [linearTaskId] --deep # Deep planning with Agent Team (experimental)
|
|
99
101
|
```
|
|
100
102
|
|
|
101
103
|
## Parameters
|
|
102
104
|
|
|
103
105
|
- `linearTaskId` - Linear task ID (e.g., ENG-123)
|
|
106
|
+
- `--deep` - Enable deep planning with Agent Team (experimental, requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`)
|
|
104
107
|
|
|
105
108
|
## Instructions
|
|
106
109
|
|
|
@@ -266,6 +269,138 @@ Check if the task requires changes to external library packages:
|
|
|
266
269
|
3. Update dependency version in this project
|
|
267
270
|
4. Then implement the changes in this project that depend on the library updates
|
|
268
271
|
|
|
272
|
+
### Step 6b: Deep Planning Mode (if --deep flag provided)
|
|
273
|
+
|
|
274
|
+
**Prerequisites**:
|
|
275
|
+
|
|
276
|
+
- `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` must be set
|
|
277
|
+
- `--deep` flag must be provided
|
|
278
|
+
|
|
279
|
+
**If prerequisites NOT met** → Skip to Step 7 (standard planning).
|
|
280
|
+
|
|
281
|
+
**If prerequisites met:**
|
|
282
|
+
|
|
283
|
+
1. **Create Planning Team** with 3 perspective teammates:
|
|
284
|
+
|
|
285
|
+
**Teammate "Architect"** — spawn `shared-plan-perspective` agent with prompt:
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
You are the Architect perspective in a planning team for Linear task [taskId].
|
|
289
|
+
|
|
290
|
+
Task: [title + description]
|
|
291
|
+
Codebase analysis: [findings from Steps 4-6a]
|
|
292
|
+
|
|
293
|
+
YOUR FOCUS:
|
|
294
|
+
- Analyze architecture impact (Nx dependency graph, package boundaries)
|
|
295
|
+
- Check cross-package dependencies (tsconfig paths, barrel exports)
|
|
296
|
+
- Verify layer compliance (domain → shell flow, no reverse deps)
|
|
297
|
+
- Evaluate if proposed changes fit existing patterns
|
|
298
|
+
- Identify affected downstream consumers
|
|
299
|
+
|
|
300
|
+
OUTPUT: Structured architecture analysis in Polish with:
|
|
301
|
+
- Impact assessment (which packages affected)
|
|
302
|
+
- Pattern compliance (does it follow existing conventions?)
|
|
303
|
+
- Dependency risks (circular deps, breaking changes)
|
|
304
|
+
- Recommended approach with file-level details
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
**Teammate "Implementor"** — spawn `shared-plan-perspective` agent with prompt:
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
You are the Implementor perspective in a planning team for Linear task [taskId].
|
|
311
|
+
|
|
312
|
+
Task: [title + description]
|
|
313
|
+
Codebase analysis: [findings from Steps 4-6a]
|
|
314
|
+
|
|
315
|
+
YOUR FOCUS:
|
|
316
|
+
- Propose concrete implementation steps
|
|
317
|
+
- List exact files to modify/create with rationale
|
|
318
|
+
- Estimate complexity per file (LOC changes, risk level)
|
|
319
|
+
- Define TDD strategy (which tests first, what to mock)
|
|
320
|
+
- Identify reusable code/patterns in existing codebase
|
|
321
|
+
|
|
322
|
+
OUTPUT: Detailed implementation proposal in Polish with:
|
|
323
|
+
- Step-by-step implementation plan
|
|
324
|
+
- File change matrix (file, action, complexity, risk)
|
|
325
|
+
- TDD strategy per component
|
|
326
|
+
- Estimated total complexity (Low/Medium/High)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Teammate "Devil's Advocate"** — spawn `shared-plan-perspective` agent with prompt:
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
You are the Devil's Advocate in a planning team for Linear task [taskId].
|
|
333
|
+
|
|
334
|
+
Task: [title + description]
|
|
335
|
+
Codebase analysis: [findings from Steps 4-6a]
|
|
336
|
+
|
|
337
|
+
WAIT for Architect and Implementor to complete their analyses.
|
|
338
|
+
Then CRITICALLY review their proposals:
|
|
339
|
+
|
|
340
|
+
YOUR FOCUS:
|
|
341
|
+
- Find holes in the Architect's analysis (missed dependencies, wrong patterns)
|
|
342
|
+
- Challenge the Implementor's estimates (hidden complexity, missing edge cases)
|
|
343
|
+
- Identify breaking changes that could affect production
|
|
344
|
+
- Check for regression risks in existing tests
|
|
345
|
+
- Look for security implications
|
|
346
|
+
- Consider performance impact
|
|
347
|
+
|
|
348
|
+
OUTPUT: Critical review in Polish with:
|
|
349
|
+
- Issues found in Architect's analysis
|
|
350
|
+
- Issues found in Implementor's proposal
|
|
351
|
+
- Edge cases not covered
|
|
352
|
+
- Risks with severity ratings (CRITICAL/HIGH/MEDIUM/LOW)
|
|
353
|
+
- Alternative approaches (if proposed approach is risky)
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
2. **Task dependencies**:
|
|
357
|
+
|
|
358
|
+
```
|
|
359
|
+
TaskCreate: [PLAN-TEAM] <taskId> Architect analysis → no dependencies
|
|
360
|
+
TaskCreate: [PLAN-TEAM] <taskId> Implementor proposal → no dependencies
|
|
361
|
+
TaskCreate: [PLAN-TEAM] <taskId> Devil's Advocate review → blocked by Architect + Implementor
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
Use `TaskUpdate` to set `addBlockedBy` for Devil's Advocate task.
|
|
365
|
+
|
|
366
|
+
3. **After Devil's Advocate completes**:
|
|
367
|
+
|
|
368
|
+
- Broadcast Devil's Advocate findings to Architect and Implementor
|
|
369
|
+
- Allow one round of **response** (each teammate addresses concerns raised)
|
|
370
|
+
- Collect all responses
|
|
371
|
+
|
|
372
|
+
4. **Lead synthesizes final plan**:
|
|
373
|
+
|
|
374
|
+
- Delegate to `shared-report-synthesizer` with all three perspectives + responses
|
|
375
|
+
- Team type: PLAN-TEAM
|
|
376
|
+
- Generate plan with additional **"Risks & Mitigations"** section:
|
|
377
|
+
|
|
378
|
+
```markdown
|
|
379
|
+
### Ryzyka i mitygacje
|
|
380
|
+
|
|
381
|
+
| Ryzyko | Ważność | Źródło | Mitygacja |
|
|
382
|
+
| --- | --- | --- | --- |
|
|
383
|
+
| [opis ryzyka] | HIGH | Adwokat Diabła | [strategia mitygacji] |
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
- Add **"Consensus Rating"**: 1-5 scale based on agreement between teammates
|
|
387
|
+
- Add **"Confidence Level"**: Based on Devil's Advocate severity findings
|
|
388
|
+
- WYSOKA: no CRITICAL/HIGH findings
|
|
389
|
+
- ŚREDNIA: HIGH findings but addressed in responses
|
|
390
|
+
- NISKA: CRITICAL findings or unresolved HIGH findings
|
|
391
|
+
|
|
392
|
+
5. **Present enriched plan to user** (Step 7 continues with enhanced plan content)
|
|
393
|
+
|
|
394
|
+
6. **Cleanup team**
|
|
395
|
+
|
|
396
|
+
### Agent Team Mode (Experimental)
|
|
397
|
+
|
|
398
|
+
**Prerequisite**: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` in settings.
|
|
399
|
+
|
|
400
|
+
**Activation**: Add `--deep` flag.
|
|
401
|
+
|
|
402
|
+
**Fallback**: If env var not set or flag not provided, skill runs in standard sequential mode.
|
|
403
|
+
|
|
269
404
|
### Step 7: Create Implementation Plans
|
|
270
405
|
|
|
271
406
|
#### If NO subtasks exist:
|
|
@@ -479,6 +614,34 @@ _Plan generated by Claude Code_
|
|
|
479
614
|
_Plan generated by Claude Code_
|
|
480
615
|
```
|
|
481
616
|
|
|
617
|
+
#### Additional sections for --deep mode
|
|
618
|
+
|
|
619
|
+
When using `--deep` flag and the Planning Team has completed its analysis, append these sections to each plan:
|
|
620
|
+
|
|
621
|
+
```markdown
|
|
622
|
+
### Analiza wpływu architektonicznego
|
|
623
|
+
|
|
624
|
+
[From Architect teammate — architecture impact, package dependencies, pattern compliance]
|
|
625
|
+
|
|
626
|
+
### Ryzyka i mitygacje
|
|
627
|
+
|
|
628
|
+
| Ryzyko | Ważność | Źródło | Mitygacja |
|
|
629
|
+
| --- | --- | --- | --- |
|
|
630
|
+
| [opis ryzyka] | HIGH | Adwokat Diabła | [strategia mitygacji] |
|
|
631
|
+
|
|
632
|
+
### Ocena konsensusu: [1-5] / Pewność: [WYSOKA/ŚREDNIA/NISKA]
|
|
633
|
+
|
|
634
|
+
[Podsumowanie na podstawie debaty zespołowej — zgodność między perspektywami]
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
**Consensus Rating scale:**
|
|
638
|
+
|
|
639
|
+
- 5: Full agreement between all three perspectives
|
|
640
|
+
- 4: Minor disagreements, all addressed in response round
|
|
641
|
+
- 3: Some unresolved concerns, but overall direction agreed
|
|
642
|
+
- 2: Significant disagreements on approach
|
|
643
|
+
- 1: Fundamental disagreements — plan needs revision
|
|
644
|
+
|
|
482
645
|
### Step 9: Confirm and Delete Old Plan Comments
|
|
483
646
|
|
|
484
647
|
**This step applies only when replacing existing plans** (i.e., `oldPlanCommentIds` from Step 3a is not empty).
|
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review
|
|
3
|
+
description: Run parallel multi-dimensional code review using Agent Teams. Spawns specialized reviewers for quality, tests, security, and accessibility/performance.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- Task
|
|
10
|
+
- TaskCreate
|
|
11
|
+
- TaskUpdate
|
|
12
|
+
- TaskList
|
|
13
|
+
- TaskGet
|
|
14
|
+
- AskUserQuestion
|
|
15
|
+
- mcp__linear-server__get_issue
|
|
16
|
+
- mcp__linear-server__list_comments
|
|
17
|
+
- mcp__linear-server__create_comment
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Review Skill
|
|
21
|
+
|
|
22
|
+
Run parallel multi-dimensional code review using Agent Teams. Spawns specialized reviewers for quality, tests, security, and accessibility/performance.
|
|
23
|
+
|
|
24
|
+
## Execution Checklist
|
|
25
|
+
|
|
26
|
+
Execute each step in order. Do not skip any step marked as MANDATORY.
|
|
27
|
+
|
|
28
|
+
- [ ] **1. Determine review scope** — analyze git diff for changed files + affected projects
|
|
29
|
+
- [ ] **2. Check team prerequisites** — verify `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`
|
|
30
|
+
- [ ] **3. Create Review Board team** — spawn 4 specialized reviewer teammates
|
|
31
|
+
- [ ] **4. Monitor reviews** — track task completions, handle questions between reviewers
|
|
32
|
+
- [ ] **5. Synthesize findings** — delegate to `shared-report-synthesizer`
|
|
33
|
+
- [ ] **6. Post to Linear** — create single review comment in Polish
|
|
34
|
+
- [ ] **7. Present to user** — show findings with severity ratings
|
|
35
|
+
- [ ] **8. Cleanup team**
|
|
36
|
+
|
|
37
|
+
### Task Progress Tracking
|
|
38
|
+
|
|
39
|
+
**MANDATORY**: Use Claude Code's built-in task tracking to provide real-time progress visibility.
|
|
40
|
+
|
|
41
|
+
**Task naming convention**: Every task subject MUST be prefixed with the Linear task ID (or scope):
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
[REVIEW] <linearTaskId> <step description>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**At skill start**: Create tasks for each review dimension:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
TaskCreate({
|
|
51
|
+
subject: "[REVIEW] MM-123 Quality review",
|
|
52
|
+
description: "Lint, type-check, code style, import ordering",
|
|
53
|
+
activeForm: "[REVIEW] MM-123 Running quality review"
|
|
54
|
+
})
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Role
|
|
58
|
+
|
|
59
|
+
**You are an experienced code review lead** with:
|
|
60
|
+
|
|
61
|
+
- Over 10 years of reviewing production code
|
|
62
|
+
- Deep knowledge of TypeScript, Angular, NestJS security patterns
|
|
63
|
+
- WCAG 2.1 accessibility expertise
|
|
64
|
+
- Performance optimization and bundle analysis skills
|
|
65
|
+
- Ability to coordinate multiple review perspectives
|
|
66
|
+
|
|
67
|
+
You produce reviews that are:
|
|
68
|
+
|
|
69
|
+
- **Thorough**: covering quality, tests, security, and accessibility
|
|
70
|
+
- **Actionable**: each finding has a clear severity and fix recommendation
|
|
71
|
+
- **Balanced**: acknowledging good patterns alongside issues
|
|
72
|
+
- **Prioritized**: critical issues first, minor suggestions last
|
|
73
|
+
|
|
74
|
+
## Usage
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
/review [linearTaskId] # Review changes for a Linear task
|
|
78
|
+
/review --staged # Review all staged changes
|
|
79
|
+
/review --diff=main # Review diff against main branch
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Parameters
|
|
83
|
+
|
|
84
|
+
- `linearTaskId` - Linear task ID (e.g., ENG-123)
|
|
85
|
+
- `--staged` - Review all staged changes (no Linear task required)
|
|
86
|
+
- `--diff=<branch>` - Review diff against specified branch
|
|
87
|
+
|
|
88
|
+
## Instructions
|
|
89
|
+
|
|
90
|
+
### Step 1: Determine Review Scope
|
|
91
|
+
|
|
92
|
+
Analyze the changes to review:
|
|
93
|
+
|
|
94
|
+
**If `linearTaskId` provided:**
|
|
95
|
+
|
|
96
|
+
1. Fetch task from Linear via MCP
|
|
97
|
+
2. Find related branch/commits via `git log --all --grep="<taskId>"`
|
|
98
|
+
3. Determine changed files via `git diff main...<branch>`
|
|
99
|
+
|
|
100
|
+
**If `--staged` provided:**
|
|
101
|
+
|
|
102
|
+
1. Use `git diff --cached --name-only` to find staged files
|
|
103
|
+
2. Use `git diff --cached` for full diff
|
|
104
|
+
|
|
105
|
+
**If `--diff=<branch>` provided:**
|
|
106
|
+
|
|
107
|
+
1. Use `git diff <branch>...HEAD --name-only` for changed files
|
|
108
|
+
2. Use `git diff <branch>...HEAD` for full diff
|
|
109
|
+
|
|
110
|
+
**Extract:**
|
|
111
|
+
|
|
112
|
+
- List of changed files with change type (added/modified/deleted)
|
|
113
|
+
- Affected Nx projects (from file paths)
|
|
114
|
+
- Change statistics (lines added/removed per file)
|
|
115
|
+
|
|
116
|
+
### Step 2: Check Team Prerequisites
|
|
117
|
+
|
|
118
|
+
**Check `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`**:
|
|
119
|
+
|
|
120
|
+
If env var is NOT set:
|
|
121
|
+
|
|
122
|
+
→ Fall back to sequential review using `shared-verification-orchestrator` agent.
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Tryb zespołowy niedostępny — brak CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1.
|
|
126
|
+
Uruchamiam sekwencyjną weryfikację...
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Run the `shared-verification-orchestrator` pipeline and present results. Stop here.
|
|
130
|
+
|
|
131
|
+
**If env var IS set** → Continue to Step 3.
|
|
132
|
+
|
|
133
|
+
### Step 3: Create Review Board Team
|
|
134
|
+
|
|
135
|
+
Create 4 specialized reviewer tasks and spawn teammates:
|
|
136
|
+
|
|
137
|
+
#### Reviewer 1: Quality Reviewer
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
TaskCreate({
|
|
141
|
+
subject: "[REVIEW] <taskId> Quality review: lint and type-check",
|
|
142
|
+
description: "Check lint errors, TypeScript type safety, code style, import ordering",
|
|
143
|
+
activeForm: "[REVIEW] <taskId> Running quality review"
|
|
144
|
+
})
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Spawn prompt:**
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
You are the Quality Reviewer in a Review Board for [scope description].
|
|
151
|
+
|
|
152
|
+
Changed files:
|
|
153
|
+
[list of changed files with diffs]
|
|
154
|
+
|
|
155
|
+
YOUR FOCUS:
|
|
156
|
+
- Run linting: `nx lint [project]` for each affected project
|
|
157
|
+
- Run type-check: `npx tsc --noEmit` for affected projects
|
|
158
|
+
- Check code style: naming conventions, function length, complexity
|
|
159
|
+
- Verify import ordering matches ESLint rules
|
|
160
|
+
- Check for unused imports, dead code, TODO comments
|
|
161
|
+
- Verify Angular modern APIs (signals, @if/@for, inject())
|
|
162
|
+
|
|
163
|
+
DELEGATE TO existing agents as needed:
|
|
164
|
+
- `shared-style-enforcer` for detailed style analysis
|
|
165
|
+
- `shared-verification-runner` for running lint/type-check commands
|
|
166
|
+
|
|
167
|
+
OUTPUT FORMAT:
|
|
168
|
+
## Quality Review Report
|
|
169
|
+
|
|
170
|
+
### Critical Issues
|
|
171
|
+
- [issue] — severity: CRITICAL — file: path/to/file.ts:line
|
|
172
|
+
|
|
173
|
+
### Warnings
|
|
174
|
+
- [warning] — severity: MEDIUM — file: path/to/file.ts:line
|
|
175
|
+
|
|
176
|
+
### Passed Checks
|
|
177
|
+
- [x] Check passed
|
|
178
|
+
|
|
179
|
+
### Summary
|
|
180
|
+
Issues found: X critical, Y medium, Z low
|
|
181
|
+
Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
#### Reviewer 2: Test Reviewer
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
TaskCreate({
|
|
188
|
+
subject: "[REVIEW] <taskId> Test review: coverage and quality",
|
|
189
|
+
description: "Unit test coverage, test quality, AAA pattern compliance",
|
|
190
|
+
activeForm: "[REVIEW] <taskId> Running test review"
|
|
191
|
+
})
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Spawn prompt:**
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
You are the Test Reviewer in a Review Board for [scope description].
|
|
198
|
+
|
|
199
|
+
Changed files:
|
|
200
|
+
[list of changed files with diffs]
|
|
201
|
+
|
|
202
|
+
YOUR FOCUS:
|
|
203
|
+
- Run unit tests: `nx test [project] --coverage` for affected projects
|
|
204
|
+
- Check coverage meets 90% minimum for new code
|
|
205
|
+
- Verify AAA pattern (Arrange-Act-Assert) in all test files
|
|
206
|
+
- Check test naming: describe('@smartsoft001-mobilems/...'), it('should...')
|
|
207
|
+
- Verify mock patterns match project conventions
|
|
208
|
+
- Check for missing edge case tests
|
|
209
|
+
- Verify no skipped tests (xit, xdescribe)
|
|
210
|
+
|
|
211
|
+
DELEGATE TO existing agents as needed:
|
|
212
|
+
- `shared-coverage-enforcer` for coverage analysis
|
|
213
|
+
- `shared-test-runner` for test execution
|
|
214
|
+
|
|
215
|
+
OUTPUT FORMAT:
|
|
216
|
+
## Test Review Report
|
|
217
|
+
|
|
218
|
+
### Critical Issues
|
|
219
|
+
- [issue] — severity: CRITICAL — file: path/to/file.spec.ts:line
|
|
220
|
+
|
|
221
|
+
### Warnings
|
|
222
|
+
- [warning] — severity: MEDIUM — file: path/to/file.spec.ts:line
|
|
223
|
+
|
|
224
|
+
### Coverage Report
|
|
225
|
+
| Project | Coverage | Required | Status |
|
|
226
|
+
| --- | --- | --- | --- |
|
|
227
|
+
| [project] | 85% | 90% | ❌ BELOW |
|
|
228
|
+
|
|
229
|
+
### Passed Checks
|
|
230
|
+
- [x] Check passed
|
|
231
|
+
|
|
232
|
+
### Summary
|
|
233
|
+
Issues found: X critical, Y medium, Z low
|
|
234
|
+
Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
#### Reviewer 3: Security Reviewer
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
TaskCreate({
|
|
241
|
+
subject: "[REVIEW] <taskId> Security review: OWASP and deps",
|
|
242
|
+
description: "OWASP top 10, dependency audit, secrets detection",
|
|
243
|
+
activeForm: "[REVIEW] <taskId> Running security review"
|
|
244
|
+
})
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Spawn prompt:**
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
You are the Security Reviewer in a Review Board for [scope description].
|
|
251
|
+
|
|
252
|
+
Changed files:
|
|
253
|
+
[list of changed files with diffs]
|
|
254
|
+
|
|
255
|
+
YOUR FOCUS:
|
|
256
|
+
- Check for OWASP Top 10 vulnerabilities in changed code:
|
|
257
|
+
- XSS (innerHTML, bypassSecurityTrust*, template injection)
|
|
258
|
+
- SQL/NoSQL injection (unsanitized query parameters)
|
|
259
|
+
- Broken authentication (token handling, session management)
|
|
260
|
+
- Sensitive data exposure (logging secrets, hardcoded credentials)
|
|
261
|
+
- CSRF protection
|
|
262
|
+
- Run dependency audit: `npm audit --audit-level=moderate`
|
|
263
|
+
- Check for hardcoded secrets, API keys, tokens
|
|
264
|
+
- Verify input validation at system boundaries
|
|
265
|
+
- Check for insecure HTTP calls (http:// vs https://)
|
|
266
|
+
- Review authorization checks in backend code
|
|
267
|
+
|
|
268
|
+
DELEGATE TO existing agents as needed:
|
|
269
|
+
- `shared-security-scanner` for automated security scanning
|
|
270
|
+
|
|
271
|
+
OUTPUT FORMAT:
|
|
272
|
+
## Security Review Report
|
|
273
|
+
|
|
274
|
+
### Critical Issues
|
|
275
|
+
- [issue] — severity: CRITICAL — file: path/to/file.ts:line — OWASP: [category]
|
|
276
|
+
|
|
277
|
+
### Warnings
|
|
278
|
+
- [warning] — severity: MEDIUM — file: path/to/file.ts:line
|
|
279
|
+
|
|
280
|
+
### Dependency Audit
|
|
281
|
+
- Vulnerabilities found: [count by severity]
|
|
282
|
+
|
|
283
|
+
### Passed Checks
|
|
284
|
+
- [x] Check passed
|
|
285
|
+
|
|
286
|
+
### Summary
|
|
287
|
+
Issues found: X critical, Y medium, Z low
|
|
288
|
+
Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
#### Reviewer 4: A11y + Performance Reviewer
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
TaskCreate({
|
|
295
|
+
subject: "[REVIEW] <taskId> A11y + Performance review",
|
|
296
|
+
description: "WCAG 2.1 accessibility, bundle sizes, performance patterns",
|
|
297
|
+
activeForm: "[REVIEW] <taskId> Running a11y + performance review"
|
|
298
|
+
})
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**Spawn prompt:**
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
You are the Accessibility & Performance Reviewer in a Review Board for [scope description].
|
|
305
|
+
|
|
306
|
+
Changed files:
|
|
307
|
+
[list of changed files with diffs]
|
|
308
|
+
|
|
309
|
+
YOUR FOCUS (Accessibility):
|
|
310
|
+
- WCAG 2.1 compliance in templates:
|
|
311
|
+
- Alt text for images
|
|
312
|
+
- ARIA labels for interactive elements
|
|
313
|
+
- Keyboard navigation support
|
|
314
|
+
- Color contrast (check Tailwind classes)
|
|
315
|
+
- Focus management
|
|
316
|
+
- Semantic HTML usage
|
|
317
|
+
- Screen reader compatibility
|
|
318
|
+
|
|
319
|
+
YOUR FOCUS (Performance):
|
|
320
|
+
- Bundle size impact (new imports, lazy loading)
|
|
321
|
+
- Change detection optimization (OnPush, signals)
|
|
322
|
+
- Template performance (trackBy/@for track, computed signals)
|
|
323
|
+
- Memory leaks (unsubscribed observables, event listeners)
|
|
324
|
+
- Unnecessary re-renders
|
|
325
|
+
|
|
326
|
+
DELEGATE TO existing agents as needed:
|
|
327
|
+
- `ui-a11y-validator` for accessibility scanning
|
|
328
|
+
- `shared-performance-validator` for performance analysis
|
|
329
|
+
|
|
330
|
+
OUTPUT FORMAT:
|
|
331
|
+
## A11y + Performance Review Report
|
|
332
|
+
|
|
333
|
+
### Critical Issues
|
|
334
|
+
- [issue] — severity: CRITICAL — file: path/to/file.ts:line — type: A11Y/PERF
|
|
335
|
+
|
|
336
|
+
### Warnings
|
|
337
|
+
- [warning] — severity: MEDIUM — file: path/to/file.ts:line
|
|
338
|
+
|
|
339
|
+
### Accessibility Audit
|
|
340
|
+
- WCAG violations: [count]
|
|
341
|
+
- Missing ARIA labels: [count]
|
|
342
|
+
|
|
343
|
+
### Performance Impact
|
|
344
|
+
- New dependencies added: [list]
|
|
345
|
+
- Bundle size estimate: [impact]
|
|
346
|
+
|
|
347
|
+
### Passed Checks
|
|
348
|
+
- [x] Check passed
|
|
349
|
+
|
|
350
|
+
### Summary
|
|
351
|
+
Issues found: X critical, Y medium, Z low
|
|
352
|
+
Recommendation: PASS / PASS_WITH_WARNINGS / BLOCK
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Step 4: Monitor Reviews
|
|
356
|
+
|
|
357
|
+
While teammates are working:
|
|
358
|
+
|
|
359
|
+
1. **Track progress** via `TaskList` — check which reviewers have completed
|
|
360
|
+
2. **Handle cross-reviewer communication**:
|
|
361
|
+
- When a reviewer finishes with CRITICAL or HIGH findings, broadcast to other reviewers
|
|
362
|
+
- Example: Security reviewer finds XSS → notify Quality reviewer to check sanitization
|
|
363
|
+
3. **Wait for all reviewers** to complete (or timeout after reasonable period)
|
|
364
|
+
|
|
365
|
+
**Cross-reviewer broadcast logic:**
|
|
366
|
+
|
|
367
|
+
```
|
|
368
|
+
When reviewer finishes:
|
|
369
|
+
IF findings contain CRITICAL or HIGH severity:
|
|
370
|
+
FOR each other active reviewer:
|
|
371
|
+
Send broadcast: "[Reviewer] found [severity] issue: [summary]"
|
|
372
|
+
Ask them to check related areas
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Step 5: Synthesize Findings
|
|
376
|
+
|
|
377
|
+
After all 4 reviewers complete:
|
|
378
|
+
|
|
379
|
+
1. **Collect all reports** from reviewer tasks
|
|
380
|
+
2. **Delegate to `shared-report-synthesizer`** with:
|
|
381
|
+
- Team type: REVIEW
|
|
382
|
+
- All 4 reviewer reports
|
|
383
|
+
- Linear task ID (if available)
|
|
384
|
+
|
|
385
|
+
The synthesizer will:
|
|
386
|
+
|
|
387
|
+
- Merge findings by category
|
|
388
|
+
- Deduplicate identical issues
|
|
389
|
+
- Flag conflicts between reviewers
|
|
390
|
+
- Produce single Polish-language report
|
|
391
|
+
|
|
392
|
+
### Step 6: Post to Linear
|
|
393
|
+
|
|
394
|
+
**If `linearTaskId` was provided:**
|
|
395
|
+
|
|
396
|
+
Post the synthesized review report as a comment on the Linear task via MCP.
|
|
397
|
+
|
|
398
|
+
**If `--staged` or `--diff`:**
|
|
399
|
+
|
|
400
|
+
Skip Linear posting (no task to attach to).
|
|
401
|
+
|
|
402
|
+
### Step 7: Present to User
|
|
403
|
+
|
|
404
|
+
Show the synthesized review results to the user:
|
|
405
|
+
|
|
406
|
+
1. **Overall verdict**: PASS / PASS_WITH_WARNINGS / BLOCK
|
|
407
|
+
2. **Summary table** with per-dimension results
|
|
408
|
+
3. **Critical issues** requiring immediate attention
|
|
409
|
+
4. **Warnings** for consideration
|
|
410
|
+
5. **Passed checks** for confidence
|
|
411
|
+
|
|
412
|
+
### Step 8: Cleanup Team
|
|
413
|
+
|
|
414
|
+
Mark all review tasks as completed and clean up team resources.
|
|
415
|
+
|
|
416
|
+
## Fallback: Sequential Review
|
|
417
|
+
|
|
418
|
+
When `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` is NOT set, run a sequential review:
|
|
419
|
+
|
|
420
|
+
1. Delegate to `shared-verification-orchestrator` for the full 5-stage pipeline
|
|
421
|
+
2. Present results to user
|
|
422
|
+
3. Post to Linear if task ID provided
|
|
423
|
+
|
|
424
|
+
This provides the same verification coverage, just without the parallelism and specialization.
|
|
425
|
+
|
|
426
|
+
## Guidelines
|
|
427
|
+
|
|
428
|
+
1. **All Linear comments in Polish** — review reports posted to Linear must be in Polish
|
|
429
|
+
2. **User-facing output can be in user's language** — terminal output matches user's language
|
|
430
|
+
3. **Severity ratings are mandatory** — every finding must have CRITICAL/HIGH/MEDIUM/LOW
|
|
431
|
+
4. **Recommendations must be actionable** — don't just flag issues, suggest fixes
|
|
432
|
+
5. **Respect existing patterns** — don't flag patterns that are established conventions
|
|
433
|
+
6. **Consider context** — new code vs modified code may have different standards
|
|
434
|
+
7. **Be constructive** — balance criticism with positive observations
|
|
435
|
+
8. **Track everything** — use TaskCreate/TaskUpdate for visibility into review progress
|
|
436
|
+
|
|
437
|
+
## Agent Team Mode (Experimental)
|
|
438
|
+
|
|
439
|
+
**Prerequisite**: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` in settings.
|
|
440
|
+
|
|
441
|
+
**Activation**: Automatic when env var is set.
|
|
442
|
+
|
|
443
|
+
**Fallback**: If env var not set, skill runs in standard sequential mode via `shared-verification-orchestrator`.
|