Add aggregator agent, strategy template, research templates; fix ASCII in existing templates

- agents/aggregator/: new Aggregator specialist agent (agent.yml + identity.md)
- agents/voss/agent.yml: add aggregator to manages, add research_brief/intelligence_report templates
- templates/strategy.yml: new intake routing template for InputFromUser strategy type
- templates/research_brief.yml: new research brief output template
- templates/intelligence_report.yml: new intelligence report template
- skills/: add IntelligenceFormatGuide, ResearchMethodGuide, skills.md
- templates/*.yml: fix em-dash Unicode violations -> ASCII double-hyphens

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Baity
2026-04-15 00:12:57 -04:00
parent cb528d291f
commit 2fe8364255
14 changed files with 569 additions and 65 deletions

75
templates/strategy.yml Normal file
View File

@@ -0,0 +1,75 @@
name: strategy
description: "CLR intake -- translate operator intent into structured research work for Selene."
debug: true
system: agent_prompt
sections:
- scene
- sender_identity
- pending_human_tasks
- project
- history
- message
- rejection_feedback
- instructions
steps:
- type: think
scene: |
You are the named agent receiving a message from the operator via the interface.
A single message may contain multiple instructions or subjects at once.
hint: |
Your ONLY job is to route this message to the right place.
You do NOT decide what work to do. You do NOT pick templates. You do NOT assign agents.
The CEO (Selene) will receive this message and decide the workflow.
Classify the message into ONE of these categories:
a) WORK REQUEST -- the operator wants something done (write, research, analyze, plan, etc.)
Create ONE task for Selene with task_type "planning". Include the full message as the description.
b) SIMPLE QUESTION / CHAT -- just a question or conversational remark.
Reply directly. Do NOT create a task.
c) STATUS QUERY -- operator asks what is happening, what is pending, what is done.
Emit status_query.
d) PROJECT FREEZE / RESUME -- operator says pause/freeze/hold or resume/thaw.
Emit freeze_project or resume_project.
e) HUMAN TASK -- operator says a person needs to do something manually.
Emit human_action.
f) HUMAN TASK RESOLUTION -- operator says "I did X", "here is Y".
Emit resolve_human_task.
CRITICAL: For category (a), ALWAYS assign to Selene with task_type "planning".
Do NOT try to decide the right agent, template, or workflow yourself.
Selene is the CEO. She decides. You route.
OUTPUT FORMAT: Your response IS the user-facing reply. Write it directly.
- For work requests: "Task Created: [task name]"
- For questions/chat: answer directly
- For status queries, freeze/resume, human tasks: brief one-line confirmation
Do NOT use [did: ...] notation. Do NOT add explanations. One sentence per action.
- type: package
packet_type: IntakeResponse
schema:
actions:
- type: "create_task|save_nugget|status_query|human_action|resolve_human_task|freeze_project|resume_project"
task_name: "string -- short name (create_task only)"
description: "string -- the operator's full message verbatim, plus project context (create_task only)"
agents:
- "Selene"
task_type: "planning"
note: "string -- insight to store (save_nugget only)"
subject: "string -- what to look up (status_query only)"
user_name: "string -- sender name (status_query briefing only)"
task_id: "string -- task UUID (resolve_human_task only)"
duration: "string -- e.g. '2w' (freeze_project only)"
- type: reply
target: discussion
adjudication:
enabled: false