Conversation
A carried markdown file can be intent overall while individual ## sections are verbatim (byte-identical to the hub canonical, EOL-normalized, region-hashed incl. the heading, code-fence aware). AGENTS.md's three universal rule sections (Repository Boundaries and Write Safety, Git and Commit Rules, Verification Discipline) are now verbatim, closing the #305 propagation gap for the docs class - a downstream paraphrase missing a rule now surfaces as DRIFT.
The #305 fleet view: fidelity_honesty check_units enumerates whole intent/verbatim files plus each verbatim section, and the report surfaces the three universal AGENTS.md rule sections diverging across all 19 cataloged repos - the propagation gap made visible in one regenerable artifact. Section units are labelled 'path > section'; the ledger can carry section-scoped dispositions.
…399) audit.py --issue <repo> emits a ready-to-file convergence issue (title on line 1, body from line 2) generated from that repo's live audit findings, grouped into must-fix / converge / could-not-verify. The content is a view over the audit, never composed by hand, so it cannot drift and regenerates as the repo changes. AUDIT.md section 8 documents it.
…tNotes (#401) First committed audit for PhotoCleaner (main@3b33b98, not operational): PR gate + lint architecture live and contract-passing, secrets provisioned, but both rulesets missing (the defect), eleven baseline files absent, AGENTS.md an old skeleton, no release pipeline, develop trailing main by 3. driftNotes refreshed to current state.
Contributor
There was a problem hiding this comment.
Pull request overview
Promotes develop to main while advancing the repo's governance/audit tooling: it adds per-section verbatim fidelity for Markdown, extends fleet divergence reporting to section-scoped units, introduces an audit-driven convergence-issue generator, removes the repo-wide analyzer severity relaxation from the canonical .editorconfig, and adds the first committed audit report for PhotoCleaner.
Changes:
- Add section-scoped
verbatimfidelity for Markdown (##-delimited) and wire it through validation, auditing, and fleet divergence reporting. - Add
spec/audit.py --issue <repo>to generate a ready-to-file convergence issue directly from live audit findings; document the generator inAUDIT.md. - Remove
dotnet_analyzer_diagnostic.severity = suggestionfrom the canonical.editorconfig, and add PhotoCleaner audit + registry driftNotes refresh.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
spec/validate.py |
Validates section objects (name, fidelity) and recognizes section-scoped divergence units (path > section). |
spec/files.schema.json |
Extends section object schema with fidelity (intent/verbatim). |
spec/files.json |
Marks selected AGENTS.md universal sections as verbatim while keeping the file overall intent. |
spec/fidelity-model.md |
Documents section-level verbatim fidelity and positions universal AGENTS.md sections as verbatim candidates. |
spec/fidelity_honesty.py |
Treats verbatim sections as first-class “units” for fleet spread reporting via path > section. |
spec/divergences.json |
Updates ledger note to describe section-unit keys (path > section). |
spec/audit.py |
Adds verbatim section extraction/checking and --issue convergence issue generation from audit findings. |
reports/photocleaner/audit.md |
Adds PhotoCleaner’s first committed audit report with evidence and recommended follow-ups. |
reports/divergences.md |
Regenerates divergence burn-down to include untriaged verbatim-section units. |
registry/repos.json |
Refreshes PhotoCleaner driftNotes to reflect current state and gaps. |
README.md |
Moves #363/#310 into the README TODO backlog as running backlog items. |
cspell.json |
Adds opencontainers to the allowed word list. |
AUDIT.md |
Documents audit-derived issue generation (spec/audit.py --issue <repo>) in the audit guidance. |
.editorconfig |
Removes the repo-wide analyzer demotion (dotnet_analyzer_diagnostic.severity = suggestion). |
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
spec/audit.py:168
- extract_section's fenced-code handling toggles on any line starting with
or ~~~, without tracking which marker opened the fence. A mismatched fence marker inside a code block (e.g. ~~~ inside afence) incorrectly flips out of fenced mode, allowing a later##line inside the code block to be treated as a real section boundary.
out, capturing, fenced = [], False, False
for ln in normalize(text).split("\n"):
stripped = ln.strip()
if stripped.startswith("```") or stripped.startswith("~~~"):
fenced = not fenced
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.
Promotes the develop line to main. Merge-commit promotion (not squash);
developis the head and is never deleted.Included (6 commits)
opencontainersto cspell.intentoverall while individual## sectionsareverbatim(heading-in-region hashing, code-fence-aware, parsed-text locate).AGENTS.md's three universal rule sections are now verbatim.fidelity_honesty.pyenumerates verbatim-section units (path > section);reports/divergences.mdshows all 19 cataloged repos carrying older paraphrases of those sections. Ledger accepts section-scoped dispositions.spec/audit.py --issue <repo>: emits a ready-to-file convergence issue from a repo's live audit findings (used to file Financial-Modeling#48 and PhotoCleaner#14).dotnet_analyzer_diagnostic.severity = suggestionfrom the canonical.editorconfig(Template .editorconfig contradicts CODESTYLE by relaxing all analyzers repo-wide #353 hub fix).reports/photocleaner/audit.md, not operational) + stale registry driftNotes refreshed.Why now
The PhotoCleaner convergence agent vendors canonicals from
main— this promotion makes them current (notably the fixed.editorconfig).Verification
spec/validate.pygreen;audit.py --selftestpasses; trial merge conflict-free (0 markers). Human merge, so no release fires.🤖 Generated with Claude Code