Skip to content

Reuse maintained components and follow published standards join the catalog, and dependency currency becomes the consumer's half of deprecation discipline - #411

Merged
HackingGate merged 2 commits into
mainfrom
feat/catalog-398
Oct 22, 2026
Merged

HackingGate merged 2 commits into
mainfrom
feat/catalog-398

Conversation

@HackingGate

@HackingGate HackingGate commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Closes #398.

The catalog had no record for three principles a project stated in prose:
nothing hand-rolled where a maintained component does the job, a part an
RFC or industry standard covers follows that standard, and the stack is
kept current. Two of them become records and the third joins the record
that already holds it.

  • reuse-maintained-components (principle). The hand-rolled-toolchain set
    enforces only the installer case. This record states the general claim:
    a maintained component carries the edge cases and fixes of every user it
    has, and a private copy carries only its author's. Spolsky's defense of
    NIH is the counterweight in does_not_mean, and Cox's "Our Software
    Dependency Problem" supplies the costs. It conflicts with
    economy-of-mechanism (a large dependency under a small trusted guard) and
    minimize-attack-surface (each dependency is a supply-chain edge). Both
    ends are written.
  • follow-published-standards (principle). It differs from
    robustness-principle, which asks how liberal a reader should be. This
    record asks what a part emits and claims, and does_not_mean hands the
    leniency question back to robustness-principle. The sources are RFC 2026,
    RFC 7282 and the W3C QA Framework.
  • deprecation-discipline already refuses a pin behind its newest tag
    (claimed by no-stale-hook-pins), and that is currency. It gains the alias
    "Dependency currency", an applies_when and a review question for
    end-of-life and advisory-carrying components, and OWASP A06 as a source.

Both new records are partially automatable and unclaimed, so they render
into REVIEW.md and AGENTS.md (487 lines of 900). Thirty review-carried
records now have no control.

https://claude.ai/code/session_01LLQgSP5VfjmzynDrYMSBd5

Summary by CodeRabbit

  • Documentation
    • Added guidance for following published standards, including versioning, supported profiles, conformance testing, and documented exceptions.
    • Added guidance on reusing maintained libraries, tools, and standard-library components, with considerations for fit, coverage, and maintenance.
    • Updated principle indexes and review questions to include both topics, and expanded deprecation guidance to cover outdated or vulnerable components.
    • Updated the published count of review-carried records without a control.

…atalog, and dependency currency becomes the consumer's half of deprecation discipline

Closes #398.

The catalog had no record for three principles a project stated in prose:
nothing hand-rolled where a maintained component does the job, a part an
RFC or industry standard covers follows that standard, and the stack is
kept current. Two of them become records and the third joins the record
that already holds it.

- reuse-maintained-components (principle). The hand-rolled-toolchain set
  enforces only the installer case. This record states the general claim:
  a maintained component carries the edge cases and fixes of every user it
  has, and a private copy carries only its author's. Spolsky's defense of
  NIH is the counterweight in does_not_mean, and Cox's "Our Software
  Dependency Problem" supplies the costs. It conflicts with
  economy-of-mechanism (a large dependency under a small trusted guard) and
  minimize-attack-surface (each dependency is a supply-chain edge). Both
  ends are written.
- follow-published-standards (principle). It differs from
  robustness-principle, which asks how liberal a reader should be. This
  record asks what a part emits and claims, and does_not_mean hands the
  leniency question back to robustness-principle. The sources are RFC 2026,
  RFC 7282 and the W3C QA Framework.
- deprecation-discipline already refuses a pin behind its newest tag
  (claimed by no-stale-hook-pins), and that is currency. It gains the alias
  "Dependency currency", an applies_when and a review question for
  end-of-life and advisory-carrying components, and OWASP A06 as a source.

Both new records are partially automatable and unclaimed, so they render
into REVIEW.md and AGENTS.md (487 lines of 900). Thirty review-carried
records now have no control.

Claude-Session: https://claude.ai/code/session_01LLQgSP5VfjmzynDrYMSBd5
@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 47 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: db6b57d1-f4af-48f9-a972-053819e31625
📥 Commits

Reviewing files that changed from the base of the PR and between 75ade11 and 74fee02.

📒 Files selected for processing: 1
  • policy/upheld.toml

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 99fa2750-588b-4ce7-b519-60d57e542902
📥 Commits

Reviewing files that changed from the base of the PR and between ceed4d7 and 75ade11.

📒 Files selected for processing: 12
  • AGENTS.md
  • QUICK_REFERENCE.md
  • REVIEW.md
  • name-index.json
  • policy/upheld.toml
  • principles/deprecation-discipline.toml
  • principles/economy-of-mechanism.toml
  • principles/follow-published-standards.toml
  • principles/minimize-attack-surface.toml
  • principles/reuse-maintained-components.toml
  • review-controls.json
  • src/catalog.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The catalog adds principles for following published standards and reusing maintained components. It updates review guidance, indexes, and catalog registration. Deprecation Discipline now covers end-of-life and vulnerable components, and two existing principles list reuse as a conflict.

Changes: Catalog Principles

Layer / File(s) Summary
Principle records and review guidance
principles/follow-published-standards.toml, principles/reuse-maintained-components.toml, AGENTS.md, REVIEW.md
Adds guidance on standards conformance and maintained components, including applicability, review questions, enforcement checks, limitations, and cited sources. The project instructions and review guide add corresponding reviewer prompts.
Catalog registration and indexes
src/catalog.rs, review-controls.json, QUICK_REFERENCE.md, name-index.json, policy/upheld.toml
Registers both records and adds their titles, aliases, classifications, and review-control entries to the indexes. Updates the stated count of review-carried records without a control from twenty-eight to thirty.
Dependency-currency guidance and relationships
principles/deprecation-discipline.toml, principles/economy-of-mechanism.toml, principles/minimize-attack-surface.toml
Adds dependency-currency guidance for end-of-life and vulnerable components, a supporting OWASP source, and reuse-maintained-components to two conflicts_with lists.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 75ade

The source classification does not need correction; the change is ready to merge after normal checks.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title accurately identifies all three main changes: adding the two principles and extending deprecation discipline with dependency currency. It is long but remains clear and specific.
Linked Issues check Passed Issue #398 requires catalog coverage for maintained-component reuse, published standards, and dependency currency. The PR adds reuse-maintained-components with applicability, exceptions, review ques…
Out of Scope Changes check Passed The changed catalog records, generated documentation and indexes, catalog registration, conflict and related links, enforcement tracking, and control-count comment support the objectives in issue #398…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Full details: Linked Issues check

Explanation

Issue #398 requires catalog coverage for maintained-component reuse, published standards, and dependency currency. The PR adds reuse-maintained-components with applicability, exceptions, review questions, partial checks, and supporting sources. It adds follow-published-standards with standard citation, profile, conformance-test, and departure requirements, plus the requested RFC and W3C sources. It extends deprecation-discipline with the “Dependency currency” alias, end-of-life and advisory applicability, migration review questions, and an OWASP A06 source. The catalog and generated indexes and review files include the new records.

Full details: Out of Scope Changes check

Explanation

The changed catalog records, generated documentation and indexes, catalog registration, conflict and related links, enforcement tracking, and control-count comment support the objectives in issue #398. No unrelated change is demonstrated by the available PR evidence.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files. (11 skipped: 11 unsupported.)

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • 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.

@codecov-commenter

codecov-commenter commented Oct 22, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.84%. Comparing base (ceed4d7) to head (74fee02).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #411   +/-   ##
=======================================
  Coverage   94.84%   94.84%           
=======================================
  Files          52       52           
  Lines       27217    27217           
=======================================
  Hits        25815    25815           
  Misses       1402     1402           

☔ 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.

The review run already prints how many review-carried records have no
control, and names them, on every invocation. A count spelled out in a
comment is a second copy of that fact that no hook compares to the first,
so every new record had to edit it by hand.

Claude-Session: https://claude.ai/code/session_01LLQgSP5VfjmzynDrYMSBd5
@HackingGate
HackingGate merged commit 6b244a1 into main Oct 22, 2026
12 checks passed
@HackingGate
HackingGate deleted the feat/catalog-398 branch October 22, 2026 12:36
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.

Catalog records for reusing maintained components, following published standards, and keeping the stack current

2 participants