Skip to content

feat(quality-list,todo-check): sweep docs for widened outcome sets - #82

Merged
ultimatile merged 1 commit into
mainfrom
feat/72-enum-outcome-sweep
Jul 5, 2026
Merged

feat(quality-list,todo-check): sweep docs for widened outcome sets#82
ultimatile merged 1 commit into
mainfrom
feat/72-enum-outcome-sweep

Conversation

@ultimatile

@ultimatile ultimatile commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

docstring-drift's triggers were all framed around a claim becoming false, so it missed the class where a diff widens a reachable outcome set feeding a documented closed enumeration — a rustdoc # Errors variant list, a "returns one of" set, a status-code list, a handled-event list. Every listed claim stays individually true, yet the enumeration silently goes incomplete. This adds a distinct reachable-set-widened trigger and its own procedure.

Closes #72

Changes

  • skills/quality-list/items/docstring-drift.md — new Enumerated-outcome completeness trigger and procedure (language-neutral), placed after the main procedure so the claim-falsification steps are not mis-applied to it.
  • skills/quality-list/lang-rust.md — Rust realization: rustdoc # Errors sections, #[from] / ? propagation, and body-path sibling reachability.
  • skills/todo-check/SKILL.md — preflight quick-reference for docstring-drift extended with the widened-outcome case.
  • .claude-plugin/marketplace.json — version bump to 2026.7.4.

Impact

done-check's contextual pass and todo-check's preflight both self-load the item body plus the matching Rust addendum per item slug, so the new sweep runs with no edit to either consumer. The doc surface is distinct from paired-artifact-drift (which owns a type's producer-list docstring): this trigger owns the entry-point and sibling # Errors enumerations, so neither item double-covers the check.

Test plan

No compiled code; verification is by reading.

  • Dry-ran the new procedure against the motivating scenario — a new #[from] variant reachable from an entry point plus a sibling # Errors rustdoc left incomplete — and confirmed it flags rather than passing.
  • Sibling-reachability scoping verified against Rust semantics: a ? on a callee returning the same enum propagates the new variant through the reflexive From<E> for E, so such siblings are in scope; siblings with no reaching path are not.
  • mdformat pre-commit hook passes.

Notes

Whether the standalone driftreaper skill should gain the same enumerated-outcome claim category is left to a possible follow-up; this PR scopes to the done-check / docstring-drift gate.

Summary by CodeRabbit

  • Documentation
    • Added clearer guidance for keeping enumerated documentation in sync with behavior when new outcomes become possible.
    • Expanded Rust-specific notes for documenting reachable errors and checking for incomplete # Errors sections.
    • Updated the checklist to include an extra review step for newly reachable outcomes that affect documented lists.

Add a reachable-set-widened trigger and procedure to the docstring-drift
item: a documented closed enumeration (error-variant list, returns-one-of,
status codes, handled events) silently goes incomplete when a diff widens
the set feeding it, though every listed claim stays individually true. The
claim-falsification procedure cannot surface this, so it gets its own block.

Realize it for Rust in lang-rust.md (rustdoc # Errors sections, #[from] / ?
propagation, body-path sibling reachability) and extend the todo-check
preflight quick reference.

Bump marketplace version to 2026.7.4.
@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 13d4534d-23d1-440f-8460-f2c7d11eaad8

📥 Commits

Reviewing files that changed from the base of the PR and between 7dab7d2 and 118fe09.

📒 Files selected for processing (4)
  • .claude-plugin/marketplace.json
  • skills/quality-list/items/docstring-drift.md
  • skills/quality-list/lang-rust.md
  • skills/todo-check/SKILL.md

📝 Walkthrough

Walkthrough

This PR adds an "Enumerated-outcome completeness" drift trigger to the docstring-drift quality item, defining when closed doc enumerations (error variants, status codes, handled events) become incomplete due to widened reachable outcomes. A Rust-specific addendum adds grep-based detection for new #[from] conversions against rustdoc # Errors sections. The todo-check preflight bullet is extended accordingly, and the marketplace version is bumped.

Changes

Enumerated-outcome completeness rule

Layer / File(s) Summary
Core enumerated-outcome completeness trigger
skills/quality-list/items/docstring-drift.md
Adds a new drift trigger and 3-step detection procedure for closed enumerations that become incomplete when a diff widens the reachable outcome set.
Rust addendum for error enumeration drift
skills/quality-list/lang-rust.md
Adds Rust-specific triggers, grep-based detection for new #[from] conversions and error construction sites, and false-positive/N/A rules for # Errors cross-checks.
Todo-check preflight wiring and version bump
skills/todo-check/SKILL.md, .claude-plugin/marketplace.json
Extends the docstring-drift preflight bullet to cover widened enumeration scenarios and bumps the marketplace metadata version to 2026.7.4.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • ultimatile/development-skills#45: Expands docstring-drift guidance and skills/todo-check/SKILL.md in overlapping ways, ensuring docstring-drift coverage in the quality-list items index.

Poem

A rabbit combs through docs so neat,
"New errors lurking? Not complete!"
With grep in paw and #[from] in sight,
I sweep enum lists 'til they're all tight.
Version hopped up, 7.4 —
No hidden variant slips through my door! 🐰

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the docs sweep for widened outcome sets and matches the main change.
Linked Issues check ✅ Passed The PR adds the widened-reachable-set trigger and enumerated-outcome checks requested in #72, including Rust and quick-reference coverage.
Out of Scope Changes check ✅ Passed The marketplace version bump is explicitly part of the stated PR scope, and no unrelated changes are evident.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/72-enum-outcome-sweep

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.

@ultimatile

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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.

docstring-drift: sweep enumerated-outcome docs when a diff widens a reachable error set

1 participant