Skip to content

Skills

A skill is a small, focused prompt package with a deterministic trigger. When the model decides a skill is relevant, its contents are injected into context on the spot. Skills are how Ptah keeps expertise modular: one skill per topic, versioned, and reusable across providers.

skills/
└── review-security/
├── SKILL.md # Definition + trigger description
└── references/ # Optional lazy-loaded content
├── owasp-top-10.md
└── threat-model.md
SKILL.md
---
name: review-security
description: Security vulnerability review — OWASP-based assessment across any tech stack. Use when the user asks for a security review or mentions vulnerabilities, auth, or hardening.
---
# Security Review Protocol
## Phase 1: Authentication & authorization
...

Every skill’s description field is the trigger. The orchestrator scans available skills and picks the ones whose descriptions match the user’s intent. Matching is LLM-based, not keyword-based, so phrasing matters:

  • Good: “Use when the user writes Angular forms, reactive forms, or form validation.”
  • Poor: “Angular forms stuff.”

Skill junctions — sharing across AI clients

Section titled “Skill junctions — sharing across AI clients”

Ptah goes beyond its own sessions. Every enabled plugin skill is symlinked (junctioned on Windows) into the active workspace at:

<workspace>/.claude/skills/<skill-name>/

This is the folder the wider AI-tooling ecosystem reads — Claude Code, Copilot, Cursor, Codex CLI. By populating it automatically, Ptah ensures that when you switch tools for a specific task, you don’t lose the knowledge pack.

flowchart LR
A["~/.ptah/plugins/ptah-core/skills/orchestration/"] -- junction --> B[".claude/skills/orchestration/"]
C["~/.ptah/plugins/ptah-angular/skills/angular-frontend-patterns/"] -- junction --> D[".claude/skills/angular-frontend-patterns/"]
B --> E["Ptah"]
B --> F["Copilot"]
B --> G["Cursor"]
D --> E
D --> F
D --> G
EventPtah’s action
Plugin enabledCreate junctions for every skill in the plugin
Plugin disabledRemove the junctions (originals stay in ~/.ptah/plugins/)
Plugin updatedJunctions auto-resolve — no re-creation needed
Workspace first openedEnsure junctions exist for all enabled plugins
PlatformLink typeNeeds special permission?
WindowsDirectory junctionNo (junctions don’t need admin)
macOSSymbolic linkNo
LinuxSymbolic linkNo
SkillAgent
Knowledge pack injected into current contextSeparate sub-session with its own context window
No token isolationToken-isolated — good for large background work
Invoked automatically when description matchesInvoked explicitly via ptah_agent_spawn or orchestrator
Best for: patterns, checklists, reference materialBest for: multi-step execution, long-running tasks