opencode-onboard 0.4.5 → 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.
- package/README.md +58 -19
- package/content/.agents/agents/basic-engineer.md +5 -5
- package/content/.agents/agents/devops-manager.md +14 -10
- package/content/.agents/skills/ob-global/SKILL.md +9 -7
- package/content/.opencode/commands/ob-create-architecture.md +76 -0
- package/content/.opencode/commands/ob-create-design.md +53 -0
- package/content/.opencode/commands/{create-engineer.md → ob-create-engineer.md} +9 -8
- package/content/.opencode/commands/ob-init.md +8 -0
- package/content/.opencode/commands/{main.md → ob-main.md} +2 -2
- package/content/.opencode/commands/{plan.md → ob-plan.md} +2 -2
- package/content/.opencode/commands/opsx-apply.md +212 -193
- package/content/.opencode/skills/openspec-apply-change/SKILL.md +234 -176
- package/content/AGENTS.md +152 -49
- package/content/ARCHITECTURE.md +16 -327
- package/content/DESIGN.md +16 -26
- package/package.json +1 -1
- package/src/commands/join.js +6 -1
- package/src/commands/single.js +1 -1
- package/src/presets/models.json +2 -2
- package/src/presets/platforms.json +4 -0
- package/src/steps/copy/agents.js +200 -3
- package/src/steps/copy/agents.test.js +45 -0
- package/src/steps/copy/copy.test.js +15 -2
- package/src/steps/copy/index.js +2 -1
- package/src/steps/metadata/index.js +6 -5
- package/src/steps/metadata/metadata.test.js +16 -8
- package/src/steps/models/write.js +17 -4
- package/src/steps/models/write.test.js +57 -56
- package/src/steps/openspec/ensemble.js +81 -54
- package/src/steps/openspec/ensemble.test.js +40 -8
- package/src/steps/optimization/global.js +21 -1
- package/src/steps/optimization/global.test.js +3 -0
- package/src/steps/platform/index.js +8 -1
- package/src/steps/platform/platform.test.js +19 -0
- 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
|
|
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
|
[](https://www.npmjs.com/package/opencode-onboard)
|
|
12
12
|
[](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
|
|
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
|
|
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 `
|
|
247
|
-
4.
|
|
248
|
-
5.
|
|
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
|
-
|
|
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
|
|
24
|
-
2.
|
|
25
|
-
3.
|
|
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
|
|
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
|
-
**
|
|
50
|
-
-
|
|
51
|
-
-
|
|
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
|
|
69
|
-
2.
|
|
70
|
-
3.
|
|
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
|
|
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
|
|