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.
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). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
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
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