.claude/skills/flow-skill-engineer-skill/SKILL.md
Guide for creating effective Agent Skills (SKILL.md packages). Use when users want to create a new skill, write a skill, author a SKILL.md, or ask about skill structure, best practices, or skill file format. Works across IDEs (Cursor, Claude Code, OpenCode).
npx skillsauth add korchasa/ai-skel-ts flow-skill-engineer-skillInstall 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.
This skill guides through creating effective Agent Skills — markdown-based packages that teach AI agents specialized workflows, domain knowledge, and procedural capabilities.
Skills are self-contained packages (directory with SKILL.md) that extend agent capabilities with:
Skills work across multiple IDEs. Before creating a skill, determine the current environment and ask the user where to place it.
| Primitive | Scope | Claude Code | Cursor | OpenCode |
| :--- | :--- | :--- | :--- | :--- |
| Persistent Instructions | User | ~/.claude/CLAUDE.md | - | ~/.config/opencode/AGENTS.md<br>~/.claude/CLAUDE.md (fallback) |
| | Project | CLAUDE.md<br>.claude/rules/*.md | AGENTS.md<br>.cursor/rules/*/RULE.md<br>~~.cursor/rules/*.mdc~~ | AGENTS.md<br>CLAUDE.md (fallback)<br>opencode.json instructions |
| | Folder | subdir/CLAUDE.md<br>CLAUDE.local.md | subdir/AGENTS.md | - |
| Conditional Instructions | Project | .claude/rules/*.md | .cursor/rules/*/RULE.md<br>~~.cursor/rules/*.mdc~~ | opencode.json instructions (globs) |
| Custom Commands | User | ~/.claude/commands/*.md | ~/.cursor/commands/*.md | ~/.config/opencode/commands/*.md |
| | Project | .claude/commands/*.md<br>.claude/commands/<namespace>/*.md | .cursor/commands/*.md | .opencode/commands/*.md |
| Skills | User | ~/.claude/skills/<name>/ | ~/.cursor/skills/<name>/ | ~/.config/opencode/skills/<name>/<br>~/.claude/skills/<name>/ (fallback) |
| | Project | .claude/skills/<name>/ | .cursor/skills/<name>/ | .opencode/skills/<name>/<br>.claude/skills/<name>/ (fallback) |
| Event Hooks | User | ~/.claude/settings.json | ~/.cursor/hooks.json | ~/.config/opencode/plugins/*.{js,ts} |
| | Project | .claude/settings.json<br>.claude/settings.local.json | .cursor/hooks.json | .opencode/plugins/*.{js,ts} |
| MCP Integration | User | settings.json<br>managed-mcp.json | ~/.cursor/mcp.json | opencode.json mcp |
| | Project | .mcp.json | .cursor/mcp.json | opencode.json mcp |
| Context Ignoring | User | .claude/settings.json | - | - |
| | Project | - | .cursorignore | .gitignore<br>.ignore<br>opencode.json watcher.ignore |
| IDE | Personal Skills | Project Skills |
|-----|----------------|----------------|
| Cursor | ~/.cursor/skills/<name>/ | .cursor/skills/<name>/ |
| Claude Code | ~/.claude/skills/<name>/ | .claude/skills/<name>/ |
| OpenCode | ~/.config/opencode/skills/<name>/ | .opencode/skills/<name>/ |
OpenCode also reads skills from fallback locations: .claude/skills/, .agents/skills/, ~/.claude/skills/, ~/.agents/skills/.
.cursor/ directory → Cursor.claude/ directory → Claude Code.opencode/ directory or opencode.json → OpenCodeIMPORTANT: Never create skills in ~/.cursor/skills-cursor/ — reserved for Cursor internals.
Context window is shared with conversation, other skills, and user request. Every token competes for space.
Default assumption: the agent is already very smart. Only add context it doesn't already have.
Challenge each piece:
Prefer concise examples over verbose explanations.
| Freedom Level | When to Use | Example | |---------------|-------------|---------| | High (text instructions) | Multiple valid approaches, context-dependent | Code review guidelines | | Medium (pseudocode/templates) | Preferred pattern with acceptable variation | Report generation | | Low (specific scripts) | Fragile operations, consistency critical | Database migrations |
Every skill: required SKILL.md + optional bundled resources in a directory:
skill-name/
├── SKILL.md # Required - main instructions
├── references/ # Optional - detailed documentation
│ ├── api_reference.md
│ └── patterns.md
├── scripts/ # Optional - executable code
│ └── validate.py
└── assets/ # Optional - output resources
└── template.md
name and description fields. These determine when the skill triggers.| Type | Path | Purpose | When to Include |
|------|------|---------|-----------------|
| Scripts | scripts/ | Executable code (Python/Bash) | Same code rewritten repeatedly; deterministic reliability needed |
| References | references/ | Documentation loaded into context as needed | Detailed info too lengthy for SKILL.md |
| Assets | assets/ | Files used in output (templates, images, fonts) | Templates, boilerplate, images for final output |
No README.md, CHANGELOG.md, INSTALLATION_GUIDE.md, or other auxiliary docs. The skill contains only what the agent needs to do the job.
Three-level loading to manage context:
Keep SKILL.md under 500 lines. Split content into separate files when approaching this limit. Reference them clearly from SKILL.md with guidance on when to read them.
Important: Keep references one level deep from SKILL.md. Avoid deeply nested chains.
Description is critical for skill discovery. The agent uses it to decide when to apply the skill.
Third person (injected into system prompt):
Specific with trigger terms:
Include WHAT and WHEN:
| Field | Limit |
|-------|-------|
| name | Max 64 chars, [a-z0-9-] only, no leading/trailing/consecutive hyphens |
| description | Max 1024 chars, no angle brackets <> |
Provide output format templates when consistent structure matters:
## Report structure
ALWAYS use this template:
# [Title]
## Executive summary
[One-paragraph overview]
## Key findings
- Finding 1 with data
## Recommendations
1. Specific action
For output quality dependent on seeing examples:
## Commit message format
**Example 1:**
Input: Added user authentication with JWT tokens
Output: feat(auth): implement JWT-based authentication
Break complex operations into steps with checklists:
## Workflow
- [ ] Step 1: Analyze input
- [ ] Step 2: Create mapping
- [ ] Step 3: Validate
- [ ] Step 4: Execute
- [ ] Step 5: Verify
Guide through decision points:
1. Determine type:
**Creating new?** -> "Creation workflow" below
**Editing existing?** -> "Editing workflow" below
For quality-critical tasks:
1. Make edits
2. Validate: `deno run scripts/validate_skill.ts output/`
3. If fails -> fix -> validate again
4. Only proceed when validation passes
scripts/helper.py, not scripts\helper.pycode-review not helper or utilsGather from user:
If context from prior conversation exists, infer the skill from discussed workflows/patterns.
deno run -A scripts/init_skill.ts for scaffolding if starting from scratchRun validation:
deno run -A scripts/validate_skill.ts <path/to/skill-directory>
Checklist:
deno run -A scripts/package_skill.ts <path/to/skill-directory> [output-directory]
Creates a .skill zip file for distribution.
tools
Scaffold a complete AI agent application skeleton with LLM integration, tool calling, observability, cost tracking, session management, and content fetching using @korchasa/ai-skel-ts. Use when the user asks to create an AI agent, add LLM integration, scaffold an AI application, or mentions "ai-skel", "agent skeleton", or "AI scaffold". Works with any programming language.
testing
Create structured specification for large features using phased decomposition. Produces documents/spec-{name}.md with dependency-ordered phases, atomic tasks, explicit boundaries, and per-phase status tracking.
documentation
Guidelines for writing comprehensive Product Requirements Documents (PRD)
development
How to write in informational style