Loading...
Loading...
Install and update skills into the skill system from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, update existing skills, or install a skill from another repo (including private repos).
npx skill4agent add arthur0824hao/skills skill-system-installersk initskill-system-clisk install deploy --target <path>scripts/skills.sh<project>-memorySKILL_PGDATABASEPGDATABASEscripts/skills.sh bootstrapconfig/note/.tkt/skills-lock.json"pending"skills-lock.jsonSKILL.mdpython3gitbashscripts/skills.sh bootstrap
# or via sk CLI:
sk install bootstrapchecksactions_takenscripts/list-curated-skills.pyscripts/list-curated-skills.py --format jsonscripts/skills.shscripts/skills.sh doctor --target <path>scripts/skills.sh deploy --target <path> [--mode minimal|local|full] [--no-dashboard]scripts/skills.sh dashboard --target <path>scripts/skills.sh host-shell <bootstrap|discover|compat|doctor> [--target <path>]scripts/install-skill-from-github.py --repo <owner>/<repo> --path <path/to/skill> [<path/to/skill> ...]scripts/install-skill-from-github.py --url https://github.com/<owner>/<repo>/tree/<ref>/<path>scripts/update-skills.py --allscripts/update-skills.py --skill <skill-name> [--update] [--dry-run]scripts/skills.sh doctor --target /path/to/projectconfig/note/.tkt/skills-lock.jsondashboard/index.htmlstatustargetchecksrecommended_actionshealthyscripts/skills.sh dashboard --target /path/to/projectskills/skill-system-dashboard/scripts/generate.pyskills/.tkt/.memory/.env.env.local<target>/dashboard/index.htmlstatusoutputtargetscripts/skills.sh deploy --target /path/to/project [--mode minimal|local|full] [--no-dashboard].skill-system/config/note/.tkt/skills-lock.jsonskillsskills--no-dashboarddoctor --targetscripts/skills.sh host-shell bootstrap --target /path/to/project
scripts/skills.sh host-shell discover --target /path/to/project
scripts/skills.sh host-shell compat
scripts/skills.sh host-shell doctor --target /path/to/projectmem.pyskill-system-tktskill-system-reviewskill-system-workflowscripts/update-skills.pyskills-lock.json--all--skill <name>--updatecomputedHash--dry-run--preserve-insight/--no-preserve-insight--preserve-insight--lockfile <path>--skills-dir <path>original baseline -> local modified -> upstream new--force$SKILLS_GLOBAL_HOME/skills/<skill-name>~/.skills-system/skills--path--name--ref <ref>main--dest <path>--method auto|download|git--forcehttps://github.com/openai/skills/tree/main/skills/.curatedGITHUB_TOKENGH_TOKEN$SKILLS_GLOBAL_HOME/skillsskills/{
"schema_version": "2.0",
"id": "skill-system-installer",
"version": "1.0.0",
"capabilities": ["skill-install", "skill-list", "skill-update", "skill-status", "skill-sync", "skill-bootstrap", "skill-doctor", "skill-dashboard", "skill-deploy"],
"effects": ["net.fetch", "fs.write", "fs.read", "proc.exec"],
"operations": {
"bootstrap": {
"description": "First-run setup: detect missing structure, scaffold directories, compute pending lockfile hashes, validate skills.",
"input": {},
"output": {
"description": "Bootstrap report with checks and actions taken",
"fields": { "checks": "object", "actions_taken": "array" }
},
"entrypoints": {
"unix": ["bash", "scripts/skills.sh", "bootstrap"]
}
},
"doctor": {
"description": "Detect-only preflight checks for a target project. Reports readiness and recommended actions without changing files.",
"input": {
"target": { "type": "string", "required": false, "default": ".", "description": "Target project directory to inspect" }
},
"output": {
"description": "Preflight report",
"fields": {
"status": "ok | error",
"target": "string",
"checks": "object",
"recommended_actions": "array",
"healthy": "boolean"
}
},
"entrypoints": {
"unix": ["bash", "scripts/skills.sh", "doctor", "--target", "{target}"]
}
},
"dashboard": {
"description": "Generate target dashboard/index.html using target project context and tolerant empty-section rendering.",
"input": {
"target": { "type": "string", "required": false, "default": ".", "description": "Target project directory" }
},
"output": {
"description": "Dashboard generation report",
"fields": {
"status": "ok | error",
"output": "string",
"target": "string"
}
},
"entrypoints": {
"unix": ["bash", "scripts/skills.sh", "dashboard", "--target", "{target}"]
}
},
"deploy": {
"description": "Deploy the current skill-system repo as a sidecar into a target project and report post-deploy health.",
"input": {
"target": { "type": "string", "required": true, "description": "Target project directory" },
"mode": { "type": "string", "required": false, "default": "full", "description": "Bootstrap profile: minimal, local, or full" },
"dashboard": { "type": "boolean", "required": false, "default": false, "description": "Generate dashboard/index.html after deploy" }
},
"output": {
"description": "Deploy report with paths, actions taken, and doctor health summary",
"fields": {
"status": "ok | error",
"target": "string",
"sidecar": "string",
"deployed_paths": "object",
"actions_taken": "array",
"health_summary": "object"
}
},
"entrypoints": {
"unix": ["bash", "scripts/skills.sh", "deploy", "--target", "{target}", "--mode", "{mode}"]
}
},
"list": {
"description": "List available curated skills with installed annotations and show local/global installed skills.",
"input": {
"format": { "type": "string", "required": false, "default": "text", "description": "Output format: text or json" }
},
"output": {
"description": "List of curated skills with install status",
"fields": { "skills": "array of {name, installed}" }
},
"entrypoints": {
"unix": ["python3", "scripts/list-curated-skills.py", "--format", "{format}"],
"windows": ["python", "scripts/list-curated-skills.py", "--format", "{format}"]
}
},
"install": {
"description": "Install a skill from GitHub repo path. The scripts/skills.sh wrapper provides a scoped alternative entrypoint.",
"input": {
"repo": { "type": "string", "required": true, "description": "GitHub owner/repo" },
"path": { "type": "string", "required": true, "description": "Path to skill within repo" }
},
"output": {
"description": "Installed skill path",
"fields": { "installed_path": "string" }
},
"entrypoints": {
"unix": ["python3", "scripts/install-skill-from-github.py", "--repo", "{repo}", "--path", "{path}"],
"windows": ["python", "scripts/install-skill-from-github.py", "--repo", "{repo}", "--path", "{path}"],
"unix_wrapper": ["bash", "scripts/skills.sh", "install", "--repo", "{repo}", "--path", "{path}"]
}
},
"update": {
"description": "Check skill drift against lockfile and optionally update drifted skills.",
"input": {
"scope": { "type": "string", "required": true, "description": "Either all or one" },
"skill": { "type": "string", "required": false, "description": "Skill name when scope is one" },
"apply": { "type": "boolean", "required": false, "default": false, "description": "Apply updates when true" },
"dry_run": { "type": "boolean", "required": false, "default": false, "description": "Report only" },
"preserve_insight": { "type": "boolean", "required": false, "default": true, "description": "Preserve local insight edits via 3-way merge with conflict markers" }
},
"output": {
"description": "Drift report and optional update actions",
"fields": { "status": "ok | error", "table": "skill_name/local_hash/lock_hash/status" }
},
"entrypoints": {
"unix": ["python3", "scripts/update-skills.py", "--all"],
"windows": ["python", "scripts/update-skills.py", "--all"]
}
},
"status": {
"description": "Report drift/version status and spec-compatibility warnings.",
"input": {
"scope": { "type": "string", "required": false, "description": "global or local", "default": "local" },
"skill": { "type": "string", "required": false, "description": "Optional skill name" }
},
"output": {
"description": "Status rows with warning details",
"fields": { "status": "ok | error", "skills": "array" }
},
"entrypoints": {
"unix": ["bash", "scripts/skills.sh", "status"],
"windows": ["bash", "scripts/skills.sh", "status"]
}
},
"sync": {
"description": "Synchronize global skills into the local workspace.",
"input": {
"strategy": { "type": "string", "required": false, "default": "copy", "description": "Sync strategy: copy or symlink" },
"force": { "type": "boolean", "required": false, "default": false, "description": "Overwrite existing local skills when true" },
"skills": { "type": "string", "required": false, "description": "Comma-separated skill names" }
},
"output": {
"description": "Sync report and updated local lockfile",
"fields": { "status": "ok | error", "skills": "array of synced or skipped skill names" }
},
"entrypoints": {
"unix": ["bash", "scripts/skills.sh", "sync"]
}
}
},
"stdout_contract": {
"last_line_json": false
}
}