Skip to content

Add CLI command to define/author catalog skillsets (tink skillset define) #62

Description

@jon-devlapaz

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

  • tink skillset define my-skillset --source ... --revision ... --source-root ... --members ... writes a valid meta.json to $TINK_HOME/catalog/by-skillset/my-skillset/meta.json.
  • Refuses non-canonical names not ending in -skillset.
  • Validates sourceRoot and input format before writing.
  • Refuses to overwrite existing definition unless --force is specified.
  • Works cleanly in scripted/agent environments.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions