Skip to content

Reject a Tier Sharing the Maintainer-Only Model and State the Allowance as Conduct - #3524

Merged
ptr727 merged 2 commits into
developfrom
promotion-3521-tier-alias
Oct 27, 2026
Merged

ptr727 merged 2 commits into
developfrom
promotion-3521-tier-alias

Conversation

@ptr727

@ptr727 ptr727 commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Summary

This answers the third round of review findings on the promotion pull request #3521:

  • A tier sharing the maintainer-only model. spec/validate.py now rejects a tool mapping where another tier names the maintainer-only model. The comparison ignores case, as the guard's own comparison does. Without it, the guard would block that name and refuse every dispatch at the other tier. A new test covers frontier mapped to Fable.
  • Requirement 10's allowance sentence. It was read twice as a claim about what an agent cannot do, against the nested-session bound the same requirement names. It now says that setting the allowance is the maintainer's act. It also says that an agent never doing it is conduct the hook does not enforce.

Local review, declined

  • spec/validate.py model_tier_errors: the check matches the guard's Agent path, an equality ignoring case. The guard's Workflow path matches the blocked alias as a word inside a script's model value, so a lower tier mapped to a variant such as opus[1m] beside a reserved opus would pass here. Two things rule it out under GOVERNANCE.md "Trust Boundaries and Hardening Effort". The config is trusted hub content, and the failure would be a loud refusal with a stated reason, not a silent one. Mirroring the regex would also put a second copy of the guard's matching rule in the validator.

🤖 Generated with Claude Code

…ce as Conduct

The validator rejects a tool mapping where another tier names the maintainer-only model, compared case-insensitively as the guard compares, since the guard would then refuse every dispatch at that tier. Requirement 10 states that setting the allowance is the maintainer's act and that an agent never doing it is conduct the hook does not enforce.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 27, 2026 19:06
@coderabbitai

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

@ptr727

ptr727 commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

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

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

model_tier_errors can raise TypeError for a non-string maintainerOnly value instead of returning validation errors.

1 open issue
What changed in this PR

This pull request prevents non-maintainer tiers from sharing the maintainer-only model and clarifies allowance ownership and enforcement boundaries in the agent-safety documentation.

Changes:

  • Rejects case-insensitive sharing of the maintainer-only model across tiers.
  • Adds regression coverage for a tier mapped to Fable.
  • Clarifies that maintainers set the allowance and that agent conduct is not hook-enforced.
  • Identifies a remaining validation issue for non-string maintainerOnly values.
File Description
tests/​test_spec_validate.py Adds regression coverage for case-insensitive sharing of the maintainer-only model.
spec/​validate.py Prevents another tier from sharing the maintainer-only model; requires a guard for non-string maintainerOnly values.
host-setup/​agent-safety/​README.md Clarifies maintainer allowance responsibility and hook enforcement boundaries.

Review effort: Lite

Comment thread spec/validate.py Outdated
@codecov

codecov Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.56%. Comparing base (0dd58f6) to head (129b856).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3524      +/-   ##
===========================================
+ Coverage    81.54%   81.56%   +0.01%     
===========================================
  Files           26       26              
  Lines         8967     8970       +3     
===========================================
+ Hits          7312     7316       +4     
+ Misses        1655     1654       -1     
Flag Coverage Δ
python-3.13 81.56% <100.00%> (+0.01%) ⬆️

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.

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

ptr727 commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

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

@ptr727
ptr727 merged commit fee6f1b into develop Oct 27, 2026
13 checks passed
@ptr727
ptr727 deleted the promotion-3521-tier-alias branch October 27, 2026 19:28
ptr727 added a commit that referenced this pull request Oct 27, 2026
…ain (#3521)

## Summary

This promotes three changes to `main`:

- [#3516](#3516) maps
model tiers in one config, `spec/model-tiers.json`, carries the "Model
Tiers" rule into the skills that dispatch, and adds a guard that refuses
a highest-tier dispatch the maintainer did not allow.
- [#3518](#3518) has the
agent-safety installer's hooks share one registration helper.
- [#3520](#3520) has those
hooks share one registration-check loop.

It also carries the fixes for this promotion's own review findings, each
landed on `develop` first:

- [#3522](#3522) requires
a non-empty model name per tier and names both edits a model release
makes.
- [#3523](#3523) states
what the highest-tier allowance covers and where the guard stops.
- [#3524](#3524) rejects a
tier sharing the maintainer-only model and states the allowance as
conduct.
- [#3525](#3525) matches
the guard's alias boundaries regardless of case.
- [#3526](#3526) mirrors
the guard's CI self-tests in the local runbook.
- [#3527](#3527) rejects a
repeated tier name and names every hook the installer registers.

Closes #3517
Closes #3519

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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