Skip to content

Commit c83f147

Browse files
committed
docs(deltawire): record supervisory control gaps
1 parent 2bf060e commit c83f147

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

labs/20-deltawire/GAPS.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Supervisory generation-control gaps
2+
3+
Status: non-blocking follow-ups to the supervisory-control implementation in PR #123.
4+
5+
The main concept is working: a synthesized supervisor controls compile, stage, verify,
6+
promote, recovery, and abstention; strict YAML compiles to the existing JSON plan IR;
7+
an independent evaluator checks the generated bytes; and tested failures preserve the
8+
previous artifact. The deterministic evaluation and CI require no model calls.
9+
10+
These items are hardening or measurement improvements, not merge blockers.
11+
12+
## Higher-priority hardening
13+
14+
1. **Crash-durable promotion recovery.** Promotion has in-process rollback, but there is
15+
no durable journal spanning a process or machine crash between rename, state, and
16+
final-receipt writes. A future change should add a small write-ahead promotion record
17+
and recovery test matrix.
18+
2. **Stronger replay closure.** Stored receipts recheck the decision chain and released
19+
output. They could additionally bind and revalidate every retained lifecycle artifact,
20+
including the compiled plan, reference output, staged output, and engine state.
21+
3. **Narrow schema TOCTOU exposure.** Freeze schema bytes once and pass that immutable
22+
value through staging and verification rather than reopening the source path at later
23+
phases.
24+
4. **Pre-materialization resource bounds.** Reject obviously oversized finite products
25+
from their cardinality before expanding rows or compiling a plan.
26+
27+
## Lower-priority completeness
28+
29+
5. Preserve exact integer condition comparisons above JavaScript's safe-integer range;
30+
the current condition evaluator uses floating-point numeric comparison.
31+
6. Reject additional ambiguous YAML scalar spellings if interoperability demands a
32+
narrower lexical format.
33+
7. Increase common-mode independence between the compiler and reference evaluator by
34+
splitting any remaining shared low-level expansion helpers.
35+
8. Add an explicit direct-spec order assertion. Full byte comparison already detects
36+
ordering differences, but the source language does not expose order as an assertion.
37+
9. Harden artifact-path handling against concurrent symlink replacement and other
38+
filesystem races beyond the current path and staging checks.
39+
10. Expand the Pareto report with compiled-plan bytes, timing, and mutation-coverage
40+
metrics if those measurements become useful for selecting later AI candidates.
41+
42+
## Explicit boundaries
43+
44+
- The supervisor cannot infer incorrectly approved or unstated intent; external approval
45+
or a task oracle remains necessary.
46+
- The current proof is for the declared finite-state model and tested runtime boundary,
47+
not a claim against arbitrary operating-system, hardware, or privileged-adversary faults.
48+
- The deterministic comparison establishes correctness and interface size only. It does
49+
not establish model-token or cost savings without a later controlled AI evaluation.
50+

0 commit comments

Comments
 (0)