Files
global-skills/docs/maintenance.md
T

4.3 KiB

Authoring and maintenance

Shared workflows live in skills/<name>/; JEV runtime-specific skills remain in JEV. Installed directories link to those sources. Maintain one procedure per workflow and use small aliases when an old name needs to remain callable.

Add or edit a skill

Use skill-architect for catalog work. A skill needs concrete activation criteria, useful steps, and appropriate completion evidence. There is no required phase structure or length quota.

Example SKILL.md metadata:

---
name: example-skill
description: >
  Perform a specific workflow when the user requests its concrete outcome.
scope: global
---

Names use lowercase kebab-case and match the containing directory. Scope values:

Scope Meaning
global Reusable workflow; preserve the target repository's conventions.
project Requires a named project's tooling or layout; explain that dependency.
alias Explicit compatibility entry point delegating to another skill.

Scope is descriptive metadata; a harness must implement its own routing policy. Write optional recipes under references/ and link them where they help a decision. Keep relative links valid from the source file. Use the template as an example.

For catalog changes, validate once from the repository root:

python3 bin/validate-skills

After adding, removing, or moving a skill, preview and sync:

./sync-skills.sh --dry-run
./sync-skills.sh

Content-only edits already propagate through existing links. Commit according to the user's request and repository/session conventions; these tools do not commit.

Workflow rules

Follow shared workflow and verification: use existing context, preserve user work, and choose checks that can detect a real failure in the changed behavior. Avoid mandatory cross-skill handoffs, repeated confirmation, full suites for prose edits, or automatic spec creation for ordinary bug fixes.

In an adopted spec workflow, spec owns architecture and task definitions, build owns task statuses, and backprop owns bug records and bug-related invariants. See the spec format. A review-only request produces findings without edits or commits.

What validation covers

bin/validate-skills checks metadata, matching names, scope, duplicate source names, and local Markdown targets outside fenced examples. It uses Python's standard library and supports this catalog's scalar/block-string YAML subset. It does not verify web links, Markdown anchors, arbitrary YAML schemas, or whether an agent will activate or execute a skill correctly.

Both tools accept --global-dir and --jev-dir. Sync additionally accepts repeatable --target arguments. Use source overrides consistently when checking a custom installation. Link ownership is inferred from those source roots; it is not recorded in a separate manifest.

Verify tool changes

When sync, validation, or delivery behavior changes, run the relevant regression checks from the repository root:

python3 -m unittest discover -s tests -v

Tests use temporary source catalogs and targets; they do not change installed agent directories. Coverage includes link ownership, stale cleanup, read-only modes, collisions, missing sources, and delivery command generation.

Workflow evaluation cases are optional fixtures for trigger or policy changes. A behavioral evaluation requires observed agent actions; passing script tests does not prove routing quality. Use real failures to guide small corrections rather than adding more mandatory checks.

Delivery helper

bin/t3-deliver prints a quoted scp command using this host's Tailscale address. It requires Bash and realpath; the receiving Windows machine needs OpenSSH scp with SFTP support and access to the host. It starts no server or transfer.

To expose it on PATH, link the helper from the repository root:

mkdir -p "$HOME/.local/bin"
ln -s "$PWD/bin/t3-deliver" "$HOME/.local/bin/t3-deliver"

Inspect an existing destination before replacing it. sync-skills.sh installs skill directories, not this executable link. On another host, adapt the address in bin/t3-deliver and the delivery skill's host-specific instructions together.