{"_id":"@dzangolab/repokb","_rev":"8-b840546cd666366ab1f586fe2aac474d","name":"@dzangolab/repokb","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"@dzangolab/repokb","version":"0.1.0","author":{"url":"https://dzango.com","name":"Dzango Technologies","email":"info@dzango.com"},"license":"MIT","_id":"@dzangolab/repokb@0.1.0","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"homepage":"https://github.com/dzangolab/repokb","bin":{"repokb":"dist/index.js"},"dist":{"shasum":"bb5078e33d0c5ba269abe93b28826021f3f97794","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.1.0.tgz","fileCount":40,"integrity":"sha512-ZKzRzOf0/vi+pAF5+sYwPeQEkIiCmONg+DrNmPDdBiSJwoQRrV/DGZ60vemYRAjYPBKaPJcOW1ITO8ct/YA5/Q==","signatures":[{"sig":"MEQCIBJeqZFEZd3iDmLS0zs+uN32sLwrhMCCly2Dnj8X3delAiAftg7aPLEaXEE26xt0TOsVAIaoT7VYdAUUWmnYMmzEkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102349},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.12"},"gitHead":"b3b2f9a80932ecc6da89b9a763618f0dc67e4681","scripts":{"dev":"tsx src/index.ts","build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","start":"node dist/index.js","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"},"_npmVersion":"10.9.8","description":"CLI tool to initialize a knowledge base within a project directory","directories":{},"_nodeVersion":"22.23.2","dependencies":{"commander":"15.0.0","@inquirer/prompts":"8.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.12","esbuild":"0.28.2","typescript":"7.0.2","@types/node":"20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/repokb_0.1.0_1787642191181_0.40104983140005124","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dzangolab/repokb","version":"0.1.1","author":{"url":"https://dzango.com","name":"Dzango Technologies","email":"info@dzango.com"},"license":"MIT","_id":"@dzangolab/repokb@0.1.1","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"homepage":"https://github.com/dzangolab/repokb","bin":{"repokb":"dist/index.js"},"dist":{"shasum":"8330f186ff27e5fb3b2c84b75acd4acd0bd7d143","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.1.1.tgz","fileCount":40,"integrity":"sha512-bbBk85YrUM7d3mSNYx1fiWpx/jgsGX1IXS4oqIRRahGdlAk2MNbDNOrRS6sXHSRlfSdCP2B2jZzb8hHVfbCEHg==","signatures":[{"sig":"MEUCICnaWw094btjzt3O2QsgpopFOA7I91/VEqfr/Dg5SRktAiEA/74lBW66qJVI3IJVSAC+wq8paK9O/DRqaAoe6FNBsec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102220},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.12"},"gitHead":"07c97245bcdfb3bdd6dcb3b1e87e30825ebf8f1d","scripts":{"dev":"tsx src/index.ts","build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","start":"node dist/index.js","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"},"_npmVersion":"10.9.8","description":"CLI tool to initialize a knowledge base within a project directory","directories":{},"_nodeVersion":"22.23.2","dependencies":{"commander":"15.0.0","@inquirer/prompts":"8.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.12","esbuild":"0.28.2","typescript":"7.0.2","@types/node":"20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/repokb_0.1.1_1787646182415_0.9141226441856747","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dzangolab/repokb","version":"0.1.2","author":{"url":"https://dzango.com","name":"Dzango Technologies","email":"info@dzango.com"},"license":"MIT","_id":"@dzangolab/repokb@0.1.2","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"homepage":"https://github.com/dzangolab/repokb","bin":{"repokb":"dist/index.js"},"dist":{"shasum":"3522c1799327319d0b51e9d6adf5492542e8b03d","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.1.2.tgz","fileCount":40,"integrity":"sha512-BYK5Yh2xGeDggTXBmTeywg34dmvY5tX3ICPEilNbfuhzz+fVd0iHCgp/ssUc8ZLB7IiLEzcJZoikmysHhdCDVA==","signatures":[{"sig":"MEYCIQDBgRLBoHqYVPuhQZ9i4dLf6zB2lUTLN+ePjMiSL79ehQIhAKKrgF3bpaEqlGCuh3RUy+RIs2653la6zgUY9ShXa7H9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102277},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.12"},"gitHead":"162fe9bd780c35aa159a5d77be1635b3c0330e23","scripts":{"dev":"tsx src/index.ts","build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","start":"node dist/index.js","prepare":"npm run build","release":"shipjs prepare","typecheck":"tsc --noEmit"},"_npmUser":{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"},"_npmVersion":"10.9.8","description":"CLI tool to initialize a knowledge base within a project directory","directories":{},"_nodeVersion":"22.23.2","dependencies":{"commander":"15.0.0","@inquirer/prompts":"8.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.12","shipjs":"0.28.4","esbuild":"0.28.2","typescript":"7.0.2","@types/node":"20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/repokb_0.1.2_1787655322354_0.4044083679156898","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dzangolab/repokb","version":"0.1.3","author":{"url":"https://dzango.com","name":"Dzango Technologies","email":"info@dzango.com"},"license":"MIT","_id":"@dzangolab/repokb@0.1.3","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"homepage":"https://github.com/dzangolab/repokb","bin":{"repokb":"dist/index.js"},"dist":{"shasum":"ea009e92645fdfb7c3e461fc99de5b43cf6476df","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.1.3.tgz","fileCount":40,"integrity":"sha512-4N/SUAhiYgkqy10Mkq/t/7PrfC0KKLzB4pMnOa2VWWCBWoJuZH3rgHDSh2VfwN9TOjGmqdtpsp+USgbVfiHGWg==","signatures":[{"sig":"MEUCIG3FGVBleCRChOUXWiWAtwztehR2Zh/cUprWuG6HqOWYAiEA773n806e3afb8Rpbw4gI87rI+JISzUgwNFkQHcy3+mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102258},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.12"},"gitHead":"925bc3c86e664baf0cc0b659d12340cc68f7a6a8","scripts":{"dev":"tsx src/index.ts","build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","start":"node dist/index.js","prepare":"npm run build","release":"shipjs prepare","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11b7f83e-5469-499b-ba6f-eb424387f280"}},"_npmVersion":"12.0.2","description":"CLI tool to initialize a knowledge base within a project directory","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"15.0.0","@inquirer/prompts":"8.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.12","shipjs":"0.28.4","esbuild":"0.28.2","typescript":"7.0.2","@types/node":"20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/repokb_0.1.3_1787655619671_0.26370830069858164","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dzangolab/repokb","version":"0.2.0","author":{"url":"https://dzango.com","name":"Dzango Technologies","email":"info@dzango.com"},"license":"MIT","_id":"@dzangolab/repokb@0.2.0","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"homepage":"https://github.com/dzangolab/repokb","bin":{"repokb":"dist/index.js"},"dist":{"shasum":"8d102a2bac584bd7364f8bd24d458b3f4350fc10","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.2.0.tgz","fileCount":42,"integrity":"sha512-6DqNJ4Ljgo/HNykTH9tyHXOYz3sWAyCyeG1qj0BLrdhL2Jeu+EV513+RuEsQLryxfg/rsonzZTOUwIk6Qvsy6A==","signatures":[{"sig":"MEUCIA1o70AYporxR3MDSPTRuJQDdybS5648brHk24ykYSJ8AiEA653mO3bKbmPf6cWe+x6Cw7i8O2nMeWgjEWiPfDnS/z8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114343},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.12"},"gitHead":"35bbd248f674c03cbf0d03fd614969b8a4f601ef","scripts":{"dev":"tsx src/index.ts","build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","start":"node dist/index.js","prepare":"npm run build","release":"shipjs prepare","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11b7f83e-5469-499b-ba6f-eb424387f280"}},"_npmVersion":"12.0.2","description":"CLI tool to initialize a knowledge base within a project directory","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"15.0.0","@inquirer/prompts":"8.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.12","shipjs":"0.28.4","esbuild":"0.28.2","typescript":"7.0.2","@types/node":"20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/repokb_0.2.0_1787826094434_0.19152314564761896","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@dzangolab/repokb","version":"0.3.0","author":{"url":"https://dzango.com","name":"Dzango Technologies","email":"info@dzango.com"},"license":"MIT","_id":"@dzangolab/repokb@0.3.0","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"homepage":"https://github.com/dzangolab/repokb","bin":{"repokb":"dist/index.js"},"dist":{"shasum":"ba34d1446aed435f6e5eb4fce666364e2094a2c3","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.3.0.tgz","fileCount":43,"integrity":"sha512-h02NNnccnBHgJ5A+X7n4OG19HYLSGsMCHa2Z6cj78yjX6jd9Mc9dAghhPp/x1gO2kjhloTpleIlt9DGbASOemw==","signatures":[{"sig":"MEUCIQDt2TwxAXSFzPFkJAnU0kFD8lkYLuBBNoom+kLxOiFfjwIgM5ObWthSYRnu3tqjCCLGt30j0zys2nRdwBRew8az7Bg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122159},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.12"},"gitHead":"bdb3153fab5e380d8def6760b7f28a66f1d04daa","scripts":{"dev":"tsx src/index.ts","build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","start":"node dist/index.js","prepare":"npm run build","release":"shipjs prepare","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11b7f83e-5469-499b-ba6f-eb424387f280"}},"_npmVersion":"12.0.2","description":"CLI tool to initialize a knowledge base within a project directory","directories":{},"_nodeVersion":"24.19.0","dependencies":{"commander":"15.0.0","@inquirer/prompts":"8.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.12","shipjs":"0.28.4","esbuild":"0.28.2","typescript":"7.0.2","@types/node":"20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/repokb_0.3.0_1788350329340_0.9238022025865458","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@dzangolab/repokb","version":"0.4.0","author":{"url":"https://dzango.com","name":"Dzango Technologies","email":"info@dzango.com"},"license":"MIT","_id":"@dzangolab/repokb@0.4.0","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"homepage":"https://github.com/dzangolab/repokb","bin":{"repokb":"dist/index.js"},"dist":{"shasum":"181d3518284c60c6f6726e6ed033ace858f4dcea","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.4.0.tgz","fileCount":44,"integrity":"sha512-xOazY5i7ZQIrEpDJpkGZZnyEJT/ev+OLbs9+k7i81mi6lXvw7qG4LfI7oCO4Ylsv9O3CioJpARyEucFtZv3QRQ==","signatures":[{"sig":"MEYCIQDVdJ7L+8EIeISgJCgVnzry5abX+SUBrLd+UQLX2AQz9QIhAMkWkMhZ9CMevXaXENi01HyvYfuwGo6dg5QIgId6MhD7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140562},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.12"},"gitHead":"50e53513cc368d6f725935d934287a76dd222bce","scripts":{"dev":"tsx src/index.ts","build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","start":"node dist/index.js","prepare":"npm run build","release":"shipjs prepare","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11b7f83e-5469-499b-ba6f-eb424387f280"}},"_npmVersion":"12.0.2","description":"CLI tool to initialize a knowledge base within a project directory","directories":{},"_nodeVersion":"24.20.0","dependencies":{"commander":"15.0.0","@inquirer/prompts":"8.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.23.12","shipjs":"0.28.4","esbuild":"0.28.2","typescript":"7.0.2","@types/node":"20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/repokb_0.4.0_1789040863387_0.24064364010430261","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@dzangolab/repokb","version":"0.5.0","description":"CLI tool to initialize a knowledge base within a project directory","type":"module","homepage":"https://github.com/dzangolab/repokb","author":{"name":"Dzango Technologies","email":"info@dzango.com","url":"https://dzango.com"},"main":"dist/index.js","types":"dist/index.d.ts","bin":{"repokb":"dist/index.js"},"scripts":{"build":"tsc && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --packages=external --sourcemap --outfile=dist/index.js","dev":"tsx src/index.ts","start":"node dist/index.js","typecheck":"tsc --noEmit","prepare":"npm run build","release":"shipjs prepare"},"license":"MIT","publishConfig":{"access":"public"},"engines":{"node":">=20.12"},"dependencies":{"@inquirer/prompts":"8.6.0","commander":"15.0.0"},"devDependencies":{"@types/node":"20.19.43","esbuild":"0.28.2","shipjs":"0.28.4","tsx":"4.23.12","typescript":"7.0.2"},"gitHead":"23685b23bd1d7835ac61cb66a6a25e18bcbb905d","_id":"@dzangolab/repokb@0.5.0","_nodeVersion":"24.20.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-nZ6WvpAOcswcj6mITXB1Lfz4n9CZKTwsXNpBfBpfsWlxLvnm6O7qtXjdVcIwK5qOB1a0KC/3WMMVbUJn/K9jhw==","shasum":"a7808195a4700c08350954027877a5d20ee42304","tarball":"https://registry.npmjs.org/@dzangolab/repokb/-/repokb-0.5.0.tgz","fileCount":46,"unpackedSize":172797,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD8L40iswptRyZsZIJebri/UJXRJurak1au5cIyZ2O0VQIhAM7JM5gdJrw3unG6BZDB04JzCF8Fk7bda6rcnfDfitF5"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11b7f83e-5469-499b-ba6f-eb424387f280"}},"directories":{},"maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/repokb_0.5.0_1789370122157_0.4967870523136635"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-25T07:16:31.056Z","modified":"2026-09-14T07:15:22.468Z","0.1.0":"2026-08-25T07:16:31.365Z","0.1.1":"2026-08-25T08:23:02.555Z","0.1.2":"2026-08-25T10:55:22.540Z","0.1.3":"2026-08-25T11:00:19.834Z","0.2.0":"2026-08-27T10:21:34.594Z","0.3.0":"2026-09-02T11:58:49.486Z","0.4.0":"2026-09-10T11:47:43.580Z","0.5.0":"2026-09-14T07:15:22.310Z"},"author":{"name":"Dzango Technologies","email":"info@dzango.com","url":"https://dzango.com"},"license":"MIT","homepage":"https://github.com/dzangolab/repokb","description":"CLI tool to initialize a knowledge base within a project directory","maintainers":[{"name":"sudeepdzangolab","email":"sudeep@dzangolab.com"}],"readme":"# @dzangolab/repokb\n\nCLI tool that drops a **knowledge base** into a project: a `knowledge/` directory in [Open Knowledge Format](https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md) (OKF) v0.2, five Claude Code skills that read from and write to it, and a `REPOKB.md` the project's `CLAUDE.md` imports so every session consults it.\n\nThe code is the source of truth for _what_ the system does. The knowledge base is the source of truth for _why_, _how we learned it_, and _what to watch out for_.\n\n## Usage\n\nRequires Node.js 20.12 or later. Run it from the root of the project you want to\ndocument - nothing to install:\n\n```bash\nnpx @dzangolab/repokb init\n```\n\nTo get the `repokb` binary on your `PATH` instead:\n\n```bash\nnpm install -g @dzangolab/repokb\nrepokb init\n```\n\n## Scaffolding a knowledge base\n\n`repokb init` asks where the knowledge base should live, defaulting to\n`knowledge/`, then writes four things: the bundle itself, the five skills as a\n`repokb` plugin under `.claude/skills/repokb/`, a `REPOKB.md` at the project\nroot referenced from the project's `CLAUDE.md` as `@REPOKB.md`, and a\n`.gitignore` entry keeping `_log/` out of version control.\n\n`REPOKB.md` holds the instructions rather than injecting them into `CLAUDE.md`,\nso updating them is a file replacement instead of a merge into a file you own.\n\n### `repokb init`\n\n| Option             | Effect                                                                          |\n| ------------------ | ------------------------------------------------------------------------------- |\n| `-d, --dir <name>` | Directory to hold the knowledge base. Default `knowledge`, and skips the prompt |\n| `-b, --bootstrap`  | Hand off to Claude Code when the scaffolding is done, skipping the prompt       |\n| `--no-bootstrap`   | Scaffold only, and never hand off                                               |\n| `-h, --help`       | Show help for the command                                                       |\n| `-V, --version`    | Print the version (on `repokb` itself)                                          |\n\n```bash\nrepokb init --dir second-brain\n```\n\nThe name must be a single directory name - no path separators, not `.` or `..`,\nnot `wiki` (used inside the bundle), and not starting with `_` (which marks an\noperational directory). Every template reference is rewritten to match the name\nyou choose, so `--dir second-brain` produces skills that talk about\n`second-brain/`, not `knowledge/`.\n\n## Resyncing a knowledge base\n\n`repokb resync` finds the knowledge base in the current directory, installs any\nskill the project does not have yet - so a knowledge base scaffolded by an older\nversion gains `/repokb:resync` - and hands off to Claude Code to run it. Skills\nalready present are kept as they are.\n\n### `repokb resync`\n\n| Option             | Effect                                                                    |\n| ------------------ | ------------------------------------------------------------------------- |\n| `-d, --dir <name>` | Directory holding the knowledge base. Default: detected                   |\n| `--handoff`        | Hand off to Claude Code when the skills are in place, skipping the prompt |\n| `--no-handoff`     | Install missing skills only, and never hand off                           |\n| `-h, --help`       | Show help for the command                                                 |\n\nDetection looks for a top-level directory holding an `index.md` with\n`okf_version` and a `CLAUDE.md`. Pass `--dir` when there is more than one.\n\n## The skills\n\n`repokb init` installs all five as a single Claude Code plugin, so they share\nthe `repokb` namespace and are invoked as `/repokb:<skill>`:\n\n```\n.claude/skills/repokb/\n  .claude-plugin/plugin.json\n  skills/\n    load/ init/ resync/ ingest/ ingest-conversation/\n```\n\nClaude Code discovers the plugin when a session starts - restart any session\nthat was already running before `repokb init`.\n\n### `/repokb:load` - read the knowledge base\n\nLoads the index hierarchy first, then only the concepts that matter, and reports\nthe trust and freshness of everything it loaded.\n\n| Invocation                      | Loads                                                           |\n| ------------------------------- | --------------------------------------------------------------- |\n| `/repokb:load`                  | Indexes plus the orientation set, from `wiki/`                  |\n| `/repokb:load <topic>`          | Indexes, then everything relevant to `<topic>`                  |\n| `/repokb:load --section <name>` | Every concept in one section, e.g. `--section architecture`     |\n| `/repokb:load --full`           | Every concept document in the bundle, `_sources/` included      |\n| `/repokb:load --audit`          | Health report only: staleness, trust, index drift, broken links |\n\nUse it at the start of a session, before answering questions about how the repo\nworks, and before changing an unfamiliar part of it.\n\n### `/repokb:init` - bootstrap from the repository\n\nRun once, after scaffolding. Researches the codebase in three passes - map the\nsurfaces, trace representative end-to-end flows, then verify against tests and\nhistory - and writes concept documents across every section the code supports:\narchitecture, components, CI, security, operations, local setup, conventions,\ntroubleshooting and the rest. Every material statement is cited to a\n`repo://path#L12-L48` span, and you are asked only what the code genuinely\ncannot answer. It writes as soon as it has a plan - the bundle is empty, so\nthere is nothing to overwrite, and every page it writes is a draft until a\nhuman reviews it.\n\n| Invocation                      | Effect                                                               |\n| ------------------------------- | -------------------------------------------------------------------- |\n| `/repokb:init`                  | Research, plan, write                                                |\n| `/repokb:init --dry-run`        | Produce the plan and stop; write nothing                             |\n| `/repokb:init --section <name>` | Bootstrap one section only, e.g. `--section ci`                      |\n| `/repokb:init --depth <level>`  | How far the tracing pass goes: `deep` (default), `standard`, `quick` |\n| `/repokb:init --no-questions`   | Never ask - open questions are written into the documents instead    |\n\n### `/repokb:resync` - bring the wiki back in line with the code\n\nRun whenever the code has moved on. Re-explores the repository and compares it\nwith the wiki in two ways. Each page's `generated.at` is its baseline, and git\nshows what changed in the files it cites since then. Separately, the surfaces\n`/repokb:init` would map are checked against every cited path, to find systems\nno page covers. Each page is then left alone, has its citations re-anchored, is\ncorrected, or is deprecated, and uncovered systems get new draft pages.\n\nIt changes a page only on evidence that its code changed, edits in place rather\nthan regenerating, and carries forward the rationale the code cannot recover.\nPages that are human-reviewed or human-written are never edited directly - the\nchange is proposed with its evidence and applied only once you confirm it.\n`_sources/` is out of scope: re-run `/repokb:ingest` to refresh external\nmaterial.\n\n| Invocation                        | Effect                                                              |\n| --------------------------------- | ------------------------------------------------------------------- |\n| `/repokb:resync`                  | Detect, research, plan, write                                       |\n| `/repokb:resync --dry-run`        | Produce the drift report and plan; write nothing                    |\n| `/repokb:resync --section <name>` | Resync one section only, e.g. `--section ci`                        |\n| `/repokb:resync --since <ref>`    | Use a git ref as the baseline for every page, e.g. `--since v0.4.0` |\n| `/repokb:resync --no-questions`   | Never ask - proposals for reviewed pages are reported, not applied  |\n\n### `/repokb:ingest` - pull in external material\n\nExtracts a source, distills it into concept documents under\n`knowledge/_sources/external/`, archives the original in `knowledge/raw/`, and\nupdates the affected `index.md` and the day's log file.\n\n| Invocation                                      | Effect                                                 |\n| ----------------------------------------------- | ------------------------------------------------------ |\n| `/repokb:ingest <url>`                          | Web page or online document                            |\n| `/repokb:ingest <path>`                         | Local file: pdf, docx, image, md, txt, csv, video      |\n| `/repokb:ingest <path-or-url> --into <section>` | Route to a section other than `_sources/external`      |\n| `/repokb:ingest <url> --deep`                   | Follow and ingest linked sub-pages of a doc site       |\n| `/repokb:ingest <path> --verbatim`              | Also keep a full extraction alongside the distillation |\n\nAn ADR is archived verbatim under `knowledge/raw/adrs/` whatever its status, and\nstays there - the record itself never becomes a wiki document. Only a decided\none - accepted, rejected, deprecated, or accepted - is then distilled into\n`_sources/`, with the wiki concepts it bears on updated to match. An ADR still\nunder discussion is archived and nothing else, so the wiki never presents a\nproposal as settled.\n\n### `/repokb:ingest-conversation` - capture a working session\n\nDistills what a session established - decisions made, constraints discovered,\nbugs diagnosed, approaches ruled out - into concept documents, and writes a\nsession record under `knowledge/_sources/conversations/`. The conversation\nitself is archived as verbatim as it can be under `knowledge/raw/conversations/`, named\nto match its session record, so the exact wording survives the distillation.\n\n| Invocation                                   | Effect                                                                   |\n| -------------------------------------------- | ------------------------------------------------------------------------ |\n| `/repokb:ingest-conversation`                | Triage the whole session and write what is durable                       |\n| `/repokb:ingest-conversation <focus>`        | Only what relates to `<focus>`                                           |\n| `/repokb:ingest-conversation --dry-run`      | Show the triage and proposed routing, write nothing                      |\n| `/repokb:ingest-conversation --session-only` | Write only the transcript and session record, skip promoting to concepts |\n\n## What gets scaffolded\n\n```\nknowledge/\n  index.md          # bundle root - table of contents, carries okf_version\n  CLAUDE.md         # the authoring contract every writer reads first\n  wiki/             # what this repository knows about itself\n    architecture/ ci/ components/ conventions/ domain/\n    local/ operations/ reference/ security/ troubleshooting/ ui/\n  raw/              # originals behind ingested material - human-only\n    images/ pdfs/ documents/ adrs/ conversations/ others/\n  _log/             # change history, one file per day - git-ignored\n  _sources/         # ingested external material\n    external/ conversations/\n```\n\nEvery concept document carries OKF provenance and trust metadata, and\n`/repokb:load` reports it on every load: `status: draft` means inferred rather\nthan confirmed, a missing `verified` key means nobody has checked it, and a past\n`stale_after` means possibly out of date.\n","readmeFilename":"README.md"}