Add single supervisory conformance controller for non-Go artifacts - #132
Merged
Conversation
Go source has a compiler that fails the build on malformed input; the
repo's many non-Go artifacts (shell hooks, JSON configs, generated
distribution files) had no equivalent gate. A merge-conflict marker or
syntax error could land silently and break tooling at runtime — as it did
when a conflict-corrupted .product-loop/hooks/guard.sh produced a bash
syntax error that blocked all agent tooling.
This adds one compiled controller that gives those artifacts the same
guarantee, driven by an embedded, checked-in config:
- conflict-marker scan and UTF-8 validation on every tracked non-binary
file
- bash -n on every tracked *.sh / *.bash
- JSON validity on every *.json (JSONC comment stripping for tsconfig;
JSON Lines fallback for .json data streams)
- best-effort PowerShell parse on *.ps1 when pwsh is available
It runs both as a command (go run ./cmd/conformance) and as a Go test
(TestRepositoryConformance) in a go.work module, and via a new always-on
CI workflow with no path filter, so violations are caught no matter which
lab a change touches — closing the gap where root-artifact edits never
triggered a lab workflow.
Fixture corpora that may hold intentionally-malformed input are exempt
from the syntax checks only; conflict/UTF-8 scans still cover them.
Pitot coding-agent E2EIntelligence Flow is the verification source; Pitot's public README carries the latest
Runtime capabilities
Source commit: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Go source has a compiler that fails the build on malformed input. The repo's many non-Go artifacts — shell hooks, JSON configs, generated distribution files — had no equivalent gate. A merge-conflict marker or syntax error could land silently and break tooling at runtime. This is exactly what happened when a conflict-corrupted
.product-loop/hooks/guard.shproduced abashsyntax error that blocked all agent tooling — and CI would not have caught it, because the per-lab workflows are path-scoped and never inspect repo-root/installed artifacts.What
One compiled supervisory controller (
conformance/) that gives non-Go artifacts the same guarantee, driven by an embedded, checked-in config (conformance/conformance.json):bash -non every tracked*.sh/*.bash*.json— with JSONC comment-stripping fortsconfig*.json/*.jsonc, and a JSON Lines fallback for.jsondata streams*.ps1whenpwshis presentIt runs three ways so it can't be bypassed:
go run ./cmd/conformanceTestRepositoryConformance(in ago.workmodule, sogo test ./...at root exercises it).github/workflows/conformance.yml) with no path filter, closing the gap where root-artifact edits never triggered a lab workflowFixture corpora that may hold intentionally-malformed input are exempt from the syntax checks only; conflict/UTF-8 scans still cover them.
Verification
go run ./cmd/conformance→PASS: conformance clean — 27282 files scanned (64 shell, 15923 JSON, ...)go test ./...green (detector unit tests + live-repo scan)guard.shis caught by two independent checks (conflict scan +bash -n), exit 1Notes
.product-loop/generated.lock.jsonas a possible checksum oracle, but that Boatstack-generated manifest was intentionally removed in chore(boatstack): remove committed generated host-adapter artifacts #130; the controller deliberately depends on no generated manifest.