Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.selftune.dev/llms.txt

Use this file to discover all available pages before exploring further.

Usage

selftune verify --skill-path <path> [options]
selftune publish --skill-path <path> [options]
selftune create status --skill-path <path> [options]
selftune create init --name <name> --description <text> [options]
selftune create scaffold --from-workflow <id|index> [options]
selftune create check --skill-path <path> [options]
selftune create replay --skill-path <path> [options]
selftune create baseline --skill-path <path> [options]
selftune create report --skill-path <path> [options]
selftune create publish --skill-path <path> [options]
init creates a blank draft package. scaffold creates the same package shape from a discovered multi-skill workflow in SQLite telemetry. check runs spec validation plus selftune’s package-readiness checks to tell you the next draft-lifecycle step. replay, baseline, report, and publish complete the package validation and handoff path. create report renders the same measured package evaluator used by publish as one benchmark-style artifact. create publish re-runs package replay and package baseline before it hands the draft into watch, rather than jumping straight into description-only evolve. If you want the smaller lifecycle surface, use selftune verify as the trust-building front door and selftune publish as the shipping front door. verify runs the same readiness contract as create check, then emits the benchmark-style report once the draft is ready. publish delegates to create publish and starts watch by default unless you pass --no-watch.

create subcommand flags

The low-level create surfaces keep their full expert flag set even when you mostly use the smaller verify / publish lifecycle commands.
FlagUsed byMeaning
--namecreate initDisplay name for the new draft package
--descriptioncreate init, create scaffoldRouting description for the draft package
--output-dircreate init, create scaffoldParent directory for the new package
--forcecreate init, create scaffoldOverwrite scaffold files if the directory already exists
--from-workflowcreate scaffoldWorkflow ID or list index to scaffold from
--skill-namecreate scaffoldOverride the generated scaffolded skill name
--writecreate scaffoldPersist the scaffold instead of previewing it
--min-occurrencescreate scaffoldMinimum workflow frequency when resolving the selection
--skillcreate scaffoldRestrict workflow discovery to chains containing the named skill
--skill-pathcreate status/check/replay/baseline/report/publish, verify, publishPath to a skill directory or SKILL.md
--modecreate replay, create baselineRouting-only or full-package evaluation mode
--agentcreate replay, create baseline, create report, verifyRuntime agent used for evaluation
--eval-setcreate replay, create baseline, create report, verifyOverride the canonical eval-set path
--watchcreate publishStart watch immediately after publish succeeds
--no-watchpublishSkip the default watch handoff and return the next watch command instead
--ignore-watch-alertscreate publish, publishBypass the publish-time watch gate after review
--jsonmost subcommandsEmit structured JSON output
--helpall subcommandsShow command help

selftune verify lifecycle

selftune verify runs through the following steps:
  1. Run the same draft-package readiness checks as selftune create check
  2. Auto-generate missing evidence (evals, unit tests, replay, baseline) unless --no-auto-fix
  3. If the draft is ready, run the benchmark-style package report
  4. Recommend selftune publish when verification passes

Auto-fix behavior

By default, verify attempts to repair a failing readiness check automatically before reporting failure. When a check identifies a gap — missing evals, unit tests, routing replay data, or a baseline — verify runs the appropriate sub-command on your behalf and re-evaluates readiness. It will attempt up to four sequential fixes before stopping. This means running verify on a fresh draft will often produce a passing result in a single command rather than requiring you to manually run each remediation step in sequence. To skip automatic evidence generation and receive the raw readiness result, pass --no-auto-fix:
selftune verify --skill-path ./my-skill --no-auto-fix
Use --no-auto-fix when:
  • You want to inspect exactly what is missing before generating anything
  • You are running verify in CI and prefer explicit control over each step
  • A previous auto-fix attempt produced unexpected output that you want to review

verify flags

FlagDefaultDescription
--skill-path <path>Path to the draft skill package (required)
--agent <agent>Override the agent used for evaluation
--eval-set <path>Override the eval-set path instead of using the canonical one
--no-auto-fixoffSkip automatic evidence generation when readiness checks fail
--jsonoffEmit machine-readable JSON output
--helpoffShow command help

Watch gate

When create publish starts watch, it evaluates the resulting watch signal through a watch gate. If the gate fails, publish is blocked: the skill is not written to the registry and published is returned as false. The JSON result includes:
FieldTypeMeaning
watch_gate_blockedbooleantrue when the watch gate prevented publication
publishedbooleanfalse whenever watch_gate_blocked is true
next_commandstringRemediation command to run — points to selftune watch when blocked
watch_gate_passedbooleanWhether the gate passed
watch_trust_scorenumberTrust score derived from the latest watch signal
When the gate blocks, the formatted output includes the line:
Watch gate blocked publish: yes

Recovering from a blocked publish

Run the next_command returned in the result — it will be a selftune watch invocation for the skill. Once watch accumulates enough passing signal to satisfy the gate, re-run create publish.
# Gate blocked — run the remediation command from next_command
selftune watch --skill my-skill --skill-path ./my-skill

# Then retry publish
selftune create publish --skill-path ./my-skill
If you have reviewed the watch output and want to publish despite the gate block, pass --ignore-watch-alerts.