agent-epics

command module
v0.0.0-...-85e95e3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2026 License: MIT Imports: 7 Imported by: 0

README

Agent Epics

A CLI tool for planning and tracking agent-driven work. Each epic is a self-contained SQLite file holding a hierarchy of tasks — a single portable artifact you can copy, share, or archive.

The tool is designed to be paired with two Claude Code skills, epic-plan and epic-work, which walk an agent through interviewing, planning, splitting, executing, and summarizing an epic.

The binary is named ae. See DESIGN.md for the full design spec — this README is the human-facing guide.

Installation

Install with go install:

go install github.com/MHmorgan/agent-epics@latest

This drops a binary named agent-epics into $GOBIN (or $GOPATH/bin). The rest of this document — and the skills — assume the binary is named ae, so add an alias or either rename it:

mv "$(go env GOPATH)/bin/agent-epics" "$(go env GOPATH)/bin/ae"

Make sure $GOBIN (or $GOPATH/bin) is on your PATH.

Epics live in ~/.agent-epics/epics/ by default, one .db file per epic. Override with the AE_APPDIR environment variable.

Skills

Agent Epics is a tool — the workflow it enables lives in two skills.

epic-plan

Invoked as /epic-plan <description>. Takes an idea, creates an epic, and interviews you to flesh out the work. Recursively splits large epics into sub-tasks; finalizes each leaf with acceptance criteria, constraints, implementation notes from three parallel reviews (software, architecture, agent workflow), and a handoff context. Planning ends when every leaf has a finalized body and is ready to be executed in its own session.

epic-work

Invoked as /epic-work <id>. Walks a planned epic, branch, or leaf. Picks the next ready leaf via ae task:next, dispatches a fresh subagent as a leaf orchestrator to implement it, and applies the resulting status transition (done, blocked, or abandoned). Blocks halt the run; abandons don't. On completion, writes an epic summary or a branch-context rollup and reports back.

Both skills are checked into this repo under skills/. Symlink or copy them into your Claude Code skills directory to make them user-invocable.

Example workflows

Planning a new epic
you> /epic-plan Add OIDC authentication to the API

The agent proposes a slug (oidc-auth), confirms, and runs ae task:new-epic oidc-auth. It then interviews you — one question at a time — rewriting the task body after each answer. If the work is large, it drafts a ----separated outline, confirms the shape with you, and runs ae task:split oidc-auth. Each child is planned the same way, depth-first.

You can exit and resume at any point — state is on disk. Check what's been planned so far:

ae epics                       # see all epics
ae show oidc-auth              # view the root body
ae task:list oidc-auth         # list tasks still in play
ae show oidc-auth:2            # a specific child
ae context oidc-auth:2:1       # composed context for a leaf
Executing a planned epic
you> /epic-work oidc-auth

The orchestrator picks the first ready leaf, dispatches a subagent to implement it, marks it done, and moves on. If a leaf gets blocked, the run stops and the orchestrator reports to you. When the whole epic is terminal it writes a summary:

ae attr:get oidc-auth summary
Running a single leaf

/epic-work also takes a leaf or branch id when you only want to execute part of the tree:

you> /epic-work oidc-auth:2:1
Inspecting an epic by hand
ae epics                         # list all epics with their derived status
ae show oidc-auth:2              # body as plain text
ae context oidc-auth:2:1         # composed context: epic → parent → siblings → self
ae task:records oidc-auth        # full subtree journal (agent + system records)
ae task:records oidc-auth:2 self # only records attached to this exact task
ae task:next oidc-auth           # what would `epic-work` pick up next?
Cleaning up
ae rm oidc-auth                # remove a specific epic
ae purge                       # remove all terminal epics (all leaves done/abandoned)

Human command reference

These are the commands intended for interactive human use. They pretty-print their output. The task:* family used by the skills returns JSON and is documented in DESIGN.md.

ae epics

List all epics with their derived status (computed from the status of their leaves).

ae show <id>

Print a task's body as plain text. Works for any task — epic root, branch, or leaf. Branch bodies are frozen snapshots from before the split.

ae context <id>

Print the composed context for a task: epic context, then each ancestor's context, then terminal siblings' contexts, then the task's own context — each under its own # <id> — context header. Empty pieces are omitted.

ae rm <epic>

Delete an epic. Takes the epic root id. The .db file is removed.

ae purge

Remove every epic whose derived status is terminal (all leaves done or abandoned). Use this to clean up after finished work.

Getting help
ae help

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL