Rolling log of last 20 notable changes. Full history in git.
Silent-failure / compile-boundary fidelity audit (Ant Newman review series).
- Core: carry parallel execution through compilation via a first-class
ExecutionPlanon a singularCompiledStep.executionPlan(#65, PR #74).execution,parallel_steps,join, andjoin_timeoutwere dropped at the compile boundary;join_timeoutis kept as a duration string (matchingRetryPolicy). Parametrised across eachExecutionModeandJoinModeplus the null case.
- Core: preserve
verification.on_failthrough compilation (#64, PR #71). The recovery action (retry/escalate/skip/abort/revise) was silently dropped at the compile boundary. Now carried as a first-classCompiledVerificationon a singularCompiledStep.verification; the gate-validator return shape got its own nameQualityGateResult. Parametrised across all fiveOnFailActionvalues plus the null case. - Core: forward
quality_gates.pre_output[].on_failinto compiled output viaQualityGateResult.onFail(#72, PR #82). The pre_output gate recovery action was dropped at the compile boundary; now surfaced on the failing result and omitted when the author omits it. Parametrised across all fiveOnFailActionvalues plus the absent case. - MCP: HTTP transport responds with a structured 500 on handler error instead of hanging until socket timeout (#66, PR #79).
headersSent/writableEndedguards prevent a double-write. - Build: cli/mcp
postbuildschema copy now fails loud instead of|| trueswallowing both copy attempts (#67, PR #78). The bundled core validator reads its owndist/schema.jsonat runtime, so the copy is required. - Fixtures:
run-fixtures.mjsfails loud (exit 2) on non-ENOENTreaddirerrors instead of treating every error as "directory not found" and reporting partial success as full success (#68, PR #80).
- Deps: patch
fast-uri(2 High),qs(Moderate),uuid(Moderate) to close 7 Dependabot alerts via npmoverrides(#76).uuidresolved by a transitive@azure/msal-nodebump.
- Docs: replace stale
ROADMAP.mdwithSTATUS.mdas the user-facing status doc; ignore contributor PDFs (#77). - Core: the dry-run executor now reads a step's verification from
CompiledStep.verificationinstead of the un-compiled spec (#73, PR #84). Consumer side of #64; behaviour preserved (the compiler mapson_fail_messagetomessage). - Core/LangGraph: the executor reflects
CompiledStep.executionPlanontoStepTrace.executionPlan, and the LangGraph adapter reflects it ontoStateGraphNode.metadata.executionPlan(#75, PRs #85 and #86). Consumer side of #65; consume-and-reflect only, no concurrent scheduler.
- CLI: pin
toCanonicalfailure modes for malformed frontmatter, distinguishing throw (malformed / tab YAML) from null (unbalanced delimiters, no frontmatter) (#69, PR #81).
- Core:
schema.ts,parser.ts,validator.tsloadgray-matter/ajv-formats/schema.jsonvia static ESM imports instead ofcreateRequire/readFileSync. ThecreateRequirepath broke under single-file bundlers (bun--compile); consumers were carrying this as a local patch. Matches the fix already shipped in@marchese-md/core.
- Core: protocol-shape the spec — canonical schema, 18 conformance fixtures, RFC 2119 conformance section, discovery conventions (Phase 1)
- Core/CLI: dry-run executor, CI hardening, expanded CLI tests, benchmarks scaffolding (Phase 2)
- Core: tier-1 semantic canaries on compiled prompt output (#54) — 13 pinned assertions on executive phrasings the compiler must produce (output-schema rendering, quality gates, retry context, strategy preamble, branch context, step identity); regression-fires loudly if a refactor drops them.
- chore(deps): align toolchain on Node 22 LTS (#24) — CI runner bumped from Node 20 → 22;
@types/nodedowngraded from^24.12.2→^22.19.17across root +@logic-md/cli+@logic-md/mcp; rootengines.nodedeclared as>=22.0.0. Closes the runtime/types gap introduced by PR #23. - chore: bump TypeScript to 6.0.3 (from
~5.8.0) across root +@logic-md/cli+@logic-md/mcp. No source edits required; full build, test, and conformance suites green on 6.0.3. - chore(deps): bump ajv 8.18.0 → 8.20.0 (#38), yaml 2.8.3 → 2.8.4 (#43), zod 4.3.6 → 4.4.3 (#42), tinyglobby 0.2.15 → 0.2.16 (#14).
- chore: organisation rename SingleSourceStudios → SingularityAI-Dev across repo URLs and metadata.
- Core schema: enforce
[0, 1]bounds on probability/score fields, split violation enums into precise variants, fix dist build (7e48f4a). Previously-accepted out-of-range values are now rejected by@logic-md/corevalidators. - Docs: SPEC.md §4.1
Verification.on_failinline comment now documents all five schema-permitted values (retry,escalate,skip,abort,revise); added §4.1.1 Verification Properties table with per-value semantics; added conformance fixture009-verification-revisecovering step-levelon_fail: revise(#16).
- docs(spec): clarify Import.as required (#25)
- docs: add
llms.txtat repo root (#52) - docs: README positioning pivot (#50)
- benchmarks: publish 2026-05-07 cross-model results (#49)
- CLI: 6 new commands — init, test, watch, fmt, diff, completion (M4 merge from Modular9)
- CLI: 16 LOGIC.md templates (analyst, classifier, debugger, orchestrator, planner, etc.)
- CLI: commander-based argument parsing with shell completion support
- MCP server: 7 tools — parse, validate, lint, compile-step, compile-workflow, init, list-templates
- MCP server: stdio + HTTP transport with security sandboxing
- Claude Code plugin: 5 slash commands (apply, compile, init, status, validate)
- Core: exports field fix — main, types, default, ./package.json export
- CLI build system migrated from tsc to tsup (98KB bundle)
- MCP server uses tsup build (300KB bundle)
- Root build script now sequential: core (tsc) -> cli (tsup) -> mcp (tsup)
- Reasoning compiler: compileStep and compileWorkflow APIs
- Step compiler with system prompt generation, output schemas, quality gates
- Self-reflection compilation for rubric and reflection strategies
- Token estimation on compiled steps
- DAG-ordered workflow compilation
- CLI --step flag for single-step compilation with self-reflection output
- Compiler test coverage (scenario tests for workflow shapes and edge cases)
- LOGIC.md parser (gray-matter + YAML frontmatter)
- JSON Schema validator
- Expression engine for step conditions and outputs
- DAG resolver for step dependency ordering
- Import resolver for cross-file references
- CLI with validate, lint, compile commands
- Full test suite (307 tests)