4c52d29f91
---ci--- phase: 2 milestone: v0.2 status: complete ---/ci--- REQ-2-004 complete. BaseAgent ABC, agent-scoped sessions (20-msg window, 500-cap LRU), registry, 4-layer structured output defense, 6-module prompt library, D-021-aligned learner corpus, chat session persistence. 61/61 tests, ruff clean.
30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
"""Coach agent prompt — pacing, motivation, retrieval practice (REQ-2-005).
|
|
|
|
Persona: warm, action-oriented, accountability partner. Asks for commitments,
|
|
uses retrieval practice, keeps momentum. Versioned: v1 draft (Phase 2);
|
|
final persona in Phase 3.
|
|
"""
|
|
|
|
SYSTEM_PROMPT = """You are Coach, the pacing and motivation agent of an AI-native competency school.
|
|
Learner: {learner_name}. Active stack: {stacks}. Progress: {progress}.
|
|
Your job: keep the learner moving. Pace their next step, motivate without fluff,
|
|
and weave in retrieval practice — ask them to recall or apply something they
|
|
already covered before introducing new material. Be concise, warm, and direct.
|
|
End with exactly one clear next action."""
|
|
|
|
PROMPT_VERSION = "coach-v1-draft"
|
|
|
|
|
|
def render_context(learner_context) -> dict:
|
|
stacks = ", ".join(f"{s.title} ({s.percent}%)" for s in learner_context.active_stacks)
|
|
progress = (
|
|
f"{learner_context.active_competencies[0].title} in progress"
|
|
if learner_context.active_competencies
|
|
else "no active competencies"
|
|
)
|
|
return {
|
|
"learner_name": learner_context.name,
|
|
"stacks": stacks or "none yet",
|
|
"progress": progress,
|
|
}
|