From Ottonomous
Takes a product idea and builds it end-to-end: writes a spec, generates tasks, implements each with subagents, tests, reviews, and verifies changes. Use for autonomous greenfield development.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ottonomous:ottoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Product Idea:** $ARGUMENTS
Product Idea: $ARGUMENTS
All skills are invoked via subagents.
When a skill asks questions or requests confirmation:
| Phase | Action | Verify | Agents |
|---|---|---|---|
init | Create session, branch | state.json exists | - |
spec | spec skill with {product_idea} | spec file exists | - |
task | task skill with {spec_name_or_id} | tasks file exists | - |
session:{id}:implement | next skill (session) | session status is done | frontend-developer, backend-architect per task type |
session:{id}:test | test skill (write staged) | tests pass | - |
session:{id}:verify | test skill (all) plus project-specific harness | objective criteria pass or are marked HUMAN | project-specific validators |
session:{id}:review | review skill (staged) | review complete | architect-reviewer, senior-code-reviewer per change type |
session:{id}:fix | review skill (fix P0-P1) | P0/P1 fixed (if any) | - |
build | npm run build | exit 0 | - |
test | test skill (all) | tests pass | - |
verify | test skill (all) plus project-specific harness | objective criteria pass or are marked HUMAN | project-specific validators |
review | review skill (branch) | review complete | architect-reviewer, senior-code-reviewer per change type |
review:fix | review skill (fix P0-P1) | P0/P1 fixed (if any) | - |
summary | summary skill | HTML created | - |
Before each phase (except init): verify git branch --show-current matches otto/${session_id}. If not, git checkout otto/${session_id}.
Create session:
session_id="otto-$(date +%Y%m%d-%H%M%S)-$(openssl rand -hex 2)"
mkdir -p .otto/otto/sessions/${session_id}
Initialize state.json:
{
"session_id": "{session_id}",
"status": "in_progress",
"product_idea": "{product_idea}",
"spec_id": null,
"current_phase": "init",
"current_session_id": null,
"sessions": { "total": 0, "completed": 0 }
}
Create feature branch:
git checkout -b otto/${session_id}
Update current_phase → spec
Invoke the spec skill with {product_idea}
Verify: .otto/specs/{id}.md exists. If not, retry.
After verification:
spec_id in state.jsoncurrent_phase → taskInvoke the task skill with {spec_name_or_id}
Verify: .otto/tasks/{spec_id}.json exists with sessions array. If not, retry.
Update sessions.total in state.json.
Invoke the next skill (session status)
Returns the next session id without implementing.
If no unblocked sessions and all are "done": proceed to Phase: build. If no unblocked sessions but some blocked: report "{n} sessions blocked."
After the next skill (session status) returns:
current_session_id → {id}current_phase → session:{id}:implementInvoke the next skill (session)
Subagent implements tasks using specialized agents:
frontend-developerbackend-architect(Subagent implements all tasks in the session, updating each task status as it goes)
Update current_phase → session:{id}:test
Invoke the test skill (write staged)
Update current_phase → session:{id}:verify
Run the test skill (all), then execute automatable checks using the project-specific harness.
The legacy standalone verification skill has been removed. Use the test skill (browser or electron), the host environment's available browser automation tool, or the app's own validation harness. For Moss desktop UI, use the repo-local moss-ui workflow skill. Mark subjective or non-automatable checks as HUMAN with a reason.
Hard gate for objective automated checks — loops (diagnose → fix → rebuild → re-check) until failures pass.
Update current_phase → session:{id}:review
Invoke the review skill (staged) (creates fix plan)
Uses specialized reviewers based on change type:
architect-reviewersenior-code-reviewerIf review finds P0/P1 issues:
current_phase → session:{id}:fixOtherwise:
sessions.completedInvoke the review skill (fix P0-P1) (implements P0/P1 fixes)
sessions.completedcurrent_phase → buildCheckpoint commit every 2 sessions:
git add -A && git commit -m "otto: checkpoint - {completed}/{total} sessions"
log_file=".otto/otto/sessions/${session_id}/build.log"
npm run build > >(tee "$log_file") 2>&1
Verify: Build exits 0. If not, fix issues and retry.
Update current_phase → test
Invoke the test skill (all)
Update current_phase → verify
Run the test skill (all), then execute automatable checks using the project-specific harness.
The legacy standalone verification skill has been removed. Use the test skill (browser or electron), the host environment's available browser automation tool, or the app's own validation harness. For Moss desktop UI, use the repo-local moss-ui workflow skill. Objective automated failures are hard gates; subjective/non-automatable checks must be marked HUMAN for manual QA.
Update current_phase → review
Invoke the review skill (branch) (creates fix plan)
If review finds P0/P1 issues:
current_phase → review:fixOtherwise:
current_phase → summaryInvoke the review skill (fix P0-P1) (implements P0/P1 fixes)
Final commit:
git add -A && git commit -m "otto: complete - {completed}/{total} sessions"
Update current_phase → summary
Invoke the summary skill
Set status → completed
Open the generated summary in the default browser:
open .otto/summaries/{branch}-{date}.html
Announce:
Session complete!
- Sessions: {completed}/{total}
- Branch: otto/{session_id}
- Summary: .otto/summaries/{branch}-{date}.html
When otto is invoked, check for existing session:
.otto/otto/sessions/ for state.json with status: "in_progress"current_phase and current_session_idotto/${session_id}. If on wrong branch, switch: git checkout otto/${session_id}current_phasenpx claudepluginhub brsbl/ottonomous --plugin ottonomousGuides non-technical users from a raw idea to a launched project with an interactive kickoff, autonomous build loop, and built-in security/privacy validation.
Orchestrates autonomous end-to-end project building from a description via CodeClaw pipeline: ideas, tasks, releases, implementation, docs, and social announcements.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.