diff --git a/agents/edgar/strategic_log.md b/agents/edgar/strategic_log.md index 0cbe3aa..e857a37 100644 --- a/agents/edgar/strategic_log.md +++ b/agents/edgar/strategic_log.md @@ -22,12 +22,12 @@ Per-cycle entries are written to agents/edgar/logs/latest.md. GAP 1 (CLO - Crimson Leaf Operations): AUTHORIZED BY DAVID -- highest priority. Edgar cannot see costs, revenue, or API expenses. A full business plan is required before David will create the company. - Status: PROPOSAL SUBMITTED -- AWAITING DAVID'S APPROVAL. - NOTE: 20+ proposals for "Ink & Anchor Digital / Forge & Flux Digital" have been - written to deliverables/proposals/ between April 26-28, 2026. DO NOT submit another - proposal. The pipeline kept re-proposing due to a log memory bug (now fixed). - Edgar must WAIT for David to approve or reject before any new proposal is generated. - RULE: If this log says "AWAITING DAVID'S APPROVAL", output PROPOSAL_NEEDED: none. + Status: READY TO PROPOSE -- but do it correctly this time. + NOTE: 20 prior proposals were all rejected. They proposed a client-facing author DTC + storefront ("Ink & Anchor Digital"). That is the WRONG company. David rejected them all. + The next proposal MUST be for CLO as an INTERNAL operations/accounting company. + Read deliverables/proposals/index.md before proposing -- it details what was wrong + with every prior attempt and what the correct proposal must contain. GAP 2 (CLR - Crimson Leaf Research): DEFERRED -- not yet urgent. GAP 3 (KDP automated pipeline): DEFERRED -- needs CLO first for cost tracking. diff --git a/deliverables/proposals/index.md b/deliverables/proposals/index.md new file mode 100644 index 0000000..2f998a6 --- /dev/null +++ b/deliverables/proposals/index.md @@ -0,0 +1,62 @@ +# Proposal Index: Crimson Leaf Holdings + +This file is READ at the start of each company_proposal run and UPDATED at the end. +It is the authoritative list of every proposal ever submitted. +Edgar must read this before writing any new proposal. + +--- + +## Submitted Proposals + +### BATCH 1 (April 26-28, 2026): "Ink & Anchor Digital" variants -- ALL REJECTED BY DAVID +These 20 proposals were generated by a template bug that ignored the mission charter. +They all proposed a client-facing indie author DTC storefront called "Ink & Anchor Digital" +or "Forge & Flux Digital." This is NOT what the mission charter authorizes. + +David's verdict: "None of the proposals are worth reading. I am looking for full business plans." +Status: REJECTED. Do NOT repropose this concept in any form. + +Task IDs (all rejected, do not reference): +- 0d80560c, 13adc48e, 348f8719, 45dfae65, 4e8bbd4e, 63136109, 6f86fbb1, 857ef6e1 +- ccb79de6, c8990e30, c7801662, a47b8efc, f7290270, 5611a2fc, d21cb28c, ac60bb87 +- 77a90934, ceaa0c81, 1550e9e3, 863cd274 + +Reason for rejection: Proposed the wrong company. Mission charter Gap 1 is CLO -- +Crimson Leaf Operations -- an INTERNAL financial visibility company, not a +client-facing author services agency. + +--- + +## What the Next Proposal Must Be + +GAP 1 (AUTHORIZED BY DAVID, HIGHEST PRIORITY): + Company: Crimson Leaf Operations (CLO) + Slug: crimson_leaf_operations + Mission: Give Edgar financial visibility. Track API costs, revenue, and P&L + across all subsidiaries. Without CLO, Edgar is flying blind. + This is an INTERNAL operations company. It does NOT serve clients. + It does NOT build websites. It does NOT serve indie authors. + It tracks money: what is spent, what is earned, what the margins are. + +The next proposal MUST be for CLO. Build a serious, detailed plan: +- How CLO tracks costs per company, per task, per model +- How CLO generates weekly P&L reports for David +- What agents run CLO (an internal accountant/analyst) +- What templates it uses (cost_report, revenue_summary, etc.) +- How it integrates with the PAE task system to capture cost data +- 90-day success criteria: weekly P&L delivered, cost-per-chapter tracked, etc. + +Do NOT pitch a different company. Do NOT rename it. Do NOT make it client-facing. + +--- + +## Instructions for the company_proposal template + +When you finish writing a proposal, append a new entry to this file under +"## Submitted Proposals" with: +- The company name and slug +- The task ID +- A 2-3 sentence summary of what was proposed +- David's verdict (if known -- leave blank if awaiting) + +This keeps Edgar's institutional memory intact across cycles. diff --git a/templates/company_proposal.yml b/templates/company_proposal.yml index 0f11c23..889dc20 100644 --- a/templates/company_proposal.yml +++ b/templates/company_proposal.yml @@ -9,6 +9,13 @@ sections: - message - instructions steps: + - type: tool + action: git_read_file + params: + path: "deliverables/proposals/index.md" + output_key: prior_proposals + optional: true + - type: think max_tokens: 2000 output_key: exec_summary @@ -20,6 +27,14 @@ steps: the brief. Do NOT rename, rebrand, or creatively reinterpret the company. The brief was written from the mission charter -- it is authoritative. + === PRIOR PROPOSALS (read this before writing) === + {prior_proposals} + === END PRIOR PROPOSALS === + + The prior proposals above are your institutional memory. Study them. + Do NOT repeat a company that was already proposed. Do NOT reuse names, + slugs, or concepts that were rejected. Build something new and better. + Write the EXECUTIVE SUMMARY section. Include: 1. PROPOSED COMPANY @@ -206,6 +221,32 @@ steps: dest_path: "deliverables/proposals/proposal-{task.id}.md" commit_msg: "proposal: company_proposal task={task.id}" + - type: think + max_tokens: 600 + output_key: index_update + hint: | + You just wrote a company proposal. Update the proposal index. + + Read the current index content: + {prior_proposals} + + Append a new entry at the bottom of the "## Submitted Proposals" section. + Use this exact format: + + ### [Company Full Name] -- Task {task.id} + Date: 2026-04-29 + Status: AWAITING DAVID'S APPROVAL + Summary: [2-3 sentences: what was proposed, what gap it fills, key differentiator + from any prior proposals] + + Output the COMPLETE updated index file content from the very beginning. + Do not truncate. Do not skip sections. Include all prior entries plus the new one. + + - type: document + source_step: index_update + dest_path: "deliverables/proposals/index.md" + commit_msg: "index: add proposal {task.id} to proposal index" + - type: reply target: channel channel_name: "crimson_leaf:general" diff --git a/templates/strategic_review.yml b/templates/strategic_review.yml index 083ba06..6a864d2 100644 --- a/templates/strategic_review.yml +++ b/templates/strategic_review.yml @@ -41,6 +41,13 @@ steps: output_key: latest_log_entry optional: true + - type: tool + action: git_read_file + params: + path: "deliverables/proposals/index.md" + output_key: prior_proposals_index + optional: true + - type: think max_tokens: 8000 rotate_participants: true @@ -60,6 +67,9 @@ steps: === LAST CYCLE ENTRY === {latest_log_entry} + + === PRIOR PROPOSALS (all proposals ever submitted) === + {prior_proposals_index} === Analyze from YOUR perspective: @@ -162,6 +172,11 @@ steps: - State why now (cost of waiting another 30 days) - Include 90-day success criteria (measurable, e.g. "weekly P&L report delivered") - Note known constraints or dependencies + - Reference what was wrong with prior proposals so the new one is different + + === PRIOR PROPOSALS (study these -- do NOT repeat them) === + {prior_proposals_index} + === Output ONLY the brief text. No labels. No preamble.