- name
- loopx-self-repair
- description
- Diagnose and repair LoopX control-plane drift or agent behavior drift. Use when a LoopX task makes unexpectedly small progress, follows a stale or contradictory recommended_action, ignores a higher-priority blocked item while doing fallback work, reports vague owner/user gates, loses todo projection, misaligns benchmark treatment with the real product path, mixes temporary artifacts into commits, or when the user asks for root-cause analysis, self-repair, or why the harness/agent behaved unexpectedly.
# LoopX Self Repair
Use this skill to turn a surprising LoopX behavior into a durable fix,
not only an apology or a one-off explanation.
## Repair Loop
1. **Pause delivery selection.** Do not spend quota or continue adapter work
until the control-plane facts explain why that work is valid.
2. **Reuse evidence before collecting more.** Start with the current failed
command's structured response, error code and operation identity. An already
loaded packet is evidence for that observation, not permission for a later
write. Fetch fresh authority when required by its admission/lease contract.
Read [targeted diagnostics](references/targeted-diagnostics.md) when deciding
which missing fact to collect or investigating slow commands. Do not run
diagnose, status, quota and history as a fixed preflight: diagnose already
composes status and quota work. Recording an already-understood repair Todo
does not require rediscovering the incident.
3. **Look up the symptom.** Run `python3 scripts/find_pattern.py --query
'<error code or symptom terms>'` from this skill directory, or invoke its
absolute path. Use `--id <returned-id>` to read the relevant full guidance.
[Search instructions](references/pattern-lookup.md) explain pagination and
fallback. Do not load the complete catalog, paginate it into context, or
reread unchanged references already available in this task. If no pattern
fits, diagnose from current facts and add one after the fix.
4. **Assign the responsible layer.** Separate:
- agent behavior mistake;
- state projection or quota payload bug;
- active-state authoring gap;
- benchmark harness mismatch;
- docs/process hygiene gap.
5. **Repair at the lowest durable layer.**
- If it is a one-off agent mistake, write back the correct state/todo and
size the next scoped effort to its verifiable result, evidence and risk.
- If the machine projection misled the agent, fix CLI/status/quota
projection and add a focused smoke.
- If the user correction changes the goal acceptance, says the agent missed
the intended loop, or exposes a product bottleneck that is not visible in
quota/status, write a bounded `goal_vision_replan_contract_v0` packet with
`replan_trigger_summary` through normal `loopx refresh-state --vision-*`
fields, using the same `--agent-id` as the current lane, or
`--agent-vision-json` for generated multi-field patches, before returning
to delivery. If the next executable step is already known, also add or
link the concrete successor todo; do not leave the correction only in chat
or an incident note.
- If a design rule is missing, update the interaction model or todo list
before implementing broad behavior.
- If benchmark evidence is not attributable, add posthoc trace/parity
checks before claiming uplift or regression.
6. **Validate before resuming.** Run the smallest smoke or CLI check that would
have caught the issue, plus `loopx check` on changed public surfaces
when docs/contracts changed.
7. **Write back the lesson.** Update active goal state, docs, contributor
tasks, or this skill so the same failure mode is visible next time.
## Upstream Issue Escalation
A public GitHub issue is an optional final escalation, not a default side
effect of self-repair. Consider it only when the responsible layer is a
reusable LoopX product, CLI, skill, installer, or control-plane gap and durable
upstream tracking adds value beyond the local repair or PR.
Read `references/upstream-issue-escalation.md` before publishing anything.
Invoking this skill never grants publication permission. The guarded path must:
1. reject private, project-specific, support-only, and security-sensitive
reports;
2. reduce the evidence to a minimal public-safe reproduction and scan the
draft with `loopx check`;
3. search open and closed issues by a stable fingerprint before creating one;
4. auto-submit only under explicit current-turn approval or durable owner
opt-in; otherwise show the exact draft and ask once for confirmation;
5. create at most one issue per repair turn, then record the existing or new
issue URL in the relevant LoopX todo/evidence writeback.
If qualification, authority, authentication, boundary scanning, or duplicate
search is uncertain, preserve the draft and stop before publication. Prefer a
direct fix or PR when no separate issue is needed for coordination.
## Vision / Replan Writeback
Use the bounded vision contract when self-repair discovers that LoopX did not
notice a missing outcome, route, or acceptance condition by itself. The packet is
the bridge from human or agent insight to quota-visible replan state:
```json
{
"schema_version": "goal_vision_replan_contract_v0",
"state": "vision_drift_detected",
"vision_patch": {
"vision_summary": "Name the corrected route or acceptance target.",
"acceptance_summary": "Name the machine-visible condition that must hold.",
"replan_trigger_summary": "Name why the current frontier is insufficient."
},
"todo_delta": ["create_successor"]
}
```
Record it with normal inline `refresh-state --vision-summary
--vision-acceptance --vision-replan-trigger` fields using the same `--agent-id`
that ran the repair. Use `--agent-vision-json` when a generated patch is clearer
than a command line. Replan closes only through a typed semantic observation or
an atomic Todo transition bound with `--replan-obligation-id`, a typed
`--action-kind`, and a stable `--target-key` or Explore node ref; do not append
a second `--autonomous-replan-recorded` repair ACK. A vision patch without a
runnable Todo is still useful: `quota should-run` can promote its
`replan_trigger_summary` into `goal_frontier_projection.acceptance_gaps[]` when
the advancement frontier is empty.
If the repair concludes that the existing per-agent vision is still correct,
close the required checkpoint with `--vision-unchanged-reason` instead of
writing a fake patch. If a material `refresh-state` lacks both a patch and an
unchanged/no-follow-up decision, LoopX should preserve a per-agent
`vision_checkpoint_v0` with `decision=missing_required` so the same agent's
next quota check can enter replan. A scheduler wake alone is not a material
vision boundary: when quota explicitly projects a normally admitted open
advancement Todo as `delivery_boundary=in_flight_continuation`, use the
projected settlement command and do not invent a vision patch. The next
heartbeat keeps that same Todo selected only after accountable
`outcome_progress`; Todo completion, blocker/gap, durable Next Action change,
replan, or terminal closeout must return to the strict semantic checkpoint.
## Evidence Discipline
- Do not read or commit raw private logs, trajectories, verifier output,
credentials, internal links, or production material.
- Do not solve contradictory payloads by guessing. If `recommended_action`,
`goal_boundary.write_scope`, todos, and interaction contract disagree, treat
that as a projection bug or state authoring bug first.
- Do not let fallback work hide the primary blocker. When a higher-priority
path is gated but safe fallback is valid, report both the concrete gate and
the fallback progress.
- Do not equate bounded work with a small operation. If turns repeatedly stop
after setup or surface-only edits, check whether a verifiable result could
have been reached within scope and budget. Repair the premature stop, not by
imposing a minimum number of calls/files or ignoring explicit stop conditions.
## Reference Routes
- For known symptom-to-repair mappings, search with `scripts/find_pattern.py`;
`references/pattern-lookup.md` explains the lookup, not a required full read.
- For missing facts, slow commands and response truncation, read
`references/targeted-diagnostics.md`.
- For guarded public GitHub issue escalation, read
`references/upstream-issue-escalation.md`.
- For user/agent/state channel semantics, read
`../../docs/state-interaction-model.md` and
`../../docs/concepts/interaction-pattern-catalog.md`.
- For quota and heartbeat decisions, read
`../../docs/quota-allocation.md` and
`../../docs/heartbeat-automation-prompt.md`.
- For commit/PR hygiene failures, read `../../AGENTS.md`.
Auf GitHub ansehen