Skip to content

Promote Develop: Split the Over-Length Comment Sentences and Make sentence-length a Default Check - #3619

Merged
ptr727 merged 11 commits into
mainfrom
develop
Oct 29, 2026
Merged

ptr727 merged 11 commits into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Oct 29, 2026

Copy link
Copy Markdown
Owner

Promotes the #3531 comment sweep and its default flip from develop to main.

  • #3603 Moves the dispatch-refresh note out of the Docker clause in branching-and-release-model.
  • #3606 Splits over-length comment sentences in pr_review and host_gate.
  • #3607 Splits over-length comment sentences in the local and canonical review engines.
  • #3608 Splits over-length comment sentences in build_dist, carry, handoff, and skills_install.
  • #3609 Splits over-length comment sentences in the prose and repo gates.
  • #3611 Splits over-length comment sentences in the spec scripts and workflows.
  • #3612 Splits over-length comment sentences in the host install scripts.
  • #3613 Splits over-length comment sentences in the host menu, bootstrap, and setup scripts.
  • #3615 Splits over-length comment sentences in the agent-safety kit, repo config, and snippets.
  • #3618 Makes sentence-length a default prose gate check.

Closes #3531
Closes #3588

🤖 Generated with Claude Code

ptr727 and others added 10 commits October 29, 2026 07:41
…and-release-model (#3603)

The no-op publish bullet attributed the dispatch refresh to Docker. That
fact belongs to GitHub Releases and stays in the reference file. The
bullet now says only that Docker always re-pushes for base-image
refreshes.

GOVERNANCE.md Release Model carries no copy of the sentence.

Closes #3588

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…3606)

Part of #3531.

Splits the over-length sentences in the comments and docstrings of
`pr_review*.py`, `pr_cleanup.py`, `gh_graphql.py`, `host_gate.py`, and
their two test files. Comments and docstrings only, no code or asserted
string changed. `scripts/pr_review.py`'s pinned docstring phrases are
unchanged.

Sentence-length count for the slice went from 186 to 0.

Tests: `uv run --no-project --with pytest --with markdown-it-py python
-m pytest tests/test_pr_review.py tests/test_host_gate.py
tests/test_pr_review_size.py tests/test_pr_cleanup.py
tests/test_gh_graphql.py` passes (696 passed).

The `pr_cleanup.py` "A branch is finished when" sentence uses the
wording `scripts/README.md` already carries.

## Copies left for the comment sweep

None. The two `scripts/README.md` table cells that restate pieces of the
`status` and `wait` exit codes are worded differently and already read
zero.

Local strict review: two passes, the first raised drift items that the
last commit restores, the second found none.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…, and skills_install (#3608)

Part of #3531.

Splits the over-length sentences in comments and docstrings of
`scripts/build_dist.py`, `scripts/handoff.py`, `scripts/carry.py`,
`scripts/skills_install.py`, `scripts/skills_install.ps1`,
`tests/test_build_dist.py`, `tests/test_handoff.py`,
`tests/test_skills_install.py`, and `tests/test_carry.py`. `prose_lint
--check sentence-length` goes from 214 hits to 0 across them.

Comments and docstrings only. Python ASTs with docstrings masked are
identical to base, `python3 scripts/build_dist.py --check` reports the
generated trees current, and the carry, handoff, build_dist, and
skills_install tests pass.

Notes:

- The module docstrings of `build_dist.py` and `skills_install.py` feed
argparse `description`, so their `--help` wording changes. No test
asserts on it.
- The Usage synopsis in the `handoff.py` module docstring gains `- `
bullet prefixes, since the gate reads an unterminated synopsis block as
one long sentence. Only the docstring's first line reaches `--help`.
- Where `scripts/README.md` already read zero, its wording was adopted
(the `--repo` no-default sentence, the include-region sentence, and the
carry tree-root sentences).

Local review: four recorded passes, the last over the current head with
no meaning drift. Remaining borderline items, all left as is: an
elliptical "So is one" in the `include_destinations` docstring, a
two-part reason in `tree_source` now read as two, and "it" two sentences
from `str.splitlines` in `carry.py`.

## Copies left for the comment sweep

A search of the whole tree (every tracked file outside this slice) for
the replaced sentences found matches only in files that already read
zero: `scripts/README.md`, the skills under `.agents/skills/`,
`.github/skills/`, `.claude-plugin/`, `.github/copilot-instructions.md`,
and `AGENTS.md`. Those carry different wordings of the same content, not
identical sentences, so no pair is left for another slice.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…3609)

Part of #3531

Splits the over-length sentences in the comments, docstrings, and hook
comments of the prose gate, the repo gate, the python-directories
action, the two Husky hooks, and their tests. Comment and docstring text
only. The `sentence-length` check reads zero on all 11 files, down from
181 hits. An AST comparison (docstrings blanked) of every changed `.py`
file shows no code change, and the Husky and `action.yml` changes are
`#` comment lines only.

Tests: `test_prose_lint` (629), `test_repo_gate` (176),
`test_tooling_encoding` (4), `test_pre_commit_hook` (3), and
`test_python_directories` (32) pass. No hit sat in a fixture string, so
no test data changed.

## Copies left for the comment sweep

- `.husky/pre-commit` line 28 ("Running one rather than testing for a
name is the point...") is copied verbatim at
`catalog/snippets/husky/pre-commit` line 32, outside this slice. The
pair is now unaligned.
- `scripts/README.md` already read zero. Its wording was adopted for the
`sha-pin` docstring in `repo_gate.py` and the trailing-comment docstring
in `test_prose_lint.py`.

## Local review findings left open

Three recorded passes ran. The edit budget is spent, so these remain,
each for the review loop:

- `tests/test_prose_lint.py`, the "default is pinned too" docstring:
"every such promotion" now precedes its antecedent, and the two reasons
became a chain.
- `tests/test_prose_lint.py`, the "pinned because only one side moved"
docstring: "The reason is that" covers only the first half of what the
original colon introduced.
- Formatting: `.github/actions/repo-gate/repo_gate.py` `check_sha_pin`
docstring has a short line before "A fabricated pin..." that was not
rewrapped.
- Formatting: the rewrap breaks an inline code span across a line in
five places in `tests/test_prose_lint.py`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…view Engines (#3607)

Splits the over-length comment, docstring, and help-text sentences in
`scripts/local_review.py`, `scripts/canonical_review.py`,
`tests/test_local_review.py`, and `tests/test_canonical_review.py`. The
four files read zero on `prose_lint.py --check sentence-length` (183
hits before). Comment-only change: the syntax trees with docstrings
blanked are identical to `develop`.

Part of #3531

Notes:
- The module docstring of `local_review.py` is the `--help` description,
which argparse reflows. Its new bullet lists therefore print inline. No
test asserts on that text.
- Three local review passes (opus) raised split-drift findings, all
fixed. A fourth, narrow pass over the last fix found none.

## Copies left for the comment sweep

None known. `scripts/README.md` already reads zero and its wording was
adopted where the sentence was the same.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…3612)

Part of #3531

Splits the over-length comment sentences in the host install scripts
(`install-tools`, `install-agents`, `install-skills`, `setup-wsl`) and
two test docstrings. Only comment lines and the two test module
docstrings change. The `.sh` and `.ps1` parallel comments are split
identically, and where a Markdown copy already read zero its wording was
adopted. `prose_lint --check sentence-length` reads 208 before and 0
after on the nine files.

Verification: `bash -n`, `shellcheck`, `shfmt -d` clean on each `.sh`.
Each `.ps1` parses with zero errors and PSScriptAnalyzer (repo settings)
reports 0. `test_install_tools`, `test_install_agents`,
`test_host_gate`, `test_cli_usage`, `test_skills_install`,
`test_bootstrap`, `test_setup_github` pass.

## Copies left for the comment sweep

None found outside the slice. The sentences with Markdown copies
(`host-setup/windows/README.md`, `docs/host-setup.md`) already read zero
and were adopted.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…and Setup Scripts (#3613)

Part of #3531

Splits the over-length comment and docstring sentences in the host menu,
bootstrap, and setup scripts, in their paired `.ps1` and `.sh` forms and
the three test files that read them. Only comment lines and Python
docstrings change. An AST comparison of the three test files and a
changed-line check of the scripts confirm no code or printed string
moved.

## Verification

- `prose_lint.py --check sentence-length` over the 11 files: 261 before,
0 after.
- `bash -n`, `shfmt -d`, and `shellcheck` clean on the touched `.sh`
files. `setup-github.sh` keeps its SC2119/SC2120 findings on `key_body`,
which are present at `develop` too.
- PowerShell parser: 0 errors on the four touched `.ps1` files.
- `tests/test_bootstrap.py` (150 tests, 5 skipped) and
`tests/test_setup_github.py` (40 tests): OK.
- Seven local adversarial review passes at `opus`. The first six each
found meaning drift (mostly a joint reason left attached to only one
half), fixed in the commits that follow. The seventh found none, and its
pass is recorded against the head.

## Known borderline wording left

- `host-setup/windows/upgrade-host.ps1:200-201`: "That setting would
also corrupt..." can be misread as referring to WSL_UTF8 rather than the
console encoding.

## Copies left for the comment sweep

- "Every probe refuses to write a host key" and "A native command writes
to this function" also appear in `host-setup/bootstrap.ps1` (split here)
and in `install-agents.ps1`, `install-tools.ps1`, and `setup-wsl.ps1`
(slice F1).
- The WSL_UTF8 comment in `upgrade-host.ps1` has an unsplit copy near
`setup-wsl.ps1:121` (slice F1).
- The "script parameter reached only from a nested scope" and "Under
pipefail" sentences have copies in files outside this slice. They were
not individually located.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…lows (#3611)

Part of #3531

Splits the over-length sentences in comments, docstrings, and workflow
comments in the spec scripts, the reusable workflows and composite
actions, and their tests. Meaning is unchanged. Only comment and
docstring text differs, plus shell `#` comment lines inside `run:`
bodies of `build-release-task.yml`, `canonical-review-sweep.yml`, and
`validate-task.yml`. No key, value, expression, `description:` string,
or executable line changed. `actionlint` passes on all workflows.

Verification: `prose_lint --check sentence-length` reads zero on every
changed file. `tests/test_spec_validate.py`,
`tests/test_release_guards.py`, `tests/test_docker_task_workflow.py`,
and the full unittest discovery pass. `python3 spec/validate.py` passes.
A recorded local adversarial pass (opus) ran over the final content with
no findings, after three earlier passes' findings were fixed.

## Copies left for the comment sweep

- `spec/host-tools.json` (the entry near line 55) pairs with a
`docs/host-setup.md` sentence that already reads zero. JSON is outside
this slice.

## Notes

- Shell comment lines inside workflow `run:` bodies were edited because
they are comments only. The brief asked for byte-identical `run:`
bodies, so say if that should have been left.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
… Config, and Snippets (#3615)

Part of #3531

Splits the over-length comment and docstring sentences in the
agent-safety kit (`host-setup/agent-safety/claude/`),
`repo-config/configure.sh`, the `tests/test_configure_*.py` and
`tests/test_secrets_sh.py` docstrings, the carried `catalog/snippets/`
files, and the comments in `.coderabbit.yaml`, `.pr_agent.toml`, and
`pyproject.toml`. Every file in the slice reads zero on `prose_lint.py
--check sentence-length`.

Comments and docstrings only. Python files are AST-equal to `develop`
with docstrings blanked, and the parsed YAML and TOML values are equal.
`catalog/snippets/husky/pre-commit` adopts the split already on
`.husky/pre-commit`.

## Verification

- `test_install.py` (168 tests), the `tests/test_configure_*.py` suite,
`test_secrets_sh.py`, `test_cli_usage.py`, `test_build_dist.py`,
`test_repo_gate.py`, and the three `--selftest` hooks pass. `bash -n`,
`shellcheck`, and `shfmt -d` are clean on `configure.sh`.
- Six adversarial `opus` review passes, each fixing what the previous
found. The last pass found nothing and is recorded and attested on the
head.

## Copies left for the comment sweep

None. `docs/reusable-workflows.md` carries two snippet sentences
verbatim and a test holds them byte-for-byte equal to the catalog
snippets, so that file is changed here to match
(`merge-bot-pull-request.yml` and `test-pull-request-smoke.yml`
comments).

## Remaining review findings from the last local pass

The final recorded pass (seventh) raised six items, all cosmetic or
arguable, left unedited after the edit budget:

- Four wrapped docstring lines in `install.py` (about 160, 231, 1196)
and `tool-containment.py` (about 43) leave a short tail on its own line.
The previous pass cleared them.
- `install.py` about 147: "A command `runs_hook` already treats as
running the deployed hook carries wrapping characters..." keeps the
original's general wording, now in its own sentence.
- `configure.sh` about 253: "It does so before every fleet repo is
linked to what it names." has a loose second "it".

## Notes

- The Usage lines in the `install.py` module docstring gained a trailing
period each, so the sentence gate reads them as separate sentences.
`__doc__` is not used for `--help`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
## Summary

Make the prose gate's `sentence-length` rule a default check. The whole
hub tree now reads zero over-cap sentences on `develop`, which was the
precondition the opt-in existed for.

- `prose-gate.json` sets the rule's `default` to true. `DEFAULT_RULES`
is computed from that flag, so a bare `prose_lint.py` run, the husky and
pre-commit hooks, and the CI `prose-gate` action all pick it up with no
list to edit.
- The `comment-and-doc-style` skill no longer calls the check opt-in. It
states that the check runs by default, and that `--diff <base>` scopes
it to the lines a change touches. `sentence-split` stays opt-in.
- The `local-strict-review` brief drops its second `--check
sentence-length` run, since the first run now covers it.
- `GOVERNANCE.md` "Sentence Structure", `OPERATIONS.md`,
`docs/fleet-map.md`, and `scripts/README.md` stop describing the rule as
opt-in. The local verification block names it, so that block still
covers every default rule except `comment-added`.
- The test asserting the rule is opt-in is replaced by one asserting a
bare run reports an over-cap sentence.
- The regenerated skill copies under `.github/skills/` and
`.claude-plugin/` come with it.

## Fleet effect

A carrier's CI runs the hub's `prose-gate` action, which passes no
`--check`, so it now gates the word cap on each sentence a pull request
touches. The diff scope means an existing over-cap sentence in a carrier
fails no pull request until a change edits one of its lines. The
fetched-fresh pre-commit hooks gate the same way, diff-scoped. A
whole-tree run, such as the `Lint: Prose` editor task, reports a
carrier's existing backlog.

A carrier cannot turn the rule off through `.prose-gate.json`. That
override only adds exemptions and refuses any other key. The only
repository-level escape is `.github/prose-gate-excludes`, which drops
whole paths and is meant for vendored content.

#3531 asked what a carrier's review pass does with a `sentence-length`
hit on hub-verbatim text. The hub's text now reads zero, and the gate
now holds every changed line to the cap. So a resync carries no such
hits to dispose of, and the brief's separate opt-in run is gone.

## Verification

- `prose_lint.py .` over the whole tree with the new default: 0
violations.
- `prose_lint.py --diff origin/develop`: 0 violations.
- `tests/test_prose_lint.py`: 629 tests OK. The new test fails with the
flag flipped back.
- `tests/test_build_dist.py`, `tests/test_hub_fetch_run.py`,
`tests/test_pre_commit_hook.py`: OK.
- `build_dist.py --check`: current.

Closes #3531

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 29, 2026 17:29
@coderabbitai

coderabbitai Bot commented Oct 29, 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.

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 review found no active defects or blocking concerns, with only non-blocking present-tense documentation nits noted.

No open issues 🎉

What changed in this PR

This pull request promotes the completed comment-sentence cleanup from develop to main and makes sentence-length a default prose-gate check.

Changes:

  • Splits over-length comments, docstrings, workflow comments, and documentation across the repository.
  • Enables sentence-length by default and updates related tests, documentation, hooks, workflows, and review guidance.
  • Corrects Docker release wording and regenerates the affected skill copies and source digests.
  • The whole-tree sentence-length check passed with 406 files read and no findings.
File Summary Review notes
tests/​workflow_steps.py Splits workflow-step reader docstrings. —
tests/​test_tooling_encoding.py Splits encoding-test documentation and comments. —
tests/​test_skills_install.py Splits skills-installer test docstrings. —
tests/​test_setup_github.py Splits GitHub setup test documentation. —
tests/​test_secrets_sh.py Splits secrets-test documentation. —
tests/​test_repo_gate.py Splits repository-gate test docstrings. —
tests/​test_pre_commit_hook.py Splits pre-commit test documentation. —
tests/​test_install_tools.py Structures installer report documentation. —
tests/​test_install_agents.py Structures agent-installer test documentation. —
tests/​test_host_gate.py Splits host-gate test documentation. —
tests/​test_handoff.py Splits handoff test documentation. —
tests/​test_docker_task_workflow.py Splits Docker workflow test documentation. —
tests/​test_configure_usage.py Splits configuration usage test documentation. —
tests/​test_configure_settings_live.py Splits live-settings test documentation. —
tests/​test_configure_ruleset_id.py Splits ruleset test documentation. —
tests/​test_configure_project.py Splits project-configuration test documentation. —
tests/​test_configure_model.py Splits workflow-model test documentation. —
tests/​test_configure_envname.py Splits environment-name test documentation. —
tests/​test_configure_environments.py Splits environment test documentation. —
tests/​test_configure_archived.py Splits archived-repository test documentation. —
tests/​test_carry.py Splits carry test docstrings. —
tests/​host_capability.py Splits host-capability documentation. —
spec/​workflow_reuse.py Splits workflow-reuse documentation and comments. —
spec/​resolve_description.py Structures description-resolution documentation. —
spec/​git_env.py Splits Git environment documentation. —
spec/​fidelity_honesty.py Splits fidelity-audit documentation. —
spec/​audit.py Splits audit comments. —
scripts/​skills_install.py Splits installer documentation. —
scripts/​skills_install.ps1 Splits the PowerShell launcher comment. —
scripts/​README.md Documents the default sentence-length rule. [P2] nit (1 vote): Keep the README in present tense. State the current default and corpus condition directly rather than describing the rollout historically.
scripts/​prose_lint.py Splits local prose-lint documentation. —
scripts/​pr_review_rounds.py Splits review-round documentation. —
scripts/​pr_review_copilot.py Splits Copilot review parsing documentation. —
scripts/​pr_review_checks.py Splits check-normalization documentation. —
scripts/​pr_cleanup.py Structures cleanup precondition documentation. —
scripts/​gh_graphql.py Splits GraphQL transport documentation. —
pyproject.toml Splits type-checker configuration comments. —
OPERATIONS.md Adds sentence-length to the documented local gate invocation. —
host-setup/​windows/​upgrade-host.ps1 Splits Windows upgrade comments. —
host-setup/​windows/​setup-wsl.ps1 Splits WSL setup comments. —
host-setup/​windows/​install-skills.ps1 Splits Windows Skill installer comments. —
host-setup/​windows/​install-agents.ps1 Splits Windows agent-installer comments. —
host-setup/​linux/​upgrade-host.sh Structures Linux upgrade comments. —
host-setup/​linux/​install-skills.sh Splits Linux Skill installer comments. —
host-setup/​linux/​install-agents.sh Splits Linux agent-installer comments. —
host-setup/​bootstrap.sh Structures bootstrap comments. —
host-setup/​agent-safety/​claude/​tool-containment.py Splits containment documentation. —
host-setup/​agent-safety/​claude/​test_install.py Splits containment installer test documentation. —
host-setup/​agent-safety/​claude/​install.sh Splits the installer comment. —
host-setup/​agent-safety/​claude/​install.ps1 Splits the PowerShell installer comment. —
host-setup/​agent-safety/​claude/​gh-write-guard.py Structures write-guard documentation. —
GOVERNANCE.md Describes sentence-length as a default check. —
docs/​reusable-workflows.md Splits reusable-workflow comments. —
docs/​fleet-map.md Records the default-rule rollout. [P2] nit (1 vote): Keep the decision record in present tense. Describe the current default and prerequisite without historical rollout wording.
catalog/​snippets/​workflows/​test-pull-request.yml Splits workflow snippet comments. —
catalog/​snippets/​workflows/​test-pull-request-smoke.yml Splits Docker workflow comments. —
catalog/​snippets/​workflows/​merge-bot-pull-request.yml Splits merge-bot workflow comments. —
catalog/​snippets/​husky/​pre-commit Splits hook comments. —
catalog/​snippets/​hub_fetch_run.py Splits hub-fetch documentation. —
.pr_agent.toml Splits review-agent comments. —
.husky/​pre-push Splits pre-push comments. —
.husky/​pre-commit Splits pre-commit comments. —
.github/​workflows/​validate-task.yml Splits validation workflow comments. —
.github/​workflows/​run-codegen-pull-request-task.yml Splits codegen workflow comments. —
.github/​workflows/​publish-docker-readme-task.yml Splits Docker README workflow comments. —
.github/​workflows/​get-version-task.yml Splits version workflow comments. —
.github/​workflows/​deploy-site-task.yml Structures deploy workflow comments. —
.github/​workflows/​check-upstream-version-task.yml Structures upstream-version workflow comments. —
.github/​workflows/​canonical-review-sweep.yml Structures canonical-review workflow comments. —
.github/​workflows/​build-release-task.yml Splits release workflow comments. —
.github/​workflows/​build-docker-task.yml Splits Docker build workflow comments. —
.github/​skills/​local-strict-review/​SKILL.md Removes the redundant explicit sentence-length pass. —
.github/​skills/​comment-and-doc-style/​SKILL.md Documents the default sentence-length check. —
.github/​skills/​branching-and-release-model/​SKILL.md Clarifies Docker no-op republishing behavior. —
.github/​actions/​validate/​action.yml Splits validation-action comments. —
.github/​actions/​validate-default/​action.yml Splits default validation comments. —
.github/​actions/​python-directories/​python_directories.py Structures Python-directory documentation. —
.github/​actions/​pypi-build-default/​action.yml Splits PyPI artifact comments. —
.github/​actions/​prose-gate/​prose-gate.json Enables sentence-length by default. —
.github/​actions/​prose-gate/​prose_lint.py Splits prose-gate documentation. —
.github/​actions/​prose-gate/​action.yml Splits prose-gate workflow comments. —
.github/​actions/​nuget-build-default/​action.yml Splits NuGet artifact comments. —
.coderabbit.yaml Splits CodeRabbit configuration comments. —
.claude-plugin/​fleet-skills/​skills/​local-strict-review/​SKILL.md Regenerates the Claude Skill copy. —
.claude-plugin/​fleet-skills/​skills/​comment-and-doc-style/​SKILL.md Regenerates the Claude Skill copy. —
.claude-plugin/​fleet-skills/​skills/​branching-and-release-model/​SKILL.md Regenerates the Claude Skill copy. —
.claude-plugin/​fleet-skills/​.source-digests/​local-strict-review Updates the generated Skill digest. —
.claude-plugin/​fleet-skills/​.source-digests/​comment-and-doc-style Updates the generated Skill digest. —
.claude-plugin/​fleet-skills/​.source-digests/​branching-and-release-model Updates the generated Skill digest. —
.agents/​skills/​local-strict-review/​SKILL.md Updates the canonical local-review Skill. —
.agents/​skills/​comment-and-doc-style/​SKILL.md Updates the canonical documentation Skill. —
.agents/​skills/​branching-and-release-model/​SKILL.md Updates the canonical release-model Skill. —

Review effort: Lite

@codecov

codecov Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.60%. Comparing base (0d4e6f1) to head (487deaa).
⚠️ Report is 441 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3619   +/-   ##
=======================================
  Coverage   81.60%   81.60%           
=======================================
  Files          26       26           
  Lines        9070     9070           
=======================================
  Hits         7402     7402           
  Misses       1668     1668           
Flag Coverage Δ
python-3.13 81.60% <ø> (ø)

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 commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Disposition of the two non-blocking present-tense nits in the Copilot review body. The scripts/README.md nit is fixed in #3621, which targets develop and carries the change to main on the next promotion. The docs/fleet-map.md nit is declined: that paragraph is a dated decision record, and the rollout history is its content.

…README (#3621)

Copilot's review of promotion PR #3619 raised a present-tense nit on
`scripts/README.md`. The sentence describing the `sentence-length`
default told the rollout history. This drops that history and states the
current condition.

The same review also noted `docs/fleet-map.md`. That text is a dated
decision record, whose content is the history, so it stays as written.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Coverage acceptance, from the maintainer on 2026-10-29.

Copilot's file table on this promotion named 92 of the 119 changed files. The maintainer accepted feature-pull-request coverage for the 27 it omitted, as on #3600 and #3589. Each omitted file was reviewed in the slice pull request that changed it, by Copilot and by an attested local opus pass:

The maintainer also approved merging #3621 into develop to apply the scripts/README.md present-tense finding. That moves this promotion's head.

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.

🔵 Needs a closer look

The changed docstring still exceeds the default sentence-length cap, so the prose gate will fail until the PATH rationale is split into a separate sentence.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Low severity Split the overlong PATH rationale sentence

tests/​host_capability.py:133

Keep the changed docstring under the new default cap. This sentence continues onto line 133 and totals 31 words, so sentence-length will report the changed line and fail the default prose gate. Split the PATH rationale into a separate sentence before the continuation.

Review effort: Lite

@ptr727

ptr727 commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Disposition of the Copilot finding on head 487deaa (low severity, tests/host_capability.py, sentence-length in the PATH rationale docstring). Declined as false. The develop version of the file passes the gate: prose_lint.py --check sentence-length on that exact content reads 1 file and reports no violation, so no sentence there exceeds the 25-word cap. The sentences around that line read 6 to 22 words each, and the finding's 31-word count joins two sentences across the line wrap.

@ptr727
ptr727 merged commit f24e9f1 into main Oct 29, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants