From robin
AI-Robin Degrader. Writes the context-degraded-*.yaml spec narrative and updates escalation-notice when a scope is degraded. Reads original specs + ledger history to compose the narrative (domain work the kernel cannot do itself).
How this skill is triggered — by the user, by Claude, or both
Slash command
/robin:robin-degraderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Degradation Agent writes the `context-degraded-*.yaml` spec and updates `escalation-notice.md` when a scope is degraded. It reads original specs + ledger entries to compose a narrative explaining what was attempted, what was tried, what's left on disk, and what a human should do about it.
Degradation Agent writes the context-degraded-*.yaml spec and updates escalation-notice.md when a scope is degraded. It reads original specs + ledger entries to compose a narrative explaining what was attempted, what was tried, what's left on disk, and what a human should do about it.
The kernel cannot do this itself — composing the narrative requires reading domain content (original specs, change history, last-review issues), which kernel-discipline §1 forbids.
Load before starting:
stdlib/feature-room-spec.md — for the spec YAML formatstdlib/degradation-policy.md — for the degradation spec structure and escalation-notice formatcontracts/dispatch-signal.md — return signal shapecontracts/session-ledger.md — for reading ledger history of attemptsFrom main agent at spawn:
{
"invocation_id": "string",
"project_root": "string",
"scope_type": "'batch' | 'milestone' | 'research_question' | 'plan_scope' | 'global'",
"scope_id": "string",
"trigger_reason": "string — e.g. 'review_iterations_per_batch exhausted after 2 fails'",
"trigger_ledger_entry_id": "integer — the budget_exhausted entry that triggered this",
"related_spec_ids": ["string — spec ids that belong to the degraded scope"]
}
Return degradation_spec_written signal. Do NOT commit — Commit Agent does that (kernel will spawn it next based on this signal).
Primary artifacts:
context-degraded-*.yaml file in the appropriate Feature Roomrelated_spec_ids (set state: degraded).ai-robin/escalation-notice.mdAutonomy: guided
Read:
related_spec_ids from the Feature Roomtrigger_ledger_entry_id (N ≈ 20)stage-state.json to understand current_batch stateBuild an internal mental model of: what was being attempted, what was tried (attempt 1, attempt 2), what's currently on disk from any partial work.
Autonomy: guided
For a batch degradation: which files in the working tree exist from this batch's attempts? Use git log to scan; if files were never committed, they may still be in the working tree uncommitted.
For a milestone degradation: similar but narrower.
For a research_question degradation: the .ai-robin/research/ folder may have partial findings.
Autonomy: autonomous
The narrative has 5 parts, each 2-8 lines:
Write these into memory as strings. Phase 4 persists them.
Autonomy: explicit (spec format); guided (content inside)
Build a spec yaml per stdlib/feature-room-spec.md and stdlib/degradation-policy.md:
spec_id: "context-degraded-{scope-short-name}-{NNN}"
type: context
state: degraded
intent:
summary: "Scope {X} was degraded; see escalation-notice"
detail: |
**Scope**: ...
**What was being attempted**: ...
**Why degraded**: ...
**What was tried**: ...
**Current state on disk**: ...
**Suggested resolution**: ...
constraints: []
indexing:
type: context
priority: P0
layer: project
domain: "degradation"
tags: ["degraded", "{scope-type}"]
provenance:
source_type: degradation_trigger
confidence: 1.0
source_ref: "ledger entry {trigger_ledger_entry_id}"
relations:
- type: "relates_to"
ref: "{each spec_id in related_spec_ids}"
anchors: []
Write to the appropriate Room (scope-local Room for batch/milestone, 00-project-room for cross-cutting). File path: {project_root}/META/{room}/specs/context-degraded-{scope-short-name}-{NNN}.yaml.
Autonomy: explicit
related_spec_ids: set state: degraded (read the file, mutate the state field, write back)..ai-robin/escalation-notice.md per the format in contracts/escalation-notice.md.Autonomy: explicit
Compose the commit message for Commit Agent. Format:
degradation({scope_id}): {one-line trigger reason}
Scope: {scope description}
Trigger: {trigger_reason}
Degraded spec: {degraded_spec_id}
See context-degraded-{scope-short-name}-{NNN}.yaml and escalation-notice.md.
Build the files_to_stage list: new context-degraded spec + updated original specs + escalation-notice.md.
Write degradation_spec_written signal to .ai-robin/dispatch/inbox/{signal_id}.json. signal_id format: degrade-degradation-{YYYYMMDDTHHMMSS}-{8-char-hex}.
| Need | Read |
|---|---|
| Degraded spec yaml format | stdlib/degradation-policy.md § "Step 2: Write the degradation spec" |
| Escalation notice section format | contracts/escalation-notice.md |
| Spec format | stdlib/feature-room-spec.md |
| Signal shape | contracts/dispatch-signal.md |
npx claudepluginhub waynewangyuxuan/robin --plugin robinGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.