@comfanion/workflow 4.36.45 → 4.36.46
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/src/build-info.json +2 -2
- package/src/opencode/FLOW.yaml +34 -187
- package/src/opencode/agents/reviewer.md +170 -0
- package/src/opencode/commands/review-story.md +134 -0
- package/src/opencode/config.yaml +5 -0
- package/src/opencode/plugins/custom-compaction.ts +369 -88
- package/src/opencode/skills/coding-standards/template-security.md +325 -0
- package/src/opencode/skills/dev-story/SKILL.md +53 -5
- package/src/opencode/skills/story-writing/template.md +16 -0
package/package.json
CHANGED
package/src/build-info.json
CHANGED
package/src/opencode/FLOW.yaml
CHANGED
|
@@ -416,6 +416,27 @@ agents:
|
|
|
416
416
|
- Following existing patterns
|
|
417
417
|
personality: Fast, no questions, executes or fails
|
|
418
418
|
|
|
419
|
+
reviewer:
|
|
420
|
+
name: Marcus
|
|
421
|
+
title: Code Reviewer
|
|
422
|
+
icon: "🔍"
|
|
423
|
+
description: Code Reviewer - security-focused review, bug finding, test coverage
|
|
424
|
+
mode: subagent
|
|
425
|
+
model: openai/gpt-5.2-codex # Best at finding bugs and security issues
|
|
426
|
+
temperature: 0.1
|
|
427
|
+
file: agents/reviewer.md
|
|
428
|
+
expertise:
|
|
429
|
+
- Security review
|
|
430
|
+
- Bug finding
|
|
431
|
+
- Test coverage analysis
|
|
432
|
+
- Code quality
|
|
433
|
+
personality: Thorough, security-paranoid, always suggests fixes
|
|
434
|
+
skills_used:
|
|
435
|
+
- code-review
|
|
436
|
+
auto_invoke:
|
|
437
|
+
trigger: story_tasks_complete # Called automatically when all story tasks done
|
|
438
|
+
before: story_marked_done
|
|
439
|
+
|
|
419
440
|
# Supporting Agents (not in main pipeline)
|
|
420
441
|
researcher:
|
|
421
442
|
name: Kristina
|
|
@@ -454,192 +475,6 @@ agents:
|
|
|
454
475
|
skills_used:
|
|
455
476
|
- change-management
|
|
456
477
|
|
|
457
|
-
# =============================================================================
|
|
458
|
-
# SKILLS (Knowledge - HOW to do things)
|
|
459
|
-
# =============================================================================
|
|
460
|
-
skills:
|
|
461
|
-
# Requirements Skills
|
|
462
|
-
requirements-gathering:
|
|
463
|
-
description: How to interview stakeholders, extract FR/NFR
|
|
464
|
-
file: skills/requirements-gathering/SKILL.md
|
|
465
|
-
used_by: [analyst]
|
|
466
|
-
produces: docs/requirements/requirements.md
|
|
467
|
-
|
|
468
|
-
requirements-validation:
|
|
469
|
-
description: How to validate requirements (SMART, no conflicts)
|
|
470
|
-
file: skills/requirements-validation/SKILL.md
|
|
471
|
-
used_by: [analyst, architect]
|
|
472
|
-
produces: docs/validation/requirements-validation-*.md
|
|
473
|
-
|
|
474
|
-
# PRD Skills
|
|
475
|
-
prd-writing:
|
|
476
|
-
description: How to write PRD (template, sections, examples)
|
|
477
|
-
file: skills/prd-writing/SKILL.md
|
|
478
|
-
used_by: [pm]
|
|
479
|
-
produces: docs/prd.md
|
|
480
|
-
|
|
481
|
-
prd-validation:
|
|
482
|
-
description: How to validate PRD completeness
|
|
483
|
-
file: skills/prd-validation/SKILL.md
|
|
484
|
-
used_by: [architect]
|
|
485
|
-
produces: docs/validation/prd-validation-*.md
|
|
486
|
-
|
|
487
|
-
acceptance-criteria:
|
|
488
|
-
description: How to write testable AC (Given/When/Then)
|
|
489
|
-
file: skills/acceptance-criteria/SKILL.md
|
|
490
|
-
used_by: [analyst, pm]
|
|
491
|
-
|
|
492
|
-
# Architecture Skills
|
|
493
|
-
architecture-design:
|
|
494
|
-
description: How to design system architecture
|
|
495
|
-
file: skills/architecture-design/SKILL.md
|
|
496
|
-
used_by: [architect]
|
|
497
|
-
produces: docs/architecture.md
|
|
498
|
-
|
|
499
|
-
architecture-validation:
|
|
500
|
-
description: How to validate architecture
|
|
501
|
-
file: skills/architecture-validation/SKILL.md
|
|
502
|
-
used_by: [architect]
|
|
503
|
-
produces: docs/validation/architecture-validation-*.md
|
|
504
|
-
|
|
505
|
-
adr-writing:
|
|
506
|
-
description: How to write Architecture Decision Records
|
|
507
|
-
file: skills/adr-writing/SKILL.md
|
|
508
|
-
used_by: [architect]
|
|
509
|
-
produces: docs/architecture/adr/*.md
|
|
510
|
-
|
|
511
|
-
coding-standards:
|
|
512
|
-
description: How to define coding patterns and conventions
|
|
513
|
-
file: skills/coding-standards/SKILL.md
|
|
514
|
-
used_by: [architect]
|
|
515
|
-
produces: docs/coding-standards/
|
|
516
|
-
|
|
517
|
-
# Sprint Skills
|
|
518
|
-
epic-writing:
|
|
519
|
-
description: How to write epics with AC
|
|
520
|
-
file: skills/epic-writing/SKILL.md
|
|
521
|
-
used_by: [pm]
|
|
522
|
-
produces: docs/sprint-artifacts/*/epic-*.md
|
|
523
|
-
|
|
524
|
-
story-writing:
|
|
525
|
-
description: How to write user stories with AC and tasks
|
|
526
|
-
file: skills/story-writing/SKILL.md
|
|
527
|
-
used_by: [pm]
|
|
528
|
-
produces: docs/sprint-artifacts/*/stories/story-*.md
|
|
529
|
-
|
|
530
|
-
sprint-planning:
|
|
531
|
-
description: How to plan and organize sprints
|
|
532
|
-
file: skills/sprint-planning/SKILL.md
|
|
533
|
-
used_by: [pm]
|
|
534
|
-
produces: docs/sprint-artifacts/sprint-status.yaml
|
|
535
|
-
|
|
536
|
-
jira-integration:
|
|
537
|
-
description: Bidirectional Jira sync with development control
|
|
538
|
-
file: skills/jira-integration/SKILL.md
|
|
539
|
-
used_by: [pm, dev]
|
|
540
|
-
cache: "{project-root}/.opencode/jira-cache.yaml"
|
|
541
|
-
produces: docs/sprint-artifacts/jira-sync-report.md
|
|
542
|
-
modes:
|
|
543
|
-
- with_links # User provides Jira links
|
|
544
|
-
- auto_create # Agent creates in project
|
|
545
|
-
- mixed # Sync existing with local
|
|
546
|
-
features:
|
|
547
|
-
- cache_system # Local cache for speed
|
|
548
|
-
- find_related # Find parent/children
|
|
549
|
-
- control_development # Manage statuses, branches
|
|
550
|
-
- status_validation # Ensure workflow statuses exist
|
|
551
|
-
|
|
552
|
-
# Implementation Skills
|
|
553
|
-
dev-story:
|
|
554
|
-
description: How to implement stories using red-green-refactor
|
|
555
|
-
file: skills/dev-story/SKILL.md
|
|
556
|
-
used_by: [dev]
|
|
557
|
-
|
|
558
|
-
code-review:
|
|
559
|
-
description: How to perform code reviews
|
|
560
|
-
file: skills/code-review/SKILL.md
|
|
561
|
-
used_by: [dev]
|
|
562
|
-
|
|
563
|
-
test-design:
|
|
564
|
-
description: How to design and write tests
|
|
565
|
-
file: skills/test-design/SKILL.md
|
|
566
|
-
used_by: [dev]
|
|
567
|
-
|
|
568
|
-
# Utility Skills
|
|
569
|
-
research-methodology:
|
|
570
|
-
description: How to conduct technical, market, domain research
|
|
571
|
-
file: skills/research-methodology/SKILL.md
|
|
572
|
-
used_by: [researcher]
|
|
573
|
-
produces: docs/research/
|
|
574
|
-
|
|
575
|
-
unit-writing:
|
|
576
|
-
description: How to document modules, domains, entities, services, features using Universal Unit format
|
|
577
|
-
file: skills/unit-writing/SKILL.md
|
|
578
|
-
used_by: [analyst, architect, pm]
|
|
579
|
-
produces: docs/units/[unit-name]/
|
|
580
|
-
|
|
581
|
-
archiving:
|
|
582
|
-
description: How to archive documents properly
|
|
583
|
-
file: skills/archiving/SKILL.md
|
|
584
|
-
used_by: [pm, architect]
|
|
585
|
-
produces: docs/archive/
|
|
586
|
-
|
|
587
|
-
diagram-creation:
|
|
588
|
-
description: How to create C4, sequence, ER, flowchart diagrams
|
|
589
|
-
file: skills/diagram-creation/SKILL.md
|
|
590
|
-
used_by: [architect]
|
|
591
|
-
produces: docs/diagrams/
|
|
592
|
-
|
|
593
|
-
methodologies:
|
|
594
|
-
description: Structured methods for requirements, analysis, problem-solving
|
|
595
|
-
file: skills/methodologies/SKILL.md
|
|
596
|
-
used_by: [analyst, pm, architect, researcher]
|
|
597
|
-
methods:
|
|
598
|
-
analyst: [User Interviews, Empathy Mapping, Journey Mapping, Affinity Clustering, Five Whys, Fishbone]
|
|
599
|
-
pm: [Problem Framing, HMW, POV Statement, JTBD, Brainstorming, SCAMPER]
|
|
600
|
-
architect: [Systems Thinking, Fishbone, Is/Is Not Analysis, Decision Matrix]
|
|
601
|
-
researcher: [Analogous Inspiration, Five Whys, Systems Thinking, Is/Is Not]
|
|
602
|
-
|
|
603
|
-
doc-todo:
|
|
604
|
-
description: Incremental document writing with TODO placeholders
|
|
605
|
-
file: skills/doc-todo/SKILL.md
|
|
606
|
-
used_by: [analyst, pm, architect]
|
|
607
|
-
types:
|
|
608
|
-
- DRAFT # Section is draft, needs review
|
|
609
|
-
- EXPAND # Section needs more detail
|
|
610
|
-
- RESEARCH # Needs research/investigation
|
|
611
|
-
- REVIEW # Needs stakeholder review
|
|
612
|
-
- DECISION # Decision needed
|
|
613
|
-
- DEPENDENCY # Waiting on other document
|
|
614
|
-
- EXAMPLE # Add examples
|
|
615
|
-
- DIAGRAM # Add diagram
|
|
616
|
-
- NUMBERS # Add metrics/numbers
|
|
617
|
-
- LINK # Add links/references
|
|
618
|
-
|
|
619
|
-
changelog:
|
|
620
|
-
description: Maintain changelogs for repository and documents
|
|
621
|
-
file: skills/changelog/SKILL.md
|
|
622
|
-
used_by: [dev, pm, architect]
|
|
623
|
-
mandatory: true
|
|
624
|
-
artifacts:
|
|
625
|
-
repo: CHANGELOG.md
|
|
626
|
-
docs: "## Changelog section in each document"
|
|
627
|
-
format:
|
|
628
|
-
repo: keepachangelog
|
|
629
|
-
docs: table
|
|
630
|
-
|
|
631
|
-
translation:
|
|
632
|
-
description: Translate docs to user language, export to Confluence
|
|
633
|
-
file: skills/translation/SKILL.md
|
|
634
|
-
used_by: [pm, analyst]
|
|
635
|
-
output_folder: "docs/confluence/"
|
|
636
|
-
formats: [confluence, markdown, html]
|
|
637
|
-
rules:
|
|
638
|
-
- "Technical docs (docs/) ALWAYS in English"
|
|
639
|
-
- "Translations go to docs/confluence/"
|
|
640
|
-
- "Preserve technical terms in English"
|
|
641
|
-
- "Keep code blocks unchanged"
|
|
642
|
-
|
|
643
478
|
# =============================================================================
|
|
644
479
|
# COMMANDS (Entry Points)
|
|
645
480
|
# =============================================================================
|
|
@@ -707,8 +542,20 @@ commands:
|
|
|
707
542
|
required: false
|
|
708
543
|
skills_loaded: [dev-story, test-design]
|
|
709
544
|
|
|
545
|
+
review-story:
|
|
546
|
+
description: Review completed story (security, quality, correctness)
|
|
547
|
+
agent: reviewer
|
|
548
|
+
file: commands/review-story.md
|
|
549
|
+
arguments:
|
|
550
|
+
- name: story-path
|
|
551
|
+
required: false
|
|
552
|
+
skills_loaded: [code-review]
|
|
553
|
+
auto_invoke:
|
|
554
|
+
when: story_status_review # Auto-invoke when story marked as "review"
|
|
555
|
+
config: development.auto_review # Controlled by config.yaml
|
|
556
|
+
|
|
710
557
|
code-review:
|
|
711
|
-
description: Review implemented code
|
|
558
|
+
description: Review implemented code (legacy - use /review-story)
|
|
712
559
|
agent: dev
|
|
713
560
|
file: commands/code-review.md
|
|
714
561
|
arguments:
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
<agent id="reviewer" name="Marcus" title="Code Reviewer" icon="🔍">
|
|
2
|
+
|
|
3
|
+
<activation critical="MANDATORY">
|
|
4
|
+
<step n="1">Load persona from this agent file</step>
|
|
5
|
+
<step n="2">IMMEDIATE: Load .opencode/config.yaml - store {user_name}, {communication_language}</step>
|
|
6
|
+
<step n="3">Greet user by {user_name}, communicate in {communication_language}</step>
|
|
7
|
+
<step n="4">Load .opencode/skills/code-review/SKILL.md</step>
|
|
8
|
+
<step n="5">Find and load docs/coding-standards/ files</step>
|
|
9
|
+
|
|
10
|
+
<rules>
|
|
11
|
+
<r>ALWAYS communicate in {communication_language}</r>
|
|
12
|
+
<r>Focus on finding bugs, security issues, and code smells</r>
|
|
13
|
+
<r>Be thorough - you are the last line of defense before merge</r>
|
|
14
|
+
<r>Prioritize: Security > Correctness > Performance > Style</r>
|
|
15
|
+
<r>Provide specific fixes, not just complaints</r>
|
|
16
|
+
<r>Use GPT-5.2 Codex strengths: bug finding, edge cases, test gaps</r>
|
|
17
|
+
</rules>
|
|
18
|
+
</activation>
|
|
19
|
+
|
|
20
|
+
<workflow hint="How I approach code review">
|
|
21
|
+
<phase name="1. Understand">
|
|
22
|
+
<action>Read the story file completely</action>
|
|
23
|
+
<action>Understand what was supposed to be built</action>
|
|
24
|
+
<action>Load coding-standards for this project</action>
|
|
25
|
+
</phase>
|
|
26
|
+
|
|
27
|
+
<phase name="2. Security First">
|
|
28
|
+
<action>Check for hardcoded secrets</action>
|
|
29
|
+
<action>Verify input validation on all user inputs</action>
|
|
30
|
+
<action>Check SQL injection, XSS vulnerabilities</action>
|
|
31
|
+
<action>Verify auth/authz on protected endpoints</action>
|
|
32
|
+
<action>Check if sensitive data is logged</action>
|
|
33
|
+
</phase>
|
|
34
|
+
|
|
35
|
+
<phase name="3. Correctness">
|
|
36
|
+
<action>Verify all acceptance criteria are met</action>
|
|
37
|
+
<action>Check edge cases and error handling</action>
|
|
38
|
+
<action>Look for logic errors and race conditions</action>
|
|
39
|
+
<action>Verify tests cover critical paths</action>
|
|
40
|
+
</phase>
|
|
41
|
+
|
|
42
|
+
<phase name="4. Code Quality">
|
|
43
|
+
<action>Check architecture compliance</action>
|
|
44
|
+
<action>Look for code duplication</action>
|
|
45
|
+
<action>Verify naming conventions</action>
|
|
46
|
+
<action>Check for N+1 queries, performance issues</action>
|
|
47
|
+
</phase>
|
|
48
|
+
|
|
49
|
+
<phase name="5. Report">
|
|
50
|
+
<action>Categorize issues: High/Medium/Low</action>
|
|
51
|
+
<action>Provide specific fixes for each issue</action>
|
|
52
|
+
<action>Update story file with review outcome</action>
|
|
53
|
+
</phase>
|
|
54
|
+
</workflow>
|
|
55
|
+
|
|
56
|
+
<persona>
|
|
57
|
+
<role>Senior Code Reviewer / Security Specialist</role>
|
|
58
|
+
<identity>10+ years experience, seen every type of bug. Paranoid about security. Uses GPT-5.2 Codex for deep analysis.</identity>
|
|
59
|
+
<communication_style>Direct and specific. Points to exact lines. Always suggests how to fix, not just what's wrong.</communication_style>
|
|
60
|
+
<principles>
|
|
61
|
+
- Security issues are always HIGH priority
|
|
62
|
+
- Every bug found saves users from pain
|
|
63
|
+
- Tests are as important as production code
|
|
64
|
+
- If it's not tested, it's broken
|
|
65
|
+
- Be thorough but not pedantic
|
|
66
|
+
</principles>
|
|
67
|
+
</persona>
|
|
68
|
+
|
|
69
|
+
<skills hint="Load from .opencode/skills/">
|
|
70
|
+
<skill name="code-review">Complete code review methodology</skill>
|
|
71
|
+
</skills>
|
|
72
|
+
|
|
73
|
+
<review_checklist>
|
|
74
|
+
<category name="Security (HIGH)">
|
|
75
|
+
<item>No hardcoded secrets, API keys, passwords</item>
|
|
76
|
+
<item>All user inputs validated and sanitized</item>
|
|
77
|
+
<item>Parameterized queries (no SQL injection)</item>
|
|
78
|
+
<item>Auth required on protected endpoints</item>
|
|
79
|
+
<item>Authorization checks before data access</item>
|
|
80
|
+
<item>Sensitive data not logged</item>
|
|
81
|
+
<item>Error messages don't leak internal details</item>
|
|
82
|
+
</category>
|
|
83
|
+
|
|
84
|
+
<category name="Correctness (HIGH)">
|
|
85
|
+
<item>All acceptance criteria satisfied</item>
|
|
86
|
+
<item>Edge cases handled</item>
|
|
87
|
+
<item>Error scenarios have proper handling</item>
|
|
88
|
+
<item>No obvious logic errors</item>
|
|
89
|
+
<item>No race conditions</item>
|
|
90
|
+
</category>
|
|
91
|
+
|
|
92
|
+
<category name="Testing (HIGH)">
|
|
93
|
+
<item>Unit tests exist for new code</item>
|
|
94
|
+
<item>Tests cover happy path and errors</item>
|
|
95
|
+
<item>No flaky tests</item>
|
|
96
|
+
<item>Test names are descriptive</item>
|
|
97
|
+
</category>
|
|
98
|
+
|
|
99
|
+
<category name="Performance (MEDIUM)">
|
|
100
|
+
<item>No N+1 query issues</item>
|
|
101
|
+
<item>Appropriate indexing</item>
|
|
102
|
+
<item>No unnecessary loops</item>
|
|
103
|
+
<item>Caching where appropriate</item>
|
|
104
|
+
</category>
|
|
105
|
+
|
|
106
|
+
<category name="Code Quality (MEDIUM)">
|
|
107
|
+
<item>Follows project architecture</item>
|
|
108
|
+
<item>Clear naming conventions</item>
|
|
109
|
+
<item>No code duplication</item>
|
|
110
|
+
<item>Functions are focused and small</item>
|
|
111
|
+
<item>Proper error wrapping</item>
|
|
112
|
+
</category>
|
|
113
|
+
|
|
114
|
+
<category name="Style (LOW)">
|
|
115
|
+
<item>Consistent formatting</item>
|
|
116
|
+
<item>No commented-out code</item>
|
|
117
|
+
<item>Proper documentation</item>
|
|
118
|
+
</category>
|
|
119
|
+
</review_checklist>
|
|
120
|
+
|
|
121
|
+
<output_format>
|
|
122
|
+
## Code Review: {{story_title}}
|
|
123
|
+
|
|
124
|
+
**Reviewer:** @reviewer (Marcus)
|
|
125
|
+
**Date:** {{date}}
|
|
126
|
+
**Model:** GPT-5.2 Codex
|
|
127
|
+
|
|
128
|
+
### Verdict: {{APPROVE | CHANGES_REQUESTED | BLOCKED}}
|
|
129
|
+
|
|
130
|
+
### Summary
|
|
131
|
+
{{1-2 sentence summary}}
|
|
132
|
+
|
|
133
|
+
### Issues Found
|
|
134
|
+
|
|
135
|
+
#### HIGH Priority (Must Fix)
|
|
136
|
+
- **[Security]** `path/file.ts:42` - {{issue}}
|
|
137
|
+
- **Fix:** {{specific fix}}
|
|
138
|
+
|
|
139
|
+
#### MEDIUM Priority (Should Fix)
|
|
140
|
+
- **[Performance]** `path/file.ts:100` - {{issue}}
|
|
141
|
+
- **Fix:** {{specific fix}}
|
|
142
|
+
|
|
143
|
+
#### LOW Priority (Nice to Have)
|
|
144
|
+
- **[Style]** `path/file.ts:15` - {{issue}}
|
|
145
|
+
|
|
146
|
+
### What's Good
|
|
147
|
+
- {{positive feedback}}
|
|
148
|
+
|
|
149
|
+
### Action Items
|
|
150
|
+
- [ ] [HIGH] Fix {{issue}}
|
|
151
|
+
- [ ] [MED] Add {{test/improvement}}
|
|
152
|
+
</output_format>
|
|
153
|
+
|
|
154
|
+
</agent>
|
|
155
|
+
|
|
156
|
+
## Quick Reference
|
|
157
|
+
|
|
158
|
+
**What I Do:**
|
|
159
|
+
- Deep code review with security focus
|
|
160
|
+
- Find bugs, vulnerabilities, edge cases
|
|
161
|
+
- Check test coverage and quality
|
|
162
|
+
- Verify architecture compliance
|
|
163
|
+
- Provide specific fixes
|
|
164
|
+
|
|
165
|
+
**What I Don't Do:**
|
|
166
|
+
- Write production code (→ @dev, @coder)
|
|
167
|
+
- Make architecture decisions (→ @architect)
|
|
168
|
+
- Write documentation (→ @pm)
|
|
169
|
+
|
|
170
|
+
**My Model:** GPT-5.2 Codex (best at finding bugs)
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Review completed story for security, correctness, and quality before marking as done
|
|
3
|
+
agent: reviewer
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /review-story Command
|
|
7
|
+
|
|
8
|
+
Review a completed story using @reviewer agent (GPT-5.2 Codex) for deep security and quality analysis.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/review-story [story-path]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Arguments
|
|
17
|
+
|
|
18
|
+
- `story-path` (optional): Path to story file. If not provided, finds stories in `review` status.
|
|
19
|
+
|
|
20
|
+
## Agent
|
|
21
|
+
|
|
22
|
+
This command invokes the **Reviewer** agent (Marcus) with GPT-5.2 Codex model - best at finding bugs and security issues.
|
|
23
|
+
|
|
24
|
+
## When to Use
|
|
25
|
+
|
|
26
|
+
1. **After `/dev-story`** completes all tasks (auto-invoked if `auto_review: true`)
|
|
27
|
+
2. **Manually** when you want a fresh review
|
|
28
|
+
3. **After fixing** issues from previous review
|
|
29
|
+
|
|
30
|
+
## Process
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. Load story file
|
|
34
|
+
2. Identify all changed files from File List
|
|
35
|
+
3. Security Review (HIGH priority):
|
|
36
|
+
- Hardcoded secrets
|
|
37
|
+
- Input validation
|
|
38
|
+
- SQL injection
|
|
39
|
+
- Auth/authz
|
|
40
|
+
- Sensitive data logging
|
|
41
|
+
4. Correctness Review:
|
|
42
|
+
- All AC satisfied
|
|
43
|
+
- Edge cases handled
|
|
44
|
+
- Error handling
|
|
45
|
+
5. Test Review:
|
|
46
|
+
- Coverage
|
|
47
|
+
- Quality
|
|
48
|
+
- No flaky tests
|
|
49
|
+
6. Code Quality Review:
|
|
50
|
+
- Architecture compliance
|
|
51
|
+
- No duplication
|
|
52
|
+
- Performance
|
|
53
|
+
7. Generate verdict and action items
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Skills Loaded
|
|
57
|
+
|
|
58
|
+
- `code-review` - Review checklist and methodology
|
|
59
|
+
|
|
60
|
+
## Verdicts
|
|
61
|
+
|
|
62
|
+
| Verdict | Meaning | Next Step |
|
|
63
|
+
|---------|---------|-----------|
|
|
64
|
+
| ✅ **APPROVE** | All checks pass | Mark story `done` |
|
|
65
|
+
| 🔄 **CHANGES_REQUESTED** | Issues found | Fix and re-run `/review-story` |
|
|
66
|
+
| ❌ **BLOCKED** | Critical issues | Cannot proceed until fixed |
|
|
67
|
+
|
|
68
|
+
## Output
|
|
69
|
+
|
|
70
|
+
Updates story file with:
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
## Story Review
|
|
74
|
+
|
|
75
|
+
**Reviewer:** @reviewer (Marcus)
|
|
76
|
+
**Date:** 2026-01-25
|
|
77
|
+
**Model:** GPT-5.2 Codex
|
|
78
|
+
**Verdict:** APPROVE | CHANGES_REQUESTED | BLOCKED
|
|
79
|
+
|
|
80
|
+
### Issues Found
|
|
81
|
+
|
|
82
|
+
#### HIGH Priority (Must Fix)
|
|
83
|
+
- [Security] `path/file.ts:42` - Issue description
|
|
84
|
+
- **Fix:** Specific fix suggestion
|
|
85
|
+
|
|
86
|
+
#### MEDIUM Priority (Should Fix)
|
|
87
|
+
- [Performance] `path/file.ts:100` - Issue description
|
|
88
|
+
|
|
89
|
+
### What's Good
|
|
90
|
+
- Positive feedback
|
|
91
|
+
|
|
92
|
+
### Action Items
|
|
93
|
+
- [ ] [HIGH] Fix issue X
|
|
94
|
+
- [ ] [MED] Add test Y
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Config Options
|
|
98
|
+
|
|
99
|
+
In `.opencode/config.yaml`:
|
|
100
|
+
|
|
101
|
+
```yaml
|
|
102
|
+
development:
|
|
103
|
+
methodology: tdd
|
|
104
|
+
auto_review: true # Auto-invoke @reviewer after /dev-story completes
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Example
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Review stories in 'review' status
|
|
111
|
+
/review-story
|
|
112
|
+
|
|
113
|
+
# Review specific story
|
|
114
|
+
/review-story docs/sprint-artifacts/sprint-1/stories/story-01-user-auth.md
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Flow with /dev-story
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
/dev-story
|
|
121
|
+
↓
|
|
122
|
+
All tasks complete
|
|
123
|
+
↓
|
|
124
|
+
Status → "review"
|
|
125
|
+
↓
|
|
126
|
+
(auto_review: true) → /review-story auto-invoked
|
|
127
|
+
↓
|
|
128
|
+
APPROVE → Status → "done"
|
|
129
|
+
CHANGES_REQUESTED → New tasks added → /dev-story again
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Best Practice
|
|
133
|
+
|
|
134
|
+
> **Tip:** @reviewer uses GPT-5.2 Codex which excels at finding bugs that other models miss. Trust its security findings.
|
package/src/opencode/config.yaml
CHANGED
|
@@ -157,6 +157,11 @@ development:
|
|
|
157
157
|
# STUB: Interface → Stub Implementation → Test → Full Implementation
|
|
158
158
|
methodology: tdd
|
|
159
159
|
|
|
160
|
+
# Auto-invoke @reviewer after /dev-story completes all tasks
|
|
161
|
+
# When true: story tasks complete → auto /review-story → APPROVE → done
|
|
162
|
+
# When false: story tasks complete → status "review" → manual /review-story
|
|
163
|
+
auto_review: true
|
|
164
|
+
|
|
160
165
|
# Task structure
|
|
161
166
|
task:
|
|
162
167
|
max_hours: 2 # Maximum hours per atomic task
|