Skip to content

SPEC-EVO-009 — Publishing

Purpose

One canonical repository should produce multiple trustworthy artifacts without duplicated authoring sources.

Target outputs

The publishing layer MAY generate websites, books, PDFs, presentations, JSON APIs, static knowledge packs, and offline bundles.

Requirements

  1. Published artifacts MUST identify the source repository version or commit.
  2. Derived output MUST NOT be treated as an authoring source unless explicitly imported through a defined migration.
  3. Every publisher MUST declare supported object types and handling of unsupported objects.
  4. Cross-references MUST remain resolvable within the target format where technically possible.
  5. Provenance, status, and revision notices MUST be preserved for claims whose interpretation depends on them.
  6. Deterministic publishers SHOULD produce equivalent output from identical inputs and tool versions.
  7. A publication manifest MUST record source digest, generator version, build time, included spaces, filters, and output files.
  8. Redaction and private-space exclusion MUST occur before artifact generation and be auditable.

Knowledge package

qlens pack SHOULD produce a portable bundle containing selected canonical objects, contracts, schemas, graph data, assets, and a manifest. It MUST declare whether history is included.

Acceptance criteria

  • A reader can identify the repository state from which an artifact was generated.
  • Website and book outputs derive from the same canonical objects.
  • Private objects excluded by policy do not leak through indexes, backlinks, assets, or manifests.
  • A package can be validated without access to the original repository.