skill-manager
Skill0 starsChanged 15 days agoMITView on GitHub
Manage a local Codex skill library with separate current, ownership-inbox, removed-history, and public views; portable source settings; lifecycle and observed-version tracking; one-click background startup; doctor and recovery commands; read-only preview; atomic local rescans; project/global source tracking; duplicate grouping; privacy-preserving recorded-usage logging; feedback; snapshot diffs; and approval-gated promotion or improvement. Use when the user asks to start or recover the Skill Center, configure where Skills are scanned, rescan, inventory, classify, rank, review, visualize, trace when and where a Skill was observed or recorded as used, distinguish uninstalled from current Skills, copy project Skills into the global library, compare Skill copies, publish a path-safe package, or safely improve personal, project, system, or plugin Skills.
52 other projects use a version of this.
Adopted by
Most recently taken up by
- Adelie-Squad/solosquadtheir own version, first seen Nov 8, 2026
- jerry-guo-mys/skillstheir own version, first seen Nov 8, 2026
- Melvynx/ai-sprint-skillstheir own version, first seen Nov 8, 2026
- Melvynx/ai-maxxing-skillstheir own version, first seen Nov 1, 2026
- thefrederiksen/devthrottletheir own version, first seen Nov 1, 2026
- nurmdrafi/pi-nativetheir own version, first seen Oct 25, 2026
Used with
Projects with it also use Skill Evolution Manager, github-to-skills and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Arthur-devroleSkillSkill Evolution Manager
专门用于在对话结束时,根据用户反馈和对话内容总结优化并迭代现有 Skills 的核心工具。它通过吸取对话中的“精华”(如成功的解决方案、失败的教训、特定的代码规范)来持续演进 Skills 库。
Also in 5 projects that use this
Arthur-devroleSkillgithub-to-skills
Automated factory for converting GitHub repositories into specialized AI skills. Use this skill when the user provides a GitHub URL and wants to "package", "wrap", or "create a skill" from it. It automatically fetches repository details, latest commit hashes, and generates a standardized skill structure with enhanced metadata suitable for lifecycle management.
Also in 5 projects that use this
NVIDIASkillreview-code
Review a code repository for concrete issues in correctness, robustness, security, maintainability, tests, and integration. Use for repository-wide or focused code review where practical engineering judgment and strict scope control matter.
Also in 3 projects that use this
SentrySkillskill-creator
Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.
Also in 12 projects that use this
OpenAISkillbrainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Also in 4 projects that use this
Microsoft AzureSkillhumanizer
Tone enforcement patterns for external-facing community responses
Also in 3 projects that use this
Other versions52 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 52
- anthropics/claude-for-legal★ 9.5ksame name
- buzhangsan/skill-manager★ 321same name
- thefrederiksen/cc-director★ 110same name
- thefrederiksen/devthrottle★ 110same name
- crisandrews/ClawCode★ 64same name
- egebese/skill-manager★ 38same name
- GeekFamilyCorp/TricorderKit★ 32same name
- Melvynx/ai-maxxing-skills★ 32same name
- Starchild-ai-agent/official-skills★ 32same name
- Adelie-Squad/solosquad★ 25same name
42 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
31 rules. 0 are common, 10 are distinctive, and 21 are very specific to this project.
0
Common
Most of the 32 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
21
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Keep standard Codex locations automatic.
- Very specific: line 16
Run python scripts/scan_skills.py, or click 重新扫描本地 Skills, to refresh personal, project, system, plugin, and compatible Agents locations.
- Distinctive: line 19
Use 开始使用 to search from a goal, continue the most recently recorded Skill, enter a curated multi-Skill workflow, or browse the current …
- Very specific: line 21
Use 工作流 for cross-Skill pipelines.
- Very specific: line 28
Treat SKILL_PROJECT_ROOTS entries as environment-managed and read-only.
- Very specific: line 29
Keep assets/config/scan-sources.example.json generic and path-free.
- Very specific: line 33
Do not recursively crawl a project source.
- Very specific: line 35
Keep the legacy project-roots.json loader for migration, but write new configuration only to scan-sources.local.json.
- Very specific: line 42
Treat existence as a separate dimension from source scope and authorship.
- Very specific: line 45
Use discovered_at only as platform first discovery.
- Very specific: line 55
Keep Chinese public-library display metadata in assets/catalog/public-skills.zh-CN.json.
- Very specific: line 56
Treat the English name and description extracted from each upstream SKILL.md as the fact source.
- Distinctive: line 58
Default the public dashboard to Chinese, allow an explicit 英文原文 switch, and let search match both Chinese display fields and English …
- Very specific: line 60
Only verified sources may be clickable.
- Distinctive: line 61
Never add machine paths, runtime records, usage data, private classification suggestions, or project-specific labels to the packaged …
- Distinctive: line 65
Treat the project copy as the fact source until the user approves a global snapshot.
- Very specific: line 67
Stop on blocked-project-bound, review-required, or name-collision.
- Very specific: line 69
Only after approval, run python scripts/promote_snapshot.py --skill <name> --apply --approval-token APPROVED.
- Very specific: line 77
Keep user-curated descriptions and confirmed classifications in SKILL_CENTER_HOME/data/personal-catalog.local.json.
- Very specific: line 80
Before publishing the Skill Manager package, apply the exclusions in assets/config/repository.gitignore.template and exclude the runtime …
- Distinctive: line 84
Treat an invocation workspace path as transient local input.
- Very specific: line 85
Keep usage_event_id nullable so older Skill-level feedback remains readable.
- Distinctive: line 86
Treat recent project and last-used fields as the latest locally recorded invocation only.
- Very specific: line 87
Do not turn task categories into free-form task descriptions.
- Very specific: line 88
Treat run_id as an opaque identifier, not a task title.
- Very specific: line 90
Treat system, plugin, and public-installed skills as read-only.
- Distinctive: line 93
Never overwrite a global Skill during project promotion.
- Distinctive: line 94
Never apply an improvement proposal automatically.
- Distinctive: line 95
Before changing any personal skill, show the proposed patch or diff and wait for explicit user approval.
- Very specific: line 96
After approval, back up the target, apply the patch, run quick_validate.py, run relevant script tests, and forward-test when the change is …
- Distinctive: line 124
Read references/data-policy.md when explaining privacy, classification, or the approval boundary.
“Common” is measured: kept by at least 6 in 10 of the 32 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.
Files
Skill Manager
Manage the user's local Skill library as a source-aware capability graph without collecting prompt or conversation content.
Core workflow
- Open the dashboard with
open-skill-center.cmdorpython scripts/skill_center.py start --open. If it does not open, runpython scripts/skill_center.py doctor. - Open 扫描来源 or read the current configuration with
python scripts/configure_project_roots.py --list. - Keep standard Codex locations automatic. Add only explicit project Skill roots that the user placed in scope. Choose
skill-containerfor direct child Skill folders orsingle-skillwhen the selected folder itself containsSKILL.md. - Preview every source change before saving. Treat preview as strictly read-only: it may inspect paths and count candidates, but it must not write the SQLite index or modify any Skill file.
- Run
python scripts/scan_skills.py, or click 重新扫描本地 Skills, to refresh personal, project, system, plugin, and compatible Agents locations. Show added, content-updated, removed, unchanged, and duplicate-location counts; group content-identical copies instead of double-counting them. - Treat installation scope and authorship as separate facts. Show confirmed original, adapted, and project-incubated entries in 我的 Skills; put present personal-root entries with
unknownauthorship in 待认领. Review the evidence and confidence for each suggestion, select only the entries the user accepts, preview the exact classification changes, and wait for the user to click the final apply action. Suggestions and previews are read-only. - Put missing indexed Skills in 已移除 after a scan or lightweight startup reconciliation confirms that their
SKILL.mdno longer exists. Never show an uninstalled Skill in the current library or ownership inbox. Preserve its local history and expose a read-only detail page; do not read, execute, improve, sync, or reclassify a missing file. - Use 开始使用 to search from a goal, continue the most recently recorded Skill, enter a curated multi-Skill workflow, or browse the current personal library. Keep the inventory summary visible, but put full trends, projects, outcomes, coverage, lifecycle, and attention queues in 统计洞察.
- Use Public Skills as a read-only upstream index. Default to the packaged Chinese display layer, keep the English upstream text available for fact checking, and search both languages. Distinguish verified, candidate, bundled, and missing sources; make a link clickable only when its URL is in the verified source catalog. A URL merely present in a plugin manifest is not verification.
- Use 工作流 for cross-Skill pipelines. Keep curated templates in
assets/catalog/workflows.jsonand optional local overrides inSKILL_CENTER_HOME/data/workflows.local.json. Label templates as 作者建议组合. Never present them as observed behavior. - Log an actual invocation with
python scripts/log_usage.py --skill <name> --invocation explicit|implicit. The logger prefers the running loopback service and falls back to the local database. It records the Skill, timestamp, invocation type, version hash, an optional task category, and a salted workspace fingerprint with a local alias; it never persists the workspace path. When multiple Skills belong to the same task, pass the same opaque--run-id, an optional--workflow, and--step. Only those shared identifiers may feed co-use statistics. - On the personal Skill detail page, review 最近调用与使用感受. Link feedback to the exact invocation and require only
solved,partial, orfailed; keep the controlled experience tags, rating, and short note optional. Show participating cross-Skill workflows separately from the Skill's internal workflow. Label all dashboard totals as recorded usage and disclose partial coverage; never imply that the log captures every Skill invocation.
Scan-source configuration
- Store effective absolute paths only in
SKILL_CENTER_HOME/data/scan-sources.local.json. - Treat
SKILL_PROJECT_ROOTSentries as environment-managed and read-only. Show them in preview, but never copy them into the saved configuration. - Keep
assets/config/scan-sources.example.jsongeneric and path-free. New installations must start with no project paths. - Support enable, disable, add, edit, and remove operations for local project sources.
- Require an exact preview token when saving from the HTML. Reject a stale token after any form change.
- Reject filesystem roots, the user home, the whole Documents/Desktop directory, the Codex root, common system roots, duplicate project paths, and any project path overlapping an automatic Codex location.
- Do not recursively crawl a project source.
skill-containerreads onlyroot/*/SKILL.md;single-skillreads onlyroot/SKILL.md. - Bound source counts and skip symlinked children, VCS directories, dependency folders, virtual environments, and caches.
- Keep the legacy
project-roots.jsonloader for migration, but write new configuration only toscan-sources.local.json.
HTML update boundary
- The 重新扫描本地 Skills button may rescan only the configured global, environment-managed, and project roots and update the local SQLite index. It does not download or upgrade Skill content.
- Persist the latest scan delta so a restart does not replace a meaningful update result with an automatic no-change scan.
- A personal-folder location is not proof of authorship. Keep present unconfirmed entries as
unknownin a separate ownership inbox; do not include them in the confirmed current list. - Treat existence as a separate dimension from source scope and authorship. Current lists default to
is_present=1; removed history usesis_present=0and must never feed current counts, ownership review, invocation selection, or improvement actions. - On service startup, a lightweight reconciliation may check only previously indexed
path/SKILL.mdfiles and mark missing rows removed. A full rescan remains an explicit inventory action. - Preserve lifecycle rows and observed content hashes when a Skill disappears. Set
removed_atwhen absence is first confirmed, retainlast_seen_at, usage, feedback, recent project alias, and observed versions, and clearremoved_atif the same location reappears. - Use
discovered_atonly as platform first discovery. Filesystem modification time is not guaranteed authorship history, and neither value may be presented as the Skill's true creation time without separate evidence. - Source-review suggestions must be explainable with visible evidence and a confidence label. High confidence may be preselected in the form, but preselection is not authorization to write.
- Generate classification previews from a read-only database connection. Bind the preview token to the current classification, content hash, requested target, and upstream fields so any intervening edit invalidates it.
- Apply only explicitly selected personal
unknownentries after a matching preview token is submitted. Never include project, system, plugin, or already-classified Skills in the batch. - Batch classification may update the local SQLite index and
personal-catalog.local.json; it must not edit, move, delete, or rewrite any Skill source file. - Updating the inventory must never edit, copy, delete, or rewrite a Skill source folder.
- Updating Skill content remains a separate workflow: collect feedback, generate a proposal and exact diff, wait for explicit approval, then validate the approved change.
Public library localization
- Keep Chinese public-library display metadata in
assets/catalog/public-skills.zh-CN.json. This catalog is packaged and shareable; it must contain only public-facing names, descriptions, usage guidance, and the upstream content hash. - Treat the English name and description extracted from each upstream
SKILL.mdas the fact source. Localization is a read-only overlay and must never rewrite a system, plugin, or public-installed Skill. - Bind each localization entry to the upstream
content_hashthroughsource_hash. If the hashes differ after a rescan, label the Chinese entry as 待复核 and keep the English original available. - Default the public dashboard to Chinese, allow an explicit 英文原文 switch, and let search match both Chinese display fields and English upstream fields.
- Represent provenance with four visible text states:
verified(来源已验证),candidate(来源待验证),bundled(Codex 系统内置), andmissing(来源尚未找到). Color may reinforce a state but must not be its only signal. - Only
verifiedsources may be clickable. Show a candidate host when useful, but keep it non-clickable until a person verifies the upstream page and adds it toassets/catalog/public-sources.json. - Never add machine paths, runtime records, usage data, private classification suggestions, or project-specific labels to the packaged localization catalog.
Project Skill promotion
- Treat the project copy as the fact source until the user approves a global snapshot.
- Generate a strictly read-only plan with
python scripts/plan_promotions.py --skill <name>. It opens the existing SQLite inventory withmode=ro; use--refreshonly when a metadata refresh is intentionally allowed. - Stop on
blocked-project-bound,review-required, orname-collision; never replace a same-named global Skill silently. - Present the source, target, content hash, file list, portability result, and exact diff. Wait for explicit approval.
- Only after approval, run
python scripts/promote_snapshot.py --skill <name> --apply --approval-token APPROVED. Apply mode refreshes the inventory before copying; dry-run mode stays read-only unless--refreshis supplied. - Register the project origin hash after copying. Future scans must report
current,update-available,snapshot-modified, ordivergedand offer a diff; never synchronize both directions automatically.
Safety rules
- Bind the dashboard to
127.0.0.1only. - Require a same-origin local session token for every write request, validate the Host header, serialize scans, and never return internal exception details to the browser.
- Store v2 data in
skill-center-v2.sqlite3; migrate a legacy database with SQLite backup instead of sharing a mutable file with older scripts. - Keep user-curated descriptions and confirmed classifications in
SKILL_CENTER_HOME/data/personal-catalog.local.json. Machine-specific review hints may live inSKILL_CENTER_HOME/data/classification-suggestions.local.json; never treat that file as confirmed classification and never ship it in the package. - Bound recursive file enumeration and hashing by file count, per-file bytes, and total bytes.
- Restore the previous scan-source configuration if the post-save scan fails.
- Before publishing the Skill Manager package, apply the exclusions in
assets/config/repository.gitignore.templateand exclude the runtime center, SQLite files, local source configuration, local classification suggestions, usage and feedback data, screenshots, test output, approval manifests, and execution-cockpit records. - The packaged
assets/catalog/public-skills.zh-CN.jsonis intentionally shareable. Validate that it contains no absolute path or runtime/private fields before publishing. - Export only the packaged path-free example when another user needs a configuration template. Never copy
scan-sources.local.jsoninto GitHub. - Usage logging must never store prompts, messages, generated answers, filenames from the user's task, or conversation text. The task-preparation UI separately retains user-entered task text in the browser session; only its explicit Save action persists a browser draft. Do not copy that draft into the usage database.
- Treat an invocation workspace path as transient local input. Derive its salted fingerprint and friendly local alias, then discard the path; never return it from usage or detail APIs.
- Keep
usage_event_idnullable so older Skill-level feedback remains readable. New feedback should bind to one invocation, and updating that invocation's feedback should not create duplicate entries. - Treat recent project and last-used fields as the latest locally recorded invocation only. They do not prove all historical projects or all usage before logging was enabled.
- Do not turn task categories into free-form task descriptions. Use short generic labels such as
research,writing,coding,deployment, orother. - Treat
run_idas an opaque identifier, not a task title. Allow only letters, numbers,.,_,:, and-; never encode prompts, filenames, user names, or task content in it. - Infer Skill co-use only from a shared non-empty
run_id. Never infer a workflow from timestamps, workspace proximity, matching categories, or model guesses. - Treat
system,plugin, andpublic-installedskills as read-only. - To customize a public skill, copy it into the personal skill root and classify the copy as
adapted; preserve its upstream source and authorship. - A plugin manifest URL is only a source candidate. Do not label it verified until the public page has been checked and added to
assets/catalog/public-sources.json. - Never overwrite a global Skill during project promotion. Identical copies may be grouped; same-name differences require a separate decision.
- Never apply an improvement proposal automatically.
- Before changing any personal skill, show the proposed patch or diff and wait for explicit user approval.
- After approval, back up the target, apply the patch, run
quick_validate.py, run relevant script tests, and forward-test when the change is substantial. - Record the new version only after validation succeeds.
Commands
python scripts/scan_skills.py
python scripts/skill_center.py start --open
python scripts/skill_center.py doctor
python scripts/skill_center.py status
python scripts/skill_center.py stop
python scripts/configure_project_roots.py --list
python scripts/configure_project_roots.py --add "D:\projects\skills" --mode skill-container
python scripts/configure_project_roots.py --add "D:\projects\one-skill" --mode single-skill
python scripts/plan_promotions.py
python scripts/log_usage.py --skill "skill-name" --invocation implicit --category "research"
python scripts/log_usage.py --skill "skill-name" --invocation explicit --project-label "Local project alias"
python scripts/log_usage.py --skill "first-skill" --invocation explicit --run-id "run-20260729-001" --workflow "workflow-id" --step 1
python scripts/log_usage.py --skill "second-skill" --invocation explicit --run-id "run-20260729-001" --workflow "workflow-id" --step 2 --step-outcome solved
python scripts/log_usage.py --skill "skill-name" --invocation explicit --no-workspace
python scripts/propose_improvement.py --skill "skill-name"
python scripts/self_test.py
python scripts/http_e2e.py
python scripts/lifecycle_test.pyThe dashboard files are installed from assets/dashboard/ into %USERPROFILE%\Documents\Codex Skill Center. Set SKILL_CENTER_HOME to override that location. The dashboard server must remain loopback-only.
Read references/data-policy.md when explaining privacy, classification, or the approval boundary.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

