mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
1657 lines
58 KiB
Markdown
1657 lines
58 KiB
Markdown
# RoboCo & Codepanion: Strategic Summary
|
||
|
||
**Date:** December 23, 2024
|
||
**Context:** Strategic planning session covering architecture analysis, monetization, product strategy, company formation, open source strategy, platform evolution, and organizational workflow.
|
||
|
||
---
|
||
|
||
## Table of Contents
|
||
|
||
1. [RoboCo Architecture Deep Dive](#1-roboco-architecture-deep-dive)
|
||
2. [What Makes RoboCo Valuable](#2-what-makes-roboco-valuable)
|
||
3. [Monetization Strategy](#3-monetization-strategy)
|
||
4. [Target Market Analysis](#4-target-market-analysis)
|
||
5. [Product Split: RoboCo vs Codepanion](#5-product-split-roboco-vs-codepanion)
|
||
6. [Open Source Strategy](#6-open-source-strategy)
|
||
7. [Platform Architecture Options](#7-platform-architecture-options)
|
||
8. [API-First Architecture Initiative](#8-api-first-architecture-initiative)
|
||
9. [Organizational Workflow](#9-organizational-workflow)
|
||
10. [Codepanion Technical Specification](#10-codepanion-technical-specification)
|
||
11. [Company Formation Options](#11-company-formation-options)
|
||
12. [Go-to-Market Strategy](#12-go-to-market-strategy)
|
||
13. [Honest Assessment](#13-honest-assessment)
|
||
14. [Next Steps & Action Items](#14-next-steps--action-items)
|
||
|
||
---
|
||
|
||
## 1. RoboCo Architecture Deep Dive
|
||
|
||
### 1.1 Core Identity
|
||
|
||
RoboCo is **not** a RAG system or simple multi-agent chatbot. It is a **full AI workforce orchestration platform** — a complete implementation of an autonomous AI development team with hierarchy, workflow management, quality gates, and persistent state.
|
||
|
||
### 1.2 Technical Stack
|
||
|
||
| Layer | Technology |
|
||
|-------|------------|
|
||
| **Backend** | FastAPI (Python) |
|
||
| **Database** | PostgreSQL with SQLAlchemy ORM |
|
||
| **Agent Runtime** | Docker containers running Claude Code |
|
||
| **Agent Communication** | MCP (Model Context Protocol) servers |
|
||
| **Frontend** | Next.js 14 with TypeScript |
|
||
| **State Management** | Zustand |
|
||
| **Styling** | Tailwind CSS + shadcn/ui |
|
||
|
||
### 1.3 Agent Architecture
|
||
|
||
#### Agent Hierarchy
|
||
|
||
```
|
||
┌──────────────────────────────────────────────────────────────┐
|
||
│ BOARD │
|
||
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │
|
||
│ │Product Owner│ │Head Marketing│ │ Auditor │ │
|
||
│ └─────────────┘ └──────────────┘ └─────────────┘ │
|
||
└──────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────────────────────────────┐
|
||
│ MAIN PM │
|
||
│ Coordinates across all cells │
|
||
└──────────────────────────────────────────────────────────────┘
|
||
│
|
||
┌───────────────────┼───────────────────┐
|
||
▼ ▼ ▼
|
||
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
|
||
│ BACKEND CELL │ │ FRONTEND CELL │ │ UX/UI CELL │
|
||
├───────────────┤ ├───────────────┤ ├───────────────┤
|
||
│ be-pm │ │ fe-pm │ │ ux-pm │
|
||
│ be-dev-1 │ │ fe-dev-1 │ │ ux-dev │
|
||
│ be-dev-2 │ │ fe-dev-2 │ │ ux-qa │
|
||
│ be-qa │ │ fe-qa │ │ ux-doc │
|
||
│ be-doc │ │ fe-doc │ │ │
|
||
└───────────────┘ └───────────────┘ └───────────────┘
|
||
```
|
||
|
||
#### Agent Roles (from `models/base.py`)
|
||
|
||
| Role | Enum Value | Description |
|
||
|------|------------|-------------|
|
||
| `SYSTEM` | `system` | Internal orchestrator operations |
|
||
| `CEO` | `ceo` | Executive oversight |
|
||
| `PRODUCT_OWNER` | `product_owner` | Product strategy and approval |
|
||
| `HEAD_MARKETING` | `head_marketing` | Marketing tasks |
|
||
| `AUDITOR` | `auditor` | Quality oversight, read access to all (the "spy") |
|
||
| `MAIN_PM` | `main_pm` | Cross-cell coordination |
|
||
| `CELL_PM` | `cell_pm` | Cell-level task management |
|
||
| `DEVELOPER` | `developer` | Code execution |
|
||
| `QA` | `qa` | Quality assurance |
|
||
| `DOCUMENTER` | `documenter` | Documentation |
|
||
|
||
### 1.4 Task Lifecycle
|
||
|
||
#### Status Flow (from `models/base.py`)
|
||
|
||
```
|
||
BACKLOG ──► PENDING ──► CLAIMED ──► IN_PROGRESS ───┬──► BLOCKED
|
||
│ │
|
||
│ ▼
|
||
│ (PM resolves)
|
||
│ │
|
||
◄───────┘
|
||
│
|
||
▼
|
||
AWAITING_QA
|
||
│
|
||
┌──────────────┴──────────────┐
|
||
▼ ▼
|
||
NEEDS_REVISION (QA passes)
|
||
│ │
|
||
└──────► IN_PROGRESS ▼
|
||
AWAITING_DOCUMENTATION
|
||
│
|
||
▼
|
||
AWAITING_PM_REVIEW
|
||
│
|
||
▼
|
||
COMPLETED
|
||
```
|
||
|
||
#### Task Statuses Explained
|
||
|
||
| Status | Description |
|
||
|--------|-------------|
|
||
| `BACKLOG` | PM setup phase, session must be created before activation |
|
||
| `PENDING` | Ready for work, orchestrator can spawn agents |
|
||
| `CLAIMED` | Agent has claimed the task |
|
||
| `IN_PROGRESS` | Active development |
|
||
| `BLOCKED` | Waiting on external dependency or decision |
|
||
| `PAUSED` | Temporarily halted |
|
||
| `VERIFYING` | Self-verification in progress |
|
||
| `NEEDS_REVISION` | QA rejected, needs fixes |
|
||
| `AWAITING_QA` | Ready for QA review |
|
||
| `AWAITING_DOCUMENTATION` | QA passed, needs docs |
|
||
| `AWAITING_PM_REVIEW` | Docs complete, needs PM sign-off |
|
||
| `COMPLETED` | Fully done |
|
||
| `CANCELLED` | Abandoned |
|
||
|
||
### 1.5 Orchestrator System (`runtime/orchestrator.py`)
|
||
|
||
The orchestrator is the **brain** of the system. Key characteristics:
|
||
|
||
#### Smart Spawning
|
||
- **Checks for work BEFORE spawning agents** (cost-efficient)
|
||
- Claims tasks on behalf of agents before spawning
|
||
- Agents receive assignment at spawn time
|
||
- No wasteful container spawns
|
||
|
||
#### Docker-Based Runtime
|
||
```python
|
||
AGENT_IMAGE = "roboco-agent"
|
||
AGENT_NETWORK = "roboco_default"
|
||
```
|
||
|
||
Each agent runs as an isolated Docker container with:
|
||
- Claude Code as the runtime
|
||
- MCP config for tool access
|
||
- Blueprint (system prompt) mounted
|
||
- Shared Claude auth
|
||
|
||
#### Agent States (from `models/runtime.py`)
|
||
|
||
| State | Description |
|
||
|-------|-------------|
|
||
| `IDLE` | Not running |
|
||
| `STARTING` | Container spinning up |
|
||
| `ACTIVE` | Working on task |
|
||
| `WAITING_SHORT` | Brief pause (within container) |
|
||
| `WAITING_LONG` | Terminated, will respawn when condition resolves |
|
||
| `STOPPING` | Graceful shutdown in progress |
|
||
| `OFFLINE` | Container stopped |
|
||
| `ERROR` | Failed state |
|
||
|
||
#### Task Routing Intelligence
|
||
|
||
The orchestrator classifies tasks based on complexity and keywords:
|
||
|
||
```python
|
||
# Board-level keywords
|
||
_BOARD_KEYWORDS = {"roadmap", "architecture", "security", "budget",
|
||
"hiring", "strategy", "vision", "milestone",
|
||
"release", "launch"}
|
||
|
||
# PM coordination keywords
|
||
_PM_KEYWORDS = {"coordinate", "integration", "cross-team", "sync",
|
||
"planning", "milestone", "dependencies", "review"}
|
||
```
|
||
|
||
Routing decision tree:
|
||
1. **Board keywords** → `product-owner`
|
||
2. **High complexity or cross-team** → `main-pm`
|
||
3. **PM keywords or medium complexity** → Cell PM
|
||
4. **Low complexity, single team** → Direct to developer
|
||
|
||
#### Dispatcher Loop
|
||
|
||
The orchestrator runs background dispatchers every 30 seconds:
|
||
|
||
1. `_dispatch_pm_work()` — Routes new tasks to appropriate level
|
||
2. `_dispatch_pm_closure_work()` — Checks parent tasks ready to close
|
||
3. `_dispatch_dev_work()` — Spawns devs for assigned tasks
|
||
4. `_dispatch_qa_work()` — Spawns QA for awaiting_qa tasks
|
||
5. `_dispatch_doc_work()` — Spawns documenters
|
||
6. `_dispatch_pm_review_work()` — Spawns PMs for final review
|
||
7. `_dispatch_marketing_work()` — Handles marketing tasks
|
||
8. `_dispatch_blocker_work()` — Handles blocked tasks
|
||
9. `_dispatch_escalation_work()` — Handles escalations
|
||
10. `_dispatch_approval_work()` — Handles approval requests
|
||
11. `_dispatch_audit_work()` — Triggers auditor when needed
|
||
|
||
### 1.6 MCP Tool System
|
||
|
||
Each agent gets access to 4 MCP servers:
|
||
|
||
#### roboco-task (`mcp/task_server.py`)
|
||
- `roboco_task_scan()` — Find available work
|
||
- `roboco_task_get(task_id)` — Get task details
|
||
- `roboco_task_claim(task_id)` — Claim a task
|
||
- `roboco_task_start(task_id)` — Begin work
|
||
- `roboco_task_plan(task_id, ...)` — Create execution plan
|
||
- `roboco_task_progress(task_id, %, msg)` — Report progress
|
||
- `roboco_task_checkpoint(task_id, ...)` — Save checkpoint
|
||
- `roboco_task_block(task_id, reason)` — Mark blocked
|
||
- `roboco_task_unblock(task_id)` — Remove block
|
||
- `roboco_task_complete(task_id)` — Mark complete
|
||
- `roboco_task_create(...)` — Create subtask
|
||
- `roboco_task_qa_pass(task_id)` — QA approval
|
||
- `roboco_task_qa_fail(task_id, notes)` — QA rejection
|
||
- `roboco_task_docs_complete(task_id)` — Documentation done
|
||
- `roboco_agent_idle()` — Signal no more work
|
||
|
||
#### roboco-message (`mcp/message_server.py`)
|
||
- `roboco_message_send(channel, content, type)` — Send message
|
||
- `roboco_message_read(channel, limit)` — Read channel history
|
||
- `roboco_message_reply(message_id, content)` — Reply to message
|
||
|
||
#### roboco-notify (`mcp/notify_server.py`)
|
||
- `roboco_notify_send(to, subject, body, priority)` — Send notification
|
||
- `roboco_notify_ack(notification_id)` — Acknowledge
|
||
- `roboco_escalate(to, subject, body)` — Escalate issue
|
||
|
||
#### roboco-journal (`mcp/journal_server.py`)
|
||
- `roboco_journal_entry(type, title, content)` — Add journal entry
|
||
- `roboco_journal_decision(...)` — Log decision
|
||
- `roboco_journal_learning(...)` — Log learning
|
||
- `roboco_journal_struggle(...)` — Log struggle
|
||
|
||
### 1.7 Communication System
|
||
|
||
#### Hierarchy
|
||
|
||
```
|
||
Channel (e.g., "backend-cell")
|
||
└── Group (e.g., "general", "code-review")
|
||
└── Session (scoped discussion)
|
||
└── Messages
|
||
```
|
||
|
||
#### Channel Types (from `models/base.py`)
|
||
|
||
| Type | Description |
|
||
|------|-------------|
|
||
| `CELL` | Internal team communication |
|
||
| `CROSS_CELL` | Coordination between teams |
|
||
| `MANAGEMENT` | PM and board communications |
|
||
| `SPECIAL` | Announcements, all-hands |
|
||
|
||
#### Message Types
|
||
|
||
| Type | Description |
|
||
|------|-------------|
|
||
| `REASONING` | Agent's internal thought process |
|
||
| `DIALOGUE` | Normal conversation |
|
||
| `DECISION` | Decision announcement |
|
||
| `ACTION` | Action taken |
|
||
| `BLOCKER` | Blocker announcement |
|
||
| `TECHNICAL` | Technical discussion |
|
||
|
||
#### Session Scopes
|
||
|
||
| Scope | Description |
|
||
|-------|-------------|
|
||
| `INITIATIVE` | High-level initiative discussion |
|
||
| `CELL` | Cell-wide discussion |
|
||
| `TASK` | Task-specific discussion |
|
||
|
||
### 1.8 Database Schema
|
||
|
||
#### Core Tables (from `db/tables.py`)
|
||
|
||
| Table | Purpose |
|
||
|-------|---------|
|
||
| `agents` | Agent definitions and state |
|
||
| `tasks` | Task records with full lifecycle |
|
||
| `channels` | Communication channels |
|
||
| `groups` | Channel subdivisions |
|
||
| `sessions` | Scoped discussions |
|
||
| `session_tasks` | Many-to-many session↔task links |
|
||
| `messages` | All messages |
|
||
| `notifications` | Formal notifications |
|
||
| `journals` | Agent journals |
|
||
| `journal_entries` | Individual journal entries |
|
||
| `handoffs` | Documentation handoffs |
|
||
|
||
#### Key Relationships
|
||
|
||
- **Task → Parent Task**: Subtask hierarchy
|
||
- **Task → Agent (created_by)**: Who created it
|
||
- **Task → Agent (assigned_to)**: Who's working on it
|
||
- **Session ↔ Task**: Many-to-many via `session_tasks`
|
||
- **Message → Session**: Messages belong to sessions
|
||
- **Journal → Agent**: One journal per agent
|
||
- **Handoff → Task**: One handoff per completed task
|
||
|
||
### 1.9 Frontend Structure (`roboco-panel/`)
|
||
|
||
```
|
||
src/
|
||
├── app/
|
||
│ ├── (dashboard)/
|
||
│ │ ├── agents/ # Agent management
|
||
│ │ ├── auditor/ # Auditor dashboard
|
||
│ │ ├── communications/ # Channels & messages
|
||
│ │ ├── journals/ # Agent journals
|
||
│ │ ├── kanban/ # Task boards
|
||
│ │ ├── metrics/ # System metrics
|
||
│ │ ├── notifications/ # Notification center
|
||
│ │ ├── overview/ # Dashboard home
|
||
│ │ ├── settings/ # Configuration
|
||
│ │ └── tasks/ # Task management
|
||
│ └── layout.tsx
|
||
├── components/
|
||
│ ├── agents/ # Agent-related components
|
||
│ ├── auditor/ # Auditor components
|
||
│ ├── communications/ # Chat/messaging components
|
||
│ ├── dashboard/ # Dashboard widgets
|
||
│ ├── journals/ # Journal components
|
||
│ ├── kanban/ # Kanban board components
|
||
│ │ ├── core/ # Board, column, card
|
||
│ │ ├── shared/ # Shared utilities
|
||
│ │ └── views/ # Different board views
|
||
│ ├── layout/ # Layout components
|
||
│ ├── notifications/ # Notification components
|
||
│ ├── tasks/ # Task components
|
||
│ └── ui/ # shadcn/ui components
|
||
├── hooks/ # React hooks
|
||
├── lib/ # Utilities
|
||
├── store/ # Zustand stores
|
||
│ ├── notifications-store.ts
|
||
│ └── ui-store.ts
|
||
└── types/
|
||
└── index.ts # TypeScript types matching backend
|
||
```
|
||
|
||
---
|
||
|
||
## 2. What Makes RoboCo Valuable
|
||
|
||
### 2.1 Differentiators from Simple Multi-Agent Systems
|
||
|
||
| Feature | RoboCo | Typical Multi-Agent |
|
||
|---------|--------|---------------------|
|
||
| **Task Lifecycle** | Full workflow management | Ad-hoc execution |
|
||
| **Quality Gates** | QA → Docs → PM Review | None or optional |
|
||
| **Hierarchy** | Real org structure | Flat or undefined |
|
||
| **Cost Efficiency** | On-demand spawning | Always running |
|
||
| **State Persistence** | Full DB-backed state | In-memory or none |
|
||
| **Waiting States** | Hibernate and respawn | Block or fail |
|
||
| **Audit Trail** | Complete history | Limited or none |
|
||
| **Tool Access Control** | MCP with permissions | Unrestricted |
|
||
|
||
### 2.2 Differentiators from RAG Systems
|
||
|
||
| Feature | RoboCo | RAG Systems |
|
||
|---------|--------|-------------|
|
||
| **Purpose** | Task execution | Information retrieval |
|
||
| **Agents** | 18 specialized roles | Single retriever |
|
||
| **Workflow** | Full task lifecycle | Query → Response |
|
||
| **State** | Persistent across sessions | Stateless |
|
||
| **Quality** | Built-in QA/review | None |
|
||
| **Output** | Code, docs, artifacts | Text responses |
|
||
|
||
### 2.3 Core Value Propositions
|
||
|
||
1. **Workflow Orchestration** — Not just "agents chat", but actual task lifecycle management
|
||
2. **Quality Gates** — QA review happens automatically, not when you remember
|
||
3. **Context Persistence** — Sessions, journals, handoffs preserve knowledge
|
||
4. **Coordination** — When one agent finishes, the next picks up automatically
|
||
5. **Cost Efficiency** — On-demand spawning, waiting state hibernation
|
||
6. **Accountability** — Full audit trail, decision logging, progress tracking
|
||
|
||
---
|
||
|
||
## 3. Monetization Strategy
|
||
|
||
### 3.1 Monetization Paths Considered
|
||
|
||
| Path | Description | Pros | Cons |
|
||
|------|-------------|------|------|
|
||
| **Platform/SaaS** | Companies deploy their own AI workforce | Recurring revenue, scalable | Long sales cycle |
|
||
| **Managed Service** | You run the agents, customers submit projects | Higher margin, more control | Requires operations |
|
||
| **Open Core + Enterprise** | Open source core, sell enterprise features | Builds community fast | Revenue delayed |
|
||
| **API/Infrastructure** | Orchestration-as-a-Service | Platform play | Commoditization risk |
|
||
|
||
### 3.2 Target Market Decision
|
||
|
||
**Chosen path:** Prosumer/indie dev market (like Cursor, Claude Pro, Replit)
|
||
|
||
**Rationale:**
|
||
- Lower friction than enterprise
|
||
- Direct distribution (no sales team needed)
|
||
- Fast iteration based on feedback
|
||
- Personal pain point (solo dev experience)
|
||
|
||
---
|
||
|
||
## 4. Target Market Analysis
|
||
|
||
### 4.1 The Solo Founder Pain Point
|
||
|
||
When you're alone (or 2 people), constant context-switching:
|
||
|
||
| Hat | Activity | Time Spent | Quality |
|
||
|-----|----------|------------|---------|
|
||
| **PM** | Prioritization, planning | 10% | Rushed |
|
||
| **Dev** | Writing code | 60% | Good |
|
||
| **QA** | Testing | 10% | Skipped often |
|
||
| **Docs** | Documentation | 5% | Neglected |
|
||
| **Review** | Code review | 0% | None (no one to review) |
|
||
|
||
**The problem:** Some hats get neglected (usually QA and docs)
|
||
|
||
### 4.2 Two Product Modes
|
||
|
||
| Mode | Description | Trust Required | Value |
|
||
|------|-------------|----------------|-------|
|
||
| **Mode A: Autonomous** | Agents DO the work | High | High |
|
||
| **Mode B: Collaborative** | Agents ASSIST your work | Low | Medium-High |
|
||
|
||
Mode A = Current RoboCo implementation
|
||
Mode B = Codepanion opportunity
|
||
|
||
---
|
||
|
||
## 5. Product Split: RoboCo vs Codepanion
|
||
|
||
### 5.1 RoboCo — "Your AI Development Team"
|
||
|
||
**Positioning:** Autonomous execution. You describe, they build.
|
||
|
||
**Core Features:**
|
||
- Full agent hierarchy (PM → Dev → QA → Doc)
|
||
- Task lifecycle management
|
||
- Agents spawn, work, coordinate, complete
|
||
- User is the "CEO" — approves, agents execute
|
||
|
||
**Target Customer:** Solo founder who wants to delegate, not do.
|
||
*"I have the vision, I need execution."*
|
||
|
||
**Vibe:** Enterprise-y. Serious. Professional.
|
||
*"Hire a team without hiring."*
|
||
|
||
### 5.2 Codepanion — "Your AI Dev Partner"
|
||
|
||
**Positioning:** Collaborative. You code, they help.
|
||
|
||
**Core Features:**
|
||
- **Reviewer** — Reviews your PRs, catches bugs
|
||
- **Documenter** — Updates docs when you ship
|
||
- **QA** — Writes/runs tests for your changes
|
||
- **Rubber Duck** — Thinks through architecture with you
|
||
- **PM** — Helps break down ideas into tasks
|
||
|
||
**Target Customer:** Solo dev who wants to stay hands-on but needs backup.
|
||
*"I love coding, I just need help with the boring parts."*
|
||
|
||
**Vibe:** Friendly. Lightweight. Developer tool.
|
||
*"A cofounder who never sleeps."*
|
||
|
||
### 5.3 Shared Architecture
|
||
|
||
```
|
||
┌─────────────────────────────────────────────┐
|
||
│ Shared Platform Core │
|
||
│ ┌───────────────────────────────────────┐ │
|
||
│ │ Orchestrator, MCP, Tasks, Sessions │ │
|
||
│ │ Messages, Journals, Notifications │ │
|
||
│ └───────────────────────────────────────┘ │
|
||
└─────────────────────────────────────────────┘
|
||
↑ ↑
|
||
┌────┴────┐ ┌────┴─────┐
|
||
│ RoboCo │ │Codepanion│
|
||
│ Panel │ │ App │
|
||
└─────────┘ └──────────┘
|
||
Full dashboard Lightweight
|
||
Kanban, agents CLI / Git-integrated
|
||
Enterprise feel Dev tool feel
|
||
```
|
||
|
||
Same backend infrastructure, different frontend experiences and UX.
|
||
|
||
### 5.4 Pricing Structure
|
||
|
||
| Tier | RoboCo | Codepanion |
|
||
|------|--------|------------|
|
||
| **Free** | 10 tasks/month | 50 reviews/month |
|
||
| **Pro** | $99/month | $19/month |
|
||
| **Team** | $199/seat | $39/seat |
|
||
|
||
RoboCo is premium — paying for autonomous work.
|
||
Codepanion is accessible — priced like a dev tool.
|
||
|
||
---
|
||
|
||
## 6. Open Source Strategy
|
||
|
||
### 6.1 The Decision
|
||
|
||
**Codepanion CLI:** Open source (MIT)
|
||
**RoboCo Panel:** Closed source
|
||
**RoboCo API/Backend:** Closed source (SaaS)
|
||
|
||
### 6.2 Rationale for Open Source Codepanion
|
||
|
||
**The CLI itself isn't the moat.** It's ~200 lines of code wrapping Claude. Anyone could build it in an afternoon. Keeping it closed doesn't protect anything meaningful.
|
||
|
||
**Open source is distribution:**
|
||
- Stars → visibility
|
||
- Forks → community investment
|
||
- PRs → free improvements
|
||
- Trust → "I can see what it does with my code"
|
||
|
||
**The money isn't in the CLI.** It's in:
|
||
|
||
| Free (Open Source) | Paid |
|
||
|-------------------|------|
|
||
| `codepanion review` | Cloud sync (review history) |
|
||
| `codepanion docs` | Team sharing |
|
||
| `codepanion think` | Custom rules/prompts |
|
||
| Local, stateless | CI/CD integration |
|
||
| | **RoboCo upgrade path** |
|
||
|
||
This is the **Terraform model.** CLI is free and open. Terraform Cloud is where HashiCorp makes money.
|
||
|
||
### 6.3 What Stays Closed
|
||
|
||
**RoboCo itself.** That's where the real IP is:
|
||
- The orchestration engine
|
||
- The agent hierarchy and workflow
|
||
- The dispatcher logic
|
||
- The quality gates
|
||
- The MCP integration
|
||
|
||
That's defensible. That's what companies would pay for.
|
||
|
||
**Codepanion is the free sample. RoboCo is the product.**
|
||
|
||
### 6.4 Potential Differentiation Angle
|
||
|
||
Focus on what nobody else does well: **QA and docs automation.**
|
||
|
||
Everyone skips those. If Codepanion auto-generated tests and updated README after every commit, *that's* differentiated from Copilot/Cursor which focus on code generation.
|
||
|
||
---
|
||
|
||
## 7. Platform Architecture Options
|
||
|
||
### 7.1 The Core Question
|
||
|
||
If Codepanion in "connected mode" talks to the same backend as RoboCo... where's the line? What's open, what's closed, what's the product?
|
||
|
||
### 7.2 Option A: Two Completely Separate Products
|
||
|
||
```
|
||
┌─────────────────┐ ┌─────────────────┐
|
||
│ Codepanion │ │ RoboCo │
|
||
│ (standalone) │ │ (full stack) │
|
||
│ Calls Claude │ │ Orchestrator │
|
||
│ No backend │ │ Full backend │
|
||
│ Open source │ │ Closed │
|
||
└─────────────────┘ └─────────────────┘
|
||
```
|
||
|
||
**Pros:** Simple. Clear separation.
|
||
**Cons:** Codepanion can't have history, sync, teams, learning. It's just a dumb wrapper forever.
|
||
|
||
### 7.3 Option B: Shared Backend, CLI Open, Backend Closed (SaaS)
|
||
|
||
```
|
||
┌─────────────────────────────────────────────┐
|
||
│ RoboCo API (Closed SaaS) │
|
||
└─────────────────────────────────────────────┘
|
||
↑ ↑
|
||
┌────┴────┐ ┌────┴─────┐
|
||
│ RoboCo │ │Codepanion│
|
||
│ Panel │ │ CLI │
|
||
│ Closed │ │ Open │
|
||
└─────────┘ └──────────┘
|
||
```
|
||
|
||
Codepanion CLI is open source. Works standalone (no server) OR connects to RoboCo API (paid).
|
||
|
||
**This is the Supabase/Vercel model.** Open source client, proprietary backend.
|
||
|
||
### 7.4 Option C: The API IS the Product
|
||
|
||
```
|
||
┌─────────────────────────────────────────────┐
|
||
│ RoboCo Platform │
|
||
│ "Orchestration-as-a-Service for AI" │
|
||
│ │
|
||
│ POST /agents - spawn agents │
|
||
│ POST /tasks - create tasks │
|
||
│ POST /workflows - run workflows │
|
||
│ WS /events - real-time updates │
|
||
│ POST /webhooks - callbacks │
|
||
└─────────────────────────────────────────────┘
|
||
↑ ↑ ↑
|
||
┌────┴────┐ ┌────┴─────┐ ┌────┴────┐
|
||
│ RoboCo │ │Codepanion│ │ Third │
|
||
│ Panel │ │ CLI │ │ Party │
|
||
└─────────┘ └──────────┘ └─────────┘
|
||
```
|
||
|
||
You're selling **orchestration-as-a-service**. Like Twilio for AI agents.
|
||
|
||
RoboCo Panel could even be open source — it's just a reference frontend. The value is in the *running* API, not the code.
|
||
|
||
**This is the Stripe model.** Dashboard is just a client of their own API.
|
||
|
||
### 7.5 Option D: Open Core, Sell Enterprise
|
||
|
||
Everything is open source. You sell:
|
||
- Managed hosting (so they don't have to run it)
|
||
- Enterprise features (SSO, audit logs, SLAs)
|
||
- Support contracts
|
||
|
||
**This is the GitLab/Grafana model.**
|
||
|
||
### 7.6 The Decision: B → C
|
||
|
||
**Start B, earn your way to C.**
|
||
|
||
| Phase | Architecture | Focus |
|
||
|-------|--------------|-------|
|
||
| **Phase 1 (Now)** | Option B | Find users, find fit, subscription revenue |
|
||
| **Phase 2 (PMF)** | B → C | Stabilize API, watch for platform signals |
|
||
| **Phase 3 (Scale)** | Option C | Enable others, usage-based pricing |
|
||
|
||
**Signal to watch for:** Someone asks "can I integrate this into my own tool?"
|
||
|
||
---
|
||
|
||
## 8. API-First Architecture Initiative
|
||
|
||
### 8.1 The Principle
|
||
|
||
**The API must be the only way in.**
|
||
|
||
No backdoors. No direct DB access from frontends. No "just this once" shortcuts.
|
||
|
||
If we can't use our own API to build our own products, no one else can either.
|
||
|
||
### 8.2 Why This Matters
|
||
|
||
For the B → C progression to work:
|
||
1. Every action the Panel takes goes through the public API
|
||
2. Every action Codepanion takes goes through the public API
|
||
3. Internal services communicate through well-defined interfaces
|
||
4. The API is documented, consistent, and pleasant to use
|
||
|
||
### 8.3 The Key Discipline
|
||
|
||
**From day one, build Panel and CLI as if they were third-party apps.**
|
||
|
||
- No backdoors into the database
|
||
- Everything goes through the API
|
||
- If the API is annoying to use, fix the API — don't hack around it
|
||
|
||
This way, when you flip the switch to Option C, the API is already battle-tested.
|
||
|
||
### 8.4 Recommended Code Structure
|
||
|
||
```
|
||
roboco/
|
||
├── core/ # The engine (orchestrator, agents, workflows)
|
||
├── api/ # HTTP interface to core
|
||
├── panel/ # or separate repo
|
||
└── ...
|
||
```
|
||
|
||
Clean separation means `core` could be wrapped by different interfaces later — your API, a CLI, a Terraform provider, whatever.
|
||
|
||
### 8.5 First Initiative: API Audit
|
||
|
||
**Task 1: Backdoor Audit**
|
||
- Identify every place where Panel/internal code bypasses the API
|
||
- Flag direct DB access, direct core imports
|
||
- Produce audit report with file, line, severity
|
||
|
||
**Task 2: Critical Path Cleanup**
|
||
- Fix only the blockers — stuff that would break if a third party used the API
|
||
- Route those flows through the API properly
|
||
|
||
**Task 3: Codepanion Integration Point**
|
||
- Define minimal API surface Codepanion needs:
|
||
```
|
||
POST /sessions - create a review session
|
||
POST /sessions/:id/messages - add a message (diff, review)
|
||
GET /sessions - list past reviews
|
||
```
|
||
- Working endpoints that Codepanion CLI can hit
|
||
|
||
---
|
||
|
||
## 9. Organizational Workflow
|
||
|
||
### 9.1 The Ideal Flow
|
||
|
||
```
|
||
CEO (Human)
|
||
│
|
||
│ Detailed feature request / complex idea
|
||
▼
|
||
┌──────────────────────────────────────────────────────────────┐
|
||
│ BOARD │
|
||
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │
|
||
│ │Product Owner│ │Head Marketing│ │ Auditor │ │
|
||
│ │ (Strategy) │ │ (Positioning)│ │ (Spy) │ │
|
||
│ └──────┬──────┘ └──────┬───────┘ └──────┬──────┘ │
|
||
│ │ │ │ │
|
||
│ └────────────────┼─────────────────┘ │
|
||
│ │ │
|
||
│ Break down in their area of expertise │
|
||
│ Prepare tasks for Main PM │
|
||
└──────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────────────────────────────┐
|
||
│ MAIN PM │
|
||
│ │
|
||
│ Receives tasks from Board │
|
||
│ Breaks down further per team cell │
|
||
│ Coordinates cross-cell dependencies │
|
||
└──────────────────────────────────────────────────────────────┘
|
||
│
|
||
┌──────────────────┼──────────────────┐
|
||
▼ ▼ ▼
|
||
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
|
||
│ BACKEND CELL │ │ FRONTEND CELL │ │ UX/UI CELL │
|
||
│ │ │ │ │ │
|
||
│ Cell PM │ │ Cell PM │ │ Cell PM │
|
||
│ │ │ │ │ │ │ │ │
|
||
│ ├─► Dev │ │ ├─► Dev │ │ ├─► Dev │
|
||
│ ├─► QA │ │ ├─► QA │ │ ├─► QA │
|
||
│ └─► Doc │ │ └─► Doc │ │ └─► Doc │
|
||
│ │ │ │ │ │
|
||
│ Escalates ▲ │ │ Escalates ▲ │ │ Escalates ▲ │
|
||
└───────────────┘ └───────────────┘ └───────────────┘
|
||
```
|
||
|
||
### 9.2 Board Role Clarifications
|
||
|
||
| Role | Description | Key Responsibilities |
|
||
|------|-------------|---------------------|
|
||
| **Product Owner** | Strategy & vision | Define API contracts, prioritize cleanup work, approve architecture decisions |
|
||
| **Head of Marketing** | Positioning & content | Prepare positioning, draft README/landing content, identify launch channels |
|
||
| **Auditor** | The "spy" — oversight | Conduct backdoor audit, verify fixes, establish ongoing monitoring, read access to all channels |
|
||
|
||
### 9.3 Task-Session-Journal Binding
|
||
|
||
Every task gets:
|
||
1. **A messaging session** in a channel for that task/subtask
|
||
2. **Journal entries** from agents working on it
|
||
3. **Documentation** (approach TBD — may be same session or separate)
|
||
|
||
```
|
||
Task
|
||
├── Session (discussion, decisions, progress)
|
||
├── Journal Entries (agent reflections, learnings, struggles)
|
||
└── Documentation (technical docs, user docs)
|
||
```
|
||
|
||
### 9.4 Communication Channels
|
||
|
||
| Channel | Purpose | Participants |
|
||
|---------|---------|--------------|
|
||
| `management` | Board discussions | PO, HoM, Auditor, CEO |
|
||
| `cross-cell` | Main PM coordination | Main PM, Cell PMs |
|
||
| `backend-cell` | Backend team work | BE-PM, BE-Devs, BE-QA, BE-Doc |
|
||
| `frontend-cell` | Frontend team work | FE-PM, FE-Devs, FE-QA, FE-Doc |
|
||
| `uxui-cell` | UX/UI team work | UX-PM, UX-Dev, UX-QA, UX-Doc |
|
||
|
||
### 9.5 CEO Directive Template
|
||
|
||
When the CEO (human) wants to initiate work:
|
||
|
||
```markdown
|
||
# CEO Directive: [Initiative Name]
|
||
|
||
**From:** CEO
|
||
**To:** Board (Product Owner, Head of Marketing, Auditor)
|
||
**Priority:** [High/Medium/Low]
|
||
**Date:** [Date]
|
||
|
||
---
|
||
|
||
## Strategic Context
|
||
[Why this matters, where it fits in the bigger picture]
|
||
|
||
## Objective
|
||
[What we're trying to achieve]
|
||
|
||
## Success Criteria
|
||
- [ ] [Measurable outcome 1]
|
||
- [ ] [Measurable outcome 2]
|
||
|
||
## Board Responsibilities
|
||
|
||
### Product Owner
|
||
1. [Responsibility 1]
|
||
2. [Responsibility 2]
|
||
|
||
### Head of Marketing
|
||
1. [Responsibility 1]
|
||
2. [Responsibility 2]
|
||
|
||
### Auditor
|
||
1. [Responsibility 1]
|
||
2. [Responsibility 2]
|
||
|
||
## Deliverables to Main PM
|
||
[What gets handed off when board alignment is complete]
|
||
|
||
## Constraints
|
||
[Timeline, scope, principles]
|
||
|
||
## Notes
|
||
[Additional context, future considerations]
|
||
|
||
---
|
||
|
||
**CEO**
|
||
```
|
||
|
||
---
|
||
|
||
## 10. Codepanion Technical Specification
|
||
|
||
### 10.1 MVP Scope
|
||
|
||
**Single feature:** `codepanion review`
|
||
|
||
Reviews code changes (staged, committed, or working directory) and provides actionable feedback.
|
||
|
||
### 10.2 Project Structure
|
||
|
||
```
|
||
codepanion/
|
||
├── pyproject.toml
|
||
├── README.md
|
||
├── src/
|
||
│ └── codepanion/
|
||
│ ├── __init__.py
|
||
│ ├── cli.py # Typer CLI entry point
|
||
│ ├── config.py # User config (~/.codepanion/config.toml)
|
||
│ ├── git.py # Git operations (diff, log, staged files)
|
||
│ ├── commands/
|
||
│ │ ├── __init__.py
|
||
│ │ ├── review.py # codepanion review
|
||
│ │ ├── docs.py # codepanion docs (future)
|
||
│ │ └── think.py # codepanion think (future)
|
||
│ └── agents/
|
||
│ ├── __init__.py
|
||
│ ├── base.py # Thin agent runner
|
||
│ └── reviewer.py # Review agent logic
|
||
└── tests/
|
||
└── ...
|
||
```
|
||
|
||
### 10.3 Dependencies
|
||
|
||
```toml
|
||
[project]
|
||
name = "codepanion"
|
||
version = "0.1.0"
|
||
requires-python = ">=3.11"
|
||
dependencies = [
|
||
"typer>=0.9.0",
|
||
"anthropic>=0.40.0",
|
||
"rich>=13.0.0",
|
||
]
|
||
|
||
[project.scripts]
|
||
codepanion = "codepanion.cli:app"
|
||
```
|
||
|
||
### 10.4 CLI Implementation
|
||
|
||
#### Entry Point (`cli.py`)
|
||
|
||
```python
|
||
import typer
|
||
from codepanion.commands import review
|
||
|
||
app = typer.Typer(
|
||
name="codepanion",
|
||
help="Your AI dev partner",
|
||
no_args_is_help=True,
|
||
)
|
||
|
||
app.add_typer(review.app, name="review")
|
||
|
||
if __name__ == "__main__":
|
||
app()
|
||
```
|
||
|
||
#### Review Command (`commands/review.py`)
|
||
|
||
```python
|
||
import typer
|
||
from codepanion.git import get_staged_diff, get_working_diff, get_commit_diff
|
||
from codepanion.agents.reviewer import ReviewerAgent
|
||
|
||
app = typer.Typer()
|
||
|
||
@app.callback(invoke_without_command=True)
|
||
def review(
|
||
commit: str = typer.Option(None, "--commit", "-c", help="Review a specific commit"),
|
||
staged: bool = typer.Option(False, "--staged", "-s", help="Review staged changes"),
|
||
all_changes: bool = typer.Option(True, help="Review all uncommitted changes"),
|
||
):
|
||
"""Review code changes with AI."""
|
||
|
||
# Get the diff
|
||
if commit:
|
||
diff = get_commit_diff(commit)
|
||
context = f"Commit: {commit}"
|
||
elif staged:
|
||
diff = get_staged_diff()
|
||
context = "Staged changes"
|
||
else:
|
||
diff = get_working_diff()
|
||
context = "Working directory changes"
|
||
|
||
if not diff.strip():
|
||
typer.echo("No changes to review.")
|
||
raise typer.Exit()
|
||
|
||
typer.echo(f"🔍 Reviewing {context}...\n")
|
||
|
||
# Run review
|
||
agent = ReviewerAgent()
|
||
result = agent.review(diff)
|
||
|
||
# Output
|
||
typer.echo(result.markdown)
|
||
|
||
if result.issues:
|
||
typer.echo(f"\n⚠️ {len(result.issues)} issues found")
|
||
raise typer.Exit(1)
|
||
else:
|
||
typer.echo("\n✅ Looks good!")
|
||
```
|
||
|
||
#### Git Operations (`git.py`)
|
||
|
||
```python
|
||
import subprocess
|
||
|
||
def run_git(*args) -> str:
|
||
result = subprocess.run(
|
||
["git", *args],
|
||
capture_output=True,
|
||
text=True,
|
||
)
|
||
return result.stdout
|
||
|
||
def get_staged_diff() -> str:
|
||
return run_git("diff", "--cached")
|
||
|
||
def get_working_diff() -> str:
|
||
return run_git("diff", "HEAD")
|
||
|
||
def get_commit_diff(commit: str) -> str:
|
||
return run_git("show", commit, "--format=")
|
||
```
|
||
|
||
#### Reviewer Agent (`agents/reviewer.py`)
|
||
|
||
```python
|
||
from dataclasses import dataclass
|
||
from anthropic import Anthropic
|
||
|
||
SYSTEM_PROMPT = """You are a senior code reviewer. You review diffs and provide actionable feedback.
|
||
|
||
Your review should:
|
||
1. Identify bugs, security issues, and logic errors
|
||
2. Suggest improvements (but don't nitpick style)
|
||
3. Point out missing error handling or edge cases
|
||
4. Be concise and actionable
|
||
|
||
Format your response as:
|
||
|
||
## Summary
|
||
One sentence overall assessment.
|
||
|
||
## Issues
|
||
- **[SEVERITY]** file.py:123 — Description of issue
|
||
|
||
## Suggestions
|
||
- file.py:45 — Optional improvement idea
|
||
|
||
If the code looks good, just say so briefly. Don't invent problems.
|
||
"""
|
||
|
||
@dataclass
|
||
class ReviewResult:
|
||
markdown: str
|
||
issues: list[dict]
|
||
suggestions: list[dict]
|
||
|
||
class ReviewerAgent:
|
||
def __init__(self):
|
||
self.client = Anthropic()
|
||
|
||
def review(self, diff: str) -> ReviewResult:
|
||
response = self.client.messages.create(
|
||
model="claude-sonnet-4-20250514",
|
||
max_tokens=4096,
|
||
system=SYSTEM_PROMPT,
|
||
messages=[{
|
||
"role": "user",
|
||
"content": f"Review this diff:\n\n```diff\n{diff}\n```"
|
||
}]
|
||
)
|
||
|
||
content = response.content[0].text
|
||
|
||
# Parse issues/suggestions from markdown
|
||
issues = [] # TODO: parse from response
|
||
suggestions = []
|
||
|
||
return ReviewResult(
|
||
markdown=content,
|
||
issues=issues,
|
||
suggestions=suggestions,
|
||
)
|
||
```
|
||
|
||
### 10.5 Usage Examples
|
||
|
||
```bash
|
||
# Install
|
||
pip install codepanion # or: uv pip install codepanion
|
||
|
||
# Review staged changes before commit
|
||
git add .
|
||
codepanion review --staged
|
||
|
||
# Review a specific commit
|
||
codepanion review --commit abc123
|
||
|
||
# Review all uncommitted changes
|
||
codepanion review
|
||
```
|
||
|
||
### 10.6 Future Commands
|
||
|
||
| Command | Description | Priority |
|
||
|---------|-------------|----------|
|
||
| `codepanion review` | Review code changes | MVP |
|
||
| `codepanion docs` | Update docs based on changes | P1 |
|
||
| `codepanion think "question"` | Rubber duck mode | P1 |
|
||
| `codepanion qa` | Generate tests for changes | P2 |
|
||
| `codepanion breakdown "idea"` | Break down into tasks | P2 |
|
||
|
||
### 10.7 Modes of Operation
|
||
|
||
#### Mode A: Standalone (MVP)
|
||
```
|
||
codepanion review
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ Local Agent │ ← Just calls Claude API directly
|
||
│ (no server) │ with reviewer system prompt
|
||
└─────────────────┘
|
||
│
|
||
▼
|
||
Markdown output
|
||
```
|
||
|
||
No RoboCo server needed. Self-contained. Ships fast.
|
||
|
||
#### Mode B: Connected (Later)
|
||
```
|
||
codepanion review
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ RoboCo API │ ← Full orchestrator, sessions, history
|
||
│ (your server) │
|
||
└─────────────────┘
|
||
│
|
||
▼
|
||
Review stored, tracked, searchable
|
||
```
|
||
|
||
Unlocks: history, learning from past reviews, team features.
|
||
|
||
---
|
||
|
||
## 11. Company Formation Options
|
||
|
||
### 11.1 Context
|
||
|
||
Based in **Italy**. Looking for the simplest path to legally charge for software.
|
||
|
||
### 11.2 Option 1: Partita IVA (Italian Freelancer)
|
||
|
||
**What it is:** Italian self-employment registration
|
||
|
||
**Regime Forfettario (Simplified Regime):**
|
||
- Available if revenue under €85,000/year
|
||
- **5% flat tax** for first 5 years (if new activity)
|
||
- **15% flat tax** after that
|
||
- Minimal paperwork compared to company
|
||
|
||
**Pros:**
|
||
- Simplest to start
|
||
- Cheapest ongoing costs
|
||
- Good enough until significant revenue
|
||
|
||
**Cons:**
|
||
- Personal liability (you = the business)
|
||
- Looks less "serious" to larger customers
|
||
- Limited deductions in forfettario regime
|
||
|
||
**Costs:**
|
||
- Setup: €200-500 (commercialista fees)
|
||
- Annual: €500-1000 (commercialista for simple SaaS)
|
||
- INPS contributions: ~25% of revenue (painful)
|
||
|
||
**Verdict:** Best starting point. Revisit when making €50k+/year.
|
||
|
||
### 11.3 Option 2: SRL (Italian LLC)
|
||
|
||
**What it is:** Italian limited liability company
|
||
|
||
**Pros:**
|
||
- Limited liability
|
||
- More "serious" appearance
|
||
- Better for investors (if ever needed)
|
||
|
||
**Cons:**
|
||
- €3,000-5,000+ to form (notary required 🇮🇹)
|
||
- Mandatory accountant (€1,500-3,000/year minimum)
|
||
- Corporate tax + bureaucracy
|
||
- Overkill for early-stage SaaS
|
||
|
||
**Costs:**
|
||
- Setup: €3,000-5,000
|
||
- Annual: €2,000-5,000 (accounting, fees)
|
||
- Corporate tax: IRES 24% + IRAP ~4%
|
||
|
||
**Verdict:** Wait until revenue justifies the overhead. Maybe €100k+/year.
|
||
|
||
### 11.4 Option 3: Estonia OÜ (e-Residency)
|
||
|
||
**What it is:** Estonian private limited company, managed 100% online
|
||
|
||
**How it works:**
|
||
1. Apply for e-Residency card (~€100, takes 3-6 weeks)
|
||
2. Form OÜ online (~€200-300)
|
||
3. Manage everything through Estonian service providers
|
||
|
||
**Pros:**
|
||
- 100% online setup and management
|
||
- EU company (looks legit, can sell to EU easily)
|
||
- 0% corporate tax on reinvested profits
|
||
- 20% tax only on distributed profits (dividends)
|
||
- Stripe, Wise, everything works
|
||
- Escape Italian bureaucracy for the company
|
||
|
||
**Cons:**
|
||
- Still need registered agent in Estonia (~€50-100/month)
|
||
- Accounting required (~€50-100/month for simple SaaS)
|
||
- You're still Italian tax resident → pay Italian taxes on personal income
|
||
- VAT compliance if selling B2C in EU (MOSS headache)
|
||
- Some banking friction (no physical presence)
|
||
|
||
**Costs:**
|
||
- e-Residency: €100-120 (one-time)
|
||
- Company formation: €200-300
|
||
- Registered agent: €50-100/month
|
||
- Accounting: €50-100/month
|
||
- State fee: €100/year
|
||
- **Total ongoing:** ~€150-250/month
|
||
|
||
**Important:** You still pay Italian taxes on what you pay yourself (salary or dividends). The Estonia company itself is clean to run, but you personally remain Italian tax resident.
|
||
|
||
**Verdict:** Good option once you're making €20k+/year and want to separate business from personal.
|
||
|
||
### 11.5 Option 4: Stripe Atlas (US LLC)
|
||
|
||
**What it is:** Stripe's turnkey company formation service
|
||
|
||
**Includes:**
|
||
- Delaware LLC formation
|
||
- Stripe account
|
||
- Mercury or SVB bank account
|
||
- Registered agent for 1 year
|
||
- Legal templates
|
||
|
||
**Cost:** $500 one-time + ~$200/year ongoing (registered agent)
|
||
|
||
**Pros:**
|
||
- Very fast (days, not weeks)
|
||
- US entity (good for US customers)
|
||
- All-in-one package
|
||
- Popular with international founders
|
||
|
||
**Cons:**
|
||
- US tax complexity if you're not careful
|
||
- You're still Italian tax resident
|
||
- Annual franchise tax in Delaware
|
||
|
||
**Verdict:** Consider if primarily targeting US customers.
|
||
|
||
### 11.6 Recommended Sequence
|
||
|
||
```
|
||
NOW (€0 revenue)
|
||
│
|
||
├── Keep building
|
||
├── Get beta users (free)
|
||
│
|
||
FIRST REVENUE (€0-5k/year)
|
||
│
|
||
├── Partita IVA with Regime Forfettario
|
||
├── 5% tax, minimal overhead
|
||
│
|
||
SCALING (€20k+/year)
|
||
│
|
||
├── Consider Estonia OÜ
|
||
│ OR
|
||
├── Stripe Atlas if US-focused
|
||
│
|
||
SIGNIFICANT REVENUE (€100k+/year)
|
||
│
|
||
└── Evaluate SRL or proper structure
|
||
based on growth trajectory
|
||
```
|
||
|
||
---
|
||
|
||
## 12. Go-to-Market Strategy
|
||
|
||
### 12.1 Launch Sequence
|
||
|
||
**Phase 1: Codepanion First**
|
||
- Lower friction ("just try it on one PR")
|
||
- Builds trust ("oh wow, this actually catches bugs")
|
||
- Fast to build (weekend project)
|
||
- Good for content/marketing
|
||
|
||
**Phase 2: Land and Expand**
|
||
- Free users → Pro users
|
||
- "Want this to run automatically on every PR?"
|
||
- "Want it to also update your docs?"
|
||
- Introduce RoboCo as the "full team" upgrade
|
||
|
||
**Phase 3: RoboCo Launch**
|
||
- For users who've built trust with Codepanion
|
||
- "Ready to let the AI do more?"
|
||
- Higher price, higher value
|
||
|
||
### 12.2 The "Aha Moment"
|
||
|
||
**For Cursor:** "Holy shit, it just wrote the function I was thinking about"
|
||
|
||
**For Codepanion:** "I pushed my code, made coffee, came back to a QA review and updated docs"
|
||
|
||
**For RoboCo:** "I described what I wanted, went to lunch, came back to a PR with tests and docs"
|
||
|
||
### 12.3 Distribution Channels
|
||
|
||
| Channel | Effort | Reach | Conversion |
|
||
|---------|--------|-------|------------|
|
||
| **Twitter/X** | Low | High | Low |
|
||
| **Hacker News** | Medium | Very High | Medium |
|
||
| **Reddit (r/programming, r/SideProject)** | Low | Medium | Medium |
|
||
| **Product Hunt** | Medium | High | Medium |
|
||
| **Dev.to / Hashnode** | Medium | Medium | Medium |
|
||
| **YouTube tutorials** | High | High | High |
|
||
|
||
### 12.4 Content Strategy
|
||
|
||
**Week 1-2:**
|
||
- "I built a CLI that reviews my code before I commit"
|
||
- Twitter thread + HN post
|
||
|
||
**Week 3-4:**
|
||
- "How I caught 47 bugs in a week using AI code review"
|
||
- Blog post + Reddit
|
||
|
||
**Week 5-6:**
|
||
- "Building an AI dev team: Architecture deep dive"
|
||
- Technical blog post
|
||
|
||
**Ongoing:**
|
||
- Changelog updates
|
||
- User testimonials
|
||
- Comparison posts (vs Copilot, vs Cursor, etc.)
|
||
|
||
---
|
||
|
||
## 13. Honest Assessment
|
||
|
||
### 13.1 What's Impressive
|
||
|
||
You've built a proper orchestration system — task lifecycle, quality gates, MCP tools, the works. It's the kind of architecture a 10-person team at a funded startup would build. You built it solo. That's genuinely rare.
|
||
|
||
### 13.2 Concerns
|
||
|
||
#### Building in a Vacuum
|
||
You've been dogfooding RoboCo on itself, which is great. But have you had *other* people use it? Even one person who isn't you? The gap between "works for me" and "works for strangers" is enormous.
|
||
|
||
Estonia company, pricing tiers, go-to-market strategy — all premature if you haven't validated that someone else finds this useful.
|
||
|
||
#### Market Timing is Tricky
|
||
Cursor is eating the "AI dev tool" space. Devin, Factory, Cognition are going after "AI dev team." GitHub Copilot Workspace is coming. You're entering a knife fight with giants who have $100M+ and dedicated teams.
|
||
|
||
Your edge is that you've *actually built* something that works, not a demo. But edge only matters if people see it.
|
||
|
||
#### Codepanion Competition
|
||
`codepanion review` enters a space where people already have options — Copilot does inline review, Cursor does it, there are GitHub Actions for this.
|
||
|
||
**What's your angle?** Focus on what nobody else does well — QA and docs automation. Everyone skips those. If Codepanion auto-generates tests and updates README after every commit, *that's* differentiated.
|
||
|
||
#### Spread Thin
|
||
Rennberry cluster, UGREEN NAS, Olares One arriving, power optimization, Pi-hole monitoring, GlusterFS, the whole homelab...
|
||
|
||
That's a lot of infrastructure work alongside building a SaaS. Every hour on homelab is an hour not talking to potential users or shipping Codepanion.
|
||
|
||
#### The Actual Hard Part Isn't Code
|
||
RoboCo works. The hard part now is:
|
||
- Getting 10 people to try it
|
||
- Getting 1 person to pay for it
|
||
- Learning why the other 9 didn't
|
||
|
||
That's uncomfortable work. Rejection and feedback and "actually this isn't what I need." But it's the only way to know if this is a product or a project.
|
||
|
||
### 13.3 Recommendation
|
||
|
||
1. **Ship Codepanion this week.** Not perfect. Just `review` command, working, on PyPI.
|
||
|
||
2. **Post it.** Twitter, HN, Reddit. See what happens.
|
||
|
||
3. **Talk to 5 solo devs.** Not to pitch — to listen. "What's the most annoying part of working alone?" See if RoboCo's value prop resonates.
|
||
|
||
4. **Forget company formation** until someone gives you money.
|
||
|
||
5. **Set a decision point.** "If I don't have 100 Codepanion users in 60 days, I'll re-evaluate the approach."
|
||
|
||
You've built something real. That puts you ahead of 95% of people who talk about AI agents. The question is whether "real" translates to "wanted."
|
||
|
||
Only the market can answer that. And the market only answers if you ask.
|
||
|
||
---
|
||
|
||
## 14. Next Steps & Action Items
|
||
|
||
### 14.1 Immediate: API-First Initiative (This Week)
|
||
|
||
**First task for RoboCo itself:**
|
||
|
||
- [ ] **Auditor: Conduct backdoor audit** — Review all frontend → backend communication, flag every direct DB access, produce report
|
||
- [ ] **Product Owner: Define Codepanion API contract** — What endpoints does it need? Minimal surface area.
|
||
- [ ] **Product Owner: Prioritize cleanup work** — Which backdoors are blockers vs. nice-to-have?
|
||
- [ ] **Head of Marketing: Draft Codepanion positioning** — README content, value prop
|
||
|
||
### 14.2 Short-term (Next 2-4 Weeks)
|
||
|
||
- [ ] **Fix critical backdoors** — Route through API properly
|
||
- [ ] **Implement Codepanion endpoints** — `POST /sessions`, `POST /sessions/:id/messages`, `GET /sessions`
|
||
- [ ] **Ship Codepanion v0.1** — Publish to PyPI (standalone mode first)
|
||
- [ ] **Landing page** — Simple, one-page site
|
||
- [ ] **Twitter announcement** — Thread about the tool
|
||
- [ ] **HN post** — "Show HN: Codepanion – AI code reviewer CLI"
|
||
|
||
### 14.3 Medium-term (1-3 Months)
|
||
|
||
- [ ] **Add more Codepanion commands** — `docs`, `think`, `qa`
|
||
- [ ] **Implement connected mode** — Codepanion → RoboCo API for history/sync
|
||
- [ ] **Git integration in RoboCo** — Agents can commit, push, create PRs
|
||
- [ ] **Collect feedback** — Iterate based on early users
|
||
- [ ] **Set up Partita IVA** — When ready to charge
|
||
- [ ] **Stripe integration** — Payments infrastructure
|
||
|
||
### 14.4 Longer-term (3-6 Months)
|
||
|
||
- [ ] **VS Code extension** — Codepanion in the editor
|
||
- [ ] **GitHub App** — Auto-review PRs
|
||
- [ ] **Team features** — Shared RoboCo workspaces
|
||
- [ ] **Evaluate platform play** — Is there demand for the API directly?
|
||
- [ ] **Evaluate company structure** — Estonia vs staying with Partita IVA
|
||
|
||
### 14.5 Decision Point
|
||
|
||
**60 days from Codepanion launch:**
|
||
- If 100+ users → double down, add features, push toward Pro tier
|
||
- If <100 users → investigate why, pivot approach, or reconsider market
|
||
|
||
---
|
||
|
||
## Appendix A: Key Files Reference
|
||
|
||
### Backend (RoboCo)
|
||
|
||
| File | Purpose |
|
||
|------|---------|
|
||
| `roboco/agents/base.py` | Base agent class with lifecycle, LLM, MCP |
|
||
| `roboco/runtime/orchestrator.py` | Docker-based agent orchestrator |
|
||
| `roboco/models/base.py` | All enums and base model |
|
||
| `roboco/models/task.py` | Task model with full lifecycle |
|
||
| `roboco/db/tables.py` | SQLAlchemy table definitions |
|
||
| `roboco/mcp/task_server.py` | Task MCP tools |
|
||
| `roboco/api/routes/tasks.py` | Task API endpoints |
|
||
| `roboco/api/routes/orchestrator.py` | Orchestrator API endpoints |
|
||
|
||
### Frontend (RoboCo Panel)
|
||
|
||
| File | Purpose |
|
||
|------|---------|
|
||
| `src/types/index.ts` | TypeScript types matching backend |
|
||
| `src/app/(dashboard)/layout.tsx` | Dashboard layout |
|
||
| `src/components/kanban/` | Kanban board components |
|
||
| `src/store/` | Zustand state stores |
|
||
|
||
---
|
||
|
||
## Appendix B: Environment Variables
|
||
|
||
### RoboCo Backend
|
||
|
||
| Variable | Description | Default |
|
||
|----------|-------------|---------|
|
||
| `ANTHROPIC_API_KEY` | Claude API key | Required |
|
||
| `DATABASE_URL` | PostgreSQL connection string | Required |
|
||
| `ROBOCO_HOST` | API host | `0.0.0.0` |
|
||
| `ROBOCO_PORT` | API port | `8000` |
|
||
| `ROBOCO_HOST_CLAUDE_DIR` | Host path to `.claude` | `~/.claude` |
|
||
| `ROBOCO_HOST_PROJECT_DIR` | Host path to project root | Required in Docker |
|
||
| `ROBOCO_HOST_DATA_DIR` | Host path to data directory | Required in Docker |
|
||
|
||
### Codepanion
|
||
|
||
| Variable | Description | Default |
|
||
|----------|-------------|---------|
|
||
| `ANTHROPIC_API_KEY` | Claude API key | Required |
|
||
| `CODEPANION_MODEL` | Model to use | `claude-sonnet-4-20250514` |
|
||
|
||
---
|
||
|
||
## Appendix C: Glossary
|
||
|
||
| Term | Definition |
|
||
|------|------------|
|
||
| **Agent** | An AI entity with a specific role (dev, QA, PM, etc.) |
|
||
| **Blueprint** | System prompt that defines an agent's behavior |
|
||
| **Cell** | A team unit (backend, frontend, ux_ui) |
|
||
| **Channel** | Communication space for a group of agents |
|
||
| **Dispatcher** | Orchestrator component that checks for and assigns work |
|
||
| **Handoff** | Documentation package from dev to documenter |
|
||
| **Journal** | Agent's private reflection space |
|
||
| **MCP** | Model Context Protocol — tool access system |
|
||
| **Orchestrator** | Central controller that spawns/manages agents |
|
||
| **Session** | Scoped discussion within a channel group |
|
||
| **TOON** | Token-Oriented Object Notation — efficient data format |
|
||
|
||
---
|
||
|
||
## Appendix D: CEO Directive - API-First Architecture
|
||
|
||
**From:** CEO
|
||
**To:** Board (Product Owner, Head of Marketing, Auditor)
|
||
**Priority:** High
|
||
**Date:** 2024-12-23
|
||
|
||
---
|
||
|
||
### Strategic Context
|
||
|
||
We're positioning RoboCo for a two-phase growth strategy:
|
||
|
||
**Phase B (Now):** Two products, one backend. RoboCo Panel (full experience) and Codepanion (lightweight CLI, open source). Both consume the same API.
|
||
|
||
**Phase C (Future):** Platform play. The orchestration API becomes the product. Third parties build on us.
|
||
|
||
For this to work, **the API must be the only way in.** No backdoors. No direct DB access from frontends. No "just this once" shortcuts.
|
||
|
||
If we can't use our own API to build our own products, no one else can either.
|
||
|
||
---
|
||
|
||
### Objective
|
||
|
||
**Establish API-first architecture across the entire system.**
|
||
|
||
This means:
|
||
1. Every action the Panel takes goes through the public API
|
||
2. Every action Codepanion will take goes through the public API
|
||
3. Internal services communicate through well-defined interfaces
|
||
4. The API is documented, consistent, and pleasant to use
|
||
|
||
---
|
||
|
||
### Success Criteria
|
||
|
||
- [ ] Zero direct database access from Panel frontend
|
||
- [ ] Zero direct core imports that bypass API in frontend code
|
||
- [ ] Codepanion can connect and perform basic operations (create session, send message, retrieve history)
|
||
- [ ] API documentation covers all endpoints Codepanion needs
|
||
- [ ] Auditor has verified no backdoors remain in critical paths
|
||
|
||
---
|
||
|
||
### Board Responsibilities
|
||
|
||
#### Product Owner
|
||
|
||
1. **Define the API contract** for Codepanion integration
|
||
- What endpoints does Codepanion need?
|
||
- What's the minimal surface area?
|
||
- What can wait for v2?
|
||
|
||
2. **Prioritize the cleanup work**
|
||
- Which backdoors are blockers vs. nice-to-have?
|
||
- What's the MVP for "API-first"?
|
||
|
||
3. **Approve the architecture decisions**
|
||
- Review proposals from Main PM
|
||
- Sign off on API design
|
||
|
||
#### Head of Marketing
|
||
|
||
1. **Prepare positioning for Codepanion**
|
||
- Open source CLI angle
|
||
- "Works standalone, better connected" messaging
|
||
- Developer-first tone
|
||
|
||
2. **Draft initial README/landing content**
|
||
- What does Codepanion do?
|
||
- Why would a dev use it?
|
||
- How does it connect to RoboCo?
|
||
|
||
3. **Identify launch channels**
|
||
- Where do we announce?
|
||
- What's the content calendar?
|
||
|
||
#### Auditor
|
||
|
||
1. **Conduct the backdoor audit**
|
||
- Review all frontend → backend communication
|
||
- Flag every direct DB access
|
||
- Flag every import that bypasses API layer
|
||
- Produce audit report with file, line, severity
|
||
|
||
2. **Verify fixes**
|
||
- After cleanup, re-audit critical paths
|
||
- Confirm API-first compliance
|
||
|
||
3. **Establish ongoing monitoring**
|
||
- How do we prevent new backdoors?
|
||
- What checks should be part of code review?
|
||
|
||
---
|
||
|
||
### Deliverables to Main PM
|
||
|
||
Once board alignment is complete, hand off to Main PM:
|
||
|
||
1. **Audit Report** (from Auditor)
|
||
- List of all backdoors with severity ratings
|
||
|
||
2. **API Specification** (from Product Owner)
|
||
- Endpoints needed for Codepanion MVP
|
||
- Request/response schemas
|
||
- Authentication approach
|
||
|
||
3. **Prioritized Task List** (from Product Owner)
|
||
- Ordered by: blockers first, then high-value, then nice-to-have
|
||
|
||
4. **Marketing Brief** (from Head of Marketing)
|
||
- Positioning document for Codepanion
|
||
- README draft
|
||
- Launch plan outline
|
||
|
||
---
|
||
|
||
### Constraints
|
||
|
||
- **Timeline:** Codepanion MVP should be shippable within 2 weeks of Main PM receiving handoff
|
||
- **Scope:** Fix what's necessary for Codepanion. Don't boil the ocean.
|
||
- **Principle:** If in doubt, expose it through API. We'd rather have a slightly larger API surface than hidden backdoors.
|
||
|
||
---
|
||
|
||
### Notes on Documentation
|
||
|
||
For now:
|
||
- Task documentation lives in the task's session (tied via session-task link)
|
||
- Technical documentation (API docs, architecture) should be markdown in the repo
|
||
- User-facing documentation (README, guides) prepared by Documenter roles, reviewed by PM
|
||
|
||
Future consideration: dedicated documentation system. But not now.
|
||
|
||
---
|
||
|
||
### Notes on Git Integration
|
||
|
||
Git integration is coming. For this initiative:
|
||
- All code changes go through PRs
|
||
- PRs link to task IDs in commit messages
|
||
- Once git integration lands, this becomes automated
|
||
|
||
For now, manual discipline.
|
||
|
||
---
|
||
|
||
### Communication
|
||
|
||
- Board discussions in `management` channel
|
||
- Main PM coordination in `cross-cell` channel
|
||
- Cell work in respective cell channels (`backend-cell`, `frontend-cell`, `uxui-cell`)
|
||
- Each task gets its own session within the appropriate channel
|
||
- Journals capture decisions, learnings, blockers
|
||
|
||
---
|
||
|
||
### Final Word
|
||
|
||
This is the foundation. If we get API-first right, everything else becomes easier — Codepanion, platform expansion, third-party integrations, even our own Panel development.
|
||
|
||
If we get it wrong, we're building on sand.
|
||
|
||
Make it solid.
|
||
|
||
---
|
||
|
||
**CEO**
|
||
|
||
---
|
||
|
||
*End of Summary*
|