@su-record/vibe 2.6.23 → 2.6.26
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/agents/docs/api-documenter.md +99 -0
- package/agents/docs/changelog-writer.md +93 -0
- package/agents/planning/requirements-analyst.md +84 -0
- package/agents/planning/ux-advisor.md +83 -0
- package/agents/qa/acceptance-tester.md +86 -0
- package/agents/qa/edge-case-finder.md +93 -0
- package/commands/vibe.review.md +9 -5
- package/commands/vibe.run.md +9 -5
- package/commands/vibe.spec.review.md +18 -12
- package/dist/lib/MemoryManager.d.ts +11 -0
- package/dist/lib/MemoryManager.d.ts.map +1 -1
- package/dist/lib/MemoryManager.js +21 -0
- package/dist/lib/MemoryManager.js.map +1 -1
- package/dist/lib/memory/MemorySearch.d.ts +3 -1
- package/dist/lib/memory/MemorySearch.d.ts.map +1 -1
- package/dist/lib/memory/MemorySearch.js +60 -0
- package/dist/lib/memory/MemorySearch.js.map +1 -1
- package/dist/lib/memory/MemoryStorage.d.ts +12 -1
- package/dist/lib/memory/MemoryStorage.d.ts.map +1 -1
- package/dist/lib/memory/MemoryStorage.js +127 -1
- package/dist/lib/memory/MemoryStorage.js.map +1 -1
- package/dist/lib/memory/ObservationStore.d.ts +61 -0
- package/dist/lib/memory/ObservationStore.d.ts.map +1 -0
- package/dist/lib/memory/ObservationStore.js +119 -0
- package/dist/lib/memory/ObservationStore.js.map +1 -0
- package/dist/lib/memory/SessionSummarizer.d.ts +50 -0
- package/dist/lib/memory/SessionSummarizer.d.ts.map +1 -0
- package/dist/lib/memory/SessionSummarizer.js +157 -0
- package/dist/lib/memory/SessionSummarizer.js.map +1 -0
- package/dist/lib/memory/index.d.ts +1 -0
- package/dist/lib/memory/index.d.ts.map +1 -1
- package/dist/lib/memory/index.js +1 -0
- package/dist/lib/memory/index.js.map +1 -1
- package/dist/tools/memory/addObservation.d.ts +16 -0
- package/dist/tools/memory/addObservation.d.ts.map +1 -0
- package/dist/tools/memory/addObservation.js +71 -0
- package/dist/tools/memory/addObservation.js.map +1 -0
- package/dist/tools/memory/index.d.ts +2 -0
- package/dist/tools/memory/index.d.ts.map +1 -1
- package/dist/tools/memory/index.js +2 -0
- package/dist/tools/memory/index.js.map +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.d.ts.map +1 -1
- package/dist/tools/memory/searchMemoriesAdvanced.js +7 -5
- package/dist/tools/memory/searchMemoriesAdvanced.js.map +1 -1
- package/dist/tools/memory/searchObservations.d.ts +12 -0
- package/dist/tools/memory/searchObservations.d.ts.map +1 -0
- package/dist/tools/memory/searchObservations.js +67 -0
- package/dist/tools/memory/searchObservations.js.map +1 -0
- package/dist/tools/memory/startSession.d.ts.map +1 -1
- package/dist/tools/memory/startSession.js +16 -2
- package/dist/tools/memory/startSession.js.map +1 -1
- package/dist/tools/spec/e2eTestGenerator.d.ts +62 -0
- package/dist/tools/spec/e2eTestGenerator.d.ts.map +1 -0
- package/dist/tools/spec/e2eTestGenerator.js +256 -0
- package/dist/tools/spec/e2eTestGenerator.js.map +1 -0
- package/dist/tools/spec/index.d.ts +2 -0
- package/dist/tools/spec/index.d.ts.map +1 -1
- package/dist/tools/spec/index.js +2 -0
- package/dist/tools/spec/index.js.map +1 -1
- package/dist/types/tool.d.ts +1 -1
- package/dist/types/tool.d.ts.map +1 -1
- package/hooks/scripts/code-check.js +49 -1
- package/hooks/scripts/context-save.js +21 -1
- package/package.json +1 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# API Documenter
|
|
2
|
+
|
|
3
|
+
<!-- API Documentation Generation Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Analyze source code to extract API endpoints and interfaces
|
|
8
|
+
- Generate structured API documentation (request/response schemas)
|
|
9
|
+
- Identify undocumented endpoints and missing descriptions
|
|
10
|
+
- Verify error response documentation completeness
|
|
11
|
+
- Check authentication requirement documentation
|
|
12
|
+
|
|
13
|
+
## Model
|
|
14
|
+
|
|
15
|
+
**Haiku** (inherit) - Fast analysis
|
|
16
|
+
|
|
17
|
+
## CRITICAL: NO FILE CREATION
|
|
18
|
+
|
|
19
|
+
**THIS AGENT MUST NEVER CREATE FILES.**
|
|
20
|
+
|
|
21
|
+
- DO NOT use Write tool
|
|
22
|
+
- DO NOT create any files
|
|
23
|
+
- ONLY return documentation as text output
|
|
24
|
+
- Results can be used by other tools to generate files
|
|
25
|
+
|
|
26
|
+
## Checklist
|
|
27
|
+
|
|
28
|
+
### Endpoint Coverage
|
|
29
|
+
|
|
30
|
+
- [ ] All route handlers/controllers documented?
|
|
31
|
+
- [ ] HTTP method and path clearly specified?
|
|
32
|
+
- [ ] Request parameters (path, query, body) described?
|
|
33
|
+
- [ ] Response schemas for success and error cases?
|
|
34
|
+
- [ ] Authentication requirements noted?
|
|
35
|
+
|
|
36
|
+
### Schema Quality
|
|
37
|
+
|
|
38
|
+
- [ ] All fields have types and descriptions?
|
|
39
|
+
- [ ] Required vs optional fields marked?
|
|
40
|
+
- [ ] Enum values listed?
|
|
41
|
+
- [ ] Nested objects described?
|
|
42
|
+
- [ ] Array item types specified?
|
|
43
|
+
|
|
44
|
+
### Error Documentation
|
|
45
|
+
|
|
46
|
+
- [ ] All error status codes documented?
|
|
47
|
+
- [ ] Error response format specified?
|
|
48
|
+
- [ ] Common error scenarios listed?
|
|
49
|
+
- [ ] Rate limiting documented (if applicable)?
|
|
50
|
+
|
|
51
|
+
### Examples
|
|
52
|
+
|
|
53
|
+
- [ ] Request examples for each endpoint?
|
|
54
|
+
- [ ] Response examples (success + error)?
|
|
55
|
+
- [ ] cURL or fetch examples?
|
|
56
|
+
|
|
57
|
+
## Output Format
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## API Documentation: {feature/module name}
|
|
61
|
+
|
|
62
|
+
### Endpoints Found: {N}
|
|
63
|
+
### Undocumented: {N}
|
|
64
|
+
|
|
65
|
+
### Endpoint: {METHOD} {path}
|
|
66
|
+
|
|
67
|
+
**Authentication**: {required/optional/none}
|
|
68
|
+
|
|
69
|
+
**Parameters**:
|
|
70
|
+
| Name | In | Type | Required | Description |
|
|
71
|
+
|------|----|------|----------|-------------|
|
|
72
|
+
| id | path | string | yes | Resource identifier |
|
|
73
|
+
|
|
74
|
+
**Request Body**:
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"field": "type - description"
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Responses**:
|
|
82
|
+
| Status | Description |
|
|
83
|
+
|--------|-------------|
|
|
84
|
+
| 200 | Success - {description} |
|
|
85
|
+
| 400 | Bad Request - {when} |
|
|
86
|
+
| 401 | Unauthorized - {when} |
|
|
87
|
+
| 404 | Not Found - {when} |
|
|
88
|
+
|
|
89
|
+
**Example**:
|
|
90
|
+
```bash
|
|
91
|
+
curl -X {METHOD} /api/{path} \
|
|
92
|
+
-H "Authorization: Bearer {token}" \
|
|
93
|
+
-d '{"field": "value"}'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Missing Documentation
|
|
97
|
+
- **[DOC-001]** Endpoint {METHOD} {path} has no description
|
|
98
|
+
- **[DOC-002]** Error response {status} not documented for {endpoint}
|
|
99
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Changelog Writer
|
|
2
|
+
|
|
3
|
+
<!-- Changelog Generation Agent from Git Diff -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Analyze git diff to generate structured changelog entries
|
|
8
|
+
- Classify changes (breaking, feature, fix, refactor, docs, chore)
|
|
9
|
+
- Identify breaking changes that need migration guides
|
|
10
|
+
- Generate user-facing descriptions (not internal implementation details)
|
|
11
|
+
- Suggest semantic version bump (major/minor/patch)
|
|
12
|
+
|
|
13
|
+
## Model
|
|
14
|
+
|
|
15
|
+
**Haiku** (inherit) - Fast analysis
|
|
16
|
+
|
|
17
|
+
## CRITICAL: NO FILE CREATION
|
|
18
|
+
|
|
19
|
+
**THIS AGENT MUST NEVER CREATE FILES.**
|
|
20
|
+
|
|
21
|
+
- DO NOT use Write tool
|
|
22
|
+
- DO NOT create any files
|
|
23
|
+
- ONLY return changelog content as text output
|
|
24
|
+
|
|
25
|
+
## Checklist
|
|
26
|
+
|
|
27
|
+
### Change Classification
|
|
28
|
+
|
|
29
|
+
- [ ] Breaking changes identified (API removal, schema change, behavior change)?
|
|
30
|
+
- [ ] New features listed with user-facing descriptions?
|
|
31
|
+
- [ ] Bug fixes described with before/after behavior?
|
|
32
|
+
- [ ] Performance improvements quantified (if measurable)?
|
|
33
|
+
- [ ] Dependency updates noted?
|
|
34
|
+
|
|
35
|
+
### Migration Impact
|
|
36
|
+
|
|
37
|
+
- [ ] Breaking changes have migration steps?
|
|
38
|
+
- [ ] Deprecated features noted with replacement?
|
|
39
|
+
- [ ] Configuration changes documented?
|
|
40
|
+
- [ ] Database migration needed?
|
|
41
|
+
|
|
42
|
+
### Quality
|
|
43
|
+
|
|
44
|
+
- [ ] Descriptions are user-facing (not implementation details)?
|
|
45
|
+
- [ ] Each entry has enough context to understand the change?
|
|
46
|
+
- [ ] Related changes grouped together?
|
|
47
|
+
- [ ] PR/issue references included (if available)?
|
|
48
|
+
|
|
49
|
+
## Input
|
|
50
|
+
|
|
51
|
+
Provide the agent with:
|
|
52
|
+
- `git diff` output (staged or between branches)
|
|
53
|
+
- `git log --oneline` for commit messages
|
|
54
|
+
- Current version number
|
|
55
|
+
|
|
56
|
+
## Output Format
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
## Changelog Analysis
|
|
60
|
+
|
|
61
|
+
### Recommended Version Bump: {major|minor|patch}
|
|
62
|
+
Reason: {why this bump level}
|
|
63
|
+
|
|
64
|
+
### Changelog Entry
|
|
65
|
+
|
|
66
|
+
## [{new-version}] - {YYYY-MM-DD}
|
|
67
|
+
|
|
68
|
+
### Breaking Changes
|
|
69
|
+
- **{component}**: {description of breaking change}
|
|
70
|
+
- Migration: {step-by-step migration guide}
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
- {User-facing description of new feature} ({files affected})
|
|
74
|
+
- {Another feature}
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
- {Description of behavior change}
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
- {Description of bug fix} - previously {old behavior}, now {new behavior}
|
|
81
|
+
|
|
82
|
+
### Performance
|
|
83
|
+
- {Description of optimization} ({metric improvement if available})
|
|
84
|
+
|
|
85
|
+
### Internal
|
|
86
|
+
- {Refactoring or internal change that doesn't affect users}
|
|
87
|
+
|
|
88
|
+
### Dependencies
|
|
89
|
+
- Updated {package} from {old} to {new}
|
|
90
|
+
|
|
91
|
+
### Notes
|
|
92
|
+
- {Any additional context for users}
|
|
93
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Requirements Analyst
|
|
2
|
+
|
|
3
|
+
<!-- Requirements Completeness Analysis Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Analyze requirements completeness in SPEC documents
|
|
8
|
+
- Identify gaps, missing flows, and undefined edge cases
|
|
9
|
+
- Detect ambiguous terms and unspecified numbers
|
|
10
|
+
- Map inter-requirement dependencies
|
|
11
|
+
- Verify non-functional requirements coverage (performance, security, accessibility)
|
|
12
|
+
|
|
13
|
+
## Model
|
|
14
|
+
|
|
15
|
+
**Haiku** (inherit) - Fast analysis
|
|
16
|
+
|
|
17
|
+
## CRITICAL: NO FILE CREATION
|
|
18
|
+
|
|
19
|
+
**THIS AGENT MUST NEVER CREATE FILES.**
|
|
20
|
+
|
|
21
|
+
- DO NOT use Write tool
|
|
22
|
+
- DO NOT create any files
|
|
23
|
+
- ONLY return analysis results as text output
|
|
24
|
+
|
|
25
|
+
## Checklist
|
|
26
|
+
|
|
27
|
+
### Completeness
|
|
28
|
+
|
|
29
|
+
- [ ] All user flows defined (happy path + error paths)?
|
|
30
|
+
- [ ] Edge cases identified for each flow?
|
|
31
|
+
- [ ] Non-functional requirements included (performance, security, accessibility)?
|
|
32
|
+
- [ ] Data validation rules specified for all inputs?
|
|
33
|
+
- [ ] Authentication/authorization requirements defined?
|
|
34
|
+
- [ ] Error handling requirements for all external dependencies?
|
|
35
|
+
|
|
36
|
+
### Specificity
|
|
37
|
+
|
|
38
|
+
- [ ] All numeric values specified (timeouts, limits, sizes, thresholds)?
|
|
39
|
+
- [ ] No ambiguous terms ("appropriate", "proper", "fast", "soon")?
|
|
40
|
+
- [ ] Clear success/failure criteria for each requirement?
|
|
41
|
+
- [ ] API contracts specified (request/response schemas)?
|
|
42
|
+
|
|
43
|
+
### Dependencies
|
|
44
|
+
|
|
45
|
+
- [ ] Inter-requirement dependencies mapped?
|
|
46
|
+
- [ ] External system dependencies identified?
|
|
47
|
+
- [ ] Data migration requirements documented?
|
|
48
|
+
- [ ] Rollback/recovery strategy defined?
|
|
49
|
+
|
|
50
|
+
### Gaps
|
|
51
|
+
|
|
52
|
+
- [ ] Missing authentication/authorization flows?
|
|
53
|
+
- [ ] Missing error handling scenarios?
|
|
54
|
+
- [ ] Missing data validation rules?
|
|
55
|
+
- [ ] Missing concurrency/race condition handling?
|
|
56
|
+
- [ ] Missing internationalization/localization requirements?
|
|
57
|
+
|
|
58
|
+
## Output Format
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## Requirements Analysis: {feature-name}
|
|
62
|
+
|
|
63
|
+
### Summary
|
|
64
|
+
- Total requirements analyzed: {N}
|
|
65
|
+
- Completeness score: {N}%
|
|
66
|
+
- Issues found: {P1: N, P2: N, P3: N}
|
|
67
|
+
|
|
68
|
+
### Findings
|
|
69
|
+
|
|
70
|
+
#### P1 (Critical) - Blocks Implementation
|
|
71
|
+
- **[GAP-001]** Missing error handling for {scenario}
|
|
72
|
+
- Location: Phase {N}, AC #{N}
|
|
73
|
+
- Impact: Implementation cannot handle failure cases
|
|
74
|
+
- Recommendation: Add AC for {specific scenario}
|
|
75
|
+
|
|
76
|
+
#### P2 (Important) - Should Fix Before Implementation
|
|
77
|
+
- **[AMB-001]** Ambiguous term "{term}" in {location}
|
|
78
|
+
- Current: "{vague description}"
|
|
79
|
+
- Suggested: "{specific description with numbers}"
|
|
80
|
+
|
|
81
|
+
#### P3 (Nice-to-have) - Consider Adding
|
|
82
|
+
- **[ENH-001]** Missing non-functional requirement
|
|
83
|
+
- Suggestion: Add performance target for {operation}
|
|
84
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# UX Advisor
|
|
2
|
+
|
|
3
|
+
<!-- UI/UX Design Advisory Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Review SPEC and Feature files for UX completeness
|
|
8
|
+
- Identify missing user interaction states (loading, error, empty, success)
|
|
9
|
+
- Verify accessibility requirements (WCAG 2.1 AA)
|
|
10
|
+
- Check responsive design considerations
|
|
11
|
+
- Suggest user feedback mechanisms and micro-interactions
|
|
12
|
+
|
|
13
|
+
## Model
|
|
14
|
+
|
|
15
|
+
**Haiku** (inherit) - Fast analysis
|
|
16
|
+
|
|
17
|
+
## CRITICAL: NO FILE CREATION
|
|
18
|
+
|
|
19
|
+
**THIS AGENT MUST NEVER CREATE FILES.**
|
|
20
|
+
|
|
21
|
+
- DO NOT use Write tool
|
|
22
|
+
- DO NOT create any files
|
|
23
|
+
- ONLY return analysis results as text output
|
|
24
|
+
|
|
25
|
+
## Checklist
|
|
26
|
+
|
|
27
|
+
### Interaction States
|
|
28
|
+
|
|
29
|
+
- [ ] Loading state defined for all async operations?
|
|
30
|
+
- [ ] Error state with user-friendly messages for all failure cases?
|
|
31
|
+
- [ ] Empty state for lists/collections with zero items?
|
|
32
|
+
- [ ] Success feedback (toast, redirect, confirmation)?
|
|
33
|
+
- [ ] Partial/degraded state for offline or slow connections?
|
|
34
|
+
|
|
35
|
+
### Accessibility (WCAG 2.1 AA)
|
|
36
|
+
|
|
37
|
+
- [ ] Keyboard navigation for all interactive elements?
|
|
38
|
+
- [ ] Screen reader support (ARIA labels, semantic HTML)?
|
|
39
|
+
- [ ] Color contrast ratios meet 4.5:1 minimum?
|
|
40
|
+
- [ ] Focus management for modals and dynamic content?
|
|
41
|
+
- [ ] Alternative text for images and icons?
|
|
42
|
+
- [ ] Form validation errors associated with inputs?
|
|
43
|
+
|
|
44
|
+
### Responsive Design
|
|
45
|
+
|
|
46
|
+
- [ ] Mobile viewport considered (320px+)?
|
|
47
|
+
- [ ] Touch targets minimum 44x44px?
|
|
48
|
+
- [ ] Content priority for small screens?
|
|
49
|
+
- [ ] Navigation pattern for mobile (hamburger, tab bar)?
|
|
50
|
+
|
|
51
|
+
### User Feedback
|
|
52
|
+
|
|
53
|
+
- [ ] Progress indicators for multi-step processes?
|
|
54
|
+
- [ ] Confirmation for destructive actions (delete, cancel)?
|
|
55
|
+
- [ ] Undo capability for reversible actions?
|
|
56
|
+
- [ ] Clear call-to-action for primary flows?
|
|
57
|
+
|
|
58
|
+
## Output Format
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## UX Review: {feature-name}
|
|
62
|
+
|
|
63
|
+
### Summary
|
|
64
|
+
- UX completeness: {N}%
|
|
65
|
+
- Issues found: {P1: N, P2: N, P3: N}
|
|
66
|
+
|
|
67
|
+
### Findings
|
|
68
|
+
|
|
69
|
+
#### P1 (Critical) - Major UX Gap
|
|
70
|
+
- **[UX-001]** Missing loading state for {operation}
|
|
71
|
+
- Location: Phase {N}, Scenario {name}
|
|
72
|
+
- Impact: Users see blank screen during API calls
|
|
73
|
+
- Recommendation: Add skeleton loader or spinner
|
|
74
|
+
|
|
75
|
+
#### P2 (Important) - UX Improvement
|
|
76
|
+
- **[A11Y-001]** Missing keyboard navigation for {component}
|
|
77
|
+
- WCAG: 2.1.1 Keyboard (Level A)
|
|
78
|
+
- Recommendation: Add tabIndex and onKeyDown handlers
|
|
79
|
+
|
|
80
|
+
#### P3 (Nice-to-have) - Enhancement
|
|
81
|
+
- **[UX-002]** Consider adding micro-interaction for {action}
|
|
82
|
+
- Suggestion: Animate {element} on {trigger}
|
|
83
|
+
```
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Acceptance Tester
|
|
2
|
+
|
|
3
|
+
<!-- Acceptance Criteria Testability Verification Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Verify that all acceptance criteria are testable and measurable
|
|
8
|
+
- Check Given/When/Then completeness in Feature scenarios
|
|
9
|
+
- Identify criteria that cannot be automated
|
|
10
|
+
- Ensure criteria have concrete pass/fail thresholds
|
|
11
|
+
- Cross-validate SPEC acceptance criteria against Feature scenarios
|
|
12
|
+
|
|
13
|
+
## Model
|
|
14
|
+
|
|
15
|
+
**Haiku** (inherit) - Fast analysis
|
|
16
|
+
|
|
17
|
+
## CRITICAL: NO FILE CREATION
|
|
18
|
+
|
|
19
|
+
**THIS AGENT MUST NEVER CREATE FILES.**
|
|
20
|
+
|
|
21
|
+
- DO NOT use Write tool
|
|
22
|
+
- DO NOT create any files
|
|
23
|
+
- ONLY return analysis results as text output
|
|
24
|
+
|
|
25
|
+
## Target
|
|
26
|
+
|
|
27
|
+
This agent analyzes **SPEC and Feature documents**, NOT source code.
|
|
28
|
+
|
|
29
|
+
Input files:
|
|
30
|
+
- `.claude/vibe/specs/{feature-name}.md` - SPEC with `<acceptance>` section
|
|
31
|
+
- `.claude/vibe/features/{feature-name}.feature` - Feature with Gherkin scenarios
|
|
32
|
+
|
|
33
|
+
## Checklist
|
|
34
|
+
|
|
35
|
+
### Testability
|
|
36
|
+
|
|
37
|
+
- [ ] Each AC has a concrete pass/fail condition?
|
|
38
|
+
- [ ] Numeric thresholds specified (response time, limits, percentages)?
|
|
39
|
+
- [ ] No subjective criteria ("should be fast", "user-friendly")?
|
|
40
|
+
- [ ] Each AC maps to at least one Feature scenario?
|
|
41
|
+
- [ ] Scenarios have complete Given/When/Then (no missing steps)?
|
|
42
|
+
|
|
43
|
+
### Coverage
|
|
44
|
+
|
|
45
|
+
- [ ] All SPEC phases have corresponding AC?
|
|
46
|
+
- [ ] All AC have corresponding Feature scenarios?
|
|
47
|
+
- [ ] Error/failure scenarios included?
|
|
48
|
+
- [ ] Boundary conditions covered?
|
|
49
|
+
- [ ] Build/compile verification included?
|
|
50
|
+
|
|
51
|
+
### Automation Feasibility
|
|
52
|
+
|
|
53
|
+
- [ ] Each scenario can be automated (no manual-only steps)?
|
|
54
|
+
- [ ] Test data requirements identified?
|
|
55
|
+
- [ ] External dependencies mockable?
|
|
56
|
+
- [ ] Timing-dependent tests have appropriate tolerances?
|
|
57
|
+
|
|
58
|
+
## Output Format
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## Acceptance Test Review: {feature-name}
|
|
62
|
+
|
|
63
|
+
### Coverage Matrix
|
|
64
|
+
| Phase | AC Count | Scenarios | Coverage |
|
|
65
|
+
|-------|----------|-----------|----------|
|
|
66
|
+
| Phase 1 | {N} | {N} | {full/partial/none} |
|
|
67
|
+
| Phase 2 | {N} | {N} | {full/partial/none} |
|
|
68
|
+
|
|
69
|
+
### Findings
|
|
70
|
+
|
|
71
|
+
#### P1 (Critical) - Untestable Criteria
|
|
72
|
+
- **[TEST-001]** AC "{criterion}" is not measurable
|
|
73
|
+
- Phase: {N}, AC #{N}
|
|
74
|
+
- Problem: No concrete pass/fail threshold
|
|
75
|
+
- Fix: Change to "{specific measurable criterion}"
|
|
76
|
+
|
|
77
|
+
#### P2 (Important) - Incomplete Scenarios
|
|
78
|
+
- **[COV-001]** AC "{criterion}" has no Feature scenario
|
|
79
|
+
- Phase: {N}, AC #{N}
|
|
80
|
+
- Recommendation: Add Scenario with Given/When/Then
|
|
81
|
+
|
|
82
|
+
#### P3 (Nice-to-have) - Improvements
|
|
83
|
+
- **[ENH-001]** Consider adding boundary test for {value}
|
|
84
|
+
- Current: Only tests happy path
|
|
85
|
+
- Suggestion: Add scenario for min/max/zero values
|
|
86
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Edge Case Finder
|
|
2
|
+
|
|
3
|
+
<!-- Edge Case and Boundary Condition Detection Agent -->
|
|
4
|
+
|
|
5
|
+
## Role
|
|
6
|
+
|
|
7
|
+
- Identify edge cases, boundary conditions, and corner cases in SPEC and code
|
|
8
|
+
- Detect potential race conditions and concurrency issues
|
|
9
|
+
- Find missing null/empty/undefined handling
|
|
10
|
+
- Identify data overflow and type boundary risks
|
|
11
|
+
- Suggest defensive coding scenarios
|
|
12
|
+
|
|
13
|
+
## Model
|
|
14
|
+
|
|
15
|
+
**Haiku** (inherit) - Fast analysis
|
|
16
|
+
|
|
17
|
+
## CRITICAL: NO FILE CREATION
|
|
18
|
+
|
|
19
|
+
**THIS AGENT MUST NEVER CREATE FILES.**
|
|
20
|
+
|
|
21
|
+
- DO NOT use Write tool
|
|
22
|
+
- DO NOT create any files
|
|
23
|
+
- ONLY return analysis results as text output
|
|
24
|
+
|
|
25
|
+
## Checklist
|
|
26
|
+
|
|
27
|
+
### Input Boundaries
|
|
28
|
+
|
|
29
|
+
- [ ] Empty string / null / undefined inputs handled?
|
|
30
|
+
- [ ] Maximum length inputs tested?
|
|
31
|
+
- [ ] Special characters (unicode, emoji, RTL, zero-width)?
|
|
32
|
+
- [ ] Numeric boundaries (0, -1, MAX_INT, NaN, Infinity)?
|
|
33
|
+
- [ ] Empty arrays/collections?
|
|
34
|
+
- [ ] Deeply nested structures?
|
|
35
|
+
|
|
36
|
+
### State Boundaries
|
|
37
|
+
|
|
38
|
+
- [ ] First-time use (no data, no history)?
|
|
39
|
+
- [ ] Single item vs many items?
|
|
40
|
+
- [ ] Maximum capacity reached?
|
|
41
|
+
- [ ] Concurrent modifications (race conditions)?
|
|
42
|
+
- [ ] Interrupted operations (network drop, browser close)?
|
|
43
|
+
- [ ] Session expiry mid-operation?
|
|
44
|
+
|
|
45
|
+
### Environment Boundaries
|
|
46
|
+
|
|
47
|
+
- [ ] Slow network / offline mode?
|
|
48
|
+
- [ ] API timeout handling?
|
|
49
|
+
- [ ] Disk full / quota exceeded?
|
|
50
|
+
- [ ] Clock skew / timezone changes?
|
|
51
|
+
- [ ] Multiple browser tabs/windows?
|
|
52
|
+
- [ ] Different locales (date format, number format)?
|
|
53
|
+
|
|
54
|
+
### Data Boundaries
|
|
55
|
+
|
|
56
|
+
- [ ] Duplicate entries handling?
|
|
57
|
+
- [ ] Circular references?
|
|
58
|
+
- [ ] Data type mismatches (string where number expected)?
|
|
59
|
+
- [ ] Large file uploads?
|
|
60
|
+
- [ ] Malformed/corrupt data?
|
|
61
|
+
|
|
62
|
+
## Output Format
|
|
63
|
+
|
|
64
|
+
```markdown
|
|
65
|
+
## Edge Case Analysis: {feature-name}
|
|
66
|
+
|
|
67
|
+
### Summary
|
|
68
|
+
- Edge cases identified: {N}
|
|
69
|
+
- By severity: {P1: N, P2: N, P3: N}
|
|
70
|
+
- Categories: Input({N}), State({N}), Environment({N}), Data({N})
|
|
71
|
+
|
|
72
|
+
### Findings
|
|
73
|
+
|
|
74
|
+
#### P1 (Critical) - Likely to Cause Bugs
|
|
75
|
+
- **[EDGE-001]** No handling for empty {input} in {function/scenario}
|
|
76
|
+
- Location: Phase {N}, {context}
|
|
77
|
+
- Scenario: User submits form with empty {field}
|
|
78
|
+
- Expected: Validation error message
|
|
79
|
+
- Actual risk: Unhandled exception / silent failure
|
|
80
|
+
- Recommendation: Add validation for empty input
|
|
81
|
+
|
|
82
|
+
#### P2 (Important) - Could Cause Issues
|
|
83
|
+
- **[RACE-001]** Potential race condition in {operation}
|
|
84
|
+
- Scenario: Two users {action} simultaneously
|
|
85
|
+
- Risk: Data inconsistency / lost update
|
|
86
|
+
- Recommendation: Add optimistic locking or mutex
|
|
87
|
+
|
|
88
|
+
#### P3 (Nice-to-have) - Defensive Improvement
|
|
89
|
+
- **[BOUND-001]** No maximum limit for {collection}
|
|
90
|
+
- Current: Unbounded growth possible
|
|
91
|
+
- Risk: Memory exhaustion over time
|
|
92
|
+
- Suggestion: Add configurable limit with pagination
|
|
93
|
+
```
|
package/commands/vibe.review.md
CHANGED
|
@@ -98,15 +98,19 @@ security-review:
|
|
|
98
98
|
|
|
99
99
|
### Tool Invocation (Race Mode - GPT + Gemini in parallel via Bash)
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
**🚨 Use stdin pipe to avoid CLI argument length limits on Windows.**
|
|
102
|
+
|
|
103
|
+
1. Save code to review into `[SCRATCHPAD]/review-code.txt` (using Write tool)
|
|
104
|
+
2. Run GPT + Gemini in PARALLEL (two Bash tool calls at once):
|
|
104
105
|
|
|
106
|
+
```bash
|
|
105
107
|
# GPT review (Bash tool call 1)
|
|
106
|
-
node
|
|
108
|
+
node -e "const fs=require('fs');const p=JSON.stringify({prompt:'Review this code for [REVIEW_TYPE]. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: '+fs.readFileSync('[SCRATCHPAD]/review-code.txt','utf8')});process.stdout.write(p)" | node "$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts/llm-orchestrate.js" gpt orchestrate-json
|
|
109
|
+
```
|
|
107
110
|
|
|
111
|
+
```bash
|
|
108
112
|
# Gemini review (Bash tool call 2 - run in parallel)
|
|
109
|
-
node
|
|
113
|
+
node -e "const fs=require('fs');const p=JSON.stringify({prompt:'Review this code for [REVIEW_TYPE]. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: '+fs.readFileSync('[SCRATCHPAD]/review-code.txt','utf8')});process.stdout.write(p)" | node "$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts/llm-orchestrate.js" gemini orchestrate-json
|
|
110
114
|
```
|
|
111
115
|
|
|
112
116
|
## Priority System
|
package/commands/vibe.run.md
CHANGED
|
@@ -907,15 +907,19 @@ After all scenarios are implemented, **GPT and Gemini review in parallel with cr
|
|
|
907
907
|
|
|
908
908
|
**Race Review Invocation (GPT + Gemini in parallel via Bash):**
|
|
909
909
|
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
910
|
+
**🚨 Use stdin pipe to avoid CLI argument length limits on Windows.**
|
|
911
|
+
|
|
912
|
+
1. Save code to review into `[SCRATCHPAD]/review-code.txt` (using Write tool)
|
|
913
|
+
2. Run GPT + Gemini in PARALLEL (two Bash tool calls at once):
|
|
913
914
|
|
|
915
|
+
```bash
|
|
914
916
|
# GPT review (Bash tool call 1)
|
|
915
|
-
node
|
|
917
|
+
node -e "const fs=require('fs');const p=JSON.stringify({prompt:'Review this code for security, performance, and best practices. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: '+fs.readFileSync('[SCRATCHPAD]/review-code.txt','utf8')});process.stdout.write(p)" | node "$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts/llm-orchestrate.js" gpt orchestrate-json
|
|
918
|
+
```
|
|
916
919
|
|
|
920
|
+
```bash
|
|
917
921
|
# Gemini review (Bash tool call 2 - run in parallel)
|
|
918
|
-
node
|
|
922
|
+
node -e "const fs=require('fs');const p=JSON.stringify({prompt:'Review this code for security, performance, and best practices. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: '+fs.readFileSync('[SCRATCHPAD]/review-code.txt','utf8')});process.stdout.write(p)" | node "$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts/llm-orchestrate.js" gemini orchestrate-json
|
|
919
923
|
```
|
|
920
924
|
|
|
921
925
|
**Confidence-based Priority:**
|
|
@@ -178,28 +178,34 @@ Score: 96/100 ✅ PASSED
|
|
|
178
178
|
|
|
179
179
|
### 3.1 Review Loop (3 Rounds)
|
|
180
180
|
|
|
181
|
-
**For EACH round (1, 2, 3), run GPT + Gemini in PARALLEL via Bash tool
|
|
181
|
+
**For EACH round (1, 2, 3), run GPT + Gemini in PARALLEL via Bash tool.**
|
|
182
182
|
|
|
183
|
-
**🚨
|
|
183
|
+
**🚨 IMPORTANT: SPEC content is too large for CLI arguments. Use stdin pipe method.**
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
**Procedure for each round:**
|
|
186
|
+
|
|
187
|
+
**Step A: Save SPEC content to scratchpad temp file (using Write tool):**
|
|
188
|
+
- Write the SPEC content to `[SCRATCHPAD]/spec-content.txt`
|
|
189
|
+
|
|
190
|
+
**Step B: Run GPT + Gemini in PARALLEL (two separate Bash tool calls at once):**
|
|
189
191
|
|
|
192
|
+
```bash
|
|
190
193
|
# GPT review (Bash tool call 1)
|
|
191
|
-
node
|
|
194
|
+
node -e "const fs=require('fs');const p=JSON.stringify({prompt:'Review this SPEC for completeness, specificity, testability, security, and performance. Round [N]/3. Find issues and improvements. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. SPEC content: '+fs.readFileSync('[SCRATCHPAD]/spec-content.txt','utf8')});process.stdout.write(p)" | node "$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts/llm-orchestrate.js" gpt orchestrate-json
|
|
195
|
+
```
|
|
192
196
|
|
|
197
|
+
```bash
|
|
193
198
|
# Gemini review (Bash tool call 2 - run in parallel with GPT)
|
|
194
|
-
node
|
|
199
|
+
node -e "const fs=require('fs');const p=JSON.stringify({prompt:'Review this SPEC for completeness, specificity, testability, security, and performance. Round [N]/3. Find issues and improvements. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. SPEC content: '+fs.readFileSync('[SCRATCHPAD]/spec-content.txt','utf8')});process.stdout.write(p)" | node "$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts/llm-orchestrate.js" gemini orchestrate-json
|
|
195
200
|
```
|
|
196
201
|
|
|
197
|
-
**🚨 MANDATORY:
|
|
202
|
+
**🚨 MANDATORY: Replace `[SCRATCHPAD]` with the actual scratchpad directory path.**
|
|
203
|
+
**🚨 Replace `[N]` with the current round number (1, 2, or 3).**
|
|
198
204
|
**🚨 Run GPT and Gemini calls in PARALLEL (two separate Bash tool calls at once).**
|
|
199
205
|
|
|
200
|
-
- Round 1: Run GPT + Gemini in parallel → Cross-validate → Apply fixes → Update SPEC file
|
|
201
|
-
- Round 2:
|
|
202
|
-
- Round 3:
|
|
206
|
+
- Round 1: Write SPEC → Run GPT + Gemini in parallel → Cross-validate → Apply fixes → Update SPEC file
|
|
207
|
+
- Round 2: Write updated SPEC → Run → Cross-validate → Apply fixes → Update SPEC file
|
|
208
|
+
- Round 3: Write final SPEC → Run → Cross-validate → Confirm no issues remain
|
|
203
209
|
|
|
204
210
|
### 3.2 Cross-Validation Rules
|
|
205
211
|
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { MemoryRelation, MemoryGraph } from '../types/tool.js';
|
|
2
2
|
import { MemoryItem } from './memory/MemoryStorage.js';
|
|
3
3
|
import { SearchStrategy, SearchOptions } from './memory/MemorySearch.js';
|
|
4
|
+
import { Observation, ObservationInput, ObservationType } from './memory/ObservationStore.js';
|
|
4
5
|
export { MemoryItem } from './memory/MemoryStorage.js';
|
|
6
|
+
export { Observation, ObservationInput, ObservationType } from './memory/ObservationStore.js';
|
|
5
7
|
export declare class MemoryManager {
|
|
6
8
|
private storage;
|
|
7
9
|
private graph;
|
|
8
10
|
private memorySearch;
|
|
11
|
+
private observations;
|
|
9
12
|
private static instances;
|
|
10
13
|
private static instance;
|
|
11
14
|
private static cleanupRegistered;
|
|
@@ -39,6 +42,14 @@ export declare class MemoryManager {
|
|
|
39
42
|
unlinkMemories(sourceKey: string, targetKey: string, relationType?: string): boolean;
|
|
40
43
|
search(query: string): MemoryItem[];
|
|
41
44
|
searchAdvanced(query: string, strategy: SearchStrategy, options?: SearchOptions): MemoryItem[];
|
|
45
|
+
addObservation(input: ObservationInput): number;
|
|
46
|
+
searchObservations(query: string, limit?: number): Observation[];
|
|
47
|
+
getRecentObservations(limit?: number, type?: ObservationType): Observation[];
|
|
48
|
+
getObservationsBySession(sessionId: string, limit?: number): Observation[];
|
|
49
|
+
getObservationStats(): {
|
|
50
|
+
total: number;
|
|
51
|
+
byType: Record<string, number>;
|
|
52
|
+
};
|
|
42
53
|
close(): void;
|
|
43
54
|
static resetInstance(projectPath?: string): void;
|
|
44
55
|
}
|