Skip to main content

update-project-docs

MANDATORY for every coding agent (Claude Code, Codex, or any other) — keep this repository's documentation in sync after any change to behavior, configuration, interfaces, events, schema, or features. Use automatically (without being asked) at the end of ANY change-set that adds or alters an env var, event type, hook behavior, session/agent state transition, API route or response shape, DB schema, WebSocket message, MCP tool, CLI command, or user-facing feature — and whenever the user asks to "update the docs / README / wiki / architecture". Knows the full doc surface (README + CN/VN/KO/ES, ARCHITECTURE, root index.html, wiki + i18n, server/client READMEs, docs/*) and which docs each kind of change touches.

설치로 이동

소스 정보

저장소
hoangsonww/Claude-Code-Agent-Monitor
최근 소스 활동
2026년 9월 13일 06:04
감지된 SKILL.md 언어
영어
스타
1,004
포크
234

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
4 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
update-project-docs
description
MANDATORY for every coding agent (Claude Code, Codex, or any other) — keep this repository's documentation in sync after any change to behavior, configuration, interfaces, events, schema, or features. Use automatically (without being asked) at the end of ANY change-set that adds or alters an env var, event type, hook behavior, session/agent state transition, API route or response shape, DB schema, WebSocket message, MCP tool, CLI command, or user-facing feature — and whenever the user asks to "update the docs / README / wiki / architecture". Knows the full doc surface (README + CN/VN/KO/ES, ARCHITECTURE, root index.html, wiki + i18n, server/client READMEs, docs/*) and which docs each kind of change touches.
# Update Project Docs This repository keeps an unusually large, multi-surface, multi-language doc set. Docs drift silently because a change often belongs in 6–10 files across 5 languages plus two HTML pages. This skill encodes **which docs exist, which change-types touch which docs, and how to propagate consistently** (including the wiki i18n + cache-bump dance). Authoritative inventory with exact section anchors lives in [`references/doc-map.md`](references/doc-map.md) — read it when deciding where a specific change lands. The repo rules [`.claude/rules/docs-markdown.md`](../../rules/docs-markdown.md) ("update all affected docs together"), [`.claude/rules/wiki-i18n.md`](../../rules/wiki-i18n.md), and [`.claude/rules/i18n-parity.md`](../../rules/i18n-parity.md) are binding. Translation propagation — the mirrored READMEs, the wiki bundles, and the UI keys — is owned by the [`i18n-parity`](../i18n-parity/SKILL.md) skill; run it whenever this skill's mapping sends you into a localized file. ## When to update (including without being asked) Update docs **in the same change-set (PR/commit) as the code**, before claiming done — do not wait for the user to ask — whenever the change is observable from outside the module: - **New/changed env var** → every env-var table + `.env.example`. - **New event type** (e.g. an `events.event_type` value) → every event-type list/table. - **New/changed hook behavior or session/agent state transition** → hook docs + every state-machine diagram. - **New/changed API route or response shape** → API docs + route tables + OpenAPI. - **DB schema change** (table/column/index) → database docs + ERD. - **New WebSocket message type** → client/server WS docs. - **New MCP tool** → MCP docs. - **New CLI command / script / renamed file referenced in docs** → command lists + onboarding guides. - **New user-facing feature / page / background service** → feature tables + landing + wiki + architecture. **Do NOT** auto-update for: pure internal refactors with no observable/interface/config change, test-only changes, comment/typo fixes, or work the user explicitly scoped as "no docs". When unsure whether a change is observable, check the mapping below; if it touches any row, update. ## Change → docs mapping | Change type | Docs to update | |---|---| | **Env var** | `README.md`, `README-CN.md`, `README-VN.md`, `README-KO.md`, `README-ES.md` (env tables), `ARCHITECTURE.md` (inline), `server/README.md`, `wiki/index.html` (env table) + wiki i18n, `.env.example` | | **Event type** | `README.md`+CN+VN+KO+ES (hook-event table), `ARCHITECTURE.md` (Event types line), `docs/PLUGINS.md`, `wiki/index.html` + i18n, `docs/DATABASE.md` (if it enumerates types) | | **Hook behavior / state transition** | `docs/HOOKS.md`, state-machine **mermaid** diagrams in `README.md`+CN+VN+KO+ES + `server/README.md` + `docs/DATABASE.md` + `wiki/index.html`, `ARCHITECTURE.md` (hooks.js row) | | **API route / response** | `docs/API.md`, `server/README.md` (routes), `ARCHITECTURE.md` (routes row), `server/openapi*.js` (code) | | **DB schema** | `docs/DATABASE.md`, `ARCHITECTURE.md` (ERD/schema) | | **WebSocket message** | `client/README.md` (Event Types), `server/README.md`, `wiki/index.html` | | **MCP tool** | `mcp/README.md`, `docs/MCP.md` | | **Feature / page / background service** | `README.md`+CN+VN+KO+ES (feature table + data-flow list), `ARCHITECTURE.md` (module table), `index.html` (landing blurb), `wiki/index.html` + i18n, `server/README.md` or `client/README.md` | | **CLI command / script** | `README.md` commands, `CLAUDE.md` / `AGENTS.md`, `INSTALL.md` / `SETUP.md` | | **New language** | Run the [`i18n-parity`](../i18n-parity/SKILL.md) skill and work through its [new-language checklist](../i18n-parity/references/new-language-checklist.md) — it covers `docs/I18N.md`, `client/src/i18n/**`, the switchers, `format.ts`, `README-<XX>.md`, and the full wiki bundle | ## Procedure 1. **Classify** the change against the table above. A change can hit multiple rows (a new feature with a new env var hits both). 2. **Write the canonical English version first** — usually `README.md` and/or `ARCHITECTURE.md`. Get the wording right there; it anchors everything else. 3. **Propagate to translations** `README-CN.md`, `README-VN.md`, `README-KO.md`, and `README-ES.md`: mirror the SAME edits at the corresponding sections. Keep identifiers, env-var names, event names, and code in English; translate only prose. Render "Waiting" as **等待中** (zh) / **Đang chờ** (vi) / **대기 중** (ko) / **En espera** (es). Match each file's existing terminology — read the neighboring lines first. The [`i18n-parity`](../i18n-parity/SKILL.md) skill owns this propagation and its glossary. 4. **Landing page** `index.html`: one concise marketing sentence in the most relevant existing feature card — light touch, no new sections. 5. **Wiki** `wiki/index.html`: add the detailed prose/table/diagram **at the length and in the position its neighbours already use** (see *Match the wiki's existing shape* below), then follow `.claude/rules/wiki-i18n.md` — add `zh` + `vi` + `ko` + `es` entries for every new English string to `wiki/i18n-content.js`, then **bump the cache**: increment `CACHE_NAME` in `wiki/sw.js` and the `i18n-content.js?v=` query string in `wiki/index.html`. Skipping the cache bump means returning visitors never see the update. 6. **Area READMEs / docs/**: update `server/README.md`, `client/README.md`, and the relevant `docs/*.md` per the mapping. 7. **Diagrams**: when a state transition changes, edit every mermaid `stateDiagram-v2` block that models it (they are duplicated across README/CN/VN/KO/ES, server/README, docs/DATABASE, wiki). Keep transition labels consistent. ## Match the wiki's existing shape The wiki is a designed page, not a changelog: several of its blocks live in fixed-size boxes. A block written at 2–3x the length of its neighbours breaks the layout, so **measure before you write, and copy the pattern you find**. - **Feature carousel cards** (`#feature-carousel .feature-card`) share one fixed-height box. All 39 of them are a single `<p>`; the group runs **209–628 characters with a ~494 median**, so write to roughly **450–550 characters (~65–80 words)** — one paragraph, no lists, no sub-headings, no exhaustive enumeration of every keybinding and edge case. Say what the feature is and the two or three things that make it distinctive; the depth belongs in the feature's own section further down the page. - **Screenshot captions** (`.screenshot-caption`) run **~150–300 characters**: the emoji, the bolded screen name, an em dash, one dense sentence. - **Card order is editorial, not chronological.** A new feature does NOT go first. Insert it where it belongs by importance among the existing cards — a newly shipped convenience feature belongs in the middle or later half of the carousel, not ahead of the dashboard, board, and session cards. - Deep, unabridged prose (full keyboard maps, degradation behaviour, group-by- group breakdowns) belongs in a normal `<section>` with `h3` + `<ul>`, never crammed into a card or caption. - Run `.claude/skills/update-project-docs/scripts/wiki-block-lengths.sh` and confirm your block sits inside the group's budget before finishing. - Changing wiki **CSS**? Verify it in a browser that ran `script.js` (see `.claude/rules/wiki-i18n.md`) — the scroll-reveal pass adds classes at runtime, so a `:not([class])` selector that looks right in the file and in jsdom can apply to nothing on the live page. - The same rule of thumb applies everywhere on the page: before adding a block of any kind, read the two blocks around it and match their length, tone, markup, and heading depth. Do not invent a new pattern for one entry. ## Verify (do not skip) - **Coverage**: run `scripts/doc-coverage.sh <new-term> [...]` (e.g. the new env var / event type / identifier) and confirm every doc the mapping flags shows a HIT. The matrix is advisory — not every term belongs in every file — but a flagged doc reading `0` is a miss to fix. - **Tables**: markdown tables stay pipe-balanced (header column count == every row). - **Mermaid**: each edited block still parses (valid `source --> target: label`). - **i18n**: every new wiki English string resolves to `zh`, `vi`, `ko`, and `es`; cache versions bumped — `CACHE_NAME` in `wiki/sw.js` plus the `?v=` query strings, which must match between `wiki/index.html` and the service-worker `PRECACHE` list (it matches on the full URL, query included, so a stale entry is simply never served). - **Wiki block sizing**: `.claude/skills/update-project-docs/scripts/wiki-block-lengths.sh` exits 0 — no carousel card or caption is an outlier, and any new card is placed by importance rather than dropped at the front. - **Format/tests**: run `npm run format` (or `prettier --check` on touched files); for any code touched, run the verification from `CLAUDE.md` (`npm run test:server` / `test:client` / `mcp:typecheck`). - State exactly which docs were updated and which were intentionally skipped (with reason), mirroring the repo's verification policy. ## Tips - The fastest way to find where something already lives: `grep -n "<existing-neighbor-term>" <doc>` (e.g. grep an adjacent env var to find the env table). `references/doc-map.md` lists the stable anchors per file. - Parallelize translations + HTML across subagents when the change is large, but write the canonical English edit yourself first so the translations have a faithful source. - One language/area per subagent keeps edits reviewable and tables un-corrupted.
GitHub에서 보기