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 CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  **[한국어 문서 (Korean)](./README_ko.md)**
15
15
 
16
- 47 agents. 101 skills. 21 rules. One command.
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 (47)
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 (101)
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 (21)
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 (33)
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/ # 47 agent definitions
288
- │ ├── skills/ # 101 skill modules
289
- │ ├── rules/ # 21 governance rules (R000-R021)
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/ # 33 reference documents
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.80.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.80.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
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.80.0",
6
+ "version": "0.82.0",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -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: Fix all discovered issues
31
+ ### Phase 3: Wiki Sync Verification
32
32
 
33
- ### Phase 4: Commit via mgr-gitnerd
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
- ### Phase 5: Push via mgr-gitnerd (only after sauron passes)
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.