Agent Skills authoring derivations
State: open/verified · Kind: module · Audience: system
Summary
Section titled “Summary”- @sksizer/agent-adapt computes the pure, keystroke-fast values an Agent Skills editor needs before
a note exists — slug, argument-hint, keyword list, licence shortcuts — byte-identical to the
agent-adaptRust crate’s derivations. - Derivation only: whether a value is admissible (name collision, description length, slug
uniqueness) is judgement reserved for the
agent-skills/validate-notebackend call, which runsagent-adapt-coreitself.
Statement
Section titled “Statement”The TypeScript peer of the agent-adapt Rust crate. It holds the subset of Agent Skills frontmatter
rules that a network round trip cannot serve between keystrokes: the slug a typed name becomes, the
argument-hint a list of arguments renders to, the ap-keywords list a write actually stores, the
SPDX shortcuts a licence field offers, and the four ap-arguments row-level validation rules. It
imports no generated wire type — its SkillArgument model is structurally identical to
agent_adapt::model::Argument so any host’s generated equivalent is assignable straight in. Pure:
no Vue, no Nuxt, no DOM, no dependencies, so it runs in a Nuxt app, bun, or node alike.
What it provides
Section titled “What it provides”- slugifyName — the slug a typed name becomes, matching
agent_adapt_core::discover::slugify - DESCRIPTION_MAX_LEN — the spec’s 1024-character description cap
- validateArguments / issuesForRow — the four ap-arguments rules per row
- deriveArgumentHint — the argument-hint a list of arguments renders to
- emptyArgument / isSlug — a fresh argument row and the spec’s name language
- normalizeKeywords — the ap-keywords list a write actually stores
- LICENSE_CHOICES / normalizeLicenseInput — SPDX shortcuts a licence field offers
- parseIdentityValue — the display name inside a serialized ap-owner/ap-author
Underlying implementation
Section titled “Underlying implementation”- packages/ts/agent-adapt/skillSpec.ts
- packages/ts/agent-adapt/argumentValidation.ts
- packages/ts/agent-adapt/keywords.ts
- packages/ts/agent-adapt/licenseChoices.ts
- packages/ts/agent-adapt/identityValue.ts
- Rust peer: packages/rust/agent-adapt/
Locations
Section titled “Locations”packages/ts/agent-adapt/