opencode-onboard 0.4.4 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +58 -19
  2. package/content/.agents/agents/basic-engineer.md +5 -5
  3. package/content/.agents/agents/devops-manager.md +14 -10
  4. package/content/.agents/skills/ob-global/SKILL.md +9 -7
  5. package/content/.opencode/commands/ob-create-architecture.md +76 -0
  6. package/content/.opencode/commands/ob-create-design.md +53 -0
  7. package/content/.opencode/commands/{create-engineer.md → ob-create-engineer.md} +9 -8
  8. package/content/.opencode/commands/ob-init.md +8 -0
  9. package/content/.opencode/commands/{main.md → ob-main.md} +2 -2
  10. package/content/.opencode/commands/{plan.md → ob-plan.md} +2 -2
  11. package/content/.opencode/commands/opsx-apply.md +212 -193
  12. package/content/.opencode/skills/openspec-apply-change/SKILL.md +234 -176
  13. package/content/AGENTS.md +161 -49
  14. package/content/ARCHITECTURE.md +16 -327
  15. package/content/DESIGN.md +16 -26
  16. package/package.json +1 -1
  17. package/src/commands/join.js +6 -1
  18. package/src/commands/single.js +1 -1
  19. package/src/presets/models.json +2 -2
  20. package/src/presets/platforms.json +4 -0
  21. package/src/steps/copy/agents.js +200 -3
  22. package/src/steps/copy/agents.test.js +45 -0
  23. package/src/steps/copy/copy.test.js +15 -2
  24. package/src/steps/copy/index.js +2 -1
  25. package/src/steps/metadata/index.js +6 -5
  26. package/src/steps/metadata/metadata.test.js +16 -8
  27. package/src/steps/models/write.js +17 -4
  28. package/src/steps/models/write.test.js +57 -56
  29. package/src/steps/openspec/ensemble.js +81 -54
  30. package/src/steps/openspec/ensemble.test.js +40 -8
  31. package/src/steps/optimization/codegraph.js +51 -0
  32. package/src/steps/optimization/codegraph.test.js +104 -0
  33. package/src/steps/optimization/global.js +21 -1
  34. package/src/steps/optimization/global.test.js +3 -0
  35. package/src/steps/platform/index.js +8 -1
  36. package/src/steps/platform/platform.test.js +19 -0
  37. package/content/.opencode/commands/init.md +0 -8
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  **One command to prepare any codebase for AI agent workflows in OpenCode.**
8
8
 
9
- Works with [OpenCode](https://opencode.ai), [OpenCode Ensemble](https://github.com/hueyexe/opencode-ensemble), [OpenSpec](https://github.com/fission-ai/openspec), GitHub and Azure DevOps.
9
+ Works with [OpenCode](https://opencode.ai), [OpenCode Ensemble](https://github.com/hueyexe/opencode-ensemble), [OpenSpec](https://github.com/fission-ai/openspec), GitHub, Azure DevOps, or no tracker/PR platform at all.
10
10
 
11
11
  [![npm version](https://img.shields.io/npm/v/opencode-onboard?style=flat-square&color=black)](https://www.npmjs.com/package/opencode-onboard)
12
12
  [![npm downloads](https://img.shields.io/npm/dm/opencode-onboard?style=flat-square&color=black)](https://www.npmjs.com/package/opencode-onboard)
@@ -74,8 +74,8 @@ The CLI runs a 10-step onboarding wizard. It keeps the current step visible, plu
74
74
  | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
75
75
  | **1. Source scope** | Choose current repo or sibling source roots for code analysis |
76
76
  | **2. Clean AI files** | Detects existing `AGENTS.md`, `.cursorrules`, `CLAUDE.md`, `.agents/` etc. and removes them, preserves your `.agents/skills/` |
77
- | **3. Choose platform** | GitHub or Azure DevOps |
78
- | **4. Check platform CLI** | Verifies `gh` (GitHub) or `az` + `azure-devops` (Azure DevOps) |
77
+ | **3. Choose platform** | GitHub, Azure DevOps, or None |
78
+ | **4. Check platform CLI** | Verifies `gh` (GitHub) or `az` + `azure-devops` (Azure DevOps), or skips checks when platform is None |
79
79
  | **5. Copy scaffolding** | Copies agents + built-in skills + bootstrap docs, writes source-roots metadata, applies AGENTS bootstrap patching, copies `skills-lock.json`, then runs `npx skills` |
80
80
  | **6. Init OpenSpec** | Runs `npx @fission-ai/openspec init` silently for structured change management |
81
81
  | **7. Choose models** | Fetches live model list from [models.dev](https://models.dev), lets you pick plan / build / fast models with cost indicators and canonical pricing |
@@ -86,10 +86,10 @@ The CLI runs a 10-step onboarding wizard. It keeps the current step visible, plu
86
86
  When it finishes, open OpenCode in your project and type:
87
87
 
88
88
  ```
89
- init
89
+ /ob-init
90
90
  ```
91
91
 
92
- OpenCode generates `ARCHITECTURE.md` and `DESIGN.md` from your actual codebase, then activates the full agent team.
92
+ OpenCode asks if this is a greenfield or brownfield project. For brownfield projects it generates `ARCHITECTURE.md` and `DESIGN.md` from your actual codebase, archives project history, then activates the full agent team. For greenfield projects it skips doc generation and leaves placeholder files you can populate later with `/ob-create-architecture` and `/ob-create-design`.
93
93
 
94
94
  ---
95
95
 
@@ -99,10 +99,12 @@ Custom slash commands are installed into `.opencode/commands/` and are available
99
99
 
100
100
  | Command | Description |
101
101
  | -------------- | ----------------------------------------------------------------------------------------------------- |
102
- | `/init` | Initialize the project: generate `ARCHITECTURE.md`, `DESIGN.md`, archive history, activate agent team |
103
- | `/plan <url>` | Parse a user story URL and produce a plan, proposal, specs, and tasks. Stops before implementation. |
104
- | `/main <task>` | Quick direct implementation, no OpenSpec, no ensemble, no PRs. Just do it. |
105
- | `/create-engineer <name> "<description>"` | Create a custom engineer agent from a description, with skills auto-installed from [skills.sh](https://www.skills.sh/) |
102
+ | `/ob-init` | Initialize the project. Asks greenfield vs brownfield, then activates the agent team. Supports skipping doc generation for new projects. |
103
+ | `/ob-plan <url>` | Parse a user story URL and produce a plan, proposal, specs, and tasks. Stops before implementation. Use platform mode, not `None`. |
104
+ | `/ob-main <task>` | Quick direct implementation, no OpenSpec, no ensemble, no PRs. Just do it. |
105
+ | `/ob-create-engineer <name> "<description>"` | Create a custom engineer agent from a description, with skills auto-installed from [skills.sh](https://www.skills.sh/) |
106
+ | `/ob-create-architecture` | Generate or regenerate `ARCHITECTURE.md` from the codebase. Safe to rerun any time the architecture changes. |
107
+ | `/ob-create-design` | Generate or regenerate `DESIGN.md` from the codebase design system. Safe to rerun any time the design system changes. |
106
108
 
107
109
  ---
108
110
 
@@ -121,11 +123,14 @@ devops-manager lead/orchestrator, planning, PR lifecycle
121
123
  basic-engineer implementation worker, ability-driven
122
124
  ```
123
125
 
124
- `basic-engineer` behavior is composed by abilities, not hardcoded role silos.
126
+ `basic-engineer` behavior is composed by abilities, not hardcoded role silos.
127
+ Project-specific specialization comes from user-created custom engineers via `/ob-create-engineer`. During `/opsx-apply`, the lead should inspect the engineers that actually exist in `.agents/agents/`, prefer matching custom engineers, and fall back to `basic-engineer` only when no specialist is a clear fit.
125
128
 
126
- ### Skills, platform knowledge
127
-
128
- Skills define _what to know_. They provide project rules, platform behavior, and task-specific execution guidance. Agents auto-detect/load relevant skills; **you do not manually choose skills per prompt**.
129
+ ### Skills, platform knowledge
130
+
131
+ Skills define _what to know_. They provide project rules, platform behavior, and task-specific execution guidance. Agents auto-detect/load relevant skills; **you do not manually choose skills per prompt**.
132
+
133
+ If you choose platform `None` during onboarding, no userstory or pull-request platform skills are injected into the workflow. The project works from direct conversation, local repo context, and optional OpenSpec artifacts only.
129
134
 
130
135
  Current loading model:
131
136
 
@@ -174,7 +179,7 @@ Models are fetched live from [models.dev](https://models.dev) (3000+ models, cac
174
179
 
175
180
  ## The pipeline
176
181
 
177
- When you give the lead agent a work item URL, execution follows this pipeline:
182
+ When you give the lead agent a work item URL, execution follows this pipeline. If onboarding platform is `None`, skip the work item / PR stages and work directly from conversation plus optional OpenSpec artifacts:
178
183
 
179
184
  ```
180
185
  devops-manager (load ob-global first)
@@ -239,15 +244,49 @@ your-project/
239
244
 
240
245
  ## The bootstrap sequence
241
246
 
242
- The first time you type `init` in OpenCode after onboarding:
247
+ The first time you type `init` in OpenCode after onboarding, the agent asks whether this is a **greenfield** or **brownfield** project:
248
+
249
+ ### Brownfield (existing codebase)
243
250
 
244
251
  1. Bootstrap-mode `AGENTS.md` triggers the initialization workflow
245
252
  2. OpenCode archives existing project context into OpenSpec (`project-history`)
246
- 3. OpenCode generates real `DESIGN.md` and `ARCHITECTURE.md` from your codebase
247
- 4. Bootstrap `AGENTS.md` is replaced with production guidance
248
- 5. Team workflows become fully active for normal implementation tasks
253
+ 3. OpenCode runs `/ob-create-architecture` → generates real `ARCHITECTURE.md` from your codebase
254
+ 4. OpenCode runs `/ob-create-design` → generates real `DESIGN.md` from your design system
255
+ 5. OpenSpec `config.yaml` is populated with discovered tech stack and domain context
256
+ 6. Bootstrap `AGENTS.md` is replaced with production guidance
257
+ 7. Team workflows become fully active for normal implementation tasks
258
+
259
+ ### Greenfield (new project, little or no existing code)
260
+
261
+ 1. Bootstrap-mode `AGENTS.md` triggers the initialization workflow
262
+ 2. OpenSpec `config.yaml` is populated with what is known (intended stack, domain)
263
+ 3. Bootstrap `AGENTS.md` is replaced with production guidance
264
+ 4. `ARCHITECTURE.md` and `DESIGN.md` are left as placeholder files
265
+
266
+ Once your codebase has meaningful content, run:
267
+ - `/ob-create-architecture` to generate architecture docs
268
+ - `/ob-create-design` to generate design system docs
269
+
270
+ Both commands are safe to rerun at any time as the project evolves.
271
+
272
+ ---
273
+
274
+ ## Token Budget Controls
275
+
276
+ Long unattended agent sessions can consume significant tokens. Set these controls up **before** first use:
277
+
278
+ 1. **Set provider-side limits first** — monthly soft-limit + hard usage cap in your provider dashboard:
279
+ - OpenAI: [platform.openai.com/account/limits](https://platform.openai.com/account/limits)
280
+ - Anthropic: [console.anthropic.com](https://console.anthropic.com)
281
+ - Google AI Studio: [aistudio.google.com/app/usage](https://aistudio.google.com/app/usage)
282
+
283
+ 2. **Route models by task type** — use a fast/cheap model (e.g. `haiku`, `gpt-4o-mini`) for orchestration and status loops; reserve expensive models (e.g. `sonnet`, `opus`, `gpt-4o`) for implementation tasks only.
284
+
285
+ 3. **Install the quota plugin** — the [`opencode-quota`](https://github.com/opencode-ai/opencode-quota) plugin adds `/quota` and `/quota_status` commands that surface real-time token usage inside OpenCode sessions.
286
+
287
+ 4. **Use `/quota` checkpoints** — run `/quota` before starting any `/opsx-apply` session and after each agent wave. Pause at 75% consumed; stop at 90%.
249
288
 
250
- After this, every agent has accurate, persistent context about your project, no manual documentation required.
289
+ 5. **Confirm before large runs** the onboarded `/opsx-apply` workflow will ask for your confirmation before spawning agents for Medium (4–7 tasks) or High (8+ tasks) scope sessions.
251
290
 
252
291
  ---
253
292
 
@@ -20,13 +20,13 @@ permission:
20
20
  ## Workflow
21
21
 
22
22
  When spawned by the lead:
23
- 1. Call `team_tasks_list` and verify your assigned task IDs and status before starting.
24
- 2. For each assigned task: before calling `team_claim task_id:<id>`, check `team_tasks_list` to confirm every dependency of that task has status `done`. If any dependency is not done, skip to the next assigned task that IS unblocked. Only claim tasks whose dependencies are fully complete.
25
- 3. Load `@ob-global` first, then load mandatory ability `Guardrails`.
23
+ 1. Call `team_tasks_list` immediately and identify your assigned task IDs.
24
+ 2. Claim the first assigned task that is unblocked with `team_claim task_id:<id>`. If the first assigned task is blocked, claim the next assigned task whose dependencies are already `done`. Do not wait once you have an unblocked assigned task.
25
+ 3. After claiming, load `@ob-global` first, then load mandatory ability `Guardrails`.
26
26
  4. Load additional abilities from the `## Abilities` section as needed for the claimed task domain (for example: development, testing, infrastructure). Each ability can include one or more skills; load all relevant skills listed under each selected ability.
27
- 5. Send a short `team_message` to lead confirming claimed task ID and loaded skills.
27
+ 5. Send a short `team_message` to lead confirming the claimed task ID and loaded skills.
28
28
  6. Implement the task following all loaded skill rules.
29
29
  7. Call `team_tasks_complete task_id:<id>` after finishing that task.
30
30
  8. Repeat until all currently assigned tasks are completed or blocked.
31
31
  9. Message lead with results via `team_message`. Lead may assign more tasks, do NOT stop working or shut down until lead confirms no more tasks for you.
32
- 10. If lead sends new task IDs via `team_message`, treat them as new assignments and go back to step 2.
32
+ 10. If lead sends new task IDs via `team_message`, treat them as new assignments and go back to step 1.
@@ -25,10 +25,10 @@ Skills are located in `.agents/skills/`. Load required skills explicitly from co
25
25
 
26
26
  Always load `@ob-global` FIRST before any other skill.
27
27
 
28
- Platform skill selection must follow onboarding platform choice from CLI step:
29
- <!-- OB-PLATFORM-SKILLS-START -->
30
- - Platform-specific skill instructions are injected during onboarding copy step.
31
- <!-- OB-PLATFORM-SKILLS-END -->
28
+ Platform skill selection must follow onboarding platform choice from CLI step:
29
+ <!-- OB-PLATFORM-SKILLS-START -->
30
+ - Platform-specific skill instructions are injected during onboarding copy step.
31
+ <!-- OB-PLATFORM-SKILLS-END -->
32
32
 
33
33
  1. If the spawn prompt lists specific skills to load, read those `SKILL.md` files FIRST before any implementation
34
34
  2. Additionally, identify the platform from URLs or context
@@ -39,12 +39,16 @@ Examples of intent → skill mapping:
39
39
  - "PR has comments" or "review feedback" → load platform pullrequest observer skill
40
40
  - URL-based platform inference is fallback-only when onboarding metadata is unavailable
41
41
 
42
- Rules:
43
- - Platform selected in onboarding metadata takes precedence over URL inference when both exist
44
- - Never interact with a platform without loading the matching skill first
45
- - Follow skill instructions exactly, do not partially apply them
46
- - If no skill exists for the platform, report it as a blocker rather than improvising
47
- - Skills listed in the spawn prompt are MANDATORY, not optional
42
+ Rules:
43
+ - Platform selected in onboarding metadata takes precedence over URL inference when both exist
44
+ - Never interact with a platform without loading the matching skill first
45
+ - Follow skill instructions exactly, do not partially apply them
46
+ - If no skill exists for the platform, report it as a blocker rather than improvising
47
+ - Skills listed in the spawn prompt are MANDATORY, not optional
48
+
49
+ <!-- OB-PLATFORM-MODE-START -->
50
+ This project uses platform-integrated workflow modes described below.
51
+ <!-- OB-PLATFORM-MODE-END -->
48
52
 
49
53
  ## Working Modes
50
54
 
@@ -46,19 +46,21 @@ If multiple roots are generated, each root is an independent git repository. Bra
46
46
 
47
47
  When working as a spawned agent in an ensemble team, these rules are mandatory:
48
48
 
49
- **Claim-first execution:**
50
- - Your FIRST tool call after loading skills MUST be `team_claim task_id:<id>`. The dashboard must show your active task immediately.
51
- - Do NOT spend more than 2 tool calls reading/planning before writing code. Claim first, then explore only what's needed for that specific task.
49
+ **Board-first claim flow:**
50
+ - If you are working from assigned task IDs, your first task-board call may be `team_tasks_list` to confirm the task exists and its dependencies are done.
51
+ - Your next task-board call for the first unblocked assigned task MUST be `team_claim task_id:<id>`. The dashboard should show your active task immediately after that.
52
+ - Do NOT spend more than 2 total tool calls reading/planning before claiming an unblocked assigned task.
52
53
 
53
54
  **One task at a time:**
54
55
  - Claim → implement → build/verify → commit → `team_tasks_complete` → claim next.
55
56
  - NEVER hold multiple claimed tasks simultaneously.
56
57
  - NEVER batch completions. Mark done immediately after each commit.
57
58
 
58
- **Dependency check before claiming:**
59
- - Before calling `team_claim task_id:<id>`, call `team_tasks_list` and verify every dependency of that task has status `done`.
60
- - If any dependency is not `done`, do NOT claim that task. Scan the board for another assigned task whose dependencies ARE all done and claim that one instead.
61
- - If no assigned task is unblocked, report blocked to lead and STOP. Do NOT poll, sleep, or loop waiting for a dependency.
59
+ **Dependency check before claiming:**
60
+ - Before calling `team_claim task_id:<id>`, call `team_tasks_list` and verify every dependency of that task has status `done`.
61
+ - If any dependency is not `done`, do NOT claim that task. Scan the board for another assigned task whose dependencies ARE all done and claim that one instead.
62
+ - If no assigned task is unblocked, report blocked to lead and STOP. Do NOT poll, sleep, or loop waiting for a dependency.
63
+ - If the lead provided `claim_task` or exact task IDs and the board does not match that assignment, report the mismatch to lead immediately instead of waiting idle.
62
64
 
63
65
  **Commit cadence:**
64
66
  - After each task passes build: `git add -A && git commit -m "feat: <short description>"`
@@ -0,0 +1,76 @@
1
+ ---
2
+ description: Generate or regenerate ARCHITECTURE.md by analyzing the codebase structure. Safe to run at any time.
3
+ ---
4
+
5
+ Analyze the architecture of this codebase and generate a populated `ARCHITECTURE.md` in the project root.
6
+
7
+ Reference material:
8
+ Website : https://architecture.md/
9
+ Repo : https://github.com/timajwilliams/architecture
10
+
11
+ **Steps**
12
+
13
+ 1. **Check current state**
14
+
15
+ Read `ARCHITECTURE.md`. If it already contains real content (not the placeholder), warn the user:
16
+ > "ARCHITECTURE.md already has content. Running this will overwrite it. Proceeding..."
17
+
18
+ Then continue regardless — this command is always safe to rerun.
19
+
20
+ 2. **Check for source roots**
21
+
22
+ Load `.agents/source-roots.json` when present. Only analyze those roots plus this repo's docs/config files.
23
+
24
+ 3. **Analyze the codebase**
25
+
26
+ Read:
27
+ - Folder structure, root-level config files
28
+ - Route/controller definitions
29
+ - Data models, schemas, migrations
30
+ - Integration points, external API calls
31
+ - Build config, CI/CD workflows, Dockerfiles
32
+ - README, changelogs, ADRs, any existing docs
33
+
34
+ Do not rely on prior knowledge — read the actual files.
35
+
36
+ 4. **Write ARCHITECTURE.md**
37
+
38
+ Overwrite `ARCHITECTURE.md` with a complete document following this structure:
39
+
40
+ - **Architecture Overview** — what the system is, what problem it solves, major architectural style
41
+ - **1. Project Structure** — annotated directory tree with purpose of each major directory
42
+ - **2. High-Level System Diagram** — Mermaid diagram of actors, services, data stores, external systems
43
+ - **3. Core Components** — each major component: name, responsibility, key files, technologies, inputs/outputs
44
+ - 3.1 Frontend / User Interface (if present)
45
+ - 3.2 Backend / Server / API (if present)
46
+ - 3.3 Shared Libraries / Common Code (if present)
47
+ - 3.4 CLI / Scripts / Automation (if present)
48
+ - **4. Data Flow** — request lifecycle, key user journeys, sequence diagram for main runtime flow
49
+ - **5. Data Stores** — all persistent storage: type, purpose, schemas, migration approach
50
+ - **6. External Integrations / APIs** — each integration: method, config location, auth, failure behavior
51
+ - **7. Key Technologies** — full stack summary with architectural relevance of each
52
+ - **8. Deployment & Infrastructure** — build artifacts, env config, containerization, CI/CD, hosting
53
+ - **9. Security Architecture** — auth, authz, secrets, input validation, trust boundaries
54
+ - **10. Monitoring & Observability** — logging, metrics, tracing, error reporting
55
+ - **11. Performance & Scalability** — caching, batching, concurrency, known bottlenecks
56
+ - **12. Development Workflow** — local setup, install/dev/test/build/lint commands
57
+ - **13. Testing Strategy** — test frameworks, locations, coverage gates, gaps
58
+ - **14. Architectural Decisions & Rationale** — key choices with evidence and tradeoffs
59
+ - **15. Constraints, Risks, and Technical Debt** — tight coupling, TODOs, operational risks
60
+ - **16. Future Considerations** — documented roadmap + reasonable recommendations (labeled as such)
61
+ - **17. Project Identification** — name, language, type, runtime, date of review, maintainer
62
+ - **18. Glossary / Acronyms** — project-specific terms an agent or new developer needs to know
63
+
64
+ Rules:
65
+ - Be specific and concrete — include actual directories, files, modules, commands
66
+ - Do NOT invent systems, services, or integrations not supported by repository evidence
67
+ - Mark anything undiscoverable as "Not evident from the repository"
68
+ - Use Mermaid diagrams where helpful
69
+ - Write as if this document will be committed and maintained over time
70
+
71
+ 5. **Report**
72
+
73
+ Tell the user:
74
+ - `ARCHITECTURE.md` generated successfully
75
+ - Top-level components found
76
+ - Tip: "Rerun `/ob-create-architecture` any time the architecture changes significantly."
@@ -0,0 +1,53 @@
1
+ ---
2
+ description: Generate or regenerate DESIGN.md by analyzing the codebase design system. Safe to run at any time.
3
+ ---
4
+
5
+ Analyze the design system of this codebase and generate a populated `DESIGN.md` in the project root.
6
+
7
+ Reference material:
8
+ Overview : https://stitch.withgoogle.com/docs/design-md/overview/
9
+ Format : https://stitch.withgoogle.com/docs/design-md/format/
10
+ Spec : https://github.com/google-labs-code/design.md
11
+
12
+ Examples from the spec repo:
13
+ https://github.com/google-labs-code/design.md/blob/main/examples/atmospheric-glass/DESIGN.md
14
+ https://github.com/google-labs-code/design.md/blob/main/examples/paws-and-paths/DESIGN.md
15
+
16
+ **Steps**
17
+
18
+ 1. **Check current state**
19
+
20
+ Read `DESIGN.md`. If it already contains real content (not the placeholder), warn the user:
21
+ > "DESIGN.md already has content. Running this will overwrite it. Proceeding..."
22
+
23
+ Then continue regardless — this command is always safe to rerun.
24
+
25
+ 2. **Check for source roots**
26
+
27
+ Load `.agents/source-roots.json` when present. Only analyze those roots.
28
+
29
+ 3. **Analyze the codebase**
30
+
31
+ Look for:
32
+ - CSS files, Tailwind config, PostCSS config
33
+ - Component files with inline styles or class usage
34
+ - Design token definitions (JS/TS/JSON/YAML)
35
+ - Theme files or style constants
36
+ - UI framework config (shadcn, MUI, Chakra, etc.)
37
+
38
+ If access to a running local server or screenshots is available, use them to validate visual identity.
39
+
40
+ 4. **Write DESIGN.md**
41
+
42
+ Overwrite `DESIGN.md` with the result. The output must:
43
+ - Begin with YAML frontmatter containing all structured design tokens (colors, typography, spacing, elevation, motion, radii, shadows, etc.)
44
+ - Follow with free-form Markdown describing the look & feel and capturing design intent that token values alone cannot convey
45
+ - Be entirely self-contained — do not reference any files, variables, or paths from the codebase
46
+ - Use valid YAML design token format for all token values
47
+
48
+ 5. **Report**
49
+
50
+ Tell the user:
51
+ - `DESIGN.md` generated successfully
52
+ - Key design tokens found (color palette, fonts, spacing scale)
53
+ - Tip: "Rerun `/ob-create-design` any time your design system changes."
@@ -4,15 +4,15 @@ description: Create a custom engineer agent from a description, with skills from
4
4
 
5
5
  Create a new custom engineer agent based on the `basic-engineer.md` template.
6
6
 
7
- **Usage**: `/create-engineer <name> "<description>"`
7
+ **Usage**: `/ob-create-engineer <name> "<description>"`
8
8
 
9
- Example: `/create-engineer frontend-engineer "A frontend engineer specialized in React, Next.js, and CSS"`
9
+ Example: `/ob-create-engineer frontend-engineer "A frontend engineer specialized in React, Next.js, and CSS"`
10
10
 
11
11
  **Steps**
12
12
 
13
13
  1. **Parse input**
14
14
 
15
- Extract `<name>` and `<description>` from the arguments after `/create-engineer`.
15
+ Extract `<name>` and `<description>` from the arguments after `/ob-create-engineer`.
16
16
  - Name should be kebab-case (e.g., `frontend-engineer`)
17
17
  - Description is the quoted string explaining the agent's specialty
18
18
  - If no input provided, use the AskUserQuestion tool to ask for both.
@@ -65,16 +65,16 @@ Example: `/create-engineer frontend-engineer "A frontend engineer specialized in
65
65
  ## Workflow
66
66
 
67
67
  When spawned by the lead:
68
- 1. Call `team_tasks_list` and verify your assigned task IDs and status before starting.
69
- 2. For each assigned task: before calling `team_claim task_id:<id>`, check `team_tasks_list` to confirm every dependency of that task has status `done`. If any dependency is not done, skip to the next assigned task that IS unblocked. Only claim tasks whose dependencies are fully complete.
70
- 3. Load `@ob-global` first, then load mandatory ability `Guardrails`.
68
+ 1. Call `team_tasks_list` immediately and identify your assigned task IDs.
69
+ 2. Claim the first assigned task that is unblocked with `team_claim task_id:<id>`. If the first assigned task is blocked, claim the next assigned task whose dependencies are already `done`. Do not wait once you have an unblocked assigned task.
70
+ 3. After claiming, load `@ob-global` first, then load mandatory ability `Guardrails`.
71
71
  4. Load additional abilities from the `## Abilities` section as needed for the claimed task domain (for example: development, testing, infrastructure). Each ability can include one or more skills; load all relevant skills listed under each selected ability.
72
- 5. Send a short `team_message` to lead confirming claimed task ID and loaded skills.
72
+ 5. Send a short `team_message` to lead confirming the claimed task ID and loaded skills.
73
73
  6. Implement the task following all loaded skill rules.
74
74
  7. Call `team_tasks_complete task_id:<id>` after finishing that task.
75
75
  8. Repeat until all currently assigned tasks are completed or blocked.
76
76
  9. Message lead with results via `team_message`. Lead may assign more tasks, do NOT stop working or shut down until lead confirms no more tasks for you.
77
- 10. If lead sends new task IDs via `team_message`, treat them as new assignments and go back to step 2.
77
+ 10. If lead sends new task IDs via `team_message`, treat them as new assignments and go back to step 1.
78
78
  ```
79
79
 
80
80
  Place the installed skills under the most relevant ability category:
@@ -107,3 +107,4 @@ Example: `/create-engineer frontend-engineer "A frontend engineer specialized in
107
107
  - Pick a color that doesn't conflict with existing agents (basic-engineer uses #68A063)
108
108
  - Skills should match both the agent description AND the project's tech stack
109
109
  - If `npx skills` CLI is not available, manually reference skills by their `owner/repo` name in the abilities section and tell the user to install them
110
+ - Keep the worker startup sequence short. Claim comes before skill loading so the agent is visible on the board immediately.
@@ -0,0 +1,8 @@
1
+ ---
2
+ description: Initialize the project. Runs the bootstrap sequence defined in AGENTS.md if not yet initialized. Supports both greenfield and brownfield projects.
3
+ ---
4
+
5
+ Check if `AGENTS.md` is in bootstrap mode (contains `<!-- AGENTS-TEMPLATE-START -->`).
6
+
7
+ - If yes: run the full initialization sequence defined in `AGENTS.md` now. The sequence will ask whether this is a greenfield or brownfield project and branch accordingly.
8
+ - If no: tell the user the project is already initialized. Suggest running `/ob-create-architecture` or `/ob-create-design` if they want to refresh those docs.
@@ -2,7 +2,7 @@
2
2
  description: Quick direct implementation, no OpenSpec, no ensemble, no PRs. Just do it.
3
3
  ---
4
4
 
5
- Implement the task described after `/main` directly and immediately.
5
+ Implement the task described after `/ob-main` directly and immediately.
6
6
 
7
7
  **Rules:**
8
8
  - No OpenSpec artifacts (no proposal, no specs, no tasks.md)
@@ -14,4 +14,4 @@ Implement the task described after `/main` directly and immediately.
14
14
  - After editing, run `pnpm run typecheck` to catch type errors; fix any that are caused by your changes
15
15
  - Do NOT run lint or tests unless the user asks
16
16
 
17
- **Input**: Everything after `/main` is the task. Execute it now.
17
+ **Input**: Everything after `/ob-main` is the task. Execute it now.
@@ -2,9 +2,9 @@
2
2
  description: Parse a user story URL and produce a plan, proposal, specs, and tasks. Stops before implementation.
3
3
  ---
4
4
 
5
- Parse the work item at the URL provided after `/plan` and produce a full implementation plan.
5
+ Parse the work item at the URL provided after `/ob-plan` and produce a full implementation plan.
6
6
 
7
- **Input**: A GitHub Issue URL or Azure DevOps work item URL. Example: `/plan https://github.com/org/repo/issues/42`
7
+ **Input**: A GitHub Issue URL or Azure DevOps work item URL. Example: `/ob-plan https://github.com/org/repo/issues/42`
8
8
 
9
9
  **Steps:**
10
10