diff --git a/templates/strategic_review.yml b/templates/strategic_review.yml index 102f09f..b6924e8 100644 --- a/templates/strategic_review.yml +++ b/templates/strategic_review.yml @@ -2,16 +2,6 @@ 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 @@ -21,17 +11,36 @@ sections: - 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 @@ -41,13 +50,24 @@ steps: 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. + 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: 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. - 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. 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. 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 MARKETING DISPATCH ASSESSMENT: @@ -93,6 +113,12 @@ steps: At the end of your brief, include: CLM_DISPATCH: + === STRATEGIC LOG === + {strategic_log_data} + + === LAST CYCLE ENTRY === + {latest_log_entry} + - type: think max_tokens: 100 output_key: proposal_project_slug @@ -173,50 +199,44 @@ steps: content: "{clm_dispatch_message}" - type: think - max_tokens: 3000 - output_key: updated_log + max_tokens: 600 + output_key: log_entry 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 - 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}) + Format: + ## Cycle Entry: Task {task.id} ### Board Consensus - [One paragraph: what did the board agree on this cycle?] + [One sentence: what did the board agree on?] - ### Gap Status Updates - GAP 1 (CLO): [status -- submitted/deferred/awaiting David/no change] + ### Gap Status + GAP 1 (CLO): [submitted/deferred/awaiting David/no change -- ONE of these] GAP 2 (CLR): [status] - GAP 3 (KDP pipeline): [status] + GAP 3 (KDP): [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"] + SUBMITTED: [company-slug] -- task enqueued to incubation this cycle + DEFERRED: [reason] NONE: [reason] ### CLM Dispatch [ONE of:] - DISPATCHED: [book-project-slug] -- marketing campaign task sent to CLM + DISPATCHED: [book-project-slug] NONE - ### Next Review Focus - [One sentence on what to watch for next cycle] + ### Next Focus + [One sentence] - 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. + 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/strategic_log.md" - commit_msg: "log: strategic review cycle" + dest_path: "agents/edgar/logs/latest.md" + commit_msg: "log: strategic review cycle {task.id}" - type: reply target: discussion