Standard at v1.1, repo-manager teaches it as a durable flavor, hall-of-helix
classified. resolve_flavor returns publication for the hall where it previously
fell through to tooling. repo-manager suite: 161 passed.
Also carries generated updates to WORK-RECORDS.md and intakes.md from
fix-consistency.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQ6oF1DtVDKcD1FCpvRVLx
Implements CUST-WP-0070-T01.
New §5.7 publication: repos whose purpose is to publish and keep a body of
authored content for readers, where the corpus itself is the deliverable. It is
durable, unlike project — a published record is kept, not resolved and retired.
Disambiguated against research (which asks what we need to understand), product,
and tooling (a wiki engine is tooling; the corpus it serves is a publication).
Added to the §5 allowed values, the §11 decision procedure, the §16 agent
prompt, and allowed.yaml. history and participation join the
knowledge_and_evidence capability family so hall-of-helix's tags do not warn.
Version 1.1, not 2.0: §17 previously read any allowed-value change as major.
This addition is purely additive — no existing classification becomes invalid,
and neither validator enforces a version match, so the 125 repo files declaring
1.0 keep validating. §17 now distinguishes adding a permitted value (minor) from
removing or renaming one (major), rather than leaving the rule contradicted.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQ6oF1DtVDKcD1FCpvRVLx
CUST-WP-0069 is already claimed by the frontmatter of
workplans/CUST-WP-0045-cutover-runbook.md, whose id and filename disagree — a
pre-existing inconsistency left untouched here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQ6oF1DtVDKcD1FCpvRVLx
Classifying hall-of-helix had no honest answer. A curated, permanent corpus of
authored records fits none of the six categories, and the fallback — project —
is the only non-durable one, implying eventual retirement of a record meant to
be permanent. With no classification file at all, resolve_flavor currently falls
through to flavor=tooling, so the repo is misclassified silently.
publication joins DURABLE_FLAVORS: repos whose purpose is to publish and keep a
body of authored content, where the corpus itself is the deliverable.
Population is one today — a scan of all 131 registered repos found no other true
publication — which argues for adding it once and carefully rather than
misfiling a permanent record as transient work.
Version 1.1, not 2.0: the addition is purely additive, no existing
classification becomes invalid, and neither validator enforces a version match,
so the 125 repo files declaring 1.0 keep validating. T01 clarifies §17, which
currently reads any allowed-value change as major.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SQ6oF1DtVDKcD1FCpvRVLx
Image main-54b09ee. the-custodian reset-ack then fleet refuse-mode:
52 applied, 69 noop, 2 identifier-collision refusals, 0 retirements.
Fleet-ack not run — nothing was refused for retirement.
Close T02–T06 from live hub evidence, disposition clay-borg product
records as not workplans, lift the task-reset restriction in state-hub,
dump and remove the retired local Postgres instance, and record ADR-010's
work-record divergence as closed.
Repo Manager now owns the State Hub access map and the registrar no longer
fails its own generated-index precondition. Close 0067; 0068 continues with
the remaining recovery tasks.
Keep the UUIDs the registrar minted for CUST-IN-0015, CUST-WP-0068-T09,
and the ad-hoc workplans after the run failed on an unrelated historic
task create.
Close CUST-WP-0064 after the 2026-08-24 unassisted fire ingested
clay-borg, close CUST-WP-0065 now that all 120 active repos project a
classification, and close ADHOC-2026-08-25. Mark CUST-WP-0067 T02/T10
done (reverse relays already gone; work-record recovery lives on 0068).
Park the later no-checkout SBOM regression as CUST-IN-0015. Teach the
classification gate to use this host's checkout path.
The reset now exists and has run fleet-wide, so T09 moves from wait to todo.
Every railiance-wp-* row is retired and its identifier released, meeting the
first acceptance clause.
The recorded 305 stale task rows no longer describes what is there: measured
against what the forge derives, 21 orphaned rows remain under live workplans
(0 open), 557 have no record_id at all (34 open), and 512 sit under workplans
retired today. Most of the 305 left the live surface with their workplans
rather than being repaired.
What remains is one change: reset_repository_projection still skips the tasks
of existing workplans, a restriction adopted when hub tasks had no canonical
identifier. They have one now, so the reason is gone.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The live-file pass missed these: archived ad-hocs carry a YYMMDD- filename
prefix, so the ADHOC-* glob did not match them. They still derive from the
forge, so they are live records rather than dead files.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`ADHOC-YYYY-MM-DD` is unique per date but not per repository, so any two repos
opening an ad-hoc on the same day collide. The 2026-08-26 fleet projection
reset refused 9 records for exactly this reason.
Canon (work-record-types_v0.1, CUST-WP-0066) settled the form as
`{PREFIX}-WP-ADHOC-YYYY-MM-DD`, filename unchanged, and grandfathered existing
ids on the condition they are never *silently* re-derived. This is the explicit
migration that clause allows for.
The hub id is derived from the record id, so a changed id is a different
record: stale state_hub_*_id fields are dropped and fix-consistency re-derives.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Canon defines six work-record kinds — workplan, task, intake, decision,
engagement, register-entry. These files declared none of them (feature, runbook,
bug-report, extension-workplan, scorecard, session-note, adhoc) while the hub
held each as a workplan.
Selection is by 'type: workplan', so the mismatch made them invisible to any
projection: a forge-derived reset read their correct hub records as no longer
deriving and proposed retiring live work.
Where a file also lacked a canonical identifier, one was assigned continuing the
repository's sequence. Existing hub identifiers are preserved, so no record is
orphaned.
Refs STATE-WP-0083
A missing newline fused the closing delimiter onto the last frontmatter value
(`- KONT-WP-0016---`), or fused a value onto the following key. Either way the
frontmatter never terminates and the whole body is swallowed.
Because workplan files are selected by `type: workplan`, such a file is not
invalid but invisible: it appears in no projection, raises no error, and is
reported as neither a workplan nor a problem. A forge-derived reset would
therefore read its correct hub record as no longer deriving and propose retiring
live work.
Only the missing newline is inserted; no value is altered.
Refs STATE-WP-0083-T08