v0.20.0 — retro follow-up: WildLake + ToughAnt + SwiftLynx + #11
Retro follow-up batch: fixes the three lightest action items from the
v0.19.2 retrospective (WildLake, ToughAnt, SwiftLynx). The two heavier
retro items — SharpBrook (MCP schema hot-reload) and SnappyBird
(data-repair path for append-only LogEntries) — are deferred to
v0.21.0 pending the design discussions opened as DISC-DaringBird and
DISC-WiseLily. See DEC-20260424_0101-SolidBadger-split-v0-20-0.
Added
- docs(AGENTS.md): "Sub-agent delegation" section. Pairs with the
existing "Skill guards" list and codifies the read-only / mutating
split for harnessAgent-tool sub-agents: delegate Read, search
Bash, and MCPquery_*/get_*/search_*/list_*; keep
Write, Edit, newmkdir, MCPcreate_*/transition_*/
record_*/link_*/open_*/log_event, and git mutations
on the main session. Closes
BACK-20260424_0038-ToughAnt-ephemeral-sub-agent-defaults.
Changed
- feat(skill-gate): compliance-ack TTL is now an idle timeout.
_any_valid_marker()incheck_route_task_called.pynow rewrites
the matching marker'sacknowledged_attonowon every
successful gate check. A session that is actively making
compliant writes no longer expires mid-flow (the v0.19.2
midnight-span pain pattern); a session that goes idle for longer
than_ACK_LIFETIME_HOURS(12h) still must re-acknowledge. Touch
failures are non-fatal. Closes
BACK-20260424_0038-SwiftLynx-compliance-contract-acknowledgement-ttl.
Fixed
- fix(skill-gate): remediation text uses the on-disk contract
version._remediation_msg()parses the leading
<!-- pk-compliance vN -->marker in
assets/compliance-contract.mdrather than hard-codingv1. The
v0.19.2 hard-code told callers to acknowledgev1even though the
on-disk contract was alreadyv2. Part of SwiftLynx. - fix(retrospective):
/pk-retro --auto-workitemsno longer fails
withModuleNotFoundError: No module named 'mcp'.pk_retro.py
declared onlypyyamlin its PEP 723 header, but its in-process
MCP loader importsserver.pymodules from artifact-management,
event-log, and workitem-management — all of which require
mcp[cli]andjsonschema. Added both to the PEP 723 header so
uv run --script pk_retro.pyresolves them automatically. Closes
BACK-20260424_0038-WildLake-pk-retro-auto-workitems. - fix(skills): resolve cross-category
retrospectiveskill
basename collision.product/retrospectiveis renamed to
product/sprint-retrospective(directory,name:, andid: SKILL-sprint-retrospective); the processkit-category
retrospective(release scope,/pk-retro) keeps the bare name.
Closes #11. The missingpk-doctor/commands/directory
(#10) and the duplicatepk-resume.mdcommand
(#12) were already resolved in v0.19.2 (90c980f and 87e185e
respectively) and are closed here for bookkeeping.
Deferred to v0.21.0
BACK-20260424_0037-SharpBrook-mcp-servers-cache-schemas— MCP
schema hot-reload /reload_schemastool. Design discussion:
DISC-20260424_0101-DaringBird-how-should-mcp-servers.BACK-20260424_0038-SnappyBird-data-repair-path-for— data-repair
path for malformed append-only LogEntries. Design discussion:
DISC-20260424_0101-WiseLily-how-do-we-allow.