Lineage profile matrix

This matrix turns the workshop's general theory into a decision surface over the derivation cases Commonplace actually has. It is descriptive where a shipped contract already answers the question, prescriptive where the working files converge, and explicitly unresolved where adopting a row would require changing a contract.

The matrix separates facts that the current lineage vocabulary sometimes bundles together:

  1. Semantic dependency — what the derivative depends on and what kind of relation holds.
  2. Carrier — where that dependency is recorded.
  3. Invalidation — what a source or contract change causes.
  4. Retention — which artifacts or state survive the producing run.
  5. Producer provenance — where model, runner, tool, prompt, or process identity belongs.

For directional lineage, normalize the semantic relation as (derivative, relation, source) regardless of where it is recorded. A source-side ... into: footer, target-side ...-from link, metadata field, commit record, or database row may render that same tuple without reversing it. depends-on below is deliberately neutral working notation, not a proposed registered link label; use derived-from, abstracted-from, operationalized-from, or adapted-from only when its truth condition is met and the relevant collection authorizes it.

Invalidation uses the ladder from verification-locus-and-provenance-theory: L0 untracked, L1 recorded, L2 queried, L3 watched, and L4 in-spec. Deterministic checking is called out separately because it verifies recomputable state rather than reconstructing production history.

Profiles

artifact or dependency profile normalized dependency / event carrier invalidation rung and response retention producer provenance status
Captured source snapshot capture(snapshot, external-resource@observed-state); the retained snapshot becomes source material rather than an authored derivative Capture metadata on the snapshot; captured body remains immutable L1 capture record. If capture-method fidelity later matters retroactively, query the recorded cohort at L2 or watch the process dependency at L3. Refresh by creating a new capture, never by silently editing the old body. Commit when the source is unstable, not durably versioned elsewhere, or needed as evidence. Capture mechanism, source, and time belong on the snapshot. Model identity is relevant only if a model transformed the content, which a faithful snapshot normally must not do. Mostly settled. Exact fidelity/version policy remains capture-path-specific.
Ingest report or durable source analysis (analysis, depends-on, snapshot@version + consulted-KB-context); this is judgmental analysis, not necessarily mechanically derived-from the snapshot Target-side source_snapshot, citations, and any bounded source manifest in the retained analysis L1 source record; L2 on-demand or future queued upstream-change check. A changed source triggers rework/review, not textual patching. Commit: the analysis is independently useful durable content even though it is derived. Model/runner/prompt metadata should travel with a one-shot retained analysis; exact shared fields remain to be designed. Policy settled; provenance schema open.
External Git-backed review (review, depends-on, repository@reviewed-revision + cited-files) Repository identity, reviewed revision, commit-pinned citations, and optional quote anchors on the review L1 stable verification handle; L2 on-demand upstream-HEAD query. Do not create an operational refresh ledger until repeated selection needs one. Commit the review; do not copy the whole external repository without a special archival reason. Model/runner belongs on the retained review or its production manifest. Settled at current scale.
Cheap candidate report (report, depends-on, target@version + report-contract + loaded-context) Self-describing report or run manifest while the instance exists; no permanent edge is required unless the report becomes retained evidence or an accepted merge-back input L0 when fully disposable; L1 while retained for inspection or when its contribution must survive merge-back. Refresh by regenerating. Gitignore and delete when no longer actionable. Promote findings, not routine report instances. Record model/runner/contract version in an inspectable report or manifest. A discarded report needs no independent permanent model record unless its use must remain auditable. Settled default. Promotion expectations for valuable observations remain open by report type.
Deterministic generated view (view, derived-from, authoritative-inputs@versions) where reconstruction is mechanical Generator definition plus validator; source hashes may live in runtime metadata when the file must exist Deterministic check, not a history rung: rebuild and compare or omit the copy. Do not commit unless a runtime requires the file and a validator prevents drift. Record generator/tool version, not model metadata. Settled.
Behavior-facing compiled view (compiled-view, depends-on, authoritative-sources@versions + generator); use derived-from only if no substantive judgment is added On the compiled artifact: source hashes or manifest, generator, regeneration rule, owner, and direct-edit policy L2 check before use or regeneration at current star-shaped scale. Escalate to L3/operational edge state only if many sources feed many compiled views and a swept selector maintains the edges. Commit only when the behavior channel requires a materialized file and alignment is checked; otherwise build on demand. Deterministic generator version, or model/runner/prompt metadata when generation is judgmental. Rule settled; no current second mesh.
Retained adapted-from packet or one-off prompt (packet, adapted-from, selected-sources + caller-judgment) Minimal target-side source list/manifest and production context once retained or handed off; an ephemeral prompt need not acquire schema L0 while genuinely ephemeral; L1 as soon as retained, reused, or used as auditable handoff context. Source change triggers a fit recheck. Discard after one use, or retain in a workshop; repetition or durable authority forces promotion into a typed report, instruction, skill, or other library artifact. Record model/runner for a retained generated packet; record the adapting agent or process when that judgment is material. Boundary settled; minimum retained metadata open.
Canonical library artifact shaped from sources (canonical-artifact, derived-from | abstracted-from | operationalized-from | adapted-from, source) Mutable internal source: current default is a source-side ... into: footer. Immutable or externally owned source: target-side pointer, mutable ingest companion, or external edge record must carry the same normalized tuple. Relation-specific: rederive-and-compare for derived-from; re-examine the generalization for abstracted-from; judgmental fit recheck for operationalized-from or adapted-from. The artifact remains canonical. Commit the canonical artifact and preserve its source or stable verification handle. Model belongs to the creation/update event or retained derivative, never a stable “last edited by model” field on the canonical artifact. Blocking contract contradiction. Carrier precedence for immutable/external sources is not declared.
Canonical merge-back update merge-back(new-version, previous-version + accepted-report/findings + consulted-sources + contracts + merge-decision) Intentional commit at current volume; source-side pointer only where future source edits should interrupt the canonical target. Add a shared append-only ledger only after an independent cross-artifact audit query appears. L1 event record now; L2 only when merge-back history must be queried as a cohort. The target remains canonical rather than becoming a disposable derivative. Commit the new canonical version and enough event provenance; the candidate report may be discarded. If material, record both report producer and merge actor/model on the event, not in stable target frontmatter. Settled for current volume; shared event surface deferred.
Frozen published article (article, adapted-from, source-notes@versions) Target-side source_notes; no source-side footer in the current article profile L1 recorded source set with no automatic freshness registration. Source divergence triggers an editorial decision: annotation, successor, withdrawal, or no change. Commit article and publication lifecycle metadata; published body remains frozen. Byline and publication history are authoritative. Model participation, if worth retaining, belongs to production history rather than authorship-like stable metadata. Locally settled, globally contradictory with the universal source-side rule.
Review assay pair assay(result, note@hash, criterion@hash, model-partition); result_kind fixes verdict versus decisionless-report completion Purpose-built SQLite acceptance and input snapshots; generated Markdown remains readable evidence rather than canonical current state L3 watched over (note, criterion, model-partition). A note or criterion change emits a stale reason and triggers rerun or acknowledgement under review policy. Keep operational current state in SQLite; retain report artifacts only as the workflow's evidence/audit policy requires. Model partition is freshness identity; literal runner model/effort is event provenance. Settled and implemented. Do not generalize its tables without a second mesh.
Semantic criterion in a type or collection contract (artifact, judged-against, criterion-document@hash) Factored review pair with the criterion document on the criterion side L4 in-spec / L3 watched evidence. Editing what a good artifact looks like invalidates assay evidence and calls for re-judgment; the artifact itself is not automatically regenerated. Commit the contract and current review mechanism; no separate derivation artifact is needed. Producer model is irrelevant to the criterion's authority; review runs retain their own model provenance. Theory settled; contract-migration proposal still missing.
Production instruction or skill (artifact-version, produced-by, skill-or-process@version) when the production fact must survive Production-time provenance record on a one-shot derivative or its event; no automatic inclusion in the semantic review key L0 for ordinary wording/process edits; L1 always-on record where provenance matters; L2 query when a meaningful process improvement has retroactive reach; L3 only when process fidelity is part of the artifact's warrant. Process edits invalidate artifacts worth revisiting, not unchanged semantic verdicts. Commit the instruction/skill. Retain artifact provenance only to the rung justified by its lifecycle and authority. Skill/process version and runner/model belong to the production record. Theory settled; produced_by carrier and migration proposal open.
Static authored relation, including compares-with (left, semantic-relation, right); not every reader link is a derivation dependency Ordinary authored link in the collection-authorized direction L0 on-demand maintenance by default. Static many-to-many topology alone does not justify edge state. Commit with the authored artifact. No special producer provenance. Settled default. New source labels remain separate vocabulary decisions.

Decisions exposed by the matrix

Five decisions remain before the workshop can extract a coherent contract:

  1. Normalize direction. Declare (derivative, relation, source) independently of whether the carrier renders ...-from, ... into:, metadata, or an operational row.
  2. Choose policy authority and precedence. Decide whether a collection contract selects a lineage profile, whether a type may refine it, and how cp-skill-write discovers the effective carrier and invalidation response. The categorical universal source-footer rule cannot coexist with the article and snapshot profiles unchanged.
  3. Specify immutable/external-source carriers. Choose target-side metadata/link, mutable ingest companion, or an external edge record as the default when the semantic source cannot be edited.
  4. Specify the minimum production record. Define the fields and carrier for retained one-shot derivatives and produced_by events without imposing “last model” metadata on canonical artifacts.
  5. Separate optional vocabulary expansion. Decide contrasts, parallel-mechanism, inverse-lineage, and source-to-source comparison labels from worked cases after the carrier and direction rules are fixed; those labels should not block the general model.

Explicit deferrals

The matrix does not justify building any of the following now:

  • a generic lineage SQLite schema;
  • a shared append-only event ledger;
  • automatic freshness tracking for external repositories;
  • swept maintenance for every authored link;
  • permanent retention of cheap generated reports.

Each has an activation condition already supplied by the workshop: a real consumer must need an independent audit query, or a second automatic dependency mechanism must develop churning many-to-many edge state and a repeated selector.