Skip to content

fix(scaffold): metrics-clean RUNLOG seed — retire both recipes' inline resets - #45

Merged
SollanSystems merged 1 commit into
mainfrom
fix/issue-40-metrics-clean-scaffold
Jul 10, 2026
Merged

SollanSystems merged 1 commit into
mainfrom
fix/issue-40-metrics-clean-scaffold

Conversation

@SollanSystems

Copy link
Copy Markdown
Owner

Closes #40.

Root fix, metrics-clean by construction: templates/RUNLOG.md.tmpl no longer seeds a parseable placeholder iteration. The seeded RUNLOG now carries an ## Entry format (reference — not an iteration, not scored) section that keeps the full instructional value (iteration format + complete outcome vocabulary for humans) while emitting zero ## Iteration blocks — metrics._runlog_blocks only scans ^## Iteration headings, so a fresh scaffold scores clean with no fabricated state.

  • The issue's acceptance snippet (emit.open_contract(ws) with no args) now prints []; iterations_claiming_success == 0.
  • No seed_runlog=False kwarg was added — clean-by-construction makes it dead weight (open_contract(target) signature unchanged; YAGNI, per the option the issue offers).
  • Both recipes drop their inline RUNLOG resets (examples/langgraph-emit/graph_example.py, examples/temporal-certify/workflow_example.py) and their explanatory comments; recipe docs/README prose updated where it referenced the reset.
  • The v0.8.0 plan's Global-Constraints carve-out paragraph is annotated [Retired …] (historical text preserved).
  • scripts/test_template_roundtrip.py drops the 14 now-unused RUNLOG fill keys — its strictest guard (test_every_template_fills_with_no_placeholder_remaining) can only catch more unfilled placeholders after key removal, never fewer.

New regression test in scripts/test_emit.py (test_open_contract_is_metrics_clean): asserts provenance.unrecognized_outcomes == [] and iterations_claiming_success == 0 on a fresh scaffold.

Verification (independent adversarial pass):

  • Negative control: the new test overlaid on an unfixed main archive fails with AssertionError: assert ['replace'] == [].
  • Full suite with engines installed (langgraph + temporalio): 399 passed / 11 skipped / 0 failed on the branch vs 398/11 on clean main in the identical env — delta is exactly the new test, zero regressions. The recipe ST3 tests assert unrecognized_outcomes == [] on the un-reset scaffold and pass.
  • Fresh-scaffold doctor round-trip still clean (test_open_contract_is_doctor_clean); self_eval 13/13; validate_frontmatter 9/0.

Copilot AI review requested due to automatic review settings July 10, 2026 03:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@SollanSystems
SollanSystems merged commit 163eced into main Jul 10, 2026
7 checks passed
@SollanSystems
SollanSystems deleted the fix/issue-40-metrics-clean-scaffold branch July 10, 2026 03:23
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.

emit.open_contract seeds a metrics-dirty RUNLOG placeholder

2 participants