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 `