Skip to content

Recast Two Agent-Authored Prose Semicolons as Two Sentences - #922

Merged
ptr727 merged 1 commit into
developfrom
semicolon-fix-develop
Aug 22, 2026
Merged

Recast Two Agent-Authored Prose Semicolons as Two Sentences#922
ptr727 merged 1 commit into
developfrom
semicolon-fix-develop

Conversation

@ptr727

@ptr727 ptr727 commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Follow-up to #920: qodo-code-review caught, on the develop-to-main promotion PR (#921), that the
no-semicolon-in-agent-authored-prose rule applies to shell comments and JSON why strings too,
not just Markdown, and #920 left two semicolons behind that scripts/prose_lint.py's semicolon
check doesn't scan for (Markdown-only, the same known gap as its dash/comment-wrap checks).

  • repo-config/configure.sh: recast the comment and the failure message as two sentences each.
  • spec/host-tools.json: recast the python3 tool's why the same way.

Verified locally: scripts/prose_lint.py clean, bash -n clean, JSON valid, pytest scripts/tests/test_host_gate.py scripts/tests/test_prose_lint.py scripts/tests/test_repo_gate.py
all pass (392 passed).

🤖 Generated with Claude Code

qodo-code-review on PR #921 (the develop-to-main promotion of #920): the
no-semicolon-in-agent-authored-prose rule applies to shell comments and JSON
'why' strings too, not just Markdown, and PR #920 left two semicolons behind
that prose_lint.py's semicolon check does not scan for (it is Markdown-only,
same known gap as its dash/comment-wrap checks). Recast as two sentences in
repo-config/configure.sh's comment and error message, and in
spec/host-tools.json's python3 why.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 22, 2026 22:04
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@ptr727, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 10 minutes

Limit details: You’ve used all 10 included reviews currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 225d0931-c901-4efb-9488-dca5f937071c

📥 Commits

Reviewing files that changed from the base of the PR and between f596fd6 and 808cca5.

📒 Files selected for processing (2)
  • repo-config/configure.sh
  • spec/host-tools.json

Comment @coderabbitai help to get the list of available commands.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Remove remaining semicolons from shell/JSON prose by splitting into sentences

📝 Documentation ⚙️ Configuration changes 🕐 Less than 10 minutes

Grey Divider

AI Description

• Split one shell comment and one error message into two sentences to satisfy prose rules.
• Split the python3 tool why string in host-tools spec to remove a semicolon.
• No functional behavior changes; prose-only edits across host setup and tool spec text.
Diagram

graph TD
  DEV(["Developer / host setup"]) --> CONF["repo-config/configure.sh"] --> SPEC["spec/host-tools.json"] --> HOSTGATE(["scripts/host_gate.py"])
  CI(["CI / repo gate"]) --> PROSE(["scripts/prose_lint.py"])
  PROSE -."policy applies to prose".-> CONF
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Extend prose_lint to scan shell comments and JSON `why` strings
  • ➕ Prevents recurrence by enforcing the rule where the prose lives
  • ➕ Reduces reviewer/manual policing of agent-authored prose outside Markdown
  • ➖ Requires reliable parsing/tokenization to avoid false positives (e.g., code/URLs)
  • ➖ Adds scope/maintenance to the linter beyond its current Markdown focus
2. Add a lightweight repo grep-based gate for semicolons in specific paths
  • ➕ Very low implementation cost
  • ➕ Catches obvious violations in configure.sh and spec JSON
  • ➖ Crude signal; likely false positives or misses (context-insensitive)
  • ➖ Hard to scope to “agent-authored prose” vs legitimate code/strings

Recommendation: The PR’s approach is the right immediate fix (surgical, zero behavior risk). Consider a follow-up to extend scripts/prose_lint.py beyond Markdown for semicolon checks (or add a targeted gate) to close the known coverage gap that allowed these to slip through.

Files changed (2) +4 / -3

Documentation (2) +4 / -3
configure.shSplit comment and failure message to remove semicolons +3/-2

Split comment and failure message to remove semicolons

• Recasts a long Python-version-floor comment into two sentences and rewrites the Python interpreter failure message to avoid a semicolon. Intended to comply with the no-semicolon-in-agent-authored-prose rule without changing script behavior.

repo-config/configure.sh

host-tools.jsonRewrite python3 'why' string to remove semicolon +1/-1

Rewrite python3 'why' string to remove semicolon

• Splits one semicolon-separated clause in the python3 tool rationale into two sentences. Leaves the tool probes and version floor unchanged.

spec/host-tools.json

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes are limited to prose-only punctuation adjustments in comments/strings and preserve the existing behavior and meaning.

Pull request overview

This PR follows up on earlier prose-lint gaps by removing remaining semicolons from agent-authored prose in a shell comment / error message and in a JSON why string, recasting each into two sentences to comply with the no-semicolon rule across non-Markdown surfaces.

Changes:

  • Updates the python3 tool’s why text in spec/host-tools.json to split the last semicolon into a new sentence.
  • Updates repo-config/configure.sh to split a long explanatory comment into two sentences and adjust the “no suitable Python” failure message to avoid a semicolon while keeping the same meaning.
File summaries
File Description
spec/host-tools.json Recasts the python3 “why” prose to remove a semicolon by splitting into two sentences.
repo-config/configure.sh Recasts a Python-floor comment and an error message to avoid semicolons while preserving intent.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ptr727
ptr727 merged commit ee719d4 into develop Aug 22, 2026
9 checks passed
@ptr727
ptr727 deleted the semicolon-fix-develop branch August 22, 2026 22:06
@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can commit Qodo's fix in one click with committable suggestions (GitHub & GitLab)

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants