Skip to content

/docs-keeper

Maintains the living records of a hi-vibe project: CLAUDE.md (lean project context — constraints, pitfalls, rationale), per-folder MODULE.md (detailed design), handover.md (session-to-session context log), CHANGELOG.md (substantive change history, Keep a Changelog), plus

From plugin
hi-vibe
36 skills2 agents10 commands6 hooks

Claude Code

$ npx -y skills add jx-hxxx/hi-vibe --skill docs-keeper --agent claude-code

SKILL.md

docs-keeper.SKILL.md
name: docs-keeper
description: >-
  Maintains the living records of a hi-vibe project: CLAUDE.md
  (lean project context — constraints, pitfalls, rationale), per-folder
  MODULE.md (detailed design), handover.md
  (session-to-session context log), CHANGELOG.md (substantive change
  history, Keep a Changelog), plus evidence/METRICS.md when measured
  before/after results appear. Use for /hi-vibe:init, :handover, :log,
  :recall, :welcome, and whenever the user asks to 문서 정리, 인수인계
  기록, 체인지로그 작성, CLAUDE.md 갱신, "이 폴더 문서 만들어줘", or after
  a structural change that must be reflected in docs. Also use (mode:
  recall) when the user asks about PAST decisions or work — "예전에 왜
  이렇게 했지?", "저번에 뭐까지 했더라", "이거 언제 바꿨지", "왜 이
  방식으로 결정했었지", why did we choose X — search the handover/archive/
  CHANGELOG records instead of guessing from memory.
user-invocable: false   # 사용자 표면은 /hi-vibe:* 명령 10개다. 스킬까지 슬래시 메뉴에 나오면 16개가 되어 "외울 게 적다"는 약속이 깨진다. Claude의 자동 호출은 그대로 유지된다.

docs-keeper

Each record has one job — never blur them:

| 문서 | 한 줄 정의 | 갱신 시점 | |---|---|---| | `CLAUDE.md` | 코드만 봐선 모를 것 — 제약·함정·결정 (얇게!) | 그것들이 바뀔 때 (파일 이동은 해당 없음) | | `<folder>/MODULE.md` | 그 폴더의 상세 설계 | 폴더 내용이 바뀔 때 | | `handover.md` | 세션 맥락 (왜/어디까지 했나) | 세션 끝·compact 직전 | | `CHANGELOG.md` | 결과 (무엇이 바뀌었나) | 실질 변경 직후 | | `evidence/METRICS.md` | 증명 (정량 성과를 어떻게 재현하나) | 비교 가능한 실측이 생겼을 때만 |

Templates: `templates/*.tpl` in this skill's directory. All user-facing prose you write into these docs follows the **user's conversation language** — write in Korean if the user talks to you in Korean, English if in English, and so on. Match the language they are actually using with you; do not default to any single language. (An existing doc's language wins: if the project's docs are already in one language, keep writing in that one for consistency.)

Token budget (hard rule)

CLAUDE.md is loaded into EVERY session — every line costs tokens forever. Keep it ≤ 120 lines. Detail always goes DOWN into MODULE.md, never up. Never paste MODULE.md content, code, or long lists into CLAUDE.md.

Mode: init

1. Detect state: does the project root have CLAUDE.md / handover.md / CHANGELOG.md? Which top-level folders look like feature folders (contain source files; skip `node_modules`, `.git`, `dist`, `venv`, `__pycache__`, build output)? 2. If a file already exists, NEVER overwrite silently — show what is missing versus the template and ask before touching it (AskUserQuestion). `--audit` mode: only report drift, change nothing. 3. Scaffold the LEAN default only — do NOT create every doc up front. A toy project must not start with more management docs than code.

  • CLAUDE.md: fill 개요/요구사항/실행 방법/함정/결정 기록 by asking the

user when not inferable. **Write only what the code cannot tell you.** Do NOT generate a folder listing, a dependency list, or an architecture overview — Claude can get those from `ls`/`grep` in one second, they go stale immediately, and they cost context every session. (Claude Code's own `/doctor` trims exactly that kind of derivable content and keeps pitfalls, rationale and conventions — don't generate what the platform will delete.) `상세 문서` lists only MODULE.md files that actually exist — never write a pointer to a file you didn't create. It stays empty at init.

  • handover.md from its template.
  • `CHANGELOG.md` from `templates/CHANGELOG.md.tpl` (skip if it already

exists — never overwrite). 트러블슈팅 기록이 이 플러그인의 핵심이라 CLAUDE.md·handover.md와 같은 급으로 처음부터 만든다. 지연 생성은 "첫 실질 변경 전까진 필요 없다"는 이유였지만, 그 결과 **doctor는 없다고 경고하는데 init을 다시 쳐도 안 생기는** 막다른 길이 됐다.

  • Do NOT create MODULE.md at init. 폴더별 상세 설계는 그 폴더가 실제로

복잡해졌을 때 생긴다 (step 3a). 처음부터 빈 MODULE.md를 뿌리면 아무도 안 채운 껍데기만 남는다.

  • Do NOT create `evidence/METRICS.md` at init. 비교 가능한 전후 실측이

처음 생길 때만 `templates/METRICS.md.tpl`로 만든다. 3a. Lazy docs — create each one the moment it is first needed, not before:

  • `<folder>/MODULE.md`: create when that folder's design first needs

recording — a structural change lands in it, `review` finds it has grown complex, or the user asks "이 폴더 문서 만들어줘". Pre-fill 주요 파일 from a directory listing, leave 설계 as short TODO prompts, and add a line for it under CLAUDE.md's `상세 문서` in the SAME turn (per the doc-sync contract below). A file listing belongs HERE, next to the design it explains — not in CLAUDE.md, which every session pays for. (`CHANGELOG.md`는 더 이상 여기 없다 — init이 만든다. 이미 있는 프로젝트를 위해 log 모드는 여전히 없으면 만들지만, 정상 경로에서는 그럴 일이 없다.) 4. **Create the `.hi-vibe/` marker directory** — this is what turns the hooks ON for this project (the gate). Write `.hi-vibe/initialized` with a one-line note (date + "hi-vibe initialized"), which also creates the dir. **The gate is `.hi-vibe/`, NOT handover.md** — a user may already have their own `handover.md`, so we must not key on it (that would misfire and could let a hook overwrite their file). Do not consider init complete until `.hi-vibe/` exists. 4a. **컨텍스트 정리 안내 — 한 번에 묻는다** (AskUserQuestion, 질문 3개). 모델은 자기 컨텍스트 %를 못 보므로 `context_nudge.py` 훅이 숫자를 넣고, 기준 근처에서 /compact·/clear 시점을 권하게 한다. 묻는 것: ① 켤지 — "켜기 (추천)"를 첫 선택지로 ② 몇 %부터 안내받을지 — "30% (추천)" / 50% / 70% ③ 쓰는 모델의 컨텍스트 한도 — "모름 (자동, 추천)" / 200K / 1M. 답을 `.hi-vibe/context` 한 줄로 쓴다: 끄면 `off`, 켜면 `warn=<%>`에 한도를 고른 경우만 ` window=<토큰>` (예: `warn=30 window=1000000`). 파일이 없으면 훅은 켜짐·30%·자동으로 동작한다 — init 전부터 쓰던 프로젝트도 업데이트만으로 켜진다. 한도를 "모름"으로 두면 훅이 대화 중 한 번 화면의 컨텍스트 %를 묻게 하고, 그 답으로 `window=`를 채운다. 사용자가 나중에 바꾸고 싶다고 하면 이 파일만 고친다. 5. Ensure `.env*` (see below), `.hi-vibe/`, `.repo-xray/`, `handover.md`, `handover-archive.md`, and `handover.md.lock` (the transient write-lock file for concurrent sessions) are in `.gitignore`. The two dirs are caches; `handover*` is a personal session log kept local (not shared to GitHub). The other three docs — CLAUDE.md / MODULE.md / CHANGELOG.md — ARE committed

Read more
@jx-hxxx
Ships withhi-vibe

The vibe-coding seatbelt for Claude Code — catches AI coding mistakes · 바이브코딩 안전벨트, AI 코딩 실수를 막는 플러그인

Stars on GitHub

Momentum

stars in total
3
Star history of jx-hxxx/hi-vibe on GitHub, a chart by star-history.com

Other skills on hi-vibe.

grounded-answers
Auto-invoked

grounded-answers

Grounding discipline for decisions and factual claims. Use when facing an ambiguous decision (여러 해석이 가능한 요청, 요구사항 빠짐, 되돌리기 어려운…

@jx-hxxx@jx-hxxxInstall Skill
guards-setup
Auto-invoked

guards-setup

Machine-enforced quality guards installer. Use for /hi-vibe:gate or when the user asks to 린트 설정, 타입 체크 강제, 순환의존 검사, CI 세팅,…

@jx-hxxx@jx-hxxxInstall Skill
repo-xray
Auto-invoked

repo-xray

Evidence-based repository structure analysis for Python and JavaScript/TypeScript (js/jsx/ts/tsx) projects. Runs a bundled…

@jx-hxxx@jx-hxxxInstall Skill
root-cause-first
Auto-invoked

root-cause-first

Root-cause discipline for debugging and error handling. Use whenever fixing a bug or error, writing try/except/catch, adding a…

@jx-hxxx@jx-hxxxInstall Skill
write-gate
Auto-invoked

write-gate

Use before creating or refactoring functions, helpers, types, components, or files, and after finishing code changes that need…

@jx-hxxx@jx-hxxxInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about docs-keeper.

Which coding agents can use docs-keeper?
docs-keeper installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.