Address promotion-review findings: docstring precision, bare --issue title, schema minLength - #403
Merged
Merged
Conversation
…title, schema minLength - extract_section docstring no longer overclaims "whitespace-folded": the locate folds case and surrounding/marker-gap whitespace, and internal heading-text whitespace must match exactly. Also recast the first-line semicolon. - --issue prints the bare title on line 1 (no "TITLE: " prefix), so the output pipes cleanly (head -1 for the title, tail -n +2 for the body). - files.schema.json: a section object's name now requires minLength 1, matching validate.py's non-empty check so schema and validator reject the same data. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Aligns the spec audit tooling and schema with prior promotion-review feedback so the next develop -> main promotion includes the fixes and produces more precise, automation-friendly outputs.
Changes:
- Tighten
extract_section()docstring to reflect actual heading matching behavior (case-fold + surrounding-whitespace strip; no internal whitespace folding). - Make
spec/audit.py --issueemit the bare issue title on stdout line 1 (noTITLE:prefix) for easier piping. - Add
minLength: 1to sectionnameinspec/files.schema.jsonto matchspec/validate.py's non-empty check.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| spec/audit.py | Corrects extract_section() documentation and adjusts --issue stdout format to be pipe-friendly (title-only first line). |
| spec/files.schema.json | Enforces non-empty section object name values at the schema level via minLength: 1. |
ptr727
added a commit
that referenced
this pull request
Jul 23, 2026
…rconfig fix, PhotoCleaner audit (#402) Merge-commit promotion of #396-#401 + #403: per-section verbatim fidelity, the fleet section burn-down, the audit.py --issue convergence-issue generator, the .editorconfig analyzer-relaxation removal (#353 hub fix), the PhotoCleaner audit + registry refresh, and the promotion-review fixes. Human merge, no release fires. Makes main's canonicals current for the PhotoCleaner convergence agent.
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.
Three findings from Copilot's review of the #402 promotion, fixed on develop so the promotion folds them in: the extract_section docstring overclaimed whitespace folding (internal heading-text whitespace must match exactly), --issue now prints the bare title on line 1 (pipe-friendly, no TITLE: prefix), and the section-name schema gains minLength 1 to match validate.py's non-empty check.
🤖 Generated with Claude Code