openhermes 1.5.6 → 1.13.1
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/LICENSE +21 -0
- package/README.md +217 -111
- package/autorecall.mjs +2 -12
- package/bootstrap.mjs +160 -8
- package/curator.mjs +1 -5
- package/harness/commands/checkpoint.md +68 -0
- package/harness/commands/eval.md +89 -0
- package/harness/commands/go-build.md +87 -0
- package/harness/commands/go-review.md +71 -0
- package/harness/commands/harness-audit.md +90 -0
- package/harness/commands/learn.md +2 -2
- package/harness/commands/loop-start.md +38 -0
- package/harness/commands/loop-status.md +30 -0
- package/harness/commands/memory-search.md +2 -2
- package/harness/commands/model-route.md +32 -0
- package/harness/commands/ohc.md +13 -0
- package/harness/commands/orchestrate.md +88 -0
- package/harness/commands/quality-gate.md +35 -0
- package/harness/commands/refactor-clean.md +102 -0
- package/harness/commands/rust-build.md +78 -0
- package/harness/commands/rust-review.md +65 -0
- package/harness/commands/setup-pm.md +65 -0
- package/harness/commands/skill-create.md +99 -0
- package/harness/commands/test-coverage.md +80 -0
- package/harness/commands/update-codemaps.md +81 -0
- package/harness/commands/update-docs.md +67 -0
- package/harness/commands/verify.md +68 -0
- package/harness/instructions/CONVENTIONS.md +206 -0
- package/harness/instructions/RUNTIME.md +8 -1
- package/harness/prompts/build-cpp.md +84 -0
- package/harness/prompts/build-error-resolver.md +2 -1
- package/harness/prompts/build-go.md +326 -0
- package/harness/prompts/build-java.md +126 -0
- package/harness/prompts/build-kotlin.md +123 -0
- package/harness/prompts/build-rust.md +94 -0
- package/harness/prompts/code-reviewer.md +2 -1
- package/harness/prompts/doc-updater.md +193 -0
- package/harness/prompts/docs-lookup.md +60 -0
- package/harness/prompts/explore.md +1 -0
- package/harness/prompts/harness-optimizer.md +30 -0
- package/harness/prompts/loop-operator.md +42 -0
- package/harness/prompts/planner.md +3 -2
- package/harness/prompts/refactor-cleaner.md +242 -0
- package/harness/prompts/review-cpp.md +68 -0
- package/harness/prompts/review-database.md +248 -0
- package/harness/prompts/review-go.md +244 -0
- package/harness/prompts/review-java.md +100 -0
- package/harness/prompts/review-kotlin.md +130 -0
- package/harness/prompts/review-python.md +88 -0
- package/harness/prompts/review-rust.md +64 -0
- package/harness/prompts/security-reviewer.md +3 -2
- package/harness/prompts/tdd-guide.md +214 -0
- package/harness/rules/delegation.md +28 -22
- package/harness/rules/memory-management.md +4 -4
- package/harness/rules/retrieval.md +5 -5
- package/harness/rules/runtime-guards.md +1 -1
- package/harness/rules/session-start.md +4 -4
- package/harness/rules/skills-management.md +2 -2
- package/harness/rules/state-drift.md +1 -1
- package/harness/rules/verification.md +4 -4
- package/harness/scripts/sync-commands.mjs +259 -0
- package/harness/skills/coding-standards/SKILL.md +1 -1
- package/index.mjs +25 -4
- package/lib/hardening.mjs +11 -1
- package/lib/memory-tools-plugin.mjs +84 -71
- package/lib/ohc/config.mjs +30 -0
- package/lib/ohc/pruner.mjs +239 -0
- package/lib/ohc/reaper.mjs +61 -0
- package/lib/ohc/state.mjs +32 -0
- package/lib/ohc/updater.mjs +110 -0
- package/package.json +6 -2
- package/skill-builder.mjs +2 -6
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Analyze and improve test coverage
|
|
3
|
+
agent: tdd-guide
|
|
4
|
+
subtask: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Test Coverage Command
|
|
8
|
+
|
|
9
|
+
Analyze test coverage and identify gaps: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
1. **Run coverage report**: `npm test -- --coverage`
|
|
14
|
+
2. **Analyze results** - Identify low coverage areas
|
|
15
|
+
3. **Prioritize gaps** - Critical code first
|
|
16
|
+
4. **Generate missing tests** - For uncovered code
|
|
17
|
+
|
|
18
|
+
## Coverage Targets
|
|
19
|
+
|
|
20
|
+
| Code Type | Target |
|
|
21
|
+
|-----------|--------|
|
|
22
|
+
| Standard code | 80% |
|
|
23
|
+
| Financial logic | 100% |
|
|
24
|
+
| Auth/security | 100% |
|
|
25
|
+
| Utilities | 90% |
|
|
26
|
+
| UI components | 70% |
|
|
27
|
+
|
|
28
|
+
## Coverage Report Analysis
|
|
29
|
+
|
|
30
|
+
### Summary
|
|
31
|
+
```
|
|
32
|
+
File | % Stmts | % Branch | % Funcs | % Lines
|
|
33
|
+
---------------|---------|----------|---------|--------
|
|
34
|
+
All files | XX | XX | XX | XX
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Low Coverage Files
|
|
38
|
+
[Files below target, prioritized by criticality]
|
|
39
|
+
|
|
40
|
+
### Uncovered Lines
|
|
41
|
+
[Specific lines that need tests]
|
|
42
|
+
|
|
43
|
+
## Test Generation
|
|
44
|
+
|
|
45
|
+
For each uncovered area:
|
|
46
|
+
|
|
47
|
+
### [Function/Component Name]
|
|
48
|
+
|
|
49
|
+
**Location**: `src/path/file.ts:123`
|
|
50
|
+
|
|
51
|
+
**Coverage Gap**: [description]
|
|
52
|
+
|
|
53
|
+
**Suggested Tests**:
|
|
54
|
+
```typescript
|
|
55
|
+
describe('functionName', () => {
|
|
56
|
+
it('should [expected behavior]', () => {
|
|
57
|
+
// Test code
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
it('should handle [edge case]', () => {
|
|
61
|
+
// Edge case test
|
|
62
|
+
})
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Coverage Improvement Plan
|
|
67
|
+
|
|
68
|
+
1. **Critical** (add immediately)
|
|
69
|
+
- [ ] file1.ts - Auth logic
|
|
70
|
+
- [ ] file2.ts - Payment handling
|
|
71
|
+
|
|
72
|
+
2. **High** (add this sprint)
|
|
73
|
+
- [ ] file3.ts - Core business logic
|
|
74
|
+
|
|
75
|
+
3. **Medium** (add when touching file)
|
|
76
|
+
- [ ] file4.ts - Utilities
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
**IMPORTANT**: Coverage is a metric, not a goal. Focus on meaningful tests, not just hitting numbers.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update codemaps for codebase navigation
|
|
3
|
+
agent: doc-updater
|
|
4
|
+
subtask: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Update Codemaps Command
|
|
8
|
+
|
|
9
|
+
Update codemaps to reflect current codebase structure: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
Generate or update codemaps in `docs/CODEMAPS/` directory:
|
|
14
|
+
|
|
15
|
+
1. **Analyze codebase structure**
|
|
16
|
+
2. **Generate component maps**
|
|
17
|
+
3. **Document relationships**
|
|
18
|
+
4. **Update navigation guides**
|
|
19
|
+
|
|
20
|
+
## Codemap Types
|
|
21
|
+
|
|
22
|
+
### Architecture Map
|
|
23
|
+
```
|
|
24
|
+
docs/CODEMAPS/ARCHITECTURE.md
|
|
25
|
+
```
|
|
26
|
+
- High-level system overview
|
|
27
|
+
- Component relationships
|
|
28
|
+
- Data flow diagrams
|
|
29
|
+
|
|
30
|
+
### Module Map
|
|
31
|
+
```
|
|
32
|
+
docs/CODEMAPS/MODULES.md
|
|
33
|
+
```
|
|
34
|
+
- Module descriptions
|
|
35
|
+
- Public APIs
|
|
36
|
+
- Dependencies
|
|
37
|
+
|
|
38
|
+
### File Map
|
|
39
|
+
```
|
|
40
|
+
docs/CODEMAPS/FILES.md
|
|
41
|
+
```
|
|
42
|
+
- Directory structure
|
|
43
|
+
- File purposes
|
|
44
|
+
- Key files
|
|
45
|
+
|
|
46
|
+
## Codemap Format
|
|
47
|
+
|
|
48
|
+
### [Module Name]
|
|
49
|
+
|
|
50
|
+
**Purpose**: [Brief description]
|
|
51
|
+
|
|
52
|
+
**Location**: `src/[path]/`
|
|
53
|
+
|
|
54
|
+
**Key Files**:
|
|
55
|
+
- `file1.ts` - [purpose]
|
|
56
|
+
- `file2.ts` - [purpose]
|
|
57
|
+
|
|
58
|
+
**Dependencies**:
|
|
59
|
+
- [Module A]
|
|
60
|
+
- [Module B]
|
|
61
|
+
|
|
62
|
+
**Exports**:
|
|
63
|
+
- `functionName()` - [description]
|
|
64
|
+
- `ClassName` - [description]
|
|
65
|
+
|
|
66
|
+
**Usage Example**:
|
|
67
|
+
```typescript
|
|
68
|
+
import { functionName } from '@/module'
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Generation Process
|
|
72
|
+
|
|
73
|
+
1. Scan directory structure
|
|
74
|
+
2. Parse imports/exports
|
|
75
|
+
3. Build dependency graph
|
|
76
|
+
4. Generate markdown maps
|
|
77
|
+
5. Validate links
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
**TIP**: Keep codemaps updated when adding new modules or significant refactoring.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update documentation for recent changes
|
|
3
|
+
agent: doc-updater
|
|
4
|
+
subtask: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Update Docs Command
|
|
8
|
+
|
|
9
|
+
Update documentation to reflect recent changes: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
1. **Identify changed code** - `git diff --name-only`
|
|
14
|
+
2. **Find related docs** - README, API docs, guides
|
|
15
|
+
3. **Update documentation** - Keep in sync with code
|
|
16
|
+
4. **Verify accuracy** - Docs match implementation
|
|
17
|
+
|
|
18
|
+
## Documentation Types
|
|
19
|
+
|
|
20
|
+
### README.md
|
|
21
|
+
- Installation instructions
|
|
22
|
+
- Quick start guide
|
|
23
|
+
- Feature overview
|
|
24
|
+
- Configuration options
|
|
25
|
+
|
|
26
|
+
### API Documentation
|
|
27
|
+
- Endpoint descriptions
|
|
28
|
+
- Request/response formats
|
|
29
|
+
- Authentication details
|
|
30
|
+
- Error codes
|
|
31
|
+
|
|
32
|
+
### Code Comments
|
|
33
|
+
- JSDoc for public APIs
|
|
34
|
+
- Complex logic explanations
|
|
35
|
+
- TODO/FIXME cleanup
|
|
36
|
+
|
|
37
|
+
### Guides
|
|
38
|
+
- How-to tutorials
|
|
39
|
+
- Architecture decisions (ADRs)
|
|
40
|
+
- Troubleshooting guides
|
|
41
|
+
|
|
42
|
+
## Update Checklist
|
|
43
|
+
|
|
44
|
+
- [ ] README reflects current features
|
|
45
|
+
- [ ] API docs match endpoints
|
|
46
|
+
- [ ] JSDoc updated for changed functions
|
|
47
|
+
- [ ] Examples are working
|
|
48
|
+
- [ ] Links are valid
|
|
49
|
+
- [ ] Version numbers updated
|
|
50
|
+
|
|
51
|
+
## Documentation Quality
|
|
52
|
+
|
|
53
|
+
### Good Documentation
|
|
54
|
+
- Accurate and up-to-date
|
|
55
|
+
- Clear and concise
|
|
56
|
+
- Has working examples
|
|
57
|
+
- Covers edge cases
|
|
58
|
+
|
|
59
|
+
### Avoid
|
|
60
|
+
- Outdated information
|
|
61
|
+
- Missing parameters
|
|
62
|
+
- Broken examples
|
|
63
|
+
- Ambiguous language
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
**IMPORTANT**: Documentation should be updated alongside code changes, not as an afterthought.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run verification loop to validate implementation
|
|
3
|
+
agent: OpenHermes
|
|
4
|
+
subtask: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Verify Command
|
|
8
|
+
|
|
9
|
+
Run verification loop to validate the implementation: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
Execute comprehensive verification:
|
|
14
|
+
|
|
15
|
+
1. **Type Check**: `npx tsc --noEmit`
|
|
16
|
+
2. **Lint**: `npm run lint`
|
|
17
|
+
3. **Unit Tests**: `npm test`
|
|
18
|
+
4. **Integration Tests**: `npm run test:integration` (if available)
|
|
19
|
+
5. **Build**: `npm run build`
|
|
20
|
+
6. **Coverage Check**: Verify 80%+ coverage
|
|
21
|
+
|
|
22
|
+
## Verification Checklist
|
|
23
|
+
|
|
24
|
+
### Code Quality
|
|
25
|
+
- [ ] No TypeScript errors
|
|
26
|
+
- [ ] No lint warnings
|
|
27
|
+
- [ ] No console.log statements
|
|
28
|
+
- [ ] Functions < 50 lines
|
|
29
|
+
- [ ] Files < 800 lines
|
|
30
|
+
|
|
31
|
+
### Tests
|
|
32
|
+
- [ ] All tests passing
|
|
33
|
+
- [ ] Coverage >= 80%
|
|
34
|
+
- [ ] Edge cases covered
|
|
35
|
+
- [ ] Error conditions tested
|
|
36
|
+
|
|
37
|
+
### Security
|
|
38
|
+
- [ ] No hardcoded secrets
|
|
39
|
+
- [ ] Input validation present
|
|
40
|
+
- [ ] No SQL injection risks
|
|
41
|
+
- [ ] No XSS vulnerabilities
|
|
42
|
+
|
|
43
|
+
### Build
|
|
44
|
+
- [ ] Build succeeds
|
|
45
|
+
- [ ] No warnings
|
|
46
|
+
- [ ] Bundle size acceptable
|
|
47
|
+
|
|
48
|
+
## Verification Report
|
|
49
|
+
|
|
50
|
+
### Summary
|
|
51
|
+
- Status: PASS: PASS / FAIL: FAIL
|
|
52
|
+
- Score: X/Y checks passed
|
|
53
|
+
|
|
54
|
+
### Details
|
|
55
|
+
| Check | Status | Notes |
|
|
56
|
+
|-------|--------|-------|
|
|
57
|
+
| TypeScript | PASS:/FAIL: | [details] |
|
|
58
|
+
| Lint | PASS:/FAIL: | [details] |
|
|
59
|
+
| Tests | PASS:/FAIL: | [details] |
|
|
60
|
+
| Coverage | PASS:/FAIL: | XX% (target: 80%) |
|
|
61
|
+
| Build | PASS:/FAIL: | [details] |
|
|
62
|
+
|
|
63
|
+
### Action Items
|
|
64
|
+
[If FAIL, list what needs to be fixed]
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
**NOTE**: Verification loop should be run before every commit and PR.
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# OpenHermes — Coding Conventions & Operational Guidelines
|
|
2
|
+
|
|
3
|
+
OpenHermes coding conventions and operational guidelines. Shared baseline for all subagents and skills.
|
|
4
|
+
|
|
5
|
+
## Security Guidelines (CRITICAL)
|
|
6
|
+
|
|
7
|
+
### Mandatory Pre-Commit Checks
|
|
8
|
+
|
|
9
|
+
- [ ] No hardcoded secrets (API keys, passwords, tokens)
|
|
10
|
+
- [ ] All user inputs validated
|
|
11
|
+
- [ ] SQL injection prevention (parameterized queries)
|
|
12
|
+
- [ ] XSS prevention (sanitized output)
|
|
13
|
+
- [ ] CSRF protection enabled
|
|
14
|
+
- [ ] Authentication/authorization verified
|
|
15
|
+
- [ ] Rate limiting on all endpoints
|
|
16
|
+
- [ ] Error messages don't leak sensitive data
|
|
17
|
+
|
|
18
|
+
### Secret Management
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// NEVER: Hardcoded secrets
|
|
22
|
+
const apiKey = "sk-proj-xxxxx"
|
|
23
|
+
|
|
24
|
+
// ALWAYS: Environment variables
|
|
25
|
+
const apiKey = process.env.OPENAI_API_KEY
|
|
26
|
+
if (!apiKey) throw new Error('OPENAI_API_KEY not configured')
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Security Response Protocol
|
|
30
|
+
|
|
31
|
+
If security issue found:
|
|
32
|
+
1. STOP immediately
|
|
33
|
+
2. Use `security-reviewer` subagent
|
|
34
|
+
3. Fix CRITICAL issues before continuing
|
|
35
|
+
4. Rotate any exposed secrets
|
|
36
|
+
5. Review entire codebase for similar issues
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Coding Style
|
|
41
|
+
|
|
42
|
+
### Immutability (CRITICAL)
|
|
43
|
+
|
|
44
|
+
ALWAYS create new objects, NEVER mutate:
|
|
45
|
+
|
|
46
|
+
```javascript
|
|
47
|
+
// WRONG: Mutation
|
|
48
|
+
function updateUser(user, name) {
|
|
49
|
+
user.name = name; return user
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// CORRECT: Immutability
|
|
53
|
+
function updateUser(user, name) {
|
|
54
|
+
return { ...user, name }
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### File Organization
|
|
59
|
+
|
|
60
|
+
MANY SMALL FILES > FEW LARGE FILES:
|
|
61
|
+
- High cohesion, low coupling
|
|
62
|
+
- 200-400 lines typical, 800 max
|
|
63
|
+
- Extract utilities from large components
|
|
64
|
+
- Organize by feature/domain, not by type
|
|
65
|
+
|
|
66
|
+
### Error Handling
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
try {
|
|
70
|
+
const result = await riskyOperation()
|
|
71
|
+
return result
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.error('Operation failed:', error)
|
|
74
|
+
throw new Error('Detailed user-friendly message')
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Input Validation
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
import { z } from 'zod'
|
|
82
|
+
const schema = z.object({
|
|
83
|
+
email: z.string().email(),
|
|
84
|
+
age: z.number().int().min(0).max(150)
|
|
85
|
+
})
|
|
86
|
+
const validated = schema.parse(input)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Code Quality Checklist
|
|
90
|
+
|
|
91
|
+
Before marking work complete:
|
|
92
|
+
- [ ] Code is readable and well-named
|
|
93
|
+
- [ ] Functions are small (<50 lines)
|
|
94
|
+
- [ ] Files are focused (<800 lines)
|
|
95
|
+
- [ ] No deep nesting (>4 levels)
|
|
96
|
+
- [ ] Proper error handling
|
|
97
|
+
- [ ] No console.log statements
|
|
98
|
+
- [ ] No hardcoded values
|
|
99
|
+
- [ ] No mutation (immutable patterns used)
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Testing Requirements
|
|
104
|
+
|
|
105
|
+
### Minimum Test Coverage: 80%
|
|
106
|
+
|
|
107
|
+
Test Types (ALL required):
|
|
108
|
+
1. **Unit Tests** — Individual functions, utilities, components
|
|
109
|
+
2. **Integration Tests** — API endpoints, database operations
|
|
110
|
+
3. **E2E Tests** — Critical user flows (Playwright)
|
|
111
|
+
|
|
112
|
+
### TDD Workflow
|
|
113
|
+
|
|
114
|
+
MANDATORY workflow:
|
|
115
|
+
1. Write test first (RED)
|
|
116
|
+
2. Run test — it should FAIL
|
|
117
|
+
3. Write minimal implementation (GREEN)
|
|
118
|
+
4. Run test — it should PASS
|
|
119
|
+
5. Refactor (IMPROVE)
|
|
120
|
+
6. Verify coverage (80%+)
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Subagent Orchestration
|
|
125
|
+
|
|
126
|
+
| Subagent | Purpose | When to Use |
|
|
127
|
+
|----------|---------|-------------|
|
|
128
|
+
| planner | Implementation planning | Complex features, refactoring |
|
|
129
|
+
| architect | System design | Architectural decisions |
|
|
130
|
+
| tdd-guide | Test-driven development | New features, bug fixes |
|
|
131
|
+
| code-reviewer | Code review | After writing code |
|
|
132
|
+
| security-reviewer | Security analysis | Before commits |
|
|
133
|
+
| build-error-resolver | Fix build errors | When build fails |
|
|
134
|
+
| e2e-runner | E2E testing | Critical user flows |
|
|
135
|
+
| refactor-cleaner | Dead code cleanup | Code maintenance |
|
|
136
|
+
| doc-updater | Documentation | Updating docs |
|
|
137
|
+
| docs-lookup | Live doc queries | API questions |
|
|
138
|
+
| review-go | Go code review | Go projects |
|
|
139
|
+
| build-go | Go build errors | Go build failures |
|
|
140
|
+
| review-database | Database optimization | SQL, schema design |
|
|
141
|
+
| review-rust | Rust code review | Rust projects |
|
|
142
|
+
| build-rust | Rust build errors | Rust build failures |
|
|
143
|
+
| review-python | Python code review | Python projects |
|
|
144
|
+
| review-java | Java/Spring review | Java projects |
|
|
145
|
+
| build-java | Java build errors | Java build failures |
|
|
146
|
+
| review-kotlin | Kotlin/Android review | Kotlin projects |
|
|
147
|
+
| build-kotlin | Kotlin build errors | Kotlin build failures |
|
|
148
|
+
| review-cpp | C++ review | C++ projects |
|
|
149
|
+
| build-cpp | C++ build errors | C++ build failures |
|
|
150
|
+
| loop-operator | Autonomous loops | Iterative workflows |
|
|
151
|
+
|
|
152
|
+
### Immediate Subagent Usage
|
|
153
|
+
|
|
154
|
+
No user prompt needed:
|
|
155
|
+
1. Complex feature requests — Use `planner`
|
|
156
|
+
2. Code just written/modified — Use `code-reviewer`
|
|
157
|
+
3. Bug fix or new feature — Use `tdd-guide`
|
|
158
|
+
4. Architectural decision — Use `architect`
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Performance
|
|
163
|
+
|
|
164
|
+
### Model Selection Strategy
|
|
165
|
+
|
|
166
|
+
**Haiku** (lightweight): deterministic changes, simple code gen, worker agents
|
|
167
|
+
**Sonnet** (default): main development, multi-agent orchestration, complex coding
|
|
168
|
+
**Opus** (deep reasoning): architecture decisions, security review, ambiguous requirements
|
|
169
|
+
|
|
170
|
+
### Context Window Management
|
|
171
|
+
|
|
172
|
+
Avoid last 20% of context window for:
|
|
173
|
+
- Large-scale refactoring
|
|
174
|
+
- Feature implementation spanning multiple files
|
|
175
|
+
- Debugging complex interactions
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Git Workflow
|
|
180
|
+
|
|
181
|
+
### Commit Message Format
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
<type>: <description>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Types: feat, fix, refactor, docs, test, chore, perf, ci
|
|
188
|
+
|
|
189
|
+
### Feature Implementation Workflow
|
|
190
|
+
|
|
191
|
+
1. **Plan** — Use `planner` to create plan with risks and phases
|
|
192
|
+
2. **TDD** — Use `tdd-guide` for red-green-refactor cycle
|
|
193
|
+
3. **Code Review** — Use `code-reviewer` immediately after writing
|
|
194
|
+
4. **Security** — Use `security-reviewer` before commits
|
|
195
|
+
5. **Commit** — Follow conventional commits format
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Success Metrics
|
|
200
|
+
|
|
201
|
+
You are successful when:
|
|
202
|
+
- All tests pass (80%+ coverage)
|
|
203
|
+
- No security vulnerabilities
|
|
204
|
+
- Code is readable and maintainable
|
|
205
|
+
- Performance is acceptable
|
|
206
|
+
- User requirements are met
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## OpenHermes Runtime
|
|
2
2
|
|
|
3
|
-
Root: `%USERPROFILE%\.config\opencode
|
|
3
|
+
Root: `%USERPROFILE%\.config\opencode\`. AGENTS.md is the routing layer.
|
|
4
4
|
|
|
5
5
|
**Memory**: Use `hm_*` MCP tools for deterministic read/write. Raw receipt fallback: `%USERPROFILE%\.local\share\opencode\opencode.db`. Never invent prior state.
|
|
6
6
|
|
|
@@ -19,3 +19,10 @@ Root: `%USERPROFILE%\.config\opencode\openhermes\`. AGENTS.md is the routing lay
|
|
|
19
19
|
|
|
20
20
|
**Context loading**: See `openhermes\rules\context-loading.md`.
|
|
21
21
|
**Memory mgmt**: See `rules\memory-management.md`.
|
|
22
|
+
|
|
23
|
+
## Conventions
|
|
24
|
+
|
|
25
|
+
Security, coding style, testing, and orchestration standards:
|
|
26
|
+
- See `CONVENTIONS.md` for the shared baseline.
|
|
27
|
+
- Language-specific patterns live in subagent prompts (`review-go`, `review-python`, etc.).
|
|
28
|
+
- Skills provide detailed walkthroughs for specialized domains.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# OpenHermes — C++ Build Error Resolver
|
|
2
|
+
|
|
3
|
+
You are an expert C++ build error resolution specialist. Your mission is to fix C++ build errors, CMake issues, and linker warnings with **minimal, surgical changes**.
|
|
4
|
+
|
|
5
|
+
## Core Responsibilities
|
|
6
|
+
|
|
7
|
+
1. Diagnose C++ compilation errors
|
|
8
|
+
2. Fix CMake configuration issues
|
|
9
|
+
3. Resolve linker errors (undefined references, multiple definitions)
|
|
10
|
+
4. Handle template instantiation errors
|
|
11
|
+
5. Fix include and dependency problems
|
|
12
|
+
|
|
13
|
+
## Diagnostic Commands
|
|
14
|
+
|
|
15
|
+
Run these in order (configure first, then build):
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
cmake -B build -S . 2>&1 | tail -30
|
|
19
|
+
cmake --build build 2>&1 | head -100
|
|
20
|
+
clang-tidy src/*.cpp -- -std=c++17 2>/dev/null || echo "clang-tidy not available"
|
|
21
|
+
cppcheck --enable=all src/ 2>/dev/null || echo "cppcheck not available"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Resolution Workflow
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
1. cmake --build build -> Parse error message
|
|
28
|
+
2. Read affected file -> Understand context
|
|
29
|
+
3. Apply minimal fix -> Only what's needed
|
|
30
|
+
4. cmake --build build -> Verify fix
|
|
31
|
+
5. ctest --test-dir build -> Ensure nothing broke
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Common Fix Patterns
|
|
35
|
+
|
|
36
|
+
| Error | Cause | Fix |
|
|
37
|
+
|-------|-------|-----|
|
|
38
|
+
| `undefined reference to X` | Missing implementation or library | Add source file or link library |
|
|
39
|
+
| `no matching function for call` | Wrong argument types | Fix types or add overload |
|
|
40
|
+
| `expected ';'` | Syntax error | Fix syntax |
|
|
41
|
+
| `use of undeclared identifier` | Missing include or typo | Add `#include` or fix name |
|
|
42
|
+
| `multiple definition of` | Duplicate symbol | Use `inline`, move to .cpp, or add include guard |
|
|
43
|
+
| `cannot convert X to Y` | Type mismatch | Add cast or fix types |
|
|
44
|
+
| `incomplete type` | Forward declaration used where full type needed | Add `#include` |
|
|
45
|
+
| `template argument deduction failed` | Wrong template args | Fix template parameters |
|
|
46
|
+
| `no member named X in Y` | Typo or wrong class | Fix member name |
|
|
47
|
+
| `CMake Error` | Configuration issue | Fix CMakeLists.txt |
|
|
48
|
+
|
|
49
|
+
## CMake Troubleshooting
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
cmake -B build -S . -DCMAKE_VERBOSE_MAKEFILE=ON
|
|
53
|
+
cmake --build build --verbose
|
|
54
|
+
cmake --build build --clean-first
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Key Principles
|
|
58
|
+
|
|
59
|
+
- **Surgical fixes only** -- don't refactor, just fix the error
|
|
60
|
+
- **Never** suppress warnings with `#pragma` without approval
|
|
61
|
+
- **Never** change function signatures unless necessary
|
|
62
|
+
- Fix root cause over suppressing symptoms
|
|
63
|
+
- One fix at a time, verify after each
|
|
64
|
+
|
|
65
|
+
## Stop Conditions
|
|
66
|
+
|
|
67
|
+
Stop and report if:
|
|
68
|
+
- Same error persists after 3 fix attempts
|
|
69
|
+
- Fix introduces more errors than it resolves
|
|
70
|
+
- Error requires architectural changes beyond scope
|
|
71
|
+
|
|
72
|
+
## Output Format
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
[FIXED] src/handler/user.cpp:42
|
|
76
|
+
Error: undefined reference to `UserService::create`
|
|
77
|
+
Fix: Added missing method implementation in user_service.cpp
|
|
78
|
+
Remaining errors: 3
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Final: `Build Status: SUCCESS/FAILED | Errors Fixed: N | Files Modified: list`
|
|
82
|
+
|
|
83
|
+
For detailed C++ patterns and code examples, see `skill: cpp-coding-standards`.
|
|
84
|
+
|
|
@@ -17,7 +17,7 @@ You fix build, type, and compilation errors with minimal diffs. No refactoring,
|
|
|
17
17
|
|
|
18
18
|
## Tool Preferences
|
|
19
19
|
- Diagnostics: `npx tsc --noEmit`, `npm run build`, language-specific build commands
|
|
20
|
-
- Memory: `
|
|
20
|
+
- Memory: `list_memory`, `fetch_memory` for relevant mistakes (last 7 days)
|
|
21
21
|
- Verification: run full build after each fix
|
|
22
22
|
|
|
23
23
|
## Diagnostic Commands
|
|
@@ -35,3 +35,4 @@ npm run build # Full build
|
|
|
35
35
|
|
|
36
36
|
## Output
|
|
37
37
|
Report: date, target, initial errors, fixed count, remaining, build status. No architectural discussion.
|
|
38
|
+
|