--- name: fusion-skill-authoring description: 'Creates or modernizes repository skills with clear activation cues, purposeful support files, and practical review loops. USE FOR: creating a new skill, tightening an existing skill, improving discovery wording, and structuring references/assets/optional helper agents when they genuinely add value. DO NOT USE FOR: product-code changes, routine copy edits outside skills/, or documentation that should not become an installable skill.' license: MIT compatibility: Works best in repositories that can inspect their local skill catalog and run catalog-specific validation commands. Optional helper agents are most useful in Anthropic-compatible runtimes or other clients that support skill-local agents/subagents. metadata: version: "0.3.4" status: active owner: "@equinor/fusion-core" tags: - skill-authoring - scaffolding - greenkeeping mcp: suggested: - github --- # Create or Modernize Skills ## When to use Activate when creating a new skill under `skills/`, or when an existing skill needs a material authoring refresh. Typical triggers: - "Create a skill for ..." - "Scaffold `skills//SKILL.md`" - "Turn this workflow into a reusable skill" - "Improve this skill's metadata and activation cues" - "Make this skill easier to discover" - "Set up references/assets/helper agents for a skill" Implicit triggers: - Recurring task keeps requiring the same instructions or safety boundaries - Existing skill is too vague, too long, poorly routed, or missing structure - User wants a reusable workflow package, not a one-off prompt ## When not to use - Editing product or application code outside `skills/` - Tiny typo-only edits that don't need authoring workflow help - Requests better solved as docs, templates, or scripts without an installable skill - Large unrelated repo refactors - Destructive commands or hidden network automation ## Required inputs If required inputs are missing, ask concise targeted questions first. Use `assets/follow-up-questions.md` as the default question bank. ### Mandatory Collect before drafting: - Whether this is a new skill, update, or not a skill at all - Target repo path and intended skill directory - Base skill name in kebab-case before any prefix/namespace - Final skill name in kebab-case; default to `custom-` unless repo has different convention - One-sentence purpose and user outcome - Concrete activation cues: trigger phrases, domain keywords, anti-triggers - Expected output: files, commands, or decisions the skill produces - Safety boundaries and approval requirements ### Conditional Collect when relevant: - Naming prefix, namespace, or catalog convention - Skill category: capability uplift or workflow/encoded preference - Composition: standalone, orchestrator, or subordinate - Repository-specific ownership, lifecycle, or release policy - Orchestrator relationship: `metadata.orchestrator` for subordinates, `metadata.skills` for orchestrators - Target status (`active`, `experimental`, `deprecated`, `archived`) - `compatibility` text when skill has real environment constraints - MCP requirements (`metadata.mcp.required` / `metadata.mcp.suggested`) - Whether helper agents in `agents/` would sharpen scoping, review, or trigger tuning - Whether deterministic automation justifies a `scripts/` directory ### Optional Capture if useful: - `metadata.sponsor` as backup accountability if catalog uses it - Starter assets, checklists, examples, or templates - Related issue follow-up if an almost-match exists and should be improved instead of duplicated ### Metadata and structure constraints Validate before writing files: - `name`: 1-64 characters, lowercase letters/numbers/hyphens only, must match the folder name, no leading/trailing hyphen, no consecutive hyphens, no XML tags, and no reserved words - If the target repository has no prefix or namespace convention, default new skills to `custom-` - `description`: non-empty, <= 1024 chars, third-person, no XML tags, states both what the skill does and when to use it - Prefer a single-quoted YAML string with inline `USE FOR:` and `DO NOT USE FOR:` cues - Example: `description: 'Drafts release notes from validated repository context. USE FOR: release summaries, changelog preparation. DO NOT USE FOR: publishing releases or editing product code.'` - `metadata.version`: follow the target catalog's starting-version rule; if no local rule exists, `"0.0.0"` is a safe default for a new skill - `metadata.owner`: include only when the target catalog requires explicit ownership; use a stable GitHub identity or equivalent team handle - `metadata.status`: include only when the target catalog tracks lifecycle state; if used, keep it to `active`, `experimental`, `deprecated`, or `archived` - `metadata.tags`: keep tags relevant, lowercase, and kebab-case - `metadata`: use simple key/value metadata unless a relationship field explicitly needs a list or map - `license`: optional top-level field - `compatibility`: optional top-level field; only include it when the skill has real runtime, network, tool, or product constraints Repository-specific prefix rules, ownership/lifecycle requirements, release policy, and validation commands belong in repo-local instructions or catalog docs, not in the portable skill package. ## Instructions ### Step 1 — Decide whether this should be a skill at all 1. Check existing catalog first: - If an existing skill covers the request, recommend reuse or update instead of a duplicate - If a skill almost matches, recommend improving it or opening an issue 2. Don't scaffold if the request is better handled as: - plain repository documentation, - a template/checklist with no reusable agent behavior, - a standalone script with no skill-routing value, or - a tiny copy edit to an existing skill ### Step 2 — Define representative requests before drafting Capture at least three representative requests before writing long instructions: - the user request or trigger phrase, - the behavior the skill should produce, - the mistake or gap the skill must prevent. Use these as acceptance criteria. If you can't define realistic requests, the scope is underspecified or not reusable enough to become a skill. ### Step 3 — Classify the skill and choose the smallest valid structure Decide skill type: - `capability uplift`: packages domain knowledge, tools, or reference material - `workflow / encoded preference`: packages sequencing, review gates, style rules, or mutation order Decide composition: - `standalone`: no coordinating skill required - `orchestrator`: routes to companion skills, owns shared gates - `subordinate`: runs only under its orchestrator — document that dependency Choose minimum folder structure: - `SKILL.md` always - `references/` for long guidance, examples, tables, or platform-specific details - `assets/` for templates, checklists, sample outputs, and static files - `agents/` for specialized helper roles when runtime supports skill-local agents - `scripts/` only when deterministic automation materially improves safety or reliability Keep references one level deep. Don't create nested chains that force partial reads. ### Step 4 — Draft the minimum viable `SKILL.md` Write the smallest useful main document first: - concise frontmatter with strong discovery cues - `When to use` and `When not to use` - `Required inputs` - `Instructions` - `Expected output` - `Safety & constraints` Keep under 300 lines. Different runtimes have different context limits — files over 300 lines risk degradation on smaller runtimes and trigger CI warnings. Files over 500 lines fail CI. Move overflow to `references/` early. Prefer concise, specific instructions over background explanation. Assume the agent is capable; only add context it won't reliably infer. Set degree of freedom intentionally: - high freedom for context-dependent analysis or review - medium freedom when a preferred pattern exists but adaptation is expected - low freedom when workflow is fragile, safety-critical, or sequence-sensitive Include at least one concrete example in `SKILL.md` or link to one in `references/`. ### Step 5 — Add supporting files only when they reduce ambiguity Move long or specialized content out of `SKILL.md`: - `references/` for deep guidance, large examples, API/platform notes, or long checklists - `assets/` for templates and reusable artifacts - `agents/` for helper set when runtime supports skill-local agents and workflow benefits from scoped second opinion - `scripts/` for deterministic operations that should be executed instead of regenerated If you add scripts: - document dependencies and side effects, - validate inputs and fail with actionable errors, - keep network access explicit and justified, - never use remote-code execution patterns. If runtime ignores bundled helper agents, follow the same roles inline. If skill depends on MCP, declare in `metadata.mcp` and document client-specific tool naming in skill content. ### Step 6 — Validate discovery, structure, and local policy Run validation supported by the target environment after authoring changes: - inventory or schema validation for the skill catalog, if available - repo or catalog policy checks for naming, ownership, lifecycle, or composition metadata - script, GraphQL, lint, or test validation when skill touches those surfaces If no dedicated skill tooling: - read `SKILL.md` and every directly referenced file end-to-end - verify each representative request would trigger the skill correctly - verify every referenced file path and workflow assumption is valid Use representative requests from Step 2 to review: - Does the description trigger on the right requests and avoid false positives? - Can the agent locate all directly referenced files without chasing nested links? - Are outputs, approval gates, and safety constraints explicit? If subagents are available: - `agents/scoper.md` before drafting to decide create vs update vs not-a-skill - `agents/devils-advocate.md` during scoping and drafting to surface key concerns, or full structured interview when user asks to be grilled or significant ambiguity detected - `agents/reviewer.md` after drafting to review discovery, structure, safety, and validation evidence - `agents/trigger-tuner.md` when the main risk is weak activation cues After portable package is correct, apply any repository-specific release or versioning rules. ### Step 7 — Report what changed and what still needs input Return authoring result as explicit contract: - what was created or updated, - how the skill was classified, - which representative requests were used as acceptance criteria, - which helper agents were used, if any, - which validation commands ran and what they proved, - any unresolved questions or recommended follow-up issues. ## Core behavior to preserve - Reuse before creation - Portable first, repository overlays second - Representative requests before long-form wordsmithing - Progressive disclosure instead of overloading `SKILL.md` - Explicit safety and approval gates for risky actions - Real validation evidence instead of assumed correctness ## Optional helper agents Borrowed from Anthropic `skill-creator` pattern but narrowed to Fusion-specific scoping, review, and trigger tuning. - `agents/scoper.md` — decide new skill vs update vs not a skill; choose smallest folder structure - `agents/reviewer.md` — review drafted skill against discovery, structure, safety, and validation - `agents/trigger-tuner.md` — sharpen description wording; compare activation-cue variants - `agents/devils-advocate.md` — always-on quality collaborator; moderate mode during authoring, interrogator mode when asked or significant ambiguity detected If runtime offers no subagents, keep the same review loop inline. ## Examples - User: "Create a skill for drafting incident retrospectives." - Result: create a new workflow-oriented skill in the target catalog, define at least three retrospective authoring scenarios, scaffold `SKILL.md`, and add `assets/` only if templates are needed. - User: "Improve the activation cues and structure of `fusion-skill-authoring`." - Result: update the existing skill, refresh supporting references/assets, and run the target repository's validation flow. - User: "Add a new CLI flag to the application." - Result: do not use this skill because the request is product-code work, not skill authoring. ## Expected output Return: - Created or updated file paths - Skill classification: new/update/not-a-skill, capability vs workflow, standalone/orchestrator/subordinate - Final activation cues and anti-triggers used - Chosen folder structure and rationale - At least three representative requests used as acceptance criteria - Which helper agents were used, if any - Validation commands run, pass/fail status, and interpretation - Repository-specific overlays applied after portable draft - Follow-up actions, unresolved questions, or recommended issue links See `references/skill-template-baseline.md` for default folder structure and baseline template. ## Validation See `references/validation-signals.md` for success signals, failure signals, and recovery steps. ## Skill Readiness Checklist Use `assets/skill-readiness-checklist.md` as final-quality checklist. Repository-specific PR requirements belong in repository instructions, not in the installable skill asset. ## Safety & constraints Never: - Request or expose secrets or credentials - Run destructive commands without explicit user confirmation - Invent validation results or evaluation evidence - Modify unrelated files outside the requested scope - Add hidden network access, remote-code execution, or unsafe script guidance Always: - Keep `SKILL.md` concise; move overflow to direct references - Make the discovery contract explicit in the description - Prefer deterministic validation loops over hand-wavy advice - Keep helper agents tightly scoped; core workflow still works when runtime doesn't invoke them - Respect target catalog's naming, ownership, lifecycle, and release policy