Skip to content

Add draft-topology repair escalation + open-requirements ledger#317

Merged
jmchilton merged 1 commit into
mainfrom
codex/draft-topology-repair-ledger
Jun 17, 2026
Merged

Add draft-topology repair escalation + open-requirements ledger#317
jmchilton merged 1 commit into
mainfrom
codex/draft-topology-repair-ledger

Conversation

@jmchilton

Copy link
Copy Markdown
Member

Opened by Claude (AI assistant) on behalf of @jmchilton — not authored by them personally.

Why

#311: the per-step Galaxy authoring loop is wrapper-tier only. When a draft step's declared output can't be computed from the inputs wired to it — e.g. a classification category no upstream step produces — the loop's only paths are spin or fabricate. The connection graph validates (ports connect) but the step can't be implemented.

Approach

The loop never decides topology — it escalates the decision back to the template tier. This preserves the draft-format boundary ("topology decisions do not belong in the per-step loop") rather than relaxing it.

  • repair-galaxy-draft-topology (new Mold) — the escalation target. Bounded topology repair (insert a producer step or small sub-path, or honestly narrow the output) as distinct from the template Mold's settling. Reuses the template's reference set; emits draft-tier TODO steps the existing discover-or-author → implement machinery realizes.
  • open-requirements-ledger (new artifact + research note) — reframes #281 from "open questions for a human" to obligations the autonomous pipeline discharges or explicitly surrenders. It is the countable substrate for the loop's decreasing-blocker convergence invariant (each escalation must reduce open entries, under a hard cap; leftovers are surrendered into the draft as labelled gaps). Threaded read+write through the whole design tier (interface, data-flow, reference-data, design, IWC-compare, template) plus implement-galaxy-tool-step and repair-galaxy-draft-topology.
  • Detection lives in implement-galaxy-tool-step (LLM, mid-implementation) — it can't live in the gxwf oracle, which is blind to whether wired inputs carry the needed evidence. It appends a blocking entry and falls through.
  • Pipelines — the implement-galaxy-tool-step phase becomes an implement-or-repair [branch] with fallthrough to repair, mirroring discover-or-author, in all four Galaxy pipelines.
  • Template bodies gain a computability-review pass targeting the ledger; design-tier bodies carry/append/resolve ledger entries (the threading is real, not inert frontmatter).
  • Contract clause in galaxy-workflow-draft-format.md is additive (settle vs repair); glossary entries added; Dashboard.md/Index.md regenerated.

Validation

npm run validate → 0 errors (158 pre-existing warnings, unchanged). npm run test → 100 pass.

Known follow-ups (left as open work)

  • How validate-galaxy-step treats a step backed by a surrendered (still-open) ledger entry is unspecified.
  • How surrendered entries surface in the stripped runnable gxformat2.
  • implement-galaxy-tool-step remains a stub apart from the now-real blocking-entry behavior.

🤖 Generated with Claude Code

A declared output that can't be computed from its wired inputs (output
category no upstream step produces) can only spin or fabricate. Add
recovery:

- New Mold repair-galaxy-draft-topology: escalation target the per-step
  loop reaches when implementation proves the settled topology can't
  support a step. Bounded topology *repair* (insert producer/sub-path or
  narrow output) vs the template's *settling*; reuses the template
  reference set. Declares the draft schema on its in/out.
- New artifact open-requirements-ledger (reframes #281 as autonomous
  obligations the pipeline discharges or surrenders, not human questions);
  countable substrate for the loop's decreasing-blocker convergence gate.
  Threaded read+write through the Galaxy design tier (interface,
  data-flow, reference-data, IWC-compare, template) + implement + repair.
  Carries a loop-level topology_repair escalation budget
  (escalations/cap/open_history); long-term home is the draft.
- draft-format: additive escalation clause — loop never decides topology,
  it returns the decision to the template tier; boundary preserved.
- advance-galaxy-draft-step: completes the raise->receive contract.
  Declares the ledger as in/out + references its note; new Sequence step
  reads the ledger after implement for a blocking entry and escalates to
  repair-galaxy-draft-topology (tracking escalations/open_history under
  cap), independent of the red/green validate branch — the uncomputable
  case validates green, so it can't ride the draft-validate failure
  buckets. Routing lives in the per-step loop, not a pipeline branch.
- implement-galaxy-tool-step: appends the blocking entry naming step,
  uncomputable output, and missing evidence; falls through rather than
  fabricating.
- Template bodies gain computability-review pass targeting the ledger;
  design-tier bodies carry/append/resolve ledger entries.
- glossary entries (open-requirements-ledger, topology-repair);
  regenerated Dashboard/Index.

validate: no new errors (3 pre-existing on main); test: 134 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jmchilton jmchilton force-pushed the codex/draft-topology-repair-ledger branch from 1d084ee to b881d36 Compare June 17, 2026 17:11
@jmchilton jmchilton merged commit 7aa94db into main Jun 17, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant