Skip to content

Accept .codecov.yml as an Alternative to codecov.yml - #3105

Merged
ptr727 merged 7 commits into
developfrom
feature/auto-2996
Oct 16, 2026
Merged

ptr727 merged 7 commits into
developfrom
feature/auto-2996

Conversation

@ptr727

@ptr727 ptr727 commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • A spec/files.json baseline entry may declare alternatives, other paths the tool reading the file accepts it at. The codecov.yml entry names .codecov.yml, which Codecov also reads at the repository root.
  • spec/audit.py reads the declared path first and each alternative only while nothing is found (read_baseline_file). A repo holding only .codecov.yml passes the file-presence check, one holding neither gets one LETTER naming both paths, and the intent staleness advisory is read at the path the file was found at (baseline_file_findings).
  • spec/validate.py (alternatives_errors) refuses a list off the schema's shape, alternatives on anything but a whole-file presence or intent entry, alternatives on a path a second baseline entry also names, and an alternative that is itself a declared path.
  • spec/fidelity_honesty.py reads a downstream copy at the same paths through the shared helpers, and contents_text is now the one contents decoder in the files this touches.
  • WORKFLOW.md D1.6, spec/fidelity-model.md, spec/type-model.md, and the Python coverage check in spec/project-types.json name .codecov.yml. The skill copies of WORKFLOW.md section 4 are regenerated.

Verification

  • spec/audit.py --selftest: new cases cover the declared path only, the alternative only (present, staleness read at the alternative), both (declared wins), and neither (one LETTER naming both). Reverting found to path in baseline_file_findings fails the alternative case.
  • tests/test_spec_validate.py BaselineAlternativesCase covers the validator, including the live codecov entry.
  • spec/validate.py, the full unittest suite, ruff, mypy, build_dist.py --check, prose_lint.py --diff, markdownlint, cspell, and editorconfig-checker pass locally.

Local review findings

Each finding a local pass left open after its push's edit budget, with its outcome:

  • introduced: the check_units docstring said downstream_path is always the entry's path. Fixed in 2b7f211.
  • introduced: fidelity_honesty.fetch and baseline_file_findings each decoded the contents response. Fixed in 2b7f211 with the shared contents_text. The untouched spec/workflow_reuse.py copy is Move workflow_reuse.py fetch onto audit.contents_text #3106.
  • introduced: the alternatives_errors docstring gave an inaccurate rationale, a broken wrap, and two long sentences. Fixed in 59e4057 by cutting it to the rules it enforces.
  • introduced: the audit_repo and fidelity_pass call sites that pass alternatives are not tested, only the helpers they call. Deferred to Test the alternatives wiring at the audit_repo and fidelity_pass call sites #3107, since it needs a fixture driving audit_repo's baseline loop.
  • Declined: the schema-shape clauses in alternatives_errors read as over-hardening to one pass. spec/validate.py states CI runs no schema validation, so it enforces files.schema.json's shape itself, which the PR review asked for.

Closes on promotion: #2996

🤖 Generated with Claude Code

ptr727 and others added 3 commits October 15, 2026 17:43
A baseline entry in spec/files.json may now declare `alternatives`, other
paths the tool reading the file accepts it at. The audit reads the declared
path first and each alternative only while nothing has been found, so a repo
holding only `.codecov.yml` passes the file-presence check and one holding
neither still fails it. The intent staleness advisory and the
fidelity-honesty pass read the file where it was found.

spec/validate.py refuses an alternative outside the repository, one repeating
a path, and one on any unit other than a whole-file presence or intent unit,
since every other check reads the declared path alone. WORKFLOW.md D1.6 names
`.codecov.yml` beside `codecov.yml`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The validator now checks alternatives across the whole baseline: a path
declaring them must be named by no other entry, since a second entry could
add a section, contract, or carry that reads the declared path. The audit and
the fidelity-honesty pass share one map of declared alternatives, and the
read, the absence finding, and the intent staleness advisory move into one
helper the self-test drives at the alternative path. The repo-relative and
repeat checks are dropped, since an alternative only names a contents API
path. The type model and the Python coverage check name `.codecov.yml` too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
D1.6 names where Codecov reads .codecov.yml, the fidelity model scopes
which checks follow an alternative to the audit, and the audit self-test
pins only the codecov.yml key of the live alternatives map.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 16, 2026 00:59
@ptr727

ptr727 commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

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

@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

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

⚙️ Run configuration
  • Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 40336fe3-77c9-45e5-a8fc-e9fd7b084160
  • 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.

🟡 Changes recommended

Validator gaps remain for malformed alternative lists and alternative-path collisions.

4 open findings
What changed in this PR

Adds support for .codecov.yml as an alternative to codecov.yml across validation, auditing, fidelity checks, documentation, and generated skill copies.

Changes:

  • Adds schema and validator support for alternative paths.
  • Updates audit and fidelity resolution behavior.
  • Adds tests and documentation for alternative-file handling.
File Description
WORKFLOW.md Documents .codecov.yml support.
tests/​test_spec_validate.py Tests alternative validation.
spec/​validate.py Validates alternative declarations.
spec/​type-model.md Updates coverage requirements.
spec/​project-types.json Updates Python coverage wording.
spec/​files.schema.json Defines the alternatives schema.
spec/​files.json Declares .codecov.yml as an alternative.
spec/​fidelity-model.md Documents alternative semantics.
spec/​fidelity_honesty.py Reads alternative paths for fidelity checks.
spec/​audit.py Audits declared and alternative paths.
.github/​skills/​workflow-ci-contract/​references/​d-guarantees.md Updates generated workflow guidance.
.claude-plugin/​fleet-skills/​skills/​workflow-ci-contract/​references/​d-guarantees.md Updates generated skill guidance.
.claude-plugin/​fleet-skills/​.source-digests/​workflow-ci-contract Updates the source digest.
.agents/​skills/​workflow-ci-contract/​references/​d-guarantees.md Updates authored skill guidance.

🧠 Review effort: Lite


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

Comment thread spec/validate.py Outdated
Comment thread spec/validate.py
Comment thread spec/fidelity_honesty.py
Comment thread spec/fidelity_honesty.py
@codecov

codecov Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 21.78218% with 79 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (develop@8931e9e). Learn more about missing BASE report.

Files with missing lines Patch % Lines
spec/audit.py 5.12% 74 Missing ⚠️
spec/fidelity_honesty.py 0.00% 4 Missing ⚠️
spec/validate.py 94.73% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #3105   +/-   ##
==========================================
  Coverage           ?   60.88%           
==========================================
  Files              ?       17           
  Lines              ?     9148           
  Branches           ?        0           
==========================================
  Hits               ?     5570           
  Misses             ?     3578           
  Partials           ?        0           
Flag Coverage Δ
python-3.13 60.88% <21.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 and others added 3 commits October 15, 2026 18:09
The validator holds an alternatives list to the shape files.schema.json
states, since CI runs no schema validation, and refuses an alternative that
is itself a declared baseline path, which the audit would read as a second
unit. A shared contents_text decoder replaces the decode copies in the
files this change touches, and the check_units docstring names where
fetch reads a copy that sits at an alternative.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

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

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 59e4057eb89cb50dbcc9fd24dbd4d6270b226f5e, the content this pull request carries at that commit against develop, and it recorded 1 finding.

@ptr727
ptr727 merged commit df8775d into develop Oct 16, 2026
13 checks passed
@ptr727
ptr727 deleted the feature/auto-2996 branch October 16, 2026 01:36
ptr727 added a commit that referenced this pull request Oct 16, 2026
… Fixes to Main (#3146)

- #3135 makes `gh-write-guard` read a gh write's subcommand and target
the way gh parses them: the subcommand is found past flags before the
command and before the subcommand, an `R` inside a short-option cluster
is read as a target, `GH_REPO` is read as a target, a run-time
repository owner on a write fails closed, and a run-time word where `pr`
or `merge` goes fails closed beside `--admin` or where word splitting
may split it
- #3139 releases the bootstrap lock when a `bootstrap.ps1` run ends
rather than when its process does, so a second run typed at the same
pwsh prompt is no longer refused the lock
- #3130 matches tool names and the `all` keyword by case in the Windows
agents loaders, as the Linux loaders already do
- #3128 reads CodeRabbit's rate limit on a reply to an explicit review
command in `pr_review.py`
- #3126 reconciles VSCode-Server-DotNetCore in the hub after its resync
- #3124 logs the Docker task's build-base leg in to Docker Hub
- #3122 names the carried skill and the skipped review correctly
- #3120 states the subprocess encoding rule in `CODESTYLE.md`, where
carriers read Python style
- #3118 and #3111 move the release-guard tests' workflow-command checks
onto `runner_commands`, and test the alternatives wiring at the
`audit_repo` and `fidelity_pass` call sites
- #3116 stops the doc gates' printed names forging workflow commands
- #3113 adds a catalog snippet for the release-with-smoke caller
- #3109 moves the `workflow_reuse` fetch onto `audit.contents_text`
- #3105 accepts `.codecov.yml` as an alternative to `codecov.yml`
- #3103 adds a pip ecosystem to the carried Dependabot snippet
- #3100 prefers the venv's ruff and pyright for a declared pip directory
- #3098 tracks composite action pins in Dependabot
- #3096 reads an uppercase Markdown suffix as Markdown at every prose
gate branch

After this merges, the host-safety installer payload changes, so the
maintainer runs the installer after promotion.

Closes #1416
Closes #1425
Closes #1578
Closes #1874
Closes #1892
Closes #1899
Closes #2804
Closes #2850
Closes #2852
Closes #2854
Closes #2996
Closes #3065
Closes #3067
Closes #3069
Closes #3079
Closes #3080
Closes #3089
Closes #3093
Closes #3101
Closes #3106
Closes #3107
Closes #3137

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


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a pull-request smoke build that runs when relevant release files
change and reports the combined validation and build status.
* Repository audits now recognize `.codecov.yml` as an alternative to
`codecov.yml`.

* **Improvements**
* Python linting and type checks use tools from declared project
environments when available, with fallbacks for missing tools.
* Workflow and lint reports safely display unusual filenames and
command-like text.
* GitHub write-target checks now account for additional command forms
and fail closed when targets cannot be verified.
* Rate-limit detection now recognizes another CodeRabbit response
format.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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