selftune sets to keep reusable project configurations separate from the
global skill registries. Skill packages are copied into a content-addressed
local Library when the set is created. Applying the set links those immutable
revisions into the selected project’s supported harness registries.
Suggest and classify
suggest classifies every local Library skill and finds repeated ordered
workflows, unordered co-usage, and project-specific patterns in trusted session
observations. It runs locally without an LLM, does not include transcript text
in its output, and never creates or applies a set automatically. Protected
SelfTune control packages and admin/system skills are classified but excluded
from project recommendations.
SelfTune discovers candidates in the oldest sessions and validates them against
the newest 25% of eligible sessions. A recommendation is validated after it
recurs in at least two held-out sessions and meets its pattern-quality floor,
supported after one later recurrence, or exploratory when there is not yet
enough history to form a holdout window. Once a holdout window exists, patterns
with no recent recurrence are omitted.
The default discovery floor is three sessions and 0.35 Jaccard affinity. Use
--min-occurrences, --min-affinity, --holdout-ratio,
--min-validation-occurrences, --min-evidence-score, and --max to tune a
review. The holdout ratio must be between 0.1 and 0.5. Existing sets containing
the same skills are omitted.
Accepted, edited, and dismissed reviews are retained by algorithm version.
SelfTune reports acceptance rate, edit rate and distance, dismissal reasons,
and category corrections. It does not change the evidence floor until it has at
least 20 usable reviews, including at least five positive and five structural
negative labels. An explicit --min-evidence-score overrides the calibrated
floor for that command only.
Create a Skill Set
Each selected package is verified after it enters the Library. The manifest
pins its content hash rather than a mutable source directory.
Packages must be self-contained; package-internal symbolic links are rejected
so a pinned revision cannot change with an external file.
Capture the current project
capture defaults to the current directory, derives a readable name from its
folder, and detects the supported harness registries that contain skills. It
deduplicates identical packages installed for multiple harnesses and blocks
same-name packages with conflicting contents. Repeating an identical capture
returns the existing set without creating another revision.
Override any inferred value when needed:
Preview and apply
plan reports every create, unchanged destination, and conflict without
mutating the project. apply blocks before any mutation if one destination
contains another revision. Repeating a successful apply is a no-op.
On another device, run selftune library sync first. Sync adds hosted Skill Set
manifests that are not already local without replacing existing sets. The plan
shows how many pinned revisions are missing. Apply downloads only those exact
revisions from SelfTune Cloud or the configured self-hosted server, verifies
their remote object and package hashes, stores them in the local Library, and
then continues normally. A download, authentication, offline, or integrity
failure leaves the project unchanged. Applying already-local revisions does not
download skill packages. When a workspace is configured, apply first attempts to
refresh its installation policies, falling back to verified cached policies if
the workspace is unavailable. A damaged or unreadable cache stops installation;
reconnect and retry to refresh it. Personal libraries without a workspace policy
cache do not require this cache.
SelfTune targets .agents/skills/, .claude/skills/, .opencode/skills/,
.openclaw/skills/, or .pi/agent/skills/ for the selected harnesses. It
prefers directory symlinks and verifies a copied fallback when the platform
cannot create links.
Existing project registry directories must resolve inside the selected
project. SelfTune blocks links that redirect materialization elsewhere.
Inspect and roll back
outcomes compares matched project sessions before and after an accepted set
revision is applied. It follows the immutable revision recorded by the apply
receipt even if the set is edited later, and includes sessions run in project
subdirectories. It reports completion quality, errors, trigger coverage, token
use, and grading results. A result is improved or regressed only after at
least five sessions on each side and at least two metrics move consistently
without a metric moving the other way; otherwise it is inconclusive. This is
an observational comparison, not a causal claim.