Phase 1: Company & Environment Setup
Dana (Dev Manager) provisions the team and configures the development infrastructure. This phase is captured in five published videos (01–05) — each linked from the corresponding section below.
Table of contents
- Cast of users
- 1.1 — Dana sets up RobOS for Acme
- 1.2 — Dana installs the team toolchain
- 1.3 — Dana configures RobOS Agents
- 1.4 — Dana sets up People Manager
- 1.5 — Dana sets up Group Manager
- 1.6 — Dana defines the task workflow
- What’s next
Cast of users
Each role logs in as a separate Linux user on the same RobOS VM. Each user has their own RobOS desktop login, ~/.config/robos/ profile, and GPG/SSH keys (initialized via the Security Setup app on first login).
| User | Login | Role in RobOS |
|---|---|---|
| Dana | dana@acme | Manager — dashboards, workflow config, task server admin |
| Pat | pat@acme | Product Owner — requirements, epic/story creation, staging review |
| Jordan | jordan@acme | Dev Lead — code review, architecture decisions, PR approvals |
| Alex | alex@acme | Developer — task implementation, AI-assisted coding |
1.1 — Dana sets up RobOS for Acme
Apps: Task Servers · Workflow Studio · Git Projects · RobOS Preferences
📺 Video 01 — Dana sets up RobOS for Acme
In one sitting, Dana hooks RobOS up to Jira, designs the workflow every ticket will follow, and registers the two repos the team will work on.
Jira (Task Servers)
📺 Deep-dive: Dana — Task Servers (Jira via Pass Manager)
Dana opens Task Servers and configures Jira as the team’s task tracking system:
- Stash the API token in Pass Manager — credentials never live in plain-text config
- Add connection — Jira Cloud instance
acme.atlassian.net - Reference the pass entry by path — Task Servers reads the token directly from the password store
- Project keys — list the keys (e.g.
KAN) the team uses, so RobOS can enumerate them - Test the connection, then Save
Initial sync pulls all existing Jira issues into RobOS. Bidirectional sync stays enabled. Every other RobOS app — Issue Manager, Task Board, Dev Central, PR Review, Manager Dashboard — reads from this one task server.
| Jira Status | RobOS Stage |
|---|---|
| To Do | backlog |
| In Progress | in_progress |
| In Review | in_review |
| Deploying | deploying |
| Done | deployed |
Repos (Git Projects)
Dana adds the two repositories the team will work on:
| Repository | Purpose |
|---|---|
buildbarn-forms | React + TypeScript component library — parses proto schemas and generates validated configuration forms |
buildbarn-forms-proto | Protobuf definitions for all Buildbarn configuration messages (worker, storage, scheduler, browser) |
Each repo carries a ROBOS.md that tells AI agents and the onboarding system how to set up, build, and test the project:
# ROBOS.md — buildbarn-forms
## Prerequisites
- Node.js 20+
- protoc (protobuf compiler) 25+
- GitHub CLI (gh) authenticated
## Local Dev Setup
1. npm install
2. npm run proto:generate
3. npm run dev # Start Storybook on :6006
## Test
npm test # Jest unit tests
npm run test:e2e # Playwright component tests
1.2 — Dana installs the team toolchain
App: Dev Tools
📺 Video 02 — Dana installs the team toolchain
Before Dana can authenticate agents or use any AI feature, the CLI tools must be in place. Dev Tools is RobOS’s package-style installer for developer software: pick what the team needs, it gets staged centrally, and every workspace inherits the same versions. This step unblocks 1.3 (Agents) which unblocks every AI-powered step that follows.
1.3 — Dana configures RobOS Agents
App: Agents Manager
📺 Video 03 — Dana configures RobOS Agents
Dev tools are installed. Now RobOS needs an active AI agent before Dana can use any AI-powered feature — including the AI textareas in People Manager and Group Manager. Dana opens Agents Manager, logs in to GitHub Copilot, explores session management and custom CLI parameters, and pins Copilot as the default AI Agent for the team.
Steps:
- Open App Launcher → Agents Manager — GitHub Copilot shows not logged in; Codex and Claude are already authenticated.
- Login to GitHub Copilot via the Agents panel.
- Open a Copilot terminal and show session resume and custom CLI parameters.
- Name the session “Dana’s Session” to demonstrate named sessions.
- Set GitHub Copilot as the default AI Agent — every AI textarea in RobOS now routes through it.
Every AI-powered feature — People Manager, Group Manager, Issue Manager, Workflow Studio, Git Projects, Dev Central — is now active for the whole team. This step blocks every later episode.
1.4 — Dana sets up People Manager
App: People Manager
📺 Video 04 — Dana sets up People Manager
People Manager is where every RobOS user gets created — name, email, role, GitHub login, the “this is me” marker. The hero feature: an AI textarea that creates one or more users from a plain-English prompt or an at-mentioned external file (a roster, a contractor list, an org chart).
Dana drops the team roster into the AI prompt and gets every user from the document created in one shot.
1.5 — Dana sets up Group Manager
App: Group Manager
📺 Video 05 — Dana sets up Group Manager
Group Manager owns the developer side of every team:
- Git Projects — which repos a group owns
- Software Installations — toolchains per group
- Onboarding steps — the AI’s runbook for new joiners
- Secrets — per-group credential vault (
GITHUB_TOKEN,NPM_TOKEN,JIRA_API_TOKEN) - CI management — environments visible in RobOS CI
- Members — who’s on the team and what role
- Workspaces — RobOS Workspaces owned by the group
Same hero pattern as People Manager: an AI textarea drafts a whole group — repos, members, software, onboarding steps — from a prompt or an @-mentioned external file.
1.6 — Dana defines the task workflow
App: Workflow Studio
📺 Deep-dive: Dana — Workflow Studio (AI-generated issue types & state actions)
Dana defines the workflow every issue in the project will run through. Every state has an AI prompt and a shell command that fire the moment an issue enters that state — so the workflow doesn’t just track work, it drives an AI agent to do the work. Transitions move the issue forward as the agent (or a human) marks each step complete.
Issue types
Six types, each with its own workflow, generated by the AI Generate textarea from a single description of the team:
| ID | Label | Color |
|---|---|---|
bug | Bug | #D73A4A |
feature-request | Feature Request | #A2EEEF |
chore | Chore | #CFD3D7 |
security-issue | Security Issue | #B60205 |
performance-issue | Performance Issue | #FBCA04 |
question | Question | #5319E7 |
Bug workflow (representative)
The Bug workflow has 8 states. Every state’s on_enter_prompt is a self-contained instruction the AI agent runs on entry; the on_enter_script is a shell command that runs alongside it. The agent stays in the state until it (or a human) advances the issue:
type: bug
states:
- id: ai-triage
label: AI Triage
is_initial: true
on_enter_prompt: |
Review GitHub issue #{number} in {org}/{repo}; read the full issue,
comments, labels, recent commits, and linked PRs, inspect likely
files in VS Code, reproduce the symptom if possible, then post a
triage comment with severity, suspected root cause, and the
investigation plan.
on_enter_script: gh issue view {number} --repo {org}/{repo} --comments
- id: ai-investigation
label: AI Investigation
on_enter_prompt: |
Trace the execution path in VS Code, read tests, logs, and blame
history, compare expected vs actual behavior, identify the smallest
reliable fix, and update the issue with a hypothesis, impacted
components, and acceptance criteria.
- id: workspace-setup
label: Workspace Setup
on_enter_prompt: |
Set up a local workspace for issue #{number} — clone or update
{org}/{repo}, create a dedicated branch, open in VS Code, restore
dependencies, and confirm the bug reproduces locally.
on_enter_script: |
gh repo clone {org}/{repo} repo-{number} || true \
&& cd repo-{number} && git fetch --all --prune \
&& git checkout -B ai/issue-{number} && code -r .
- id: ai-draft
label: AI Draft
on_enter_prompt: |
Implement the smallest correct fix in the branch, touching only
relevant code paths, preserving behavior outside the defect, and
preparing a clean diff for review.
on_enter_script: cd repo-{number} && code -r .
- id: ai-testing
label: AI Testing
on_enter_prompt: |
Write or extend automated tests that fail before the fix and pass
after it, run the project's test commands, capture evidence for
GitHub, and tighten the fix if checks reveal gaps.
on_enter_script: |
cd repo-{number} && \
if [ -f package.json ]; then npm test || npm run test; \
elif [ -f go.mod ]; then go test ./...; \
elif [ -f Cargo.toml ]; then cargo test; \
else pytest; fi
- id: ai-pr-creation
label: AI PR Creation
on_enter_prompt: |
Push the branch, open or update a GitHub PR for issue #{number},
summarize bug, root cause, fix, and tests, request reviewers, and
link the PR back to the issue.
on_enter_script: |
cd repo-{number} && git push -u origin ai/issue-{number} \
&& gh pr create --repo {org}/{repo} --fill \
--head ai/issue-{number} --body 'Closes #{number}'
- id: code-review
label: Code Review
on_enter_prompt: |
Monitor GitHub review comments and check runs, apply precise
follow-up commits in VS Code, rerun focused tests, and respond to
each thread with the exact fix or rationale.
on_enter_script: |
cd repo-{number} && gh pr status --repo {org}/{repo} \
&& gh pr checks --repo {org}/{repo}
- id: done
label: Done
on_enter_prompt: |
Confirm the merged PR fully addresses issue #{number}, ensure
labels and changelog notes are accurate, close the issue if
policy allows, and leave a short completion summary.
on_enter_script: |
gh issue close {number} --repo {org}/{repo} \
--comment 'Resolved by the linked PR.' || true
transitions:
- { from: ai-triage, to: ai-investigation }
- { from: ai-investigation, to: workspace-setup }
- { from: workspace-setup, to: ai-draft }
- { from: ai-draft, to: ai-testing }
- { from: ai-testing, to: ai-draft } # fix failing tests
- { from: ai-testing, to: ai-pr-creation }
- { from: ai-pr-creation, to: code-review }
- { from: code-review, to: ai-draft } # respond to review
- { from: code-review, to: done }
%%{init: {'theme': 'dark'}}%%
graph LR
A[AI Triage] --> B[AI Investigation]
B --> C[Workspace Setup]
C --> D[AI Draft]
D --> E[AI Testing]
E -->|tests fail| D
E -->|tests pass| F[AI PR Creation]
F --> G[Code Review]
G -->|changes asked| D
G -->|approved| H[Done]
style A fill:#BFD4F2,stroke:#7c93b8,color:#0d1117
style B fill:#C5DEF5,stroke:#7c93b8,color:#0d1117
style C fill:#F9E2AF,stroke:#b8a073,color:#0d1117
style D fill:#B7E1CD,stroke:#73a895,color:#0d1117
style E fill:#C9E8FF,stroke:#7c93b8,color:#0d1117
style F fill:#D4C5F9,stroke:#9583c0,color:#0d1117
style G fill:#FFD8A8,stroke:#c0966b,color:#0d1117
style H fill:#2DA44E,stroke:#1a6630,color:#fff
The other five workflows
feature-request, chore, security-issue, performance-issue, and question follow the same AI-driven pattern with type-specific tweaks:
- Feature Request — adds a
human-reviewgate afterai-investigation(a maintainer must approve scope before the agent starts coding) - Chore — skips
ai-investigation(small surface, agent goes from triage straight to workspace setup) - Security Issue — branches as
ai/security-{number}instead ofai/issue-{number}; prompts emphasize confidentiality and minimum surface area - Performance Issue — prompts focus on profiling baselines, measured improvement, and benchmark evidence
- Question — terminates at
ai-draft→human-review→done; no PR, the agent just writes a verified answer
Each workflow’s full state list and prompts are saved in ~/.config/robos/settings.json under task_servers[*].workflows[]. Re-open Workflow Studio any time to expand a type and tune its prompts.
This is the last thing Dana does in Phase 1: it codifies the contract every later step enforces. Pat’s stories (Phase 2) get authored against these types, Jordan’s CI gates fire transitions, and Alex’s task workspaces auto-provision the moment a ticket lands in workspace-setup.
What’s next
With Phase 1 complete, RobOS knows the people, the groups, the repos, the workflow, the AI agent, and the toolchain. Pat takes over in Phase 2: Requirements to break the rewrite into ten engineering stories.
For the full 20-episode video series — Pat’s epic breakdown, Jordan’s CI/CD setup, Alex’s onboarding, and the ten engineering phases — see the Video Production Plan.