A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
I1302
Identity, provenance and support level are typed fields, not prose
Where it stands
devtask.issue- Readiness
- ready no dependency and no gate holds it; nobody has started it
- Status
- READY
- Can start
- startable
- Milestone
- Milestone status
- ACTIVE
- Wave
1- Waiting on
- none
- Holds back
- Behind it in all
8- Evidence
0of4
Moves
plan.transitionWhat it is
- Objective
- Define the record model every synced item carries: upstream identity, local identity, content hash, the transport that produced it, the acquisition mode, the support level and the tombstone, as a schema with a version, before any adapter writes a byte.
- Why
- The pack this milestone came from is right about one thing above all: raw observation, normalised entity and derived knowledge are three different things, and a corpus that confuses them cannot be re-synced, re-checked or believed. A title is not an identity. A record that does not say how it was acquired cannot be told apart from a guess.
- Now
- Nothing exists. The repository's own kinds compute identity generically from declared fields (index.rs identity_of) and that mechanism does not reach local content.
- Wanted
- One versioned schema describes a synced record: `upstream_id` as the vendor gave it, a local identity derived from vendor and upstream id and never from a title, a content hash over the normalised body, `transport` (official, browser, private_http), `acquisition` (push, stream, websocket, browser_observed, poll), `support` (official, browser_observed, private, derived), first-seen and last-seen stamps, and a tombstone that marks a record gone upstream rather than deleting it.
- Done when
- unknown: the record declares no `completion`
- Risk
- Over-modelling. The enumerations must be the ones a consumer actually branches on; a taxonomy nobody reads is a cost with no reader.
Acceptance
- A local identity is reproducible from vendor and upstream identity alone and never depends on a display title
- Every record states its transport, its acquisition mode and its support level as enumerated values
- A content hash distinguishes a changed record from a re-observed one
- A record gone upstream is tombstoned with a stamp, never removed silently
- The schema carries a version and an unknown version is refused rather than parsed
- Validation
bash test/run.shmajordomus generate --check- Evidence required
identity_reproducibleprovenance_typedtombstone_semanticsschema_versioned- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
share/schemasdocs- Not
Any adapter or transport implementationAny vendor-specific field; ChatGPT's own shape is I1307Placing the schema file under share/schemas/ before something reads it. The schema-integrity doctrine refuses a schema that nothing applies, and nothing reads a workspace record until the syncer (I1306) or the reader capability (I1308) exists, so the file lands in the same change as its first reader rather than ahead of it.- Depends on
- Priority
- p0
- Profile
- deep-work
- Parallel safe
- true
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-09-09
- Updated
- 2026-09-09
- Started
- unknown: the record declares no `started_at`
- Verified
- unknown: the record declares no `verified_at`
- Completed
- unknown: the record declares no `completed_at`
Synchronisation
- Adapter
scripts/github-sync- Repository
- unknown: the derived plan's header carries no repository
- External issue
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
- State there
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
Findings
| Level | Code | Message | Reproduce |
|---|---|---|---|
| WARN | scope_conflict | shares docs with I1951; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/schemas with I1988; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/schemas with I2401; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs with I2484; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs with I2700; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/schemas with I2701; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs with I2702; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs with I2704; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs with I2705; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs with I2706; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares docs with I2709; they may not run concurrently | majordomus plan validate |