Skip to content

feat(dev): port dev workflow to compiled spec→plan→run.js (v5.56.0)#8

Merged
edwinhu merged 1 commit into
mainfrom
worktree-dev-spec-plan-compile
Jun 26, 2026
Merged

feat(dev): port dev workflow to compiled spec→plan→run.js (v5.56.0)#8
edwinhu merged 1 commit into
mainfrom
worktree-dev-spec-plan-compile

Conversation

@edwinhu

@edwinhu edwinhu commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Summary

Ports the dev workflow to the compiled spec → plan → run.js pattern — the second concrete instance after ds (#7). Replaces the generic-interpreter dev-implement.js (LLM "discovery" → per-level → heavyweight verifier) with a deterministic compiler + a per-plan compiled runner. Built parallel to ds (own scripts/dev/), not a premature shared-core extraction (that is the explicit next pass — ds + dev now triangulate the real seams).

What changed

New

  • scripts/dev/dev_plan_table.py — tolerant parser, dev columns (Task|Deps|Files|Failing Test|Verify Command|Implements) + lifts ## Global Constraints + per-task ## Task Interfaces. 32/32.
  • workflows/templates/dev-run-template.js + scripts/dev/dev_compile.pysequential-within-level driver (shared tree, no worktree-merge), TDD test-first implementer that inherits the session model (no tier), independent probe gating on the real Verify Command exit code ({exit0, filesPresent, testPresent}), R4 / declared / hybrid-fullsuite pauses, stale-gate backstop, no-phantom-RED rule. Driver 35/35.
  • docs/DESIGN-dev-spec-plan-compile.md — design + full parity log (§8c).

Changed

  • hooks/dev-plan-executable-guard.py reconciled to import the shared parser (compiles ⇔ passes gate) — closes the LLM-discovery format-drift mask.
  • skills/dev-implement/SKILL.md slimmed to COMPILE → run/pause; G6 doc-drift fixed (guard docstring + plan-template no longer claim worktree/parallel/merge).

Removed

  • workflows/dev-implement.js — retired after parity proven; no live caller.

Why (wc-audit, baseline 7.5/10)

G1 honesty fix: the old gate keyed on the implementer's self-reported verifyPassed + a non-executing corroboration — no component ever ran the Verify Command into the gate. The independent probe actually runs it, making "real exit codes, not self-judgment" true for the first time.

Parity — PROVEN on the real hylo-tauri repo

  • AB1 idempotent gate-first skip
  • AB2 R4 stale-gate backstop — implementer honors a decision in code then re-blocks on a stale Verify (fails loud, never bends code); full edit→recompile→green round-trip
  • AB3 payload carries deviations + test numbers (not a boolean)
  • Hybrid full-suite cadence both ways — terminal overlap → suppress; non-terminal overlap → pause→(real suite)→resume→advance; skipped level correctly doesn't re-fire (levelDidWork=false)
  • Bonus: a split-brain [object Object] bug that tsc+unit pass but integration breaks — live evidence for keeping the adversarial layer outside run.js

All ds safety invariants carried; ds suites unaffected (15/15, 28/28, grain-pause 12/12).

🤖 Generated with Claude Code

https://claude.ai/code/session_01UBQQ5zUqZYQjHuZaCrgbkJ

Replace the generic-interpreter dev-implement.js (LLM "discovery" → per-level
→ heavyweight verifier) with a deterministic compiler + a per-plan compiled
runner — the second concrete instance of the spec→plan→compile pattern after ds
(PR #7). Built parallel to ds (own scripts/dev/), NOT a premature shared-core
extraction (that is the explicit next pass, now that ds + dev triangulate the
real seams).

New:
- scripts/dev/dev_plan_table.py — tolerant parser for dev columns
  (Task|Deps|Files|Failing Test|Verify Command|Implements) + lifts
  ## Global Constraints and per-task ## Task Interfaces. 32/32.
- workflows/templates/dev-run-template.js + scripts/dev/dev_compile.py —
  sequential-within-level driver (shared tree, no worktree-merge), TDD
  test-first implementer that INHERITS the session model (no tier), independent
  probe gating on the REAL Verify Command exit code ({exit0, filesPresent,
  testPresent}), R4/declared/hybrid-fullsuite pauses, stale-gate backstop,
  no-phantom-RED rule. Driver 35/35.
- docs/DESIGN-dev-spec-plan-compile.md — design + full parity log (§8c).

Changed:
- hooks/dev-plan-executable-guard.py reconciled to import the shared parser
  (compiles ⇔ passes gate); fixes the LLM-discovery format-drift mask.
- skills/dev-implement/SKILL.md slimmed to COMPILE → run/pause; G6 doc-drift
  fixed (guard docstring + plan-template no longer claim worktree/parallel/merge).

Removed:
- workflows/dev-implement.js — retired after parity proven; no live caller.

Honesty fix (wc-audit G1): the old gate keyed on the implementer's self-reported
verifyPassed + a non-executing corroboration; the independent probe actually runs
the command. Parity PROVEN on the real hylo-tauri repo: idempotent skip, R4
stale-gate backstop + edit→recompile→green round-trip, payload-with-numbers, and
both hybrid-cadence cases (terminal→suppress, non-terminal→pause→resume→advance).
ds suites unaffected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UBQQ5zUqZYQjHuZaCrgbkJ
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