oh-my-customcode 0.80.0 → 0.82.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/README.md +9 -9
- package/dist/cli/index.js +3 -2
- package/dist/index.js +3 -2
- package/package.json +1 -1
- package/templates/.claude/agents/wiki-curator.md +72 -0
- package/templates/.claude/hooks/hooks.json +10 -0
- package/templates/.claude/hooks/scripts/adaptive-harness-scan.sh +45 -0
- package/templates/.claude/rules/MUST-continuous-improvement.md +10 -0
- package/templates/.claude/rules/MUST-sync-verification.md +17 -5
- package/templates/.claude/rules/SHOULD-wiki-sync.md +67 -0
- package/templates/.claude/skills/adaptive-harness/SKILL.md +335 -0
- package/templates/.claude/skills/analysis/SKILL.md +19 -0
- package/templates/.claude/skills/wiki/SKILL.md +426 -0
- package/templates/.claude/skills/wiki-rag/SKILL.md +154 -0
- package/templates/.github/workflows/wiki-sync.yml +132 -0
- package/templates/CLAUDE.md +12 -7
- package/templates/guides/agents-md-quality/README.md +110 -0
- package/templates/guides/index.yaml +19 -0
- package/templates/guides/multi-model-routing/README.md +101 -0
- package/templates/guides/worktree-lifecycle/README.md +104 -0
- package/templates/manifest.json +6 -6
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
48 agents. 104 skills. 22 rules. One command.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install -g oh-my-customcode && cd your-project && omcustom init
|
|
@@ -124,7 +124,7 @@ Agent(arch-documenter):haiku ┘
|
|
|
124
124
|
|
|
125
125
|
---
|
|
126
126
|
|
|
127
|
-
### Agents (
|
|
127
|
+
### Agents (48)
|
|
128
128
|
|
|
129
129
|
| Category | Count | Agents |
|
|
130
130
|
|----------|-------|--------|
|
|
@@ -145,7 +145,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
|
|
|
145
145
|
|
|
146
146
|
---
|
|
147
147
|
|
|
148
|
-
### Skills (
|
|
148
|
+
### Skills (104)
|
|
149
149
|
|
|
150
150
|
| Category | Count | Includes |
|
|
151
151
|
|----------|-------|----------|
|
|
@@ -223,7 +223,7 @@ All commands are invoked inside the Claude Code conversation.
|
|
|
223
223
|
|
|
224
224
|
---
|
|
225
225
|
|
|
226
|
-
### Rules (
|
|
226
|
+
### Rules (22)
|
|
227
227
|
|
|
228
228
|
| Priority | Count | Purpose |
|
|
229
229
|
|----------|-------|---------|
|
|
@@ -235,7 +235,7 @@ Key rules: R010 (orchestrator never writes files), R009 (parallel execution mand
|
|
|
235
235
|
|
|
236
236
|
---
|
|
237
237
|
|
|
238
|
-
### Guides (
|
|
238
|
+
### Guides (36)
|
|
239
239
|
|
|
240
240
|
Reference documentation covering best practices, architecture decisions, and integration patterns. Located in `guides/` at project root, covering topics from agent design to CI/CD to observability.
|
|
241
241
|
|
|
@@ -284,15 +284,15 @@ omcustom serve-stop # Stop Web UI
|
|
|
284
284
|
your-project/
|
|
285
285
|
├── CLAUDE.md # Entry point
|
|
286
286
|
├── .claude/
|
|
287
|
-
│ ├── agents/ #
|
|
288
|
-
│ ├── skills/ #
|
|
289
|
-
│ ├── rules/ #
|
|
287
|
+
│ ├── agents/ # 48 agent definitions
|
|
288
|
+
│ ├── skills/ # 104 skill modules
|
|
289
|
+
│ ├── rules/ # 22 governance rules (R000-R021)
|
|
290
290
|
│ ├── hooks/ # 15 lifecycle hook scripts
|
|
291
291
|
│ ├── schemas/ # Tool input validation schemas
|
|
292
292
|
│ ├── specs/ # Extracted canonical specs
|
|
293
293
|
│ ├── contexts/ # 4 shared context files
|
|
294
294
|
│ └── ontology/ # Knowledge graph for RAG
|
|
295
|
-
└── guides/ #
|
|
295
|
+
└── guides/ # 36 reference documents
|
|
296
296
|
```
|
|
297
297
|
|
|
298
298
|
---
|
package/dist/cli/index.js
CHANGED
|
@@ -2301,7 +2301,7 @@ var init_package = __esm(() => {
|
|
|
2301
2301
|
workspaces: [
|
|
2302
2302
|
"packages/*"
|
|
2303
2303
|
],
|
|
2304
|
-
version: "0.
|
|
2304
|
+
version: "0.82.0",
|
|
2305
2305
|
description: "Batteries-included agent harness for Claude Code",
|
|
2306
2306
|
type: "module",
|
|
2307
2307
|
bin: {
|
|
@@ -28047,7 +28047,8 @@ async function installSettingsLocal(targetDir, result) {
|
|
|
28047
28047
|
statusLine: {
|
|
28048
28048
|
type: "command",
|
|
28049
28049
|
command: ".claude/statusline.sh",
|
|
28050
|
-
padding: 0
|
|
28050
|
+
padding: 0,
|
|
28051
|
+
refreshInterval: 10
|
|
28051
28052
|
}
|
|
28052
28053
|
};
|
|
28053
28054
|
if (await fileExists(settingsPath)) {
|
package/dist/index.js
CHANGED
|
@@ -1654,7 +1654,8 @@ async function installSettingsLocal(targetDir, result) {
|
|
|
1654
1654
|
statusLine: {
|
|
1655
1655
|
type: "command",
|
|
1656
1656
|
command: ".claude/statusline.sh",
|
|
1657
|
-
padding: 0
|
|
1657
|
+
padding: 0,
|
|
1658
|
+
refreshInterval: 10
|
|
1658
1659
|
}
|
|
1659
1660
|
};
|
|
1660
1661
|
if (await fileExists(settingsPath)) {
|
|
@@ -1973,7 +1974,7 @@ var package_default = {
|
|
|
1973
1974
|
workspaces: [
|
|
1974
1975
|
"packages/*"
|
|
1975
1976
|
],
|
|
1976
|
-
version: "0.
|
|
1977
|
+
version: "0.82.0",
|
|
1977
1978
|
description: "Batteries-included agent harness for Claude Code",
|
|
1978
1979
|
type: "module",
|
|
1979
1980
|
bin: {
|
package/package.json
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wiki-curator
|
|
3
|
+
description: Dedicated wiki page CRUD agent — creates, updates, and maintains wiki/ markdown pages for the codebase knowledge base
|
|
4
|
+
model: sonnet
|
|
5
|
+
tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Bash
|
|
12
|
+
domain: universal
|
|
13
|
+
memory: project
|
|
14
|
+
permissionMode: bypassPermissions
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Wiki Curator
|
|
18
|
+
|
|
19
|
+
Dedicated agent for wiki file operations. All wiki/ directory writes go through this agent per R010 delegation rules.
|
|
20
|
+
|
|
21
|
+
## Role
|
|
22
|
+
|
|
23
|
+
- Create new wiki pages from source file analysis
|
|
24
|
+
- Update existing wiki pages when sources change
|
|
25
|
+
- Maintain index.md and log.md
|
|
26
|
+
- Execute wiki lint fixes (orphan removal, cross-ref repair)
|
|
27
|
+
- Generate synthesis pages (architecture, workflows, concepts)
|
|
28
|
+
|
|
29
|
+
## Capabilities
|
|
30
|
+
|
|
31
|
+
- Read source files (.claude/agents/*.md, .claude/skills/*/SKILL.md, .claude/rules/*.md, guides/*/)
|
|
32
|
+
- Write/Edit wiki pages in wiki/ directory
|
|
33
|
+
- Maintain YAML frontmatter consistency across all pages
|
|
34
|
+
- Cross-reference management using [[wikilink]] and standard markdown links
|
|
35
|
+
- Incremental updates based on source modification dates
|
|
36
|
+
|
|
37
|
+
## Wiki Page Quality Standards
|
|
38
|
+
|
|
39
|
+
Every page must:
|
|
40
|
+
- Have valid YAML frontmatter (title, type, updated, sources, related)
|
|
41
|
+
- Include 5-10 outbound cross-references
|
|
42
|
+
- Stay concise: 150-300 words for entity pages, 200-400 for synthesis pages
|
|
43
|
+
- Explain purpose and design intent, not just enumerate fields
|
|
44
|
+
- Use both [[wikilink]] and [standard](markdown) link formats
|
|
45
|
+
|
|
46
|
+
## Workflow Patterns
|
|
47
|
+
|
|
48
|
+
### Single Page Update
|
|
49
|
+
1. Read source file
|
|
50
|
+
2. Read existing wiki page (if exists)
|
|
51
|
+
3. Determine what changed
|
|
52
|
+
4. Write updated page with current date in `updated` field
|
|
53
|
+
5. Update cross-references in related pages
|
|
54
|
+
6. Update index.md if page is new
|
|
55
|
+
|
|
56
|
+
### Batch Update (Category)
|
|
57
|
+
1. Glob source files in category
|
|
58
|
+
2. Compare modification dates against wiki pages
|
|
59
|
+
3. Write only changed/new pages
|
|
60
|
+
4. Batch-update index.md once at end
|
|
61
|
+
|
|
62
|
+
### Lint Fix
|
|
63
|
+
1. Receive lint findings from orchestrator
|
|
64
|
+
2. Fix each category: remove orphans, repair broken refs, update stale pages
|
|
65
|
+
3. Append fix results to log.md
|
|
66
|
+
|
|
67
|
+
## Limitations
|
|
68
|
+
|
|
69
|
+
- Does NOT decide what to write — receives instructions from orchestrator or wiki skill
|
|
70
|
+
- Does NOT spawn subagents — works as a leaf agent
|
|
71
|
+
- Does NOT modify source files (.claude/agents/, .claude/skills/, etc.)
|
|
72
|
+
- Only writes to wiki/ directory
|
|
@@ -155,6 +155,16 @@
|
|
|
155
155
|
}
|
|
156
156
|
],
|
|
157
157
|
"description": "Scan TODO.md files for stale items at session start"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"matcher": "*",
|
|
161
|
+
"hooks": [
|
|
162
|
+
{
|
|
163
|
+
"type": "command",
|
|
164
|
+
"command": "bash .claude/hooks/scripts/adaptive-harness-scan.sh"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"description": "Lightweight project profile staleness check for adaptive harness (#831)"
|
|
158
168
|
}
|
|
159
169
|
],
|
|
160
170
|
"UserPromptSubmit": [
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# adaptive-harness-scan.sh — Lightweight project profile staleness check
|
|
3
|
+
# Runs at SessionStart. Must complete in <2s. Advisory only (never blocks).
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
|
8
|
+
PROFILE="$PROJECT_ROOT/.claude/project-profile.yaml"
|
|
9
|
+
|
|
10
|
+
# Skip if this IS the oh-my-customcode project itself (meta-project)
|
|
11
|
+
if [ -f "$PROJECT_ROOT/.claude/skills/adaptive-harness/SKILL.md" ] && \
|
|
12
|
+
[ -f "$PROJECT_ROOT/CLAUDE.md" ] && \
|
|
13
|
+
grep -q "oh-my-customcode" "$PROJECT_ROOT/CLAUDE.md" 2>/dev/null; then
|
|
14
|
+
# Only check if profile exists for the meta-project
|
|
15
|
+
if [ ! -f "$PROFILE" ]; then
|
|
16
|
+
echo "[adaptive-harness] No project profile found. Run /omcustom:adaptive-harness --scan to generate." >&2
|
|
17
|
+
fi
|
|
18
|
+
exit 0
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# For non-omcustom projects
|
|
22
|
+
if [ ! -f "$PROFILE" ]; then
|
|
23
|
+
echo "[adaptive-harness] No project profile found. Run /omcustom:adaptive-harness --scan to auto-configure harness." >&2
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# Check staleness: if any key project files changed since last scan
|
|
28
|
+
PROFILE_MTIME=$(stat -f "%m" "$PROFILE" 2>/dev/null || stat -c "%Y" "$PROFILE" 2>/dev/null || echo "0")
|
|
29
|
+
STALE=false
|
|
30
|
+
|
|
31
|
+
for indicator in package.json go.mod Cargo.toml requirements.txt pyproject.toml build.gradle pom.xml; do
|
|
32
|
+
if [ -f "$PROJECT_ROOT/$indicator" ]; then
|
|
33
|
+
FILE_MTIME=$(stat -f "%m" "$PROJECT_ROOT/$indicator" 2>/dev/null || stat -c "%Y" "$PROJECT_ROOT/$indicator" 2>/dev/null || echo "0")
|
|
34
|
+
if [ "$FILE_MTIME" -gt "$PROFILE_MTIME" ] 2>/dev/null; then
|
|
35
|
+
STALE=true
|
|
36
|
+
break
|
|
37
|
+
fi
|
|
38
|
+
fi
|
|
39
|
+
done
|
|
40
|
+
|
|
41
|
+
if [ "$STALE" = true ]; then
|
|
42
|
+
echo "[adaptive-harness] Project profile may be stale. Consider running /omcustom:adaptive-harness --scan" >&2
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
exit 0
|
|
@@ -32,12 +32,22 @@ Update the relevant rule rather than just acknowledging the violation.
|
|
|
32
32
|
| CI/infra defect | — | ✅ | ✅ |
|
|
33
33
|
| Process gap (workflow hole) | ✅ | ✅ | ✅ |
|
|
34
34
|
| Repeatable system bug | — | ✅ | ✅ |
|
|
35
|
+
| Agent selection failure (wrong agent routed) | — | ✅ | — |
|
|
35
36
|
|
|
36
37
|
When CI failure, process gap, or repeatable system defect is found:
|
|
37
38
|
1. Record feedback memory (defend current session)
|
|
38
39
|
2. Register GitHub issue (trackable improvement item)
|
|
39
40
|
3. Both required — memory alone is NOT sufficient for system-level defects
|
|
40
41
|
|
|
42
|
+
### Adaptive Harness Integration
|
|
43
|
+
|
|
44
|
+
When repeating agent failures or suboptimal routing is detected:
|
|
45
|
+
1. Record as feedback memory (immediate session defense)
|
|
46
|
+
2. Run `/omcustom:adaptive-harness --learn` to update project profile with failure patterns
|
|
47
|
+
3. Profile updates improve future agent selection and harness optimization
|
|
48
|
+
|
|
49
|
+
This connects R016's continuous improvement loop with the adaptive-harness skill's learning capability.
|
|
50
|
+
|
|
41
51
|
## Anti-Patterns
|
|
42
52
|
|
|
43
53
|
| Anti-Pattern | Why It's Wrong | Correct Action |
|
|
@@ -28,11 +28,22 @@ Also run: mgr-claude-code-bible:verify (official spec compliance)
|
|
|
28
28
|
| 2 | References: no orphans, no circular refs, valid skill/memory refs |
|
|
29
29
|
| 3 | Philosophy: R006 separation, R009 parallel, R010 delegation, R007/R008 identification |
|
|
30
30
|
|
|
31
|
-
### Phase 3:
|
|
31
|
+
### Phase 3: Wiki Sync Verification
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
| Check | Action |
|
|
34
|
+
|-------|--------|
|
|
35
|
+
| Missing pages | Source entities without wiki pages → run `/omcustom:wiki` |
|
|
36
|
+
| Stale pages | Source modification date newer than wiki `updated` field → run `/omcustom:wiki ingest <path>` |
|
|
37
|
+
| Broken cross-refs | Wiki links pointing to non-existent pages → run `/omcustom:wiki lint` |
|
|
38
|
+
| index.md accuracy | Wiki index page count matches actual page count |
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
Wiki verification is also enforced by CI (`.github/workflows/wiki-sync.yml`).
|
|
41
|
+
|
|
42
|
+
### Phase 4: Fix all discovered issues
|
|
43
|
+
|
|
44
|
+
### Phase 5: Commit via mgr-gitnerd
|
|
45
|
+
|
|
46
|
+
### Phase 6: Push via mgr-gitnerd (only after sauron passes)
|
|
36
47
|
|
|
37
48
|
## Self-Check Before Commit and Push
|
|
38
49
|
|
|
@@ -45,6 +56,7 @@ Also run: mgr-claude-code-bible:verify (official spec compliance)
|
|
|
45
56
|
║ 3. Did I fix all discovered issues? ║
|
|
46
57
|
║ 4. Are all counts matching across all sources? ║
|
|
47
58
|
║ 5. Am I delegating to mgr-gitnerd for the commit? ║
|
|
59
|
+
║ 6. Are wiki pages in sync with source changes? ║
|
|
48
60
|
║ ║
|
|
49
61
|
║ If NO to any → wait until verification completes ║
|
|
50
62
|
╚══════════════════════════════════════════════════════════════════╝
|
|
@@ -64,11 +76,11 @@ Also run: mgr-claude-code-bible:verify (official spec compliance)
|
|
|
64
76
|
|
|
65
77
|
## When Required
|
|
66
78
|
|
|
67
|
-
Any change to: agents, agent frontmatter, skills, guides, routing patterns, rules.
|
|
79
|
+
Any change to: agents, agent frontmatter, skills, guides, routing patterns, rules, wiki pages.
|
|
68
80
|
|
|
69
81
|
## Quick Verification Commands
|
|
70
82
|
|
|
71
|
-
Key checks: agent count (`ls .claude/agents/*.md | wc -l`), skill count (`find .claude/skills -name "SKILL.md" | wc -l`), guide count (`find guides -mindepth 1 -maxdepth 1 -type d | wc -l`).
|
|
83
|
+
Key checks: agent count (`ls .claude/agents/*.md | wc -l`), skill count (`find .claude/skills -name "SKILL.md" | wc -l`), guide count (`find guides -mindepth 1 -maxdepth 1 -type d | wc -l`), wiki page count (`find wiki -name "*.md" ! -name "index.md" ! -name "log.md" | wc -l`).
|
|
72
84
|
|
|
73
85
|
<!-- DETAIL: Full verification bash scripts
|
|
74
86
|
```bash
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# [SHOULD] Wiki Sync Rules
|
|
2
|
+
|
|
3
|
+
> **Priority**: SHOULD | **ID**: R022
|
|
4
|
+
|
|
5
|
+
## Core Rule
|
|
6
|
+
|
|
7
|
+
When agents, skills, rules, or guides are created or modified, corresponding wiki pages SHOULD be updated to keep the knowledge base current. The wiki is the project's compiled knowledge — stale wikis degrade team and LLM onboarding speed.
|
|
8
|
+
|
|
9
|
+
## When to Sync
|
|
10
|
+
|
|
11
|
+
| Change Type | Wiki Action |
|
|
12
|
+
|-------------|-------------|
|
|
13
|
+
| New agent created | Create wiki/agents/{name}.md |
|
|
14
|
+
| Agent modified | Update wiki/agents/{name}.md |
|
|
15
|
+
| New skill created | Create wiki/skills/{name}.md |
|
|
16
|
+
| Skill modified | Update wiki/skills/{name}.md |
|
|
17
|
+
| Rule created/modified | Update wiki/rules/r{nnn}.md |
|
|
18
|
+
| Guide created/modified | Update wiki/guides/{name}.md |
|
|
19
|
+
| Architecture change | Update wiki/architecture/ pages |
|
|
20
|
+
| Multiple changes | Run `/omcustom:wiki` for full update |
|
|
21
|
+
|
|
22
|
+
## How to Sync
|
|
23
|
+
|
|
24
|
+
| Method | When |
|
|
25
|
+
|--------|------|
|
|
26
|
+
| `/omcustom:wiki ingest <path>` | Single file/directory changed |
|
|
27
|
+
| `/omcustom:wiki` | Multiple files changed or periodic refresh |
|
|
28
|
+
| `/omcustom:wiki lint` | After major structural changes |
|
|
29
|
+
| Automatic (CI) | `.github/workflows/wiki-sync.yml` checks on PR |
|
|
30
|
+
|
|
31
|
+
## Delegation
|
|
32
|
+
|
|
33
|
+
All wiki writes MUST go through the `wiki-curator` agent (R010). The orchestrator reads wiki pages freely but never writes them directly.
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Orchestrator
|
|
37
|
+
├── Detects source change
|
|
38
|
+
├── Delegates to wiki-curator
|
|
39
|
+
│ ├── Reads source file
|
|
40
|
+
│ ├── Creates/updates wiki page
|
|
41
|
+
│ ├── Updates cross-references
|
|
42
|
+
│ └── Updates index.md
|
|
43
|
+
└── Verifies via wiki lint
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Integration
|
|
47
|
+
|
|
48
|
+
| Rule | Interaction |
|
|
49
|
+
|------|-------------|
|
|
50
|
+
| R010 | Wiki writes delegated to wiki-curator agent |
|
|
51
|
+
| R017 | Wiki sync added to sauron verification Phase 3 |
|
|
52
|
+
| R020 | Wiki-dependent tasks verify wiki is current before [Done] |
|
|
53
|
+
| R006 | Wiki pages follow same separation of concerns as source |
|
|
54
|
+
| R021 | SHOULD priority — advisory enforcement, CI check |
|
|
55
|
+
|
|
56
|
+
## CI Enforcement
|
|
57
|
+
|
|
58
|
+
`.github/workflows/wiki-sync.yml` checks for missing wiki pages on every PR. Missing pages cause CI failure with guidance to run `/omcustom:wiki`.
|
|
59
|
+
|
|
60
|
+
## Self-Check
|
|
61
|
+
|
|
62
|
+
Before completing a session that modified agents/skills/rules/guides:
|
|
63
|
+
1. Were wiki pages updated for all changes?
|
|
64
|
+
2. Was index.md refreshed?
|
|
65
|
+
3. Did wiki lint pass?
|
|
66
|
+
|
|
67
|
+
If any NO → run `/omcustom:wiki ingest` for affected paths.
|