Skip to content

fix: correct source DOT guidance and ship-check failures - #356

Merged
Brian Krabach (bkrabach) merged 4 commits into
mainfrom
maintenance-source-20260908
Sep 8, 2026
Merged

fix: correct source DOT guidance and ship-check failures#356
Brian Krabach (bkrabach) merged 4 commits into
mainfrom
maintenance-source-20260908

Conversation

@bkrabach

@bkrabach Brian Krabach (bkrabach) commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fix two source-side maintenance defects without changing the engine, pipeline model policy, workflow publication predicates, or any public API:

  • Correct the manager-child example README so dotted attribute keys use the Graphviz-valid quoted form already shipped by parent.dot, while documenting the runtime/parser distinction.
  • Add root guards that exercise the positive and negative Graphviz rendering witnesses and reject heading/teaching dodges.
  • Harden the ship_check command so git status / git ls-files failures cannot be treated as a clean or shipped tree; failures retain the existing dirty/escalate route.

This is the source-side fix for Attractor #336 and the canonical source half of dot-runner #28. Dot-runner #28 is intentionally not auto-closed by this PR; its port must land separately. Dot-runner #62 is the next port maintenance item.

Verification checklist

  • nlspec evidence: this change preserves reviewable DOT source and qualified-key guidance (nlspec sections 1.2, 2.2/2.3); the ship-check change preserves the existing failure/escalation routing (section 4.10). No engine extension or contract change is introduced.
  • Unit/root guards: 268 passed, 2 skipped; the focused documentation guard covers 9 tests.
  • Live-path evidence: real ToolHandler cases and the root-installed normal CLI path exercised strict lint (exit 0) and rendering. This is not a new engine/handler behavior change.
  • AGENTS.md reviewed; repository gates met.
  • Backward-compatible path unchanged; the existing dirty exit-zero escalation route remains intact.
  • No observable engine/API contract changed; no specs/EXTENSIONS.md entry is needed.
  • Documentation claim is pinned by tests/test_doc_consistency.py.
  • Pre-publication leak review: no new public content class, no artifacts or host paths added; deterministic leak checks and independent architecture/diagram review passed.
  • PR body includes verification evidence.
  • CI is green before merge; this PR is not authorized for merge in this leg.

Verification evidence

  • Root suite: 268 passed, 2 skipped.
  • Documentation guard: 9 focused tests passed.
  • Engine suite: 2335 passed, 237 skipped; the corresponding baseline was 2326 passed, 237 skipped with four pre-existing warnings. No engine files are changed here.
  • Real ToolHandler cases and the normal root-installed CLI path passed strict lint and render checks with exit 0.
  • The source and port decoded command strings were checked byte-identically before the port work; the port remains a separate, unpublished follow-up.
  • Independent architect and diagram review passed. The live evidence used normal DTU execution for the relevant cases, not a claim of a full fresh multi-hour LLM generation run. Raw private artifacts are intentionally not uploaded.

Notes for reviewers

  • The README's baseline bare dotted-key example was Graphviz-invalid; the adjacent parent.dot was already quoted and remains unchanged. The guard requires the quoted positive witness and a bare negative witness.
  • The ship-check change is local command hardening only. It does not weaken the shipped-artifact predicate, model pins, pair guard, or existing escalation behavior.
  • This PR intentionally covers the source half first. The dot-runner port and issue fix(loop-pipeline): fail-loud on prose-wrapped verdicts and folder checkpoint reuse #62 correction remain separate work.

Observations

None arose during this change.

CI prerequisite correction

The initial PR run failed in Opinionated Guards (repo root) because the runner did not have the dot executable: test_manager_child_parser_note_rendering_witnesses_match_its_teaching raised FileNotFoundError: [Errno 2] No such file or directory: 'dot'. The independent DOT Render Gate passed. The follow-up adds the existing Graphviz package prerequisite to the root guard job and updates the job comments/documentation; it does not alter the production README, DOT, or test logic.

This follow-up is a CI-environment correction only. Root verification evidence remains 268 passed, 2 skipped; production behavior and the reviewed DOT/documentation/test changes are unchanged. No private artifacts or DTU logs are uploaded.

Correct the manager-child example so it teaches Graphviz-valid quoted dotted keys, with a guard that renders both the accepted and rejected forms.

Harden ship_check so a git-status error remains an exit-zero dirty token and follows the existing dirty escalation edge.

🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier)

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
Format only the D-336 test code introduced by the preceding source maintenance commit; no production bytes change.

🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier)

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
Provision the root guard job with the Graphviz executable required by its D-336 rendering witness. Keep the documented job prerequisites accurate.

🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier)

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
The root guard job already installs Graphviz for the documentation render witness. Keep its comments accurate: the guard suite has no engine-module dependency, and Graphviz is an independent DOT-syntax prerequisite.

Generated with Amplifier

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
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