Operational repos audit against main, matching AUDIT.md section 1 (#340) - #351
Merged
Conversation
AUDIT.md section 1 already mandates main as the ground-truth branch with
no model exception ("Read the target's main branch as ground truth"), but
three operational entries in registry/repos.json named develop -
Vantage-Config, ESPHome-Config, HomeAutomation-Config. The registry
contradicted the documented rule; this reconciles it rather than changing
policy.
Rationale (per #340): main is the promoted, gated snapshot the promotion
PR blesses; an operational repo's develop is mid-flight by design
(ungated direct pushes), so auditing develop measures work in progress -
conformance scaffolding landed on develop but not yet promoted reads as a
finding when it is only un-promoted.
AUDIT.md section 1 now states the both-models rule explicitly, since that
is exactly where the ambiguity arose, and notes that a registry entry
naming develop contradicts it.
Verified before flipping: all four conformance files (repo-config
payloads, AUDIT.md, spec/secrets.json) are already present on main in all
three repos, so the flip surfaces no new LETTER findings. Audit before and
after: all four operational repos clean (0 findings).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The added sentence asserted every registry entry is on main; four release repos (KiCadLibrary, EspDinIoT, PhotoCleaner, HolidayLights) still name develop. Reworded to state the rule - a groundTruthBranch naming develop contradicts this section, for either model - rather than a claim about current fleet state. Those four are surfaced separately; flipping them is not mechanical (their main is stale, so it would surface real but voluminous findings). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Aligns the audit "ground truth" branch selection for operational repos with the documented intent that main is the promoted, authoritative snapshot, and reconciles the registry accordingly.
Changes:
- Updates three operational repos in
registry/repos.jsonto usegroundTruthBranch: main. - Clarifies
AUDIT.mdsection 1 to explain why operational repos still auditmaineven though they commit directly todevelop.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| registry/repos.json | Flips operational repo entries from groundTruthBranch: develop to main for consistent audit targeting. |
| AUDIT.md | Expands section 1 to explicitly state operational-model ground truth expectations. |
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
AUDIT.md:19
- Section 1 says to always audit
mainand states that any registrygroundTruthBranch: develop"contradicts this section", but the mechanized audit runner actually readsgroundTruthBranchfromregistry/repos.json(spec/audit.py:72) and the registry still contains severalgroundTruthBranch: developentries. Please update this section to describe the implemented behavior (auditgroundTruthBranch, defaultmain) while keeping the normative guidance that operational repos should usemain.
Audit one repository at a time. Read the target's **`main` branch** as ground truth: `main` is the released, authoritative state. Read `develop` only to detect divergence - a stale or diverged `develop` (behind `main`, or diverged) is reported as a **drift finding**, never audited as the truth. Do not treat a `develop`-only file as present if it is absent on `main`.
This holds for **both workflow models**. An `operational` repo commits directly to `develop`, but its ground truth is still `main` - the promoted, gated snapshot the promotion PR blesses. `develop` there is mid-flight by design (ungated direct pushes), so auditing it would measure work in progress: conformance scaffolding that has landed on `develop` but is not yet promoted is *un-promoted work*, not a conformance defect, and it counts when it reaches `main`. A registry `groundTruthBranch` naming `develop` therefore contradicts this section - for either model.
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.
Fixes #340 - and it turns out to be a reconciliation, not a policy change.
What I found
AUDIT.mdsection 1 already says, with no model exception:But three operational entries in
registry/repos.jsonnameddevelop- Vantage-Config, ESPHome-Config, HomeAutomation-Config. So the registry was contradicting the hub's own documented rule; #340's proposal is what the docs already required. (HomeAssistant-Config was correctly onmain.)Changes
registry/repos.json: the three operational entries flip togroundTruthBranch: main.AUDIT.mdsection 1: states the both-models rule explicitly, since that is precisely where the ambiguity arose - an operational repo commits directly todevelop, but its ground truth is stillmain, the promoted snapshot;developis mid-flight by design, so conformance work landed there but not yet promoted is un-promoted work, not a defect. AgroundTruthBranchnamingdevelopcontradicts the section, for either model.Verification (the risk was manufacturing false findings)
Before flipping, I confirmed all four conformance files (
repo-config/main.json,repo-config/operational/develop.json,AUDIT.md,spec/secrets.json) are already present onmainin all three repos - so measuringmainsurfaces nothing new.spec/validate.py, markdownlint, editorconfig-checker: clean.Out of scope here: four
releaserepos also namedevelopChecking the fleet surfaced that KiCadLibrary, EspDinIoT, PhotoCleaner, and HolidayLights (all
releasemodel, all with amainbranch) also carrygroundTruthBranch: develop- the same contradiction. They are deliberately not flipped in this PR, because unlike the operational three theirmainis stale, so the flip is not mechanical:mainFlipping them would surface real-but-voluminous findings (their released state genuinely is non-conformant - which is arguably the correct signal, but it is a scope and noise decision for the owner, not a mechanical reconciliation). Raised for a separate call.
Note on the counter-view
#340 raises deploy-from-develop as the one case for a
developground truth, and suggests a separatedeployBranchfield rather than overloadinggroundTruthBranch. No fleet repo deploys fromdeveloptoday, so I have not added the field - cheap to add later if one genuinely needs it.🤖 Generated with Claude Code