Commit all in-flight work — ckb-module and ckb-reset skills, the .agents/modules/ scaffold, OPENSPEC docs, decision records D-0001 and D-0002, graph edges and workload summaries — so the reset that follows is fully recoverable. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.4 KiB
software module
Opt-in. Install with "install the software module"; remove with "uninstall the
software module". Nothing in here is active until installed — the skills below
live in this folder, not in .agents/skills/, precisely so their descriptions
stay out of context for knowledge bases that don't document software.
What it assumes
You are building software, and this KB holds the knowledge about it. The code
itself lives in src/<repo>/ as plain clones — gitignored, each with its own
remote and its own history. One KB can hold several.
The code is not part of the KB's history and may be absent entirely from a fresh
clone. That is deliberate, and it is why the module writes a type: repository
entity page for every repo: remote URL, default branch, language, build command,
path, owner. That page is the durable artifact; the clone is a convenience.
What it adds
| Skill | Does |
|---|---|
ckb-code-map |
Reads a src/<repo> clone and writes it into wiki/entities/ as a repository page plus component pages, stamped with the commit it was generated from so staleness is detectable. |
ckb-spec |
Owns KB-root specs, delegates per-repo specs to OpenSpec, and bridges both into wiki/ — archived changes become decision records, current specs become type: spec pages. |
Plus: src/ and openspec/ scaffold, a routing block in AGENTS.md, .gitignore
rules for src/*, and the repository/component/spec types.
Two spec levels
Specs live at both levels, and the split is the point:
openspec/at the KB root — what and why, across repos. Cross-cutting contracts that no single repo owns. Served byckb-specdirectly, because a rootopenspec/is not a normal OpenSpec install: there is no code beneath it.src/<repo>/openspec/— how this repo implements it. OpenSpec's native case: travels with the code, rides along in the repo's own PRs. Served by OpenSpec's own instructions;ckb-specdefers to them and says so plainly when the CLI isn't installed rather than improvising a replacement.
The levels are linked by implements: / implemented_by: frontmatter, which
becomes graph edges. This exists so that two spec levels produce a lint signal
when they disagree, instead of two silently divergent truths. A KB-root spec with
no implementer, or a repo-level spec whose parent was archived, is a finding.
What it does not do
src/is not a cascade layer. It is primary evidence, likeraw/archive/.ckb-retrievemay open and cite it to verify a claim; it never answers "what is entity X", andckb-ingestdoes not treat code as inbox material. Without this rule every ingest would turn your codebase into wiki pages.- It does not commit or push
src/repos. They are separate repos with separate remotes.ckb-sync-changesnevergit adds undersrc/.
Setting up OpenSpec
See OPENSPEC.md (Polski) for
install steps, the daily propose → apply → archive loop, and the reason
openspec init must never run at the KB root.
Design record
- D-0001 — why modules are files in the repo.
- D-0002 — why gitignored clones, both spec levels, hybrid vendoring.
Licensed under the Apache License, Version 2.0 — see LICENSE.