Skip to content

State and Configuration

All skilltap-owned machine configuration lives under:

text
${XDG_CONFIG_HOME:-$HOME/.config}/skilltap/
├── config.toml
├── inventory.toml
├── state.json
└── managed/

No skilltap metadata is written into managed projects.

config.toml

Policy includes enabled harnesses, binary overrides, instruction bridge mode, and update behavior. It does not list installed resources.

If this file is missing, neither harness is enabled. Read-only inspection does not create it and does not infer enabled harnesses from binaries found on the machine.

toml
schema = 1

[harnesses.codex]
enabled = true
binary = "codex"

[harnesses.claude]
enabled = true
binary = "claude"

[instructions]
claude_mode = "symlink"

[updates]
mode = "apply-safe"
interval = "6h"

inventory.toml

Inventory is the human-readable desired state for registered marketplaces, plugins, standalone skills, instruction locations, target harnesses, project paths, component selections, update policy, and pins. Entries use stable skilltap identifiers and canonical absolute paths. A logical resource ID and its concrete scope form the exact resource key; equal IDs in global and different project scopes remain distinct.

state.json

State is machine-written provenance and apply history: native identifiers, fingerprints, versions, Git revisions, last checks, native harness versions, timestamps, and apply results. It is inspectable output, not desired configuration.

Fresh declared/effective observations, capability-profile evidence, and health findings are ephemeral. status and adopt do not persist their snapshots to state.json. A successful mutation may update provenance, fingerprints, revisions, versions, timestamps, and apply results after re-observation.

managed/

Managed artifacts and recoverable backups live here when no faithful native lifecycle exists. Authentication material and secrets never enter any skilltap state file or managed artifact.