Loading...
Loading...
Unified CLI entry point for the entire Skill System. One command (sk) to operate all skills, run configurable gate validation, and execute discoverable project scripts via CLI-Anything style scan/run workflows.
npx skill4agent add arthur0824hao/skills skill-system-clisk--help# Show all domains
python3 "<this-skill-dir>/scripts/sk.py" --help
# Bootstrap a project
python3 "<this-skill-dir>/scripts/sk.py" init
# Check project status
python3 "<this-skill-dir>/scripts/sk.py" status
# Ticket operations
python3 "<this-skill-dir>/scripts/sk.py" tkt claim --ticket-id TKT-001
# Memory operations
python3 "<this-skill-dir>/scripts/sk.py" mem search "query"
# Config operations
python3 "<this-skill-dir>/scripts/sk.py" config get tkt.bundle.max_tickets
# Thin host shell MVP (installer-backed direct entry)
bash "skills/skill-system-installer/scripts/skills.sh" host-shell doctor --target .config/cli.yaml../../config/cli.yamlsk (thin dispatcher)
├── init → bootstrap.md Phase 1+2 logic
├── status → aggregate project health
├── scan → discover runnable scripts and CLI hints
├── run → execute script with auto-detected runner
├── config → read/write config/*.yaml
│ ├── list
│ ├── show <file>
│ ├── get <key>
│ └── set <key> <value>
├── tkt → tkt.sh + tickets.py
│ ├── init-roadmap, create-bundle, bundle-status, close-bundle, list-bundles
│ ├── intake, list-tickets, claim, block, close
│ ├── check-open, summary, loop, startup
│ ├── refresh-new, refresh-inbox
│ ├── closure-report, scope
├── mem → mem.py
│ ├── search, store, status, tags, categories
├── gate → skill-system-gate
│ └── validate
└── install → skills.sh
├── list, add, status, update, syncsk.pysk tktsk tkt claim --helpconfig/sk initsk statusnote/preferences.mdnote/constraints.mdnote/style.md{"status": "ok", ...}
{"status": "error", "message": "...", ...}sk initnote/preferences.mdnote/constraints.mdnote/style.mdsk statussk configsk config get tkt.bundle.max_ticketssk tktsk mempython3 "<this-skill-dir>/scripts/sk.py" mem search "fraud" --scope project --limit 5
python3 "<this-skill-dir>/scripts/sk.py" mem store --type semantic --category fraud --title note --content hello --scope session
python3 "<this-skill-dir>/scripts/sk.py" mem list --scope project --limit 20
python3 "<this-skill-dir>/scripts/sk.py" mem compact --scope project
python3 "<this-skill-dir>/scripts/sk.py" mem export --format json --scope globalsk install{
"schema_version": "2.0",
"id": "skill-system-cli",
"version": "1.0.0",
"capabilities": [
"cli-dispatch", "project-init", "project-status",
"cli-scan", "cli-run", "gate-dispatch",
"config-read", "config-write",
"tkt-dispatch", "mem-dispatch", "install-dispatch"
],
"effects": ["fs.read", "fs.write", "db.read", "db.write", "proc.exec"],
"operations": {
"init": {
"description": "Bootstrap project structure and report what was created or verified.",
"input": {
"check": {"type": "boolean", "required": false, "description": "Detect only, do not create missing structure"}
},
"output": {
"description": "Bootstrap report",
"fields": {"status": "string", "init_report": "object"}
},
"entrypoints": {
"unix": ["python3", "{skill_dir}/scripts/sk.py", "init"],
"windows": ["python", "{skill_dir}/scripts/sk.py", "init"]
}
},
"status": {
"description": "Show global project health across config, note, TKT, postgres, and skills inventory.",
"input": {},
"output": {
"description": "Aggregated health report",
"fields": {"status": "string", "config": "object", "note": "object", "tkt": "object", "postgres": "object", "skills": "object"}
},
"entrypoints": {
"unix": ["python3", "{skill_dir}/scripts/sk.py", "status"],
"windows": ["python", "{skill_dir}/scripts/sk.py", "status"]
}
},
"scan": {
"description": "Scan repository scripts and infer runnable CLI targets.",
"input": {},
"output": {
"description": "Discovered script targets",
"fields": {"status": "string", "targets": "array"}
},
"entrypoints": {
"unix": ["python3", "{skill_dir}/scripts/sk.py", "scan"],
"windows": ["python", "{skill_dir}/scripts/sk.py", "scan"]
}
},
"run": {
"description": "Run any discovered script with auto-detected runner.",
"input": {
"script": {"type": "string", "required": true, "description": "Script path or basename"},
"args": {"type": "array", "required": false, "description": "Pass-through arguments"}
},
"output": {
"description": "Script stdout/stderr passthrough",
"fields": {"status": "string"}
},
"entrypoints": {
"agent": "Invoke scripts/sk.py run <script> [args...]"
}
},
"gate-validate": {
"description": "Route configurable gate validation through skill-system-gate.",
"input": {
"rules": {"type": "string", "required": false, "description": "Gate rules path"},
"artifact_root": {"type": "string", "required": false, "description": "Rule execution root"}
},
"output": {
"description": "Gate validation payload",
"fields": {"status": "string", "passed": "boolean"}
},
"entrypoints": {
"unix": ["python3", "{skill_dir}/scripts/sk.py", "gate", "validate"]
}
},
"config-get": {
"description": "Read a config value by dot-path.",
"input": {
"key": {"type": "string", "required": true, "description": "Dot-path key to read"}
},
"output": {
"description": "Resolved config value",
"fields": {"status": "string", "value": "json"}
},
"entrypoints": {
"unix": ["python3", "{skill_dir}/scripts/sk.py", "config", "get", "{key}"],
"windows": ["python", "{skill_dir}/scripts/sk.py", "config", "get", "{key}"]
}
},
"config-set": {
"description": "Set a config value by dot-path.",
"input": {
"key": {"type": "string", "required": true, "description": "Dot-path key to update"},
"value": {"type": "string", "required": true, "description": "Value to write"}
},
"output": {
"description": "Updated config confirmation",
"fields": {"status": "string", "key": "string", "value": "string", "file": "string"}
},
"entrypoints": {
"unix": ["python3", "{skill_dir}/scripts/sk.py", "config", "set", "{key}", "{value}"],
"windows": ["python", "{skill_dir}/scripts/sk.py", "config", "set", "{key}", "{value}"]
}
},
"tkt-dispatch": {
"description": "Route any TKT subcommand through the unified CLI.",
"input": {
"args": {"type": "string", "required": false, "description": "Pass-through TKT arguments"}
},
"output": {
"description": "Passthrough JSON payload from skill-system-tkt",
"fields": {"status": "string"}
},
"entrypoints": {
"agent": "Invoke scripts/sk.py with the tkt subcommand family and forward args unchanged"
}
},
"mem-dispatch": {
"description": "Route any memory subcommand through the unified CLI.",
"input": {
"args": {"type": "string", "required": false, "description": "Pass-through memory arguments"}
},
"output": {
"description": "Passthrough JSON payload from skill-system-memory",
"fields": {"status": "string"}
},
"entrypoints": {
"agent": "Invoke scripts/sk.py with the mem subcommand family and forward args unchanged"
}
},
"install-dispatch": {
"description": "Route any installer subcommand through the unified CLI.",
"input": {
"args": {"type": "string", "required": false, "description": "Pass-through installer arguments"}
},
"output": {
"description": "Passthrough JSON payload from skill-system-installer",
"fields": {"status": "string"}
},
"entrypoints": {
"agent": "Invoke scripts/sk.py with the install subcommand family and forward args unchanged"
}
}
},
"stdout_contract": {
"last_line_json": true,
"note": "All commands emit JSON on last line. Status is always 'ok' or 'error'."
}
}