oh-my-customcode 0.80.0 → 0.81.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 +7 -7
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- 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 +11 -6
- package/templates/manifest.json +5 -5
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
name: Wiki Sync
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- develop
|
|
7
|
+
paths:
|
|
8
|
+
- '.claude/agents/**'
|
|
9
|
+
- '.claude/skills/**'
|
|
10
|
+
- '.claude/rules/**'
|
|
11
|
+
- 'guides/**'
|
|
12
|
+
- 'wiki/**'
|
|
13
|
+
pull_request:
|
|
14
|
+
branches:
|
|
15
|
+
- develop
|
|
16
|
+
paths:
|
|
17
|
+
- '.claude/agents/**'
|
|
18
|
+
- '.claude/skills/**'
|
|
19
|
+
- '.claude/rules/**'
|
|
20
|
+
- 'guides/**'
|
|
21
|
+
- 'wiki/**'
|
|
22
|
+
|
|
23
|
+
concurrency:
|
|
24
|
+
group: wiki-sync-${{ github.ref }}
|
|
25
|
+
cancel-in-progress: true
|
|
26
|
+
|
|
27
|
+
permissions:
|
|
28
|
+
contents: read
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
wiki-staleness-check:
|
|
32
|
+
name: Wiki Staleness Check
|
|
33
|
+
runs-on: macos-latest
|
|
34
|
+
steps:
|
|
35
|
+
- name: Checkout
|
|
36
|
+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
37
|
+
|
|
38
|
+
- name: Check wiki directory exists
|
|
39
|
+
run: |
|
|
40
|
+
if [ ! -d "wiki" ]; then
|
|
41
|
+
echo "::error::wiki/ directory does not exist"
|
|
42
|
+
echo ""
|
|
43
|
+
echo "The wiki/ directory is required for this project."
|
|
44
|
+
echo "Fix: run '/omcustom:wiki' to generate the initial wiki"
|
|
45
|
+
exit 1
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
- name: Check for missing wiki pages
|
|
49
|
+
run: |
|
|
50
|
+
#!/bin/bash
|
|
51
|
+
ERRORS=0
|
|
52
|
+
STALE=0
|
|
53
|
+
MISSING=0
|
|
54
|
+
|
|
55
|
+
# Check agents
|
|
56
|
+
for src in .claude/agents/*.md; do
|
|
57
|
+
name=$(basename "$src" .md)
|
|
58
|
+
wiki_page="wiki/agents/${name}.md"
|
|
59
|
+
if [ ! -f "$wiki_page" ]; then
|
|
60
|
+
echo "::error::Missing wiki page: $wiki_page (source: $src)"
|
|
61
|
+
MISSING=$((MISSING + 1))
|
|
62
|
+
ERRORS=$((ERRORS + 1))
|
|
63
|
+
fi
|
|
64
|
+
done
|
|
65
|
+
|
|
66
|
+
# Check skills
|
|
67
|
+
for src in $(find .claude/skills -name "SKILL.md"); do
|
|
68
|
+
name=$(basename $(dirname "$src"))
|
|
69
|
+
wiki_page="wiki/skills/${name}.md"
|
|
70
|
+
if [ ! -f "$wiki_page" ]; then
|
|
71
|
+
echo "::error::Missing wiki page: $wiki_page (source: $src)"
|
|
72
|
+
MISSING=$((MISSING + 1))
|
|
73
|
+
ERRORS=$((ERRORS + 1))
|
|
74
|
+
fi
|
|
75
|
+
done
|
|
76
|
+
|
|
77
|
+
# Check rules
|
|
78
|
+
for src in .claude/rules/*.md; do
|
|
79
|
+
# Extract rule ID (R000, R007, etc.) from content
|
|
80
|
+
rule_id=$(grep -oE 'ID\*\*: R[0-9]+' "$src" | grep -oE '[0-9]+' | head -1)
|
|
81
|
+
if [ -n "$rule_id" ]; then
|
|
82
|
+
wiki_page="wiki/rules/r$(printf '%03d' "$((10#$rule_id))").md"
|
|
83
|
+
if [ ! -f "$wiki_page" ]; then
|
|
84
|
+
echo "::error::Missing wiki page: $wiki_page (source: $src)"
|
|
85
|
+
MISSING=$((MISSING + 1))
|
|
86
|
+
ERRORS=$((ERRORS + 1))
|
|
87
|
+
fi
|
|
88
|
+
fi
|
|
89
|
+
done
|
|
90
|
+
|
|
91
|
+
# Check guides
|
|
92
|
+
for src in $(find guides -mindepth 1 -maxdepth 1 -type d); do
|
|
93
|
+
name=$(basename "$src")
|
|
94
|
+
wiki_page="wiki/guides/${name}.md"
|
|
95
|
+
if [ ! -f "$wiki_page" ]; then
|
|
96
|
+
echo "::error::Missing wiki page: $wiki_page (source: $src)"
|
|
97
|
+
MISSING=$((MISSING + 1))
|
|
98
|
+
ERRORS=$((ERRORS + 1))
|
|
99
|
+
fi
|
|
100
|
+
done
|
|
101
|
+
|
|
102
|
+
# Check index.md exists
|
|
103
|
+
if [ ! -f "wiki/index.yaml" ]; then
|
|
104
|
+
echo "::error::Missing wiki/index.yaml"
|
|
105
|
+
ERRORS=$((ERRORS + 1))
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
# Summary
|
|
109
|
+
TOTAL_WIKI=$(find wiki -name "*.md" ! -name "index.md" ! -name "log.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
110
|
+
echo "Wiki pages: $TOTAL_WIKI"
|
|
111
|
+
echo "Missing pages: $MISSING"
|
|
112
|
+
|
|
113
|
+
if [ "$ERRORS" -gt 0 ]; then
|
|
114
|
+
echo ""
|
|
115
|
+
echo "Fix: run '/omcustom:wiki' to regenerate wiki pages"
|
|
116
|
+
exit 1
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
echo "Wiki sync check passed"
|
|
120
|
+
|
|
121
|
+
- name: Report results
|
|
122
|
+
if: success()
|
|
123
|
+
run: |
|
|
124
|
+
TOTAL_AGENTS=$(ls .claude/agents/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
125
|
+
TOTAL_SKILLS=$(find .claude/skills -name "SKILL.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
126
|
+
TOTAL_RULES=$(ls .claude/rules/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
127
|
+
TOTAL_GUIDES=$(find guides -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l | tr -d ' ')
|
|
128
|
+
TOTAL_WIKI=$(find wiki -name "*.md" ! -name "index.md" ! -name "log.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
129
|
+
|
|
130
|
+
echo "Source entities: agents=$TOTAL_AGENTS skills=$TOTAL_SKILLS rules=$TOTAL_RULES guides=$TOTAL_GUIDES"
|
|
131
|
+
echo "Wiki pages: $TOTAL_WIKI"
|
|
132
|
+
echo "All wiki pages present — sync OK"
|
package/templates/CLAUDE.md
CHANGED
|
@@ -84,6 +84,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
84
84
|
| R012 | HUD 상태줄 | 실시간 상태 표시 |
|
|
85
85
|
| R013 | Ecomode | 배치 작업 토큰 효율성 |
|
|
86
86
|
| R019 | Ontology-RAG 라우팅 | 라우팅 스킬의 ontology-RAG enrichment |
|
|
87
|
+
| R022 | Wiki 동기화 | 에이전트/스킬/룰/가이드 변경 시 위키 자동 동기화 |
|
|
87
88
|
|
|
88
89
|
### MAY (선택)
|
|
89
90
|
| ID | 규칙 | 설명 |
|
|
@@ -104,7 +105,10 @@ oh-my-customcode로 구동됩니다.
|
|
|
104
105
|
| `/omcustom:fix-refs` | 깨진 참조 수정 |
|
|
105
106
|
| `/omcustom:harness-eval` | 15 SE task 구조적 벤치마크 평가 |
|
|
106
107
|
| `/omcustom:auto-improve` | 개선 사항 자동 적용 워크플로우 |
|
|
108
|
+
| `/omcustom:adaptive-harness` | 프로젝트 컨텍스트 기반 하네스 자동 최적화 |
|
|
107
109
|
| `/omcustom:claude-native` | Claude Code 릴리즈 모니터링 및 이슈 자동 생성 |
|
|
110
|
+
| `/omcustom:wiki` | 코드베이스 위키 생성/유지 (Karpathy LLM Wiki 패턴) |
|
|
111
|
+
| `/omcustom:wiki-rag` | 위키 기반 코드베이스 질의응답 (RAG) |
|
|
108
112
|
| `/omcustom:improve-report` | eval-core 기반 개선 현황 리포트 |
|
|
109
113
|
| `/omcustom-takeover` | 기존 에이전트/스킬에서 canonical spec 추출 |
|
|
110
114
|
| `/adversarial-review` | 공격자 관점 보안 코드 리뷰 |
|
|
@@ -128,6 +132,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
128
132
|
| `/optimize-report` | 최적화 리포트 생성 |
|
|
129
133
|
| `/research` | 10-team 병렬 딥 분석 및 교차 검증 |
|
|
130
134
|
| `/scout` | 외부 URL 분석 및 프로젝트 적합성 평가 |
|
|
135
|
+
| `/skill-extractor` | 세션 성공 패턴에서 스킬 후보 추출 |
|
|
131
136
|
| `/deep-plan` | 연구 검증 기반 계획 수립 (research → plan → verify) |
|
|
132
137
|
| `/deep-verify` | 다중 관점 릴리즈 품질 검증 |
|
|
133
138
|
| `/professor-triage` | 이슈 교차 분석 트리아지 (omc_issue_analyzer 댓글 기반) |
|
|
@@ -151,9 +156,9 @@ oh-my-customcode로 구동됩니다.
|
|
|
151
156
|
project/
|
|
152
157
|
+-- CLAUDE.md # 진입점
|
|
153
158
|
+-- .claude/
|
|
154
|
-
| +-- agents/ # 서브에이전트 정의 (
|
|
155
|
-
| +-- skills/ # 스킬 (
|
|
156
|
-
| +-- rules/ # 전역 규칙 (R000-
|
|
159
|
+
| +-- agents/ # 서브에이전트 정의 (48 파일)
|
|
160
|
+
| +-- skills/ # 스킬 (104 디렉토리)
|
|
161
|
+
| +-- rules/ # 전역 규칙 (R000-R022)
|
|
157
162
|
| +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
|
|
158
163
|
| +-- contexts/ # 컨텍스트 파일 (ecomode)
|
|
159
164
|
+-- guides/ # 레퍼런스 문서 (33 토픽)
|
|
@@ -210,8 +215,8 @@ oh-my-customcode는 소프트웨어 컴파일과 동일한 구조를 따릅니
|
|
|
210
215
|
| Infra Engineer | 2 | infra-docker-expert, infra-aws-expert |
|
|
211
216
|
| QA Team | 3 | qa-planner, qa-writer, qa-engineer |
|
|
212
217
|
| Manager | 6 | mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sauron, mgr-claude-code-bible |
|
|
213
|
-
| System |
|
|
214
|
-
| **총계** | **
|
|
218
|
+
| System | 3 | sys-memory-keeper, sys-naggy, wiki-curator |
|
|
219
|
+
| **총계** | **48** | |
|
|
215
220
|
|
|
216
221
|
## Agent Teams (MUST when enabled)
|
|
217
222
|
|
|
@@ -292,4 +297,4 @@ claude-mem setup
|
|
|
292
297
|
|
|
293
298
|
<!-- omcustom:git-workflow -->
|
|
294
299
|
|
|
295
|
-
<!-- omcustom:end -->
|
|
300
|
+
<!-- omcustom:end -->
|
package/templates/manifest.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
3
|
-
"lastUpdated": "2026-
|
|
2
|
+
"version": "0.81.0",
|
|
3
|
+
"lastUpdated": "2026-04-12T00:00:00.000Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "rules",
|
|
7
7
|
"path": ".claude/rules",
|
|
8
8
|
"description": "Agent behavior rules and guidelines",
|
|
9
|
-
"files":
|
|
9
|
+
"files": 22
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"name": "agents",
|
|
13
13
|
"path": ".claude/agents",
|
|
14
14
|
"description": "AI agent definitions (flat .md files with prefixes)",
|
|
15
|
-
"files":
|
|
15
|
+
"files": 48
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"name": "skills",
|
|
19
19
|
"path": ".claude/skills",
|
|
20
20
|
"description": "Reusable skill modules (includes slash commands)",
|
|
21
|
-
"files":
|
|
21
|
+
"files": 104
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"name": "guides",
|