a-promoted-record-opens-its-message — Every record promoted from a workspace cites the message it came from, and the UI opens it for the operator who holds it
A typed workspace: reference on every record kind, valid in every checkout, resolvable where the store is held, drawn as a link on /ui and as text on the published site.
PLÁNOVÁNO 0 z 5 úkolů hotovo
- připraveno
- 1
- blokováno
- 4
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
The ChatGPT import promotes intents, ADRs, milestones, issues and knowledge with `conversation#message` sources, but the plan schemas carry no provenance at all and the shared Provenance grammar has no reference type for a workspace message, so the drill-back exists only in the writer's scratch files. Proposed in ADR 0211 (A record promoted from a workspace cites the message it came from by a typed reference that validates in every checkout and resolves only where the store is held) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c267#2, chatgpt-majordomus:c267#0, chatgpt-majordomus:c239#0.
Výsledek
A typed workspace: reference on every record kind, valid in every checkout, resolvable where the store is held, drawn as a link on /ui and as text on the published site.
Aktuální stav
Verified on master 707a04c: adr.v1 admits provenance derived_from ^(decision|session|commit|issue|file|test):.+$, knowledge.v1 adds task: and resolves decision, session and task references against the ledger, and the two origin semantics differ; intent, milestone and issue schemas have no provenance field; no schema under share/schemas uses a cross-file $ref; ui/prose.rs links known record ids only. The 2026-10-18 import wrote its sources only as prose chatgpt-majordomus:<conversation>#<n> references.
Cílový stav
workspace:chatgpt-majordomus/<conversation>#<message> validates everywhere, resolves locally, opens the message from /ui, and the 2026-10-18 positional references are pinned to message ids.
Rozsah
- share/schemas/majordomus
- apps/majordomus-cli/src/plan.rs
- apps/majordomus-cli/src/capability/builtin
- apps/majordomus-cli/src/ui
- dokumentace
Mimo rozsah
- Storing or summarising conversation text in any tracked record
- Publishing message text
Kritéria přijetí
- Five record kinds carry provenance from one reference grammar, inlined per kind at generate time
- A workspace reference validates in a clone with no store
- /ui opens the cited message where the store exists, for a loopback caller only
- Zero positional references remain, typed or in prose
Validace
- majordomus plan validate
Rizika
- A reference that resolves only against local state fails every other checkout (adopter report 2026-10-18, task: references); validity must be structural
- Decided by the owner on 2026-10-18: a public record cites a local alias (chatgpt-majordomus:cNNN#n) and the alias-to-conversation map stays in the operator's own store; a typed reference must keep that property.
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I3280 | PŘIPRAVENO | 0 | — | An intent, a milestone and an issue carry provenance the way an ADR and a knowledge record do |
| I3281 | BLOKOVÁNO | 1 | I3280, I1301 | A workspace message is a typed provenance reference that validates in every checkout without the store |
| I3282 | BLOKOVÁNO | 4 | I3281, I1308 | A workspace reference resolves to its message where the store holds it, and says 'not held here' where it does not |
| I3283 | BLOKOVÁNO | 5 | I3282, I1309 | The UI opens the message a record cites, and the published snapshot shows only the reference |
| I3284 | BLOKOVÁNO | 6 | I3278, I3279, I3281, I1304 | Every reference the 2026-10-18 import wrote is pinned to the upstream message it meant |
Graf
flowchart LR
I3280["I3280<br/>An intent, a milestone and an issue carry provenance the way an ADR and a knowledge record do"]:::ready
I3281["I3281<br/>A workspace message is a typed provenance reference that validates in every checkout without the store"]:::blocked
I3282["I3282<br/>A workspace reference resolves to its message where the store holds it, and says 'not held here' where it does not"]:::blocked
I3283["I3283<br/>The UI opens the message a record cites, and the published snapshot shows only the reference"]:::blocked
I3284["I3284<br/>Every reference the 2026-10-18 import wrote is pinned to the upstream message it meant"]:::blocked
I3280 --> I3281
I3281 --> I3282
I3281 --> I3284
I3282 --> I3283
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxOdkazováno z tohoto diagramu (5)
- I3280 An intent, a milestone and an issue carry provenance the way an ADR and a knowledge record do
- I3281 A workspace message is a typed provenance reference that validates in every checkout without the store
- I3282 A workspace reference resolves to its message where the store holds it, and says 'not held here' where it does not
- I3283 The UI opens the message a record cites, and the published snapshot shows only the reference
- I3284 Every reference the 2026-10-18 import wrote is pinned to the upstream message it meant
Canonical record: .ai/repo/project/milestones/a-promoted-record-opens-its-message.yaml. Read it back with majordomus plan show a-promoted-record-opens-its-message.