Install
$ agentstack add skill-junfengran-dev-env-continual-learning ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README — it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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//agent-transcripts/ - Rules directory:
.cursor/rules/ - Incremental index:
.cursor/hooks/state/continual-learning-index.json
Workflow
- Scan existing rules — Read every
.mdcfile under.cursor/rules/(including subdirectories). For each file, note itsdescriptionfrontmatter and the topics it covers. - Load incremental index if present.
- Discover transcripts and process only:
- new files not in index, or
- files whose mtime is newer than indexed mtime.
- Extract high-signal items — Look for recurring user corrections/preferences and durable workspace facts. Apply the inclusion bar below.
- Route each item to the best-matching rule file:
- Match by topic against existing
.mdcfiles' descriptions and content. - If no file is a good fit, create a new
.mdcin the appropriate subdirectory (see Rule File Layout).
- 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.
- 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:
globs:
alwaysApply: false
---
#
Cursor loads rules in four ways (in order of reliability):
- Always Apply (
alwaysApply: true) — every session, guaranteed - Glob auto-attach (
globsset) — when matching files are in context - Agent-decided (
descriptionset, no globs) — Agent judges relevance from description - 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: trueonly for cross-cutting workflow rules. - Set
globsto 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"
}
}
}
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: JunfengRan
- Source: JunfengRan/dev-env
- License: MIT
- Homepage: https://github.com/JunfengRan/dev-env
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.