[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CASMBHW87CWX97HFXE7TK7":3,"skill-same:01M6CASMBHW87CWX97HFXE7TK7":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":71,"install":72,"resources":85},"01M6CASMBHW87CWX97HFXE7TK7","aoe-development-sessions",null,"Use when Aaron asks Hermes to manage repo-based development sessions through Agent of Empires (`aoe`) instead of launching pi, Codex, or other coding agents directly in tmux. Covers creating sessions\u002Fworktrees, sending prompts, capturing state, using ACP structured sessions, and safely supervising or cleaning up work.","adnichols\u002Fai-configs","adnichols","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F493746?v=4","01M6C33VRY9WF6XWYPT1AFA7JJ","Aaron Nichols","01M6C33VWTNKGRM92E9G643V4W",5,"MIT","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fautonomous-ai-agents\u002Faoe-development-sessions\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"aoe development sessions","sessions","development","hermes","prompts","opencode","up","use","pi","repo","work","hermes agent","linux","coding","state","acp","code","workflow","coding agents","codex","2026-11-10 10:12:30",false,"---\nname: aoe-development-sessions\ndescription: \"Use when Aaron asks Hermes to manage repo-based development sessions through Agent of Empires (`aoe`) instead of launching pi, Codex, or other coding agents directly in tmux. Covers creating sessions\u002Fworktrees, sending prompts, capturing state, using ACP structured sessions, and safely supervising or cleaning up work.\"\nversion: 1.0.0\nauthor: Hermes Agent\nlicense: MIT\nplatforms: [macos, linux]\nmetadata:\n  hermes:\n    tags: [aoe, agent-of-empires, coding-agents, development-sessions, tmux, worktrees, acp]\n    related_skills: [pi-coding-workflow, codex, opencode, claude-code]\n---\n\n# AoE Development Sessions\n\n## Overview\n\nUse Agent of Empires (`aoe`) as the control plane for development sessions instead of launching pi, Codex, Claude Code, OpenCode, or Hermes directly in ad-hoc tmux panes.\n\nAoE is a terminal session manager backed by tmux. It tracks session records, project paths, tools, profiles, worktrees, status, pane capture, prompts, ACP structured-view workers, and cleanup. For Aaron's development work, prefer `aoe` as the durable interface whenever the request is to start, resume, inspect, message, supervise, or clean up a coding-agent session.\n\nThis skill does **not** replace the repo's development workflow expectations. If a repo has a staged plan\u002Freview\u002Fexecute\u002Fvalidate\u002FPR workflow, keep that workflow; use AoE for session lifecycle and interaction rather than raw tmux.\n\nAaron's current preferred evolution for new Hermes-driven development work is: HTML planning through `plan-review`, AoE as the session\u002Fworktree\u002Fcontrol plane, Pi running under AoE where appropriate, explicit plan-stage and implementation-stage PM review gates, and an open-PR feedback\u002Fcheck watcher. Raw tmux should be treated as an observation or emergency-diagnostics layer, not the primary management surface, unless repo-local instructions or Aaron explicitly require tmux-first control.\n\n## When to Use\n\nUse this skill when Aaron asks you to:\n\n- start a development session using `aoe`\n- manage coding-agent sessions without directly launching pi\u002FCodex in tmux\n- create an AoE-managed worktree session for a branch\n- list or inspect active coding sessions\n- send follow-up instructions to an existing agent session\n- capture recent session output without attaching interactively\n- use AoE ACP structured-view sessions\n- stop, archive, snooze, remove, or clean up an AoE-managed session\n- resume or coordinate multiple repo sessions through Agent of Empires\n\nDo **not** use this skill for:\n\n- one-off shell commands that do not need a long-running agent session\n- generic Git\u002FGitHub operations after the agent has completed work\n- destructive cleanup without first identifying the exact session and worktree\n- bypassing repo-specific workflow gates such as plan review, validation, smoke tests, PM review, code review, or PR follow-up\n\n## Core Principle\n\nTreat AoE as the session registry and transport layer:\n\n1. Discover the target repo and current AoE profile.\n2. Create or identify an AoE session.\n3. Send grounded prompts through AoE.\n4. Inspect state with AoE list\u002Fshow\u002Fstatus\u002Fcapture\u002Fhistory.\n5. Let the repo workflow define what the agent should do.\n6. Verify filesystem\u002Fgit\u002Ftest outcomes from Hermes before reporting success.\n\nAvoid freehand tmux pane management for sessions that AoE can own. Use raw tmux only for emergency diagnosis when AoE output is insufficient.\n\n## Prerequisites\n\nCheck these before launching substantial work:\n\n```bash\ncommand -v aoe\naoe --version\naoe agents\n```\n\nKnown-good local shape observed on Aaron's macOS machine:\n\n- `aoe` installed at `\u002Fopt\u002Fhomebrew\u002Fbin\u002Faoe`\n- `aoe 1.11.0`\n- installed tools include `claude`, `opencode`, `codex`, `gemini`, `cursor`, `copilot`, `pi`, `droid`, and `hermes`\n\nDo not assume those versions forever; verify live state when it matters.\n\n## Profiles\n\nAoE supports separate profiles:\n\n```bash\naoe list --json\naoe list --all --json\naoe status --json\naoe status --verbose\n```\n\nMany existing sessions may be under profile `main`. If a user names a session that does not appear in the default profile, retry with:\n\n```bash\naoe --profile main list --json\naoe --profile main session show \u003Cid-or-title> --json\n```\n\nUse `AGENT_OF_EMPIRES_PROFILE=\u003Cprofile>` or `--profile \u003Cprofile>` when necessary. Do not silently create duplicate sessions in the wrong profile if an existing matching session is likely under another profile.\n\n## Creating Sessions\n\n### Basic session in an existing repo\n\n```bash\naoe add \u002Fpath\u002Fto\u002Frepo --title \"short-task-name\" --tool pi --launch\n```\n\nUseful options:\n\n| Option | Purpose |\n|---|---|\n| `--title \u003CTITLE>` | Human-readable session name. Prefer concise task\u002Fissue names. |\n| `--group \u003CGROUP>` | Group sessions by repo or project. |\n| `--tool \u003CTOOL>` | Built-in\u002Fconfigured agent, e.g. `pi`, `codex`, `claude`, `opencode`, `hermes`. |\n| `--cmd \u003CCOMMAND>` | Raw command to run when a named tool is not enough. |\n| `--launch` | Start immediately after creating the session. |\n| `--extra-args \u003CARGS>` | Append args after the agent binary. |\n| `--yolo` | Skip permission prompts; only use when explicitly appropriate. |\n| `--trust-hooks` | Trust repo hooks\u002Fproject-local MCP servers; use deliberately. |\n| `--structured-view` | Use ACP structured view instead of raw terminal\u002Ftmux view. |\n| `--agent \u003CAGENT>` | Select ACP agent for structured view, e.g. `aoe-agent`, `claude-code`. |\n| `--model \u003CMODEL>` | Override the model for `aoe-agent`. |\n| `--scratch` | Use a fresh scratch directory; removed when session is deleted unless kept. |\n\n### Worktree session for parallel development\n\nFor repo work where a new branch is desired, prefer AoE-managed worktrees:\n\n```bash\naoe add \u002Fpath\u002Fto\u002Frepo \\\n  --title \"issue-or-task-slug\" \\\n  --group \"repo-name\" \\\n  --tool pi \\\n  --worktree issue-or-task-slug \\\n  --new-branch \\\n  --base-branch develop \\\n  --launch\n```\n\nGuidance:\n\n- Create the branch\u002Fworktree before planning when following Aaron's staged workflow.\n- Use the repo's actual target branch (`develop`, `main`, release branch, or stacked branch) as `--base-branch`.\n- Use `--repo \u003Cextra-repo>` or `--project \u003Cregistered-project>` for multi-repo workspaces.\n- Use `--no-submodules` only when submodules are irrelevant or too expensive.\n\nInspect worktree state with:\n\n```bash\naoe worktree list\naoe worktree info \u003Csession-id-or-title>\n```\n\n## Listing and Identifying Sessions\n\nUse JSON when scripting or when you need exact IDs:\n\n```bash\naoe list --json\naoe status --json\naoe status --verbose\naoe session show \u003Cid-or-title> --json\n```\n\nPrefer the stable session `id` over a title when sending prompts or performing lifecycle actions, especially if titles are ambiguous.\n\nIf you are inside an AoE tmux session, auto-detect it:\n\n```bash\naoe session current --json\naoe session current --quiet\n```\n\n## Starting, Stopping, Attaching, and Capturing\n\nLifecycle:\n\n```bash\naoe session start \u003Cid-or-title>\naoe session stop \u003Cid-or-title>\naoe session restart \u003Cid-or-title>\naoe session attach \u003Cid-or-title>\naoe session show \u003Cid-or-title> --json\n```\n\nCapture recent pane output without attaching:\n\n```bash\naoe session capture \u003Cid-or-title> --lines 80 --strip-ansi\naoe session capture \u003Cid-or-title> --lines 120 --strip-ansi --json\n```\n\nUse capture before sending follow-up prompts. It prevents stale steering and gives evidence of whether the agent is idle, blocked, asking for approval, actively working, or already finished.\n\nWhen summarizing several idle sessions for Aaron's `\u002Fgm` or planning triage, combine AoE capture with filesystem evidence. `aoe session capture` may be empty for stopped\u002Fold panes even when the session record is still idle; in that case inspect the session path for active plan\u002Fdiscovery artifacts and run git status\u002Flog to identify what was left untracked, modified, registered, or waiting for review. Summaries should say where each session left off, not just list paths.\n\n## Sending Prompts to Terminal-View Sessions\n\nFor regular terminal\u002Ftmux-backed sessions:\n\n```bash\naoe send \u003Cid-or-title> \"Continue from the current state. First summarize what you believe remains, then execute the next safe step.\"\n```\n\nBehavior note:\n\n- `aoe send` revives dead\u002Fstopped sessions by default.\n- Use `--no-revive` when scripts should fail loudly rather than restart a crashed\u002Fstopped session:\n\n```bash\naoe send --no-revive \u003Cid-or-title> \"status check\"\n```\n\nPrompting rules:\n\n- Always include enough repo\u002Ftask context for the agent to act correctly.\n- Tell the agent whether it may edit files, run tests, commit, push, or open PRs.\n- If following a staged workflow, specify the current stage and what not to redo.\n- Ask for concrete artifacts: plan path, test command output, PR URL, screenshots, etc.\n\n## ACP Structured-View Sessions\n\nAoE can run ACP structured sessions with native prompt\u002Fhistory\u002Ftail\u002Fapproval commands.\n\nCreate an ACP session:\n\n```bash\naoe add \u002Fpath\u002Fto\u002Frepo \\\n  --title \"task-slug\" \\\n  --tool hermes \\\n  --structured-view \\\n  --agent aoe-agent \\\n  --model gpt-5 \\\n  --launch\n```\n\nInspect ACP setup:\n\n```bash\naoe acp doctor\naoe acp agents\naoe acp ps\n```\n\nSend a prompt:\n\n```bash\naoe acp prompt \u003Csession-id> \"message text\"\n```\n\nFor long prompts, read from stdin:\n\n```bash\nprintf '%s\\n' \"$(cat \u002Fpath\u002Fto\u002Fprompt.md)\" | aoe acp prompt \u003Csession-id> -\n```\n\nRead persisted transcript or live stream:\n\n```bash\naoe acp history \u003Csession-id>\naoe acp history \u003Csession-id> --json\naoe acp status \u003Csession-id> --json\naoe acp tail \u003Csession-id> --since 0\n```\n\nResolve approvals:\n\n```bash\naoe acp approve \u003Csession-id> \u003Cnonce>\naoe acp approve \u003Csession-id> \u003Cnonce> --always\naoe acp approve \u003Csession-id> \u003Cnonce> --deny\n```\n\nCancel or restart when wedged:\n\n```bash\naoe acp cancel \u003Csession-id>\naoe acp restart \u003Csession-id>\naoe acp stop \u003Csession-id>\naoe acp kill \u003Csession-id>\n```\n\nUse ACP history\u002Ftail instead of pane scraping for structured sessions when available.\n\n## Staged Development Workflow Through AoE\n\nWhen the repo\u002Ftask requires Aaron's full development loop, keep the stages but route interaction through AoE:\n\n1. Inspect repo guidance (`AGENTS.md`, testing docs, plan conventions, product intent docs).\n2. Create an AoE worktree session on the intended branch.\n3. Send a **plan-only** prompt; explicitly prohibit code changes.\n4. Verify the plan file exists on disk from Hermes.\n5. Run plan review\u002Fintegration prompts through AoE.\n6. Commit the reviewed plan from Hermes or by explicitly delegating and verifying.\n7. Send implementation prompt (`\u002Fdev:run` or repo-specific equivalent) through AoE.\n8. Capture output periodically; nudge only from live evidence.\n9. Run\u002Fverify full validation and smoke tests before PR.\n10. Run PM\u002Fproduct-intent review and full code review before PR.\n11. Open PR only after verifying clean git state, passing validation, addressed review issues, and required screenshots\u002Fvideos for UI\u002Fflow changes.\n12. After PR creation, check jobs\u002Freview feedback\u002Fmergeability at least once.\n\nImportant: AoE owning the session does **not** mean the agent owns final truth. Hermes must still verify artifacts with filesystem, git, tests, and GitHub output before reporting completion.\n\n## Safe Supervision Loop\n\nA robust loop for an existing session:\n\n```bash\naoe session show \u003Cid> --json\naoe session capture \u003Cid> --lines 120 --strip-ansi\ngit -C \u003Csession-path> status --short\ngit -C \u003Csession-path> diff --stat\n```\n\nThen decide:\n\n- If the agent is actively working: wait; do not spam prompts.\n- If it is asking for a decision: answer narrowly with the decision and constraints.\n- If it is idle before completion: send a continuation prompt grounded in the latest capture and repo state.\n- If it claims completion: verify files, git diff, tests, and required artifacts before accepting.\n- If it is wedged: capture logs\u002Fstatus, then consider restart\u002Fcancel\u002Fstop based on session type.\n\n## Cleanup and Archival\n\nPrefer non-destructive lifecycle actions first:\n\n```bash\naoe session snooze \u003Cid> 2h\naoe session archive \u003Cid>\naoe session archive \u003Cid> --no-kill\naoe session unarchive \u003Cid>\naoe session stop \u003Cid>\n```\n\nRemove a session record only after confirming no needed work is left:\n\n```bash\naoe remove \u003Cid>\n```\n\nFor AoE-managed worktrees:\n\n```bash\naoe remove \u003Cid> --delete-worktree\n```\n\nOnly delete the branch when explicitly intended:\n\n```bash\naoe remove \u003Cid> --delete-worktree --delete-branch\n```\n\nAvoid `--force` unless the user explicitly confirms it or you have inspected and preserved the work. Aaron prefers safe deletion practices; never use broad destructive cleanup as a shortcut.\n\nClean orphaned worktrees:\n\n```bash\naoe worktree cleanup\n```\n\n## Common Recipes\n\n### Create a pi session in an AoE worktree\n\n```bash\naoe add \u002FUsers\u002Fanichols\u002Fcode\u002Fheddle \\\n  --title \"nod-123-short-name\" \\\n  --group \"heddle\" \\\n  --tool pi \\\n  --worktree nod-123-short-name \\\n  --new-branch \\\n  --base-branch develop \\\n  --launch\n```\n\nThen:\n\n```bash\naoe send nod-123-short-name \"Read repo guidance and create the canonical plan only. Do not change code.\"\naoe session capture nod-123-short-name --lines 100 --strip-ansi\n```\n\n### Resume an existing session by title\n\n```bash\naoe list --json\naoe session show \"session title\" --json\naoe session capture \"session title\" --lines 120 --strip-ansi\naoe send \"session title\" \"Continue from the current state. Do not redo completed stages; first state what remains.\"\n```\n\n### Use JSON to pick exact sessions\n\n```bash\naoe list --json | jq -r '.[] | [.id, .title, .tool, .path, .profile] | @tsv'\n```\n\n### Check whether any session needs attention\n\n```bash\naoe status --json\naoe status --verbose\n```\n\n### Debug AoE itself\n\n```bash\naoe logs\naoe log-level --get\naoe log-level debug\n```\n\n## Common Pitfalls\n\n1. **Creating duplicate sessions in the wrong profile.** Check `aoe list --all --json` or known profile `main` before creating a new session that may already exist.\n\n2. **Treating AoE capture as proof of completion.** Capture is evidence, not verification. Verify on disk and with git\u002Ftest commands.\n\n3. **Prompting without checking current state.** Always capture\u002Fshow status first; stale prompts cause duplicated stages and conflicting work.\n\n4. **Bypassing repo workflow gates.** AoE manages sessions; it does not waive plan review, validation, PM review, code review, PR requirements, or post-PR follow-up.\n\n5. **Overusing `--yolo`, `--trust-hooks`, `--force`, or branch deletion.** These are high-authority choices. Use deliberately and explain when necessary.\n\n6. **Confusing terminal-view and ACP sessions.** Use `aoe send`\u002F`aoe session capture` for terminal-view sessions; use `aoe acp prompt\u002Fhistory\u002Ftail\u002Fapprove` for ACP structured sessions.\n\n7. **Reviving a session accidentally.** `aoe send` revives by default. Use `--no-revive` if restart would be unsafe or misleading.\n\n8. **Using raw tmux as the primary controller.** If AoE owns the session, prefer AoE lifecycle\u002Fcapture\u002Fsend commands. Use raw tmux only as a fallback diagnosis layer.\n\n## Verification Checklist\n\n- [ ] `aoe` is installed and `aoe agents` shows the requested tool installed.\n- [ ] Correct AoE profile selected; existing sessions checked before creating a new one.\n- [ ] Session ID\u002Ftitle\u002Fpath\u002Ftool verified with `aoe session show --json`.\n- [ ] For repo work, path\u002Fworktree\u002Fbranch\u002Fbase branch are correct.\n- [ ] Latest session output captured before sending steering.\n- [ ] Prompts include current stage, authority boundaries, and what not to redo.\n- [ ] Claimed plan\u002Fcode\u002Ftest\u002FPR artifacts verified outside the agent session.\n- [ ] Cleanup uses AoE lifecycle commands and avoids destructive branch\u002Fworktree deletion unless explicitly intended.\n","# AoE Development Sessions\n\n## Overview\n\nUse Agent of Empires (`aoe`) as the control plane for development sessions instead of launching pi, Codex, Claude Code, OpenCode, or Hermes directly in ad-hoc tmux panes.\n\nAoE is a terminal session manager backed by tmux. It tracks session records, project paths, tools, profiles, worktrees, status, pane capture, prompts, ACP structured-view workers, and cleanup. For Aaron's development work, prefer `aoe` as the durable interface whenever the request is to start, resume, inspect, message, supervise, or clean up a coding-agent session.\n\nThis skill does **not** replace the repo's development workflow expectations. If a repo has a staged plan\u002Freview\u002Fexecute\u002Fvalidate\u002FPR workflow, keep that workflow; use AoE for session lifecycle and interaction rather than raw tmux.\n\nAaron's current preferred evolution for new Hermes-driven development work is: HTML planning through `plan-review`, AoE as the session\u002Fworktree\u002Fcontrol plane, Pi running under AoE where appropriate, explicit plan-stage and implementation-stage PM review gates, and an open-PR feedback\u002Fcheck watcher. Raw tmux should be treated as an observation or emergency-diagnostics layer, not the primary management surface, unless repo-local instructions or Aaron explicitly require tmux-first control.\n\n## When to Use\n\nUse this skill when Aaron asks you to:\n\n- start a development session using `aoe`\n- manage coding-agent sessions without directly launching pi\u002FCodex in tmux\n- create an AoE-managed worktree session for a branch\n- list or inspect active coding sessions\n- send follow-up instructions to an existing agent session\n- capture recent session output without attaching interactively\n- use AoE ACP structured-view sessions\n- stop, archive, snooze, remove, or clean up an AoE-managed session\n- resume or coordinate multiple repo sessions through Agent of Empires\n\nDo **not** use this skill for:\n\n- one-off shell commands that do not need a long-running agent session\n- generic Git\u002FGitHub operations after the agent has completed work\n- destructive cleanup without first identifying the exact session and worktree\n- bypassing repo-specific workflow gates such as plan review, validation, smoke tests, PM review, code review, or PR follow-up\n\n## Core Principle\n\nTreat AoE as the session registry and transport layer:\n\n1. Discover the target repo and current AoE profile.\n2. Create or identify an AoE session.\n3. Send grounded prompts through AoE.\n4. Inspect state with AoE list\u002Fshow\u002Fstatus\u002Fcapture\u002Fhistory.\n5. Let the repo workflow define what the agent should do.\n6. Verify filesystem\u002Fgit\u002Ftest outcomes from Hermes before reporting success.\n\nAvoid freehand tmux pane management for sessions that AoE can own. Use raw tmux only for emergency diagnosis when AoE output is insufficient.\n\n## Prerequisites\n\nCheck these before launching substantial work:\n\n```bash\ncommand -v aoe\naoe --version\naoe agents\n```\n\nKnown-good local shape observed on Aaron's macOS machine:\n\n- `aoe` installed at `\u002Fopt\u002Fhomebrew\u002Fbin\u002Faoe`\n- `aoe 1.11.0`\n- installed tools include `claude`, `opencode`, `codex`, `gemini`, `cursor`, `copilot`, `pi`, `droid`, and `hermes`\n\nDo not assume those versions forever; verify live state when it matters.\n\n## Profiles\n\nAoE supports separate profiles:\n\n```bash\naoe list --json\naoe list --all --json\naoe status --json\naoe status --verbose\n```\n\nMany existing sessions may be under profile `main`. If a user names a session that does not appear in the default profile, retry with:\n\n```bash\naoe --profile main list --json\naoe --profile main session show \u003Cid-or-title> --json\n```\n\nUse `AGENT_OF_EMPIRES_PROFILE=\u003Cprofile>` or `--profile \u003Cprofile>` when necessary. Do not silently create duplicate sessions in the wrong profile if an existing matching session is likely under another profile.\n\n## Creating Sessions\n\n### Basic session in an existing repo\n\n```bash\naoe add \u002Fpath\u002Fto\u002Frepo --title \"short-task-name\" --tool pi --launch\n```\n\nUseful options:\n\n| Option | Purpose |\n|---|---|\n| `--title \u003CTITLE>` | Human-readable session name. Prefer concise task\u002Fissue names. |\n| `--group \u003CGROUP>` | Group sessions by repo or project. |\n| `--tool \u003CTOOL>` | Built-in\u002Fconfigured agent, e.g. `pi`, `codex`, `claude`, `opencode`, `hermes`. |\n| `--cmd \u003CCOMMAND>` | Raw command to run when a named tool is not enough. |\n| `--launch` | Start immediately after creating the session. |\n| `--extra-args \u003CARGS>` | Append args after the agent binary. |\n| `--yolo` | Skip permission prompts; only use when explicitly appropriate. |\n| `--trust-hooks` | Trust repo hooks\u002Fproject-local MCP servers; use deliberately. |\n| `--structured-view` | Use ACP structured view instead of raw terminal\u002Ftmux view. |\n| `--agent \u003CAGENT>` | Select ACP agent for structured view, e.g. `aoe-agent`, `claude-code`. |\n| `--model \u003CMODEL>` | Override the model for `aoe-agent`. |\n| `--scratch` | Use a fresh scratch directory; removed when session is deleted unless kept. |\n\n### Worktree session for parallel development\n\nFor repo work where a new branch is desired, prefer AoE-managed worktrees:\n\n```bash\naoe add \u002Fpath\u002Fto\u002Frepo \\\n  --title \"issue-or-task-slug\" \\\n  --group \"repo-name\" \\\n  --tool pi \\\n  --worktree issue-or-task-slug \\\n  --new-branch \\\n  --base-branch develop \\\n  --launch\n```\n\nGuidance:\n\n- Create the branch\u002Fworktree before planning when following Aaron's staged workflow.\n- Use the repo's actual target branch (`develop`, `main`, release branch, or stacked branch) as `--base-branch`.\n- Use `--repo \u003Cextra-repo>` or `--project \u003Cregistered-project>` for multi-repo workspaces.\n- Use `--no-submodules` only when submodules are irrelevant or too expensive.\n\nInspect worktree state with:\n\n```bash\naoe worktree list\naoe worktree info \u003Csession-id-or-title>\n```\n\n## Listing and Identifying Sessions\n\nUse JSON when scripting or when you need exact IDs:\n\n```bash\naoe list --json\naoe status --json\naoe status --verbose\naoe session show \u003Cid-or-title> --json\n```\n\nPrefer the stable session `id` over a title when sending prompts or performing lifecycle actions, especially if titles are ambiguous.\n\nIf you are inside an AoE tmux session, auto-detect it:\n\n```bash\naoe session current --json\naoe session current --quiet\n```\n\n## Starting, Stopping, Attaching, and Capturing\n\nLifecycle:\n\n```bash\naoe session start \u003Cid-or-title>\naoe session stop \u003Cid-or-title>\naoe session restart \u003Cid-or-title>\naoe session attach \u003Cid-or-title>\naoe session show \u003Cid-or-title> --json\n```\n\nCapture recent pane output without attaching:\n\n```bash\naoe session capture \u003Cid-or-title> --lines 80 --strip-ansi\naoe session capture \u003Cid-or-title> --lines 120 --strip-ansi --json\n```\n\nUse capture before sending follow-up prompts. It prevents stale steering and gives evidence of whether the agent is idle, blocked, asking for approval, actively working, or already finished.\n\nWhen summarizing several idle sessions for Aaron's `\u002Fgm` or planning triage, combine AoE capture with filesystem evidence. `aoe session capture` may be empty for stopped\u002Fold panes even when the session record is still idle; in that case inspect the session path for active plan\u002Fdiscovery artifacts and run git status\u002Flog to identify what was left untracked, modified, registered, or waiting for review. Summaries should say where each session left off, not just list paths.\n\n## Sending Prompts to Terminal-View Sessions\n\nFor regular terminal\u002Ftmux-backed sessions:\n\n```bash\naoe send \u003Cid-or-title> \"Continue from the current state. First summarize what you believe remains, then execute the next safe step.\"\n```\n\nBehavior note:\n\n- `aoe send` revives dead\u002Fstopped sessions by default.\n- Use `--no-revive` when scripts should fail loudly rather than restart a crashed\u002Fstopped session:\n\n```bash\naoe send --no-revive \u003Cid-or-title> \"status check\"\n```\n\nPrompting rules:\n\n- Always include enough repo\u002Ftask context for the agent to act correctly.\n- Tell the agent whether it may edit files, run tests, commit, push, or open PRs.\n- If following a staged workflow, specify the current stage and what not to redo.\n- Ask for concrete artifacts: plan path, test command output, PR URL, screenshots, etc.\n\n## ACP Structured-View Sessions\n\nAoE can run ACP structured sessions with native prompt\u002Fhistory\u002Ftail\u002Fapproval commands.\n\nCreate an ACP session:\n\n```bash\naoe add \u002Fpath\u002Fto\u002Frepo \\\n  --title \"task-slug\" \\\n  --tool hermes \\\n  --structured-view \\\n  --agent aoe-agent \\\n  --model gpt-5 \\\n  --launch\n```\n\nInspect ACP setup:\n\n```bash\naoe acp doctor\naoe acp agents\naoe acp ps\n```\n\nSend a prompt:\n\n```bash\naoe acp prompt \u003Csession-id> \"message text\"\n```\n\nFor long prompts, read from stdin:\n\n```bash\nprintf '%s\\n' \"$(cat \u002Fpath\u002Fto\u002Fprompt.md)\" | aoe acp prompt \u003Csession-id> -\n```\n\nRead persisted transcript or live stream:\n\n```bash\naoe acp history \u003Csession-id>\naoe acp history \u003Csession-id> --json\naoe acp status \u003Csession-id> --json\naoe acp tail \u003Csession-id> --since 0\n```\n\nResolve approvals:\n\n```bash\naoe acp approve \u003Csession-id> \u003Cnonce>\naoe acp approve \u003Csession-id> \u003Cnonce> --always\naoe acp approve \u003Csession-id> \u003Cnonce> --deny\n```\n\nCancel or restart when wedged:\n\n```bash\naoe acp cancel \u003Csession-id>\naoe acp restart \u003Csession-id>\naoe acp stop \u003Csession-id>\naoe acp kill \u003Csession-id>\n```\n\nUse ACP history\u002Ftail instead of pane scraping for structured sessions when available.\n\n## Staged Development Workflow Through AoE\n\nWhen the repo\u002Ftask requires Aaron's full development loop, keep the stages but route interaction through AoE:\n\n1. Inspect repo guidance (`AGENTS.md`, testing docs, plan conventions, product intent docs).\n2. Create an AoE worktree session on the intended branch.\n3. Send a **plan-only** prompt; explicitly prohibit code changes.\n4. Verify the plan file exists on disk from Hermes.\n5. Run plan review\u002Fintegration prompts through AoE.\n6. Commit the reviewed plan from Hermes or by explicitly delegating and verifying.\n7. Send implementation prompt (`\u002Fdev:run` or repo-specific equivalent) through AoE.\n8. Capture output periodically; nudge only from live evidence.\n9. Run\u002Fverify full validation and smoke tests before PR.\n10. Run PM\u002Fproduct-intent review and full code review before PR.\n11. Open PR only after verifying clean git state, passing validation, addressed review issues, and required screenshots\u002Fvideos for UI\u002Fflow changes.\n12. After PR creation, check jobs\u002Freview feedback\u002Fmergeability at least once.\n\nImportant: AoE owning the session does **not** mean the agent owns final truth. Hermes must still verify artifacts with filesystem, git, tests, and GitHub output before reporting completion.\n\n## Safe Supervision Loop\n\nA robust loop for an existing session:\n\n```bash\naoe session show \u003Cid> --json\naoe session capture \u003Cid> --lines 120 --strip-ansi\ngit -C \u003Csession-path> status --short\ngit -C \u003Csession-path> diff --stat\n```\n\nThen decide:\n\n- If the agent is actively working: wait; do not spam prompts.\n- If it is asking for a decision: answer narrowly with the decision and constraints.\n- If it is idle before completion: send a continuation prompt grounded in the latest capture and repo state.\n- If it claims completion: verify files, git diff, tests, and required artifacts before accepting.\n- If it is wedged: capture logs\u002Fstatus, then consider restart\u002Fcancel\u002Fstop based on session type.\n\n## Cleanup and Archival\n\nPrefer non-destructive lifecycle actions first:\n\n```bash\naoe session snooze \u003Cid> 2h\naoe session archive \u003Cid>\naoe session archive \u003Cid> --no-kill\naoe session unarchive \u003Cid>\naoe session stop \u003Cid>\n```\n\nRemove a session record only after confirming no needed work is left:\n\n```bash\naoe remove \u003Cid>\n```\n\nFor AoE-managed worktrees:\n\n```bash\naoe remove \u003Cid> --delete-worktree\n```\n\nOnly delete the branch when explicitly intended:\n\n```bash\naoe remove \u003Cid> --delete-worktree --delete-branch\n```\n\nAvoid `--force` unless the user explicitly confirms it or you have inspected and preserved the work. Aaron prefers safe deletion practices; never use broad destructive cleanup as a shortcut.\n\nClean orphaned worktrees:\n\n```bash\naoe worktree cleanup\n```\n\n## Common Recipes\n\n### Create a pi session in an AoE worktree\n\n```bash\naoe add \u002FUsers\u002Fanichols\u002Fcode\u002Fheddle \\\n  --title \"nod-123-short-name\" \\\n  --group \"heddle\" \\\n  --tool pi \\\n  --worktree nod-123-short-name \\\n  --new-branch \\\n  --base-branch develop \\\n  --launch\n```\n\nThen:\n\n```bash\naoe send nod-123-short-name \"Read repo guidance and create the canonical plan only. Do not change code.\"\naoe session capture nod-123-short-name --lines 100 --strip-ansi\n```\n\n### Resume an existing session by title\n\n```bash\naoe list --json\naoe session show \"session title\" --json\naoe session capture \"session title\" --lines 120 --strip-ansi\naoe send \"session title\" \"Continue from the current state. Do not redo completed stages; first state what remains.\"\n```\n\n### Use JSON to pick exact sessions\n\n```bash\naoe list --json | jq -r '.[] | [.id, .title, .tool, .path, .profile] | @tsv'\n```\n\n### Check whether any session needs attention\n\n```bash\naoe status --json\naoe status --verbose\n```\n\n### Debug AoE itself\n\n```bash\naoe logs\naoe log-level --get\naoe log-level debug\n```\n\n## Common Pitfalls\n\n1. **Creating duplicate sessions in the wrong profile.** Check `aoe list --all --json` or known profile `main` before creating a new session that may already exist.\n\n2. **Treating AoE capture as proof of completion.** Capture is evidence, not verification. Verify on disk and with git\u002Ftest commands.\n\n3. **Prompting without checking current state.** Always capture\u002Fshow status first; stale prompts cause duplicated stages and conflicting work.\n\n4. **Bypassing repo workflow gates.** AoE manages sessions; it does not waive plan review, validation, PM review, code review, PR requirements, or post-PR follow-up.\n\n5. **Overusing `--yolo`, `--trust-hooks`, `--force`, or branch deletion.** These are high-authority choices. Use deliberately and explain when necessary.\n\n6. **Confusing terminal-view and ACP sessions.** Use `aoe send`\u002F`aoe session capture` for terminal-view sessions; use `aoe acp prompt\u002Fhistory\u002Ftail\u002Fapprove` for ACP structured sessions.\n\n7. **Reviving a session accidentally.** `aoe send` revives by default. Use `--no-revive` if restart would be unsafe or misleading.\n\n8. **Using raw tmux as the primary controller.** If AoE owns the session, prefer AoE lifecycle\u002Fcapture\u002Fsend commands. Use raw tmux only as a fallback diagnosis layer.\n\n## Verification Checklist\n\n- [ ] `aoe` is installed and `aoe agents` shows the requested tool installed.\n- [ ] Correct AoE profile selected; existing sessions checked before creating a new one.\n- [ ] Session ID\u002Ftitle\u002Fpath\u002Ftool verified with `aoe session show --json`.\n- [ ] For repo work, path\u002Fworktree\u002Fbranch\u002Fbase branch are correct.\n- [ ] Latest session output captured before sending steering.\n- [ ] Prompts include current stage, authority boundaries, and what not to redo.\n- [ ] Claimed plan\u002Fcode\u002Ftest\u002FPR artifacts verified outside the agent session.\n- [ ] Cleanup uses AoE lifecycle commands and avoids destructive branch\u002Fworktree deletion unless explicitly intended.\n",{"name":5,"author":49,"license":15,"version":50,"metadata":51,"platforms":63,"description":7},"Hermes Agent","1.0.0",{"hermes":52},{"tags":53,"related_skills":60},[54,55,56,57,58,59,39],"aoe","agent-of-empires","coding-agents","development-sessions","tmux","worktrees",[61,43,29,62],"pi-coding-workflow","claude-code",[64,36],"macos","main","64e2fc9afa7bb3da1138eb73399144d0e7e73e9d","_hermes\u002Fdefault\u002Fskills\u002Fautonomous-ai-agents\u002Faoe-development-sessions",4,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs","https:\u002F\u002Fgithub.com\u002Fadnichols","2026-11-06 00:28:38",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":84},[74,77,80],{"tool":75,"command":76},"npx","npx skills add adnichols\u002Fai-configs --skill aoe-development-sessions",{"tool":78,"command":79},"bunx","bunx skills add adnichols\u002Fai-configs --skill aoe-development-sessions",{"tool":81,"command":82},"pnpm","pnpm dlx skills add adnichols\u002Fai-configs --skill aoe-development-sessions","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fautonomous-ai-agents\u002Faoe-development-sessions\u002FSKILL.md",true,[],[87,104,132,156,167,183],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":44},"01M6CB7RN791P5RRRCJWWC7DAR","blocked-page-recovery","Use when a fetch fails: 403\u002F429, paywall, WAF, bot wall.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fweb\u002Fblocked-page-recovery\u002FSKILL.md",[],[94,95,96,97,98,31,99,35,27,100,101,102,103,36,64],"recovery","page","blocked page recovery","bot","fallback","fetch","Citations","waf","windows","research",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":119,"publishedAt":44},"01M6CB7NQY2VVYCQJ1QBXACQF4","writing-plans","Use when creating or updating executable software plans. Keep plans as local files unless the user explicitly asks to register them in Doct.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[110,113,114],{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[120,121,122,123,41,124,125,26,126,127,128,129,31,130,35,27,131],"writing","writing plans","documentation","test","design","user","planning","files","implementation","html","ops","plan",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":147,"publishedAt":44},"01M6CB7JME246KZQHP73Z2STDF","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[138,141,144],{"categoryNo":139,"categoryName":140,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":142,"categoryName":143,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":145,"categoryName":146,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000037","律师与法务",[123,26,148,149,150,35,27,151,131,152,40,153,64,154,36,155,102],"test driven development","red-green-refactor","superpowers","quality","refactor","debugging","tdd","testing",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":44},"01M6CB7FQ407KQTD4Z9VAWKY54","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[162],{"categoryNo":142,"categoryName":143,"taxonomyType":21,"taxonomyTypeDesc":22},[153,164,26,150,35,27,165,131,166,102,123,36,64],"systematic debugging","troubleshooting","investigation",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":176,"publishedAt":44},"01M6CB7D57MK88HE5YPZHKH68Q","spike","Throwaway experiments to validate an idea before build.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fspike\u002FSKILL.md",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[169,102,177,178,103,179,36,64,180,181,182,35,27,131,126],"validate","experiments","prototype","feasibility","sketch","experiment",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":193,"publishedAt":44},"01M6CB7APAQ37YE5YE1MAAFT42","simplify-code","Parallel 3-agent cleanup of recent code changes.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsimplify-code\u002FSKILL.md",[189,190],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":191,"categoryName":192,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000030","开发工程师",[194,195,40,196,35,27,197,131,152,198,199,200,26,102,123,36,201,64],"simplify code","simplify","subagent","parallel","code-review","delegation","cleanup","review"]