Skip to content

State What the Highest-Tier Allowance Covers and Where the Guard Stops - #3523

Merged
ptr727 merged 3 commits into
developfrom
promotion-3521-allowance-docs
Oct 27, 2026
Merged

ptr727 merged 3 commits into
developfrom
promotion-3521-allowance-docs

Conversation

@ptr727

@ptr727 ptr727 commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Summary

This answers the second round of review findings on the promotion pull request #3521, both on the model-tier guard. The code is unchanged. The docs stated more than it does.

  • The allowance and a missing mapping. Requirement 10, the Claude kit README, and the guard's docstring each said an unreadable tier mapping refuses every dispatch naming a model. classify() returns allow first when FLEET_ALLOW_HIGHEST=1. That is correct, since a session launched with the allowance blocks no model and so needs no mapping. Each now says so.
  • A nested session an agent launches. The guard bounds a good-faith agent's mistake rather than an adversary, so it does not tell such a session apart, per GOVERNANCE.md "Trust Boundaries and Hardening Effort". The docs now name that bound. They no longer claim an agent cannot set the allowance for itself, only that a tool call cannot change its own session's launch environment. Requirement 10 states the agent's side as a conduct rule. Requirement 3 and the Claude kit README make the same narrowing for GH_WRITE_GUARD_ALLOW.

Pre-existing findings, not filed

  • host-setup/agent-safety/claude/gh-write-guard.py:1057 and .agents/skills/repo-worktree/SKILL.md:155 make the same "an agent cannot set it for itself" claim about GH_WRITE_GUARD_ALLOW, in files this change does not touch. (pre-existing, wording)

Dropped findings

  • host-setup/agent-safety/README.md:35 and host-setup/agent-safety/claude/README.md:15 carry sentences over 25 words that this change did not write. (style)

🤖 Generated with Claude Code

ptr727 and others added 3 commits October 27, 2026 11:40
Requirement 10, the Claude kit README, and the guard's docstring each said an unreadable tier mapping refuses every dispatch naming a model, while a session launched with the allowance blocks no model and so needs none. Each now says so. The claim that an agent cannot set the allowance for itself is narrowed to what holds, that a tool call cannot change its own session's environment, and a nested session an agent launches with the allowance set is named as circumvention the guard does not tell apart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s Conduct

Requirement 10 states that an agent never sets the tier allowance, for its own session or one it launches, as a conduct rule beside the nested-session bound it names. Requirement 3 and the Claude kit README make the same narrowing for the write-grant variable, that a tool call cannot change its own session's launch environment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 27, 2026 18:44
@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 625810e070cfb29c9dc92967020b2173d176e660, the content this pull request carries at that commit against develop, and it recorded 0 findings.

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.

🟢 Approval recommended

The documentation changes align with the existing implementation, and no unresolved review issues remain.

No open issues 🎉

What changed in this PR

This documentation-only pull request aligns the host-safety specification and Claude model-tier guard documentation with the guard’s existing allowance behavior and nested-session boundary.

Changes:

  • Clarifies that FLEET_ALLOW_HIGHEST=1 bypasses model checks without requiring a tier mapping.
  • Documents that tool calls cannot alter their current session’s launch environment.
  • Clarifies that nested sessions launched with the allowance are outside the guard’s good-faith mistake boundary.
File Description
host-setup/​agent-safety/​README.md Updates requirements 3 and 10 to document allowance behavior and nested-session limits.
host-setup/​agent-safety/​claude/​README.md Aligns Claude kit documentation with the guard’s allowance and mapping behavior.
host-setup/​agent-safety/​claude/​model-tier-guard.py Updates the guard docstring to accurately describe allowance precedence and scope.

Review effort: Lite

@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.54%. Comparing base (6a751a2) to head (625810e).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3523   +/-   ##
========================================
  Coverage    81.54%   81.54%           
========================================
  Files           26       26           
  Lines         8967     8967           
========================================
  Hits          7312     7312           
  Misses        1655     1655           
Flag Coverage Δ
python-3.13 81.54% <ø> (ø)

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
ptr727 merged commit 0dd58f6 into develop Oct 27, 2026
14 checks passed
@ptr727
ptr727 deleted the promotion-3521-allowance-docs branch October 27, 2026 18:56
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