Skip to main content
skillspec visibility manages harness-native skill visibility for Codex and Claude Code. It writes native visibility controls — Codex agents/openai.yaml policy files, Claude settings.json skillOverrides, and Claude SKILL.md frontmatter disable-model-invocation flags — and produces a reversible manifest so any change can be undone precisely. Visibility controls affect whether a harness offers a skill implicitly (no explicit invocation needed), only when explicitly named, by name only, or not at all. This is distinct from the router: visibility controls harness-native discovery behavior, while the router adds active routing and selection logic on top of the discovered skill set.

visibility plan

Shows the planned visibility changes without applying them. Use this to preview what apply would do.

visibility apply

Applies native harness visibility controls and writes a reversible manifest.
For each skill, apply writes or updates:
  • Codex — <skill-dir>/agents/openai.yaml with policy.allow_implicit_invocation: true/false.
  • Claude (repo-local) — .claude/settings.json with a skillOverrides.<skill-name> entry.
  • Claude (shared .agents root) — SKILL.md frontmatter disable-model-invocation flag.
Always run visibility plan first to review planned changes before running visibility apply.

visibility restore

Restores exact file snapshots from a visibility manifest. Does not infer previous state — it reads the before_content snapshots recorded by apply and writes them back exactly.

Workspace install visibility policies

The skillspec workspace install command accepts a --visibility-policy flag that controls which packages receive implicit versus manual-only visibility when --apply-visibility is used. These values are not skillspec visibility --profile values — they apply only to workspace install. The skillspec visibility command itself uses --profile router-managed as its profile selector. For standalone visibility management outside of workspace install, pass --profile router-managed to visibility plan and visibility apply.
When the router is installed and enabled, visibility is managed automatically by router install, router enable, router disable, and router index refresh. Use skillspec visibility directly only for standalone visibility management outside the router lifecycle, or when you need fine-grained control over individual skill visibility.

Visibility values and harness mapping

Codex has no native name-only or off state. The manifest records these values for the router so they survive a restore.

Visibility manifest

The manifest is a JSON file with schema skillspec/visibility-manifest/v1. It records:
  • Each changed skill’s name, paths, harness kind, before and after visibility states.
  • File-level snapshots of every modified file with before and after content.
The manifest is additive: subsequent apply calls merge new changes rather than overwriting the record of prior changes. This means restore always reverts to the state before the first apply for each skill, not the state before the most recent one.

Distinction from the router

  • skillspec router install — Install the router; automatically manages visibility.
  • skillspec router index refresh — Refresh the router index and reapply router-managed visibility.
  • skillspec skills set-visibility — Set visibility for a single skill.
  • skillspec status — View current visibility state alongside router and skill installation state.