From ottonomous
Generates parallelizable task lists from approved specs, breaking them into atomic, prioritized tasks with dependencies. Lists existing tasks or creates new ones via /task <spec> for implementation breakdowns and work plans.
npx claudepluginhub brsbl/ottonomous --plugin ottonomousThis skill uses the workspace's default tool permissions.
**Argument:** $ARGUMENTS
Generates Claude Code native tasks from specification files. Decomposes features into atomic implementation tasks with dependencies, metadata, and acceptance criteria.
Generates phased, dependency-ordered tasks from specifications with parallelization opportunities and tech-stack patterns for systematic feature implementation.
Decomposes specs into ordered, verifiable tasks with acceptance criteria using vertical slicing and dependency graphs. Use for large tasks, scope estimation, or parallel agent work.
Share bugs, ideas, or general feedback.
Argument: $ARGUMENTS
| Command | Behavior |
|---|---|
/task list | List all task files with spec, sessions, tasks, progress |
/task {spec-name-or-id} | Generate tasks from approved spec |
If $ARGUMENTS is list:
.otto/tasks/*.jsonspec_path to get the name from frontmatter)| Name | ID | Sessions | Tasks | Progress |
|------|-----|----------|-------|----------|
| Design Skill | design-skill-a1b2 | 3 | 12 | 4/12 (33%) |
/task <spec-name> to generate."Usage: /task <spec-name-or-id>
.otto/specs/$ARGUMENTS.md (exact ID match).otto/specs/*.md and read frontmatter of each:
name field (case-insensitive substring)AskUserQuestion to disambiguate, showing name and ID for each/spec list to see available specs."Each task should be an atomic unit of work:
depends_on when task truly cannot start without anotherResolve the spec argument (see Resolve Spec Argument above), then read the spec file.
If not found after resolution, list available specs:
ls .otto/specs/*.md 2>/dev/null
If spec status is not "approved", report: "Spec has status '{status}'. Only approved specs can generate tasks."
Break spec into discrete, implementable tasks following the design principles above.
Assign priorities:
Assign task type:
frontend - UI components, styling, client-side state, React/Vue/etc., browser APIsbackend - APIs, database, server logic, authentication, infrastructureGroup related tasks into sessions — units of work that can be completed in one agent session.
Grouping criteria:
Session sizing: 2-5 tasks per session (minimum 1)
Session dependencies:
Write to .otto/tasks/{spec-id}.json:
{
"spec_id": "{spec-id}",
"spec_path": ".otto/specs/{spec-id}.md",
"sessions": [
{
"id": "S1",
"title": "Session title",
"status": "pending",
"priority": 0,
"depends_on": [],
"task_ids": ["1", "2"]
}
],
"tasks": [
{
"id": "1",
"title": "Task title",
"description": "Success: [done condition]. Files: [paths]. Scope: [estimate]",
"status": "pending",
"priority": 1,
"type": "frontend | backend",
"depends_on": [],
"session_id": "S1"
}
]
}
Launch principal-engineer subagent with Task tool (forked context):
Review Criteria:
Finding format (P0 = critical, P1 = important, P2 = minor):
### [P{0-2}] {title}
**Tasks:** {task IDs affected}
**Issue:** {what's wrong}
**Suggestion:** {split, merge, reorder, add dependency}
**Alternatives:** {if non-obvious, options}
Wait for review to complete.
If no findings, skip to step 6.
For each finding (highest priority first):
AskUserQuestion with "Accept", "Reject", "Modify"AskUserQuestion with the optionsAfter processing all findings, continue to step 6.
Show sessions with nested task tables:
Proposed sessions for {spec-name}:
## Session S1: {session-title} (P{priority})
| ID | Title | Type | Priority | Depends On |
|----|-------|------|----------|------------|
| 1 | Setup project | backend | P0 | - |
| 2 | Core types | backend | P0 | 1 |
## Session S2: {session-title} (P{priority}, depends on S1)
| ID | Title | Type | Priority | Depends On |
|----|-------|------|----------|------------|
| 3 | Core feature | frontend | P1 | 2 |
| 4 | Feature tests | frontend | P1 | 3 |
Note parallelism:
Use AskUserQuestion with options:
Revise until approved.
Report: "Created {n} tasks in {m} sessions for {spec-name}"
Offer to start:
"Run
/nextto implement the first session, or/next batchto run all unblocked sessions in parallel."