agentleFS
Surething-ioSurething-io/cockpit/skills/skillify/SKILL.md

skillify

Skill44 starsChanged 8 months agoMITView on GitHub

Distil a proven workflow from this conversation into a reusable Skill file.

51 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use plan-tune, ios-clean and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • ShreyRaviSkill

    plan-tune

    Self-tuning question sensitivity + developer psychographic for gstack (v1: observational). Review which AskUserQuestion prompts fire across gstack skills, set per-question preferences (never-ask / always-ask / ask-only-for-one-way), inspect the dual-track profile (what you declared vs what your behavior suggests), and enable/disable question tuning. Conversational interface — no CLI syntax required.

    Also in 9 projects that use this

  • Saqlain-811Skill

    ios-clean

    Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)

    Also in 5 projects that use this

  • Saqlain-811Skill

    ios-fix

    Autonomous iOS bug fixer. (gstack)

    Also in 5 projects that use this

  • ShreyRaviSkill

    landing-report

    Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing report", "what's in the queue", "show me open PRs", or "which version do I claim next". (gstack)

    Also in 8 projects that use this

  • timurgaleevSkill

    document-generate

    Generate missing docs for a feature, module or project as tutorials, how-tos, reference and explanation.

    Also in 7 projects that use this

  • bastosSkill

    ios-design-review

    Review iOS app UI/UX design quality using Apple's design principles and the Liquid Glass-era design language from WWDC25/26. Use when asked for a design review, UX critique, visual design assessment, or evaluation of an app's interface quality, design intent, alignment with the new Apple design system, or usability. Triggers: "design review", "UX review", "visual design critique", "review the UI", "does this design work", "evaluate this interface", "design feedback", "Liquid Glass review".

    Also in 5 projects that use this

  • +1 more from Saqlain-811
  • +5 more from ShreyRavi

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 11 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 44 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If discovery / decision / solution all surface candidates in one scenario, decide whether they go into one closed-loop skill or split into …

    line 56
  2. Distinctive:

    Third state (need both): when the loop must stay intact but a phase needs depth / reuse, use orchestrator + leaf — one closed-loop skill …

    line 63
  3. Distinctive:

    Do NOT: write one-off details into the skill (a transient session, a full specific chat, a temporary verification code, etc.).

    line 77
  4. Distinctive:

    Trigger: when this skill should be used

    line 87
  5. Distinctive:

    Write principles, not a play-by-play.

    line 95
  6. Distinctive:

    Use the generic-compatible frontmatter:

    line 103
  7. Distinctive:

    Don't write dead behaviors like "after reading, tell the user the rules are loaded".

    line 134
  8. Distinctive:

    Keep concrete paths, APIs, command examples, but scrub one-off sensitive data.

    line 136
  9. Distinctive:

    Prefer 3D / color / skeuomorphic style, consistent with existing visuals.

    line 141
  10. Distinctive:

    No ad-hoc hand-drawn SVG stand-ins unless the user explicitly asks.

    line 144
  11. Distinctive:

    Not given → ask now where to put it.

    line 151
  12. Very specific:

    When done, briefly report: skill slug, source path (<skills-dir>/<slug>/SKILL.md), whether an icon was added, whether helper scripts/data …

    line 179

“Common” is measured: kept by at least 6 in 10 of the 44 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skillify

Abstract "the thing you just pulled off" into a reusable skill. This is an analyze → extract → save flow:

  • Step 1 is always analysis: first decide whether the conversation / recent context holds knowledge worth distilling into a skill. If not, say so and stop — never force it.
  • The placement directory and other args are only needed at the final save step — do NOT front-load a "where should it go?" question.

Applies when the user says: "abstract this into a skill", "write up what we just learned as a skill", "do this automatically next time", "skillify this", "capture this workflow".

Core goal: turn a one-time success into a stable procedure, not copy a transient chat into a prompt.

Arguments (all optional; used only at save time)

  • Trailing text (after /skillify) = the object / lead to skillify; if omitted, distil from recent context.
  • Placement directory <skills-dir> = where the skill lands; the canonical source goes to <skills-dir>/<slug>/SKILL.md. Only needed at the "save" step; ask only if the user hasn't provided it — never ask before analysis.

Step 1: Analyze — is there knowledge worth capturing (scan → gate)

Answer "should this even be extracted" first. Most candidates die here, not in the writing.

1a. Three-phase scan: don't miss invisible skills

Review what you just did, sweeping each phase once, asking one question per phase: is there a "non-obvious action / judgement" here?

PhaseWhat to scanWhy it's easily missed
DiscoveryHow did you locate / trigger / diagnose the real problem? Which signal did triage use?No visible deliverable — most often missed
DecisionWhat justified the judgement call at the sticking point? Any reusable criterion?Treated as "intuition", not realized it can be codified
SolutionIs the execution skeleton / tool-combo / verification reusable?Visible — easiest to fixate on

The scan is about breadth, anti-omission: people naturally notice only "solution" (it has deliverables), while "discovery / decision" — the diagnosing and judging moves — are high-value yet invisible.

The three phases are only for scanning candidates, not chapters in SKILL.md. The body should be organized by failure mode / investigation action, not by these three categories.

1b. The real gate: don't over-extract

For each candidate, all four must pass:

  • Recurs: will you hit this kind of scenario again? (One-off → a note is enough, no skill.)
  • Non-obvious: is there an action / judgement you "wouldn't know without looking it up"? (Obvious things aren't worth codifying.)
  • Cost: is the cost of getting it wrong / missing it high?
  • Stable: is the procedure stable, not bound to this session's transient context / data?

Missing "non-obvious" or "recurs" → basically drop it.

If nothing passes the gate → tell the user "not worth a skill this time", explain why, and stop. Do not force a deliverable, and do not ask for a placement directory at this step.

1c. Merge or split: the boundary question

If discovery / decision / solution all surface candidates in one scenario, decide whether they go into one closed-loop skill or split into a combination:

  • Will any single phase be invoked alone? Yes → split; always entered from the top → lean merge.
  • Is the value inside a phase or at the handoff? At the handoff (upstream expected-state / contract must reach downstream for verification) → merge; each phase self-contained, handoff carries no info → splittable.
  • Would merging make one unit carry orthogonal failure modes? Yes (e.g. static breadth vs dynamic-reasoning depth) → split.
  • Does this phase run first in other problems too? Fan-out ≥2–3 → split into a reusable leaf.

Third state (need both): when the loop must stay intact but a phase needs depth / reuse, use orchestrator + leaf — one closed-loop skill holds the contract and verification, delegating orthogonal phases to reusable sub-skills.

Default to one closed-loop skill. Split only on a real signal (a phase reused by a second scenario, or attention spread too thin for depth).

1d. Classify: decides how to write, not whether to extract

TypeExampleSkill focus
Investigationpull sources → build timeline → locate issueevidence sources, steps, output template
Debugreproduce → red test → fix → verifyinvariants, tests, acceptance
Tool-combochain multiple log/monitor/analysis toolsquery order, correlation IDs
Habit/conventiondirectory structure, naming, placementpath rules, naming rules
Writing templateissue / PR / retro reportstructure, tone, prohibitions

Do NOT write one-off details into the skill (a transient session, a full specific chat, a temporary verification code, etc.).

Step 2: Extract — distil stable principles and draft

If 1c decided on a split or orchestrator + leaf, run Step 2 once for each skill to land (each its own directory).

2a. Distil stable principles

Break the experience into:

  • Trigger: when this skill should be used
  • Input: what the user might provide, what to ask when it's missing
  • Evidence sources / tools: which sources, files, CLIs, logs to check
  • Steps: the stable, reusable execution order
  • Output: what to hand the user, or what artifact to create
  • Boundaries: what NOT to do, when to stop / ask
  • Verification: how to confirm the skill worked

Write principles, not a play-by-play.

2b. Choose a slug

Slug: lowercase, alphanumeric + hyphen, short and clear, verb/task- or topic-oriented. Before drafting, ls <skills-dir>/ to avoid collisions and match existing naming style (when the save dir is known).

2c. Draft SKILL.md

Use the generic-compatible frontmatter:

---
name: <slug-or-display-name>
description: "One line: what the skill does and when to use it."
argument-hint: "<optional, describe args>"
alwaysAllow: ["Bash"]      # optional
requiredSources: []         # optional
---

Suggested body structure:

# <Skill Name>

One-line goal.

## Trigger / When to use
## Preconditions
## Workflow / Steps
## Output format
## Boundaries & prohibitions
## Verification
## Examples

Writing style:

  • Instructions must be executable, not vague.
  • Don't write dead behaviors like "after reading, tell the user the rules are loaded".
  • Action-type skills proceed by default; ask only when a key argument is missing.
  • Keep concrete paths, APIs, command examples, but scrub one-off sensitive data.
  • Match the existing style of the target skill library.

2d. Icon (optional)

  • Prefer 3D / color / skeuomorphic style, consistent with existing visuals.
  • Recommended source: Microsoft Fluent Emoji.
  • Filename must be icon.svg/icon.png/icon.jpg/icon.jpeg, placed in the skill directory.
  • No ad-hoc hand-drawn SVG stand-ins unless the user explicitly asks. If none fits, ask first — don't force one.

Step 3: Save — land it in the given directory

Only now do you need the placement directory <skills-dir>:

  • User gave a directory up front → use it directly.
  • Not given → ask now where to put it; do not pick a directory on your own.

Conventions:

  1. One skill, one directory: <skills-dir>/<slug>/SKILL.md (required) + optional icon.svg / references/ / helper scripts.
  2. Never drop a SKILL.md directly in the <skills-dir> root: even a single-file skill gets its own subdirectory.
  3. Keep helper data/scripts in the same directory so the skill is self-contained.
mkdir -p <skills-dir>/<slug>
# write SKILL.md into that dir; include helper scripts/data if any

<skills-dir>/ IS the canonical source — no need to symlink elsewhere.

Verification

ls -la <skills-dir>/<slug>/
  • SKILL.md exists, frontmatter valid, name/description non-empty
  • Body non-empty with executable steps
  • No hardcoded sensitive info (accounts, tokens, transient session ids)
  • Slug doesn't collide with an existing one

Output to the user

When done, briefly report: skill slug, source path (<skills-dir>/<slug>/SKILL.md), whether an icon was added, whether helper scripts/data are included. Don't paste the full SKILL.md unless asked.

Key principles

  • The user wants a captured capability, not a copied conversation.
  • Analysis first: decide whether there's knowledge worth capturing; if not, stop — don't force it, and don't ask for a directory early.
  • The canonical source always lives in <skills-dir>/<slug>/; even a single-file skill gets its own subdirectory.
  • Distinguish fact / hypothesis / to-be-confirmed; don't hardcode a solution too early.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.