一键导入
learning-synthesis
// Analyzes a day of Slack-thread user sessions to discover opportunities for new skills, personas, tools, workflows, and system-level improvements. Use alongside gap-analysis for the nightly self-improvement workflow.
// Analyzes a day of Slack-thread user sessions to discover opportunities for new skills, personas, tools, workflows, and system-level improvements. Use alongside gap-analysis for the nightly self-improvement workflow.
Investigate reported auth, credential, permission, API proxy, 401, 403, 503, OAuth, token, or secret-resolution failures by querying VictoriaLogs first. Use when a user says an integration auth failed, a tool got unauthorized/forbidden/service unavailable, an api-proxy request failed, or asks why credentials/secrets are not working.
Scaffold and build new tool integrations in tools/. Use when asked to create a new tool, add an API integration, or build a new client for an external service.
Researches, plans, implements, validates, and opens a focused PR for one selected self-improvement gap. Use when executing one chosen backlog item from the nightly self-improvement workflow.
Run comprehensive QA and integration tests against the local Centaur stack. Use when asked to QA the stack, run integration tests, verify a deployment, or check stack health after a refactor.
| name | learning-synthesis |
| description | Analyzes a day of Slack-thread user sessions to discover opportunities for new skills, personas, tools, workflows, and system-level improvements. Use alongside gap-analysis for the nightly self-improvement workflow. |
Look across the day's sessions not for what went wrong, but for what the system could learn.
Use this skill when the input is the same batch of reconstructed user tasks given to gap-analysis, and the goal is to find opportunities rather than failures.
Gap analysis asks: "what broke and how do we fix it?" Learning synthesis asks: "what should we build, know, or become next?"
Scan the evidence packs for these opportunity classes, in roughly this priority:
A user repeatedly asks for a workflow or procedure the bot handles ad-hoc every time. If the same multi-step pattern shows up in 2+ threads, it should probably become a reusable skill with its own SKILL.md, references, and trigger phrases.
Look for:
A user needs a consistent stance, voice, or decision-making framework that doesn't match any existing persona. If the bot keeps being asked to "think like X" or "approach this from Y's perspective," that's a persona opportunity.
Look for:
The bot had to be taught something by the user that it should already know. If a user corrects the bot about internal processes, team structure, product names, or domain conventions, that knowledge should be baked into a skill, persona, or the system prompt.
Look for:
Users are asking for capabilities that don't exist as tools. If users repeatedly ask the bot to do something it can only hack together with shell commands or workarounds, that's a tool opportunity.
Look for:
Users are doing manual multi-session workflows that could be automated. If you see a pattern like "every Monday the user asks the bot to do X, then Y, then Z," that's a scheduled workflow opportunity.
Look for:
Sessions reveal that the base system prompt or a persona overlay is missing guidance that would prevent recurring confusion.
Look for:
Use the same evidence packs as gap-analysis. Do not request additional data.
Follow-up messages are provided as raw text. Interpret them semantically to understand what users actually needed, not just whether the task "passed" or "failed."
Focus on patterns across sessions, not individual task quality. A single instance is an anecdote; 2+ instances of the same demand pattern are a signal.
A separate reconciliation step will deduplicate your selected builds against gap-analysis fixes after this pass. Focus on finding the best opportunities; the workflow handles cross-pass merging.
Return JSON only. Use EXACTLY these top-level keys:
{
"sessions_analyzed": 0,
"opportunities_found": 0,
"opportunities": [
{
"title": "Short descriptive title",
"opportunity_type": "new_skill",
"evidence_summary": "What sessions showed this pattern",
"evidence_threads": ["C123:1700.100"],
"what_exists_today": "How the bot handles this now",
"what_should_exist": "What the improvement would look like",
"target_surface": "tools/personas/eng/PROMPT.md",
"implementation_sketch": "Concrete first step — not vague",
"confidence": "high",
"user_value": "Why this matters to users"
}
],
"selected_builds": []
}
opportunity_type valuesnew_skill — a reusable skill file for a recurring procedurenew_persona — a new persona overlay for a recurring stance/voiceskill_improvement — add references, examples, or steps to an existing skillpersona_improvement — add guidance to an existing persona overlaynew_tool_idea — a tool that should exist but doesn'tnew_workflow_idea — a scheduled or triggered workflow that should existsystem_prompt_improvement — a change to the base system promptdomain_knowledge — factual knowledge that should be baked in somewhereselected_builds arrayFrom the opportunities list, select up to the workflow-provided maximum for autonomous implementation. Each entry uses the same schema as opportunities but represents a commitment to build, not just an observation.
Only select builds where:
target_surface (file path)Each selected build MUST additionally include a slack_narrative field — a 2–4 sentence plain-English note that names the specific users who surfaced the pattern, describes what they were trying to do, and explains why this opportunity is worth building now. Use the source_user_name field on each evidence pack to ground the narrative in real people. This field is posted to the internal ai-v2 Slack channel and is stripped before the implementing agent sees the fix packet, so user names and concrete task details are encouraged here. Do NOT invent situations — stay grounded in provided evidence.
If no opportunity meets that bar, return an empty selected_builds array. Observations still go in opportunities for the scorecard.
target_surface and implementation_sketch.