99 lines
5.2 KiB
Markdown
99 lines
5.2 KiB
Markdown
# Session 0014.0 — Transcript
|
|
|
|
> App: vscode-cowriting-plugin
|
|
> Start: 2026-06-10T22-27 (PST) · End: 2026-06-10T22-34 (PST)
|
|
> Type: brainstorming
|
|
> Goal: spec Feature #14 (F5 — cross-rung format + Gitea round-trip) — leg 2
|
|
> of the `/goal F5` arc (session 0013 captured #14).
|
|
> Outcome: **Solution Design graduated** — content
|
|
> `specs/coauthoring-cross-rung-format.md` (`8a6409c`); all six design forks
|
|
> resolved; new invariants INV-14..17.
|
|
|
|
## Launch prompt
|
|
|
|
```
|
|
Brainstorm the Solution Design spec for Feature #14 (F5 — cross-rung git-native persistence format + Gitea round-trip) on benstull/vscode-cowriting-plugin, resolving the six design forks routed there by the capture (substrate carrier; contract form/home; cross-rung identity; merge semantics; round-trip proof shape; versioning), then graduate it to vscode-cowriting-plugin-content/specs/. (Leg 2 of the /goal F5 arc; session 0013 captured #14.)
|
|
|
|
```
|
|
|
|
## Plan
|
|
|
|
1. Orient: anchor Feature #14 (non-epic — R1 passes); inputs = the shipped
|
|
sidecar model (model.ts read in full this conversation), all three
|
|
graduated specs (esp. F2's substrate decision table), rfc-app#46 (fetched
|
|
session 0013), the engineering central-schema pattern. No BDD corpus
|
|
registered for this app.
|
|
2. Resolve the six forks: (a) substrate carrier, (b) contract form/home,
|
|
(c) cross-rung identity, (d) merge semantics, (e) round-trip proof shape,
|
|
(f) versioning — grounded in the shipped format facts.
|
|
3. Write the Solution Design locally; graduate at finalize via the
|
|
brainstorming addendum (autonomous → `--status graduated`).
|
|
|
|
## Turn-by-turn arc
|
|
|
|
1. **Init.** Claimed 0014 (`--type brainstorming`); clean pushed `main`;
|
|
anchor #14 is `type/feature` → R1 passes. No BDD corpus for this app.
|
|
2. **Context.** Already deep from this conversation: full `model.ts` (incl.
|
|
the discovery that `serializeArtifact` drops unknown fields — the
|
|
forward-compat gap that became INV-15), F2's substrate decision table,
|
|
rfc-app#46's body (session 0013), all three OPEN→F5 entries, the
|
|
engineering central-schema discipline.
|
|
3. **Forks resolved** (alternatives in spec §6.7): (a) sidecar stays the
|
|
canonical carrier — notes/trailers get worse cross-rung, forges read JSON
|
|
natively; (b) prose contract in the content repo + JSON Schema
|
|
code-resident in the plugin repo (ajv dev-only); (c) identity = git's
|
|
model — `email` on Provenance + `agent.onBehalfOf` (rfc-app#46 §6.5);
|
|
(d) merge = pure 2-way `mergeArtifacts` union-by-id, conflicts surfaced
|
|
(INV-17); (e) proof = local stand-in writer script + external-change E2E +
|
|
byte-stability (no real forge in CI); (f) all additive — `schemaVersion`
|
|
stays 1, INV-16 rules incl. writer unknown-field preservation (INV-15).
|
|
4. **Spec written** locally
|
|
(`docs/superpowers/specs/2026-06-10-f5-cross-rung-format-design.md`);
|
|
new invariants INV-14..17; 5 slices; host E2E first-class; no manual
|
|
smoke (no LLM leg); Claude-Code-not-Claude-Design recorded in §5.
|
|
5. **Self-review** passed.
|
|
|
|
## Deferred decisions
|
|
|
|
_Autonomous-mode low-confidence calls the driver made and would have
|
|
liked operator input on. Appended as the session runs; surfaced at
|
|
finalize. Empty if none._
|
|
|
|
- **Skipped interactive design review** (same call as session 0011): spec
|
|
graduates without operator review under autonomous posture + the standing
|
|
`/goal`; §6.7/§9 log every fork with alternatives for post-hoc
|
|
re-litigation.
|
|
- **Schema home = plugin repo, not engineering central:** chose code-resident
|
|
(next to the reference implementation, consumed by the unit suite) over the
|
|
org-central `schemas/` discipline, with graduation to central explicitly
|
|
parked at §9 OPEN→Gitea-rung. Defensible either way — flagging it.
|
|
- **Emails committed to the repo as identity:** ratified git's own model
|
|
(commits already carry emails) rather than inventing forge-neutral ids;
|
|
noted as PII-class in §6.6. Operator may prefer an opt-out config later.
|
|
|
|
## Cut state (end of session)
|
|
|
|
| Item | State |
|
|
| --- | --- |
|
|
| Spec `coauthoring-cross-rung-format.md` | **Graduated** in content repo at `8a6409c` |
|
|
| Plugin repo `main` | Clean, pushed (no code changes this session) |
|
|
| Feature #14 | Open, now spec-backed — eligible R2 anchor for planning-and-executing |
|
|
| Content repo working tree | Three uncommitted issue drafts (Author's plate, unchanged) |
|
|
| Memory | `f5-cross-rung-spec-graduated` written; carries the current Next /goal |
|
|
|
|
## What lands on the operator's plate
|
|
|
|
- Review the graduated spec at
|
|
`vscode-cowriting-plugin-content/specs/coauthoring-cross-rung-format.md` —
|
|
graduated without interactive review (autonomous posture); §6.7 + §9 hold
|
|
every fork's alternatives. The three flagged calls above (review skip;
|
|
schema home; emails-as-identity) are the ones most worth a look.
|
|
- Three uncommitted content-repo issue drafts remain yours to publish or
|
|
discard.
|
|
|
|
## Prompt the operator can paste into the next session
|
|
|
|
```
|
|
/goal Implement Feature #14 (F5 cross-rung format + round-trip) per the graduated spec vscode-cowriting-plugin-content/specs/coauthoring-cross-rung-format.md — plan just-in-time from its §7.2 slices, then execute; done = contract + schema published, unit + host E2E green (round-trip, merge, fail-safe, unknown-field preservation all exercised).
|
|
```
|