Skip to content

feat(defaults): promote skillOverrides + autoMode.hard_deny to active defaults - #57

Merged
tigers1997 merged 1 commit into
mainfrom
feat/promote-skilloverrides-automode-defaults
May 23, 2026
Merged

feat(defaults): promote skillOverrides + autoMode.hard_deny to active defaults#57
tigers1997 merged 1 commit into
mainfrom
feat/promote-skilloverrides-automode-defaults

Conversation

@tigers1997

Copy link
Copy Markdown
Owner

Summary

Follow-up to PR #56's unblock batch. After per-key review of the 8 schema-validated opt-ins against the configurator's existing safety/efficiency goals, two are promoted to active defaults. The other six stay stubbed for genuine reasons (user-workflow choice, infrastructure-dependent, or would break the shipped scripts).

What changes

Key Before (PR #56) After (this PR) Why
skillOverrides // skillOverrides: "name-only" stub in tier-pro patch Active skillOverrides: "name-only" in tier-pro patch Extends the pro tier's existing aggressive-efficiency contract. Directly addresses the largest contributor to per-turn context overhead (/check-context's top warning). Model still sees skill names — only descriptions trimmed.
autoMode.hard_deny // autoMode: {...} stub in safety patch Active autoMode: {hard_deny: [...]} in safety patch Zero behavior change without --auto-mode (classifier doesn't fire). Meaningful safety backstop for auto-mode users. Consistent with the existing safety posture (disableBypassPermissionsMode, scan-secrets, slop-scan, etc.).

Per-persona impact

Persona autoMode skillOverrides
solo-newer set (safety + basic tier) absent (basic tier)
solo-experienced set name-only (pro tier)
small-team set name-only (pro tier)
library-author set (safety, no token-eff) absent
custom absent (no auto-modules) absent

Verified with python3 configure.py --persona <name> for each.

Why the other 6 stay stubbed

  • worktree.baseRef — genuine workflow preference (fresh vs head); no persona signal distinguishes
  • worktree.bgIsolation — stub value matches CC default; writing active is a no-op; stub provides lever discoverability
  • sandbox.failIfUnavailable — fail-closed aligns with safety in principle, but would break users on platforms where bwrap/socat aren't easily installable (esp. macOS). Real fix is a future safety.sandbox_strict flag.
  • subagentStatusLine — shipped statusline.sh doesn't handle --subagent flag yet
  • statusLine.hideVimModeIndicator — shipped statusline.sh doesn't render vim mode, so active would just remove vim display entirely for vim users
  • CLAUDE_CODE_STOP_HOOK_BLOCK_CAP — no shipped Stop hook actually blocks repeatedly; raising the cap adds noise without benefit

Retrofit impact for existing users

On next cc-configure --retrofit, existing scaffolds will gain:

  • A top-level autoMode block (all non-custom personas)
  • A top-level skillOverrides: "name-only" (pro-tier users only — solo-experienced and small-team)

Both are no-ops in common workflows:

  • autoMode.hard_deny only matters under --auto-mode
  • skillOverrides: "name-only" preserves /-menu access and only trims descriptions the user typically doesn't read; can override to "off" / "user-invocable-only" or remove entirely by editing the patch

Test plan

  • python3 configure.py --check → all checks passed; compat range unchanged (2.1.116–2.1.150)
  • All 5 persona snapshot tests match examples/persona-*/expected-tree.txt
  • All 50+ shell fixtures pass locally (microbit-enforcer, slop-scan, efficiency-placeholder, v1-legacy-upgrade, v1-upgrade-ux, cc-manifest, sessionstart-drift-check, repo-url-placeholder, stop-run-checks, repo-bootstrap, verify-setup)
  • All 6 --modules core,$mod smoke combos pass
  • Per-persona render verified — autoMode set in 4 of 5 personas, skillOverrides set in 2 of 5 personas, both absent in custom as expected
  • CI (check workflow) passes on this branch

No tested_up_to bump (stays 2.1.150 from PR #56). No new tests required.

🤖 Generated with Claude Code

… defaults

Follow-up to PR #56's unblock batch. Two of the eight opt-ins shipped as
stubs in that PR are now active defaults, based on a per-key review
against the configurator's existing safety/efficiency goals. The other
six stay stubbed for genuine reasons (user-workflow choice,
infrastructure-dependent, or would break shipped scripts).

Promoted:

- skillOverrides: "name-only" → active in
  templates/token-efficiency/settings-patch.tier-pro.json (renders only
  when token-efficiency.tier=pro). Extends the pro tier's existing
  "aggressive context efficiency" contract by collapsing skill
  descriptions — the largest single contributor to per-turn context
  overhead, the metric /check-context flags. Model still sees skill
  names. basic tier unaffected. Personas affected: solo-experienced,
  small-team. Override by editing the patch.

- autoMode.hard_deny: ["Running executable files", "Writing to system
  directories"] → active in templates/safety/settings-patch.json. Pure
  upside: zero behavior change for standard manual sessions (auto-mode
  classifier doesn't fire without --auto-mode), meaningful safety
  backstop for --auto-mode users. Consistent with the configurator's
  existing safety-first posture (disableBypassPermissionsMode,
  PreToolUse Bash blocking, scan-secrets, slop-scan). All non-custom
  personas affected. Tune via the patch.

No tested_up_to bump (stays 2.1.150 from PR #56). No new tests required —
schema validation + persona snapshots + 50+ shell fixtures all pass.

Retrofit impact: existing users on cc-configure --retrofit will gain a
top-level autoMode block (all non-custom personas) and, for pro-tier
users, a top-level skillOverrides: "name-only". Both are no-ops in
common workflows.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@tigers1997
tigers1997 merged commit ea06b57 into main May 23, 2026
1 check passed
@tigers1997
tigers1997 deleted the feat/promote-skilloverrides-automode-defaults branch May 23, 2026 22:28
tigers1997 added a commit that referenced this pull request May 23, 2026
…ive-default promotions (#58)

Bundle release of PRs #56 + #57:

- PR #56 — chore(compat): ship 8 schema-validated opt-ins + fix latent
  // strip; bump tested_up_to 2.1.132 → 2.1.150. Closed tracking issue
  #53 after a three-resurvey watch on SchemaStore PR #5706 (merged
  2026-05-23, sync to CC v2.1.143).
- PR #57 — feat(defaults): promote skillOverrides + autoMode.hard_deny
  to active defaults. Six other opt-ins from #56 stay stubbed for
  genuine reasons documented in the patch comments.

CC_VERSION 2.5.0 → 2.6.0. Claude Code compat 2.1.116–2.1.150.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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.

1 participant