SYS.32 / SKILLS
Skills
An expert briefing for one role, specialised to one project. Which ones exist is decided by the scanner, not by a model.
Which Skills get generated
Deterministically, from facts the scanner established.
| Skill | Generated when |
|---|---|
| Senior Developer | always |
| Architecture Expert | there are several modules with real boundaries |
| Security Auditor | auth or payments is detected |
| Testing Expert | a test framework is in use |
| Debugging Expert | a database is present |
| Product Manager | product documentation or public routes exist |
| SEO / UX Specialist | a frontend with public routes |
| Monetization Advisor | the project already charges money |
| Code Reviewer | the project is large enough to need one |
Generation, review and repair
Two model calls per Skill, and four when the first draft is weak.
- 01 · GENERATEREASONED
Given the intelligence, the Constitution, the deterministic fact sheet and the dependency graph.
- 02 · REVIEWREASONED
A separate call with a different prompt and a lower temperature, scoring for project specificity and reporting typed issues — generic language, hallucination, contradiction, missing context, unsupported assumption, technical inaccuracy.
- 03 · REPAIRREASONED
Only below the threshold, and only once. The Skill written again with its own critique attached.
- 04 · RE-REVIEWGATE
The repaired draft, judged the same way. The better of the two drafts wins — not the later one.
The review is a separate call on purpose. A single call asked to write and grade its own work produces flattery, not a quality signal.
Skills are generated one at a time rather than in a single prompt: each needs the whole Constitution in context, and one call producing six would truncate long before the last.
What keeps a Skill honest
The same gate as everything else, plus a definition of "specific" per role.
The sources a Skill cites pass the evidence gate: a path that does not exist in the snapshot is removed rather than shipped. A Skill that cites imaginary files is worse than no Skill.
Specificity also means different things per role, and saying only "be specific" makes every Skill reach for file paths — including a business-strategy Skill, which then cites a source file as though a path were a business fact. Each category is told what to ground in.
Versions and regeneration
A run appends a version. It never overwrites one.
Each generation records the snapshot, the intelligence version, the provider, the model and a prompt hash, plus its own review. Re-running an analysis adds a version, so the Skill on somebody’s disk can always be traced to what produced it.
Regeneration is not re-analysis. The snapshot, its files, its intelligence and its Constitution are unchanged, so only the generation and review steps run — and the job carries only those step rows, because writing the others as pending would show work the worker is never going to do.
It is refused before anything is queued when there is no snapshot, no Constitution to write from, an unknown Skill, or a run already in flight. Each of those would otherwise become a run that spends tokens and then fails.
Freshness
An installed Skill rots silently.
The file keeps loading into your agent after the code moves. Nothing errors, and the agent answers confidently about a shape the project no longer has.
pskl skills freshness names the files each Skill draws on that have changed since it was written — and says "cannot be checked" rather than "unchanged" when part of the history was never compared, because those are different statements.
Getting them onto disk
Where they go, and what will not be overwritten.
.claude/skills/<name>/SKILL.md the artefacts .projectskills/project.json which project this directory is .projectskills/artifacts.json what was written, and its hash
The directory name has to match the front matter or the agent will not load it, so the layout is not a preference. pskl pull never overwrites a generated file you have edited by hand — it names the file, leaves your version alone, and exits non-zero. Every Skill it writes has been through the security audit first.