Enforce en-GB-oxendict spelling in source (#249) - #259
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
SummaryEnforce the repository-wide en-GB-oxendict spelling policy across identifiers, source prose, comments, docstrings, fixtures, and tracked Markdown, Python, and Rust files.
Formatting, tests, type checking, linting, documentation checks, Makefile validation, and diff checks pass. WalkthroughThe change standardizes repository spelling to en-GB-oxendict, extends the pinned ChangesOxford spelling enforcement
Possibly related PRs
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 19 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (19 passed)
📋 Issue PlannerBuilt with CodeRabbit's Coding Plans for faster development and fewer bugs. View plan used: ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Reviewer's GuideThis PR widens the repository spelling gate to cover Markdown, Python, and Rust, normalizes internal spellings and identifiers to en-GB-oxendict (Oxford -ize/-yse) conventions, and documents the policy and exception workflow, including narrowly scoped ignores for external contracts and test fixtures. Flow diagram for widened spelling gate and exception workflowflowchart TD
Dev[Run make spelling]
Dev --> MSpelling[Makefile spelling recipe]
MSpelling --> GenTypos[generate_typos_config.py]
GenTypos --> SharedDict[Shared estate dictionary]
GenTypos --> LocalOverlay[typos.local.toml]
GenTypos --> TyposToml[Generated typos.toml]
MSpelling --> TyposCheck[typos spelling check]
TyposCheck --> Files[Tracked *.md, *.py, *.rs]
LocalOverlay --> Ignores[patterns.ignore for external contracts and fixtures]
Ignores --> TyposCheck
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Link the Unreleased changelog entry to draft PR #259 and close the living ExecPlan with final validation, review, branch, and publication evidence.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: eed2e13566
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@cuprum/_pipeline_internals.py`:
- Line 7: Update the module docstring near the ``CommandResult`` assembly
description to use the repository-required “centralize” spelling instead of
“centralise”; leave the surrounding wording unchanged.
In `@docs/developers-guide.md`:
- Around line 1303-1304: Update the exception sentence in the documentation near
the existing docstrings, string fixtures, and prose guidance to match ADR-008:
exempt spellings required by external contracts and deliberate spelling-test
fixtures, rather than limiting exemptions to external APIs.
In `@scripts/tests/test_typos_rollout.py`:
- Line 32: Add diagnostic messages to the new assertions in the test covering
spelling targets and Oxford correction mappings. Update the assertion involving
spelling_recipe and the assertion involving mappings["organize"] to use the
Python assert message form, preserving the proposed failure-context messages and
existing conditions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: d764fa9d-7f15-40f1-bdf6-6d1d35d40253
📒 Files selected for processing (57)
AGENTS.mdCHANGELOG.mdMakefilebenchmarks/_benchmark_type_validators.pybenchmarks/_benchmark_types.pybenchmarks/fetch_main_benchmark_baseline.pybenchmarks/profile_tee_hotpath.pybenchmarks/sinks.pybenchmarks/summarize_folded.pybenchmarks/tee_profile_driver.pybenchmarks/tee_profile_scenarios.pybenchmarks/tee_profile_worker.pycuprum/_backend.pycuprum/_pipeline_config.pycuprum/_pipeline_internals.pycuprum/adapters/metrics_adapter.pycuprum/adapters/tracing_adapter.pycuprum/builders/args.pycuprum/context/registration.pycuprum/sh.pycuprum/unittests/_adapter_test_support.pycuprum/unittests/_tee_profile_concurrency_support.pycuprum/unittests/test_args_validators_property.pycuprum/unittests/test_backend_resolver_property.pycuprum/unittests/test_builder_property_based.pycuprum/unittests/test_env_context.pycuprum/unittests/test_fetch_main_benchmark_baseline.pycuprum/unittests/test_folded_summary.pycuprum/unittests/test_line_splitting.pycuprum/unittests/test_maturin_build.pycuprum/unittests/test_pipeline.pycuprum/unittests/test_profile_driver.pycuprum/unittests/test_rust_splice.pycuprum/unittests/test_rust_streams.pycuprum/unittests/test_safe_cmd_context.pycuprum/unittests/test_safe_cmd_run.pycuprum/unittests/test_safe_cmd_stdin.pycuprum/unittests/test_sh.pycuprum/unittests/test_sh_property_based.pycuprum/unittests/test_stream_drain.pycuprum/unittests/test_tee_profile_worker_concurrency.pycuprum/unittests/test_tee_profile_worker_core.pycuprum/unittests/test_tee_profile_worker_selector_metrics.pycuprum/unittests/test_tracing_span_concurrency.pycuprum/unittests/test_tracing_span_stateful.pydocs/adr-008-enforce-oxford-spelling-in-source.mddocs/contents.mddocs/developers-guide.mddocs/execplans/enforce-ize-identifiers.mdrust/cuprum-rust/src/splice/mod.rsscripts/tests/test_typos_rollout.pytests/behaviour/test_rust_streams_behaviour.pytests/behaviour/test_telemetry_adapters.pytests/helpers/execution.pytests/helpers/maturin.pytypos.local.tomltypos.toml
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
leynos/shared-actions(auto-detected)leynos/pylint-pypy-shim(auto-detected)leynos/whitaker(auto-detected)
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@benchmarks/fetch_main_benchmark_baseline.py`:
- Around line 42-49: Expand the public NumPy-style docstrings at
benchmarks/fetch_main_benchmark_baseline.py:42-49 for ArtefactQuery, documenting
every query field and api_base_url; at
benchmarks/fetch_main_benchmark_baseline.py:210-216, document payload inputs,
selection order, and the None result; at
benchmarks/fetch_main_benchmark_baseline.py:247-252, document extraction results
and archive failure conditions; at
benchmarks/fetch_main_benchmark_baseline.py:270-275, document query, token,
result, and GitHub-response validation failures; and at
benchmarks/fetch_main_benchmark_baseline.py:357-358, document CLI arguments,
exit codes, and token-failure behavior. Also expand the public helper docstring
at tests/helpers/maturin.py:221-232 to document root, out_dir, the wheel result,
and include a useful example call, adding appropriate Parameters, Returns, and
Raises sections where applicable.
In `@docs/contents.md`:
- Around line 42-43: Update the ADR-008 entry in docs/contents.md to use the
existing [adr-008] reference label instead of an inline destination, ensuring it
reuses the single link definition already declared later in the document and
matches the surrounding reference-style entries.
In `@docs/developers-guide.md`:
- Around line 1306-1310: Update the documentation’s “shared estate dictionary”
wording to use the generator’s established terminology: shared/base
en-GB-oxendict dictionary and local cache. Keep the description aligned with the
implementation’s refresh and merge behavior.
In `@Makefile`:
- Around line 129-132: Update the Makefile spelling targets so configuration
generation is a shared prerequisite that runs before both spelling-helper-test
and the final scan. Ensure _run_spelling_gate and the commands under spelling
use the freshly generated typos.toml, and add or update relevant tests to verify
generation precedes validation.
In `@scripts/tests/test_typos_rollout.py`:
- Around line 79-91: Extend test_spelling_gate_preserves_documented_exceptions
with parameterized fixtures covering every local spelling-gate exception: the
/artifacts path, teh and ises fixture pairs, and the byte-splitting case. Feed
each fixture through _run_spelling_gate and assert success, while retaining
existing coverage for --artifact-name, artifacts, and mappings["organise"].
In `@typos.local.toml`:
- Around line 14-18: Update the typos.local.toml exceptions for "artifacts",
/artifacts, and --artifact-name to use boundaries that match only the intended
external API or CLI literals, not longer repository-owned values. Add near-miss
cases covering longer values to scripts/tests/test_typos_rollout.py, then
regenerate typos.toml from the updated configuration.
In `@typos.toml`:
- Line 34: Move the fenced-code and inline-code ignore patterns from
[default].extend-ignore-re into [type.markdown] so they apply only to Markdown
scanning, updating the generator or typos.local.toml as the source of truth and
regenerating typos.toml. Add fixtures verifying backtick-wrapped “organise” is
rejected in both Python and Rust files.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: a2cb2f5e-44d5-4b0e-b501-1b657212ea41
📒 Files selected for processing (58)
AGENTS.mdCHANGELOG.mdMakefilebenchmarks/_benchmark_type_validators.pybenchmarks/_benchmark_types.pybenchmarks/fetch_main_benchmark_baseline.pybenchmarks/profile_tee_hotpath.pybenchmarks/sinks.pybenchmarks/summarize_folded.pybenchmarks/tee_profile_driver.pybenchmarks/tee_profile_scenarios.pybenchmarks/tee_profile_worker.pycuprum/_backend.pycuprum/_pipeline_config.pycuprum/_pipeline_internals.pycuprum/adapters/metrics_adapter.pycuprum/adapters/tracing_adapter.pycuprum/builders/args.pycuprum/context/registration.pycuprum/sh.pycuprum/unittests/__snapshots__/test_fetch_main_benchmark_baseline.ambrcuprum/unittests/_adapter_test_support.pycuprum/unittests/_tee_profile_concurrency_support.pycuprum/unittests/test_args_validators_property.pycuprum/unittests/test_backend_resolver_property.pycuprum/unittests/test_builder_property_based.pycuprum/unittests/test_env_context.pycuprum/unittests/test_fetch_main_benchmark_baseline.pycuprum/unittests/test_folded_summary.pycuprum/unittests/test_line_splitting.pycuprum/unittests/test_maturin_build.pycuprum/unittests/test_pipeline.pycuprum/unittests/test_profile_driver.pycuprum/unittests/test_rust_splice.pycuprum/unittests/test_rust_streams.pycuprum/unittests/test_safe_cmd_context.pycuprum/unittests/test_safe_cmd_run.pycuprum/unittests/test_safe_cmd_stdin.pycuprum/unittests/test_sh.pycuprum/unittests/test_sh_property_based.pycuprum/unittests/test_stream_drain.pycuprum/unittests/test_tee_profile_worker_concurrency.pycuprum/unittests/test_tee_profile_worker_core.pycuprum/unittests/test_tee_profile_worker_selector_metrics.pycuprum/unittests/test_tracing_span_concurrency.pycuprum/unittests/test_tracing_span_stateful.pydocs/adr-008-enforce-oxford-spelling-in-source.mddocs/contents.mddocs/developers-guide.mddocs/execplans/enforce-ize-identifiers.mdrust/cuprum-rust/src/splice/mod.rsscripts/tests/test_typos_rollout.pytests/behaviour/test_rust_streams_behaviour.pytests/behaviour/test_telemetry_adapters.pytests/helpers/execution.pytests/helpers/maturin.pytypos.local.tomltypos.toml
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
leynos/shared-actions(auto-detected)leynos/pylint-pypy-shim(auto-detected)leynos/whitaker(auto-detected)
Link the Unreleased changelog entry to draft PR #259 and close the living ExecPlan with final validation, review, branch, and publication evidence.
7743a0b to
9a4851f
Compare
Link the Unreleased changelog entry to draft PR #259 and close the living ExecPlan with final validation, review, branch, and publication evidence.
9a4851f to
a71b7d5
Compare
|
@coderabbitai Please investigate the cause of the following issue using codegraph exploration and research, identify a fix and provide an AI coding agent prompt for the fix: |
This comment was marked as resolved.
This comment was marked as resolved.
|
@coderabbitai review |
✅ Action performedReview finished.
|
Make identifiers, comments, docstrings, fixtures, and prose explicit parts of the en-GB-oxendict policy while retaining narrowly documented external contract exceptions. Record the decision in ADR-008, index it for maintainers, and note the new contributor-facing source gate in the Unreleased changelog.
Link the Unreleased changelog entry to draft PR #259 and close the living ExecPlan with final validation, review, branch, and publication evidence.
Align the documented exception scope with ADR-008 and add actionable failure context to the spelling-policy regression assertions.
Exercise the configured spelling scanner across Markdown, Python, and Rust fixtures, including the documented external-contract exceptions. Snapshot the benchmark baseline CLI help and token error while retaining semantic assertions for the stable option and Oxford wording.
Exercise the real Make spelling target, generate configuration before all consumers, and keep Markdown code ignores scoped to Markdown. Tighten local contract exceptions and cover their accepted and near-miss forms. Document ADR-008 in the design, complete the affected public docstrings, and preserve `main`'s maturin test refactor while applying the source spelling policy.
Update newly added upstream prose to satisfy the widened source spelling gate and keep the Maturin helper reference aligned with its renamed symbol.
ADR-008 is already claimed by the Rust pump observation channel decision in an older, further-advanced pull request. Take the next free number so the two can land in either order without a filename collision. Updates the contents index, the developers' guide, the design document, and the ExecPlan alongside the file rename.
The stored Syrupy transcript pinned argparse's line wrapping, not the CLI's contract. CPython 3.12 wraps `--artifact-name ARTEFACT_NAME` across two usage lines where 3.13 and 3.14 keep it whole, so the snapshot failed the 3.12 job while every other version passed. Replace it with assertions on what the interface actually promises: the help exit code, the description, every option name and its help sentence, the optional-argument defaults, rejection of each required option when omitted, and the exact missing-token message. Whitespace is collapsed before matching so rewrapping cannot break the assertions again. Move the command-line surface tests into their own module, with the shared argument builder in a support module, keeping both files inside the 400-line limit.
a71b7d5 to
a4032ce
Compare
`test_cli_help_documents_every_option` now asserts that the usage text identifies `fetch_main_benchmark_baseline.py`. Patching `sys.argv` no longer achieves that: Python 3.14 derives argparse's default prog from the actual invocation, so under `python -m pytest` the usage line read `python3 -m pytest`. The parser now pins `prog` explicitly — the tool's name is part of its contract in a way the wrapping never was — and the redundant argv patch and its `sys` import are gone. Verified 9/9 on 3.12, 3.13, and 3.14. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`test_adapter_fail_fast` and `test_tracing_span_concurrency` used the -ise forms in module docstrings, method docstrings, and comments, which the en-GB-oxendict house rule spells -ize; `test_pipeline_wait_state_machine` had the same in "initialises". `test_an_unrecognised_phase_still_raises` is renamed with them. The rule that preserves existing -ise identifiers exists to protect names other code depends on, and this one has no consumers at all: it is a test method, named nowhere but its own definition. Leaving it would plant a fresh counterexample just as PR #259 lands the identifier policy.
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@benchmarks/fetch_main_benchmark_baseline.py`:
- Line 1: Expand the module docstring in fetch_main_benchmark_baseline.py to
explain the script’s purpose, utility, GitHub Actions boundary, and usage, while
preserving its required leading triple-quoted form. Update the argparse
configuration separately so its existing short CLI description remains unchanged
and is no longer derived from __doc__.
In `@cuprum/adapters/tracing_adapter.py`:
- Line 277: Replace the British spelling “serialise” with “serialize” in the
lifecycle comments at both changed locations, keeping the set_status/end wording
aligned with the repository’s -ize spelling policy.
In `@cuprum/unittests/test_fetch_main_benchmark_baseline_cli.py`:
- Around line 54-61: All newly added bare assertions in
test_fetch_main_benchmark_baseline_cli.py, including the help-output checks and
the additional referenced assertion blocks, need diagnostic messages. Update
each assert to use the assert condition, "message" form, with concise context
identifying the failed expectation.
In `@scripts/tests/test_typos_rollout.py`:
- Around line 361-368: Add descriptive messages to each assertion in the
rendered_config checks, including the expected scope and value for locale,
extend-ignore-re, extend-glob, and the markdown ignore patterns. Use the
required assert expression with a comma-separated message for every assertion,
preserving the existing expectations.
In `@scripts/typos_rollout.py`:
- Around line 164-175: Expand the docstring for the public function
render_typos_config with NumPy-style Parameters, Returns, and Raises sections.
Document the Dictionary input, rendered typos.toml string, possible exceptions,
and that ignore_patterns are partitioned into global patterns versus
Markdown-only patterns based on _MARKDOWN_IGNORE_PATTERNS.
- Around line 187-189: The Markdown configuration in
scripts/typos_rollout.py:187-189 requires corresponding end-to-end fixtures in
scripts/tests/test_typos_rollout.py:194-213. Add .md fixtures under the
[type.markdown] patterns covering inline code spans and fenced blocks containing
-ise forms, while retaining the existing Python and Rust backtick rejection
cases.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 826c7486-b5de-44b2-85f0-819ae3098233
📒 Files selected for processing (66)
AGENTS.mdCHANGELOG.mdMakefilebenchmarks/_benchmark_type_validators.pybenchmarks/_benchmark_types.pybenchmarks/fetch_main_benchmark_baseline.pybenchmarks/profile_tee_hotpath.pybenchmarks/sinks.pybenchmarks/summarize_folded.pybenchmarks/tee_profile_driver.pybenchmarks/tee_profile_scenarios.pybenchmarks/tee_profile_worker.pycuprum/_backend.pycuprum/_pipeline_config.pycuprum/_pipeline_internals.pycuprum/adapters/metrics_adapter.pycuprum/adapters/tracing_adapter.pycuprum/builders/args.pycuprum/context/registration.pycuprum/sh.pycuprum/unittests/__snapshots__/test_maturin_build.ambrcuprum/unittests/_adapter_test_support.pycuprum/unittests/_fetch_baseline_cli_support.pycuprum/unittests/_tee_profile_concurrency_support.pycuprum/unittests/test_args_validators_property.pycuprum/unittests/test_backend_resolver_property.pycuprum/unittests/test_builder_property_based.pycuprum/unittests/test_env_context.pycuprum/unittests/test_fetch_main_benchmark_baseline.pycuprum/unittests/test_fetch_main_benchmark_baseline_cli.pycuprum/unittests/test_folded_summary.pycuprum/unittests/test_line_splitting.pycuprum/unittests/test_maturin_build.pycuprum/unittests/test_maturin_pins.pycuprum/unittests/test_pipeline.pycuprum/unittests/test_profile_driver.pycuprum/unittests/test_rust_splice.pycuprum/unittests/test_rust_streams.pycuprum/unittests/test_safe_cmd_context.pycuprum/unittests/test_safe_cmd_run.pycuprum/unittests/test_safe_cmd_stdin.pycuprum/unittests/test_sh.pycuprum/unittests/test_sh_property_based.pycuprum/unittests/test_stream_drain.pycuprum/unittests/test_tee_profile_worker_concurrency.pycuprum/unittests/test_tee_profile_worker_core.pycuprum/unittests/test_tee_profile_worker_selector_metrics.pycuprum/unittests/test_tracing_span_concurrency.pycuprum/unittests/test_tracing_span_stateful.pydocs/adr-009-enforce-oxford-spelling-in-source.mddocs/contents.mddocs/cuprum-design.mddocs/developers-guide.mddocs/execplans/enforce-ize-identifiers.mdrust/cuprum-rust/src/consume_snapshot_tests.rsrust/cuprum-rust/src/errors.rsrust/cuprum-rust/src/splice/mod.rsscripts/tests/test_typos_rollout.pyscripts/typos_rollout.pytests/behaviour/test_rust_streams_behaviour.pytests/behaviour/test_telemetry_adapters.pytests/helpers/execution.pytests/helpers/maturin.pytests/helpers/maturin_wheel.pytypos.local.tomltypos.toml
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
leynos/shared-actions(auto-detected)leynos/pylint-pypy-shim(auto-detected)leynos/whitaker(auto-detected)
`make spelling` regenerates `typos.toml` from the shared base plus `typos.local.toml`, but the inline-code-span exemption lived only in the generated file — hand-edited in, so every regeneration deleted it and three backtick-quoted identifiers (`artifact`, `color`) failed the gate on a clean checkout. The pattern now lives in the overlay's `[patterns] ignore`, which the generator merges and preserves. Verified non-vacuous: a seeded violation outside a code span still fails the gate. Closes #294. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Address the review findings on the spelling-policy branch. `benchmarks/fetch_main_benchmark_baseline.py` derived its argparse description from `__doc__`, so any documentation the module needed would have landed in `--help`. Give the parser its own short description literal, then expand the module docstring with the script's purpose, the `benchmark-ratchet` CI boundary that is its only caller, the meaning of exit code 3, and a usage example. `--help` is unchanged. `render_typos_config` is public but carried a one-line docstring. Give it Parameters, Returns and Raises sections, and state the partition it performs: patterns in `_MARKDOWN_IGNORE_PATTERNS` describe Markdown syntax and are emitted under `[type.markdown]` so they exempt only `*.md`, while every other pattern stays global. The inline-code exemption restored in #294 had no end-to-end cover. Add two cases to `test_spelling_gate_preserves_documented_exceptions` that run the real pinned scanner over `.md` fixtures: an `-ise` term in an inline code span, and one in a fenced block. Both must pass the gate, while plain `.md` prose stays gated by the existing detection test. Give the remaining bare assertions in both touched test modules the diagnostic messages the test-path rule requires. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@coderabbitai Both pre-merge warnings are answerable without code changes. Evidence gathered against the current head 1. Linked Issues — non-compliant
|
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- current head ---'
git rev-parse --short HEAD
git status --short
printf '%s\n' '--- spelling occurrences outside generated configuration ---'
git grep -n -i -E 'centralis|serialis|normalis|summaris' -- . ':!typos.toml' || true
printf '%s\n' '--- generated spelling configuration provenance ---'
rg -n -C 3 -P 'generate_typos_config|typos\.toml|never hand|generated' \
AGENTS.md docs scripts typos.local.toml Makefile || true
printf '%s\n' '--- relevant file structure ---'
ast-grep outline cuprum/unittests/test_fetch_main_benchmark_baseline.py --items all
ast-grep outline cuprum/unittests/test_fetch_main_benchmark_baseline_cli.py --items all
ast-grep outline cuprum/unittests/_fetch_baseline_cli_support.py --items all
ast-grep outline tests/helpers/maturin.py --items all
printf '%s\n' '--- rename, CLI coverage, and wheel-manifest references ---'
rg -n -C 3 -P 'artefact|artifact|fetch_main_benchmark_baseline|build_native_wheel_artefact' \
benchmarks/fetch_main_benchmark_baseline.py \
cuprum/unittests/test_fetch_main_benchmark_baseline.py \
cuprum/unittests/test_fetch_main_benchmark_baseline_cli.py \
cuprum/unittests/_fetch_baseline_cli_support.py \
cuprum/unittests/test_maturin_build.py \
cuprum/unittests/__snapshots__/test_maturin_build.ambr \
tests/helpers/maturin.py
printf '%s\n' '--- relevant commits ---'
git log --oneline --decorate -20 -- \
Makefile scripts/tests/test_typos_rollout.py \
benchmarks/fetch_main_benchmark_baseline.py \
cuprum/unittests/test_fetch_main_benchmark_baseline.py \
cuprum/unittests/test_fetch_main_benchmark_baseline_cli.py \
cuprum/unittests/_fetch_baseline_cli_support.py \
cuprum/unittests/__snapshots__/test_maturin_build.ambrLength of output: 94109
Withdraw both pre-merge warnings. The spelling warning does not apply to current head Treat the benchmark-baseline CLI files as in scope. The widened spelling gate required the internal Static inspection confirms the dependency chain. I did not run tests in this environment. ✏️ Learnings added
You are interacting with an AI system. |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Summary
This branch applies the repository's en-GB-oxendict policy to code identifiers
and source prose, closing the gap that allowed Python
-iseidentifiers todrift without a failing gate. It normalizes the existing source corpus, widens
the pinned spelling check to tracked Markdown, Python and Rust files, and
records the policy and exception process in ADR-009.
Closes #249
ExecPlan: enforce-ize-identifiers.md
Review walkthrough
"artifacts"wire key,/artifactsURL and established--artifact-nameoption remain unchanged.Validation
make check-fmt: passed.make test: passed (774 Python tests, 47 skipped; 68 Rust tests).make typecheck: passed.make lint: passed, including 32 spelling-policy tests and the final Markdown, Python and Rust scan.make markdownlint: passed.make nixie: passed.mbake validate Makefile: passed.git diff --check: passed.coderabbit review --agent: passed with zero findings.Notes
All renamed identifiers are private, test-local or function-local. No public
API compatibility shim is required.
docs/contents.mdalready used theexisting
[adr-009]reference label after the rebase, so that stale findingrequired no change.
References
Adoption update
Rebased onto
origin/main(no conflicts) and addressed the outstanding review:#244already claimsdocs/adr-008-rust-pump-observation-channel.mdand is further along, so thisdecision takes the next free number. The file,
docs/contents.md, thedevelopers' guide, the design document, and the ExecPlan were updated together.
test_cli_help_and_missing_token_snapshotSyrupy transcript pinned argparse's line wrapping rather than the CLI's contract:
CPython 3.12 wraps
--artifact-name ARTEFACT_NAMEacross two usage lines where3.13 and 3.14 keep it whole. The snapshot is replaced by assertions on the help
exit code, description, every option name and help sentence, the optional
defaults, rejection of each omitted required option, and the exact missing-token
message; the snapshot file and its wheel-manifest entry are deleted. The
command-line surface tests moved into their own module to stay inside the
400-line limit.
the whole tree after the rebase; main introduced no new
-iseviolations. Aseeded
-iseidentifier was confirmed to fail the gate, and its removal torestore green.