fix: strategic_review -- git_read_file loads mission+log, per-cycle log write-back

This commit is contained in:
2026-04-26 16:35:08 +00:00
parent 34386e550f
commit 69d2c2c00a

View File

@@ -2,16 +2,6 @@ name: strategic_review
description: "Crimson Leaf 24-hour strategic review -- mission assessment, portfolio evaluation, gap identification, and escalation." 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
agent_prompt:
- "= identity.md"
- "= mission.md"
- "= strategic_log.md"
participant_prompt:
- "= identity.md"
sections: sections:
- agent - agent
- project - project
@@ -21,17 +11,36 @@ sections:
- rag - rag
- message - message
- instructions - instructions
builders: builders:
message: | message: |
*** PORTFOLIO REPORT *** *** PORTFOLIO REPORT ***
{steps[0].text} {steps[0].text}
steps: steps:
- type: tool - type: tool
action: get_portfolio_report action: get_portfolio_report
output_key: portfolio_data 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 - type: think
max_tokens: 8000 max_tokens: 8000
rotate_participants: true rotate_participants: true
@@ -41,13 +50,24 @@ steps:
You are {agent.name}, participating in the Crimson Leaf Holdings strategic review. You are {agent.name}, participating in the Crimson Leaf Holdings strategic review.
This is round {task.iteration} of the board session. 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. 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: Analyze from YOUR perspective:
- If you are Edgar (The Operator): Focus on systems health, metrics, gaps in capability. - 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? Are companies executing? Are we moving toward the mission success criteria?
What gaps are blocking revenue? What should we PROPOSE to David? What gaps are blocking revenue? What should we PROPOSE to David?
Check the strategic_log: what proposals are already submitted and awaiting 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. 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. - If you are Orion (The Visionary): Focus on opportunities and what we are missing.
@@ -82,10 +102,10 @@ steps:
Keep it actionable. David is one person -- prioritize ruthlessly. Keep it actionable. David is one person -- prioritize ruthlessly.
PROPOSAL GATE ASSESSMENT: PROPOSAL GATE ASSESSMENT:
Check the strategic_log.md in your context. Has CLO (or whichever gap-company) Check the strategic_log and last cycle entry below. Has CLO (or whichever gap-company)
been proposed in the last 30 days? If yes, state PROPOSAL_NEEDED: none. 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 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. existing resources AND no proposal for this company appears in the log.
State one of: PROPOSAL_NEEDED: [company-slug] or PROPOSAL_NEEDED: none State one of: PROPOSAL_NEEDED: [company-slug] or PROPOSAL_NEEDED: none
MARKETING DISPATCH ASSESSMENT: MARKETING DISPATCH ASSESSMENT:
@@ -93,6 +113,12 @@ steps:
At the end of your brief, include: At the end of your brief, include:
CLM_DISPATCH: <book-project-slug if a completed book needs CLM campaign, or "none"> CLM_DISPATCH: <book-project-slug if a completed book needs CLM campaign, or "none">
=== STRATEGIC LOG ===
{strategic_log_data}
=== LAST CYCLE ENTRY ===
{latest_log_entry}
- type: think - type: think
max_tokens: 100 max_tokens: 100
output_key: proposal_project_slug output_key: proposal_project_slug
@@ -173,50 +199,44 @@ steps:
content: "{clm_dispatch_message}" content: "{clm_dispatch_message}"
- type: think - type: think
max_tokens: 3000 max_tokens: 600
output_key: updated_log output_key: log_entry
hint: | hint: |
Write the COMPLETE updated strategic_log.md for this review cycle. 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.
The current log content is in your system context (loaded from Format:
agents/edgar/strategic_log.md at task start). Copy ALL existing entries ## Cycle Entry: Task {task.id}
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 ### Board Consensus
[One paragraph: what did the board agree on this cycle?] [One sentence: what did the board agree on?]
### Gap Status Updates ### Gap Status
GAP 1 (CLO): [status -- submitted/deferred/awaiting David/no change] GAP 1 (CLO): [submitted/deferred/awaiting David/no change -- ONE of these]
GAP 2 (CLR): [status] GAP 2 (CLR): [status]
GAP 3 (KDP pipeline): [status] GAP 3 (KDP): [status]
### Proposal Decision ### Proposal Decision
[ONE of:] [ONE of:]
SUBMITTED: [company-slug] -- proposal task enqueued to incubation this cycle SUBMITTED: [company-slug] -- task enqueued to incubation this cycle
DEFERRED: [reason, e.g. "CLO already submitted on YYYY-MM-DD, awaiting David"] DEFERRED: [reason]
NONE: [reason] NONE: [reason]
### CLM Dispatch ### CLM Dispatch
[ONE of:] [ONE of:]
DISPATCHED: [book-project-slug] -- marketing campaign task sent to CLM DISPATCHED: [book-project-slug]
NONE NONE
### Next Review Focus ### Next Focus
[One sentence on what to watch for next cycle] [One sentence]
OUTPUT: The COMPLETE file content starting from the very first line. Keep it factual. Use only what happened in this cycle.
If the log exceeds 30 entries, compact the 10 oldest into an Do NOT invent history. Do NOT summarize old entries.
"ARCHIVED SUMMARY" block at the top to keep the file manageable. Output ONLY the entry text above.
- type: document - type: document
dest_path: "agents/edgar/strategic_log.md" dest_path: "agents/edgar/logs/latest.md"
commit_msg: "log: strategic review cycle" commit_msg: "log: strategic review cycle {task.id}"
- type: reply - type: reply
target: discussion target: discussion