docs(adr): /runda DA cleanup — reflect Phases 1-3 done, pin Bucket C
Surfaces from a Devil's-Advocate audit of the DSL → SQL teaching echo (ADR-0038) after Phases 1-3 landed: three doc-drift bugs introduced by the earlier handoff-47 / ADR-promotion commits — requirements.md M4 and both ADR-0038 README index entry + Status block still said "Phase 2 / Phase 3 remain," but `275c726` and `e6ad1ae` shipped them. Updated to reflect actual state: Buckets A + B complete plus the category-3 prose; only the §4 styled-runs polish remains. ADR-0037's README entry also touched to note all four shipping commits of its consumer. Plus a missing test slice the DA flagged: explicit no-echo coverage for the Bucket C cases that flow through command_to_sql's catch-all (show table, explain, replay, every Command::App variant). The contract — ADR-0030 §10 / ADR-0038 §7 Bucket C — forbids echoes for these; a future renderer arm added at the wrong place could silently leak one. The new bucket_c_no_echo_commands_all_return_none pins that. Tests: 2015 passed / 0 failed / 1 ignored (pre-existing); clippy clean. Nothing to escalate.
This commit is contained in:
@@ -2,25 +2,42 @@
|
||||
|
||||
## Status
|
||||
|
||||
Accepted. Design agreed with the user (2026-05-27); **Phase 1 (Bucket A)
|
||||
implemented and verified** by round-tripping every single-statement DDL
|
||||
row + `show data` + the `--all-rows` fall-throughs through the
|
||||
advanced-mode walker (the §1 copy-paste contract). Phase 1 shipped in two
|
||||
commits: handoff-46's `04c8e42` (channel + create-table slice; ADR-0037 +
|
||||
this ADR) and handoff-47's `90479cb` (the renderer's full Bucket A
|
||||
expansion — `Value → SQL-literal` + `Expr → SQL`, `add`/`drop`/`rename`/
|
||||
`change column`, the four `add constraint` + two `drop constraint` forms,
|
||||
`show data [where] [limit]` with PK-sourced `ORDER BY`, and the
|
||||
`delete`/`update … --all-rows` fall-throughs; also fixed a contract gap
|
||||
in the skeleton's create-table echo that silently dropped per-column
|
||||
`DEFAULT` / `CHECK`). **Phase 2 (Bucket B — resolved-name + multi-line
|
||||
echoes), Phase 3 (category-3 prose expansion), and the §4 de-emphasised
|
||||
styled-runs rendering polish remain** — see §8 phasing + handoff-47 §5.
|
||||
**Realises ADR-0030 §10** ("The DSL → SQL teaching bridge") — the Phase-5
|
||||
echo that **ADR-0035 §12 forward-referenced** as "a separate ADR." Builds
|
||||
on **ADR-0037** (the execution-time mode side-channel that gates it) and
|
||||
**ADR-0035 Amendment 2** (the standard-first dialect + `ALTER COLUMN`
|
||||
gap-fill that makes its DDL echoes runnable).
|
||||
Accepted. Design agreed with the user (2026-05-27); **Phases 1–3
|
||||
implemented and verified** by round-tripping every catalogue row
|
||||
(§7 Buckets A, B, plus the §6 category-3 prose) through the
|
||||
advanced-mode walker (the §1 copy-paste contract; §6 category 2
|
||||
holds it per line). Shipped across three feature commits:
|
||||
**Phase 1 — Bucket A single-statement** (handoff-46's `04c8e42`
|
||||
delivered the channel + create-table slice; handoff-47's `90479cb`
|
||||
expanded to the full Bucket A — `Value → SQL-literal` + `Expr → SQL`,
|
||||
`add`/`drop`/`rename`/`change column`, the four `add constraint` +
|
||||
two `drop constraint` forms, `show data [where] [limit]` with
|
||||
PK-sourced `ORDER BY`, and the `delete`/`update … --all-rows`
|
||||
fall-throughs; also fixed a skeleton contract gap that silently
|
||||
dropped per-column `DEFAULT` / `CHECK` on the create-table echo).
|
||||
**Phase 2 — Bucket B resolved-name and multi-statement** (`275c726`):
|
||||
`add index` (auto- and user-named, resolved from the post-execution
|
||||
description), positional `drop index`, `add`/`drop relationship` in
|
||||
both `Endpoints` and `Named` selector forms (the named drop
|
||||
resolved by a small list-tables scan, acceptable for teaching-
|
||||
playground schemas), `drop column --cascade` (multi-line via
|
||||
`DropColumnResult::dropped_indexes`), and `add relationship
|
||||
--create-fk` (multi-line iff the child column was newly created;
|
||||
parent PK type + pre-state captured pre-execution via the runtime's
|
||||
new `collect_echo_lookups`). **Phase 3 — category-3 prose**
|
||||
(`e6ad1ae`): `shortid` generation and type-conversion transforms
|
||||
already surfaced via the pre-existing `client_side.auto_fill_*` /
|
||||
`client_side.transformed*` notes — Phase 3 only added the missing
|
||||
`change column --dont-convert` **caveat** (the only Bucket A
|
||||
caveat; every other category-3 line is illuminating), gated on an
|
||||
advanced effective mode because it references "the line above".
|
||||
**The §4 de-emphasised styled-runs rendering polish remains** — the
|
||||
echo + caveat currently surface as plain `[system]` lines.
|
||||
**Realises ADR-0030 §10** ("The DSL → SQL teaching bridge") — the
|
||||
Phase-5 echo that **ADR-0035 §12 forward-referenced** as "a separate
|
||||
ADR." Builds on **ADR-0037** (the execution-time mode side-channel
|
||||
that gates it) and **ADR-0035 Amendment 2** (the standard-first
|
||||
dialect + `ALTER COLUMN` gap-fill that makes its DDL echoes runnable).
|
||||
|
||||
## Context
|
||||
|
||||
|
||||
+2
-2
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user