Skip to content

Adopt the OKF timestamp change and a simpler frontmatter convention #87

Description

@leoafarias

Summary

Upstream restated OKF 0.2 so that every timestamp is an ISO 8601 datetime with an explicit UTC offset, covering generated.at, verified[].at, stale_after, sources[].last_modified and usage_window. Wayfinder, the Concepta Profile and the vendored spec copy were pinned to the pre-revision text.

This issue also absorbs #78, closed as a duplicate: the spec pin moves to the canonical repository in the same change.

Correction to the original plan. The revision was first described as knowledge-catalog 62432a0. That commit does not exist in open-knowledge-format, so "pin 62432a0 on open-knowledge-format" was not a reachable instruction. The two upstream copies are byte-identical at 1006 lines, so the canonical pin is open-knowledge-format@ad30107 — the merge of okf-iso-datetimes, 2026-08-21 — with knowledge-catalog@62432a0 recorded as the mirror the okf package names. Pinning the canonical repository therefore costs nothing beyond the revision itself.

Status

Implemented on verify-issue-queue-2026-09-12, pending a pull request and the release. Verified there by melos lint (analyze clean, format clean, 392 tests) and the example gate at Automated gate: PASS with 0 error(s), 0 advisory(ies) from OKF.

  • Upgrade okf. ^0.3.0 → ^0.5.0 in wayfinder, wayfinder_cli and wayfinder_embeddings. The pub workspace forces this to be atomic — one package at ^0.5.0 against the others at ^0.3.0 fails version solving.
  • Release Concepta Profile 2026.2. Spec pin moved; §5.5 row and §6.4 treat stale_after as an absolute instant compared against now; new §6.5 states the timestamp requirement; §11 binds 2026.2; §15.3 carries the sections, the driver and the migration in words. 2026.1 is preserved byte-identical under profile/versions/, which this created for the first time.
  • Re-vendor the specification. references/OKF-0.2.md is byte-identical to ad30107 with its header recording the mirror. The filename keeps 0.2, because OKF is still 0.2.
  • Compatibility and coverage evidence. The review gained a timestamp-revision section with four records; the matrix gained two rows splitting §6.5 into its automated MUST NOT and its contextual SHOULDs. The implementation guide binds 2026.2 with its own §9 entry.
  • Frontmatter writing convention. §6.5 adds three producer SHOULDs — quoted timestamps, block-style structured values, and verified as a list — with an explicit requirement that readers keep accepting inline YAML, because the spec's own examples use it. Taught in the authoring reference and the seed templates.
  • Migrate examples/knowledge. Block-style frontmatter, quoted timestamps, verified as a list, and offsets on the two date-only values. OKF advisories went from two to none.
  • Release Wayfinder with the new okf and Profile 2026.2. Both package changelogs carry an Unreleased entry describing the user-visible consequence: a bundle still declaring concepta_profile: "2026.1" now reports an unsupported release rather than a conformance verdict.

Downstream bundle migration stays with each consumer, through okf format --migrate-timestamps or the authoring skill, and is not tracked here.

Two further corrections

  • "okf 0.4 already resolves" was wrong. A ^0.3.0 constraint does not admit 0.4 or 0.5, so the pin genuinely blocked the upgrade.
  • The upgrade forced an SDK decision. okf 0.4.1 raised its floor from 3.4 to 3.9, and packages/wayfinder declared >=3.6.0. Every package now declares >=3.11.0 <4.0.0, matching conceptadev/mix for organization-wide consistency; the dependency-derived minimums were lower (3.9.0 for wayfinder, 3.10.7 forced by the exactly pinned llamadart). Moving the core package's floor also switched its formatter to tall style and enabled use_null_aware_elements, which account for most of the diff. The matching okf change is not done and belongs to conceptadev/okf.
  • SEEDING.md is no longer at the repository root. It lives at skills/adopt-knowledge-bundle/SEEDING.md.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions