Skip to content

Skill Toggles

A plugin is a bundle, but you don’t have to take all of it. Inside the Configure Ptah Skills modal, an enabled plugin can be expanded to reveal its individual skills, each with its own checkbox.

  1. Open Marketplace → Plugins → Configure.
  2. Make sure the plugin is checked. The skill list only appears for enabled plugins.
  3. Click the chevron next to the skill-count badge to expand the list.
  4. Untick the skills you don’t want.
  5. Click Save Configuration.

Each skill row shows its display name and description, both read from the SKILL.md frontmatter, so you can tell review-logic from review-security without opening either file.

Skill copies reach every detected AI tool, not only Claude’s

Section titled “Skill copies reach every detected AI tool, not only Claude’s”

Ptah keeps one editable copy of each skill under ~/.ptah/user/skills, then reconciles it out to a manifest-owned copy in every AI tool it detects on your machine — not a link, a real file. For skills, that means up to four target directories inside the workspace:

Target(s)Directory
Claude.claude/skills/<slug>/
Codex and Antigravity.agents/skills/<slug>/ (shared)
Copilot.github/skills/<slug>/
Cursor.cursor/skills/<slug>/

Only the tools you have installed get a copy — an undetected tool is not a gap. Turning a skill off or on affects all of them together; there’s no per-tool switch.

Disabled skills are recorded per workspace as disabledSkillIds, a list of skill directory namesorchestration, tribunal, ui-ux-designer. On the next reconcile, a disabled skill drops out of the desired state: its copy is removed from every target directory listed above, and it is never recreated while it stays disabled.

The effect is that the skill stops being visible to agents in that workspace. The plugin stays enabled, its other skills stay live, and its slash commands are unaffected — command files come from commands/, not skills/, and skill toggles do not touch them.

Skill IDs are a flat, global namespace. disabledSkillIds holds a bare directory name with no plugin prefix, so disabling a name disables it wherever it comes from. In practice this doesn’t bite, because two plugins can’t both contribute the same skill name anyway — the first one wins.

Plugin enablement and this per-skill toggle aren’t the whole picture. A third, outer gate decides — per project — whether a skill can reach this workspace at all: see Per-project skill selection. All three compose as a conjunction, evaluated outermost first, and every level has to say yes:

  1. Per-project selection — does this workspace’s state.json allow the skill in at all?
  2. Plugin enablement — is the plugin the skill belongs to checked, here in this modal?
  3. This per-skill toggle — is the individual skill unticked?
SelectionPlugin stateSkill stateResult
AllowedEnabledEnabledThe skill is copied out and available
AllowedEnabledDisabledThe skill is skipped; the rest of the plugin still works
AllowedDisabledEnabledNothing is copied out — plugin enablement is the outer gate here
AllowedDisabledDisabledNothing is copied out; the toggle is remembered for when you re-enable
Not selected(any)(any)Nothing is copied out — the selection gate never lets it through

Unchecking a whole plugin does not clear the per-skill toggles you set inside it. They stay in disabledSkillIds and take effect again the moment you re-enable the plugin. The same is true of the selection gate: narrowing your selection later doesn’t touch your plugin or per-skill toggles, and widening it again brings back whatever those two still allow.

There is one cleanup rule worth knowing: on save, Ptah validates your disabled-skill list against the skills it can actually find — those in the enabled plugins plus every harness-authored plugin. A name that matches nothing is dropped from the record. So if you disable a skill and then permanently remove the plugin that supplied it, the orphaned entry quietly disappears rather than lingering forever.

The modal footer shows both dimensions at once:

4 of 6 selected · 2 skills disabled

The second half only appears when at least one skill is switched off — a quick way to notice a toggle you set months ago and forgot about.