Problem
Currently, Tink has commands to inspect sources (tink inspect) and install skillsets (tink skillset add), but has no command to create or author a pinned skillset definition ($TINK_HOME/catalog/by-skillset/<name>-skillset/meta.json).
Users and coding agents must manually construct JSON files and write them to internal Tink home paths using raw filesystem operations. This leads to:
- Syntax and schema errors (e.g.
source_root vs sourceRoot, missing required keys).
- Missing directory creation errors.
- Lack of preflight validation until
tink skillset add is executed.
- Increased friction for agent automation.
Proposed change
Introduce a tink skillset define <NAME-skillset> command to author or update definitions in $TINK_HOME/catalog/by-skillset/<name>-skillset/meta.json with upfront validation:
tink skillset define NAME-skillset \
--source <GIT_URL> \
--revision <SHA> \
--source-root <DIR> \
--members <MEMBER1,MEMBER2...>
Options to consider:
--force / --overwrite to update an existing definition.
- Direct synthesis from inspection or an inspect candidate.
- Enforce the
-skillset canonical name suffix.
- Validate that the revision is a 40-character commit hash and
sourceRoot is normalized.
Acceptance
Problem
Currently, Tink has commands to inspect sources (
tink inspect) and install skillsets (tink skillset add), but has no command to create or author a pinned skillset definition ($TINK_HOME/catalog/by-skillset/<name>-skillset/meta.json).Users and coding agents must manually construct JSON files and write them to internal Tink home paths using raw filesystem operations. This leads to:
source_rootvssourceRoot, missing required keys).tink skillset addis executed.Proposed change
Introduce a
tink skillset define <NAME-skillset>command to author or update definitions in$TINK_HOME/catalog/by-skillset/<name>-skillset/meta.jsonwith upfront validation:Options to consider:
--force/--overwriteto update an existing definition.-skillsetcanonical name suffix.sourceRootis normalized.Acceptance
tink skillset define my-skillset --source ... --revision ... --source-root ... --members ...writes a validmeta.jsonto$TINK_HOME/catalog/by-skillset/my-skillset/meta.json.-skillset.sourceRootand input format before writing.--forceis specified.