Agent skill
compound-autolearn-compoundspec
Generate a CompoundSpec v2 JSON-only autolearn proposal from git diffstat + existing skills, while respecting strict file-scope constraints.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/compound-autolearn-compoundspec
Metadata
Additional technical details for this skill
- version
- 1
- created at
- 2026-01-30T16:42:50.393Z
- updated at
- 2026-01-30T16:42:50.393Z
SKILL.md
Purpose
Turn an autolearn prompt (recent activity + constraints) into a valid CompoundSpec v2 JSON object.
When To Use
- Prompt says "Background Autolearn" or "learning agent".
- Prompt requires JSON-only output and limits edits to memory/docs artifacts.
Procedure
- Read the constraints and allowed paths; assume anything else is forbidden.
- If a system reminder indicates read-only / Plan Mode:
- Do not propose product code changes.
- Keep proposals strictly within skills/instincts/docs/changelog.
- Do not propose actions that imply file modifications outside the allowed set.
- Use the git summary (changed_files + diffstat) as evidence for what to learn.
- If the git summary indicates an in-progress merge/conflict state (e.g., diffstat lines labeled "Unmerged "):
- Treat the diff as incomplete/low-signal.
- Avoid inferring product behavior changes.
- Prefer a small instinct/skill update about conflict-state hygiene.
- If there is no other stable evidence, emit empty skill/instinct changes and set
docs.sync: false.
- If the diffstat is empty (or there are no meaningful file changes):
- Do not invent learnings.
- Emit empty
instincts.create/updateandskills.create/update. - Set
docs.sync: false. - Use a changelog note that explains the skip (e.g., "Autolearn ran with no diff evidence; skipped memory updates.")
Evidence hygiene (low-signal diffs)
Treat generated/derived artifacts as low-signal evidence:
- If
services/index.jsonchanges without correspondingservices/*.mdedits, assume it was refreshed and do not infer new dependency learnings. - If
.opencode/memory/instincts.json/.opencode/memory/INSTINCTS.mdshow large rewrites or deletions, assume cleanup and avoid inventing new heuristics from it. - If changes appear duplicated under both
.claude/skills/and.opencode/skills/, assume a mirror/sync artifact:- Do not infer new behavior from the duplication.
- In CompoundSpec proposals, only target
.opencode/skills/**(never propose changes to.claude/skills/**).
- If the diff is primarily additions/deletions under
src/*.egg-info/, assume packaging metadata cleanup/regeneration noise and avoid learning anything beyond "egg-info is generated" unless the prompt explicitly states an intentional packaging change. - If the diffstat shows changes only under
examples/with no correspondingsrc/ortests/changes, treat it as low-signal for durable learnings; emit emptyskills/instincts, setdocs.sync: false, and use a changelog note explaining the skip.
Ticket/process-heavy diffs
- If the diff is primarily ticket/process artifacts (e.g.
.tickets/*.md,LOOM_ROADMAP.md,LOOM_CHANGELOG.md,AGENTS.md) with no corresponding product code changes:- Prefer
instincts.update[]that strengthen workflow heuristics (triage, scoping, read-only constraints). - Avoid creating new skills unless a repeated procedural gap is clearly demonstrated.
- Avoid proposing docs block updates unless a stable always-on principle changed.
- Do not infer or describe product behavior changes.
- Prefer
Prefer updates over creation
Prefer:
instincts.update[]to strengthen an existing heuristicskills.update[]to refine an existing skillskills.create[]only if there is no close match
Skill updates
- If updating a skill:
- Re-emit the entire final managed body (no diffs/snippets).
- Keep it checklist-like.
Instinct quality bar
- Keep instincts crisp:
- Trigger is a concrete situation.
- Action is a concrete behavior.
- Confidence is 0.6-0.85 unless repeated evidence.
Keep proposals small
- Max 3 skills per run.
- Max 8 instinct updates per run.
Output hygiene
- Output exactly one JSON object.
- Do not wrap in code fences.
- Do not include commentary.
- Use repo-root-relative paths in any markdown content.
Suggested Minimal Template
auto.reasonfrom prompt (oftensession.idle).auto.sessionIDfrom prompt.docs.sync: trueif you touched skills/instincts/docs; otherwisedocs.sync: false.changelog.noteas a single sentence describing the memory delta.
Manual notes
This section is preserved when the skill is updated. Put human notes, caveats, and exceptions here.
Didn't find tool you were looking for?