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.
@@ -0,0 +1,426 @@
1
+ ---
2
+ name: wiki
3
+ description: Generate and maintain a persistent codebase wiki — LLM-built interlinked markdown knowledge base (Karpathy LLM Wiki pattern)
4
+ scope: core
5
+ version: 1.0.0
6
+ user-invocable: true
7
+ argument-hint: "[ingest|query|lint] [args...]"
8
+ effort: high
9
+ ---
10
+
11
+ <!-- Inspired by Andrej Karpathy's "LLM Wiki" pattern:
12
+ https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
13
+ Core idea: the LLM incrementally builds and maintains a persistent wiki of
14
+ interlinked markdown files — a compounding artifact that grows richer over time. -->
15
+
16
+ # Wiki Skill
17
+
18
+ Builds and maintains a persistent, interlinked markdown wiki for the project codebase. Each run is incremental — only pages whose sources changed are rewritten. Over time the wiki becomes the fastest path to codebase understanding for both humans and LLMs.
19
+
20
+ ## Usage
21
+
22
+ ```
23
+ /omcustom:wiki # Full wiki generation / incremental update
24
+ /omcustom:wiki ingest <path> # Ingest a specific file or directory
25
+ /omcustom:wiki ingest .claude/agents/ # Ingest all agent definitions
26
+ /omcustom:wiki query <question> # Query the wiki with natural language
27
+ /omcustom:wiki lint # Health check — orphans, broken refs, stale pages
28
+ ```
29
+
30
+ ## Wiki Directory Structure
31
+
32
+ The wiki lives at `wiki/` in the project root (git-tracked). Create on first run if absent.
33
+
34
+ ```
35
+ wiki/
36
+ ├── index.yaml # Structured content catalog — YAML for machine-parseable page index
37
+ ├── log.duckdb # Append-only operation log — DuckDB for SQL-queryable analytics
38
+ ├── architecture/ # Architecture & design pages
39
+ ├── agents/ # Agent documentation pages
40
+ ├── skills/ # Skill documentation pages
41
+ ├── rules/ # Rule analysis pages
42
+ ├── guides/ # Guide summary pages
43
+ ├── workflows/ # Workflow & process pages
44
+ └── concepts/ # Cross-cutting concept pages
45
+ ```
46
+
47
+ ## Operations
48
+
49
+ ### Default — Full Wiki Generation / Incremental Update
50
+
51
+ Invoked with `/omcustom:wiki` (no arguments).
52
+
53
+ **Step 1 — Scan codebase structure**
54
+
55
+ Read the following sources:
56
+ - `.claude/agents/*.md` — all agent definitions
57
+ - `.claude/skills/*/SKILL.md` — all skill definitions
58
+ - `.claude/rules/*.md` — all rule files
59
+ - `guides/*/` — all guide directories (read README or first `.md` found)
60
+ - `CLAUDE.md` — project overview
61
+
62
+ **Step 2 — Determine what needs updating (incremental mode)**
63
+
64
+ For each source file: compare its modification date against the `updated` field of the corresponding wiki page frontmatter (if the page exists). Only regenerate pages where the source is newer than the wiki page, or the wiki page does not yet exist.
65
+
66
+ On first run, generate all pages.
67
+
68
+ **Step 3 — Generate wiki pages (parallel, per R009)**
69
+
70
+ Split work by category across parallel subagents (max 4 concurrent per R009):
71
+
72
+ | Batch | Categories |
73
+ |-------|------------|
74
+ | Batch 1 | agents/, skills/ |
75
+ | Batch 2 | rules/, guides/ |
76
+ | Batch 3 | architecture/, workflows/, concepts/ |
77
+
78
+ Each subagent:
79
+ 1. Reads its assigned source files
80
+ 2. Creates or updates wiki pages following the Wiki Page Format below
81
+ 3. Writes pages to the correct subdirectory
82
+
83
+ **Step 4 — Update index.yaml**
84
+
85
+ After all page batches complete, regenerate `index.yaml` with current page list.
86
+
87
+ **Step 5 — Insert into log.duckdb**
88
+
89
+ ```
90
+ ## [YYYY-MM-DD HH:MM] full_update | Full wiki update
91
+ - Pages created: N
92
+ - Pages updated: M
93
+ - Sources scanned: K
94
+ ```
95
+
96
+ **Step 6 — Display summary**
97
+
98
+ ```
99
+ [wiki] Full update complete
100
+ ├── Created: N new pages
101
+ ├── Updated: M pages
102
+ ├── Unchanged: K pages
103
+ └── Index: wiki/index.yaml
104
+ ```
105
+
106
+ ---
107
+
108
+ ### `ingest <path>` — Targeted Ingest
109
+
110
+ Ingest one or more specific files or a directory. Useful after adding a new agent or skill.
111
+
112
+ **Step 1** — Read the specified path(s). If a directory, read all `.md` files within.
113
+
114
+ **Step 2** — For each source file, determine which wiki pages it should affect:
115
+ - Direct page: the primary page for that entity
116
+ - Cross-reference pages: pages that link to or depend on this entity
117
+
118
+ A single source file typically affects 5–15 wiki pages (primary + all pages that reference it).
119
+
120
+ **Step 3** — Update affected wiki pages: rewrite cross-reference sections in related pages, update the primary page with new content.
121
+
122
+ **Step 4** — Update `index.yaml` if new pages were created.
123
+
124
+ **Step 5** — Insert into `log.duckdb`:
125
+
126
+ ```
127
+ ## [YYYY-MM-DD HH:MM] ingest | <path>
128
+ - Source: <path>
129
+ - Pages created: N
130
+ - Pages updated: M
131
+ - Cross-references updated: K
132
+ ```
133
+
134
+ ---
135
+
136
+ ### `query <question>` — Wiki Query
137
+
138
+ Answer a natural language question using wiki content as the knowledge base.
139
+
140
+ **Step 1** — Read and parse `wiki/index.yaml` to identify the 3–7 most relevant pages for the question.
141
+
142
+ **Step 2** — Read those pages in parallel (R009).
143
+
144
+ **Step 3** — Synthesize a direct answer. Cite specific wiki pages inline: `[wiki/agents/mgr-creator.md]`.
145
+
146
+ **Step 4** — If the synthesized answer itself is a valuable insight not captured in any existing page, offer: `"This synthesis could be saved as a new wiki page. Save it? [Y/n]"`
147
+
148
+ If yes, delegate to the subagent to create the page in `wiki/concepts/`.
149
+
150
+ **Step 5** — Insert into `log.duckdb`:
151
+
152
+ ```
153
+ ## [YYYY-MM-DD HH:MM] query | <question>
154
+ - Pages consulted: N
155
+ - New concept page created: yes/no
156
+ ```
157
+
158
+ ---
159
+
160
+ ### `lint` — Wiki Health Check
161
+
162
+ **Step 1 — Collect inventory**
163
+
164
+ - All wiki pages: glob `wiki/**/*.md` (exclude index.yaml, log.duckdb)
165
+ - All links within wiki pages: extract `[[...]]` wikilinks and `[text](path)` markdown links
166
+ - All source files: scan `.claude/agents/`, `.claude/skills/`, `.claude/rules/`, `guides/`
167
+
168
+ **Step 2 — Run checks**
169
+
170
+ | Check | How to Detect |
171
+ |-------|---------------|
172
+ | Orphan pages | Wiki pages with zero inbound links from other wiki pages |
173
+ | Broken cross-references | `[[page-name]]` or `(path)` link targets that don't exist in `wiki/` |
174
+ | Stale pages | Source file modification date newer than page's `updated` frontmatter field |
175
+ | Missing pages | Source entities that exist in codebase but have no corresponding wiki page |
176
+ | Contradictions | Pages that make conflicting claims about the same entity (heuristic: search for conflicting status/count statements) |
177
+
178
+ **Step 3 — Report findings**
179
+
180
+ ```
181
+ [wiki lint] Health check results
182
+ ├── Orphan pages (N): wiki/agents/old-agent.md, ...
183
+ ├── Broken refs (N): wiki/skills/foo.md → [[missing-page]]
184
+ ├── Stale pages (N): wiki/rules/r007.md (source updated 2026-04-10, wiki 2026-03-15)
185
+ ├── Missing pages (N): .claude/agents/new-agent.md has no wiki page
186
+ └── Contradictions (N): wiki/architecture/overview.md vs wiki/concepts/orchestration.md
187
+ ```
188
+
189
+ **Step 4 — Suggest fixes**
190
+
191
+ For each category: suggest the command to fix (e.g., `/omcustom:wiki ingest .claude/agents/new-agent.md`).
192
+
193
+ **Step 5 — Insert into log.duckdb**
194
+
195
+ ```
196
+ ## [YYYY-MM-DD HH:MM] lint | Health check
197
+ - Orphans: N | Broken refs: M | Stale: K | Missing: J | Contradictions: L
198
+ - Status: HEALTHY / NEEDS ATTENTION
199
+ ```
200
+
201
+ ---
202
+
203
+ ## Wiki Page Format
204
+
205
+ Every wiki page follows this template exactly:
206
+
207
+ ```markdown
208
+ ---
209
+ title: Page Title
210
+ type: architecture|agent|skill|rule|guide|workflow|concept
211
+ updated: YYYY-MM-DD
212
+ sources:
213
+ - path/to/source1.md
214
+ - path/to/source2.md
215
+ related:
216
+ - [[related-page-1]]
217
+ - [[related-page-2]]
218
+ ---
219
+
220
+ # Page Title
221
+
222
+ Brief description (1-2 sentences).
223
+
224
+ ## Overview
225
+
226
+ Main content — purpose, key capabilities, design intent.
227
+
228
+ ## Key Details
229
+
230
+ Specifics: configuration, fields, options, constraints.
231
+
232
+ ## Relationships
233
+
234
+ - **Depends on**: [[page-a]], [[page-b]]
235
+ - **Used by**: [[page-c]]
236
+ - **See also**: [[page-d]]
237
+
238
+ ## Sources
239
+
240
+ - `path/to/source.md` — what was extracted from this source
241
+ ```
242
+
243
+ ### Wikilink Style
244
+
245
+ Use BOTH formats for cross-references so the wiki is readable in Obsidian and in standard markdown viewers:
246
+
247
+ - Wikilinks (Obsidian-compatible): `[[page-name]]`
248
+ - Standard markdown links: `[Page Name](../category/page-name.md)`
249
+
250
+ Example: `[[mgr-creator]]` and `[mgr-creator](../agents/mgr-creator.md)`
251
+
252
+ ---
253
+
254
+ ## index.yaml Format
255
+
256
+ ```yaml
257
+ # wiki/index.yaml — Machine-parseable wiki page index
258
+ # Updated by /omcustom:wiki after every operation
259
+
260
+ meta:
261
+ updated: "2026-04-12"
262
+ total_pages: 231
263
+ total_sources: 203
264
+
265
+ pages:
266
+ architecture:
267
+ - file: architecture/overview.md
268
+ title: System Architecture Overview
269
+ summary: Three-layer structure and compilation metaphor
270
+ - file: architecture/orchestration.md
271
+ title: Orchestration
272
+ summary: Main conversation as sole orchestrator with routing skills
273
+
274
+ agents:
275
+ - file: agents/lang-golang-expert.md
276
+ title: Go Language Expert
277
+ summary: Expert Go developer for idiomatic, performant Go code
278
+ # ... one entry per agent
279
+
280
+ skills:
281
+ - file: skills/wiki.md
282
+ title: Wiki Skill
283
+ summary: Generate and maintain persistent codebase wiki
284
+ # ... one entry per skill
285
+
286
+ rules:
287
+ - file: rules/r000.md
288
+ title: "R000: Language & Delegation Policy"
289
+ summary: Korean I/O, English files, delegation model
290
+ # ... one entry per rule
291
+
292
+ guides:
293
+ - file: guides/golang.md
294
+ title: Go Guide
295
+ summary: Reference documentation for Go development
296
+ # ... one entry per guide
297
+
298
+ workflows:
299
+ - file: workflows/development-workflow.md
300
+ title: Development Workflow
301
+ summary: Intent detection to implementation pipeline
302
+
303
+ concepts:
304
+ - file: concepts/compilation-metaphor.md
305
+ title: Compilation Metaphor
306
+ summary: Core design philosophy mapping software compilation to agent system
307
+ ```
308
+
309
+ Advantages over markdown index:
310
+ - Machine-parseable: LLMs and scripts can filter by category, search by title
311
+ - Structured: each entry has file, title, summary as discrete fields
312
+ - Queryable: `yq '.pages.agents[] | select(.title | contains("Go"))'`
313
+
314
+ ---
315
+
316
+ ## log.duckdb Format
317
+
318
+ The wiki log uses DuckDB — a single-file analytical database for SQL-queryable operation history.
319
+
320
+ ### Schema
321
+
322
+ ```sql
323
+ CREATE TABLE IF NOT EXISTS wiki_log (
324
+ id INTEGER PRIMARY KEY,
325
+ timestamp TIMESTAMP DEFAULT current_timestamp,
326
+ operation VARCHAR NOT NULL, -- 'full_update' | 'ingest' | 'query' | 'lint'
327
+ target VARCHAR, -- file path or question text
328
+ pages_created INTEGER DEFAULT 0,
329
+ pages_updated INTEGER DEFAULT 0,
330
+ pages_consulted INTEGER DEFAULT 0,
331
+ coverage VARCHAR, -- 'full' | 'partial' | 'miss' (for queries)
332
+ details JSON -- flexible metadata
333
+ );
334
+ ```
335
+
336
+ ### Writing entries
337
+
338
+ ```bash
339
+ duckdb wiki/log.duckdb "INSERT INTO wiki_log (operation, target, pages_created, pages_updated, details) VALUES ('full_update', 'all', 231, 0, '{\"sources_scanned\": 203}');"
340
+ ```
341
+
342
+ ### Querying
343
+
344
+ ```bash
345
+ # Recent operations
346
+ duckdb wiki/log.duckdb "SELECT timestamp, operation, target, pages_created FROM wiki_log ORDER BY timestamp DESC LIMIT 10;"
347
+
348
+ # Query coverage stats
349
+ duckdb wiki/log.duckdb "SELECT coverage, COUNT(*) FROM wiki_log WHERE operation='query' GROUP BY coverage;"
350
+
351
+ # Operations per day
352
+ duckdb wiki/log.duckdb "SELECT DATE_TRUNC('day', timestamp) as day, COUNT(*) FROM wiki_log GROUP BY day ORDER BY day;"
353
+ ```
354
+
355
+ ### Fallback
356
+
357
+ If `duckdb` CLI is not installed, fall back to appending JSON lines to `wiki/log.jsonl`:
358
+ ```json
359
+ {"timestamp":"2026-04-12T10:00:00","operation":"full_update","target":"all","pages_created":231,"pages_updated":0,"details":{"sources_scanned":203}}
360
+ ```
361
+
362
+ Install DuckDB: `brew install duckdb` (macOS) or `pip install duckdb`
363
+
364
+ ---
365
+
366
+ ## Execution Rules
367
+
368
+ | Rule | Requirement |
369
+ |------|-------------|
370
+ | R000 | Wiki page content in English; user communication in Korean |
371
+ | R009 | Parallel agents for independent category batches (max 4 concurrent) |
372
+ | R010 | Orchestrator delegates ALL wiki file writes to subagents |
373
+ | R006 | Only SKILL.md is created by this skill; wiki pages are runtime artifacts |
374
+ | Git tracking | `wiki/` directory is git-tracked (not in .gitignore) |
375
+ | Incremental | On re-runs, skip pages whose sources haven't changed |
376
+ | First run | Create `wiki/` directory structure before writing any pages |
377
+ | log.duckdb | Always insert; never delete or rewrite existing log entries |
378
+
379
+ ### Parallel Execution Pattern (Full Update)
380
+
381
+ ```
382
+ Orchestrator
383
+ ├── [1] subagent: agents/ category (reads .claude/agents/*.md, writes wiki/agents/*.md)
384
+ ├── [2] subagent: skills/ category (reads .claude/skills/*/SKILL.md, writes wiki/skills/*.md)
385
+ ├── [3] subagent: rules/ category (reads .claude/rules/*.md, writes wiki/rules/*.md)
386
+ └── [4] subagent: guides/ category (reads guides/*/, writes wiki/guides/*.md)
387
+ [wait for batch 1 to complete]
388
+ ├── [5] subagent: architecture/ + workflows/ + concepts/ (synthesizes from all sources)
389
+ [wait]
390
+ └── [6] subagent: index.yaml + log.duckdb update
391
+ ```
392
+
393
+ ---
394
+
395
+ ## What Makes a Good Wiki Page
396
+
397
+ A wiki page is NOT a file summary — it is a synthesized knowledge article. Good pages:
398
+
399
+ - **Explain purpose and design intent**, not just what fields exist
400
+ - **Show relationships** — what depends on this, what this depends on
401
+ - **Highlight non-obvious constraints** — gotchas, ordering requirements, exceptions
402
+ - **Cross-reference liberally** — 5–10 outbound links per page is healthy
403
+ - **Stay concise** — aim for 150–300 words of body text; tables over prose where possible
404
+
405
+ ---
406
+
407
+ ## Tips
408
+
409
+ - The wiki is just markdown — viewable in Obsidian, VS Code, GitHub, and any markdown renderer
410
+ - `wiki/index.yaml` acts as the LLM's "search engine" at moderate scale — keep it accurate
411
+ - Over time, the wiki becomes the fastest way to understand the codebase for new contributors and LLMs alike
412
+ - Run `lint` regularly (after major structural changes) to keep the wiki healthy
413
+ - When a query answer synthesizes something genuinely new, file it as a `concepts/` page — it compounds value
414
+ - The `log.duckdb` provides an SQL-queryable audit trail of how the wiki evolved
415
+
416
+ ## Integration
417
+
418
+ | Rule / Skill | Integration |
419
+ |--------------|-------------|
420
+ | R009 | Parallel agents for category batches; max 4 concurrent |
421
+ | R010 | All wiki writes delegated to subagents; orchestrator reads only |
422
+ | R000 | Wiki content in English; responses to user in Korean |
423
+ | R013 | Ecomode auto-activates when 4+ parallel agents writing pages |
424
+ | R015 | Display operation plan with page counts before execution |
425
+ | result-aggregation | Aggregate per-batch page counts for final summary |
426
+ | update-docs | Complement: update-docs syncs CLAUDE.md counts; wiki syncs knowledge content |
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: wiki-rag
3
+ description: Use the project wiki as RAG knowledge source — search wiki pages to answer codebase questions before exploring raw files
4
+ scope: core
5
+ version: 1.0.0
6
+ user-invocable: true
7
+ argument-hint: "<question>"
8
+ effort: medium
9
+ ---
10
+
11
+ # Wiki RAG Skill
12
+
13
+ Query the project wiki to answer questions about the codebase. The wiki is a pre-compiled knowledge base — searching it is faster and more accurate than exploring raw source files.
14
+
15
+ ## Usage
16
+
17
+ ```
18
+ /omcustom:wiki-rag "how does orchestration work?"
19
+ /omcustom:wiki-rag "what agents handle database tasks?"
20
+ /omcustom:wiki-rag "explain the compilation metaphor"
21
+ ```
22
+
23
+ Also triggered automatically by intent-detection when a user asks about project architecture, agent roles, skill purposes, or rule behavior.
24
+
25
+ ## Workflow
26
+
27
+ ### Step 1: Load Index
28
+
29
+ Read and parse `wiki/index.yaml` to get the full page catalog. If `wiki/index.yaml` does not exist, report:
30
+
31
+ ```
32
+ [wiki-rag] Wiki not initialized. Run /omcustom:wiki first to create wiki/index.yaml.
33
+ ```
34
+
35
+ Then abort.
36
+
37
+ ### Step 2: Identify Relevant Pages
38
+
39
+ From the question and the index, identify 3–7 most relevant wiki pages. Selection criteria:
40
+
41
+ | Criterion | Detail |
42
+ |-----------|--------|
43
+ | Title/summary keyword match | Direct term overlap with the question |
44
+ | Category relevance | Architecture questions → `architecture/`; agent questions → `agents/` |
45
+ | Cross-reference chains | Follow `[[related]]` links to surface adjacent context |
46
+
47
+ ### Step 3: Read Pages (Parallel)
48
+
49
+ Read identified pages in parallel per R009. Extract sections relevant to the question; ignore unrelated sections to control context size (R013).
50
+
51
+ ### Step 4: Synthesize Answer
52
+
53
+ Compose a direct answer citing wiki pages inline:
54
+
55
+ ```
56
+ [wiki/architecture/orchestration.md] 참조 — 메인 대화가 유일한 오케스트레이터...
57
+ ```
58
+
59
+ Answer format:
60
+
61
+ - **Direct answer first** (2–3 sentences)
62
+ - Supporting details from wiki pages
63
+ - Inline citations to specific wiki pages (`[wiki/path/to/page.md]`)
64
+ - "See also" links for further reading
65
+
66
+ ### Step 5: Evaluate Coverage
67
+
68
+ After synthesizing, assess whether the wiki alone was sufficient.
69
+
70
+ | Coverage Level | Condition | Action |
71
+ |---------------|-----------|--------|
72
+ | Full | Wiki pages answer the question completely | Return wiki-sourced answer |
73
+ | Partial | Wiki covers some aspects; gaps remain | Supplement with raw codebase exploration (Read/Glob/Grep); offer to ingest |
74
+ | Miss | Wiki has no relevant pages | Full raw exploration; offer to create wiki page |
75
+
76
+ If raw file exploration was needed, offer to persist the new knowledge:
77
+
78
+ ```
79
+ [wiki-rag] This answer required raw file exploration. Save findings to wiki? [Y/n]
80
+ ```
81
+
82
+ If yes: delegate wiki page creation/update to the wiki-curator agent (R010 — orchestrator delegates all wiki writes).
83
+
84
+ ### Step 6: Log Query
85
+
86
+ Insert into `wiki/log.duckdb`:
87
+
88
+ ```bash
89
+ duckdb wiki/log.duckdb "INSERT INTO wiki_log (operation, target, pages_consulted, coverage, details) VALUES ('query', '{question}', N, 'full/partial/miss', '{\"fallback\": false, \"new_page_created\": false}');"
90
+ ```
91
+
92
+ Log writes are delegated to a subagent (R010).
93
+
94
+ ## Integration with Intent Detection
95
+
96
+ The following trigger patterns route user questions to wiki-rag automatically:
97
+
98
+ | Trigger Keywords | Language | Confidence | Action |
99
+ |-----------------|----------|------------|--------|
100
+ | "어떻게 작동", "how does X work" | KO/EN | 85% | wiki-rag |
101
+ | "무슨 에이전트", "which agent" | KO/EN | 80% | wiki-rag |
102
+ | "규칙", "rule R0XX" | KO/EN | 75% | wiki-rag |
103
+ | "아키텍처", "architecture" | KO/EN | 90% | wiki-rag |
104
+ | "워크플로우", "workflow" | KO/EN | 85% | wiki-rag |
105
+
106
+ Patterns should be registered in `.claude/skills/intent-detection/patterns/agent-triggers.yaml` when that file is updated.
107
+
108
+ ## Fallback Strategy
109
+
110
+ | Wiki Coverage | Action |
111
+ |--------------|--------|
112
+ | Full (answer from wiki alone) | Return wiki-sourced answer |
113
+ | Partial (wiki + raw files needed) | Supplement with raw exploration, offer to ingest findings |
114
+ | Miss (wiki has nothing relevant) | Full raw exploration, offer to create new wiki page |
115
+
116
+ For partial and miss cases: always acknowledge what the wiki covered before pivoting to raw exploration. Do not silently fall back.
117
+
118
+ ## Execution Rules
119
+
120
+ | Rule | Requirement |
121
+ |------|-------------|
122
+ | R000 | Answers to user in Korean; wiki content and citations reference English file paths |
123
+ | R009 | Parallel reads for identified wiki pages (Step 3) |
124
+ | R010 | All wiki write operations (log.duckdb, new pages) delegated to subagents |
125
+ | R013 | Ecomode: return concise answers when context pressure is high; suppress "See also" section |
126
+
127
+ ## What Makes a Good Wiki-RAG Answer
128
+
129
+ - **Cites specific wiki pages** — not vague "the wiki says..." but `[wiki/agents/mgr-creator.md]`
130
+ - **Provides actionable information** — tells the user what to do, not just what exists
131
+ - **Links to related pages** for readers who want to go deeper
132
+ - **Acknowledges gaps honestly** — never hallucinate content not found in the wiki
133
+ - **Offers to improve wiki coverage** when gaps are found — compounding the knowledge base over time
134
+
135
+ ## Integration with /omcustom:wiki
136
+
137
+ | Skill | Role |
138
+ |-------|------|
139
+ | `wiki` | Builds and maintains the wiki (ingest, update, lint) |
140
+ | `wiki-rag` | Queries the wiki as a RAG source; surfaces gaps; triggers ingest offers |
141
+
142
+ wiki-rag is the read-path; wiki is the write-path. They share `wiki/index.yaml` and `wiki/log.duckdb` as the coordination layer.
143
+
144
+ ## Integration
145
+
146
+ | Rule / Skill | Integration |
147
+ |--------------|-------------|
148
+ | R009 | Parallel page reads in Step 3 |
149
+ | R010 | Log writes and wiki page creation delegated to subagents |
150
+ | R000 | Korean user responses; English wiki content and paths |
151
+ | R013 | Ecomode: suppress extended "See also" section; summary answer only |
152
+ | R015 | Intent detection routes architecture/agent/rule questions here at 75–90% confidence |
153
+ | wiki | Counterpart write-path skill; wiki-rag triggers ingest offers to wiki when gaps found |
154
+ | intent-detection | Registers trigger patterns for auto-routing user questions to wiki-rag |