agentleFS
JunfengRanJunfengRan/dev-env/skills/continual-learning/SKILL.md

continual-learning

Skill1 starsChanged 3 months agoMITView on GitHub

Incrementally extract recurring user corrections/preferences and durable workspace facts from transcript changes, then route them into categorized .cursor/rules/*.mdc files. Use when the user asks to mine previous chats, maintain learned rules, or build a self-learning preference loop.

8 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 4 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Load incremental index: if present.

    line 19
  2. Very specific:

    If no file is a good fit, create a new .mdc in the appropriate subdirectory (see Rule File Layout).

    line 26
  3. Distinctive:

    Update matching bullets in place (don't duplicate).

    line 28
  4. Distinctive:

    When an item doesn't fit any existing file, create one following this template:

    line 54
  5. Very specific:

    Place the file in the subdirectory matching the monorepo package (web/, server/, desktop/, sdk/).

    line 78
  6. Distinctive:

    Keep an item only if all are true:

    line 82

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Continual Learning

Extract recurring user corrections/preferences and durable workspace facts from conversation transcripts, and route them into the appropriate .cursor/rules/*.mdc file.

Inputs

  • Transcript root: ~/.cursor/projects/<workspace-slug>/agent-transcripts/
  • Rules directory: .cursor/rules/
  • Incremental index: .cursor/hooks/state/continual-learning-index.json

Workflow

  1. Scan existing rules — Read every .mdc file under .cursor/rules/ (including subdirectories). For each file, note its description frontmatter and the topics it covers.
  2. Load incremental index if present.
  3. Discover transcripts and process only:
    • new files not in index, or
    • files whose mtime is newer than indexed mtime.
  4. Extract high-signal items — Look for recurring user corrections/preferences and durable workspace facts. Apply the inclusion bar below.
  5. Route each item to the best-matching rule file:
    • Match by topic against existing .mdc files' descriptions and content.
    • If no file is a good fit, create a new .mdc in the appropriate subdirectory (see Rule File Layout).
  6. Merge into target file:
    • Update matching bullets in place (don't duplicate).
    • Append net-new bullets under the most relevant section heading.
    • Deduplicate semantically similar bullets.
  7. Write back the incremental index.

Rule File Layout

Organize rules by package, matching the monorepo structure:

.cursor/rules/
├── dev-workflow.mdc              # alwaysApply: true — global habits
├── web/
│   ├── ui-development.mdc        # globs: packages/web/**/*.{vue,ts,scss}
│   ├── state-management.mdc      # globs: packages/web/src/stores/**
│   └── ...
├── server/
│   └── api-patterns.mdc          # globs: packages/server/**/*.ts
├── desktop/
│   └── electron-ipc-patterns.mdc # globs: packages/desktop/**/*.ts
└── sdk/
    └── opencode-sdk-reference.mdc # globs: packages/sdk/**, packages/web/src/context/**

Creating a new rule file

When an item doesn't fit any existing file, create one following this template:

---
description: <one-line summary — Agent uses this to decide relevance when no matching files are open>
globs: <glob pattern for auto-attach when matching files are in context>
alwaysApply: false
---

# <Title>

<bullets go here>

Cursor loads rules in four ways (in order of reliability):

  1. Always Apply (alwaysApply: true) — every session, guaranteed
  2. Glob auto-attach (globs set) — when matching files are in context
  3. Agent-decided (description set, no globs) — Agent judges relevance from description
  4. Manual (@rule-name) — only when user explicitly mentions

Best practice: always set both description AND globs. This gives you glob-based auto-attach as the primary trigger, with description as a fallback so Agent can still pick up the rule when discussing related topics without opening specific files.

  • Set alwaysApply: true only for cross-cutting workflow rules.
  • Set globs to the narrowest pattern that covers the relevant source files.
  • Place the file in the subdirectory matching the monorepo package (web/, server/, desktop/, sdk/). If it spans multiple packages, put it at the rules root.

Inclusion Bar

Keep an item only if all are true:

  • Non-obvious: not in official docs or standard language/framework behavior
  • Actionable: directly usable in future sessions
  • Durable: stable across sessions, not tied to a specific branch or commit
  • Repeated or explicit: appeared in multiple transcripts, or user explicitly stated it as a broad rule
  • Non-sensitive: no secrets, tokens, credentials, or private personal data

What qualifies

  • API quirks, tool limitations, framework traps discovered by trial and error
  • Problems that took multiple attempts to solve
  • Upstream code paths that differ from what the surface API suggests
  • Design principles agreed upon after discussion and correction
  • Gotchas likely to recur during future maintenance

What does NOT qualify

  • Facts already obvious from official documentation
  • Standard language/framework behavior
  • Content already present in an existing rule file (avoid redundancy)
  • One-off task instructions or transient details (branch names, commit hashes, temporary errors)

Exclusions

Never store:

  • secrets, tokens, credentials, private personal data
  • one-off task instructions
  • transient details (branch names, commit hashes, temporary errors)

Incremental Index Format

{
  "version": 1,
  "transcripts": {
    "/abs/path/to/file.jsonl": {
      "mtimeMs": 1730000000000,
      "lastProcessedAt": "2026-02-18T12:00:00.000Z"
    }
  }
}

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.