Claude Cursor Skill

learning-loop

Turn captured Robium experience into small, evidence-backed skill improvements.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download robium-ai-robium-skills_learning-loop-498ea4e.zip · 5 KB
Part of robium-ai/robium — 44 skills

Install

skills CLI npx skills add https://github.com/robium-ai/robium/tree/main/skills/learning-loop
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install robium-ai-robium@llmmart
Git git clone https://github.com/robium-ai/robium.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole robium-ai/robium collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Learning loop

Capture is a lead, not knowledge. Promote it only when the evidence can improve a future decision without injecting old conversations into new work.

Capture without recall

  • Hooks may queue corrections, failures, and transcript windows silently.
  • Never insert queue items, observations, memories, or reminders into a new prompt. Read them only during an explicit consolidate, absorb, refine, or status task.
  • Batch bookkeeping at a natural milestone. A command error or clean skill run is not automatically a reusable lesson.
  • Keep project-specific facts in the application that owns them.

Promote evidence

  • Read the source transcript before turning a flag into an observation.
  • Preserve what was expected, what actually happened, the evidence for the fix, and any dead ends that prevent repeating the mistake.
  • Absorb only observations marked ready; uncertain material stays tentative.
  • Deduplicate the finding before carrying it forward.
  • Read PROMOTION.md when deciding whether evidence is strong enough or which skill owns it.

Change the least

  • Put the finding in the lowest skill that owns the decision.
  • Prefer correcting or replacing existing guidance over adding another rule.
  • Keep the live entrypoint lean. Conditional commands, failures, tuning, and platform evidence belong in focused support files.
  • Follow the skill-author quality bar and show the concrete diff with its evidence. Maintainer-authorized edits may land locally; unattended or unrequested absorption uses a branch and human-reviewed PR.
  • Live skills are versionless and changelog-free. The legacy anchor/version delta applier is not the writer for the current skill format.

Test according to risk

  • Run the lightweight skill validator after an edit.
  • Re-run an existing trigger or task check only when the changed guidance could affect it. Add a test only for a meaningful regression.
  • For a contested edit, compare small alternatives against realistic requests and let a human choose. Do not preserve variants merely as ceremony.
  • Read TESTING.md for the optional eval format and safe task-check boundaries.

Refine and retain

  • Refinement starts with findings, not edits. Read REFINING.md for the compact catalog review.
  • Keep a transcript while a queue flag or nonterminal observation depends on it. Once linked observations are absorbed or rejected and the change has landed, read RETENTION.md and prune it deliberately.
  • A status request may inspect queue size, ready observations, skill metrics, and transcript retention without changing anything.

Done

  • The future decision is clearer or safer with little added context.
  • The observation points to evidence and its status reflects what landed.
  • Relevant checks pass, and raw transcript evidence is kept only as long as it is still needed.
Files (robium)
  • evals.yaml 438 B
    triggers:
      positive:
        - phrase: consolidate the pending Robium learning flags at this milestone
        - phrase: absorb these ready observations into the skills
        - phrase: show me the learning loop status without changing anything
      negative:
        - phrase: mine the upstream Nav2 repository for reusable patterns
          expect: mining
        - phrase: write a brand new Robium skill for depth cameras
          expect: skill-author
    tasks: []
    
  • PROMOTION.md 1.9 KB
    # Promoting a learning
    
    Use the evidence ladder to keep cheap signals from becoming permanent advice.
    
    ## Queue flag to observation
    
    - A queue flag is only a pointer into a transcript. Discard context-free shell
      noise and expected probes.
    - Record a finding only when the source shows what was expected, what happened,
      and which skill or `[none]` is implicated.
    - One user correction can be strong evidence. Otherwise prefer two independent
      occurrences or a complete failure/fix/check trail.
    - An official source can support mined knowledge when it directly matches the
      claim and current platform.
    - Missing proof stays `tentative`; uncertainty is not a reason to rush an edit.
    
    The observation schema and legal statuses in `learnings/observations/README.md`
    are the source of truth.
    
    ## Observation to skill
    
    - Only `status: ready` is eligible for absorption.
    - Re-read the cited transcript or source; do not absorb a summary from memory.
    - Find the lowest skill that owns the decision. Split a finding when routing
      belongs to an umbrella skill but mechanics belong to a tool skill.
    - Make the smallest edit that carries the knowledge, and remove superseded or
      duplicated guidance in the same change when safe.
    - Keep exact values attached to their observed robot, platform, workload, and
      verification conditions.
    - Edit the live skill directly with the normal repository editing tools. In the
      same reviewed change, mark the observation `absorbed YYYY-MM-DD` only after
      the guidance and its relevant checks have landed. The old anchor/version
      delta applier remains only for historical artifacts and experiments.
    
    ## Review
    
    - Show the observation, owner, intended edit, and evidence together.
    - External contributors and unattended runs stop at a human-reviewed PR.
    - A maintainer's direct-edit authorization applies only to the current task and
      does not authorize pushes, publication, deployment, or paid work.
    
  • REFINING.md 1.6 KB
    # Refining the catalog
    
    Report findings before changing files. A clean pass should produce no churn.
    
    ## Remove harmful or unused guidance
    
    - Start with user corrections and observations showing that a rule caused a
      bad decision.
    - Remove advice that has no surviving use case rather than surrounding it with
      exceptions.
    - Preserve the evidence for a deletion in the review or observation; Git is the
      undo path.
    
    ## Collapse duplication
    
    - Search entrypoints and support files for the same decision stated in several
      places.
    - Keep the full guidance at the lowest owner. Leave a short conditional route
      only where another skill genuinely crosses that boundary.
    - Merge whole skills only in a dedicated review of their trigger surfaces.
    
    ## Re-check volatile facts
    
    - Find dated claims, package versions, flags, APIs, service limits, hardware
      requirements, and current-product statements.
    - Verify them against current official sources or change the guidance to check
      the installed environment at use time.
    - Do not refresh stable concepts merely to create activity.
    
    ## Reduce routine context
    
    - Flag entrypoints that approach the validator limit, repeat their support
      files, or contain command catalogs needed only occasionally.
    - Move conditional depth behind descriptive links; then remove the duplicate
      prose from the entrypoint.
    - Review descriptions for overlap using realistic neighboring requests, not
      keyword count alone.
    
    Run `uv run scripts/engine/skill_metrics.py` and its `--dupes` view as useful
    seeds, then verify every finding by reading the affected skill.
    
  • RETENTION.md 695 B
    # Transcript retention
    
    Transcripts are evidence, never prompt context.
    
    - Keep a transcript while a queue flag, tentative observation, or ready
      observation points to it.
    - A transcript becomes eligible for deletion when every linked observation is
      either rejected, or absorbed with its corresponding change landed.
    - Unreferenced transcripts expire after the repository's retention window;
      pending evidence always wins over age.
    - Run `uv run scripts/engine/prune_transcripts.py --dry-run` first and review
      every keep/delete reason.
    - Use `--apply` only after the report identifies the intended files. Retention
      cleanup does not authorize deleting unrelated logs or application data.
    
  • SKILL.md 3 KB
    ---
    name: learning-loop
    description: Turn captured Robium experience into small, evidence-backed skill improvements.
    ---
    
    # Learning loop
    
    Capture is a lead, not knowledge. Promote it only when the evidence can improve
    a future decision without injecting old conversations into new work.
    
    ## Capture without recall
    
    - Hooks may queue corrections, failures, and transcript windows silently.
    - Never insert queue items, observations, memories, or reminders into a new
      prompt. Read them only during an explicit consolidate, absorb, refine, or
      status task.
    - Batch bookkeeping at a natural milestone. A command error or clean skill run
      is not automatically a reusable lesson.
    - Keep project-specific facts in the application that owns them.
    
    ## Promote evidence
    
    - Read the source transcript before turning a flag into an observation.
    - Preserve what was expected, what actually happened, the evidence for the
      fix, and any dead ends that prevent repeating the mistake.
    - Absorb only observations marked `ready`; uncertain material stays tentative.
    - Deduplicate the finding before carrying it forward.
    - Read [PROMOTION.md](PROMOTION.md) when deciding whether evidence is strong
      enough or which skill owns it.
    
    ## Change the least
    
    - Put the finding in the lowest skill that owns the decision.
    - Prefer correcting or replacing existing guidance over adding another rule.
    - Keep the live entrypoint lean. Conditional commands, failures, tuning, and
      platform evidence belong in focused support files.
    - Follow the `skill-author` quality bar and show the concrete diff with its
      evidence. Maintainer-authorized edits may land locally; unattended or
      unrequested absorption uses a branch and human-reviewed PR.
    - Live skills are versionless and changelog-free. The legacy anchor/version
      delta applier is not the writer for the current skill format.
    
    ## Test according to risk
    
    - Run the lightweight skill validator after an edit.
    - Re-run an existing trigger or task check only when the changed guidance could
      affect it. Add a test only for a meaningful regression.
    - For a contested edit, compare small alternatives against realistic requests
      and let a human choose. Do not preserve variants merely as ceremony.
    - Read [TESTING.md](TESTING.md) for the optional eval format and safe task-check
      boundaries.
    
    ## Refine and retain
    
    - Refinement starts with findings, not edits. Read [REFINING.md](REFINING.md)
      for the compact catalog review.
    - Keep a transcript while a queue flag or nonterminal observation depends on
      it. Once linked observations are absorbed or rejected and the change has
      landed, read [RETENTION.md](RETENTION.md) and prune it deliberately.
    - A status request may inspect queue size, ready observations, skill metrics,
      and transcript retention without changing anything.
    
    ## Done
    
    - The future decision is clearer or safer with little added context.
    - The observation points to evidence and its status reflects what landed.
    - Relevant checks pass, and raw transcript evidence is kept only as long as it
      is still needed.
    
  • TESTING.md 2 KB
    # Testing a skill change
    
    Match the check to the risk. Most prose edits need the validator and manual
    scenario review, not a new harness.
    
    ## Always
    
    - Run `uv run skills/skill-author/scripts/validate_skills.py`.
    - Read the result as a packaging check, not proof that the guidance is useful.
    - For description, routing, or behavioral guidance changes, walk through a
      common request, the changed failure or choice, and the nearest request that
      should route elsewhere. Typos and mechanical link fixes do not need a
      ceremonial scenario review.
    
    ## Trigger checks
    
    Keep `evals.yaml` only where selection is genuinely ambiguous:
    
    ```yaml
    triggers:
      positive:
        - phrase: robot will not move to the navigation goal
      negative:
        - phrase: the Gazebo lidar topic is missing
          expect: gazebo
    ```
    
    Run existing cases with `uv run scripts/engine/run_trigger_evals.py --skills
    <name>`. If the semantic judge is unavailable, treat its lexical fallback as a
    diagnostic, not a reason to stuff keywords into the description. Do not create
    exhaustive synonym lists or assert exact description wording.
    
    ## Task checks
    
    Use a task only for a reusable executable artifact or user-visible behavior:
    
    ```yaml
    tasks:
      - name: example-runs
        command: uv run skills/example/examples/demo.py
        pass_criteria: "completed"
        timeout: 300
    ```
    
    - `name`, `command`, and `pass_criteria` are required. Names are unique
      kebab-case; pass criteria are regular expressions.
    - `app` may set a repository-relative working directory; `example` may point to
      the skill-relative artifact the task verifies.
    - Paths cannot be absolute or escape their allowed root. Referenced examples
      and app directories must exist; apps cannot run from inside `skills/`.
      Timeouts must be positive.
    - A task passes only when the command exits zero and its output matches.
    - Commands are trusted repository content. Never build one from untrusted user
      input.
    
    The validator and `scripts/engine/run_task_checks.py` share this schema.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related