Create, maintain, or migrate functional skills; supports creating from a requirement brief and migrating an existing legacy skill directory into a functional skill structure.
npx skills add https://github.com/AGI-comming/functional-skill-creator --skill fskill-creator
Unify the create and migrate lanes to produce a self-contained, reviewable, testable functional agent skill directory. The main skill handles routing, blueprint normalization, shared artifact generation, runtime capability provisioning, file writing, and validation; sub-skills only handle pre-analysis for their respective input forms.
Use this skill when the user wants to "generate a functional skill", "create a functional skill", "add functions to an existing functional skill", or "migrate an existing legacy skill directory into a functional skill".
SKILL.md only orchestrates the shared create / migrate / enhance / validate workflow.skill_blueprint.functions/*.md; create / migrate specific pre-behavior lives in sub-skills/*/functions/*.md.references/*.md.scripts/.add_runtime_capabilities.| Sub-skill | When | Responsibility | Output |
|---|---|---|---|
| sub-skills/create | User provides a new skill brief or wants to enhance an existing functional skill | Normalize requirements, target path, inputs/outputs, constraints, and viewer choices | create_context |
| sub-skills/migrate | User provides a legacy skill directory, monolithic skill content, or a migration request | Load the legacy skill package, identify behaviors that must be preserved, propose function boundaries and evidence | migration_context |
Sub-skills do not directly write final target skill files. Their output must go through normalize_skill_blueprint before entering the shared artifact pipeline.
| Resource | Load Timing | Purpose |
|---|---|---|
| shared_glossary | On demand | Stable terminology and cross-lane field semantics. |
| script_rules | Before designing or drafting scripts | Rules for deciding whether deterministic work belongs in scripts/. |
| sub-skills/create | Create lane | Form create_context from user brief. |
| sub-skills/migrate | Migrate lane | Form migration_context from a legacy skill directory. |
| Field | Source | Description |
|---|---|---|
| task_mode | user or derived | create, migrate, enhance, or validate; inferred by resolve_task_mode when absent. |
| skill_request | user | Requirement description for creating or enhancing a skill. |
| legacy_skill_dir | user or repository | Path to an existing legacy skill directory containing SKILL.md and optional companion files. |
| legacy_skill_path | user or repository | Deprecated alias for legacy_skill_dir; may also be a direct path to SKILL.md, which resolves to its parent directory. |
| legacy_skill_content | user | Legacy skill markdown provided when the path is inaccessible. |
| target_skill_path | user or derived | Directory where the functional skill should live. |
| skill_name | user or derived | Optional target skill name. |
| existing_skill_files | repository | Optional existing functional skill files. |
| migration_constraints | user | File names, tone, platform rules, or behaviors that must be preserved during migration. |
| known_testcases | user or repository | Existing examples, traces, or expected behaviors. |
| existing_scripts | repository | Helper scripts associated with the legacy skill. |
| include_report | user | Whether to generate report log runtime in the target skill; defaults to true. |
| include_unittest | user | Whether to generate unittest / testcase runner in the target skill; defaults to true. |
| script_runtime | environment | Whether this skill's own Node.js scripts can be run. |
| report_mode | user | off, local, or remote; defaults to off. |
Viewers are generated following the capability flags: tools/log_viewer.mjs when include_report=true; tools/tester_viewer.mjs when include_unittest=true.
| Step | Function | Purpose | Input | Output |
|---:|---|---|---|---|
| 1 | resolve_task_mode | Determine whether this request should go through create, migrate, enhance, or validate. | task_mode<br>skill_request<br>legacy_skill_dir<br>legacy_skill_path<br>legacy_skill_content<br>existing_skill_files | task_context |
| 2A | sub-skills/create::collect_create_brief | Create/enhance lane: normalize user brief. | skill_request<br>target_skill_path<br>skill_name | create_context |
| 2B | sub-skills/migrate::load_legacy_skill + map_existing_behavior + propose_function_split + extract_shared_references | Migrate lane: read the legacy skill package, extract behaviors and migration evidence. | legacy_skill_dir<br>legacy_skill_path<br>legacy_skill_content<br>migration_constraints<br>include_report<br>include_unittest<br>script_runtime | migration_context |
| 3 | normalize_skill_blueprint | Converge create / migrate / enhance inputs into a unified blueprint. | task_context<br>create_context<br>migration_context<br>target_skill_path<br>include_report<br>include_unittest | skill_blueprint |
| 4 | design_skill_structure | Design function pipeline, references, scripts, testcases, and file layout based on blueprint. | skill_blueprint<br>existing_skill_files<br>script_rules | skill_structure<br>script_plan<br>tool_plan |
| 5 | draft_skill_artifacts | Draft SKILL.md, function contracts, references, script specs, and testcase suggestions. | skill_blueprint<br>skill_structure<br>script_plan | skill_artifacts |
| 6 | add_runtime_capabilities | Provision report log, runtime wrapper, unit testcase runner, viewer, and smoke tests according to include flags. | skill_blueprint.include_report<br>skill_blueprint.include_unittest<br>skill_artifacts | runtime_artifacts<br>skill_artifacts |
| 7 | assemble_skill_files | Generate or update target skill directory files. | target_skill_path<br>skill_structure<br>skill_artifacts<br>runtime_artifacts<br>script_runtime | file_plan<br>created_files<br>updated_files |
| 8 | validate_skill | Validate functional-skill structure, runtime capabilities, testcases, and migration behavior preservation. | target_skill_path<br>file_plan<br>skill_blueprint<br>report_mode | validation_result |
This skill may read legacy skills and create or modify functional skill files under target_skill_path. Do not delete the original legacy skill unless the user explicitly requests deletion; do not modify unrelated repository files unless the user explicitly requests project-level integration.
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take agi-comming/fskill-creator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.