Get the FREE Ultimate OpenClaw Setup Guide →

otto

Use Caution
npx machina-cli add skill brsbl/ottonomous/otto --openclaw
Files (1)
SKILL.md
5.0 KB

Product Idea: $ARGUMENTS


Autonomous Behavior

All skills are invoked via subagents.

When a skill asks questions or requests confirmation:

  • Auto-select "(Recommended)" options
  • Auto-approve specs, plans, and confirmations

Phase Reference

PhaseActionVerifyAgents
initCreate session, branchstate.json exists-
spec/spec {product_idea}spec file exists-
task/task {spec_id}tasks file exists-
session:{id}:implement/next {id}session status is donefrontend-developer, backend-architect per task type
session:{id}:test/test write stagedtests pass-
session:{id}:review/review stagedreview completearchitect-reviewer, senior-code-reviewer per change type
session:{id}:fix/review fix P0-P1P0/P1 fixed (if any)-
buildnpm run buildexit 0-
test/test alltests pass-
review/review branchreview completearchitect-reviewer, senior-code-reviewer per change type
review:fix/review fix P0-P1P0/P1 fixed (if any)-
summary/summaryHTML created-

Workflow

Phase: init

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_phasespec


Phase: spec

Invoke /spec {product_idea}

Verify: .otto/specs/{id}.md exists. If not, retry.

After verification:

  • Update spec_id in state.json
  • Update current_phasetask

Phase: task

Invoke /task {spec_id}

Verify: .otto/tasks/{spec_id}.json exists with sessions array. If not, retry.

Update sessions.total in state.json.


Per-Session Loop

Invoke /next session (no other arguments)

Returns the next session id without implementing.

After /next session returns:

  • Update current_session_id{id}
  • Update current_phasesession:{id}:implement

Phase: session:{id}:implement

Invoke /next {session-id}

Subagent implements tasks using specialized agents:

  • Frontend tasks → frontend-developer
  • Backend tasks → backend-architect

(Subagent implements all tasks in the session, updating each task status as it goes)

Update current_phasesession:{id}:test

Phase: session:{id}:test

Invoke /test write staged

Update current_phasesession:{id}:review

Phase: session:{id}:review

Invoke /review staged (creates fix plan)

Uses specialized reviewers based on change type:

  • Architectural changes → architect-reviewer
  • Implementation changes → senior-code-reviewer

If review finds P0/P1 issues:

  • Update current_phasesession:{id}:fix

Otherwise:

  • Increment sessions.completed

Phase: session:{id}:fix

Invoke /review fix P0-P1 (implements P0/P1 fixes)

  • Increment sessions.completed
  • If more pending sessions: Return to Per-Session Loop
  • If no more sessions: Update current_phasebuild

Checkpoint commit every 2 sessions:

git add -A && git commit -m "otto: checkpoint - {completed}/{total} sessions"

Phase: build

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_phasetest


Phase: test

Invoke /test all

Update current_phasereview


Phase: review

Invoke /review branch (creates fix plan)

If review finds P0/P1 issues:

  • Update current_phasereview:fix

Otherwise:

  • Update current_phasesummary

Phase: review:fix

Invoke /review fix P0-P1 (implements P0/P1 fixes)

Final commit:

git add -A && git commit -m "otto: complete - {completed}/{total} sessions"

Update current_phasesummary


Phase: summary

Invoke /summary

Set statuscompleted

Announce:

Session complete!
- Sessions: {completed}/{total}
- Branch: otto/{session_id}
- Summary: .otto/summaries/{branch}-{date}.html

Recovery

When /otto is invoked, check for existing session:

  1. Check .otto/otto/sessions/ for state.json with status: "in_progress"
  2. Read current_phase and current_session_id
  3. Offer to resume or start fresh
  4. If resuming, continue from current_phase

Source

git clone https://github.com/brsbl/ottonomous/blob/main/skills/otto/SKILL.mdView on GitHub

Overview

otto is an autonomous agent that takes a product idea and builds it end-to-end using subagents. It writes a product spec, generates tasks from the spec, implements each task while testing and reviewing changes, and performs final verification across a phase-driven workflow. Use it when you want to build something from scratch.

How This Skill Works

All work is performed by subagents and follows a phase-driven workflow: init creates a session and branch, spec generates a spec from the product idea, task generates tasks from that spec, and the per-session loop uses implement, test, review, and fix with specialized agents (frontend-developer for frontend tasks, backend-architect for backend tasks; architect-reviewer and senior-code-reviewer handle reviews). The system auto-selects recommended options when asking questions and auto-approves specs, plans, and confirmations to keep momentum, with checkpoint commits every two sessions and a final build and summary.

When to Use It

  • When you have a new product idea and want an automated, end-to-end build without manual task management.
  • When you need a rapid prototype with a formalized spec and task breakdown.
  • When frontend and backend work must be coordinated across multiple sessions.
  • When you want automated testing, review, and fixes with specialized reviewers.
  • When you prefer a traceable, phase-driven pipeline from idea to final verification.

Quick Start

  1. Step 1: Define your product idea and start the Otto session (init) to create a branch.
  2. Step 2: Invoke /spec {product_idea} to generate the spec, then /task {spec_id} to create tasks.
  3. Step 3: Run the per-session loop: /next session, /next {id}:implement, /test write staged, /review staged, (optional) /review fix P0-P1, then proceed to build and summary.

Best Practices

  • Provide a clear product idea and ensure the state.json reflects the current progress.
  • Keep specs and tasks organized under .otto/specs and .otto/tasks and verify their existence at each phase.
  • Let the per-session loop drive implementation, testing, review, and fixes in order.
  • Use the appropriate reviewers for changes (architect-reviewer for architectural changes, senior-code-reviewer for implementation changes).
  • Use checkpoint commits every 2 sessions to capture progress and enable rollback if needed.

Example Use Cases

  • Prototype a note-taking app end-to-end, from idea to build and verification.
  • Create an automated data ingestion pipeline with a frontend dashboard and backend processing.
  • Develop a full e-commerce checkout flow with UI, backend services, and end-to-end tests.
  • Build an internal admin dashboard for user management and analytics.
  • Generate a microservice from a spec and validate it with end-to-end tests and reviews.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers