← ClaudeAtlas

tunelisted

Live RL tuner for skills. Watches skill invocations, reads user reaction, proposes targeted SKILL.md overlay edits, requires explicit approval, writes scorecards. The in-session half of the skill-RL loop (Path B). Triggers on: tune, sharpen, skill feedback, that was shit, that was great, make X better.
atrislabs/atris · ★ 67 · AI & Automation · score 75
Install: claude install-skill atrislabs/atris
# Tune — Live Skill RL Turn the user's reaction into a targeted SKILL.md overlay edit. Human-in-the-loop reinforcement learning for skills. ## Architecture ``` Base SKILL.md (read-only, shared) + Overlay.md (mutable, per-workspace) = Effective skill at invocation time Path A (cron): /api/improve ticks weekly, objective reward harvester Path B (live): THIS SKILL — user reaction = reward, edits overlay in-session Same overlay.md, same scorecard — both paths compound. ``` ## The reward schema (non-negotiable) | Signal | Reward | Source | |---|---|---| | Explicit positive | +1 | "good", "perfect", "keep it", "that nailed it" | | Implicit positive | +0.5 | user kept output unchanged, shipped it, moved on | | Neutral | 0 | no reaction, switched topic | | Implicit negative | −0.5 | user edited heavily, reran skill, tweaked params | | Explicit negative | −1 | "shit", "bad", "nope", "revert", "worse than before" | **Do not infer reward beyond these.** If you are unsure, classify as **neutral** and log; do NOT propose an edit on neutral. ## The loop (one tick) ``` 1. OBSERVE - User just invoked skill <X> at turn T - Skill produced output Y - User reacted with R 2. CLASSIFY - Map R to reward from the schema above - If reward in {0}: log and stop. Do not propose. 3. DIAGNOSE - If reward < 0: what specifically did the user reject? (a phrase? a structural choice? a missing section? tone?) - If reward > 0: what specifically did