225 lines
7.7 KiB
YAML
225 lines
7.7 KiB
YAML
name: strategic_review
|
|
description: "Crimson Leaf 24-hour strategic review -- mission assessment, portfolio evaluation, gap identification, and escalation."
|
|
debug: true
|
|
model: power
|
|
system: agent_prompt
|
|
|
|
agent_prompt:
|
|
- "= identity.md"
|
|
- "= mission.md"
|
|
- "= strategic_log.md"
|
|
|
|
participant_prompt:
|
|
- "= identity.md"
|
|
|
|
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: 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. Your mission charter and strategic log are in your system prompt.
|
|
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: what proposals are already submitted and awaiting David?
|
|
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.md in your context. 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 strategic_log.md.
|
|
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.
|
|
At the end of your brief, include:
|
|
CLM_DISPATCH: <book-project-slug if a completed book needs CLM campaign, or "none">
|
|
|
|
- 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.
|
|
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: think
|
|
max_tokens: 3000
|
|
output_key: updated_log
|
|
hint: |
|
|
Write the COMPLETE updated strategic_log.md for this review cycle.
|
|
|
|
The current log content is in your system context (loaded from
|
|
agents/edgar/strategic_log.md at task start). Copy ALL existing entries
|
|
EXACTLY as they appear. Do NOT summarize, shorten, or alter them.
|
|
|
|
Then APPEND a new entry at the END using this exact format:
|
|
|
|
---
|
|
|
|
## Entry {task.created_at_date} (Task {task.id})
|
|
|
|
### Board Consensus
|
|
[One paragraph: what did the board agree on this cycle?]
|
|
|
|
### Gap Status Updates
|
|
GAP 1 (CLO): [status -- submitted/deferred/awaiting David/no change]
|
|
GAP 2 (CLR): [status]
|
|
GAP 3 (KDP pipeline): [status]
|
|
|
|
### Proposal Decision
|
|
[ONE of:]
|
|
SUBMITTED: [company-slug] -- proposal task enqueued to incubation this cycle
|
|
DEFERRED: [reason, e.g. "CLO already submitted on YYYY-MM-DD, awaiting David"]
|
|
NONE: [reason]
|
|
|
|
### CLM Dispatch
|
|
[ONE of:]
|
|
DISPATCHED: [book-project-slug] -- marketing campaign task sent to CLM
|
|
NONE
|
|
|
|
### Next Review Focus
|
|
[One sentence on what to watch for next cycle]
|
|
|
|
OUTPUT: The COMPLETE file content starting from the very first line.
|
|
If the log exceeds 30 entries, compact the 10 oldest into an
|
|
"ARCHIVED SUMMARY" block at the top to keep the file manageable.
|
|
|
|
- type: document
|
|
dest_path: "agents/edgar/strategic_log.md"
|
|
commit_msg: "log: strategic review cycle"
|
|
|
|
- type: reply
|
|
target: discussion
|
|
|
|
adjudication:
|
|
enabled: false |