| Field | Value |
|---|---|
| Worker Name | yaah (yet another agent harness) |
| Agent Key / ID | yaah |
| Owner / Operator | Operator-configured owner/operator of record (upstream author: dirien; deployed per-developer) |
| Deployment Environment | Operator-configured deployment environment of record — local developer workstations and CI runners: a Go CLI plus a runtime (hook dispatcher, MCP server, session store) that runs alongside coding agents |
| Primary Model | n/a — yaah is a Go tool, not an LLM agent; the agents it generates run on sonnet / opus / haiku |
| Secondary Models | Experimental fact-check subagent: Sonnet |
| Remit Version | 1.2 |
| Last Updated | 2026-07-28 |
| Updated By | Praxen (blind regen + Open Questions resolved, v1.2) |
yaah generates coding-agent configuration — hooks, skills, agents, slash commands, MCP servers, LSP servers, and plugins — for Claude Code, OpenCode, Codex CLI, and GitHub Copilot CLI from a single Go codebase, so that agent setup stays consistent across repositories. It also runs as a runtime alongside those agents: a hook dispatcher that enforces safety controls on the host agent's actions, a stdio MCP server, and a per-session audit store.
.claude/, .mcp.json, opencode.json, .codex/, .copilot/, .github/).yaah hook <event>: run linters/formatters, guard dangerous shell commands, scan file edits for hardcoded secrets, flag placeholder comments, and log session events.yaah serve) over stdio, exposing yaah_scan_secrets, yaah_lint, yaah_check_command, yaah_doctor, yaah_session_info, and the planning tools yaah_planning_status / yaah_planning_init..claude/sessions/./yaah:* project workflow (init → discuss → plan → execute → verify → ship), invoked explicitly by the user./yaah:* workflow commands, including the autonomous workflow, without an explicit user invocation; the model must not self-trigger them.| Channel | Allowed | Requires Approval | Notes |
|---|---|---|---|
Local stdio MCP transport to the host coding agent (yaah serve) | Yes | No | stdio only; no network bind |
| Local filesystem — read files to scan/lint, write generated config, append session logs | Yes | No | Within the target repository and the yaah cache directory |
| Git over HTTPS to pinned remote skill/agent source repositories | Yes | No | Fetch and cache only; sources must be pinned (see Authorized Counterparties) |
| Outbound to explicitly-configured MCP servers (e.g. Context7, Pulumi, Notion, OAuth remotes) | Yes | Yes | Only servers the operator configured |
| Outbound web fetch by the experimental fact-checker | Yes | Yes | Disabled unless the operator has explicitly authorized it |
| Any other outbound network destination | No | — | Unauthorized by default |
pulumi/agent-skills, dirien/claude-skills, jeffallan/claude-skills, msitarzewski/agency-agents, and the other repos yaah ships).github.com (and specifically the pinned source repositories above) for remote skill/agent fetch.yaah_scan_secrets, yaah_lint, yaah_check_command, yaah_doctor, yaah_session_info, yaah_planning_status, yaah_planning_init.~/.yaah / $YAAH_HOME) for fetched remote skills and agents..claude/sessions/.rm -rf /, force-push to a protected branch, git reset --hard, destructive SQL) MUST NEVER be allowed to execute — the command guard blocks it (fail closed).. / .. are rejected (path-traversal prevention).bypassPermissions / dontAsk) or sandbox-disabled mode by default, nor drop the host below its stated minimum permission/sandbox posture. (This rule governs the host's permission mode and sandbox settings; which specific tools a generated sub-agent may invoke is a distinct concern, not a posture downgrade under this rule.)yaah generate, yaah serve) and event-driven (one hook dispatch per coding-agent lifecycle event).yaah session clean removes sessions older than 7 days when invoked..claude/sessions/..claude/, .mcp.json, opencode.json, .codex/, .copilot/, .github/), the yaah cache directory, and .claude/sessions/.yaah doctor reports missing dependencies or misconfiguration for the operator to resolve; this surfaces a warning without blocking generation.yaah serve), blocked commands, and file modifications are recorded to .claude/sessions/<id>.json as a durable, structured audit trail.rm -rf /; the command guard blocks execution and records the blocked command with its reason.yaah generate wires only vetted-catalog skills/agents and pins each remote source to a commit SHA or tag.bypassPermissions by default, or wires in an MCP server / remote skill from a source outside the vetted catalog or pinned to a mutable branch.