Add skill authoring guidelines and website design audit skill
Establishes standards for creating and organizing AI agent skills in AGENTS.md and provides a reference implementation for performing technical and visual website design audits.
This commit is contained in:
118
AGENTS.md
Normal file
118
AGENTS.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# AGENTS.md
|
||||
|
||||
This file provides guidance to AI coding agents (Claude Code, Cursor, Copilot, etc.) when working with code in this repository.
|
||||
|
||||
## Repository Overview
|
||||
|
||||
A collection of skills for Claude Code and Claude.ai. Skills are packaged instructions and optional scripts that extend Claude's capabilities.
|
||||
|
||||
## Skill Authoring Best Practices
|
||||
|
||||
When creating or modifying skills, refer to the official best practices documentation:
|
||||
|
||||
https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices
|
||||
|
||||
Key principles:
|
||||
- Be concise — Claude is already smart, only add context it doesn't have
|
||||
- Set appropriate degrees of freedom for the task's fragility
|
||||
- Test with the models you plan to use
|
||||
|
||||
## Creating a New Skill
|
||||
|
||||
### Directory Structure
|
||||
|
||||
```
|
||||
{skill-name}/ # kebab-case directory name
|
||||
SKILL.md # Required: skill definition with YAML frontmatter
|
||||
scripts/ # Optional: executable scripts
|
||||
{script-name}.sh # Bash scripts (preferred)
|
||||
{script-name}.py # Python scripts
|
||||
{supporting-files}.md # Optional: reference docs, templates, examples
|
||||
```
|
||||
|
||||
### Naming Conventions
|
||||
|
||||
- **Skill directory**: `kebab-case` (e.g., `audit-website-design`, `code-review`)
|
||||
- **SKILL.md**: Always uppercase, always this exact filename
|
||||
- **Scripts**: `kebab-case.sh` or `kebab-case.py` (e.g., `deploy.sh`, `analyze.py`)
|
||||
|
||||
### SKILL.md Format
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: {skill-name}
|
||||
description: {One or two sentences describing what the skill does AND when to use it. Include trigger phrases. Max 1024 characters.}
|
||||
---
|
||||
|
||||
# {Skill Title}
|
||||
|
||||
{Brief description of what the skill does.}
|
||||
|
||||
## How It Works / Workflow
|
||||
|
||||
{Numbered list or sections explaining the skill's workflow}
|
||||
|
||||
## Usage
|
||||
|
||||
{Show common usage patterns and examples}
|
||||
|
||||
## Output
|
||||
|
||||
{Describe or show example output}
|
||||
```
|
||||
|
||||
**Required frontmatter fields:**
|
||||
|
||||
| Field | Requirements |
|
||||
|-------|-------------|
|
||||
| `name` | Max 64 chars, lowercase letters/numbers/hyphens only |
|
||||
| `description` | Non-empty, max 1024 chars, third-person voice ("Extracts..." not "I extract...") |
|
||||
|
||||
**Optional frontmatter fields:**
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `disable-model-invocation` | `true` to prevent Claude auto-triggering (manual `/name` only) |
|
||||
| `user-invocable` | `false` to hide from `/` menu (background knowledge only) |
|
||||
| `allowed-tools` | Space-separated tools pre-approved when skill is active |
|
||||
| `argument-hint` | Hint shown in autocomplete, e.g. `[url]` or `[filename]` |
|
||||
| `effort` | Reasoning effort: `low`, `medium`, `high`, `max` |
|
||||
| `context` | Set to `fork` to run in a subagent |
|
||||
| `agent` | Subagent type when `context: fork` (e.g., `Explore`, `Plan`) |
|
||||
| `model` | Model override when skill is active |
|
||||
| `paths` | Glob patterns limiting when skill activates |
|
||||
|
||||
### Best Practices for Context Efficiency
|
||||
|
||||
Skills are loaded on-demand — only the skill name and description are loaded at startup. The full `SKILL.md` loads into context only when the agent decides the skill is relevant. To minimize context usage:
|
||||
|
||||
- **Keep SKILL.md under 500 lines** — put detailed reference material in separate files
|
||||
- **Write specific descriptions** — helps the agent know exactly when to activate the skill
|
||||
- **Use progressive disclosure** — reference supporting files that get read only when needed
|
||||
- **Prefer scripts over inline code** — script execution doesn't consume context (only output does)
|
||||
- **File references should be one level deep** — link directly from SKILL.md to supporting files, avoid chains of references
|
||||
|
||||
### Script Best Practices
|
||||
|
||||
- Use `#!/bin/bash` shebang and `set -e` for fail-fast behavior
|
||||
- Write status messages to stderr: `echo "Message" >&2`
|
||||
- Write machine-readable output (JSON) to stdout where applicable
|
||||
- Include a cleanup trap for temp files
|
||||
- Handle errors explicitly rather than letting Claude figure them out
|
||||
- Document all constants (no "magic numbers")
|
||||
|
||||
### End-User Installation
|
||||
|
||||
**Claude Code (via skills.sh):**
|
||||
```bash
|
||||
# Install a specific skill
|
||||
skills install {skill-name}
|
||||
```
|
||||
|
||||
**Claude Code (manual):**
|
||||
```bash
|
||||
cp -r {skill-name} ~/.claude/skills/
|
||||
```
|
||||
|
||||
**Claude.ai:**
|
||||
Add the skill zip to project knowledge or paste SKILL.md contents into the conversation. If the skill requires network access, add required domains at `claude.ai/settings/capabilities`.
|
||||
Reference in New Issue
Block a user