원클릭으로
km
Knowledge management — query, save, update, brain management, and more. Just describe what you need.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Knowledge management — query, save, update, brain management, and more. Just describe what you need.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when you need to run a prompt under a DIFFERENT Claude Code account/subscription than the current session, e.g. offload a headless task to the work (claude-work) or second (claude-acc2) account, spread cost across another account's headless credit pool, or run under an isolated profile/auth. Not for same-account parallelism (use the Agent tool for that).
Convert a PDF datasheet (or any technical PDF) into clean, LLM-friendly Markdown with extracted images, then review the result for fidelity. Trigger when the user wants to convert/ingest a datasheet PDF to Markdown, add a datasheet to a datasheet library/repo, or make a PDF searchable for an LLM. Handles the non-obvious pymupdf failure modes (Symbol-font glyphs extracted as invisible Private-Use code points, vector figures that don't extract, collapsed tables).
Archive Outlook emails and Teams messages as a daily summary in the knowledge base. Requires Microsoft 365 MCP connector.
Extract a CV / Lebenslauf / résumé PDF into a validated JSON Resume v1.0.0 document, plus the portrait photo. Trigger when the user wants to parse a CV, ingest a Lebenslauf, or extract structured data from a résumé PDF. Output is schema-neutral (JSON Resume) — downstream skills/services then adapt it to their own format.
Read and summarize past Claude Code sessions from their JSONL files. Use when the user wants to see what happened in an old session, decide whether to resume one, or get a token/cost breakdown. Also use before expensive /resume operations to check if resuming is worth it.
Use when searching Austrian legal sources - OGH/VwGH/VfGH decisions by Geschäftszahl, federal laws (Bundesrecht konsolidiert), state laws (Landesrecht), or keyword searches in judicature. Covers RIS (Rechtsinformationssystem des Bundes) at ris.bka.gv.at.
| name | km |
| description | Knowledge management — query, save, update, brain management, and more. Just describe what you need. |
| argument-hint | question, content, brain command, help, etc. |
$ARGUMENTS
Read CONVENTIONS.md in the repo root. If missing, offer to initialize (/km init).
/km init)When the user runs /km init (or confirms after "CONVENTIONS.md missing" prompt):
ABC) — required for the author field defaultinbox/ only)CONVENTIONS.template.md from the same directory as this SKILL.md<initials> placeholder with the provided initialsCONVENTIONS.md to the repo rootinbox/ folder with a minimal _index.md (frontmatter + one-line description)CLAUDE.template.md from the same directory as this SKILL.md<initials> placeholder with the provided initialsCLAUDE.md to the repo root (skip if it already exists)schema.base.yaml and validate.py from this SKILL.md's directory into the repo (schema.base.yaml at the root; validate.py → scripts/validate.py). These are km-owned — refreshed via /km upgrade, never hand-editedschema.local.yaml at the repo root for repo-specific skip_prefixes / exempt_files (start with just a header comment; lists here EXTEND the base), and copy .pre-commit-config.template.yaml → .pre-commit-config.yamlchore: initialize knowledge base conventions/km upgrade)Refresh the km-owned schema + validator without touching repo-specific overlays:
schema.base.yaml and validate.py from this SKILL.md's directory over the repo's schema.base.yaml and scripts/validate.pyschema.local.yaml untouched (repo-owned)meta.schema_version before → after, then run uv run scripts/validate.py (fallback python3) to confirm the repo still passes with 0 errorschore(km): upgrade schema/validator to <version>@ prefix — brains and shared resources@<name> → resolve in this order: (1) brains/<name>/ if it exists, (2) shared resource <name>/ if it exists. First match wins@all → search current repo, then all brains, then all shared resources@ → current repo onlybrains/<name>/ (git submodules).git/modules/brains/<name>/FETCH_HEAD is >15 min old, run git submodule update --remote brains/<name> (fail silently)Any git submodule not under brains/ is a shared resource. Discover them from .gitmodules.
@<name> query in a session, read <name>/CLAUDE.md to learn the repo's search scope, file types, commands, and citation format. Cache this for the rest of the session<name>/CLAUDE.md is missing, fall back to recursive .md search in <name>/.git/modules/<name>/FETCH_HEAD age before updating. Default threshold: 15 min. The resource's CLAUDE.md may specify a different interval@all syncBefore searching, sync all submodules that are stale (FETCH_HEAD older than their threshold):
git submodule update --remote brains/ (fail silently)Then search in order: current repo → brains → shared resources.
[<name>@<hash>] path/file.md[<name>] path/file.md (or as specified in the resource's CLAUDE.md)brain add <url> [name] → git submodule add <url> brains/<name>, validate CONVENTIONS.md exists, git config submodule.recurse true, commitbrain list → table: name, URL, commit, last updated. Discover shared resources from .gitmodules and list them in a separate sectionbrain remove <name> → confirm, git submodule deinit -f + git rm -f, commitbrain fix @<name> ...)Errors in a foreign brain are fixed as a PR against the brain's own repo, never silently overridden in the parent.
Trigger: user says e.g. "fix this in @" / "das in @ stimmt nicht", or an @-query would otherwise have to cite a known wrong statement — offer the PR instead. For shared resources, defer to the resource's CONTRIBUTING.md or CLAUDE.md if present.
Show the proposed diff and wait for explicit OK before any git write. Then, inside brains/<name>/:
gh auth status — abort if not authenticatedgit fetch origin && git checkout main && git pull --ff-onlyfix/km-<slug> (or docs/km-<slug> for non-bug edits)CONVENTIONS.md for frontmatter/naming and the Ripple update rules (see "Ripple update" below)git push -u origin <branch> — if denied, gh repo fork --remote=false, push to fork, PR from forkgh pr create — body must paraphrase, not paste any parent-repo source that surfaced the errormain, never --force pushgit submodule update --remote brains/<name> from the parentCONVENTIONS.md, ask before editing — rules may live in README or CONTRIBUTINGstatus: obsolete/superseded unless asked)_index.md filesrelated: / supersedes: cross-referencesResponse: summary, sources (with paths), recency, gaps, related topics.
After answering, check: did the response synthesize information from 3+ sources or establish connections not found in any single file? If yes, offer to save the synthesis as a type: summary document. Use the standard save flow (frontmatter, folder placement, ripple update). The related: field should list all source files used in the synthesis.
Do not offer for simple lookups or single-source answers.
All writes follow CONVENTIONS.md for frontmatter, folder placement, and naming. Always confirm before writing. Commit with docs(<scope>): <description>.
status: draft. Never set status: accepted without explicit user confirmation — always ask first.inbox/type: decisiondate field, show diffstatus: obsolete or superseded + superseded_by: field. Never deleteAfter writing the main file, update related pages before committing:
project: > shared tags > same folder). Add the new file's repo-root-relative path to their related: frontmatter (create the field if absent). Only add genuinely useful links_index.md: Ensure the file is listed in its folder's _index.md and in the matching project: folder's _index.md (if they exist — do not create new _index.md)Ripple is one level deep — never cascade into further ripple updates. Skip ripple when no tags, related:, or project: fields changed and no new headings were added.
/km lint)Periodic health check for knowledge base consistency. Run all checks and report findings grouped by severity.
Collect only git-tracked .md files via git ls-files -z '*.md'. Exclude files exempt from frontmatter per CONVENTIONS.md, plus _index.md files, brains/, and all shared resource submodules (they have their own conventions).
Prefer a machine-readable validator when present. If the repo root has schema.base.yaml (or a legacy schema.yaml) and scripts/validate.py, run uv run scripts/validate.py (fallback: python3 scripts/validate.py) and use its output verbatim as the 🔴 Errors section — it is deterministic, merges schema.local.yaml over the base, and also catches non-/km writers. The prose checks below are the fallback for repos without a validator, and still supply the 🟡 Warnings / 🔵 Suggestions the script does not cover.
🔴 Errors (break conventions — must fix):
type or status values (not in CONVENTIONS.md schema)superseded status without superseded_by: field (or vice versa)supersedes: B.md, file B must have status: superseded and superseded_by: A.mdrelated:, supersedes:, superseded_by: pointing to non-existent files. Resolve repo-root-relative first, then file-relative[text](path.md)) to local files🟡 Warnings (reduce quality — should fix):
status: draft documents with no git commits touching them in >30 days (use git log -1 --format=%ct -- <file>).md files but no _index.md_index.md that doesn't link all non-index .md files in its folderinbox/ with first git commit date >14 days ago🔵 Suggestions (nice to fix):
related: references AND not listed in any _index.mdtags: [] array## KB Lint Report — <date>
### 🔴 Errors (<count>)
...
### 🟡 Warnings (<count>)
...
### 🔵 Suggestions (<count>)
...
### Summary
<total files> files, <errors> errors, <warnings> warnings, <suggestions> suggestions