Skip to content

Fix Promotion Review Findings on Escalation, Test Deps, and uvx Assert - #3418

Merged
ptr727 merged 2 commits into
developfrom
fix/promotion-3417-review-findings
Oct 24, 2026
Merged

ptr727 merged 2 commits into
developfrom
fix/promotion-3417-review-findings

Conversation

@ptr727

@ptr727 ptr727 commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes the review findings on the develop -> main promotion #3417 that hold on content it carries.

  • drive-pr escalation. .agents/skills/drive-pr/SKILL.md "Stop and Ask" sends an unplaced item to the maintainer only where it cannot be told to be a finding or not. That matches pr-review-conduct Merge Gate item 4 and "Escalate to the maintainer when". The old wording also escalated an item that is plainly not a finding.
  • Test dependencies in prose. docs/host-setup.md names tests/requirements.txt beside the inline script metadata, in the Python passage and in the gates-and-tests row. The python-codestyle profiles reference says a unittest suite needs no test runner installed, rather than that it runs under bare python3 with nothing installed. Its long sentence is split into three.
  • uvx boundary in the release-guard test. tests/test_release_guards.py asserts the lint-only runner's whole command, uvx "${extra[@]}" coverage@latest run -m unittest discover -s tests. The promotion's version matched coverage@latest run ... alone, which passes with the uvx launcher gone.

Local review

Two recorded passes at the frontier tier. The first found one introduced sentence-length finding on the profiles sentence this change rewrote, fixed in the second commit. The second pass covers the head.

Dropped findings

  • docs/host-setup.md:29, the 32-word sentence on the linters needing only docker, style on text this change did not touch.

Pre-existing findings, not filed

  • .agents/skills/python-codestyle/references/profiles.md:50 calls the lint-only profile "stdlib-only utility scripts", while the same file and validate-task.yml provide for a lint-only tests/requirements.txt. A stale claim on text this change did not touch, pre-existing.

Verification

  • uv run --no-project --with-requirements tests/requirements.txt python -m unittest discover -s tests -> Ran 2856 tests, OK (skipped=7).
  • python3 scripts/build_dist.py --check -> Generated skill distributions are current.
  • uv run --no-project --script scripts/prose_lint.py --diff origin/develop -> no violations.
  • The pre-commit hook ran ruff, mypy, the prose gate, and the EOL gate clean on both commits.

🤖 Generated with Claude Code

The drive-pr escalation line matches pr-review-conduct, escalating only an
unplaced item that cannot be told to be a finding or not. The host-setup
Python passage and the python-codestyle profile name the test suite's
libraries rather than claiming tests run with nothing installed. The
release-guard test asserts the lint-only runner still invokes coverage
through uvx.
Copilot AI lite review requested due to automatic review settings October 24, 2026 04:30
@coderabbitai

coderabbitai Bot commented Oct 24, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@ptr727

ptr727 commented Oct 24, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 3a86cb51f1717ec18f1e45e5b86d5507bda9ab28, the content this pull request carries at that commit against develop, and it recorded 0 findings.

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

All reviewed files were covered with no unresolved findings, and the approval assessments unanimously indicate readiness.

No open issues 🎉

What changed in this PR

This pull request resolves promotion-review findings by clarifying escalation guidance, documenting test dependencies, strengthening the release-guard assertion, and updating generated skill distributions.

Changes:

  • Clarifies when unplaced review content must be escalated to the maintainer.
  • Documents tests/requirements.txt and distinguishes test-runner requirements from test dependencies.
  • Verifies the complete uvx coverage command, including its launcher and arguments.
  • Refreshes generated skill copies and source digests.
File Summary
tests/​test_release_guards.py Verifies the complete lint-only coverage command, including the uvx launcher and dependency arguments.
docs/​host-setup.md Documents test dependencies and their role in local setup and validation.
.github/​skills/​python-codestyle/​references/​profiles.md Updates the generated Python profile guidance.
.github/​skills/​drive-pr/​SKILL.md Updates the generated escalation guidance.
.claude-plugin/​fleet-skills/​skills/​python-codestyle/​references/​profiles.md Updates the generated Claude Python profile guidance.
.claude-plugin/​fleet-skills/​skills/​drive-pr/​SKILL.md Updates the generated Claude escalation guidance.
.claude-plugin/​fleet-skills/​.source-digests/​python-codestyle Refreshes the Python skill source digest.
.claude-plugin/​fleet-skills/​.source-digests/​drive-pr Refreshes the drive-pr skill source digest.
.agents/​skills/​python-codestyle/​references/​profiles.md Clarifies lint-only test-runner and dependency behavior.
.agents/​skills/​drive-pr/​SKILL.md Clarifies escalation criteria for unplaced review content.

Review effort: Lite

@codecov

codecov Bot commented Oct 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.78%. Comparing base (c66778b) to head (3a86cb5).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3418   +/-   ##
========================================
  Coverage    80.78%   80.78%           
========================================
  Files           23       23           
  Lines         8848     8848           
========================================
  Hits          7148     7148           
  Misses        1700     1700           
Flag Coverage Δ
python-3.13 80.78% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727
ptr727 merged commit 262d04f into develop Oct 24, 2026
14 checks passed
@ptr727
ptr727 deleted the fix/promotion-3417-review-findings branch October 24, 2026 04:42
ptr727 added a commit that referenced this pull request Oct 24, 2026
…#3417)

## Summary

Promotes the pull requests merged into develop since release 2.0.1148.
Each carries a maintainer decision of 2026-10-23 recorded on #3391.

- [#3407](#3407): rewrites
the write guard as a small lexer of 1,653 lines. It fails open under its
stated threat model and fails closed only on requirement 4. A test holds
it at 2,500 lines or fewer (item 1).
- [#3409](#3409): adds
CODESTYLE rules. Tests live in `tests/`, and a maintained parser
replaces a hand-written one. A script declares its dependencies in PEP
723 metadata and runs as `uv run --no-project --script`. It switches the
callers to that spelling and adds a managed allow rule to the
agent-safety installer (item 1 follow-ups).
- [#3410](#3410): splits
`pr_review.py` into the gate, a Copilot adapter reading its vocabulary
from JSON, and `pr_cleanup.py`. It collapses the exit codes and adds
`tests/requirements.txt` and the CI runners.
- [#3411](#3411): rebuilds
the prose gate on Pygments and markdown-it-py, with its vocabulary and
exemptions in `prose-gate.json` and a repo-local override.
- [#3415](#3415): holds
the Merge Gate on a part of a Copilot review body the tooling cannot
place. The hold lasts until an owner acknowledges it with outcomes (item
4 follow-up).
- [#3416](#3416): moves
the audit self-test to `tests/` and reads YAML and Markdown with PyYAML
and markdown-it-py. It adds the check registry `spec/checks.json` and
splits out `spec/audit_markdown.py`. It shares `spec/carried_text.py`
with carry, `build_dist`, and `canonical_review`.
- [#3418](#3418): fixes
the findings this promotion's first review round raised on the content
above. It aligns the drive-pr escalation line with pr-review-conduct and
names `tests/requirements.txt` where the prose said the tests need
nothing installed. It also restores the `uvx` launcher in a
release-guard assertion.
- [#3419](#3419): fixes
the finding the second review round raised. The Copilot adapter's prose
path reads a coverage count longer than `COUNT_DIGITS` as `unknown`,
sharing `count_state` with the marker path.
- [#3420](#3420): fixes
the finding the third review round raised, under the maintainer's
ruling. `hub_fetch_run.py` falls back to `git ls-remote` where the API
lookup of `main` fails, so the prose gate and its data are fetched at
one commit. Where neither lookup resolves, the documented fail-open
against `main` stays.
- [#3421](#3421): fixes
the findings the fourth review round raised. The Copilot adapter reads a
finding count longer than `COUNT_DIGITS` as unknown rather than zero,
through one length check and one None-aware sum. The host-setup
gates-and-tests row says `uv` installs the test requirements.

Closes #3408

## Constituent coverage

The Copilot rounds on this promotion ran at Lite effort and state no
full coverage, so Merge Gate item 2 rests on the promotion case. Each
change this promotion carries had full coverage on its own pull request
into develop, at its merged head:

| Pull request | Merged head | Coverage |
| --- | --- | --- |
| [#3407](#3407) |
`9efc1002` | attested local pass, `coverage=local` |
| [#3409](#3409) |
`bcc7a9e1` | attested local pass, `coverage=local` |
| [#3410](#3410) |
`00cec726` | attested local pass, `coverage=local` |
| [#3411](#3411) |
`bd128136` | attested local pass, `coverage=local` |
| [#3415](#3415) |
`5be9db87` | attested local pass, `coverage=local` |
| [#3416](#3416) |
`b914f083` | attested local pass, `coverage=local` |
| [#3418](#3418) |
`3a86cb51` | attested local pass, and a Copilot table naming exactly the
changed files, `coverage=table` |
| [#3419](#3419) |
`6e7b868d` | attested local pass, and a Copilot table naming exactly the
changed files, `coverage=table` |
| [#3420](#3420) |
`9b492290` | attested local pass, and a Copilot table naming exactly the
changed files, `coverage=table` |
| [#3421](#3421) |
`743010e6` | attested local pass, and a Copilot table naming exactly the
changed files, `coverage=table` |

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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