WHAT
Purpose and context
- Purpose: quickly orient into a running project that already has
llmwiki/— understand the context (what the project is, key technical points, recent changes, tools state) without re-analyzing the entire code. - Trigger (when to use): Agent or new dev joins midway into a project that already has
llmwiki/— needs to understand the context quickly without re-analyzing the entire code. - Non-goals: do not modify the wiki (read-only with wiki pages), do not install harness / RTK / tools (that is the job of
new-project-setupor/harness-update, user decides), do not onboard a codebase that does not have a wiki (→new-project-setup, gap section →onboard-codebase).
Mental model
llmwiki/ có sẵn → index + log + Architecture → 3 concept được [[link]] nhiều nhất → trạng thái skills/harness → bản tổng hợp orient cho người/agent mới. The wiki is the source; the skill only reads and summarizes, does not fill gaps with guesses.
Input and output contract
| Field | Required? | Meaning | |
|---|---|---|---|
| In | repo has llmwiki/wiki/index.md |
yes | missing → stop, suggest new-project-setup |
| In | llmwiki/wiki/concepts/Architecture.md |
no | if present, read it to get the stack |
| Out | orient report | yes | project + stack · 3 technical points · recent changes & open items · skills state (installed/missing) · suggestion onboard-codebase for big gaps |
| Out | harness state | yes | harness: ON or MISSING (indicator only) |
| Out | draft output report | yes (unless 0 artifacts/decisions) | llmwiki/wiki/sources/draft/DDMMYY-<ten>.md (Delivery section) |
Rules and capabilities
- RULE-01 (MUST): Read-only — do not create or modify any wiki file
- RULE-02 (MUST): Do not set up RTK or other tools — that is the job of
new-project-setup - RULE-03 (MUST): If the wiki is empty or stale: say so clearly, do not fabricate context
- Capabilities: read the wiki + list the local skills directory; write only the draft output report in the Delivery section. No network, no installation.
Failure boundaries
llmwiki/wiki/index.mdnot present → blocked: stop, suggest runningnew-project-setup.- Harness MISSING → partial: only REPORT, propose
/harness-update, do not install automatically. - Wiki empty/stale → partial: state it clearly in the report, do not make up context.
- Skills missing → report + suggest
INVOKE: sync-template.
HOW
Main workflow
| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | repo | CHECK valid llmwiki + harness installed | ok / missing | llmwiki missing → blocked; harness missing → B01 |
| W02 | effect | wiki | Read index, 20 latest log entries, Architecture.md if present | overview | — |
| W03 | deterministic | wiki | Find 3 concepts that are [[reference]] the most, READ each file |
3 concepts | empty result → B02 |
| W04 | deterministic | machine | CHECK tools (.claude/commands/, ~/.agents/skills/) |
installed/missing | missing → B03 |
| W05 | judgment | W02–W04 | Synthesize & report | orient report | large gap → suggest onboard-codebase |
| W06 | effect | result | Output report draft (Delivery section) | draft + index + log | 0 artifact/decision → skip |
Details of each step (source of truth for W01–W05):
1. CHECK — is llmwiki valid? Is the harness installed?
test -f llmwiki/wiki/index.md && echo ok || echo "llmwiki missing — run new-project-setup instead"
# Harness enforcement (hooks chặn raw/, Origin, index-sync) có chưa:
test -f llmwiki/.claude/hooks/pre_tool_use.py && echo "harness: ON" \
|| echo "harness: MISSING — đề xuất user gọi /harness-update (skill tự cài + backfill nợ)"
If llmwiki missing: stop, suggest running new-project-setup.
If harness MISSING: only REPORT (this skill is read-only) — installing is the user's decision.
2. Read overview:
# Đọc theo thứ tự:
READ: llmwiki/wiki/index.md # danh sách toàn bộ wiki pages
READ: llmwiki/wiki/log.md (20 entries mới nhất) # recent changes
READ: llmwiki/wiki/concepts/Architecture.md # nếu tồn tại
3. Find the 3 most-referenced concepts:
grep -roh '\[\[.*?\]\]' llmwiki/wiki/ | sort | uniq -c | sort -rn | head -5
→ Pick 3 concept files from the list, READ each file. Fallback if the result is empty:
ls -t llmwiki/wiki/concepts/ | head -3
READ the first 3 files by mtime.
4. CHECK tools:
ls .claude/commands/ 2>/dev/null || echo "Claude skills: not installed"
ls ~/.agents/skills/ 2>/dev/null || echo "Agent skills: not installed"
If missing: INVOKE: sync-template (step 7 auto-installs all).
5. Synthesize & report: Print:
- What the project is, main stack (from Architecture.md or index)
- 3 most important technical points (from the concepts just read)
- Recent changes & open items (from log.md)
- Skills state (installed / missing)
- If there are large gaps in the wiki: suggest
INVOKE: onboard-codebasefor that part
Branches
| ID | Kind | Guard | Behavior | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | conditional_required | llmwiki/.claude/hooks/pre_tool_use.py not present |
report "harness: MISSING", suggest the user call /harness-update |
does not auto-install | W02 |
| B02 | recovery | grep [[...]] empty |
fallback ls -t llmwiki/wiki/concepts/ take the 3 latest files, READ the first 3 files by mtime |
concepts/ empty → report wiki empty | W04 |
| B03 | conditional_required | missing skills (Claude or Agent) | suggest INVOKE: sync-template |
— | W05 |
Validation and stopping
The W05 report must have all 5 sections; every claim traces back to a wiki file that was read. Stop immediately at W01 if llmwiki is missing.
Examples
- Positive: repo has
llmwiki/+ harness → W01 "ok" + "harness: ON" → read index/log/Architecture → 3 concept top-link → report "Project X, stack Next.js + Postgres; 3 technical points…; recent: 5 log entries; skills: installed". - Boundary/failure: repo does not have
llmwiki/wiki/index.md→ print "llmwiki missing — run new-project-setup instead" and stop, do not read further, do not invent an overview.
Delivery — Output Report
After all main skill tasks complete, write a propose draft to the wiki.
Steps
1. Build the filename:
- Format:
DDMMYY-<ten>.md DDMMYY= today (e.g.,020626for 2 June 2026)<ten>= 2–4 kebab-case words summarising what was done (e.g.,landing-page-coteccons,brand-kit-fintech,ingest-auth-spec)
2. Write llmwiki/wiki/sources/draft/DDMMYY-<ten>.md:
---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---
# DDMMYY-<ten>
**Type:** draft
**Status:** proposed
**Tags:** <skill-name>, output-report
**Proposed:** YYYY-MM-DD
## What
<One sentence — what this skill invocation produced or decided>
## Output
<Key artefacts, files created/modified, or decisions made>
## Files
| File | Action |
|------|--------|
| `path/to/file` | created / modified |
## Notes
- Invoked via: `/<skill-name>` skill
## Origin
- **Draft:** `wiki/sources/draft/DDMMYY-<ten>.md`
- **Commit:** _(filled by verify-before-commit)_
- **Date promoted:** _(filled by verify-before-commit)_
3. Update wiki index & log:
llmwiki/wiki/index.md— append one row:| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |llmwiki/wiki/log.md— append:## YYYY-MM-DD — <skill-name> — <ten>
Skip only when the skill produces zero artefacts and zero decisions (e.g., a pure display mode like
/caveman-stats).