Skip to content

Align the .evolve knowledge store with the Open Knowledge Format (OKF) #272

@illeatmyhat

Description

@illeatmyhat

Summary

Align evolve's .evolve/entities/ store with the Open Knowledge Format (OKF) v0.1 (spec). The store is already ~90% OKF-shaped (one fact per markdown file, type frontmatter, path-based concept ids); this tracks the remaining changes so it becomes a conformant OKF bundle — portable and readable by any OKF tooling.

Why

  • Interop/portability — a standard, tool-agnostic format instead of an evolve-only convention; stores become catalog-able/publishable by OKF-aware tools.
  • Self-describing & auditable — OKF's index.md catalog + plain markdown links make the store browsable and diffable in git.
  • Low cost — mostly a field rename, a generated catalog file, and a link-syntax switch.

What changes (format)

.evolve/entities/ becomes the OKF bundle root; the rest of .evolve/ (audit.log, trajectories/) stays outside it (OKF bundles are pure concept trees).

  • Folder shape unchanged: entities/<type>/<name>.md; concept id = <type>/<name> (e.g. guideline/foo) — the same ids audit/provenance already use.
  • Open type taxonomy: type stays the one required field and is a free string (OKF mandates no central registry). guideline is the common one and stays; the set is non-exclusive (user, feedback, project, reference, …).
  • triggerdescription: the "when to recall" hint is renamed to OKF's description (also what the catalog shows).
  • Add index.md catalogs: bundle-root index.md with okf_version: "0.1" + per-type index.md (auto-generated, * [name](/type/name.md) - description). Recall reads index.md instead of listing the dir.
  • Links: [[wikilinks]] → standard markdown bundle-relative links [name](/type/name.md).
  • timestamp (ISO 8601) added where useful; log.md deferred.

Folder structure (before → after)

Before:

.evolve/
├── entities/
│   └── guideline/
│       ├── before-concluding-a-bob-global-instruction-file-is-not-read.md   # type: guideline, trigger: …
│       ├── when-debugging-why-platform-integrations-install-sh-prints.md
│       └── …  (all ~47 entities currently live under guideline/)
├── audit.log
└── trajectories/
    └── claude-transcript_<session-id>.jsonl

After:

.evolve/
├── entities/                         # ← OKF bundle root
│   ├── index.md                      # okf_version: "0.1"; catalog of every concept/group
│   ├── guideline/
│   │   ├── index.md                  # * [name](/guideline/name.md) - description
│   │   ├── before-concluding-a-bob-global-instruction-file-is-not-read.md   # type + description (was trigger)
│   │   └── …
│   ├── feedback/
│   │   ├── index.md
│   │   └── …
│   ├── user/
│   ├── project/
│   └── reference/
├── audit.log                         # ← unchanged; stays outside the bundle
└── trajectories/                     # ← unchanged; stays outside the bundle
    └── …

Example entity after the change:

---
type: guideline
description: <when a future session should recall this>
timestamp: 2026-06-17T00:00:00Z
---

<the fact. For feedback/project, **Why:** / **How to apply:** lines.
Link related entities with [other](/guideline/other.md).>

Where in the code (broadly)

  • plugin-source/EVOLVE.md.j2 — agent-facing format spec (frontmatter, links, recall-via-index.md).
  • plugin-source/lib/evolve-lite/entity_io.py — read/write OKF-shaped entities; generate index.md; build the recall manifest from it.
  • Recall/audit/provenance — concept ids unchanged, so audit + provenance keep working; readers update for the triggerdescription rename.
  • Migration script for existing guideline/*.md entities (triggerdescription, generate index.md, convert any wikilinks).
  • Tests: build-pipeline drift, entity_io, installer.

Out of scope / related

Rides alongside the broader "drop hooks/custom-modes → always-on self-directed memory" redesign (branch redesign/evolve-lite-no-hooks-modes). log.md and cross-bundle publish/subscribe semantics deferred.

Reference

OKF v0.1 spec: https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions