From agn
Define a work unit at any tier — product, epic, feature, or task. Invoke with /agn:define <level>. Produces vision/spec/requirements (product), an epic + linked features (epic), a feature + linked tasks (feature), or a single task/bug ticket (task).
How this skill is triggered — by the user, by Claude, or both
Slash command
/agn:define product | epic | feature | task [title|kind]product | epic | feature | task [title|kind]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Position | Variable | Value |
/agn:define <level>)| Position | Variable | Value |
|---|---|---|
$0 | level | product, epic, feature, or task |
$1+ | hints | Optional title or, for task, kind (task | bug) |
If $0 is missing, stop and ask:
"What level — product, epic, feature, or task?"
If $0 is not one of product, epic, feature, task, stop and list the valid set.
Read $0. Run exactly one of the four workflows below.
docs/ and initial documents if they do not exist.docs/vision.md, docs/spec.md, and docs/requirements.md are the baseline; produce additions/amendments so the product (including the new feature) is fully described — no separate "feature-only" docs.| Artifact | Path |
|---|---|
| Vision | docs/vision.md |
| Specification (product-level, cross-cutting) | docs/spec.md |
| Requirements (product-level, cross-cutting) | docs/requirements.md |
The docs/spec.md and docs/requirements.md produced here are product-level documents — they describe the product as a whole. Feature-scoped specs follow a different convention and live under docs/<area>/.../-spec.md.
Vision — Interview the user (problem, users, capabilities). Draft a one-page docs/vision.md. Iterate until the user is satisfied with the direction.
Specification — Using the approved vision plus any references (products, docs, domain notes), draft docs/spec.md: functionality, user flows, interactions. Iterate.
Requirements — Draft docs/requirements.md to formalize and disambiguate the spec. Iterate.
Validation — Run two rubrics and produce a short validation report:
Consistency — If any document changes, check downstream docs in the chain: vision → spec → requirements. State explicitly what you updated and why.
Gate — Do not treat the stage as complete until the user explicitly approves moving to /agn:design product.
Discipline: Do not silently skip validation. Do not proceed to architecture without user approval to leave this stage.
Collaborate with the user to define an epic — a named functional block larger than a feature — and the set of features needed to deliver it. Produce:
tasks/epics/YYYYMMDD_<slug>.md holding the functional-block-level plan.tasks/features/, each stamped with epic: <slug>.This branch is requirements + decomposition only. Do not implement. Do not propose code-level designs. Capture WHAT and WHY at functional-block level; leave HOW to /agn:define feature and /agn:implement feature for each feature, and /agn:implement task for each task within. See rules/first-principles.md (Planning Guidelines).
None strictly required. If the epic is architecture-sensitive, consider running /agn:design product first to produce docs/architecture.md. If the user is starting from vision/spec docs under docs/, read them before the dialog.
Create an epic when the work spans multiple features that share a coherent objective at the functional-block level. Examples: "AWS onboarding", "Authentication & authorization", "Cost ingestion pipeline".
Create a feature directly via /agn:define feature when the work fits inside a single coherent slice that produces tasks at one level of depth. Most product work is a feature, not an epic. Epics are for genuinely larger blocks where decomposition by feature adds clarity.
If unclear, ask the user.
Skip Risks and mitigations unless each risk has a named owner and a mitigation plan the team will track.
Slug format: [a-z][a-z0-9_]* — lowercase, underscores, stable over the epic's life. Reuse in branch names by convention.
Example: title "AWS onboarding" → slug aws_onboarding.
Confirm both with the user.
List the features in order, each with:
--epic <slug> flag) or defer until laterKeep features small enough that each is itself a coherent slice with its own tasks. Resist the temptation to design the implementation here.
Required sections:
## Problem statement## Objective## Scope## Acceptance criteria## Linked features — ordered list of feature titles or slugs that compose this epicDo not add ## Requirements to the epic file — those live in feature specs or docs/<area>/.../-spec.md. Do not add ## Risks and mitigations unless each risk has a named owner and active mitigation. Do not add ## Success metrics — fold testable measures into ## Acceptance criteria.
Write the epic first, then any feature files the user wants created now. taskman.sh new stamps each file with draft: true so they are visibly mid-creation until the user approves. Feature creation will fail if the epic does not exist yet.
cat <<'EOF' | ./scripts/taskman.sh new epic --slug <slug> --title "<title>"
# epic body here
EOF
cat <<'EOF' | ./scripts/taskman.sh new feature --slug <feature-slug> --title "<feature title>" --epic <epic-slug>
# feature body here
EOF
Collect the printed paths. Re-read each file from disk and present them to the user. Apply edits in place if requested.
On approval, finalize every draft (epic first, then features):
./scripts/taskman.sh finalize <epic-path>
./scripts/taskman.sh finalize <feature-path>
On rejection of any individual file, discard it:
./scripts/taskman.sh discard <path>
If the user rejects the epic outright, discard the epic and every feature created against it.
Report:
/agn:implement epic <epic-slug>" — or "Run /agn:define feature with --epic <epic-slug>" if features are still to be defined)Do not transition any feature out of backlog. That belongs to /agn:implement feature (or /agn:implement epic, which iterates features).
taskman.sh. Never write epic or feature files directly.taskman.sh finalize (per file) or taskman.sh discard (per file). Do not leave files with draft: true behind./agn:define feature instead.Collaborate with the user to define a feature — a named product initiative — and the set of tasks needed to deliver it. Produce:
tasks/features/YYYYMMDD_<slug>.md holding the plan.tasks/backlog/, each stamped with feature: <slug>.This branch is requirements + planning only. Do not implement. Do not propose code-level designs. Capture WHAT and WHY; leave HOW to /agn:implement feature / /agn:implement task. See rules/first-principles.md (Planning Guidelines).
None strictly required. If the feature is large and architecture-sensitive, consider running /agn:design product first to produce docs/architecture.md. If the user is starting from vision/spec docs under docs/, read them before the dialog. If the feature belongs to an existing epic, confirm the epic slug during the dialog and pass --epic <slug> when creating the feature.
Detailed requirements (R1, R2, …) belong in the spec, not the feature file. If the feature has no spec yet, agree with the user where it will live (docs/<area>/.../-spec.md) and note it in the feature body under a ## Linked spec heading.
Skip Risks and mitigations unless each risk has a named owner and a mitigation plan the team will track. Otherwise the section turns into noise.
./scripts/taskman.sh list epics.Slug format: [a-z][a-z0-9_]* — lowercase, underscores, stable over the feature's life. Reuse in branch names and worktree names by convention.
Example: title "Worktree-isolated dev stacks" → slug worktree_isolated_dev_stacks.
Confirm both with the user.
List the tasks in order, each with:
task or, rarely, bug for a known defect rolled into the feature)Keep tasks small enough that each is executable in a single focused session. Resist the temptation to design the implementation here — the task file states WHAT, not HOW.
For the feature file, compose:
## Problem statement## Objective## Acceptance criteria## Scope, ## Tasks (ordered), ## Linked specDo not add ## Requirements to the feature file — those live in the linked spec. Do not add ## Risks and mitigations unless each risk has a named owner and active mitigation. Do not add ## Success metrics — fold testable measures into ## Acceptance criteria.
For each task, compose:
## Problem statement## Scope## Acceptance criteria## Quality gatesThese section names are required — taskman.sh validates them on creation.
Write the feature first, then the tasks. taskman.sh new stamps each file with draft: true so they are visibly mid-creation until the user approves. Task creation will fail if the feature does not exist yet.
cat <<'EOF' | ./scripts/taskman.sh new feature --slug <slug> --title "<title>" [--epic <epic-slug>]
# feature body here
EOF
cat <<'EOF' | ./scripts/taskman.sh new task --title "<task title>" --feature <slug>
# task body here
EOF
Collect the printed paths. Re-read each file from disk and present them to the user. Apply edits in place if requested.
On approval, finalize every draft (feature first, then tasks):
./scripts/taskman.sh finalize <feature-path>
./scripts/taskman.sh finalize <task-path>
On rejection of any individual file, discard it:
./scripts/taskman.sh discard <path>
If the user rejects the feature outright, discard the feature and every task created against it — orphaned tasks pointing at a missing feature should not be left behind.
Report:
/agn:implement feature <feature-slug>" or per-task implementation)Do not transition any task out of backlog/. That belongs to /agn:implement task or /agn:implement feature.
taskman.sh. Never write task files directly.taskman.sh finalize (per file) or taskman.sh discard (per file). Do not leave files with draft: true behind.If the feature needs a spec document (UI layout, field-by-field contract, API payload, etc.), place it under docs/<area>/[<subarea>/]<name>-spec.md. Group by product area, not by feature lifecycle. Example: docs/settings/integration/aws-onboarding-spec.md.
Feature files under tasks/features/ hold the plan (problem, objective, requirements). Feature specs under docs/<area>/... hold the implementation contract. Link one to the other.
/agn:define task # Claude will ask for the task kind
/agn:define task task # Development task
/agn:define task bug # Bug ticket
/agn:define task task <short title>
/agn:define task bug <short title>
If the task belongs to an existing feature, mention the feature slug during the dialog — it becomes feature: <slug> in the YAML header. If you don't know the slug, ask: "Does this task belong to a feature? If yes, which slug under tasks/features/?" A task without a feature is ad-hoc — perfectly valid.
Collaborate with the user to define a task with clear, non-ambiguous requirements that can be executed later — product-manager style, not implementation design.
This branch is requirements definition only:
taskman.sh)./agn:implement task.If $1 was not provided, ask:
"What kind — development task or bug ticket?"
Accept task / feature / dev as task; bug / defect / fix as bug.
Apply first-principles checks:
./scripts/taskman.sh list features.Iterate until the task is executable without guesswork.
Do not choose implementation approach here.
Required sections (validated by taskman.sh):
## Problem statement## Scope## Acceptance criteria## Quality gatesRecommended: ## Constraints and assumptions, ## Risks and rollback.
Write the task file directly. taskman.sh new stamps the YAML with draft: true so the file is clearly mid-creation until the user approves.
cat <<'EOF' | ./scripts/taskman.sh new task --title "<title>" [--feature <slug>]
# body with the required sections
EOF
Capture the printed path. Re-read the file from disk, show it to the user, confirm title / feature attachment / body. Offer edits — apply them by editing the file in place.
On approval, clear the draft marker:
./scripts/taskman.sh finalize <path>
On rejection, delete the draft:
./scripts/taskman.sh discard <path>
Report the final path to the user. Stop. User will run /agn:implement task <path> when ready.
What is broken, where, and what is the user/system impact?
Clear contrast between correct behaviour and current.
Minimal, numbered, reliable.
Environment, version, logs, screenshots, links.
Bugs can be attached to a feature (post-merge follow-up) or left ad-hoc. Ask.
Same required sections as a task — ## Problem statement, ## Scope, ## Acceptance criteria, ## Quality gates. Fill each with bug-appropriate content:
cat <<'EOF' | ./scripts/taskman.sh new task --kind bug --title "<title>" [--feature <slug>]
# body
EOF
Re-read the file from disk and show the user. On approval run ./scripts/taskman.sh finalize <path>; on rejection run ./scripts/taskman.sh discard <path>. Report the final path, stop.
taskman.sh for any task/feature/epic persistence. Never write those files directly.taskman.sh finalize or taskman.sh discard for every draft. Do not leave files with draft: true behind./agn:implement.refactor, upgrade, chore), use the task branch; scope tightly.docs/<area>/.../-spec.md, reference the spec rather than restating its requirements. Spec sections drift if duplicated.npx claudepluginhub agenturehq/agenture-loopProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.