diff --git a/CHANGELOG.md b/CHANGELOG.md
index dc9a832..4794d8c 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.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.
+
## [2.7.0] — 2026-06-17
Bundle release spanning 2026-05-24 → 2026-06-17 (PRs #59–#82; release cut 2026-06-12, shipped 2026-06-17): the **AGPL-3.0 relicense** with the discipline-skills MIT carve-out plus the contributor-governance ratchet (branch protection, CLA, AI-review verdict gate); the **discipline-skills module** (curated 7-skill fork of obra/superpowers); the package-availability safety gate + tool-version status-line chip; the adjacent-project dogfood cascade (hook-group union merge, persona-drift `[ NOTICE ]` + `--modules +x/-y`, retrofit-byproduct gitignore, manifest `written_by_sha` + `cc-configure --whats-new`); the `block-dangerous-bash` trailing-slash/`$HOME` hardening; the CC 2.1.155–2.1.175 compat surveys (incl. the `agent` schema-status correction); the doc-cleared hook-payload batch (Stop `background_tasks` guard, slop-scan decision-JSON + OSC 9 ping, block-mode feedback fix); and **Fable 5 as the default model throughout** (scaffolded settings + intake field, test-runner agent; `// model: sonnet` per-machine downgrade stub for CC < 2.1.170 — the own-CI review pin briefly followed, then was walked back to `claude-sonnet-4-6` on cost, #82). Also restores the `## [2.6.0]` section header accidentally deleted in the PR #67 merge — its absence had folded the 2.6.0 entries back into Unreleased, over-reporting in `--whats-new` — and adapts `test-whats-new.sh` case C to the empty-Unreleased state a fresh release produces (first release since the test shipped; it had asserted the live Unreleased section was non-empty). `CC_VERSION` bumped to 2.7.0.
diff --git a/config_schema.py b/config_schema.py
index ea51646..d6fedf1 100644
--- a/config_schema.py
+++ b/config_schema.py
@@ -518,6 +518,55 @@
# wildcards, no MultiEdit rules, no [1m]-suffixed
# model IDs in shipped templates (2.1.172/173
# fixes). Issue #14920 unchanged.
+ # 2.1.176-181 survey (2026-06-17): no bump; #5723
+ # still open/draft. Surveyed versions present in
+ # CHANGELOG: 2.1.176, 2.1.178, 2.1.179, 2.1.181
+ # (2.1.177 and 2.1.180 NOT PRESENT - skipped or
+ # internal-only per the verbatim-pull discipline).
+ # New in-territory settings.json keys: none. Out-
+ # of-territory by existing precedent:
+ # footerLinksRegexes + language (2.1.176, user-
+ # level UI prefs); sandbox.allowAppleEvents
+ # (2.1.181, macOS-only opt-in). HELD constraint
+ # RESOLVED: the 2.1.172 sub-agent nesting wording
+ # held above on a CHANGELOG/docs contradiction is
+ # now reconciled - the live sub-agents doc at
+ # code.claude.com/docs/en/sub-agents documents
+ # nested subagents (min-version 2.1.172), and
+ # 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"). Shipped
+ # template wording updated in the same PR (docs/
+ # 04-subagents-mcp-orchestration.md lines 59 +
+ # 140, templates/commands/infinite/SKILL.md
+ # line 65); leaf-design guidance still stands and
+ # remains the recommended pattern within the
+ # testing envelope (tested_up_to < 2.1.172 means
+ # users on the tested band don't have nesting).
+ # Permission-rule syntax: 2.1.178 adds the
+ # Tool(param:value) form with `*` wildcard (e.g.
+ # Agent(model:opus)) - future opt-in stub
+ # candidate; no shipped template uses the new
+ # form yet, and SchemaStore acceptance status
+ # not yet verified. Nested .claude/skills
+ # collision handling (2.1.178): nested-dir skills
+ # now load as : on name clash -
+ # reinforces the plugin-skill carve-out pattern
+ # documented in the skillOverrides note above;
+ # 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 (no MCP server-level patterns
+ # in disallowedTools). Auto-mode classifier
+ # gain (2.1.178) and miscellaneous subagent UX
+ # fixes (2.1.179/181) require no configurator
+ # action. SchemaStore #5723 unchanged from prior
+ # survey - still open/draft, untouched since
+ # 2026-05-24 despite dep #5728 merged
+ # 2026-06-01. Issue #14920 unchanged.
}
diff --git a/docs/04-subagents-mcp-orchestration.md b/docs/04-subagents-mcp-orchestration.md
index 5156534..d144737 100644
--- a/docs/04-subagents-mcp-orchestration.md
+++ b/docs/04-subagents-mcp-orchestration.md
@@ -56,7 +56,7 @@ Only `name` and `description` are required. See `templates/agents/` for four rea
- Each subagent starts with its own system prompt + minimal env info. **No inherited conversation**.
- Only the subagent's final response returns to the parent. Verbose tool output stays in the subagent's transcript.
-- **Subagents cannot spawn other subagents.** Design around this — use skills or chain through the main thread.
+- **Subagents can spawn other subagents (CC ≥ 2.1.172, capped at 5 nesting levels).** Older CC versions can't. Prefer leaf designs anyway — use skills or chain through the main thread — so the architecture survives older CC and doesn't bury context behind deep subagent transcripts.
- Parent `bypassPermissions` or `acceptEdits` **overrides** any `permissionMode` set on the subagent.
### Parallel subagents
@@ -137,7 +137,7 @@ Local Claude Code for interactive work; Claude Code Web for long-running cloud j
- The main thread's context is still finite. Subagents help with verbosity but not with total information you're holding in your head.
- Parallel subagents that return detailed results still fill the parent. Prefer "ship a summary, not a transcript."
-- Subagents can't spawn subagents. If you need 3 levels, you're designing wrong.
+- Subagent nesting caps at 5 levels (CC ≥ 2.1.172; earlier versions: 0). If you need 3+ levels, the design is usually still wrong — re-shape into a fanout or pipeline through the main thread.
## Recommendations
diff --git a/templates/commands/infinite/SKILL.md b/templates/commands/infinite/SKILL.md
index 2ea1380..8cab1b1 100644
--- a/templates/commands/infinite/SKILL.md
+++ b/templates/commands/infinite/SKILL.md
@@ -62,7 +62,7 @@ Dispatch subagents via the Task tool using the `parallel-generator` subagent. Ea
4. **diversification_axis** — the axis this iteration should differ on, named explicitly. e.g. "this iteration must use a dark color palette"; "this iteration must favor imperative style over declarative."
5. **quality_standards** — the must-be-true bullets from Phase 1, verbatim.
-**Do not ask subagents to coordinate with each other.** They cannot spawn their own subagents and their contexts don't share. The claimed_slots_manifest + diversification_axis does the coordination for them.
+**Do not ask subagents to coordinate with each other.** Their contexts don't share — even with nested-subagent support (CC ≥ 2.1.172, ≤ 5 levels), a child can't reach a sibling's transcript. The claimed_slots_manifest + diversification_axis does the coordination for them.
## After each wave