Graph edge endpoints use project-root-absolute paths per Rule C
(`/wiki/entities/foo.md`), while the `known` page set is keyed on paths
relative to `wiki/`. check_graph compared them directly, so every
conformant edge was reported as pointing at a missing page. Add the
`/wiki/`-stripped form to the candidate set, matching the normalisation
the decision-record check already performs.
Bump VERSION 1.6.0 -> 1.6.1.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Decision log (VERSION 1.6.0, kb_schema_version 1.4):
- wiki/decisions/ scaffold — numbered NNNN-slug.md records, own index
(with status vocabulary) and log
- type: decision adds status/decided_on/decided_by/affects/review_on;
supersedes/superseded_by carry history and must be set on both sides
- New ckb-decide skill: records decisions and answers what/why/who/when,
what superseded what, and what is still open. Decision pages are
append-only — a changed mind is a new superseding decision
- Graph gains decided_by and affects edge types
- ckb-ingest routes decisions found in raw material to this format;
ckb-retrieve gains the decisions index as a cascade step
Scriptified the mechanical skills:
- ckb-export-okf/scripts/export_okf.py does the whole OKF transform
(frontmatter remap, link rewriting, index/log regeneration, conformance
validation); --check validates without writing
- ckb-lint/scripts/lint_report.py does the read-only detection half
(conformance, freshness, confidence, retention, decisions, orphans,
graph, index/log, source.yaml); judgment calls stay with the model
Also: removed the duplicate personal quiz skill, fixed stale cbk-quiz
doc paths, gitignored __pycache__.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ckb-index-external now goes beyond one page per document: it also
extracts people, organizations, projects, decisions, systems, and
processes each document discusses into thin, pointer-style entity
pages within the connector's own index (evidence back to source
documents, deferring to a full wiki/entities/ page where one already
exists), so the index supports "what do we know about X" lookups, not
just "what documents exist here".
New ckb-retrieve skill formalizes the retrieval half of the query
workflow: before grounding an answer in a page's tldr, follow it back
to its underlying source (a wiki page's Sources citations, or a
connector page's resource: pointer) rather than trusting the
compressed index entry as settled.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Spell out explicitly, per run: check whether the shared index store
already has a published index; if so, fetch it regardless of access
level; a write-access user always continues to rebuild and publish
back to that same store, and this is precisely what creates it there
the first time the store is empty. A read-only user never rebuilds or
publishes anything, whether or not the store already had content.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
source.yaml gains an optional index: block declaring where an
already-built index lives (a git repo or a shared resource), so a
user can fetch it instead of scanning the live connector from
scratch. Whether a given user may actually rebuild/publish an index
is now a local, per-user, gitignored source.local.yaml (access:
write|read) that defaults to read-only, letting a team designate one
or two admins per external source instead of everyone redundantly
re-indexing it. ckb-lint's checks against a connector's generated
index now respect the same read/write gate.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
libs/<name>/ now supports a second population mode alongside git-copy
clones: a user-authored source.yaml declares a live external source
(SharePoint, Google Drive, a plain URL, or another connector), and the
new ckb-index-external skill builds a self-contained generated index
for it (index.md/entities/graph/log.md), scoped entirely to that
connector and never blended into the main wiki/.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Read-only skill: given a topic, resolve it to an anchor page via the
cascade, walk the graph edges (2 hops, ~8-page cap) — falling back to
link-following when no edges exist — order the pages pedagogically
(prerequisites first, then the topic, then what builds on it), and print
a numbered reading tour with per-page "what you'll find" notes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Continue the ckb- namespace consolidation: rename the bootstrap skill
directory and its name: frontmatter from cascade-kb-init to ckb-init.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rename four cascade-KB skills to a consistent ckb- namespace:
- export-okf -> ckb-export-okf
- export-starlight -> ckb-export-starlight
- project-summary -> ckb-project-summary
- sync-changes -> ckb-sync-changes
Update the name: frontmatter in each SKILL.md and all cross-references
in README.md, AGENTS.md, cascade-kb-init, and export-starlight. Historical
wiki/log.md entries are left unchanged as a record of past actions.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add four skills for Tempo/KSeF timesheet and invoice workflows:
- check-my-timesheet: show/log the current user's Tempo time entries
- timesheet-checker: audit timesheet completion across all reporters
- invoice-checker: pull KSeF invoices, check contractors + MF white list
- invoice-prep: summarize Tempo hours per Jira project for invoicing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>