Update strategic_review.yml -- add mission charter awareness and company proposal gate (Sprint 82)

This commit is contained in:
2026-04-18 03:23:06 +00:00
parent ab5726cc26
commit 010f8bcd53

View File

@@ -1,126 +1,175 @@
name: strategic_review name: strategic_review
description: "Crimson Leaf 24-hour strategic review -- full portfolio evaluation from each executive's perspective." description: "Crimson Leaf 24-hour strategic review -- mission assessment, portfolio evaluation, gap identification, and escalation."
debug: true debug: true
model: power model: power
system: agent_prompt system: agent_prompt
agent_prompt: agent_prompt:
- "= identity.md" - "= identity.md"
- "= mission.md"
participant_prompt:
- "= identity.md" participant_prompt:
- "= identity.md"
sections:
- agent sections:
- project - agent
- history - project
- participants - history
- participants_prompt - participants
- rag - participants_prompt
- message - rag
- instructions - message
- instructions
builders:
message: | builders:
*** PORTFOLIO REPORT *** message: |
{steps[0].text} *** PORTFOLIO REPORT ***
{steps[0].text}
steps:
- type: tool steps:
action: get_portfolio_report - type: tool
output_key: portfolio_data action: get_portfolio_report
output_key: portfolio_data
- type: think
max_tokens: 8000 - type: think
rotate_participants: true max_tokens: 8000
loop: rotate_participants: true
max_iterations: 3 loop:
hint: | max_iterations: 3
You are {agent.name}, participating in the Crimson Leaf Holdings strategic review. hint: |
This is round {task.iteration} of the board session. You are {agent.name}, participating in the Crimson Leaf Holdings strategic review.
This is round {task.iteration} of the board session.
The portfolio report is above. Analyze it from YOUR perspective:
The portfolio report is above. Your mission charter is in your system prompt.
- If you are Edgar (The Operator): Focus on systems health, metrics, what's broken, Analyze from YOUR perspective:
what needs fixing. Are companies executing? Are processes working?
- If you are Edgar (The Operator): Focus on systems health, metrics, gaps in capability.
- If you are Orion (The Visionary): Focus on opportunities, growth, what we're missing. Are companies executing? Are we moving toward the mission success criteria?
Are we building the right things? What should we start? What should we kill? What gaps are blocking revenue? What should we PROPOSE to David?
- If you are Sloane (The Dealmaker): Focus on marketing, visibility, revenue. - If you are Orion (The Visionary): Focus on opportunities and what we are missing.
Are we selling? Does anyone know we exist? What channels are we missing? Are we building the right things? What should we start? What should we kill?
Build on previous speakers' points. Disagree if you must -- this is a board debate. - If you are Sloane (The Dealmaker): Focus on marketing, visibility, revenue.
Are we selling? Does anyone know we exist? What channels are we missing?
When genuine consensus is reached across all perspectives, include exactly:
"consensus_reached: true" Build on previous speakers' points. Disagree if you must -- this is a board debate.
If debate should continue, do NOT include that line.
When genuine consensus is reached across all perspectives, include exactly:
- type: think consensus_reached: true
max_tokens: 6000 If debate should continue, do NOT include that line.
agent: first_available
output_key: strategic_brief - type: think
hint: | max_tokens: 6000
Synthesize the boardroom transcript into a STRATEGIC BRIEF for David. agent: first_available
output_key: strategic_brief
Structure: hint: |
1. EXECUTIVE SUMMARY -- one paragraph on portfolio health Synthesize the boardroom transcript into a STRATEGIC BRIEF for David.
2. CRITICAL ISSUES -- things that need immediate attention (if any)
3. OPPORTUNITIES -- ranked by priority Structure:
4. ACTION ITEMS -- specific tasks for David, formatted as: 1. EXECUTIVE SUMMARY -- one paragraph on portfolio health and mission progress
"David, [verb]: [details]" 2. MISSION GAP AUDIT -- assess each gap from the mission charter. Is Gap 1 (CLO)
5. NEXT REVIEW -- what should we focus on in the next 24-hour review? still the top priority? Has anything changed that elevates a different gap?
3. CRITICAL ISSUES -- things needing immediate attention
Keep it actionable. David is one person -- prioritize ruthlessly. 4. OPPORTUNITIES -- ranked by priority
5. ACTION ITEMS -- specific tasks for David:
MARKETING DISPATCH ASSESSMENT: "David, [verb]: [details]"
Check the portfolio data for Crimson Leaf Publishing projects. 6. NEXT REVIEW -- focus for the next 24-hour review
A book is "complete" if its project has a deliverable named MANUSCRIPT-README or
if the portfolio report shows a project_index task completed. Keep it actionable. David is one person -- prioritize ruthlessly.
A book "needs marketing" if crimson_leaf_marketing shows no active campaign for it.
PROPOSAL GATE ASSESSMENT:
At the end of your brief, include: Based on the gap audit, should Edgar submit a company proposal this cycle?
CLM_DISPATCH: <book-project-slug if a completed book needs CLM campaign, or "none"> Criteria: gap is materially blocking revenue AND cannot be solved by existing resources
AND no proposal has been submitted in the last 30 days.
- type: think State one of: PROPOSAL_NEEDED: [company-slug] or PROPOSAL_NEEDED: none
max_tokens: 100
output_key: clm_dispatch_slug MARKETING DISPATCH ASSESSMENT:
hint: | A book "needs marketing" if crimson_leaf_marketing shows no active campaign for it.
Read the CLM_DISPATCH line from the strategic brief above. At the end of your brief, include:
Extract the value after "CLM_DISPATCH: " and output it exactly, nothing else. CLM_DISPATCH: <book-project-slug if a completed book needs CLM campaign, or "none">
Valid values: cypress-bend, crimson-vows, binding-thread, or none.
Output ONLY the value. No explanation. - type: think
max_tokens: 100
- type: think output_key: proposal_project_slug
max_tokens: 600 hint: |
output_key: clm_dispatch_message Read the PROPOSAL_NEEDED line from the strategic brief above.
hint: | If the value is "none", output exactly: none
If clm_dispatch_slug is "none", output exactly: none Otherwise output exactly: incubation
Otherwise write a marketing campaign request for that book. Include: Output ONLY one word. No explanation. No punctuation.
- Book title, genre, audience, author
- The manuscript is complete in Crimson Leaf Publishing Gitea repo - type: think
- Request: full marketing campaign (strategy, social media, email, press release, ad copy) max_tokens: 800
- Urgency: book has no active campaign and needs revenue generation output_key: proposal_brief
hint: |
Book reference: The proposal decision is: {proposal_project_slug}
- cypress-bend: "Cypress Bend" contemporary romance, audience adult women 25-45
- crimson-vows: "Crimson Vows" paranormal romance, audience adult women 25-40 If {proposal_project_slug} is "none", output exactly: none
- binding-thread: "The Binding Thread" fantasy romance, audience adult women 20-40
Otherwise, write the task message for the company_proposal pipeline.
Output ONLY the message text. No preamble. This brief becomes the input that drives the full business plan.
- type: tool Include:
action: enqueue_strategy - Which company to propose (name, slug, purpose in one sentence)
optional: true - What gap it fills (specific -- what Edgar cannot do today without it)
params: - Why now (cost of waiting another 30 days)
company_slug: "crimson_leaf_marketing" - Proposed 90-day success criteria (measurable)
project_slug: "book-marketing-agency" - Known constraints or dependencies
task_type: "marketing_campaign"
content: "{clm_dispatch_message}" Be specific. This brief drives the entire proposal document.
- type: reply Output ONLY the brief text. No labels. No preamble.
target: discussion
- type: tool
adjudication: action: enqueue_strategy
enabled: false optional: true
params:
company_slug: "crimson_leaf"
project_slug: "{proposal_project_slug}"
task_type: "company_proposal"
content: "{proposal_brief}"
agent_name: "edgar"
- type: think
max_tokens: 100
output_key: clm_dispatch_slug
hint: |
Read the CLM_DISPATCH line from the strategic brief above.
Extract the value after "CLM_DISPATCH: " and output it exactly, nothing else.
Valid values: cypress-bend, crimson-vows, binding-thread, or none.
Output ONLY the value. No explanation.
- type: think
max_tokens: 600
output_key: clm_dispatch_message
hint: |
If {clm_dispatch_slug} is "none", output exactly: none
Otherwise write a marketing campaign request for that book. Include:
- Book title, genre, audience
- The manuscript is complete in Crimson Leaf Publishing Gitea repo
- Request: full marketing campaign (strategy, social, email, press release, ad copy)
- Urgency: book has no active campaign and needs revenue generation
Book reference:
- cypress-bend: "Cypress Bend" contemporary romance, audience adult women 25-45
- crimson-vows: "Crimson Vows" paranormal romance, audience adult women 25-40
- binding-thread: "The Binding Thread" fantasy romance, audience adult women 20-40
Output ONLY the message text. No preamble.
- type: tool
action: enqueue_strategy
optional: true
params:
company_slug: "crimson_leaf_marketing"
project_slug: "book-marketing-agency"
task_type: "marketing_campaign"
content: "{clm_dispatch_message}"
- type: reply
target: discussion
adjudication:
enabled: false