Curated agent skills for Frontify devs — install with one command, no agent lock-in.
Each skill in this repo is a self-contained
SKILL.md(with optionalreferences/,scripts/,assets/) that conforms to the open Agent Skills spec. Compatible agents — Claude Code, Cursor, Codex, OpenCode, Gemini CLI, and many more — can install any of them with a singlenpx skills addinvocation.
Contents
A working setup has two halves: skills (this repo) and AGENTS.md (in your project repo). One without the other is half-useful.
flowchart LR
S["Frontify/skills<br/>(this repo)"]
A["AGENTS.md<br/>(consumer repo root)"]
Agent["AI agent<br/>Claude Code · Cursor · Codex · …"]
Code["Your project"]
S -->|"npx skills add"| Agent
A -->|"auto-loaded into context"| Agent
Agent -->|"runs validation, tests, format<br/>using AGENTS.md commands"| Code
classDef repo fill:#1f2937,stroke:#9ca3af,color:#f9fafb;
classDef contract fill:#0f172a,stroke:#9ca3af,color:#f9fafb;
classDef agent fill:#2563eb,stroke:#1e40af,color:#f9fafb;
classDef project fill:#0e7490,stroke:#155e75,color:#f9fafb;
class S repo
class A contract
class Agent agent
class Code project
Skills reference AGENTS.md sections (Commands > Validation, Commands > Test, etc.) to resolve project-specific values. Without AGENTS.md they fall back to asking the user every time — workable, but slow and forgetful.
The Vercel-Labs skills CLI handles install across any compatible agent.
# List available skills in this repo
npx skills add Frontify/skills --list
# Install one globally to all detected agents
npx skills add Frontify/skills --skill <skill-name> -g
# Or target specific agents
npx skills add Frontify/skills --skill <skill-name> -g -a claude-code -a cursorEach skill is independent — install only what you need.
The skills CLI auto-detects installed agents. If you'd rather invoke per-agent explicitly:
# Claude Code
npx skills add Frontify/skills --skill <skill-name> -g -a claude-code
# Cursor
npx skills add Frontify/skills --skill <skill-name> -g -a cursor
# Codex
npx skills add Frontify/skills --skill <skill-name> -g -a codex
# OpenCode
npx skills add Frontify/skills --skill <skill-name> -g -a opencode
# Gemini CLI
npx skills add Frontify/skills --skill <skill-name> -g -a gemini-cliThe supported agent flags are documented at vercel-labs/skills.
This step is mandatory. Without
AGENTS.mdin the consuming repo's root, skills can't resolve project-specific values like the validation, test, or format command. They fall back to asking the user on every run, repeating the same questions across sessions.
curl -o AGENTS.md https://raw.githubusercontent.com/Frontify/skills/main/templates/AGENTS.mdOpen the file and replace every <TODO: …> placeholder with the concrete value for that project. Commit alongside whatever introduces it. For the full schema and rationale, see The AGENTS.md contract.
Thirty-four self-contained skills, grouped by purpose. Every name links to its SKILL.md. Each skill is independent — install only the ones you need.
Tip: keep Always-on loaded for the whole task. Load others only when the task type calls for them — too many skills in context dilutes the agent's attention.
| Skill | Description |
|---|---|
documentation-gatekeeper |
Police every doc-to-task transition. Loaded for the whole session. Refuses forbidden flows (research → fix without spec; spec back-filled from finished code; durable findings stuck in transient task files). |
manage-task |
Own the task-file lifecycle. Loaded for the whole task. Runs pre-flight checks, in-flight progress / decisions / findings capture, and the pre-close gate that promotes durable findings and verifies Self-review is empirical. |
Each persona is a fully self-contained skill. Install only the personas your work needs — they have no dependencies on each other or on any other skill in this repo. Each persona activates from the agent's own assessment of the task type.
| Skill | Description |
|---|---|
persona-builder |
Adopt the Builder mindset for feature implementation from a spec. Deliver to spec, no scope creep, halt on ambiguity, no refactor-while-here. |
persona-skeptic |
Adopt the Skeptic mindset for review, deepen-audit, and fix tasks. Hostile-to-plausible-explanations, run validation yourself, cite file:line. |
persona-architect |
Adopt the Architect mindset for spec-writing. Alternatives-considered, halt on [CRITICAL], every requirement testable, no implementation details. |
persona-janitor |
Adopt the Janitor mindset for refactor work. Behaviour preservation, per-batch architectural validation, grep-before-delete. |
persona-lead-engineer |
Adopt the Lead Engineer mindset for orchestration. Never merge on a worker's word, integrated validation, disjoint scopes, cited kickback. |
persona-researcher |
Adopt the Researcher mindset for technical research. Primary-source citation, evidence-based findings, [unconfirmed] marking. |
persona-surveyor |
Adopt the Surveyor mindset for UX/market research. Concrete-examples discipline, observed-vs-claimed, three-cited-references floor. |
persona-bug-hunter |
Adopt the Bug Hunter mindset for bug-report authoring. Reproduce-before-explaining, observation-vs-inference, root-cause-not-symptom. |
persona-auditor |
Adopt the Auditor mindset for audit-writing. Observation-not-prescription, file:line citations, severity by impact, dynamic-invariant verification. |
persona-migrator |
Adopt the Migrator mindset for API/framework/language migrations. Wave-by-wave validation, documented shim removal criteria, callsite coverage proof. |
persona-performance-surgeon |
Adopt the Performance Surgeon mindset for optimisation work. Measure first, same-protocol benchmarking, full test suite after every change. |
persona-test-author |
Adopt the Test Author mindset for standalone test work. Behaviour-not-implementation, one-test-one-reason-to-fail, assertion-flip proof. |
persona-documentarian |
Adopt the Documentarian mindset for user-facing documentation. Diátaxis frame purity, lead-with-action, runs-as-written examples. |
| Skill | Description |
|---|---|
adversarial-review |
Review another agent's work hostile-to-plausible-explanations. For worker branches, deepening audits, root-causing bugs, auditing codebase areas. Six adversarial questions, cross-module caller search, run-validation-yourself rule. |
empirical-proof |
Back every claim with verbatim pasted output. For any task that writes code, runs validations or benchmarks, or makes verifiable claims. No paraphrasing, no "✅ all passing", no trusting upstream pasted output. |
distillation-discipline |
Distil upstream docs accountably. For research → spec / audit / task transformations and finalising long-running investigations. Enforces the Distillation Loss Statement protocol — drop fluff, keep load-bearing constraints, record what was dropped. |
| Skill | Description |
|---|---|
write-research |
Author a research doc grounded in primary sources. Every claim cites primary source, options compared with criteria, recommendation actionable, unverified claims marked [unconfirmed]. |
write-spec |
Author a forward-looking spec. Every requirement testable, every design decision shows alternatives, no implementation details, halt on [CRITICAL] open questions. |
write-audit |
Author an audit of present state. Findings cite file:line, every issue has a "Needed", issues prioritised by impact, dynamic invariants verified. |
write-bug-report |
Author a bug-report. Reproduce deterministically before explaining, find the root cause (not the symptom), distinguish observation from inference, propose a regression test. |
write-documentation |
Author or update user-facing documentation. Pick one Diátaxis frame, lead with the action the reader needs, every code example runs as written, every behaviour claim cites file:line. |
author-adr |
Author an Architectural Decision Record. Past tense, single decision, alternatives compared with criteria, consequences enumerated honestly, status field set, numbered filename. |
| Skill | Description |
|---|---|
write-feature |
Implement a feature from a spec. Read the spec in full, survey existing patterns, halt on ambiguity, no scope creep, validate after every batch. |
write-fix |
Fix a bug from a bug-report. Reproduce in your worktree, patch the root cause (not the symptom), add a regression test that fails before the fix and passes after, no scope creep. |
write-refactor |
Restructure code to address audit findings without changing surface behaviour. Per-batch architectural validation, documented shim contracts with verifiable removal criteria, deletion-safety proof. |
write-rewrite |
Re-implement a module with explicit behaviour changes. Make the delta explicit before changing code, preserve everything outside the delta, halt and update the spec on unplanned behaviour changes. |
write-migration |
Migrate an API or upgrade a framework / language / library version across the codebase. Wave-by-wave validation, documented shim contracts, verifiable callsite coverage proof. |
| Skill | Description |
|---|---|
write-orchestration |
Decompose a large task into parallel sub-tasks delegated to worker agents. Never merge on a worker's word, run validation yourself, kickback feedback cites file:line, document the merge protocol. |
write-performance |
Optimise a measured bottleneck under a target. Measure before changing code, baseline + target benchmarked under the same protocol, full test suite passes after every change. |
write-testing |
Add or improve test coverage. Test behaviour not implementation, one test / one reason to fail, flip the assertion to prove the test means something, follow the project's test placement conventions. |
explain-code |
Explain a piece of code faithfully. Read the full file, cite file:line, distinguish observed from inferred, surface silent behaviour, separate pre-existing behaviour from any change in scope. |
fix-flaky-test |
Diagnose and stabilise a flaky test. Reproduce first, categorise the source of nondeterminism, fix the root cause (not via sleeps or quarantine), prove stability with a loop-run. |
Skills published from this repo are half of a contract. The other half lives in each consuming repo as an AGENTS.md at the repo root. Most compatible agents auto-load it into context, so once it exists every skill running in that repo can resolve project-specific values without hardcoding them.
Why the split: skills can't know whether your project's typecheck command is tsc, pnpm typecheck, or yarn type-check. Instead of guessing or asking on every run, skills reference abstractions like AGENTS.md > Commands > Validation and the consuming repo provides the concrete value.
Skills assume these exist; if missing they degrade to asking the user, but performance suffers.
| Section | Purpose | Example |
|---|---|---|
Commands > Validation |
Typecheck + lint | pnpm typecheck && pnpm lint |
Commands > Test |
Test runner | pnpm test |
Commands > Format |
Formatter | pnpm format |
Strongly encouraged — they make the agent useful from cold start.
| Section | Purpose |
|---|---|
Stack |
Primary languages, frameworks, key libraries. |
Architecture |
2–4 sentences on project structure and domain. |
Conventions |
Code style, naming patterns, import order, anything else worth standardising. |
curl -o AGENTS.md https://raw.githubusercontent.com/Frontify/skills/main/templates/AGENTS.mdThen replace every <TODO: …> placeholder. The Required entries are non-negotiable; the Recommended ones are strongly encouraged. Commit alongside whatever introduces it.
Skills will not invent commands. They ask the user which command to run every time they need one, and proceed once told. This is workable but slower, repeats the same questions across sessions, and means the agent starts each task with zero project context. Set AGENTS.md up once per consuming repo and keep it filled in.
Skills will ask the user for these when needed. If you find yourself answering the same question repeatedly, propose extending the contract in a PR rather than adding ad-hoc sections to your AGENTS.md.
See CONTRIBUTING.md for structure rules, frontmatter requirements, and PR workflow. Agents working in this repo also load AGENTS.md — the agent-facing entry point that complements the human-facing docs without duplicating them.
Every structural choice in this repo — from the wording of description fields to the absence of automation — is grounded in published evidence on agent behaviour. The full rationale, with citations, lives in docs/:
| Document | Topic |
|---|---|
docs/activation.md |
Why descriptions are written in directive form |
docs/body-anatomy.md |
Numbered rules, length budgets, anti-patterns sections, reference depth |
docs/execution.md |
The two reliability problems and the forced-visible-output fix |
docs/self-containment.md |
Why skills don't reference each other; the AGENTS.md contract |
docs/scope.md |
What the repo deliberately is, and is not |
docs/sources.md |
Full bibliography |
Frontify locks down which skills can ship inside an application repo (those affect every developer in the company). For your own tooling, however, you can install skills globally at the user level so they're available across all projects without touching any application repo. The repos below are the major public skill collections that support a user-global install path; each is a good complement to Frontify/skills for your personal setup.
| Repo | What it ships | Install (user-global) |
|---|---|---|
| vercel-labs/agent-skills | Vercel's official skills (React Best Practices, Frontend Accessibility, etc.) | npx skills add vercel-labs/agent-skills -g (cross-agent) |
| anthropics/skills | Anthropic's reference skills, including the document-skills set (PDF / DOCX / XLSX) and skill-creator |
/plugin marketplace add anthropics/skills (Claude Code) |
| wshobson/agents | 78 plugins, ~150 specialised agent skills (Python, JavaScript/TypeScript, backend, security, etc.) | /plugin marketplace add wshobson/agents (Claude Code) |
| elastic/agent-skills | Elastic's official Elasticsearch / Kibana skills | claude plugin install elastic-elasticsearch@elastic-agent-skills (Claude Code) |
| addyosmani/agent-skills | "Production-grade engineering skills for AI coding agents" | gemini skills install https://github.com/addyosmani/agent-skills.git --path skills (Gemini CLI; for Claude Code requires per-project vendoring, so skip) |
Reminder: these are for your user-global agent setup, not for any Frontify application repo. Application-repo skills go through the
Frontify/skillsreview process so they affect every contributor consistently.
- vercel-labs/skills — the
npx skillsCLI used to install - agentskills.io — the open Agent Skills spec and skill directory
- agents.md — the open
AGENTS.mdconvention adopted by Cursor, Codex, Claude Code, and others - Anthropic — Skill authoring best practices — official guidance on description, length, structure, evaluation
- Anthropic — Equipping agents for the real world with Agent Skills — original design rationale