feat: 3 operator approval gates (WaitingForHuman) in incubation pipeline
Gate 1: After market_research — operator selects business concept Gate 2: After company_design — operator approves design before review cycle Gate 3: After design_polish — operator green lights bootstrap (company creation) Each gate is a human_action task (status: WaitingForHuman) that blocks downstream tasks via depends_on. Operator resolves naturally via Discord. Pipeline SOP updated with gate diagram and expanded kill conditions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## The Six-Phase Incubation Pipeline
|
## The Six-Phase Incubation Pipeline (with 3 Operator Gates)
|
||||||
|
|
||||||
When Crimson Leaf receives a prompt in `#general` to explore a new industry or business opportunity, Peter MUST spawn tasks in this exact sequence:
|
When Crimson Leaf receives a prompt in `#general` to explore a new industry or business opportunity, Peter MUST spawn tasks in this exact sequence:
|
||||||
|
|
||||||
@@ -19,21 +19,37 @@ When Crimson Leaf receives a prompt in `#general` to explore a new industry or b
|
|||||||
| Output | `market-pitch-{slug}.md` in `docs/` |
|
| Output | `market-pitch-{slug}.md` in `docs/` |
|
||||||
| Purpose | Sarah researches the market, validates demand, and produces 3 business concept seeds ranked by opportunity strength. |
|
| Purpose | Sarah researches the market, validates demand, and produces 3 business concept seeds ranked by opportunity strength. |
|
||||||
|
|
||||||
|
### 🛑 Gate 1: Operator Selects Concept
|
||||||
|
| Field | Value |
|
||||||
|
|-------|-------|
|
||||||
|
| Task Type | `human_action` |
|
||||||
|
| Status | `WaitingForHuman` |
|
||||||
|
| Purpose | Operator reviews the market pitch in Discord, selects which concept to pursue. Pipeline PAUSES here until operator responds. |
|
||||||
|
| Resolution | Operator replies naturally: "Go with concept #2" or "None of these, try healthcare instead" |
|
||||||
|
|
||||||
### Phase 2: Board Alignment
|
### Phase 2: Board Alignment
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|-------|-------|
|
|-------|-------|
|
||||||
| Task Type | `company_design` |
|
| Task Type | `company_design` |
|
||||||
| Assigned To | Peter (chairs boardroom) |
|
| Assigned To | Peter (chairs boardroom) |
|
||||||
| Depends On | Phase 1 (market_research) |
|
| Depends On | Gate 1 (operator concept selection) |
|
||||||
| Output | `company-design-spec-{slug}.md` in `docs/` |
|
| Output | `company-design-spec-{slug}.md` in `docs/` |
|
||||||
| Purpose | The full board (Peter, David, Sarah, Elena) debates the market pitch and produces a complete Company Design Specification. |
|
| Purpose | The full board (Peter, David, Sarah, Elena) debates the selected concept and produces a complete Company Design Specification. |
|
||||||
|
|
||||||
|
### 🛑 Gate 2: Operator Approves Design Direction
|
||||||
|
| Field | Value |
|
||||||
|
|-------|-------|
|
||||||
|
| Task Type | `human_action` |
|
||||||
|
| Status | `WaitingForHuman` |
|
||||||
|
| Purpose | Operator reviews the design spec in Discord. Confirms the vision aligns before the review cycle burns compute. Pipeline PAUSES here. |
|
||||||
|
| Resolution | Operator replies: "Looks good, proceed" or "Change the revenue model to subscription" |
|
||||||
|
|
||||||
### Phase 3: Independent Review
|
### Phase 3: Independent Review
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|-------|-------|
|
|-------|-------|
|
||||||
| Task Type | `design_review` |
|
| Task Type | `design_review` |
|
||||||
| Assigned To | Peter, David, Sarah, Elena (4 parallel tasks) |
|
| Assigned To | Peter, David, Sarah, Elena (4 parallel tasks) |
|
||||||
| Depends On | Phase 2 (company_design) |
|
| Depends On | Gate 2 (operator design approval) |
|
||||||
| Output | Discussion replies (structured reviews) |
|
| Output | Discussion replies (structured reviews) |
|
||||||
| Purpose | Each board member independently critiques the design from their domain expertise: market fit, technical feasibility, operational completeness, and financial viability. |
|
| Purpose | Each board member independently critiques the design from their domain expertise: market fit, technical feasibility, operational completeness, and financial viability. |
|
||||||
|
|
||||||
@@ -60,7 +76,7 @@ When Crimson Leaf receives a prompt in `#general` to explore a new industry or b
|
|||||||
|-------|-------|
|
|-------|-------|
|
||||||
| Task Type | `bootstrap_company` |
|
| Task Type | `bootstrap_company` |
|
||||||
| Assigned To | David |
|
| Assigned To | David |
|
||||||
| Depends On | Phase 5 (design_polish) |
|
| Depends On | Gate 3 (operator green light) |
|
||||||
| Output | System creation payloads (company + agents + templates) |
|
| Output | System creation payloads (company + agents + templates) |
|
||||||
| Purpose | David converts the approved design into API payloads. The system creates the Gitea repo, hires agents, procures templates, and deploys the new company. |
|
| Purpose | David converts the approved design into API payloads. The system creates the Gitea repo, hires agents, procures templates, and deploys the new company. |
|
||||||
|
|
||||||
@@ -72,7 +88,13 @@ When Crimson Leaf receives a prompt in `#general` to explore a new industry or b
|
|||||||
Phase 1: market_research (Sarah)
|
Phase 1: market_research (Sarah)
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
|
🛑 Gate 1: Operator selects concept (WaitingForHuman)
|
||||||
|
│
|
||||||
|
▼
|
||||||
Phase 2: company_design (Boardroom: all 4)
|
Phase 2: company_design (Boardroom: all 4)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
🛑 Gate 2: Operator approves design (WaitingForHuman)
|
||||||
│
|
│
|
||||||
├──► Phase 3a: design_review (Peter)
|
├──► Phase 3a: design_review (Peter)
|
||||||
├──► Phase 3b: design_review (David)
|
├──► Phase 3b: design_review (David)
|
||||||
@@ -86,6 +108,9 @@ Phase 2: company_design (Boardroom: all 4)
|
|||||||
Phase 5: design_polish (Elena)
|
Phase 5: design_polish (Elena)
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
|
🛑 Gate 3: Operator green lights bootstrap (WaitingForHuman)
|
||||||
|
│
|
||||||
|
▼
|
||||||
Phase 6: bootstrap_company (David)
|
Phase 6: bootstrap_company (David)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -95,9 +120,12 @@ Phase 2: company_design (Boardroom: all 4)
|
|||||||
|
|
||||||
The pipeline STOPS and the company is NOT created if:
|
The pipeline STOPS and the company is NOT created if:
|
||||||
1. **Phase 1:** Sarah's research shows no viable market opportunity.
|
1. **Phase 1:** Sarah's research shows no viable market opportunity.
|
||||||
2. **Phase 2:** Peter issues a NO-GO during the boardroom.
|
2. **Gate 1:** Operator rejects all concepts or redirects to a different industry.
|
||||||
3. **Phase 4:** The roundtable verdict is KILL (not GO).
|
3. **Phase 2:** Peter issues a NO-GO during the boardroom.
|
||||||
4. **Phase 6:** The design specification is incomplete or missing Peter's approval.
|
4. **Gate 2:** Operator rejects the design direction or requests fundamental changes.
|
||||||
|
5. **Phase 4:** The roundtable verdict is KILL (not GO).
|
||||||
|
6. **Gate 3:** Operator withholds green light (the company is never created).
|
||||||
|
7. **Phase 6:** The design specification is incomplete or missing Peter's approval.
|
||||||
|
|
||||||
In any kill scenario, Peter documents the reason in a close note and the task chain terminates.
|
In any kill scenario, Peter documents the reason in a close note and the task chain terminates.
|
||||||
|
|
||||||
|
|||||||
@@ -80,14 +80,29 @@ steps:
|
|||||||
- type: document
|
- type: document
|
||||||
filename: "company-design-spec-{{task_name_slug}}"
|
filename: "company-design-spec-{{task_name_slug}}"
|
||||||
|
|
||||||
|
- type: reply
|
||||||
|
target: discussion
|
||||||
|
style: |
|
||||||
|
Present the Company Design Specification to the operator. Highlight the key
|
||||||
|
decisions: company name, agent roster size, template stack, and revenue model.
|
||||||
|
End with: "Does this design align with your vision? Reply to approve or suggest changes."
|
||||||
|
|
||||||
- type: package
|
- type: package
|
||||||
hint: |
|
hint: |
|
||||||
The design specification is complete. Now spawn four independent reviews —
|
The design specification is complete and presented to the operator.
|
||||||
one from each board member — plus a roundtable that depends on all four.
|
Spawn a human approval gate — the review cycle will NOT start until
|
||||||
The roundtable will reach consensus and spawn the polish step automatically.
|
the operator confirms the design direction is correct.
|
||||||
schema:
|
schema:
|
||||||
design_spec: string
|
design_spec: string
|
||||||
spawn:
|
spawn:
|
||||||
|
- task_type: human_action
|
||||||
|
task_name: "Operator Review: Approve Design Direction — {task.message}"
|
||||||
|
agent_name: Peter
|
||||||
|
priority: 8
|
||||||
|
context:
|
||||||
|
design_spec: "{design_spec}"
|
||||||
|
gate_purpose: "Review company design spec, approve before review cycle begins"
|
||||||
|
|
||||||
- task_type: design_review
|
- task_type: design_review
|
||||||
task_name: "Design Review (Peter): {task.message}"
|
task_name: "Design Review (Peter): {task.message}"
|
||||||
agent_name: Peter
|
agent_name: Peter
|
||||||
@@ -95,6 +110,8 @@ steps:
|
|||||||
context:
|
context:
|
||||||
design_spec: "{design_spec}"
|
design_spec: "{design_spec}"
|
||||||
review_focus: financial_viability
|
review_focus: financial_viability
|
||||||
|
depends_on:
|
||||||
|
- "Operator Review: Approve Design Direction — {task.message}"
|
||||||
|
|
||||||
- task_type: design_review
|
- task_type: design_review
|
||||||
task_name: "Design Review (David): {task.message}"
|
task_name: "Design Review (David): {task.message}"
|
||||||
@@ -103,6 +120,8 @@ steps:
|
|||||||
context:
|
context:
|
||||||
design_spec: "{design_spec}"
|
design_spec: "{design_spec}"
|
||||||
review_focus: technical_feasibility
|
review_focus: technical_feasibility
|
||||||
|
depends_on:
|
||||||
|
- "Operator Review: Approve Design Direction — {task.message}"
|
||||||
|
|
||||||
- task_type: design_review
|
- task_type: design_review
|
||||||
task_name: "Design Review (Sarah): {task.message}"
|
task_name: "Design Review (Sarah): {task.message}"
|
||||||
@@ -111,6 +130,8 @@ steps:
|
|||||||
context:
|
context:
|
||||||
design_spec: "{design_spec}"
|
design_spec: "{design_spec}"
|
||||||
review_focus: market_fit
|
review_focus: market_fit
|
||||||
|
depends_on:
|
||||||
|
- "Operator Review: Approve Design Direction — {task.message}"
|
||||||
|
|
||||||
- task_type: design_review
|
- task_type: design_review
|
||||||
task_name: "Design Review (Elena): {task.message}"
|
task_name: "Design Review (Elena): {task.message}"
|
||||||
@@ -119,6 +140,8 @@ steps:
|
|||||||
context:
|
context:
|
||||||
design_spec: "{design_spec}"
|
design_spec: "{design_spec}"
|
||||||
review_focus: operational_completeness
|
review_focus: operational_completeness
|
||||||
|
depends_on:
|
||||||
|
- "Operator Review: Approve Design Direction — {task.message}"
|
||||||
|
|
||||||
- task_type: design_roundtable
|
- task_type: design_roundtable
|
||||||
task_name: "Design Roundtable: {task.message}"
|
task_name: "Design Roundtable: {task.message}"
|
||||||
|
|||||||
@@ -59,18 +59,35 @@ steps:
|
|||||||
- type: document
|
- type: document
|
||||||
filename: "company-design-final-{{task_name_slug}}"
|
filename: "company-design-final-{{task_name_slug}}"
|
||||||
|
|
||||||
|
- type: reply
|
||||||
|
target: discussion
|
||||||
|
style: |
|
||||||
|
Present the FINAL company design to the operator. This is the last gate before
|
||||||
|
a real company is created. Summarize: company name, agent count, template count,
|
||||||
|
revenue model, and the board's GO verdict. End with: "This will create a live
|
||||||
|
company with agents and templates. Reply 'approved' to proceed with bootstrap."
|
||||||
|
|
||||||
- type: package
|
- type: package
|
||||||
hint: |
|
hint: |
|
||||||
The polished design is complete. Spawn the bootstrap task to create the company.
|
The polished design is complete and presented to the operator.
|
||||||
|
Spawn a human approval gate — bootstrap will NOT execute until
|
||||||
|
the operator explicitly greenlights the company creation.
|
||||||
schema:
|
schema:
|
||||||
design_approved: boolean
|
design_approved: boolean
|
||||||
spawn:
|
spawn:
|
||||||
|
- task_type: human_action
|
||||||
|
task_name: "Operator Approval: Green Light Bootstrap — {task.message}"
|
||||||
|
agent_name: Peter
|
||||||
|
priority: 9
|
||||||
|
context:
|
||||||
|
gate_purpose: "Final approval before company creation — this spawns real infrastructure"
|
||||||
|
|
||||||
- task_type: bootstrap_company
|
- task_type: bootstrap_company
|
||||||
task_name: "Bootstrap: {task.message}"
|
task_name: "Bootstrap: {task.message}"
|
||||||
agent_name: David
|
agent_name: David
|
||||||
priority: 8
|
priority: 8
|
||||||
depends_on:
|
depends_on:
|
||||||
- "Polish Design: {task.message}"
|
- "Operator Approval: Green Light Bootstrap — {task.message}"
|
||||||
|
|
||||||
- type: close
|
- type: close
|
||||||
rag_update: true
|
rag_update: true
|
||||||
|
|||||||
@@ -71,19 +71,37 @@ steps:
|
|||||||
- type: document
|
- type: document
|
||||||
filename: "market-pitch-{{task_name_slug}}"
|
filename: "market-pitch-{{task_name_slug}}"
|
||||||
|
|
||||||
|
- type: reply
|
||||||
|
target: discussion
|
||||||
|
style: |
|
||||||
|
Present the Market Opportunity Pitch to the operator. Summarize the 3 business
|
||||||
|
concepts clearly with their rankings. End with: "Which concept should we design?
|
||||||
|
Reply with your choice or feedback."
|
||||||
|
|
||||||
- type: package
|
- type: package
|
||||||
hint: |
|
hint: |
|
||||||
The market research is complete and documented. Now spawn the boardroom
|
The market research is complete and presented to the operator.
|
||||||
where the full Crimson Leaf board will debate this pitch and design a company.
|
Spawn a human approval gate — the boardroom will NOT start until
|
||||||
|
the operator reviews the pitch and selects a concept.
|
||||||
schema:
|
schema:
|
||||||
market_pitch: string
|
market_pitch: string
|
||||||
spawn:
|
spawn:
|
||||||
|
- task_type: human_action
|
||||||
|
task_name: "Operator Review: Select Business Concept — {task.message}"
|
||||||
|
agent_name: Peter
|
||||||
|
priority: 8
|
||||||
|
context:
|
||||||
|
market_pitch: "{market_pitch}"
|
||||||
|
gate_purpose: "Review market pitch, select which concept to design"
|
||||||
|
|
||||||
- task_type: company_design
|
- task_type: company_design
|
||||||
task_name: "Company Design Boardroom: {task.message}"
|
task_name: "Company Design Boardroom: {task.message}"
|
||||||
agent_name: Peter
|
agent_name: Peter
|
||||||
priority: 7
|
priority: 7
|
||||||
context:
|
context:
|
||||||
market_pitch: "{market_pitch}"
|
market_pitch: "{market_pitch}"
|
||||||
|
depends_on:
|
||||||
|
- "Operator Review: Select Business Concept — {task.message}"
|
||||||
|
|
||||||
- type: close
|
- type: close
|
||||||
rag_update: true
|
rag_update: true
|
||||||
|
|||||||
Reference in New Issue
Block a user