You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The MCP session executing this check was scoped to loa-constructs only. loa-compositions and loa-hivemind returned Access denied on every MCP call. HTTPS git clone was also unavailable in the execution environment (no network credential path). As a result:
bun scripts/validate-strict.tscould not be run
Composition YAML inventory could not be taken
PR activity in loa-compositions could not be queried
Resolution: Re-run from a session whose MCP scope includes all three repos, or from a machine with git clone access. The rest of this report covers what was verifiable from the loa-constructs side.
Inventory
Compositions on main (loa-compositions): unknown — access blocked
PRs merged in window (loa-compositions): unknown — access blocked
Composition YAMLs added/modified in loa-compositions: unknown
loa-constructs activity in window (2026-04-28 → 2026-05-04)
hivemind_labels.$ref still correctly points to https://loa.dev/hivemind/labels.schema.json (loa-hivemind) — unchanged
schema_version enum: ["1.0", "1.1", "1.2"] — no v1.3 bump attempted or needed from this schema's perspective
Conclusion: From the constructs side, composition.schema.json is frozen at v1.2 with no changes. v1.3 is not yet warranted based on constructs-side evidence alone. Whether loa-compositions has added YAMLs that require new fields remains unknown until the CI can be run.
PR #223 (2026-05-03) added substrate-construct support to the Zod schema (TypeScript, pack-manifest.test.ts, 79 tests passing). The Zod additions include:
constructTypeSchema enum extended with "substrate-construct"
New optional schemas: substrateRuntimeSchema, substrateExecutableSchema, substrateRequirementSchema, substrateStreamEntrySchema, substrateStreamsSchema
The four new substrate fields (runtime, executable, requirements, streams) are absent from the JSON Schema entirely, and additionalProperties: false is set — meaning a substrate-construct manifest validated by AJV against the JSON Schema would fail on both the unknown type value and any of the four new fields.
Impact on composition validation: None directly. composition.schema.json uses construct slugs as free-form strings and does not reference pack-manifest.schema.json. Strict CI on loa-compositions validates composition YAMLs, not pack manifests.
Impact on pack-manifest consumers: Any consumer that validates manifest.json files using the JSON Schema (e.g., schema-validator.sh, constructs-loader.sh, the pre-dispatch validator) will reject valid substrate-construct manifests. The first instance is 0xHoneyJar/construct-lore-essay-grader (noted in PR #223 commit message).
Classification: Type-A (schema gap) in network/pack-manifest.schema.json — the Zod runtime is ahead of the JSON governance schema. Resolution requires a JSON Schema sync PR: extend the type enum and add the four optional substrate fields with additionalProperties: false removed or relaxed in the substrate block.
The Type-A drift is in pack-manifest.schema.json (network), not composition.schema.json (runtime). No v1.3 composition bump is indicated from this check.
For pack-manifest.schema.json, the following additions are needed to sync with Zod:
type.enum += "substrate-construct"
properties.runtime (substrateRuntimeSchema: engine, engine_version, node_version)
properties.executable (substrateExecutableSchema: entry, export, protocol.input/output)
properties.requirements (substrateRequirementSchema[]: Effect Tag + contract ref)
properties.streams (substrateStreamsSchema: reads[] + writes[] of substrateStreamEntry)
superRefine logic (enforce executable+runtime when type === substrate-construct)
Per VERSIONING.md these are all additive (new optional properties + new enum value) → minor bump under the versioning policy.
Notes
Access scope is the primary blocker. The soak-check routine assumes a session with MCP access to all three repos or git clone capability. Document this as a prerequisite in the runbook.
Two composition drafts (feel-image.yaml, collection-with-codex.yaml) exist in loa-constructs/grimoires/compositions/ (not in the loa-compositions registry). They reportedly pass v1.2 per commit chore(wip): operator skills + composition drafts + cycle tracks + arch specs #220. Once promoted to loa-compositions, they should be added to the registry count.
PR feat(shared): substrate-construct manifest schema + 11 tests #223 Zod/JSON-Schema split is the only substantive schema-adjacent change in the window. It does not threaten the composition validation CI but does mean schema-validator.sh and JSON-Schema-based tooling will reject valid substrate-construct manifests. Recommend a follow-up sync PR before construct-lore-essay-grader or any other substrate-construct goes through the validator.
Next run: ensure the executing session includes loa-compositions and loa-hivemind in its MCP allowlist, OR run from an environment with git clone access and bun installed. The scripts/validate-strict.ts entrypoint (loa-compositions#10) and recursive resolver (loa-compositions#12) should be intact.
Drift Soak Check — loa-compositions × schema family
Run: 2026-05-04T17:00:00Z (approx)
Window: 2026-04-28 → 2026-05-04
Verdict: ⚠ PARTIAL — strict validation blocked by access scope; constructs-side composition schema unchanged; secondary Zod/JSON-Schema drift detected in pack-manifest (not composition-blocking)
Blocker
The MCP session executing this check was scoped to
loa-constructsonly.loa-compositionsandloa-hivemindreturnedAccess deniedon every MCP call. HTTPS git clone was also unavailable in the execution environment (no network credential path). As a result:bun scripts/validate-strict.tscould not be runloa-compositionscould not be queriedResolution: Re-run from a session whose MCP scope includes all three repos, or from a machine with git clone access. The rest of this report covers what was verifiable from the
loa-constructsside.Inventory
loa-constructs activity in window (2026-04-28 → 2026-05-04)
34e9b41— #221fix(compose-run): auto-detect/dev/ttyabsence, skip iterate prompts in non-interactive parente3a250c— #220chore(wip): bulk WIP — 5 skill symlinks, 2 composition drafts ingrimoires/compositions/(feel-image.yaml,collection-with-codex.yaml), arch specs, cycle tracksgrimoires/, not theloa-compositionsregistry; commit notes they "validate clean against v1.2"381a9b7— #223feat(shared):substrate-constructmanifest schema + 11 tests. Extends ZodconstructTypeSchemaenum, addssubstrateRuntimeSchema,substrateExecutableSchema,substrateRequirementSchema,substrateStreamEntrySchema,packManifestSchemagains optionalruntime/executable/requirements/streamsValidation
Per-failure classification
No AJV failures to classify — strict CI could not run.
Constructs-side schema state (verified)
composition.schema.json (
runtime/)network/,runtime/,workflow/subdirs + ~30 top-level schemas (from PR schemas(reorg): organize by concern — network/ runtime/ workflow/ #219 reorg, pre-window)hivemind_labels.$refstill correctly points tohttps://loa.dev/hivemind/labels.schema.json(loa-hivemind) — unchangedschema_versionenum:["1.0", "1.1", "1.2"]— no v1.3 bump attempted or needed from this schema's perspectiveConclusion: From the constructs side,
composition.schema.jsonis frozen at v1.2 with no changes. v1.3 is not yet warranted based on constructs-side evidence alone. Whether loa-compositions has added YAMLs that require new fields remains unknown until the CI can be run.Secondary finding — pack-manifest Zod/JSON-Schema pair drift (PR #223)
PR #223 (2026-05-03) added
substrate-constructsupport to the Zod schema (TypeScript,pack-manifest.test.ts, 79 tests passing). The Zod additions include:constructTypeSchemaenum extended with"substrate-construct"substrateRuntimeSchema,substrateExecutableSchema,substrateRequirementSchema,substrateStreamEntrySchema,substrateStreamsSchemapackManifestSchemagains optionalruntime,executable,requirements,streamssuperRefineenforcesexecutable + runtimerequired whentype === 'substrate-construct'However: The JSON Schema file at
.claude/schemas/network/pack-manifest.schema.jsonwas NOT updated. As of HEAD (381a9b7), thetypefield still reads:The four new substrate fields (
runtime,executable,requirements,streams) are absent from the JSON Schema entirely, andadditionalProperties: falseis set — meaning asubstrate-constructmanifest validated by AJV against the JSON Schema would fail on both the unknowntypevalue and any of the four new fields.Impact on composition validation: None directly.
composition.schema.jsonuses construct slugs as free-form strings and does not referencepack-manifest.schema.json. Strict CI on loa-compositions validates composition YAMLs, not pack manifests.Impact on pack-manifest consumers: Any consumer that validates
manifest.jsonfiles using the JSON Schema (e.g.,schema-validator.sh,constructs-loader.sh, the pre-dispatch validator) will reject validsubstrate-constructmanifests. The first instance is0xHoneyJar/construct-lore-essay-grader(noted in PR #223 commit message).Classification: Type-A (schema gap) in
network/pack-manifest.schema.json— the Zod runtime is ahead of the JSON governance schema. Resolution requires a JSON Schema sync PR: extend thetypeenum and add the four optional substrate fields withadditionalProperties: falseremoved or relaxed in the substrate block.Schema v1.3 candidate fields (if Type-A drift surfaced)
The Type-A drift is in
pack-manifest.schema.json(network), notcomposition.schema.json(runtime). No v1.3 composition bump is indicated from this check.For
pack-manifest.schema.json, the following additions are needed to sync with Zod:Per VERSIONING.md these are all additive (new optional properties + new enum value) → minor bump under the versioning policy.
Notes
Access scope is the primary blocker. The soak-check routine assumes a session with MCP access to all three repos or git clone capability. Document this as a prerequisite in the runbook.
Two composition drafts (
feel-image.yaml,collection-with-codex.yaml) exist inloa-constructs/grimoires/compositions/(not in the loa-compositions registry). They reportedly pass v1.2 per commit chore(wip): operator skills + composition drafts + cycle tracks + arch specs #220. Once promoted to loa-compositions, they should be added to the registry count.PR feat(shared): substrate-construct manifest schema + 11 tests #223 Zod/JSON-Schema split is the only substantive schema-adjacent change in the window. It does not threaten the composition validation CI but does mean
schema-validator.shand JSON-Schema-based tooling will reject valid substrate-construct manifests. Recommend a follow-up sync PR before construct-lore-essay-grader or any other substrate-construct goes through the validator.Next run: ensure the executing session includes
loa-compositionsandloa-hivemindin its MCP allowlist, OR run from an environment withgit cloneaccess andbuninstalled. Thescripts/validate-strict.tsentrypoint (loa-compositions#10) and recursive resolver (loa-compositions#12) should be intact.