From 1c90e8a58fc403b970056b5e382d8f84e5ffeebe Mon Sep 17 00:00:00 2001 From: bob Date: Thu, 25 Jun 2026 15:00:56 -0400 Subject: [PATCH] chore(compat): CC 2.1.183-191 survey - schema watch moves to SchemaStore #5814 Six new versions surveyed (2.1.183, 2.1.185, 2.1.186, 2.1.187, 2.1.190, 2.1.191; 2.1.184/188/189 not in CHANGELOG, skipped or internal-only). Schema gate moved: a fresh SchemaStore PR #5814 (sync to v2.1.177, 84->134 properties, not draft, awaiting code-owner LGTM since 2026-06-13) supersedes the long-idle #5723 (still draft, untouched since 2026-05-24). Upstream-gate watch target switches to "#5814 OR #5723 OR successor". Two further targeted PRs also open: #5822 (UI/notification keys, out of territory) and #5833 (targeted attribution.sessionUrl for CC 2.1.183, in territory). New in-territory settings.json keys held for the merge: - sandbox.credentials (CC 2.1.187, hardening - future stub candidate for the existing // sandbox block in templates/safety/settings-patch.json) - attribution.sessionUrl (CC 2.1.183, privacy opt-in - future stub candidate for templates/git-workflow/settings-patch.json) Out-of-territory by precedent: respondToBashCommands (CC 2.1.186, per-user behavior preference). Permission-rule extension Agent(type)/Agent(x,y) (CC 2.1.186) is the same Tool(param:value) form already parked from 2.1.178; parking decision stands. No-impact verifications (greps clean): hook-matcher comma-separated silent- fail (2.1.191), skill-frontmatter case-insensitivity (2.1.186), auto-mode git/iac destructive-command block (2.1.183, orthogonal to block-dangerous- bash.sh), subagent depth-tracking fix (2.1.187, validates the 5-level cap already lifted in PR #84). Env mention-only: CLAUDE_CLIENT_PRESENCE_FILE (CC 2.1.181, missed in the 2.1.176-181 survey), CLAUDE_CODE_RETRY_WATCHDOG (CC 2.1.186), CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT (CC 2.1.187). Issue #14920 (per-skill plugin disable) re-checked: still open, 13 community comments, no Anthropic engagement, last update 2026-03-31 (86 days stale). No tested_up_to bump (no-lone-bumps rule; schema gate hasn't moved yet). Co-Authored-By: Claude Opus 4.7 --- CHANGELOG.md | 2 ++ config_schema.py | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef23a58..b9d2769 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project. Format: [Keep a Changelog](https://keepacha ## Unreleased +- **chore(compat): CC 2.1.183–2.1.191 survey — schema-gate watch switches from SchemaStore #5723 to #5814; no `tested_up_to` bump.** Resurveyed the upstream CHANGELOG across the 13-day gap since PR #84 (six versions present: 2.1.183, 2.1.185, 2.1.186, 2.1.187, 2.1.190, 2.1.191; 2.1.184/188/189 NOT in CHANGELOG — skipped or internal-only per the verbatim-pull discipline). **Schema gate moved:** SchemaStore #5723 (sync→v2.1.150) is still open/draft and untouched since 2026-05-24 (32 days idle), but a fresh **#5814** (sync→v2.1.177, 84→134 properties, opened 2026-06-13, **not draft, awaiting code-owner LGTM**) supersedes it in scope and is the more likely merge candidate; the maintainer's upstream-gate-playbook watch target switches to `#5814 OR #5723 OR successor` — either merge unblocks. Two further targeted PRs also open and awaiting LGTM: **#5822** (seven UI/notification keys: `theme`, `preferredNotifChannel`, `autoCompactEnabled`, `skipWorkflowUsageWarning`, `skipAutoPermissionPrompt`, `inputNeededNotifEnabled`, `agentPushNotifEnabled` — out of territory by UI-pref precedent), and **#5833** (targeted `attribution.sessionUrl` for CC 2.1.183 — in territory). **New in-territory `settings.json` keys held for the merge:** `sandbox.credentials` (CC 2.1.187, hardening) — blocks sandboxed commands from reading credential files and secret env vars; future stub candidate for the existing `// sandbox` block in `templates/safety/settings-patch.json`. `attribution.sessionUrl` (CC 2.1.183, privacy opt-in) — omits the claude.ai session link from commit/PR text in web and Remote Control sessions; future stub candidate for `templates/git-workflow/settings-patch.json` (#5833 is the targeted schema-side patch). `respondToBashCommands` (CC 2.1.186) classified out of territory: a per-user behavior preference (default-true — `!` bash commands auto-prompt Claude), not a project-level scaffolded default. **Permission-rule syntax extension:** 2.1.186 adds `Agent(type)` deny rules and `Agent(x,y)` allowed-types restrictions for named-subagent specs — same `Tool(param:value)` form already parked from 2.1.178; no shipped template uses either, parking decision stands. **No-impact verifications (greps clean):** the hook-matcher comma-separated silent-fail (CC 2.1.191, e.g. `"Bash,PowerShell"`) is not a self-audit hit — all shipped configurator templates use pipe-separated regex (`Write|Edit|NotebookEdit`), no comma form; the skill-frontmatter case-insensitivity gain (CC 2.1.186 accepts kebab+snake+camel) is not impactful — shipped skills are kebab-case; the auto-mode git/iac destructive-command block (CC 2.1.183: `git reset --hard`, `git checkout -- .`, `git clean -fd`, `git stash drop`, plus `terraform`/`pulumi`/`cdk destroy` unless the specific stack is asked) is a classifier-tier gate orthogonal to the bash-pattern-based `block-dangerous-bash.sh` PreToolUse guard — no overlap to harden; the subagent depth-tracking fix (CC 2.1.187: resumed subagents restore original spawn depth, forks count toward the depth cap) further validates the 5-level cap surfaced in 2.1.181 and lifted into shipped wording in PR #84. **Env mention-only:** `CLAUDE_CLIENT_PRESENCE_FILE` (CC 2.1.181, mobile-push suppression marker — missed in the 2.1.176-181 survey), `CLAUDE_CODE_RETRY_WATCHDOG` (CC 2.1.186, replaces unbounded retry; `CLAUDE_CODE_MAX_RETRIES` capped at 15 in the same release), `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` (CC 2.1.187, overrides the new 5-minute remote-MCP-call abort). Issue #14920 (per-skill plugin disable) re-checked: still open, 13 community comments, no Anthropic engagement, last update 2026-03-31 (86 days stale). Compat comment refreshed in `config_schema.py` with the full survey. + - **chore(skills): sync discipline-skills v5.1.0 → v6.0.2 (obra/superpowers).** First sync since the module landed (PR #59, 2026-05-24); upstream shipped **v6.0.0** on 2026-06-16 (major), then **v6.0.1** + **v6.0.2** on 2026-06-17 as fast-follow patch releases. Skill inventory unchanged (14/14 upstream; we still fork the same 7). **Structural change in `subagent-driven-development`**: the two per-task reviewer prompts upstream removed (`spec-reviewer-prompt.md` + `code-quality-reviewer-prompt.md`) are replaced by a single `task-reviewer-prompt.md` that returns spec-compliance + quality verdicts in one pass; two new bash scripts (`scripts/review-package` + `scripts/task-brief`) move the review diff and task text to files so they don't park in the controller's context (file-handoff, not paste-handoff). Our v5-era "embed code-reviewer.md inline in code-quality-reviewer-prompt.md" SYNC.md edit is RETIRED — the new `task-reviewer-prompt.md` has no external dependency. **Configurator change**: `configure.py`'s `executable` heuristic widened from `rel.endswith(".sh")` to also honor the source file's user-execute bit, so the new `scripts/review-package` and `scripts/task-brief` (no `.sh` extension upstream) arrive at user installs with `+x` set. Other ports are mostly clean re-applies: `using-git-worktrees` + `finishing-a-development-branch` inherit the v6 drop of the global `~/.config/superpowers/worktrees/` path (project-local `.worktrees/` only) and `finishing-a-development-branch`'s forge-neutral rewrite (no hardcoded `gh pr create`); `writing-plans` gains v6's Global Constraints + per-task Interfaces template sections; `brainstorming`'s checklist drops the "offer visual companion just-in-time" step (the v6 process-flow digraph no longer carries the visual-companion nodes either); `executing-plans` re-applies the "This skill works much better" reframe (project-neutral). `superpowers:` prefix re-stripped across all SKILL.md and `*-prompt.md` files — `test-no-superpowers-prefix.sh` clean. Path list in `config_schema.py` updated (removed 2, added 3 → 15 total); test fixtures (`test-module-files-exist.sh` + `test-scaffold-installs-skills.sh`) updated to match. SYNC.md pin bumped to v6.0.2 with a fresh delta paragraph and revised canonical-edit list (5 items → 4; the retired embed-template item documented as removed). README's discipline-skills paragraphs refreshed (v5.1.0 → v6.0.2; carve-out section + module description). Known papercut documented: `subagent-driven-development/SKILL.md` retains one "final whole-branch review" line referencing `../requesting-code-review/code-reviewer.md` (a skill we don't ship) — pre-existing in v5.1.0, not addressed in this sync to keep port scope tight. - **chore(compat): CC 2.1.176–2.1.181 survey — held subagent-nesting wording lifted; no `tested_up_to` bump.** SchemaStore sync PR #5723 still open/draft (untouched since 2026-05-24 despite dep #5728 merged 2026-06-01), so `tested_up_to` stays pinned at 2.1.150 per the no-lone-bumps rule. **Held constraint resolved:** v2.7.0's 2.1.172–175 survey held the subagent-nesting wording on a CHANGELOG/docs contradiction (CHANGELOG said subagents can nest ≤5 levels; live docs said they cannot). The contradiction is now reconciled — `code.claude.com/docs/en/sub-agents` documents nested subagents under `min-version: 2.1.172`, and CC 2.1.181 explicitly unifies the foreground+background depth cap at 5 levels (*"Fixed foreground subagents spawning unbounded nested chains; they now respect the same 5-level depth limit as background subagents"*). Three shipped-template wording sites updated: `docs/04-subagents-mcp-orchestration.md` lines 59 + 140 and `templates/commands/infinite/SKILL.md` line 65. Leaf-design guidance preserved and remains the recommended pattern within the testing envelope (`tested_up_to < 2.1.172` means most users on the tested band don't have nesting; the `/infinite` skill's no-sibling-coordination invariant still holds because subagent contexts don't share even when nesting is available). **2.1.176–181 versions surveyed** (2.1.177 + 2.1.180 not present in CHANGELOG — skipped or internal-only per the verbatim-pull discipline): no new in-territory `settings.json` keys; out-of-territory by precedent — `footerLinksRegexes` + `language` (2.1.176, UI-pref tier), `sandbox.allowAppleEvents` (2.1.181, macOS-only opt-in). Future opt-in stub candidate: the new `Tool(param:value)` permission-rule form with `*` wildcard (2.1.178, e.g. `Agent(model:opus)`) — no shipped template uses it yet, SchemaStore acceptance status unverified, parking for the next compat batch. Nested `.claude/skills` collision handling (2.1.178) gains `:` namespacing — reinforces the existing plugin-skill carve-out pattern, no shipped-template impact. MCP server-level specs in subagent `disallowedTools` (`mcp__server`, `mcp__server__*`, `mcp__*`) silently-ignored bug fixed in 2.1.178 — grep against shipped templates clean. Compat comment refreshed in `config_schema.py` with the full survey. diff --git a/config_schema.py b/config_schema.py index 9214234..aaf0fde 100644 --- a/config_schema.py +++ b/config_schema.py @@ -568,6 +568,86 @@ # survey - still open/draft, untouched since # 2026-05-24 despite dep #5728 merged # 2026-06-01. Issue #14920 unchanged. + # 2.1.183-191 survey (2026-06-25): no bump. + # Surveyed versions present in CHANGELOG: + # 2.1.183, 2.1.185, 2.1.186, 2.1.187, 2.1.190, + # 2.1.191 (2.1.184/188/189 NOT PRESENT - skipped + # or internal-only per the verbatim-pull + # discipline). SCHEMA WATCH MOVED: SchemaStore + # #5723 (sync->v2.1.150, draft) is still open + # and untouched since 2026-05-24 (32 days + # idle), but a fresh #5814 (sync->v2.1.177, + # 84->134 properties, opened 2026-06-13, NOT + # draft, awaiting code-owner LGTM) supersedes + # it in scope and is the more likely merge + # candidate; the upstream-gate-playbook watch + # target switches to `#5814 OR #5723 OR + # successor`. Two further targeted PRs also + # open and awaiting LGTM: #5822 (seven UI/ + # notification keys: theme, + # preferredNotifChannel, autoCompactEnabled, + # skipWorkflowUsageWarning, + # skipAutoPermissionPrompt, + # inputNeededNotifEnabled, + # agentPushNotifEnabled - out of territory by + # UI-pref precedent); #5833 (targeted + # attribution.sessionUrl for CC 2.1.183 - in + # territory). New in-territory settings.json + # keys held for the merge: sandbox.credentials + # (CC 2.1.187, hardening - blocks sandboxed + # commands from reading credential files / + # secret env vars; future stub candidate for + # the existing // sandbox block in safety + # settings-patch); attribution.sessionUrl + # (CC 2.1.183, privacy opt-in - omits the + # claude.ai session link from commit/PR text + # in web + Remote Control sessions; future + # stub candidate for git-workflow settings- + # patch, with #5833 the targeted schema-side + # patch). respondToBashCommands (CC 2.1.186) + # classified out of territory: a per-user + # behavior preference (default-true: `!` bash + # commands auto-prompt Claude), not a + # project-level scaffolded default. + # Permission-rule syntax extension: 2.1.186 + # adds Agent(type) deny rules and Agent(x,y) + # allowed-types restrictions for named- + # subagent specs - same Tool(param:value) form + # already parked from 2.1.178; no shipped + # template uses either, parking decision + # stands. No-impact verifications (greps + # clean): hook-matcher comma-separated silent- + # fail (CC 2.1.191, e.g. "Bash,PowerShell") - + # all shipped templates use pipe-separated + # regex (Write|Edit|NotebookEdit), no comma + # form; skill-frontmatter case-insensitivity + # (CC 2.1.186 accepts kebab+snake+camel) - + # shipped skills are kebab-case; auto-mode + # git/iac destructive-command block (CC + # 2.1.183: git reset --hard, checkout -- ., + # clean -fd, stash drop, plus terraform/ + # pulumi/cdk destroy unless the specific + # stack is asked) - classifier-tier gate + # orthogonal to the bash-pattern-based + # block-dangerous-bash.sh PreToolUse guard, + # no overlap to harden; subagent depth- + # tracking fix (CC 2.1.187: resumed subagents + # restore original spawn depth, forks count + # toward the depth cap) - further validates + # the 5-level cap surfaced in 2.1.181 and + # lifted into shipped wording in PR #84. + # Env mention-only: CLAUDE_CLIENT_PRESENCE_FILE + # (CC 2.1.181, mobile-push suppression marker + # - missed in the 2.1.176-181 survey), + # CLAUDE_CODE_RETRY_WATCHDOG (CC 2.1.186, + # replaces unbounded retry; CLAUDE_CODE_MAX_- + # RETRIES capped at 15 in the same release), + # CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT (CC 2.1.187, + # overrides the new 5-minute remote-MCP-call + # abort). Issue #14920 unchanged - still open, + # 13 community comments, no Anthropic + # engagement, last update 2026-03-31 (86 days + # stale). }