Skip to content

Releases: cwest/okfctl

Release list

v0.2.0

Choose a tag to compare

@cwest cwest released this 02 Aug 21:05
v0.2.0
a37a4b5

okfctl targets OKF v0.2. New bundles are created at okf_version: 0.2, and v0.1 bundles remain readable — v0.2's two breaking renames (timestampgenerated.at, body # Citations → frontmatter sources) are read with a v0.1 fallback, per spec §12's best-effort consumption rule.

Spec v0.2 support

  • Provenance — reads the v0.2 generated / verified / sources families, falling back to the v0.1 forms when a bundle declares the older version.
  • Freshness — resolves through generated.at rather than filesystem modified/created, so a regenerated node reports its real age.
  • Migrationokf migrate provides a two-phase v0.1 → v0.2 upgrade path: a mechanical pass, plus a judgment queue for the calls a tool should not make alone. The okf-migrate-plan skill ships alongside it.
  • Section citations — spec §-numbering shifted between v0.1 (11 sections) and v0.2 (13); stale citations throughout the codebase are corrected.

Search

  • Passage-level indexing — sub-node passages are indexed and returned as snippets, so a hit points at the paragraph rather than the file. Retrieval quality on the real corpus improved 0.545 → 0.909, at a measured ~12x index size.
  • Query scoping — filter semantic queries by path, type, and tag, with optional recency decay.
  • Tokenizer — a model2vec directory containing tokenizer.json is accepted, matching what the docs already promised.

Lint and analysis

  • --json — machine-readable findings for CI and downstream tooling.
  • Prose-only scanning — cross-reference and time-marker detection no longer reads link URLs as prose, eliminating a class of false missing-xref and time-sensitive findings. Both inline [text](url) and reference-style [ref]: url links are excluded.
  • Title-as-home-node — a node whose title leads with a term is credited as that term's home, closing a coverage-gap false positive.
  • Broken internal links — gated as defects when they look like defects.
  • Vendored and derived directories — skipped during the bundle walk.
  • Drift opt-out — a bulk mechanical commit can declare itself as such and skip the git-drift check.

New in this release

  • okfctl-api — an HTTP API plugin over a bundle, serving /stats and /graph. Walking skeleton; the ADR describing its shape ships with it.
  • Bulk index promotion — promote directory-as-concept index.md nodes in bulk.

Documentation

ADRs are introduced and the PRD is reconciled to shipped reality. AGENTS.md pins spec conformance as the working contract for the repo.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 01:17
v0.1.0
7d3c414

Changelog

  • ebdb1a6 chore(license): set copyright holder to Google LLC across the repo
  • 20ac64f docs(prd): okfctl product requirements document (#1)
  • d62ae44 docs(skills): ship okf-authoring, okf-curation-health, okf-semantic-search (#14)
  • 9275d86 feat(analyze): okfctl analyze — proactive curation report (freshness, clusters) (#17)
  • 169efc1 feat(lint): semantic curation checks — lint --semantic (increment 7) (#12)
  • 5d2a25d feat(okfctl): maintain derived artifacts by default — created/modified, log.md, index.md + drift findings (#15)
  • f0b72d9 feat(search): Model2Vec safetensors loader + StaticModel (increment 5c-1) (#10)
  • 911bb60 feat(search): WordPiece tokenizer + --embedder model2vec (increment 5c-2) (#11)
  • c85500b feat: okfctl increment 2a — reserved-file lifecycle (index + log) (#3)
  • 616ae30 feat: okfctl walking skeleton (increment 1 — init/author/validate) (#2)
  • 5d2bb70 fix(lint): increment 8 lint precision — 2,438 findings → 21 on the real corpus (#13)
  • 94ef043 review(okfctl): increment 2b node mutation verbs (edit/mv/rm) (#4)
  • 4721595 review(okfctl): increment 3 lint structural checks (#5)
  • 8a22307 review(okfctl): increment 4 graph export + serve (#6)
  • 6180825 review(okfctl): increment 5a core plugin dispatch (#8)
  • 06941a2 review(okfctl): increment 5b okfctl-search semantic plugin (#9)
  • f0d9d4e review(okfctl): increment 6 type templates + validate overlay (#7)
  • c7daafb ✨ feat(okfctl): node refresh — bulk-fix stale modified timestamps (#16)
  • c920da8 ✨ feat(okfctl): registry/connect for git-backed remote bundle sources (#22)
  • 3c3a293 ✨ feat(plugin): implement plugin install over PATH dispatch (#21)
  • 4d542bb ✨ feat(search): core lexical + graph-structural search (PRD §6.3) (#23)
  • b16f8b9 🐛 fix(graph): reconcile svg claim — DOT-pipe is the sanctioned SVG path (#19)
  • ce21526 🐛 fix(index): conform index.md generation to OKF SPEC §6/§11 (#24)
  • 7d3c414 🐛 fix(index): emit nested per-directory indexes with dir-relative links (§6) (#26)
  • 9e02c61 🐛 fix(index): preserve okf_version marker on bundle-root index (#18)
  • 307ccc5 🔧 chore(init): scaffold new project
  • 5169ecd 🔧 chore(okfctl): add release mechanics — goreleaser, version injection, installable binaries (#20)
  • 3daa7a8 🧪 test(okf): spec-conformance suite — okfctl output validates clean (#25)