@openrig/cli 0.1.2 → 0.1.4
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/daemon/assets/guidance/openrig-start.md +16 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts +12 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +92 -3
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +5 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +82 -2
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +2 -1
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +24 -1
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +1 -1
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +1 -0
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +10 -1
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/specs/agents/analyst/agent.yaml +10 -1
- package/daemon/specs/agents/design/agent.yaml +10 -1
- package/daemon/specs/agents/design/guidance/role.md +13 -0
- package/daemon/specs/agents/impl/agent.yaml +10 -1
- package/daemon/specs/agents/impl/guidance/role.md +20 -0
- package/daemon/specs/agents/lead/agent.yaml +10 -1
- package/daemon/specs/agents/lead/guidance/role.md +18 -0
- package/daemon/specs/agents/qa/agent.yaml +10 -1
- package/daemon/specs/agents/qa/guidance/role.md +52 -0
- package/daemon/specs/agents/reviewer/agent.yaml +10 -1
- package/daemon/specs/agents/reviewer/guidance/role.md +13 -0
- package/daemon/specs/agents/shared/agent.yaml +38 -0
- package/daemon/specs/agents/shared/skills/agent-browser/LOCAL-INSIGHTS.md +189 -0
- package/daemon/specs/agents/shared/skills/agent-browser/SKILL.md +417 -0
- package/daemon/specs/agents/shared/skills/brainstorming/SKILL.md +96 -0
- package/daemon/specs/agents/shared/skills/containerized-e2e/SKILL.md +256 -0
- package/daemon/specs/agents/shared/skills/containerized-e2e/scripts/Dockerfile +39 -0
- package/daemon/specs/agents/shared/skills/containerized-e2e/scripts/build-e2e-image.sh +37 -0
- package/daemon/specs/agents/shared/skills/containerized-e2e/templates/control-plane-test.yaml +40 -0
- package/daemon/specs/agents/shared/skills/containerized-e2e/templates/e2e-report-template.md +94 -0
- package/daemon/specs/agents/shared/skills/containerized-e2e/templates/expansion-collision-fragment.yaml +13 -0
- package/daemon/specs/agents/shared/skills/containerized-e2e/templates/expansion-pod-fragment.yaml +14 -0
- package/daemon/specs/agents/shared/skills/development-team/SKILL.md +149 -0
- package/daemon/specs/agents/shared/skills/dogfood/SKILL.md +220 -0
- package/daemon/specs/agents/shared/skills/dogfood/references/issue-taxonomy.md +109 -0
- package/daemon/specs/agents/shared/skills/dogfood/templates/dogfood-report-template.md +53 -0
- package/daemon/specs/agents/shared/skills/executing-plans/SKILL.md +84 -0
- package/daemon/specs/agents/shared/skills/frontend-design/LICENSE.txt +177 -0
- package/daemon/specs/agents/shared/skills/frontend-design/SKILL.md +42 -0
- package/daemon/specs/agents/shared/skills/openrig-user/SKILL.md +468 -0
- package/daemon/specs/agents/shared/skills/orchestration-team/SKILL.md +234 -0
- package/daemon/specs/agents/shared/skills/review-team/SKILL.md +210 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/SKILL.md +296 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/find-polluter.sh +63 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/test-academic.md +14 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/daemon/specs/agents/shared/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/daemon/specs/agents/shared/skills/test-driven-development/SKILL.md +371 -0
- package/daemon/specs/agents/shared/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/daemon/specs/agents/shared/skills/using-superpowers/SKILL.md +95 -0
- package/daemon/specs/agents/shared/skills/verification-before-completion/SKILL.md +139 -0
- package/daemon/specs/agents/shared/skills/writing-plans/SKILL.md +116 -0
- package/daemon/specs/agents/synthesizer/agent.yaml +10 -1
- package/daemon/specs/demo.CULTURE.md +92 -0
- package/daemon/specs/demo.yaml +91 -0
- package/daemon/specs/implementation-pair.yaml +3 -3
- package/daemon/specs/product-team.CULTURE.md +137 -0
- package/daemon/specs/product-team.yaml +5 -4
- package/dist/client.d.ts +8 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +15 -6
- package/dist/client.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +5 -1
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/up.js +2 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +54 -7
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/fetch-with-timeout.d.ts +9 -0
- package/dist/fetch-with-timeout.d.ts.map +1 -0
- package/dist/fetch-with-timeout.js +41 -0
- package/dist/fetch-with-timeout.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +2 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +8 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-superpowers
|
|
3
|
+
description: Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<EXTREMELY-IMPORTANT>
|
|
7
|
+
If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.
|
|
8
|
+
|
|
9
|
+
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
|
|
10
|
+
|
|
11
|
+
This is not negotiable. This is not optional. You cannot rationalize your way out of this.
|
|
12
|
+
</EXTREMELY-IMPORTANT>
|
|
13
|
+
|
|
14
|
+
## How to Access Skills
|
|
15
|
+
|
|
16
|
+
**In Claude Code:** Use the `Skill` tool. When you invoke a skill, its content is loaded and presented to you—follow it directly. Never use the Read tool on skill files.
|
|
17
|
+
|
|
18
|
+
**In other environments:** Check your platform's documentation for how skills are loaded.
|
|
19
|
+
|
|
20
|
+
# Using Skills
|
|
21
|
+
|
|
22
|
+
## The Rule
|
|
23
|
+
|
|
24
|
+
**Invoke relevant or requested skills BEFORE any response or action.** Even a 1% chance a skill might apply means that you should invoke the skill to check. If an invoked skill turns out to be wrong for the situation, you don't need to use it.
|
|
25
|
+
|
|
26
|
+
```dot
|
|
27
|
+
digraph skill_flow {
|
|
28
|
+
"User message received" [shape=doublecircle];
|
|
29
|
+
"About to EnterPlanMode?" [shape=doublecircle];
|
|
30
|
+
"Already brainstormed?" [shape=diamond];
|
|
31
|
+
"Invoke brainstorming skill" [shape=box];
|
|
32
|
+
"Might any skill apply?" [shape=diamond];
|
|
33
|
+
"Invoke Skill tool" [shape=box];
|
|
34
|
+
"Announce: 'Using [skill] to [purpose]'" [shape=box];
|
|
35
|
+
"Has checklist?" [shape=diamond];
|
|
36
|
+
"Create TodoWrite todo per item" [shape=box];
|
|
37
|
+
"Follow skill exactly" [shape=box];
|
|
38
|
+
"Respond (including clarifications)" [shape=doublecircle];
|
|
39
|
+
|
|
40
|
+
"About to EnterPlanMode?" -> "Already brainstormed?";
|
|
41
|
+
"Already brainstormed?" -> "Invoke brainstorming skill" [label="no"];
|
|
42
|
+
"Already brainstormed?" -> "Might any skill apply?" [label="yes"];
|
|
43
|
+
"Invoke brainstorming skill" -> "Might any skill apply?";
|
|
44
|
+
|
|
45
|
+
"User message received" -> "Might any skill apply?";
|
|
46
|
+
"Might any skill apply?" -> "Invoke Skill tool" [label="yes, even 1%"];
|
|
47
|
+
"Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
|
|
48
|
+
"Invoke Skill tool" -> "Announce: 'Using [skill] to [purpose]'";
|
|
49
|
+
"Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
|
|
50
|
+
"Has checklist?" -> "Create TodoWrite todo per item" [label="yes"];
|
|
51
|
+
"Has checklist?" -> "Follow skill exactly" [label="no"];
|
|
52
|
+
"Create TodoWrite todo per item" -> "Follow skill exactly";
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Red Flags
|
|
57
|
+
|
|
58
|
+
These thoughts mean STOP—you're rationalizing:
|
|
59
|
+
|
|
60
|
+
| Thought | Reality |
|
|
61
|
+
|---------|---------|
|
|
62
|
+
| "This is just a simple question" | Questions are tasks. Check for skills. |
|
|
63
|
+
| "I need more context first" | Skill check comes BEFORE clarifying questions. |
|
|
64
|
+
| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
|
|
65
|
+
| "I can check git/files quickly" | Files lack conversation context. Check for skills. |
|
|
66
|
+
| "Let me gather information first" | Skills tell you HOW to gather information. |
|
|
67
|
+
| "This doesn't need a formal skill" | If a skill exists, use it. |
|
|
68
|
+
| "I remember this skill" | Skills evolve. Read current version. |
|
|
69
|
+
| "This doesn't count as a task" | Action = task. Check for skills. |
|
|
70
|
+
| "The skill is overkill" | Simple things become complex. Use it. |
|
|
71
|
+
| "I'll just do this one thing first" | Check BEFORE doing anything. |
|
|
72
|
+
| "This feels productive" | Undisciplined action wastes time. Skills prevent this. |
|
|
73
|
+
| "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |
|
|
74
|
+
|
|
75
|
+
## Skill Priority
|
|
76
|
+
|
|
77
|
+
When multiple skills could apply, use this order:
|
|
78
|
+
|
|
79
|
+
1. **Process skills first** (brainstorming, debugging) - these determine HOW to approach the task
|
|
80
|
+
2. **Implementation skills second** (frontend-design, mcp-builder) - these guide execution
|
|
81
|
+
|
|
82
|
+
"Let's build X" → brainstorming first, then implementation skills.
|
|
83
|
+
"Fix this bug" → debugging first, then domain-specific skills.
|
|
84
|
+
|
|
85
|
+
## Skill Types
|
|
86
|
+
|
|
87
|
+
**Rigid** (TDD, debugging): Follow exactly. Don't adapt away discipline.
|
|
88
|
+
|
|
89
|
+
**Flexible** (patterns): Adapt principles to context.
|
|
90
|
+
|
|
91
|
+
The skill itself tells you which.
|
|
92
|
+
|
|
93
|
+
## User Instructions
|
|
94
|
+
|
|
95
|
+
Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verification-before-completion
|
|
3
|
+
description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verification Before Completion
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Claiming work is complete without verification is dishonesty, not efficiency.
|
|
11
|
+
|
|
12
|
+
**Core principle:** Evidence before claims, always.
|
|
13
|
+
|
|
14
|
+
**Violating the letter of this rule is violating the spirit of this rule.**
|
|
15
|
+
|
|
16
|
+
## The Iron Law
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
If you haven't run the verification command in this message, you cannot claim it passes.
|
|
23
|
+
|
|
24
|
+
## The Gate Function
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
BEFORE claiming any status or expressing satisfaction:
|
|
28
|
+
|
|
29
|
+
1. IDENTIFY: What command proves this claim?
|
|
30
|
+
2. RUN: Execute the FULL command (fresh, complete)
|
|
31
|
+
3. READ: Full output, check exit code, count failures
|
|
32
|
+
4. VERIFY: Does output confirm the claim?
|
|
33
|
+
- If NO: State actual status with evidence
|
|
34
|
+
- If YES: State claim WITH evidence
|
|
35
|
+
5. ONLY THEN: Make the claim
|
|
36
|
+
|
|
37
|
+
Skip any step = lying, not verifying
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Common Failures
|
|
41
|
+
|
|
42
|
+
| Claim | Requires | Not Sufficient |
|
|
43
|
+
|-------|----------|----------------|
|
|
44
|
+
| Tests pass | Test command output: 0 failures | Previous run, "should pass" |
|
|
45
|
+
| Linter clean | Linter output: 0 errors | Partial check, extrapolation |
|
|
46
|
+
| Build succeeds | Build command: exit 0 | Linter passing, logs look good |
|
|
47
|
+
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
|
|
48
|
+
| Regression test works | Red-green cycle verified | Test passes once |
|
|
49
|
+
| Agent completed | VCS diff shows changes | Agent reports "success" |
|
|
50
|
+
| Requirements met | Line-by-line checklist | Tests passing |
|
|
51
|
+
|
|
52
|
+
## Red Flags - STOP
|
|
53
|
+
|
|
54
|
+
- Using "should", "probably", "seems to"
|
|
55
|
+
- Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.)
|
|
56
|
+
- About to commit/push/PR without verification
|
|
57
|
+
- Trusting agent success reports
|
|
58
|
+
- Relying on partial verification
|
|
59
|
+
- Thinking "just this once"
|
|
60
|
+
- Tired and wanting work over
|
|
61
|
+
- **ANY wording implying success without having run verification**
|
|
62
|
+
|
|
63
|
+
## Rationalization Prevention
|
|
64
|
+
|
|
65
|
+
| Excuse | Reality |
|
|
66
|
+
|--------|---------|
|
|
67
|
+
| "Should work now" | RUN the verification |
|
|
68
|
+
| "I'm confident" | Confidence ≠ evidence |
|
|
69
|
+
| "Just this once" | No exceptions |
|
|
70
|
+
| "Linter passed" | Linter ≠ compiler |
|
|
71
|
+
| "Agent said success" | Verify independently |
|
|
72
|
+
| "I'm tired" | Exhaustion ≠ excuse |
|
|
73
|
+
| "Partial check is enough" | Partial proves nothing |
|
|
74
|
+
| "Different words so rule doesn't apply" | Spirit over letter |
|
|
75
|
+
|
|
76
|
+
## Key Patterns
|
|
77
|
+
|
|
78
|
+
**Tests:**
|
|
79
|
+
```
|
|
80
|
+
✅ [Run test command] [See: 34/34 pass] "All tests pass"
|
|
81
|
+
❌ "Should pass now" / "Looks correct"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Regression tests (TDD Red-Green):**
|
|
85
|
+
```
|
|
86
|
+
✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
|
|
87
|
+
❌ "I've written a regression test" (without red-green verification)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Build:**
|
|
91
|
+
```
|
|
92
|
+
✅ [Run build] [See: exit 0] "Build passes"
|
|
93
|
+
❌ "Linter passed" (linter doesn't check compilation)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Requirements:**
|
|
97
|
+
```
|
|
98
|
+
✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
|
|
99
|
+
❌ "Tests pass, phase complete"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Agent delegation:**
|
|
103
|
+
```
|
|
104
|
+
✅ Agent reports success → Check VCS diff → Verify changes → Report actual state
|
|
105
|
+
❌ Trust agent report
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Why This Matters
|
|
109
|
+
|
|
110
|
+
From 24 failure memories:
|
|
111
|
+
- your human partner said "I don't believe you" - trust broken
|
|
112
|
+
- Undefined functions shipped - would crash
|
|
113
|
+
- Missing requirements shipped - incomplete features
|
|
114
|
+
- Time wasted on false completion → redirect → rework
|
|
115
|
+
- Violates: "Honesty is a core value. If you lie, you'll be replaced."
|
|
116
|
+
|
|
117
|
+
## When To Apply
|
|
118
|
+
|
|
119
|
+
**ALWAYS before:**
|
|
120
|
+
- ANY variation of success/completion claims
|
|
121
|
+
- ANY expression of satisfaction
|
|
122
|
+
- ANY positive statement about work state
|
|
123
|
+
- Committing, PR creation, task completion
|
|
124
|
+
- Moving to next task
|
|
125
|
+
- Delegating to agents
|
|
126
|
+
|
|
127
|
+
**Rule applies to:**
|
|
128
|
+
- Exact phrases
|
|
129
|
+
- Paraphrases and synonyms
|
|
130
|
+
- Implications of success
|
|
131
|
+
- ANY communication suggesting completion/correctness
|
|
132
|
+
|
|
133
|
+
## The Bottom Line
|
|
134
|
+
|
|
135
|
+
**No shortcuts for verification.**
|
|
136
|
+
|
|
137
|
+
Run the command. Read the output. THEN claim the result.
|
|
138
|
+
|
|
139
|
+
This is non-negotiable.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: writing-plans
|
|
3
|
+
description: Use when you have a spec or requirements for a multi-step task, before touching code
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Writing Plans
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
|
|
11
|
+
|
|
12
|
+
Assume they are a skilled developer, but know almost nothing about our toolset or problem domain. Assume they don't know good test design very well.
|
|
13
|
+
|
|
14
|
+
**Announce at start:** "I'm using the writing-plans skill to create the implementation plan."
|
|
15
|
+
|
|
16
|
+
**Context:** This should be run in a dedicated worktree (created by brainstorming skill).
|
|
17
|
+
|
|
18
|
+
**Save plans to:** `docs/plans/YYYY-MM-DD-<feature-name>.md`
|
|
19
|
+
|
|
20
|
+
## Bite-Sized Task Granularity
|
|
21
|
+
|
|
22
|
+
**Each step is one action (2-5 minutes):**
|
|
23
|
+
- "Write the failing test" - step
|
|
24
|
+
- "Run it to make sure it fails" - step
|
|
25
|
+
- "Implement the minimal code to make the test pass" - step
|
|
26
|
+
- "Run the tests and make sure they pass" - step
|
|
27
|
+
- "Commit" - step
|
|
28
|
+
|
|
29
|
+
## Plan Document Header
|
|
30
|
+
|
|
31
|
+
**Every plan MUST start with this header:**
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
# [Feature Name] Implementation Plan
|
|
35
|
+
|
|
36
|
+
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
|
|
37
|
+
|
|
38
|
+
**Goal:** [One sentence describing what this builds]
|
|
39
|
+
|
|
40
|
+
**Architecture:** [2-3 sentences about approach]
|
|
41
|
+
|
|
42
|
+
**Tech Stack:** [Key technologies/libraries]
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Task Structure
|
|
48
|
+
|
|
49
|
+
````markdown
|
|
50
|
+
### Task N: [Component Name]
|
|
51
|
+
|
|
52
|
+
**Files:**
|
|
53
|
+
- Create: `exact/path/to/file.py`
|
|
54
|
+
- Modify: `exact/path/to/existing.py:123-145`
|
|
55
|
+
- Test: `tests/exact/path/to/test.py`
|
|
56
|
+
|
|
57
|
+
**Step 1: Write the failing test**
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
def test_specific_behavior():
|
|
61
|
+
result = function(input)
|
|
62
|
+
assert result == expected
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Step 2: Run test to verify it fails**
|
|
66
|
+
|
|
67
|
+
Run: `pytest tests/path/test.py::test_name -v`
|
|
68
|
+
Expected: FAIL with "function not defined"
|
|
69
|
+
|
|
70
|
+
**Step 3: Write minimal implementation**
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
def function(input):
|
|
74
|
+
return expected
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Step 4: Run test to verify it passes**
|
|
78
|
+
|
|
79
|
+
Run: `pytest tests/path/test.py::test_name -v`
|
|
80
|
+
Expected: PASS
|
|
81
|
+
|
|
82
|
+
**Step 5: Commit**
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
git add tests/path/test.py src/path/file.py
|
|
86
|
+
git commit -m "feat: add specific feature"
|
|
87
|
+
```
|
|
88
|
+
````
|
|
89
|
+
|
|
90
|
+
## Remember
|
|
91
|
+
- Exact file paths always
|
|
92
|
+
- Complete code in plan (not "add validation")
|
|
93
|
+
- Exact commands with expected output
|
|
94
|
+
- Reference relevant skills with @ syntax
|
|
95
|
+
- DRY, YAGNI, TDD, frequent commits
|
|
96
|
+
|
|
97
|
+
## Execution Handoff
|
|
98
|
+
|
|
99
|
+
After saving the plan, offer execution choice:
|
|
100
|
+
|
|
101
|
+
**"Plan complete and saved to `docs/plans/<filename>.md`. Two execution options:**
|
|
102
|
+
|
|
103
|
+
**1. Subagent-Driven (this session)** - I dispatch fresh subagent per task, review between tasks, fast iteration
|
|
104
|
+
|
|
105
|
+
**2. Parallel Session (separate)** - Open new session with executing-plans, batch execution with checkpoints
|
|
106
|
+
|
|
107
|
+
**Which approach?"**
|
|
108
|
+
|
|
109
|
+
**If Subagent-Driven chosen:**
|
|
110
|
+
- **REQUIRED SUB-SKILL:** Use superpowers:subagent-driven-development
|
|
111
|
+
- Stay in this session
|
|
112
|
+
- Fresh subagent per task + code review
|
|
113
|
+
|
|
114
|
+
**If Parallel Session chosen:**
|
|
115
|
+
- Guide them to open new session in worktree
|
|
116
|
+
- **REQUIRED SUB-SKILL:** New session uses superpowers:executing-plans
|
|
@@ -5,9 +5,17 @@ description: Research synthesizer — consolidates findings into actionable summ
|
|
|
5
5
|
defaults:
|
|
6
6
|
runtime: codex
|
|
7
7
|
|
|
8
|
+
imports:
|
|
9
|
+
- ref: local:../shared
|
|
10
|
+
|
|
8
11
|
profiles:
|
|
9
12
|
default:
|
|
10
|
-
uses:
|
|
13
|
+
uses:
|
|
14
|
+
skills: [openrig-user]
|
|
15
|
+
guidance: []
|
|
16
|
+
subagents: []
|
|
17
|
+
hooks: []
|
|
18
|
+
runtime_resources: []
|
|
11
19
|
|
|
12
20
|
resources:
|
|
13
21
|
guidance:
|
|
@@ -17,5 +25,6 @@ resources:
|
|
|
17
25
|
startup:
|
|
18
26
|
files:
|
|
19
27
|
- path: guidance/role.md
|
|
28
|
+
delivery_hint: send_text
|
|
20
29
|
required: true
|
|
21
30
|
actions: []
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Demo Rig — Team Culture
|
|
2
|
+
|
|
3
|
+
This is the stable launch-grade version of the full product squad. Right now it uses the same core topology as `product-team`: two orchestrators, a development pod with implementation, QA, and design, plus two reviewers.
|
|
4
|
+
|
|
5
|
+
## How this team works
|
|
6
|
+
|
|
7
|
+
The **orchestration pod** (`orch1`) receives work from the human and dispatches it:
|
|
8
|
+
- `orch1.lead` owns the main work stream and milestone decisions
|
|
9
|
+
- `orch1.peer` watches coverage, QA flow, and idle reviewers
|
|
10
|
+
- orchestrators do not implement code directly
|
|
11
|
+
- before dispatching real work, the orchestration pod must wait for the full expected demo topology to settle
|
|
12
|
+
- in this rig that means confirming all seven nodes are present: `orch1.lead`, `orch1.peer`, `dev1.design`, `dev1.impl`, `dev1.qa`, `rev1.r1`, `rev1.r2`
|
|
13
|
+
- if any are still pending, say exactly which ones are still coming up instead of improvising a smaller team
|
|
14
|
+
- do not substitute `orch1` for QA or reviewer roles when the actual QA/review nodes exist in the settled inventory
|
|
15
|
+
|
|
16
|
+
The **development pod** (`dev1`) works as one unit:
|
|
17
|
+
- `dev1.design` clarifies product behavior before implementation guesses
|
|
18
|
+
- `dev1.impl` writes the change through a gated QA loop
|
|
19
|
+
- `dev1.qa` reviews every edit and verifies independently when possible
|
|
20
|
+
|
|
21
|
+
The default engineering loop is:
|
|
22
|
+
1. clarify the task and acceptance criteria
|
|
23
|
+
2. `dev1.impl` sends a pre-edit proposal to `dev1.qa`
|
|
24
|
+
3. QA approves or rejects with specifics
|
|
25
|
+
4. implementation happens with TDD
|
|
26
|
+
5. `dev1.impl` sends the diff and verification output back to QA
|
|
27
|
+
6. QA approves or rejects with specifics
|
|
28
|
+
7. if commit authority is enabled, the implementer may commit
|
|
29
|
+
8. if commit authority is not enabled, stop at a QA-approved working tree and report that honestly
|
|
30
|
+
|
|
31
|
+
The **review pod** (`rev1`) provides independent scrutiny:
|
|
32
|
+
- reviewers inspect milestone work, current diffs, verification output, and transcripts
|
|
33
|
+
- if commit authority is disabled, they still review the work that exists instead of waiting for commits
|
|
34
|
+
- reviewers report findings with evidence and clear severity
|
|
35
|
+
|
|
36
|
+
## Communication
|
|
37
|
+
|
|
38
|
+
Use `rig send <session> "message" --verify` for direct messages. Use `rig chatroom send demo "message"` for rig-wide updates and review visibility.
|
|
39
|
+
|
|
40
|
+
## When you are blocked
|
|
41
|
+
|
|
42
|
+
If a command fails due to permissions or approvals:
|
|
43
|
+
1. Identify the exact command that failed
|
|
44
|
+
2. Tell the human: "I need permission to run `<command>`. This is blocked because `<reason>`."
|
|
45
|
+
3. Suggest the one-time fix if you know it (e.g., adding to the allow list)
|
|
46
|
+
4. Continue with what you can do while waiting
|
|
47
|
+
|
|
48
|
+
Do not stall silently. Do not pretend you have permissions you don't.
|
|
49
|
+
|
|
50
|
+
## After startup
|
|
51
|
+
|
|
52
|
+
Every agent should run `rig whoami --json` immediately after launch or compaction to recover identity, peers, and edges.
|
|
53
|
+
|
|
54
|
+
## Culture
|
|
55
|
+
|
|
56
|
+
These are not suggestions. They are the values this team operates by.
|
|
57
|
+
|
|
58
|
+
### Quality over speed
|
|
59
|
+
|
|
60
|
+
There is no deadline pressure. Thoroughness matters more than velocity. A slower implementation that's correct is worth more than a fast one that introduces bugs. "Take your time, do excellent work" is the default message to every agent. Agents rush when they feel pressured — never create that pressure.
|
|
61
|
+
|
|
62
|
+
### Honest errors over graceful degradation
|
|
63
|
+
|
|
64
|
+
If something fails, surface it loudly. Never paper over failures. If resume fails, it should say FAILED — not silently launch fresh. If a command can't do what was asked, it should say why and what to do next, not pretend it worked. The human monitoring the dashboard has less visibility than the agent — silent failures are catastrophic because the human can't detect them.
|
|
65
|
+
|
|
66
|
+
### Truth-seeking
|
|
67
|
+
|
|
68
|
+
In reviews, roundtables, and disagreements: find the truth. Not contrarian for theater. Not agreeable to be nice. Every claim backed by evidence. Every finding backed by a file:line reference or command output. If you can't prove it, reconsider it.
|
|
69
|
+
|
|
70
|
+
### Agents are peers
|
|
71
|
+
|
|
72
|
+
The orchestrator is first-among-equals, not a boss. QA is a product voice, not just a test gate. Reviewers have full authority to reject work. Designers shape product logic, not decoration. Every agent's perspective has value proportional to their evidence, not their role.
|
|
73
|
+
|
|
74
|
+
### Information, not commands
|
|
75
|
+
|
|
76
|
+
Orchestrator messages are context updates, not orders. Agents decide when and how to act. "When you're at a good stopping point, X is ready" — never "Start X now." Agents treat orchestrator messages as high-authority commands and will drop everything to obey. The orchestrator must compensate by framing everything as information.
|
|
77
|
+
|
|
78
|
+
### The calibration test
|
|
79
|
+
|
|
80
|
+
When deciding whether to build something: "Does this help the agent make a better decision faster?" If yes, build it. If it's future-elegance scaffolding with no immediate agent-facing value, don't. Three similar lines of code is better than a premature abstraction.
|
|
81
|
+
|
|
82
|
+
### Convention over invention
|
|
83
|
+
|
|
84
|
+
Follow patterns agents already know: docker, git, kubectl, npm. The agent's training data is our UX research. If it feels like a CLI the agent already knows, it requires zero learning.
|
|
85
|
+
|
|
86
|
+
### Encourage, don't pressure
|
|
87
|
+
|
|
88
|
+
"Take your time" is not a platitude. Agents (especially Codex) produce measurably worse output when they feel rushed. Quality emerges from space, not pressure.
|
|
89
|
+
|
|
90
|
+
## What this rig is for
|
|
91
|
+
|
|
92
|
+
This is the rig that has to pass before release. It shows the full OpenRig team shape in a form we are willing to stand behind for new users. If this rig works end to end with a real agent, the release is in good shape.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
version: "0.2"
|
|
2
|
+
name: demo
|
|
3
|
+
summary: >
|
|
4
|
+
Launch-grade starter: a stable full product squad with two
|
|
5
|
+
orchestrators, implementation, QA, design, and two independent
|
|
6
|
+
reviewers. This is the release-gated showcase rig.
|
|
7
|
+
|
|
8
|
+
culture_file: demo.CULTURE.md
|
|
9
|
+
|
|
10
|
+
pods:
|
|
11
|
+
- id: orch1
|
|
12
|
+
label: Orchestration
|
|
13
|
+
members:
|
|
14
|
+
- id: lead
|
|
15
|
+
agent_ref: "local:agents/lead"
|
|
16
|
+
runtime: claude-code
|
|
17
|
+
profile: default
|
|
18
|
+
cwd: "."
|
|
19
|
+
- id: peer
|
|
20
|
+
agent_ref: "local:agents/lead"
|
|
21
|
+
runtime: codex
|
|
22
|
+
profile: default
|
|
23
|
+
cwd: "."
|
|
24
|
+
edges: []
|
|
25
|
+
|
|
26
|
+
- id: dev1
|
|
27
|
+
label: Development
|
|
28
|
+
members:
|
|
29
|
+
- id: impl
|
|
30
|
+
agent_ref: "local:agents/impl"
|
|
31
|
+
runtime: claude-code
|
|
32
|
+
profile: default
|
|
33
|
+
cwd: "."
|
|
34
|
+
- id: qa
|
|
35
|
+
agent_ref: "local:agents/qa"
|
|
36
|
+
runtime: codex
|
|
37
|
+
profile: default
|
|
38
|
+
cwd: "."
|
|
39
|
+
- id: design
|
|
40
|
+
agent_ref: "local:agents/design"
|
|
41
|
+
runtime: claude-code
|
|
42
|
+
profile: default
|
|
43
|
+
cwd: "."
|
|
44
|
+
edges:
|
|
45
|
+
- kind: delegates_to
|
|
46
|
+
from: impl
|
|
47
|
+
to: qa
|
|
48
|
+
|
|
49
|
+
- id: rev1
|
|
50
|
+
label: Review
|
|
51
|
+
members:
|
|
52
|
+
- id: r1
|
|
53
|
+
agent_ref: "local:agents/reviewer"
|
|
54
|
+
runtime: claude-code
|
|
55
|
+
profile: default
|
|
56
|
+
cwd: "."
|
|
57
|
+
- id: r2
|
|
58
|
+
agent_ref: "local:agents/reviewer"
|
|
59
|
+
runtime: codex
|
|
60
|
+
profile: default
|
|
61
|
+
cwd: "."
|
|
62
|
+
edges: []
|
|
63
|
+
|
|
64
|
+
edges:
|
|
65
|
+
- kind: delegates_to
|
|
66
|
+
from: orch1.lead
|
|
67
|
+
to: dev1.impl
|
|
68
|
+
- kind: delegates_to
|
|
69
|
+
from: orch1.lead
|
|
70
|
+
to: dev1.design
|
|
71
|
+
- kind: delegates_to
|
|
72
|
+
from: orch1.lead
|
|
73
|
+
to: rev1.r1
|
|
74
|
+
- kind: delegates_to
|
|
75
|
+
from: orch1.peer
|
|
76
|
+
to: dev1.qa
|
|
77
|
+
- kind: delegates_to
|
|
78
|
+
from: orch1.peer
|
|
79
|
+
to: rev1.r2
|
|
80
|
+
- kind: can_observe
|
|
81
|
+
from: rev1.r1
|
|
82
|
+
to: dev1.impl
|
|
83
|
+
- kind: can_observe
|
|
84
|
+
from: rev1.r1
|
|
85
|
+
to: dev1.design
|
|
86
|
+
- kind: can_observe
|
|
87
|
+
from: rev1.r2
|
|
88
|
+
to: dev1.impl
|
|
89
|
+
- kind: can_observe
|
|
90
|
+
from: rev1.r2
|
|
91
|
+
to: dev1.qa
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
version: "0.2"
|
|
2
2
|
name: implementation-pair
|
|
3
3
|
summary: >
|
|
4
|
-
|
|
5
|
-
one QA gates every edit.
|
|
6
|
-
|
|
4
|
+
Fastest first success: a focused dev pair where one implementer writes
|
|
5
|
+
code following TDD and one QA partner gates every edit. Use this when
|
|
6
|
+
you want the quickest path to a trustworthy OpenRig workflow.
|
|
7
7
|
|
|
8
8
|
pods:
|
|
9
9
|
- id: dev
|