Skip to content
Cockpit0.29.0
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

I1307

The ChatGPT shape is mapped from evidence and never becomes the canonical model

Where it stands

devtask.issue
Readiness
blocked 2 of its dependencies are not DONE
Status
BLOCKED
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
4
Waiting on
Holds back
none
Behind it in all
0
Evidence
0 of 4
In the waySubjectDetail
issueI1302I1302 is not DONE
issueI1305I1305 is not DONE
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1307

majordomus plan verify I1307

majordomus plan done I1307

What it is

Objective
Map what a ChatGPT Project actually exposes — the project, its conversations, the message graph, content parts, attachment metadata, project instructions — onto the canonical record model, mapping only what an observation supports.
Why
The vendor's own shape is a transport detail with a fingerprint (I1305). If it reaches the store or a capability, then the day the vendor reorganises its message graph the repository's model changes with it, and every consumer breaks for a reason none of them can see.
Now
Nothing exists. No observation has been taken.
Wanted
One mapper turns observed vendor records into the canonical model of I1302. A message graph with branches is preserved as a graph rather than flattened into a list. Content parts keep their type. Attachment metadata is mapped; content is downloaded only where the declaration says downloading is authorised. Anything the evidence does not support is absent, not guessed.
Done when
unknown: the record declares no `completion`
Risk
Mapping ahead of evidence. Every field here must point at an observation that was actually taken, or it is a guess with a schema around it.

Acceptance

  • No vendor DTO field reaches the store or a capability without passing through the mapper
  • A branched conversation keeps its graph; no branch is silently dropped or linearised
  • Content parts keep a typed discriminator rather than being concatenated into text
  • A field the evidence does not support is absent rather than defaulted
  • The mapper is proven against sanitised fixtures with no live account
Validation
bash test/run.sh
Evidence required
mapper_boundarygraph_preservedparts_typedfixtures_prove_it
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
scripts/libtest/cases
Not
Any canonical field invented to match a vendor field with no consumerDownloading attachment content where the declaration does not authorise it
Depends on
Priority
p1
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

Nothing is wrong with these records.