Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
name, description
| name | description |
|---|---|
| skill-new | Create a new skill in the jsc skill set. Ask skill details via decision tree, generate the skill under the right jsc-{domain} per guidelines.md (create the domain from the template repo if missing), then open a PR via jsc-git pr. Use when the user wants to add a skill; not for editing an existing one (use skill-update). |
skill-new — create a skill
Single source of guidelines: ../../references/guidelines.md.
Flow
-
Ask for skill details via the
jsc-ask:askdecision tree until no doubt remains:- Goal (single and not duplicating an existing skill; first scan
jsc-*/skills/*/SKILL.mdand list similar skills for comparison — options must state the impact scope of "reuse existing" versus "create new") - Trigger (when to use, when not to, trigger keywords)
- Input and output (can a standard input/output flow move down to
tools/; does it need Gitea operations — if so, make the skill usejsc-gitea/tools/gitea.sh+ token) - Owning domain (list the existing
jsc-*domains to choose from)
- Goal (single and not duplicating an existing skill; first scan
-
If the domain does not exist (if the repository exists on Gitea but not in the working directory, clone it and skip to step 3):
- Propose one short English word for the new domain (a single word preferred) and confirm it with the user.
- Ask the user to create the repository
plugins/{domain}. Clone it, then build the content following the structure ofhttps://gitea.jsc.idv.tw/plugins/template: three plugin manifests (plugin namejsc-{domain}, version starting at0.0.1),skills/, README.md, AGENTS.md. - Add the plugin entry (URL source pointing at the new repository) to
.claude-plugin/marketplace.jsonand.agents/plugins/marketplace.jsoninplugins/meta(the canonical copy), then sync the two updated files to every domain repository, including the new one. Every repo carries the same marketplace files, so any repo works as the registration entry point. The sync MUST run as a sub agent.
-
Generate the skill per guidelines.md — this step MUST run as a sub agent:
skills/{name}/SKILL.md: entirely in English (description ≤ 5 sentences with trigger conditions; body in STE100-style English)- Rules enforceable by hooks go to
jsc-hooks(never scattered in this domain); standard input/output flows go totools/
Then run
tools/sync-skill-manifest.sh {domain-path}directly (no sub agent needed) to sync the domain README's 「Skills 目錄」 section and bump the version in all three manifests. -
Self-check every item of the guidelines.md audit checklist; fix anything that fails.
-
Call
jsc-git:prto open a Push Request.