learn
Reflect on a completed run and propose workflow/prompt improvements. Use when learning from a run, writing retros, or improving workflows.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Reflect on a completed run and propose workflow/prompt improvements. Use when learning from a run, writing retros, or improving workflows.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Explore the codebase and write a discovery brief. Use when discovering scope, surveying a codebase, or starting a feature.
QA passed — merge branch to main, move ticket to Done, delete branch. Use after QA sign-off on a completed feature.
Run one fully-autonomous development iteration. Picks a ticket (from --focus or backlog via ideator), then runs the `orchestrator autopilot <slug>` workflow subcommand. This skill should be used when the user says 'autopilot', 'autonomous', 'self-improve'.
Create commits in logical groups. This skill should be used when the user says 'commit-group', 'group commits', 'organize commits', or when there are multiple unstaged changes that should be organized into atomic commits.
Complete feature — verify, signoff, archive. Runs only the complete phase of the orchestrate workflow. This skill should be used when the user says 'complete feature', 'finish feature', 'merge to main'.
Fetch curated, agent-optimized library documentation via Context Hub (chub). Use when implementing features that use external libraries, when Context7 returns noisy/incomplete docs, when you need language-specific or version-specific API docs, or when the user says "chub", "context hub", "get docs for X". Prefer this over Context7 for libraries in chub's registry — curated docs have less noise and better code examples.
| name | learn |
| description | Reflect on a completed run and propose workflow/prompt improvements. Use when learning from a run, writing retros, or improving workflows. |
| user-invocable | true |
Intent: Trigger automatic learning from the just-completed change so every completion improves the next execution.
final_signoff_decision (optional) — names a human approval gate, not a dataflow edge.learn_resultRun the workflow learning pipeline for this completed change.
Read the active state.yaml for this change. Prefer state_yaml_path from the
dispatch prompt (worktree runs: under worktree_path/spec/changes/<change_id>/;
non-worktree: $REPO_ROOT/spec/changes/<change_id>/). Do not read from archive
or from $REPO_ROOT/spec/changes/ while a worktree path is set — merge and
(mark-change-completed, compute-swe-metrics, cost-report, ticket-done) run before
archive; merge and worktree teardown stay in orchestrator complete.
Run the full evaluation, finding classification, rule routing, hit/miss update, decay evaluation, and quality bar adjustment.
For each durable learning that should change a specific step's future
behavior: convert it into an eval scenario and propose it by appending
one JSON line to proposed-scenarios.jsonl in the directory containing this
run's state.yaml (create the file if absent). Do not edit any pack's
scenarios/*.jsonl yourself — the persist-learnings step that runs right
after this one validates every proposed row, appends the survivors to the
target pack's scenarios/train.jsonl, and commits them. Writing directly
risks a malformed row, which makes the whole pack unevaluable.
Format, one physical line per proposal (no pretty-printing):
{"step_id": "<target step>", "row": {"id": "<short-kebab-slug>", "scenario": "<the situation>", "expect": ["...", "..."]}}
step_id names the step whose future behavior the learning changes; it must
be a key of $ORCHESTRATOR_PROMPT_DIRS (a JSON object mapping step_id →
absolute prompt dir for every agent step in this workflow). A learning about
a step absent from that map has nowhere to land — skip it. row carries
exactly the three keys id, scenario, expect and nothing else.
The scenario recreates the situation the learning guards against, phrased
as a fresh task with no hint of the rule; expect lists 3-4 observable
staff-level behaviors the rule demands. Skip it if an existing scenario in
the step's scenarios/ already covers the same failure mode. Whether a
learning stays is decided by eval evidence: the prompt-optimizer per-
scenario report shows whether it still catches failures or has been
internalized. Do NOT write to spec/project.yaml learnings: — that key is
not read by the dispatcher.
If learning fails for any reason: log learn_skipped: true and return success. Learning is best-effort and must not fail the complete phase.
Return COMPLETION:
COMPLETION:
status: completed
outputs:
learn_result: <completed|skipped>
skipped: true outcome is only valid when the step is gated off (e.g. learn=false) or simply not listed by the running workflow. Session token budget, time pressure, 'capture via retro', or any cost-based justification is NEVER a valid skip reason for feedback-loop steps. Budget pressure is a signal to stop earlier, not to skip learning.