Single SourceStudios Engage SSS
Two evidence dossiers · one shared integration history · compiled 2026-08-03

The reasoning contract and the platform built to run it.

LOGIC.md declares AI agent reasoning as a validated, typed contract instead of prose. Modular9 is the production system that wires that contract into a live, multi-agent visual builder: 165 specialist plugins, 46 connectors, one DAG engine, three deploy targets. This paper reads the two evidence dossiers side by side to ask what a reasoning-contract format earns once it is load-bearing inside a shipping product, rather than sitting in a benchmark fixture.

logic-md: MIT licensed, 249 commits
modular9: 1,084 commits
Both solo-built
Dossiers compiled 2026-08-03
165specialist plugins that can carry a LogicSpec contract
2LOGIC.md packages vendored inside Modular9's own monorepo
29conformance fixtures validating the contract format itself
0measured quality lift in LOGIC.md's own published benchmark, n=10
Abstract

What adoption inside a real codebase can and cannot prove.

LOGIC.md is a file format and TypeScript toolchain, 249 commits, three published npm packages, for declaring AI agent reasoning as YAML frontmatter: step DAGs, typed input/output contracts, and quality gates, compiled and validated against a canonical JSON Schema rather than left as prose. Modular9 is a 1,084-commit, solo-built Next.js application in which every specialist node can carry that exact contract, declared as an optional LogicSpec alongside a base system prompt and a stack of custom-skill modifiers. Modular9's own commit history tags nine milestones, M3 through M6, directly against the LOGIC.md integration, and two of LOGIC.md's own packages, its CLI and its MCP server, live inside Modular9's monorepo and run internally. This paper reads both dossiers together to separate what that adoption proves from what it does not: integration and survivability under production churn, not a measured quality lift, which LOGIC.md's own published benchmark explicitly failed to find.

The problem

A contract format needs a load-bearing deployment, not just a fixture.

LOGIC.md's own dossier is explicit about what its repository does and does not demonstrate on its own.

01, NO LIVE RUNTIME

The executor only traces

"There is no live LLM-calling runtime in this repo: the executor traces what a run would look like against the compiled contract; it does not make model calls, run a concurrent scheduler, or enforce join_timeout" (logic-md, identity).

02, NO MEASURED LIFT

The self-published benchmark is flat

A 2026-05-07 run at n=10 per condition found no measurable quality lift: one model was already ceiling-bound, the other flat to slightly negative once infrastructure failures were excluded (logic-md, hard metrics).

03, ISOLATED FIXTURES

Conformance tests validate structure, not agents

The 29-file conformance suite, 9 valid, 14 invalid, 6 edge-case, checks that a spec parses and validates against the schema. It says nothing about what happens when a compiled contract sits inside a running multi-agent system (logic-md, hard metrics).

None of that answers whether the contract survives being wired into a real, evolving codebase under production pressure. Modular9 is the one place both dossiers describe the same integration from two separate vantage points: LOGIC.md's own repository, and the repository of the system that adopted it. A dry-run trace, a flat benchmark, and a schema-validation suite each tell you something about the format in isolation; none of them tell you whether a busy solo maintainer, shipping a separate 1,084-commit product on a separate deadline, kept the contract wired in once it stopped being new.

The approach

Vendored, not evaluated: the contract lives inside the system it is judged against.

Neither dossier describes LOGIC.md being pulled into Modular9 as an external dependency and evaluated at arm's length. Both describe a tighter arrangement: the tool's own packages sit inside the consuming monorepo, the consuming application's milestone tags are named after the tool's own integration phases, and the node primitive that carries the contract is the same primitive every specialist plugin uses. Five mechanisms, drawn from the two dossiers, describe how that arrangement actually works.

Three-layer node composition

per specialist

Every specialist node's behavior in Modular9 is composed at three layers: a base plugin system prompt, an ordered stack of user-selected custom-skill modifier blocks (91 skills, 60 hand-authored and 31 generated), and an optional LogicSpec reasoning contract from @logic-md/core declaring a strategy (cot, react, tot, plan-execute, got), typed input/output, and quality gates (modular9, identity; custom-skills.ts:147-739).

Vendored packages, matching integers

same monorepo

Two monorepo packages implement the standalone LOGIC.md tooling Modular9 also runs internally: packages/cli (9 commands, 16 templates) and packages/mcp (7 MCP tools, stdio and HTTP transport) (modular9, architecture). Those exact counts, 9 CLI commands, 16 templates, 7 MCP tools, are independently confirmed by LOGIC.md's own dossier, compiled from LOGIC.md's separate repository (logic-md, hard metrics). Two independently-compiled dossiers agree to the integer on the surface area of the vendored tool.

Concurrent milestone tagging

April 2026

Modular9's own git history carries 9 annotated tags, v1.1 through v1.5.0, labeled M3 through M6 directly against the LOGIC.md integration (modular9, hard metrics): M3 reasoning middleware ships 2026-04-03, M4 CLI extension 2026-04-03/04, M5 MCP server 2026-04-05/14, M6 Claude Code plugin 2026-04-05/17 (modular9, timeline). LOGIC.md's own release sequence runs through the same window: v1.1.0 on 2026-04-02 ships the compiler, v1.4.0 on 2026-04-09 grows the CLI to 9 commands and 16 templates and adds the MCP server and Claude Code plugin (logic-md, timeline). The two histories overlap by days, not months, evidence of concurrent, coupled development rather than a finished package adopted after the fact.

A separate execution path

dag-runner.ts

A specialist's LogicSpec is declared as part of node composition, but the node itself executes inside Modular9's own dag-runner.ts (910 lines), not inside LOGIC.md's dry-run executor. Three callers, a BullMQ worker on Render, a Vercel web tier that enqueues and returns, and a local inline executor, all resolve the same DAG through that one shared engine (modular9, identity; architecture). Modular9's own fan-in semantics, keyed by edge id rather than target node id so N converging outputs all survive, are a Modular9-authored primitive; neither dossier states that this replaces or implements anything LOGIC.md's own spec defines for step joins (modular9, decisions).

An outward MCP surface

10 tools

A third monorepo package, packages/modular9-mcp, exposes Modular9's own workflows, templates, packs, plugins, and knowledge bases as 10 MCP tools for external agent clients (modular9, architecture). Modular9 is not only a consumer of LOGIC.md's protocol tooling; it extends the same protocol outward from its own catalogue.

The evidence

What the two dossiers actually measure, read without cherry-picking.

Scale, first: the two codebases are comparable in shape, not size. LOGIC.md is a small, focused toolchain; Modular9 is roughly four times the commit volume and carries a full deployment surface LOGIC.md does not need. That asymmetry matters for what follows: a small tool being vendored whole into a much larger, actively shipping application is a stronger integration signal than two similarly-scoped projects cross-referencing each other.

Metriclogic-mdmodular9
Commits, timespan249, 2026-03-31 to 2026-07-241,084, 2026-02-24 to 2026-08-01
Author patternRainier Potgieter 210, dependabot 31, 2 minor human commits2 emails, one person, solo build
Test suite (recorded)core 401, cli 119, mcp 19; root run covers 520492 passed, 2 todo
Published surface3 npm packages, 1 alpha PyPI SDK, 1 VS Code extension0 published packages; vendors logic-md's cli and mcp, ships its own 10-tool MCP server
CLI commands / templates / MCP tools (vendored)9 / 16 / 79 / 16 / 7 (same packages, same repo)
Deploy targetsnone, library onlyVercel, Render worker, Docker self-host

On output quality, the two available results do not agree with each other, and neither is a clean win for the contract format. LOGIC.md's self-published benchmark (2026-05-07) tested two models at n=10 per condition: Claude Sonnet 4.6 on a code-review task was already ceiling-bound (control 99, treatment 100); Llama 3.1 70B was flat to slightly negative across code-review, research-synthesis, and security-audit once seven NVIDIA NIM connection drops were excluded (logic-md, hard metrics). A separate 60-trial test against the third-party tool Archon (2026-05-06) is the only third-party comparison either dossier reports:

Stock promptLOGIC.md via MCP
Hash agreement (verdict + critical + high tuple)70%87%
Verdict-label agreement (label only)100%87%
Runtime per trial34.5s91.0s, +164%

60-trial test (3 fixtures × 2 cases × 10 runs) against Archon, 2026-05-06 (logic-md, hard metrics).

Read plainly: LOGIC.md-via-MCP raised agreement on the full structured-output tuple, but lowered agreement on the verdict label alone, and cost 164% more runtime. Two of the three rows favor the stock prompt. Neither dossier reports a Modular9-specific experiment isolating the effect of enabling or disabling a LogicSpec on a live specialist node's output. What both dossiers do support is that the contract is present, wired into node composition across the plugin catalogue, and has survived eight months of continuous refactoring without being pulled back out. That survival is itself evidence, of a different kind than a benchmark score.

A 5,038-line switch collapsed to 56 lines, verified as a pure move

Modular9's connector dispatch moved from a runtime switch statement to a compile-time-checked registry; 65 of 69 declarations were byte-identical, the 4 differences intentional (modular9, decisions).

A major TypeScript upgrade was attempted and reverted

tsc itself typechecked clean in about 0.6 seconds under TypeScript 7.0.2, but typescript-eslint@8.65 pins a peer range excluding TypeScript 7 and next build 16.2.4 rejects the TS7 package shape; the blocker is upstream, not in the codebase carrying the LogicSpec primitive (modular9, decisions).

A ranked-risk cycle took lint and typecheck from decorative to CI-gated

The 2026-08-01 cycle took 135 warnings and 246 tsc errors to zero, fixed a real path-traversal vulnerability in getDocBySlug, and split the connector executor, all in the same codebase where the LogicSpec contract is declared per node (modular9, timeline).

Limitations and open problems

What neither dossier closes.

Security, disclosed and unimplemented Modular9 does not implement Postgres Row-Level Security. Tenant isolation is enforced only in the application layer; the dossier confirms an automated test suite covers that enforcement, but the database itself does not (modular9, decisions). Role-based access control and team workspaces do not exist. Auth-endpoint rate limiting does not exist. SOC 2 controls and structured audit logging do not exist. All five are named on the roadmap in Modular9's own SECURITY.md and are absent today, not partially built (modular9, boundary).
No Modular9-specific outcome measurement Neither dossier reports a before-and-after test of a LogicSpec on a live Modular9 specialist node: no run with the contract enabled compared against the same node with it removed, on Modular9's own workloads. The evidence for adoption is architectural, the contract is declared across the catalogue, not empirical, no measured effect on what any specialist node actually produces.
The format's own benchmark is negative to flat LOGIC.md's self-published n=10 benchmark found no measurable quality lift, one model ceiling-bound, the other flat to slightly negative. The maintainer's own record states this result "contradicts the original describing-vs-doing fix framing in the README and motivated the positioning pivot toward auditability and structural consistency" (logic-md, decisions).
The only third-party comparison is mixed The 60-trial Archon test raised hash agreement (70% to 87%) but lowered verdict-label agreement (100% to 87%) and added 164% runtime. It is not a clean win, and this paper's evidence table above presents it that way deliberately.
Gate enforcement at runtime is not confirmed LOGIC.md's own dossier states its executor is dry-run and trace only, with no live model calls, no concurrent scheduler, and no join_timeout enforcement (logic-md, identity, boundary). Modular9's dossier confirms a specialist node can declare a LogicSpec, strategy, typed I/O, quality gates, as part of node composition, but does not state that Modular9's own dag-runner.ts evaluates those quality gates or self-verification fields at runtime. Neither dossier closes this gap.
Schema drift is live, not historical LOGIC.md's schema exists in three physically separate copies: the canonical core copy, a synced spec copy, and a Python SDK copy that is currently stale. Four parametrized Python conformance cases fail today because that third copy never received the bounds and violation-enum fix from commit 7e48f4a (logic-md, hard metrics, decisions).
Coverage excludes the modules doing the most work LOGIC.md's compiler.ts and executor.ts are excluded entirely from its own coverage measurement. The 90% coverage thresholds are global, not per-file, and are not enforced in CI (logic-md, decisions).
The multi-agent adapter is failing LOGIC.md's LangGraph adapter is explicitly experimental: not an npm workspace member, excluded from lint scope, absent from the build config, and, per STATUS.md, failing its own test suite from stale core-API drift (logic-md, architecture, boundary). Modular9 does not use it; Modular9's own DAG engine is a separate, unrelated execution path.
Sourcing is mixed, not 165 original prompts Manifests on Modular9's 165 specialist plugins show 13 authored natively as "Modular9," 7 from Composio, and the rest from named individuals or Anthropic, a mixed build-and-adapt sourcing strategy for the catalogue that carries the LogicSpec primitive (modular9, architecture).
Both dossiers are repository audits, not live-system audits Neither dossier verifies production database contents, live traffic, or usage numbers. Neither is a security audit or a performance benchmark. Modular9's usage-metering migration, 0012_usage_metering.sql, was still unapplied against a live database as of the last recorded status (modular9, boundary; logic-md, boundary).
Implications

What survives production churn is evidence of a different kind than a benchmark score.

LOGIC.md's maintainer already repositioned the project's public claim after its own benchmark came back negative: from a quality-lift pitch to an auditability and governance pitch (logic-md, decisions). Modular9's adoption is consistent with that repositioning, not a rebuttal of it. Nothing in either dossier claims Modular9 is faster or more accurate because a specialist node carries a LogicSpec. What both dossiers support is narrower and more concrete: the contract format was cheap enough to vendor, version alongside nine of Modular9's own milestone tags, and carry through eight months of continuous refactoring, a 5,038-line switch collapsed to a 56-line registry, a major TypeScript upgrade attempted and reverted, a full security remediation cycle, three separate deploy targets, without being abandoned or quietly stripped out.

For a prospective adopter, the implication of reading these two dossiers together is narrower than either project's own marketing suggests. LOGIC.md is evidenced as an integratable, versionable file format that a solo-maintained, production application chose to vendor and keep. It is not evidenced, by either dossier, as a technique that measurably improves what a specialist node produces. Anyone adopting it on the strength of Modular9's example should adopt it for the same reason Modular9 apparently did: structure, contracts, and an audit trail, not a quality lift that neither project's own numbers support.

For LOGIC.md's own roadmap, the live schema-drift bug and the coverage gap around compiler.ts and executor.ts are the kind of defect that a second, independent, larger consuming codebase tends to surface over time; whether a future Modular9 dossier reports a bug traced back to that exposure is an open question the next compile should check. For Modular9's own security roadmap, the same production pressure that already forced two real fixes this cycle, the HTTP-status error-classification bug and the path-traversal vulnerability in getDocBySlug, is the same pressure the disclosed Row-Level Security and rate-limiting gaps sit under today. The dossier records intent to close them. It does not record a timeline.

The narrower reading holds up either way: a reasoning-contract format proved something by surviving inside Modular9, but what it proved is that a solo maintainer kept using their own tool once the pressure was real, not that the tool changed what any agent produced. Those are different claims, and only the first one has evidence behind it in these two dossiers.

Evidence: compiled from the logic-md and modular9 repositories on 2026-08-03, via their evidence dossiers at docs/dossiers/logic-md.md and docs/dossiers/modular9.md. Every number on this page traces to a file path, command output, or recorded test run cited in those two dossiers. Last updated: 2026-08-03.

Single Source

Every number on the dossier and whitepaper pages traces to a file path or command output in the source tree.

LinkedIn Facebook (c) 2026 Single Source Studios (Pty) Ltd