Ecosystem Update — 2026-05-04
TL;DR
- Anthropic's hook spec has crept further than last cycle suggested:
PostToolBatch,UserPromptExpansion,PermissionDenied,Setup,TeammateIdle, and the MCPElicitation/ElicitationResultpair are all confirmed in the official docs.PostToolBatchis the highest-leverage of the new events because it gives a single deterministic hook point after parallel tool-batches resolve — currently nothing observes that boundary. - The two events flagged as Build Queue on 2026-05-01 (
ConfigChange,InstructionsLoaded) are confirmed in the official spec. They're still missing from the wired set. - Tier 1 sources (awesome-claude-code, Boris) are stale this cycle — awesome-claude-code is in catalog-rewrite, Boris hasn't posted since 2026-04-16. Real signal this cycle came from the official hooks doc and the 2604/2605 arxiv batch.
Quick Wins
| Item | Source | Type | Impact | Effort | Action |
|---|---|---|---|---|---|
PermissionDenied hook with retry: true |
Claude Code hooks docs | hook | 2 | 1 | Add a PermissionDenied matcher in ~/.claude/settings.json that emits hookSpecificOutput.retry: true for tool calls denied by the auto-mode classifier when the same call previously succeeded — turns a hard deny into a single-retry observability signal. |
Rationale: one new hook block, no script needed (hookSpecificOutput is JSON), gives the auto-mode classifier a feedback channel for transient-deny scenarios. Everything else with priority ≥ 2.0 needs a new script (disqualifies it from Quick Wins) or modifies CLAUDE.md (hard-limit boundary).
Build Queue
PostToolBatchhook (hook) — Fires after a full batch of parallel tool calls resolves, before the next model call. Genuine gap: parallel tool-batches (multiple WebFetch/Read/Grep in a single response) are now the dominant pattern, but no current hook observes the batch boundary. Build: a small script that aggregates the batch's tool_uses into a single state-of-the-batch artifact (success rate, tokens consumed, slowest call) and writes tostate/tool-batch-log.jsonl. Direct fit for autonomous-loop telemetry.UserPromptExpansionhook (hook) — Fires when a slash command or MCP prompt expands into model input. Currently invisible — the route classifier inUserPromptSubmitonly sees the bare slash command, not the expanded prompt. Build: log expansion_type/command_name/expanded prompt to a JSONL so post-run forensics can see what prompts a skill actually injected. Especially useful for auditing the/governand/driveexpansion paths.Setuphook (hook) — Fires only on--init/--maintenance. Useful for one-time dependency installation that shouldn't run on every SessionStart (currentSessionStarthooks do too much work because there's no init/maintenance split). Build: migrate the heavy install/upgrade steps out of SessionStart into a Setup-matched hook withinitandmaintenancematchers.TeammateIdlehook (hook) — Fires when an agent-team teammate is about to go idle; exit 2 keeps it working. Direct application: prevent the worker subagent from going idle mid-slice when the reviewer is still validating. Build: small bash hook that exits 2 if the parent task is still in REVIEW state.Elicitation/ElicitationResulthooks (hook) — Fires when an MCP server requests user input mid-tool-call. Currently any MCP-side elicitation blocks autonomous runs because there's no programmatic responder. Build: a default-handler hook that auto-accepts safe elicitations (read-only forms) and declines anything that would prompt for credentials.ConfigChangehook (hook) — Carried forward from 2026-05-01. Now confirmed in official docs with matchersuser_settings,project_settings,local_settings,policy_settings,skills. Build: drift-detection script that diffs against a hash and writesstate/config-drift.jsonl. Exit 2 to block changes during critical execution windows.InstructionsLoadedhook (hook) — Carried forward. Confirmed; matcherssession_start,nested_traversal,path_glob_match,include,compact. Build: journal CLAUDE.md and rules-file SHA on every load so policy drift is auditable post-run.agent-type hook (hook-type) — Carried forward. Replaces shell-script greps in PreToolUse with a real LLM-verifier subagent. Highest-leverage primitive when added; still requires a verifier-prompt design pass before flipping it on.http-type hook (hook-type) — Carried forward. Lower priority thanagent-type; useful for thenotify_done.shpath./fewer-permission-promptsskill (skill) — Carried forward. Still relevant; the permissions block has accumulated more noise this cycle.- Anthropic-managed Routines (feature) — Carried forward. Migrating the daily ecosystem-update from local cron to a Routine survives laptop reboots. Note: today's run uncovered that the local cron silently no-ops because
claudeisn't on cron's PATH — pushing this up the queue. - claude-code-showcase (reference) — New this cycle. Reference repo for hooks + skills + agents + GitHub Actions wiring. Possibly useful as a structural reference; not as a runtime install.
- hook-development skill (skill) — New this cycle. Scaffolds a hook with the right JSON-output shape. Worth installing if hook authoring becomes recurring; small enough that copying the patterns is also fine.
Research
- arXiv:2605.00798 — RunAgent: Constraint-Guided Plan Execution — Multi-agent execution with explicit control constructs (IF, GOTO, FORALL) and autonomous constraint derivation. Direct comparison to the current planner→worker→reviewer chain: RunAgent's structured control flow is sharper than free-form prompt orchestration.
- arXiv:2605.00803 — AutoMat: Coding-Agent Reproduction Benchmark — Only 54.1% success reproducing computational-materials-science claims due to incomplete procedures and execution fragility. Useful as a failure-mode taxonomy when designing task decomposition and recovery in autonomous harnesses.
- arXiv:2605.00557 — SCISENSE: Structured Sensemaking for Coding Agents — Targeted ideation trajectories improve artifact quality and executability vs. unconstrained exploration. Evidence for pre-execution planning gates as a quality lever, not just a process formality.
- arXiv:2605.00505 — LLM-Oriented IR: Denoising-First Retrieval — Reframes retrieval around signal-to-noise optimization for agentic search. Direct check against the current omni-mem retrieval pattern, which always pulls without abstention.
- Carried forward: arXiv:2604.27283 (abstention-aware retrieval), 2604.25737 (SAFEdit / Failure Abstraction Layer), 2604.24550 (explicit intermediate artifacts), 2604.25849 (ADEMA / epistemic bookkeeping). All still unread; ADEMA in particular keeps surfacing as the closest analog to the current memory + Stop-hook persistence model.
Already Have
memory: project on chad-twin and chad-agent, maxTurns on chad-twin/chad-agent/worker/reviewer, isolation: worktree on worker/reviewer/planner/typescript-reviewer/python-reviewer/explorer (read-only), model: per-agent overrides, tools: whitelist on every agent, hooks: SessionStart / SessionEnd / PreCompact / PostCompact / WorktreeCreate / WorktreeRemove / SubagentStop / TaskCompleted / Stop / PreToolUse / PostToolUse / PostToolUseFailure / UserPromptSubmit (13 of the spec's ~25 events), auto_runtime.py track lifecycle, auto-mode setting, agent: chad-twin default-agent, xhigh effort, CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000, omni-mem MCP at port 8765, skill-installer, skills-janitor, planning-gate, memory-adaptation, govern, drive, evolve, caveman, what-would-chad-do, notify_done.sh, /loop, /batch, /schedule, /go composite, ReviewGrounder, route-classifier in UserPromptSubmit, type: prompt hook, claude-code-hooks-mastery / battle-tested patterns, ecosystem-update + chadacus.dev public-render pipeline (this skill).
Rejected
- Claude Forge wholesale install — same rejection as 2026-05-01; the 11 agents / 36 commands / 15 skills bundle would duplicate existing primitives and violates the simplicity budget.
- VoltAgent awesome-agent-skills (1000+ skills) — bulk import is an anti-pattern; cherry-pick if a specific skill matches a recurring need (none identified today).
- flonat/claude-research — academic-workflow specific, wrong domain.
- Jeffallan/claude-skills (broad catalog) — same simplicity-budget rejection as alirezarezvani last cycle.
- arXiv:2605.00505 LLM-Oriented IR as Quick Win — interesting but research, not a config change.
- arXiv:2604.26235 LATTICE crypto-agent benchmark — wrong domain (crypto copilots).
Auto-Implemented
- None this run — Quick Win (
PermissionDeniedhook) is config-only and stays in the report for explicit review before applying. The cron infrastructure-fix below was applied separately as a bug fix, not a Quick Win.
Infrastructure Note
The chadacus.dev daily cron at 6:30 was silently skipping skill execution because cron's minimal PATH didn't include ~/.local/bin/claude. Fixed in chadacus.dev/scripts/daily_runner.sh this cycle: PATH prepended with ~/.local/bin:/opt/homebrew/bin:/usr/local/bin, and the missing-claude branch now exits 1 instead of warning-and-continuing so the next failure is loud. Rendered reports continued to deploy through the gap, but no new content was generated between 2026-05-01 and 2026-05-04.
Sources checked: - https://github.com/hesreallyhim/awesome-claude-code (in catalog rewrite, no new entries) - https://howborisusesclaudecode.com/ (no posts since 2026-04-16) - https://github.com/shanraisshan/claude-code-best-practice - https://code.claude.com/docs/en/hooks.md (primary signal source this cycle) - https://github.com/coleam00/claude-code-new-features-early-2026 - https://github.com/ChrisWiles/claude-code-showcase - https://github.com/disler/claude-code-hooks-mastery - https://github.com/VoltAgent/awesome-agent-skills - https://gist.github.com/alexfazio/653c5164d726987569ee8229a19f451f - https://arxiv.org/search/?searchtype=all&query=LLM+agent+coding&order=-announced_date_first
Tier 2 fetched: yes (last 2026-04-16, >24h) Tier 3 fetched: yes (last 2026-04-13, >7d) Run at: 2026-05-04T10:55:00Z