Files
crimson_leaf/templates/strategic_review.yml

254 lines
8.3 KiB
YAML

name: strategic_review
description: "Crimson Leaf 24-hour strategic review -- mission assessment, portfolio evaluation, gap identification, and escalation."
debug: true
model: power
sections:
- agent
- project
- history
- participants
- participants_prompt
- rag
- message
- instructions
builders:
message: |
*** PORTFOLIO REPORT ***
{steps[0].text}
steps:
- type: tool
action: get_portfolio_report
output_key: portfolio_data
- type: tool
action: git_read_file
params:
path: "agents/edgar/mission.md"
output_key: mission_data
optional: false
- type: tool
action: git_read_file
params:
path: "agents/edgar/strategic_log.md"
output_key: strategic_log_data
optional: true
- type: tool
action: git_read_file
params:
path: "agents/edgar/logs/latest.md"
output_key: latest_log_entry
optional: true
- type: think
max_tokens: 8000
rotate_participants: true
loop:
max_iterations: 3
hint: |
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.
=== MISSION CHARTER ===
{mission_data}
=== STRATEGIC LOG (Master) ===
{strategic_log_data}
=== LAST CYCLE ENTRY ===
{latest_log_entry}
===
Analyze from YOUR perspective:
- If you are Edgar (The Operator): Focus on systems health, metrics, gaps in capability.
Are companies executing? Are we moving toward the mission success criteria?
What gaps are blocking revenue? What should we PROPOSE to David?
Check the strategic_log and last cycle entry: what proposals are already submitted?
Do NOT propose a company if it was already submitted in the last 30 days.
- If you are Orion (The Visionary): Focus on opportunities and what we are missing.
Are we building the right things? What should we start? What should we kill?
- If you are Sloane (The Dealmaker): Focus on marketing, visibility, revenue.
Are we selling? Does anyone know we exist? What channels are we missing?
Build on previous speakers' points. Disagree if you must -- this is a board debate.
When genuine consensus is reached across all perspectives, include exactly:
consensus_reached: true
If debate should continue, do NOT include that line.
- type: think
max_tokens: 6000
agent: first_available
output_key: strategic_brief
hint: |
Synthesize the boardroom transcript into a STRATEGIC BRIEF for David.
Structure:
1. EXECUTIVE SUMMARY -- one paragraph on portfolio health and mission progress
2. MISSION GAP AUDIT -- assess each gap from the mission charter. Is Gap 1 (CLO)
still the top priority? Has anything changed that elevates a different gap?
3. CRITICAL ISSUES -- things needing immediate attention
4. OPPORTUNITIES -- ranked by priority
5. ACTION ITEMS -- specific tasks for David:
"David, [verb]: [details]"
6. NEXT REVIEW -- focus for the next 24-hour review
Keep it actionable. David is one person -- prioritize ruthlessly.
PROPOSAL GATE ASSESSMENT:
Check the strategic_log and last cycle entry. Has CLO (or whichever gap-company)
been proposed in the last 30 days? If yes, state PROPOSAL_NEEDED: none.
Only propose if: gap is materially blocking revenue AND cannot be solved by
existing resources AND no proposal for this company appears in the log.
State one of: PROPOSAL_NEEDED: [company-slug] or PROPOSAL_NEEDED: none
MARKETING DISPATCH ASSESSMENT:
A book "needs marketing" if crimson_leaf_marketing shows no active campaign for it.
Only dispatch to CLM for books that EXIST in Crimson Leaf Publishing (Cypress Bend,
Crimson Vows, or The Binding Thread). Do NOT dispatch for hallucinated book titles.
At the end of your brief, include:
CLM_DISPATCH: <book-project-slug if a real completed book needs CLM campaign, or "none">
=== STRATEGIC LOG ===
{strategic_log_data}
=== LAST CYCLE ENTRY ===
{latest_log_entry}
- type: think
max_tokens: 100
output_key: proposal_project_slug
hint: |
Read the PROPOSAL_NEEDED line from the strategic brief above.
If the value is "none", output exactly: none
Otherwise output exactly: incubation
Output ONLY one word. No explanation. No punctuation.
- type: think
max_tokens: 800
output_key: proposal_brief
hint: |
The proposal decision is: {proposal_project_slug}
If {proposal_project_slug} is "none", output exactly: none
Otherwise, write the task message for the company_proposal pipeline.
This brief becomes the input that drives the full business plan.
Include:
- Which company to propose (name, slug, purpose in one sentence)
- What gap it fills (specific -- what Edgar cannot do today without it)
- Why now (cost of waiting another 30 days)
- Proposed 90-day success criteria (measurable)
- Known constraints or dependencies
Be specific. This brief drives the entire proposal document.
Output ONLY the brief text. No labels. No preamble.
- type: tool
action: enqueue_strategy
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.
Map the book slug to the CLM project slug as follows:
cypress-bend -> book-marketing-agency
crimson-vows -> book-marketing-agency
binding-thread -> book-marketing-agency
none -> none
Output ONLY the mapped slug. No explanation. No extra text.
- type: think
max_tokens: 600
output_key: clm_dispatch_message
hint: |
Read the CLM_DISPATCH line from the strategic brief above.
The book identified is one of: cypress-bend, crimson-vows, binding-thread, or none.
If the book is "none" or {clm_dispatch_slug} is "none", output exactly: none
Otherwise write a marketing campaign request. Include:
- Book title and genre (use the CLM_DISPATCH value to identify it)
- 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: "{clm_dispatch_slug}"
task_type: "marketing_campaign"
content: "{clm_dispatch_message}"
- type: think
max_tokens: 600
output_key: log_entry
hint: |
Write a brief summary of THIS CYCLE'S strategic review to record in the log.
This entry will be loaded next cycle so Edgar remembers what was decided.
Format:
## Cycle Entry: Task {task.id}
### Board Consensus
[One sentence: what did the board agree on?]
### Gap Status
GAP 1 (CLO): [submitted/deferred/awaiting David/no change -- ONE of these]
GAP 2 (CLR): [status]
GAP 3 (KDP): [status]
### Proposal Decision
[ONE of:]
SUBMITTED: [company-slug] -- task enqueued to incubation this cycle
DEFERRED: [reason]
NONE: [reason]
### CLM Dispatch
[ONE of:]
DISPATCHED: [book-project-slug]
NONE
### Next Focus
[One sentence]
Keep it factual. Use only what happened in this cycle.
Do NOT invent history. Do NOT summarize old entries.
Output ONLY the entry text above.
- type: document
dest_path: "agents/edgar/logs/latest.md"
commit_msg: "log: strategic review cycle {task.id}"
- type: reply
target: channel
channel_name: "crimson_leaf:general"
adjudication:
enabled: false