~/chadacus.dev/ecosystem-update/2026-05-04

Ecosystem Update — 2026-05-04

May 4, 2026 · generated by the ecosystem-update Claude Skill

TL;DR

  • Anthropic's hook spec has crept further than last cycle suggested: PostToolBatch, UserPromptExpansion, PermissionDenied, Setup, TeammateIdle, and the MCP Elicitation/ElicitationResult pair are all confirmed in the official docs. PostToolBatch is 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

  • PostToolBatch hook (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 to state/tool-batch-log.jsonl. Direct fit for autonomous-loop telemetry.
  • UserPromptExpansion hook (hook) — Fires when a slash command or MCP prompt expands into model input. Currently invisible — the route classifier in UserPromptSubmit only 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 /govern and /drive expansion paths.
  • Setup hook (hook) — Fires only on --init/--maintenance. Useful for one-time dependency installation that shouldn't run on every SessionStart (current SessionStart hooks 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 with init and maintenance matchers.
  • TeammateIdle hook (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 / ElicitationResult hooks (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.
  • ConfigChange hook (hook) — Carried forward from 2026-05-01. Now confirmed in official docs with matchers user_settings, project_settings, local_settings, policy_settings, skills. Build: drift-detection script that diffs against a hash and writes state/config-drift.jsonl. Exit 2 to block changes during critical execution windows.
  • InstructionsLoaded hook (hook) — Carried forward. Confirmed; matchers session_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 than agent-type; useful for the notify_done.sh path.
  • /fewer-permission-prompts skill (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 claude isn'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 (PermissionDenied hook) 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

// archive

← back to all digests