"Author, retrieve, and maintain OKF documentation with the lore CLI, including explicit multi-repository workspaces. Use whenever reading, writing, linking, moving, querying, or checking docs, so Story/Task coupling, managed blocks, provenance, and cross-links stay coherent. Run `lore instructions` for the canonical agent loop and `lore instructions <topic>` for just-in-time detail."
Install
npx skillscat add opum-ai/lore-cli/lore Install via the SkillsCat registry.
lore — OKF documentation CLI
lore is a deterministic, CLI-first documentation engine (no LLM dependency) for authoring,
retrieving, and maintaining an OKF bundle, typically under docs/. This skill is a thin pointer —lore instructions is the source of truth for how to drive lore in the repository you're in.
When to use it
Reach for lore — not a plain editor or grep — whenever you read, write, link, move, retrieve,
or verify docs in a lore-managed bundle or an explicitly selected workspace, so Story <-> Task
coupling, managed blocks, provenance, and cross-links stay coherent.
lore link, lore unlink, lore rename, and lore sync commit tracker files only when the
configured tracker is Backlog; Quest and Jira keep their own storage. Check the repository's own
instructions (its CLAUDE.md or AGENTS.md) for any commit-authority rule before running them.
Find and read docs: query, then read
To answer a question from the docs, search before you browse — do not start fromdocs/index.md or grep:
lore query "<a few words from the question>" --limit 5— full-text search over every concept.lore read <id>— the best hit exactly as authored, with no budget.lore context <id> --max-tokens <n>— only when you need the neighbors too.--max-tokensis a
hard ceiling: if the concept's own body does not fit, the body is dropped rather than exceeding
the budget, so uselore readfor the body.
lore instructions retrieval has the detail.
Start here
Run lore instructions for the canonical agent loop and the topic index, then pull just-in-time
detail with lore instructions <topic>:
retrievalFind and read docs in one repository (lore query->lore read)linkingStory <-> Task coupling (lore link/lore unlink)syncReconciling status and managed blocks (lore sync)checkThe CI gate: types, drift, links, anchors, portability (lore check)validationPer-file OKF/schema conformance (lore validate)typesDiscovering the active type vocabulary (lore types, LCLI-537)workspaceMulti-repository projection and bounded retrieval (--workspace)agentsWhich agent bridge lore agents checks or writes (lore agents, LCLI-437)
Commands
backlogAdopt Backlog knowledge records through a digest-guarded migration lifecycleinitScaffold an OKF bundle; a bare TTY run also wizards the agent bridge/scaffolds/tracker setupnewScaffold a typed concept from a template (rejects an unknown type under strict_types)validateCheck concept files against OKF + the lore profile (per-file); strict_types escalates an unknown typecheckValidate links/anchors + reconciliation/committed-schema drift across the bundle (CI gate); strict_types escalates an unknown typereplaceFind-and-replace across the bundle, skipping managed regionsrenameMove a concept and repoint every inbound link + refsupersedeMark a concept superseded by another, wiring both wayslinkAdd task ids to a concept's tasks: + the doc: back-refunlinkRemove task ids from a concept's tasks: + the doc: back-refsyncReconcile status + managed task blocks, regen index/log; commits tracker files on the Backlog backend onlytasksShow the live status rollup for a concept's linked tasksorphansReport tasks with no owning doc + docs whose linked task vanishedschemaExport the profile's editor JSON Schemas to .lore/schemas/ (the fix forlore check's schema-drift)typesPrint the active profile's declared type vocabulary — fields, requiredness, sectionsscaffoldGenerate a downstream docs consumer's config additively, rewriting nothinggraphEmit the bundle's cross-link graph as json or dotpathFind bounded paths across exact authored concept and task edgesimpactExpand bounded impact across exact authored concept and task edgessnapshotExplicitly retain, list, or delete bounded projection snapshotschangedCompare two retained snapshots with bounded authored-fact deltasprovenanceTrace one retained concept, task, or edge to exact source evidenceexplorerBuild a deterministic self-contained local graph explorerexportEmit a deterministic, consumer-neutral OKF projection as JSONLqueryFull-text search the bundle with frontmatter filterscontextAssemble a concept + neighbor summaries within a token budgetreadRead one concept exactly as authored, with no budget and no assemblyagentList context profiles or compile bounded task-scoped evidenceinstructionsPrint task-scoped agent guidance on demandagentsRegenerate the agent bridges (SKILL.md + the CLAUDE.md/AGENTS.md nudge)helpShow help, or the machine-readable command manifest under --json
Machine contract
Every command supports --json (the {schemaVersion, kind, data} envelope) and --plain
(ANSI-free, auto-selected off a TTY). Branch on the semantic exit code, never on prose:0 ok · 2 usage · 3 not_found · 4 denied · 5 conflict · 6 validation/drift · 7 indeterminate (cannot judge from here; never auto-repair).
Read the evidence, not the status label
A document's status: stable, a verified attribution, or a Done task record what
happened to the record — not whether what it asserts is still true. status names a
lifecycle stage; an attribution names who touched it. Neither substitutes for checking
the claim's own evidence before relying on it.
Optional task-scoped context
When native Claude Code instructions name a committed Lore profile, use this stable opt-in line:
Lore profile:
<name>. Before working, runlore agent context <name> --task "<assigned task>"
and ground decisions in the returned source IDs.
A profile pack selects only among the sources its profile lists, so a question outside the profile
still needs lore query. Lore supplies evidence only. It does not create or patch native agents,
prompts, tools, models, permissions, or execution settings.