@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.
Files changed (104) hide show
  1. package/daemon/assets/guidance/openrig-start.md +16 -1
  2. package/daemon/dist/adapters/claude-code-adapter.d.ts +12 -0
  3. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  4. package/daemon/dist/adapters/claude-code-adapter.js +92 -3
  5. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  6. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +5 -0
  7. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  8. package/daemon/dist/adapters/codex-runtime-adapter.js +82 -2
  9. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  10. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  11. package/daemon/dist/domain/agent-manifest.js +2 -1
  12. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  13. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  14. package/daemon/dist/domain/native-resume-probe.js +24 -1
  15. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  16. package/daemon/dist/domain/profile-resolver.js +1 -1
  17. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  18. package/daemon/dist/domain/runtime-adapter.d.ts +1 -0
  19. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  20. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  21. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  22. package/daemon/dist/domain/startup-orchestrator.js +10 -1
  23. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  24. package/daemon/specs/agents/analyst/agent.yaml +10 -1
  25. package/daemon/specs/agents/design/agent.yaml +10 -1
  26. package/daemon/specs/agents/design/guidance/role.md +13 -0
  27. package/daemon/specs/agents/impl/agent.yaml +10 -1
  28. package/daemon/specs/agents/impl/guidance/role.md +20 -0
  29. package/daemon/specs/agents/lead/agent.yaml +10 -1
  30. package/daemon/specs/agents/lead/guidance/role.md +18 -0
  31. package/daemon/specs/agents/qa/agent.yaml +10 -1
  32. package/daemon/specs/agents/qa/guidance/role.md +52 -0
  33. package/daemon/specs/agents/reviewer/agent.yaml +10 -1
  34. package/daemon/specs/agents/reviewer/guidance/role.md +13 -0
  35. package/daemon/specs/agents/shared/agent.yaml +38 -0
  36. package/daemon/specs/agents/shared/skills/agent-browser/LOCAL-INSIGHTS.md +189 -0
  37. package/daemon/specs/agents/shared/skills/agent-browser/SKILL.md +417 -0
  38. package/daemon/specs/agents/shared/skills/brainstorming/SKILL.md +96 -0
  39. package/daemon/specs/agents/shared/skills/containerized-e2e/SKILL.md +256 -0
  40. package/daemon/specs/agents/shared/skills/containerized-e2e/scripts/Dockerfile +39 -0
  41. package/daemon/specs/agents/shared/skills/containerized-e2e/scripts/build-e2e-image.sh +37 -0
  42. package/daemon/specs/agents/shared/skills/containerized-e2e/templates/control-plane-test.yaml +40 -0
  43. package/daemon/specs/agents/shared/skills/containerized-e2e/templates/e2e-report-template.md +94 -0
  44. package/daemon/specs/agents/shared/skills/containerized-e2e/templates/expansion-collision-fragment.yaml +13 -0
  45. package/daemon/specs/agents/shared/skills/containerized-e2e/templates/expansion-pod-fragment.yaml +14 -0
  46. package/daemon/specs/agents/shared/skills/development-team/SKILL.md +149 -0
  47. package/daemon/specs/agents/shared/skills/dogfood/SKILL.md +220 -0
  48. package/daemon/specs/agents/shared/skills/dogfood/references/issue-taxonomy.md +109 -0
  49. package/daemon/specs/agents/shared/skills/dogfood/templates/dogfood-report-template.md +53 -0
  50. package/daemon/specs/agents/shared/skills/executing-plans/SKILL.md +84 -0
  51. package/daemon/specs/agents/shared/skills/frontend-design/LICENSE.txt +177 -0
  52. package/daemon/specs/agents/shared/skills/frontend-design/SKILL.md +42 -0
  53. package/daemon/specs/agents/shared/skills/openrig-user/SKILL.md +468 -0
  54. package/daemon/specs/agents/shared/skills/orchestration-team/SKILL.md +234 -0
  55. package/daemon/specs/agents/shared/skills/review-team/SKILL.md +210 -0
  56. package/daemon/specs/agents/shared/skills/systematic-debugging/CREATION-LOG.md +119 -0
  57. package/daemon/specs/agents/shared/skills/systematic-debugging/SKILL.md +296 -0
  58. package/daemon/specs/agents/shared/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  59. package/daemon/specs/agents/shared/skills/systematic-debugging/condition-based-waiting.md +115 -0
  60. package/daemon/specs/agents/shared/skills/systematic-debugging/defense-in-depth.md +122 -0
  61. package/daemon/specs/agents/shared/skills/systematic-debugging/find-polluter.sh +63 -0
  62. package/daemon/specs/agents/shared/skills/systematic-debugging/root-cause-tracing.md +169 -0
  63. package/daemon/specs/agents/shared/skills/systematic-debugging/test-academic.md +14 -0
  64. package/daemon/specs/agents/shared/skills/systematic-debugging/test-pressure-1.md +58 -0
  65. package/daemon/specs/agents/shared/skills/systematic-debugging/test-pressure-2.md +68 -0
  66. package/daemon/specs/agents/shared/skills/systematic-debugging/test-pressure-3.md +69 -0
  67. package/daemon/specs/agents/shared/skills/test-driven-development/SKILL.md +371 -0
  68. package/daemon/specs/agents/shared/skills/test-driven-development/testing-anti-patterns.md +299 -0
  69. package/daemon/specs/agents/shared/skills/using-superpowers/SKILL.md +95 -0
  70. package/daemon/specs/agents/shared/skills/verification-before-completion/SKILL.md +139 -0
  71. package/daemon/specs/agents/shared/skills/writing-plans/SKILL.md +116 -0
  72. package/daemon/specs/agents/synthesizer/agent.yaml +10 -1
  73. package/daemon/specs/demo.CULTURE.md +92 -0
  74. package/daemon/specs/demo.yaml +91 -0
  75. package/daemon/specs/implementation-pair.yaml +3 -3
  76. package/daemon/specs/product-team.CULTURE.md +137 -0
  77. package/daemon/specs/product-team.yaml +5 -4
  78. package/dist/client.d.ts +8 -1
  79. package/dist/client.d.ts.map +1 -1
  80. package/dist/client.js +15 -6
  81. package/dist/client.js.map +1 -1
  82. package/dist/commands/daemon.d.ts.map +1 -1
  83. package/dist/commands/daemon.js +5 -1
  84. package/dist/commands/daemon.js.map +1 -1
  85. package/dist/commands/up.js +2 -2
  86. package/dist/commands/up.js.map +1 -1
  87. package/dist/daemon-lifecycle.d.ts.map +1 -1
  88. package/dist/daemon-lifecycle.js +54 -7
  89. package/dist/daemon-lifecycle.js.map +1 -1
  90. package/dist/fetch-with-timeout.d.ts +9 -0
  91. package/dist/fetch-with-timeout.d.ts.map +1 -0
  92. package/dist/fetch-with-timeout.js +41 -0
  93. package/dist/fetch-with-timeout.js.map +1 -0
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +2 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/mcp-server.d.ts.map +1 -1
  98. package/dist/mcp-server.js +2 -1
  99. package/dist/mcp-server.js.map +1 -1
  100. package/dist/version.d.ts +2 -0
  101. package/dist/version.d.ts.map +1 -0
  102. package/dist/version.js +8 -0
  103. package/dist/version.js.map +1 -0
  104. 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
- A focused dev pair: one implementer writes code following TDD,
5
- one QA gates every edit. The implementer proposes, QA approves
6
- or rejects, then the implementer commits. Quality over speed.
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