plugins/v1tamins/skills/v1-skilling-it/SKILL.md
Use when creating, writing, editing, or improving shared skills for Codex, Claude Code, or other agent runtimes. Triggers on "create a skill", "write a skill", "improve skill", "skill description", "SKILL.md".
npx skillsauth add v1-io/v1tamins v1-skilling-itInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create effective shared agent skills following best practices for discovery, progressive disclosure, and maintainability.
Create a skill in 5 steps:
plugins/v1tamins/skills/v1-my-skill-name, Codex user-global path ~/.codex/skills/v1-my-skill-name, or Claude Code user-global path ~/.claude/skills/v1-my-skill-nameMinimal template:
---
name: v1-my-skill-name
description: Use when [triggering condition 1], [triggering condition 2]. Triggers on "[phrase 1]", "[phrase 2]".
---
# My Skill Name
## Quick Start
[Fastest path to value]
## Instructions
[Core guidance]
## Examples
[Concrete usage]
Create a skill when you have:
Don't create skills for:
v1-skill-name/
├── SKILL.md # Required - core instructions (<500 lines)
├── agents/openai.yaml # Optional - Codex UI metadata
├── references/ # Optional - detailed docs (loaded as needed)
├── scripts/ # Optional - executable utilities
└── assets/ # Optional - templates, images, fonts
Treat plugins/v1tamins/skills/v1-<skill-name>/SKILL.md as the canonical source for v1tamins. The plugin package is installed directly by Codex and Claude Code through the manifests under plugins/v1tamins/.
| Surface | Purpose | Rule |
|---------|---------|------|
| plugins/v1tamins/skills/v1-<name>/SKILL.md | Shared source of truth | Edit this first |
| plugins/v1tamins/skills/v1-<name>/agents/openai.yaml | Codex UI metadata | Keep short and trigger-oriented |
| plugins/v1tamins/.codex-plugin/plugin.json | Codex plugin manifest | Keep skills pointed at ./skills/ |
| plugins/v1tamins/.claude-plugin/plugin.json | Claude Code plugin manifest | Keep plugin metadata aligned |
After creating or renaming a skill, run:
scripts/validate-plugin.sh
This verifies frontmatter, plugin skills, manifest metadata, bundled asset references, known skill references, and portable helper paths. scripts/sync-skill-hosts.sh remains only as a legacy compatibility wrapper.
Skills load in three levels:
| Level | What Loads | When | Size Target | |-------|------------|------|-------------| | 1. Metadata | name + description | Always | ~100 words | | 2. SKILL.md body | Core instructions | Skill triggers | <500 lines | | 3. Bundled resources | References, scripts | As needed | Unlimited |
Keep SKILL.md lean. Move detailed content to references/:
references/patterns.mdreferences/api.mdreferences/examples.mdKeep references one level deep. All reference files must link directly from SKILL.md. Some hosts may only partially read files discovered through nested references (A → B → C). Bad:
SKILL.md → advanced.md → details.md → actual info
Good:
SKILL.md → advanced.md (complete info)
SKILL.md → details.md (complete info)
Add a TOC to long reference files. For files over 100 lines, include a table of contents at the top so the agent can see the full scope even when previewing.
---
name: processing-pdfs # lowercase, hyphens only, max 64 chars
description: Use when... # triggering conditions only, max 1024 chars
allowed-tools: Read, Grep # optional: restrict tool access
---
Use gerund form (verb + -ing):
processing-pdfs not pdf-processordebugging-tests not test-debuggercreating-skills not skill-creationAvoid: helper, utils, tools, anthropic-*, claude-*, codex-*
Critical: Description = triggering conditions ONLY. Do NOT summarize the workflow.
The agent reads the description to decide whether to load the skill. If you summarize the workflow in the description, it may follow the summary instead of reading the full instructions.
# BAD: Summarizes workflow - the agent may follow this instead of reading the full skill
description: Use when executing plans - dispatches subagent per task with code review between tasks
# BAD: Too vague
description: Helps with testing
# GOOD: Just triggering conditions
description: Use when tests have race conditions, timing dependencies, or pass/fail inconsistently
# GOOD: Specific triggers
description: Use when creating, writing, or improving shared agent skills. Triggers on "create a skill", "SKILL.md", "skill description".
Format: Third person, starts with "Use when..." Include: Specific symptoms, error messages, exact user phrases Max length: 1024 characters (aim for <500)
Write in imperative form (verb-first), not second person:
# GOOD: Imperative
Validate the input before processing.
Use the grep tool to search for patterns.
# BAD: Second person
You should validate the input.
You can use the grep tool.
Match instruction specificity to how fragile the task is.
High freedom -- multiple valid approaches, context-dependent:
## Code Review
1. Analyze structure and organization
2. Check for potential bugs or edge cases
3. Suggest improvements for readability
Medium freedom -- preferred pattern exists, some variation acceptable:
## Generate Report
Use this template and customize as needed:
def generate_report(data, format="markdown", include_charts=True): ...
Low freedom -- fragile operations, specific sequence required:
## Database Migration
Run exactly: `python scripts/migrate.py --verify --backup`
Do not modify the command or add flags.
Rule of thumb: narrow bridge with cliffs = low freedom, open field = high freedom.
# Skill Name
## Quick Start
[Immediate actionable example]
## Instructions
[Step-by-step guidance]
## Examples
[Concrete input/output pairs]
## Guidelines
[Rules and constraints]
## Reference Files
[Links to bundled resources]
For strict requirements (API responses, data formats), enforce exact structure:
ALWAYS use this exact template:
```markdown
# [Title]
## Executive summary
[One-paragraph overview]
## Key findings
- Finding with supporting data
```
For flexible guidance (where adaptation is useful), signal it:
Sensible default format -- adjust sections as needed for the analysis type.
Show desired style through concrete pairs rather than descriptions:
**Example 1:**
Input: Added user authentication with JWT tokens
Output:
```
feat(auth): implement JWT-based authentication
Add login endpoint and token validation middleware
```
**Example 2:**
Input: Fixed bug where dates displayed incorrectly
Output:
```
fix(reports): correct date formatting in timezone conversion
Use UTC timestamps consistently across report generation
```
Guide through decision points when a skill handles multiple task types:
1. Determine modification type:
**Creating new content?** → Follow "Creation workflow" below
**Editing existing?** → Follow "Editing workflow" below
If conditional branches are large, push each into a separate reference file and tell the agent to read the appropriate one.
For complex multi-step workflows, provide a copy-paste checklist the agent can track:
Copy this checklist and check off items as you complete them:
```
- [ ] Step 1: Analyze the input
- [ ] Step 2: Create mapping
- [ ] Step 3: Validate mapping
- [ ] Step 4: Apply changes
- [ ] Step 5: Verify output
```
For quality-critical operations, build in a validate-fix-repeat cycle:
1. Make edits
2. Run validator: `python scripts/validate.py`
3. If validation fails:
- Review error message
- Fix the issue
- Run validation again
4. Only proceed when validation passes
Pick one term and use it everywhere. Do not alternate between synonyms.
Do not include dates or deadlines that will become stale:
# BAD
If before August 2025, use the old API. After August 2025, use the new API.
# GOOD
## Current method
Use the v2 API endpoint.
## Legacy (deprecated)
The v1 API is no longer supported.
Only add context the agent does not already have. Challenge each piece of information:
Before moving guidance from a private project into a shared skill, keep the reusable workflow and remove private facts. Read references/public-safe-extraction.md for the privacy checklist and scan command.
references/)Documentation loaded into context as needed.
scripts/)Executable code for deterministic or repetitive tasks.
For detailed guidance on writing scripts for skills, see references/executable-code.md.
assets/)Files used in output (not loaded into context).
assets/logo.png, assets/template.pptxStructure:
Description:
Content:
Testing:
scripts/validate-plugin.sh passes# BAD: The agent will follow this shortcut instead of reading the full skill
description: Use for TDD - write test first, watch it fail, write minimal code, refactor
# BAD: 8,000 words in one file
skill-name/
└── SKILL.md (bloated)
# GOOD: Progressive disclosure
skill-name/
├── SKILL.md (1,800 words)
└── references/
├── patterns.md (2,500 words)
└── advanced.md (3,700 words)
# BAD: Won't trigger correctly
description: Helps with documents
# GOOD: Specific triggers
description: Use when extracting text from PDFs, filling PDF forms, or merging documents. Triggers on "PDF", "form filling", "document extraction".
# BAD
You should start by reading the file.
# GOOD
Start by reading the file.
# BAD: The agent doesn't know references exist
[No mention of references/]
# GOOD: The agent knows where to look
## Reference Files
- **references/patterns.md** - Detailed patterns
- **references/api.md** - API documentation
| Location | Purpose |
|----------|---------|
| plugins/v1tamins/skills/ | Canonical v1tamins plugin skills (committed to git) |
| ~/.codex/skills/ | Codex default user-global install path |
| ~/.claude/skills/ | Claude Code default user-global install path |
Skill doesn't trigger:
Multiple skills conflict:
Skill too large:
references/For detailed patterns and extended guidance, see:
tools
Use when planning or synthesizing user tests for prototypes, mockups, clickable demos, product concepts, design flows, landing pages, or early product specs. Triggers on "test this prototype", "prototype testing", "user test plan", "validate this product idea", "test with users".
development
Use when creating a polished self-contained HTML page would help the user understand, compare, review, present, tune, or interact with information better than Markdown. Triggers on "make an HTML page", "HTML artifact", "nice HTML", "visual report", "interactive explainer", "one-page dashboard", "shareable page".
data-ai
Use when turning a textbook, PDF, blog post, article, paper, course, notes, transcript, or other source material into suggested agent skills or skill improvements. Triggers on "what skills could come from this", "extract skills from", "turn this into skills", "skill ideas from this source".
development
Run an extremely strict maintainability review for abstraction quality, giant files, and spaghetti-condition growth. Use for large prs, new features/architectures, a deep code quality audit, or especially harsh maintainability review.