human-only-skills
GitHub列出需人工调用的技能清单及触发场景,说明模型不得自动调用这些技能的规则与依据。
触发场景
安装
npx skills add boshu2/agentops --skill human-only-skills -g -y
SKILL.md
Frontmatter
{
"name": "human-only-skills",
"context": {
"intent": {
"mode": "none"
},
"window": "inherit"
},
"consumes": [],
"metadata": {
"tier": "meta",
"effects": [],
"disposition": "keep_specialist",
"capabilities": [
"human_only_skill_routing"
],
"dependencies": [],
"canonical_status": "canonical"
},
"produces": [
"stdout"
],
"practices": [
"design-by-contract"
],
"context_rel": [],
"description": "Name the skills reserved for people to invoke — where the runtime honors disable-model-invocation — and when to reach for each. Triggers: \"human-only skills\", \"which skills must I run myself\".",
"allowed-tools": "Read, Grep, Glob",
"hexagonal_role": "supporting",
"user-invocable": true,
"output_contract": "a named pointer list; this skill invokes nothing",
"skill_api_version": 1
}
Human-only skills
Four skills carry disable-model-invocation: true. In runtimes that honor
that key, their descriptions stay out of the context window and the model
cannot invoke them — a person types the command. In runtimes without the
switch, the key is stripped at projection time and these remain ordinary
advertised skills (see docs/contracts/codex-skill-api.md); the pointer below
still tells a person which ones to run themselves. This skill names
skills. It never invokes one.
The roster
| Skill | A person reaches for it when |
|---|---|
craft-goal |
authoring or linting a persistent goal prompt meant to drive many bounded experiments toward one outcome — a standing artifact a person owns, not this session's intent |
learn |
mining a collection of durable verdicts for recurring evidence, after the critical path, on purpose |
postmortem |
testing one retrospective causal question against verdict evidence that already exists |
toil-mining |
mining supplied usage history for repeated operational work worth automating |
What they share: each is off the critical path, each is started deliberately rather than inferred from a task, and nothing else in the repository reaches for any of them.
When a model wants one
Say which skill applies and why, and stop. Reproducing the skill's procedure by hand defeats the point of removing it from model reach — the command exists so a person decides the timing.
Before adding a row
Model invocation is load-bearing whenever anything else reaches for the skill, so a skill joins this roster only after all four surfaces come back clean, with the evidence recorded:
ao skills consumers <slug>andao skills graph— declareddependenciesandconsumesedges.workflows/*.js— a workflow that dispatches the slug.- Other skills'
SKILL.mdbodies — a "routes to<slug>" sentence or aSee Alsoentry is a reach. evals/routing-probes/templates.json— anapplicableentry means a probe measures whether the model routes there, which stripping makes unmeasurable rather than merely cheaper.
Retire this skill when the roster is empty.
版本历史
- d9f9c50 当前 2026-08-27 19:41


