Update pulse_check.yml -- post status summary to #general after each cycle (Sprint 82)
This commit is contained in:
@@ -1,103 +1,130 @@
|
|||||||
name: pulse_check
|
name: pulse_check
|
||||||
description: "Crimson Leaf holding company health scan -- Edgar checks all subsidiaries every 3 hours."
|
description: "Crimson Leaf holding company health scan -- Edgar checks all subsidiaries every 3 hours."
|
||||||
debug: true
|
debug: true
|
||||||
model: power
|
model: power
|
||||||
system: agent_prompt
|
system: agent_prompt
|
||||||
|
|
||||||
agent_prompt:
|
agent_prompt:
|
||||||
- "= identity.md"
|
- "= identity.md"
|
||||||
|
|
||||||
sections:
|
sections:
|
||||||
- agent
|
- agent
|
||||||
- project
|
- project
|
||||||
- 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: think
|
- type: think
|
||||||
max_tokens: 4000
|
max_tokens: 4000
|
||||||
hint: |
|
hint: |
|
||||||
You are Edgar, CEO of Crimson Leaf Holdings. You just received the portfolio report above.
|
You are Edgar, CEO of Crimson Leaf Holdings. You just received the portfolio report above.
|
||||||
|
|
||||||
Analyze it as a systems operator would:
|
Analyze it as a systems operator would:
|
||||||
1. Which companies are active? Which are idle (no recent activity)?
|
1. Which companies are active? Which are idle (no recent activity)?
|
||||||
2. Are any tasks stuck (in_progress but old)? Any unusually high failure rates?
|
2. Are any tasks stuck (in_progress but old)? Any unusually high failure rates?
|
||||||
3. Are adjudication pass rates healthy (>65%) or concerning?
|
3. Are adjudication pass rates healthy (>65%) or concerning?
|
||||||
4. Is the system healthy (workers online, queue depth reasonable)?
|
4. Is the system healthy (workers online, queue depth reasonable)?
|
||||||
|
|
||||||
Be concise and data-driven. Flag only what needs human attention.
|
Be concise and data-driven. Flag only what needs human attention.
|
||||||
For each issue, format as: "David, [action needed]: [details]"
|
For each issue, format as: "David, [action needed]: [details]"
|
||||||
|
|
||||||
If everything looks healthy, say so briefly -- don't invent problems.
|
If everything looks healthy, say so briefly -- don't invent problems.
|
||||||
|
|
||||||
Also assess Crimson Leaf Publishing (CLP) production status:
|
Also assess Crimson Leaf Publishing (CLP) production status:
|
||||||
- The portfolio report includes a project_breakdown array for each company.
|
- The portfolio report includes a project_breakdown array for each company.
|
||||||
- Look at the crimson_leaf_publishing company's project_breakdown.
|
- Look at the crimson_leaf_publishing company's project_breakdown.
|
||||||
- Each project entry has: name, slug, tasks_in_progress, tasks_completed,
|
- Each project entry has: name, slug, tasks_in_progress, tasks_completed,
|
||||||
last_activity_utc, hours_since_activity, and is_idle (true/false).
|
last_activity_utc, hours_since_activity, and is_idle (true/false).
|
||||||
- is_idle is true when tasks_in_progress=0 AND hours_since_activity > 4.
|
- is_idle is true when tasks_in_progress=0 AND hours_since_activity > 4.
|
||||||
- Identify which CLP project has is_idle=true and the highest hours_since_activity.
|
- Identify which CLP project has is_idle=true and the highest hours_since_activity.
|
||||||
- That is the project most overdue for a chapter dispatch.
|
- That is the project most overdue for a chapter dispatch.
|
||||||
|
|
||||||
- type: think
|
- type: think
|
||||||
max_tokens: 100
|
max_tokens: 100
|
||||||
output_key: dispatch_project_slug
|
output_key: dispatch_project_slug
|
||||||
hint: |
|
hint: |
|
||||||
Based on the portfolio report's project_breakdown for crimson_leaf_publishing,
|
Based on the portfolio report's project_breakdown for crimson_leaf_publishing,
|
||||||
which single CLP project has is_idle=true with the most hours_since_activity?
|
which single CLP project has is_idle=true with the most hours_since_activity?
|
||||||
|
|
||||||
Valid output values (pick exactly one): cypress-bend, crimson-vows, binding-thread, none
|
Valid output values (pick exactly one): cypress-bend, crimson-vows, binding-thread, none
|
||||||
|
|
||||||
Rules: output ONLY the slug value. No explanation. No punctuation. No newlines.
|
Rules: output ONLY the slug value. No explanation. No punctuation. No newlines.
|
||||||
If ALL three projects have is_idle=false (tasks currently in progress), output: none
|
If ALL three projects have is_idle=false (tasks currently in progress), output: none
|
||||||
|
|
||||||
- type: think
|
- type: think
|
||||||
max_tokens: 500
|
max_tokens: 500
|
||||||
output_key: dispatch_message
|
output_key: dispatch_message
|
||||||
hint: |
|
hint: |
|
||||||
The project selected for dispatch is: {dispatch_project_slug}
|
The project selected for dispatch is: {dispatch_project_slug}
|
||||||
|
|
||||||
If {dispatch_project_slug} is "none", output exactly: none
|
If {dispatch_project_slug} is "none", output exactly: none
|
||||||
|
|
||||||
Otherwise, write a clear chapter dispatch for the writing team. Include:
|
Otherwise, write a clear chapter dispatch for the writing team. Include:
|
||||||
- Book context: title, genre, lead characters, core conflict, setting
|
- Book context: title, genre, lead characters, core conflict, setting
|
||||||
- Task: "Write the next unwritten chapter. Check existing deliverables to find the
|
- Task: "Write the next unwritten chapter. Check existing deliverables to find the
|
||||||
last written chapter and continue from there. If no chapters exist, start with ch-01."
|
last written chapter and continue from there. If no chapters exist, start with ch-01."
|
||||||
- Word count target: approximately 3500 words per chapter
|
- Word count target: approximately 3500 words per chapter
|
||||||
- Reminder: use the book outline in Gitea (pae/{company_slug}/projects/{project_slug}/)
|
- Reminder: use the book outline in Gitea (pae/{company_slug}/projects/{project_slug}/)
|
||||||
for chapter titles and plot beats
|
for chapter titles and plot beats
|
||||||
|
|
||||||
Book reference:
|
Book reference:
|
||||||
- cypress-bend: "Cypress Bend" - contemporary romance, Louisiana bayou. Elena Vargas
|
- cypress-bend: "Cypress Bend" -- contemporary romance, Louisiana bayou. Elena Vargas
|
||||||
(painter) and Jax Harlan (reclusive novelist). 12 chapters.
|
(painter) and Jax Harlan (reclusive novelist). 12 chapters.
|
||||||
- crimson-vows: "Crimson Vows" - paranormal romance, blood pact. Lila Voss and vampire
|
- crimson-vows: "Crimson Vows" -- paranormal romance, blood pact. Lila Voss and vampire
|
||||||
heir Damian Voss. 10 chapters.
|
heir Damian Voss. 10 chapters.
|
||||||
- binding-thread: "The Binding Thread" - fantasy romance, fate-weavers. Lira and
|
- binding-thread: "The Binding Thread" -- fantasy romance, fate-weavers. Lira and
|
||||||
rebel leader Thorne. Kingdom of Eldoria. 12 chapters.
|
rebel leader Thorne. Kingdom of Eldoria. 12 chapters.
|
||||||
|
|
||||||
Output ONLY the dispatch message text. No labels. No metadata. No preamble.
|
Output ONLY the dispatch message text. No labels. No metadata. No preamble.
|
||||||
|
|
||||||
- type: tool
|
- type: tool
|
||||||
action: enqueue_strategy
|
action: enqueue_strategy
|
||||||
optional: true
|
optional: true
|
||||||
params:
|
params:
|
||||||
company_slug: "crimson_leaf_publishing"
|
company_slug: "crimson_leaf_publishing"
|
||||||
project_slug: "{dispatch_project_slug}"
|
project_slug: "{dispatch_project_slug}"
|
||||||
task_type: "book_chapter"
|
task_type: "book_chapter"
|
||||||
content: "{dispatch_message}"
|
content: "{dispatch_message}"
|
||||||
|
|
||||||
- type: reply
|
- type: think
|
||||||
target: discussion
|
max_tokens: 200
|
||||||
|
output_key: status_summary
|
||||||
adjudication:
|
hint: |
|
||||||
enabled: false
|
Write a brief 2-line status update for the Discord #general channel.
|
||||||
|
This should be punchy and informative -- David reads this to know if anything needs attention.
|
||||||
|
|
||||||
|
Format:
|
||||||
|
Line 1: "Pulse check -- [time context] -- [one word health: HEALTHY / ATTENTION / IDLE]"
|
||||||
|
Line 2: "[What action was taken or what was observed. Dispatch fired? All idle? Issue flagged?]"
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
"Pulse check -- 3h cycle -- HEALTHY"
|
||||||
|
"Dispatched ch-06 to Cypress Bend. CLP queue active on all 3 projects."
|
||||||
|
|
||||||
|
"Pulse check -- 3h cycle -- ATTENTION"
|
||||||
|
"David, Crimson Vows has been idle 18h. Dispatch fired. Adj pass rate dropped to 42%."
|
||||||
|
|
||||||
|
"Pulse check -- 3h cycle -- IDLE"
|
||||||
|
"All CLP projects active. No dispatches needed. System nominal."
|
||||||
|
|
||||||
|
Keep it to 2 lines maximum. No extra commentary.
|
||||||
|
|
||||||
|
- type: reply
|
||||||
|
target: channel
|
||||||
|
channel_id: "1473516041249493104"
|
||||||
|
hint: |
|
||||||
|
Post the status_summary above to the channel. Output it exactly as written.
|
||||||
|
Do not add any explanation, preamble, or additional context.
|
||||||
|
|
||||||
|
adjudication:
|
||||||
|
enabled: false
|
||||||
Reference in New Issue
Block a user