One canonical <=100-char description across README, About, and Docker Hub - #423
Merged
Conversation
… Hub A new Docker Hub repo caps its short description near 100 characters, so the README's intro line could not carry as-is. Make the README opening the one canonical short description and audit it across every surface it feeds: - The README H1 is the repository name (a hyphenated name may render its hyphens as spaces, Financial-Modeling -> Financial Modeling); the audit checks it. - The intro line is a single sentence, link-free, at most 100 characters - Docker Hub's cap, the tightest surface. The audit flags an over-length intro. - That one line mirrors to the GitHub About description (already checked) and, for a docker repo, the Docker Hub short description (new best-effort check via the Docker Hub API; the image name is owner/repo lowercased, skipped on 404). Repository Details (verbatim) and spec/readme-structure.md state the rule. Already surfacing drift: PhotoCleaner's 150-char intro and its unsynced Docker Hub tagline. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR formalizes a single canonical short description sentence (README intro line) and extends the fleet audit to validate that this same line cleanly mirrors to other metadata surfaces, including Docker Hub.
Changes:
- Update the README-structure spec to require a link-free, single-sentence intro line capped at 100 characters and to define Docker Hub short description mirroring.
- Extend
spec/audit.pyto validate README H1 naming, intro-line length/link-freedom, and (for Docker-publishing repos) best-effort Docker Hub short-description mirroring. - Update AGENTS "Repository Details" to state the <=100-character constraint and Docker Hub mirroring rule.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| spec/readme-structure.md | Tightens the README title/intro contract and documents Docker Hub short-description vs overview expectations. |
| spec/audit.py | Implements new audit checks for H1 name, intro-line constraints, and Docker Hub short-description mirroring. |
| AGENTS.md | Documents the <=100-character canonical description rule and Docker Hub short-description mirroring in the repo details contract. |
…eout - H1-title check uses live['name'] (the GitHub API canonical name), not the registry-URL slug which can carry a different case; falls back to the slug. - Docker Hub best-effort fetch timeout 15s -> 5s so it can't feel-hang the audit. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docker_hub_description() returned None on any error, so a transient failure silently skipped the check. Now a 404 (image not at the derived name) returns None and is skipped, while a transient error is raised and the caller catches it into a DRIFT 'could not verify' advisory - surfaced, never silently passed, and never aborting audit_repo for that repo's other findings. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
title_and_intro returns title=None when README.md has no '# ' H1; the H1-name check called title.replace unconditionally and would raise. Emit a 'no H1' LETTER instead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
spec/audit.py:743
- This comment wraps a sentence across multiple lines and uses a semicolon splice. AGENTS.md comment guidance prefers one sentence per line and no semicolon splices in agent-authored prose.
# Docker Hub short description mirrors the same intro, for a repo that publishes a docker image. A
# transient lookup failure surfaces as a DRIFT ("could not verify") rather than aborting the audit or
# silently passing; a 404 (image not at the derived name) returns None and is skipped.
The new readme/description comments used clause-joining semicolons and wrapped a sentence across lines, the exact pattern the Documentation Style Conventions ban. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ptr727
added a commit
that referenced
this pull request
Jul 24, 2026
…cription rule (#422, #423) (#424) Two governance PRs refining the section-fidelity model from downstream feedback: - **#422** - genericize the verbatim AGENTS sections for clean carry (de-link 24 hub-only 404 links), mask a job's owned `needs:` list in normalize(), Operational Repositories appliesTo:*, reclassify Repository Onboarding as hub-only, and add the content-duplication reconciliation rule + an undeclared-section audit advisory (hub exempted). Resolves the hub-side issues the PlexCleaner convergence surfaced. - **#423** - one canonical <=100-char description across README / GitHub About / Docker Hub, with H1-name and length audit checks. **Fleet impact:** re-vendors the (now clean) verbatim AGENTS sections and the Repository Details section; the audit gains the section advisory + the description checks. Burned down via the AGENTS refreshes already in motion. Merge commit, no release fires.
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.
A new Docker Hub repo caps its short description near 100 characters, so the README's intro line could not be reused as-is. Make the README opening the one canonical short description and audit it across every surface it feeds.
Financial-Modeling->Financial Modeling). New audit check.spec/readme-structure.md(item 1 + the Docker Hub section) and the verbatim Repository Details section state the rule.Already earning its keep: the audit flags PhotoCleaner's 150-char intro and its Docker Hub tagline that does not match the README. Verified: selftest + validate + markdownlint green; the Docker Hub fetch resolves
ptr727/photocleanerlive.