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
0of4
| In the way | Subject | Detail |
|---|---|---|
| issue | I1302 | I1302 is not DONE |
| issue | I1305 | I1305 is not DONE |
Moves
plan.transitionWhat 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.