协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
skillify【开发与工程】When you want to create, adapt, or update an Agent Skill (Claude Code, Codex, Cursor, and other hosts) in one of your repos (listed in ~/.config/makerskills/skillify/repos.yaml; defaults to makerskills). Modes — CREATE (from chat, video, dump, or scratch) turns a workflow into a new skill. ADAPT ports an external skill with keep/adapt/add classificat…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
One skill, three modes. Routes automatically to the right one based on input signal.
Consolidates and replaces the prior create-skill, adapt-skill, and update-skill (all merged as of v0.2.0 for vocabulary-moat consistency with the -ify trifecta).
Route by signal:
| Signal | Mode |
|---|---|
| Invoked mid-conversation with substantive recent workflow discussion | CREATE / from-chat (default) |
/skillify from-video <url> OR /skillify + a video URL | CREATE / from-video |
/skillify from-dump + pasted brief/transcript/notes | CREATE / from-dump |
/skillify from-scratch <name> OR "make a new skill called X" with no context | CREATE / from-scratch |
/skillify <github-url> OR "adapt this skill" / "port this skill" / "fork this skill" + external source | ADAPT |
/skillify <existing-skill> <change> OR "update X skill" / "propagate this learning" | UPDATE / targeted |
/skillify update (mid-conversation) | UPDATE / from-chat — scan recent chat for learnings |
/skillify usage <skill> | UPDATE / usage — review recent runs, suggest improvements |
If ambiguous, ask before proceeding. Never guess between CREATE and ADAPT if there's an external URL involved.
Build a new skill from chat / video / dump / scratch.
| Sub-mode | What |
|---|---|
| from-chat (default) | Extract the skill from the workflow discussed in this conversation. Most common case. |
| from-video | User recorded a Loom / Zoom / screen-share. Calls watch-video in visual mode → transcript + key visual moments → SKILL.md. Best for visual/UI-heavy workflows. |
| from-dump | User pastes a brief, prior conversation transcript, exported chat, or notes. |
| from-scratch | Fresh idea with no source material — interactive Q&A. |
Don't reinvent SKILL.md format rules. For frontmatter, description-writing, references/ structure, and skill best practices:
compound-engineering:create-agent-skill (agent) — expert guidance for creating + editing Claude Code skillscompound-engineering:skill-creator (skill) — deeper guide for effective skillscompound-engineering:heal-skill (skill) — for fixing existing skillsCall those directly when in doubt about format. skillify orchestrates your workflow — which repo, which conventions, which cross-references. Format expertise lives upstream.
Load the user's sibling repo list from ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/skillify/repos.yaml if present. Otherwise default to makerskills (this repo). Example format:
# ~/.config/makerskills/skillify/repos.yaml
repos:
- name: makerskills
domain: Personal cross-cutting operator work
path: ~/code/makerskills
- name: marketingskills
domain: Generic marketing tactics
path: ~/code/marketingskills
Infer target if obvious from the skill's domain; ask if ambiguous.
from-chat:
from-dump:
from-video:
watch-video <url> visual — get transcript + key visual moments + summary.<workdir>/transcript.txt, <workdir>/moments.md, <workdir>/summary.md.second-brain as call-<slug>.md or note-<slug>.md.Heuristic: recording >10 minutes = process probably too big for one skill. Suggest splitting before drafting.
from-scratch: Interactive Q&A:
watch-video, read-book, paste)---
name: <kebab-case>
description: <rich, trigger-rich, ~2–4 sentences. Lead with "When you want to..." Include 4–8 trigger phrases in quotes. Differentiate from adjacent skills.>
metadata:
version: 0.1.0
---
Description rules (load-bearing — agents route by description match):
For deeper description-writing guidance, consult compound-engineering:skill-creator.
<target-repo>/skills/<name>/
├── SKILL.md
└── references/
└── ...
Body follows existing skills' pattern (pm, decide, second-brain):
# /<name> — <one-line purpose>## Step N — <phase> sectionsAppend to target repo's README skill table:
| [`<name>`](./skills/<name>/SKILL.md) | <one-line purpose> |
Commit + push. Report new skill path, commit hash, and reminder that /plugin install or symlink may need a refresh.
compound-engineering:heal-skill for a quality pass?"Port an external skill (GitHub URL, agentskills.io, local disk, or pasted SKILL.md) into your namespace.
Accept:
https://github.com/<owner>/<repo> or full path to SKILL.md)~/.claude/plugins/ in Claude Code, ~/.agents/skills/ or ~/.codex/skills/ elsewhere)# GitHub repo: clone shallow
git clone --depth 1 <url> /tmp/skillify-adapt-<short-id>/
# OR fetch a single file
gh api -H "Accept: application/vnd.github.raw" repos/<owner>/<repo>/contents/SKILL.md > /tmp/adapt-source.md
Capture the commit SHA so attribution can point at a stable revision.
Read source SKILL.md + any references/ it ships. Classify into three buckets per references/adapt-buckets.md:
| Bucket | What | Example |
|---|---|---|
| Keep verbatim | Format, schema, mechanic, scripts, frameworks | Question banks, ffmpeg flags, regex patterns, JSON schemas |
| Adapt | Tool defaults, paths, voice, naming, opinions | Their video tool → your watch-video, their kanban → your pm, their voice → your voice |
| Add | Cross-references to your existing skills, composition notes, your conventions | "Composes with decide," "Saves to second-brain raw/," "Uses MLX-Whisper local" |
Output classification as a table for approval before writing anything. Don't silently rewrite — surface the changes.
Read the source's LICENSE. Per references/adapt-license-check.md:
| License | Action |
|---|---|
| MIT / Apache-2.0 / BSD / ISC / CC0 | ✅ Green — proceed |
| MPL-2.0 / LGPL | 🟡 Yellow — adapt OK; warn about file-level reciprocity |
| GPL-2.0 / GPL-3.0 / AGPL | ❌ Red — contagion risk. Surface before proceeding. |
| Proprietary / no license | ❌ Red — stop. No legal basis to copy. |
| Unclear | 🟡 Yellow — ask, default to skip if uncertain |
For permissive licenses, attribution is the only requirement — handled in Step 6.
Same table as CREATE Step 3.
Keep verbatim: copy as-is; add <!-- from <source> --> marker if helpful.
Adapt:
watch-video, read-book, paste)pm, their video tool → watch-video, their note system → second-brain, their decision framework → decide~/outputs/ → your ~/Documents/<skill>-<...>/ convention; their config → your references/ patternAdd:
Write references/attribution.md:
# Attribution
- **Source**: <original SKILL.md URL>
- **Repository**: <repo URL>
- **Author**: <name + handle>
- **Commit SHA**: <SHA at time of adapt>
- **License**: <license name + URL>
- **Adapted**: <YYYY-MM-DD>
## What was kept verbatim
- ...
## What was adapted
- <old> → <new>
## What was added
- ...
## License compliance
<upstream LICENSE text if MIT/BSD/Apache requires it, OR reference where in this repo it lives>
## Upgrade path
Run `git ls-remote <repo-url> HEAD`. If SHA differs from above, re-run `/skillify <same-url>` for a 3-way merge.
For MIT / Apache / BSD, LICENSE text either gets copied into this file or the source LICENSE file gets copied to the skill dir.
Same as CREATE Steps 6–7. Commit message: "Adapt <name> skill from <source-name>".
compound-engineering:heal-skill for a QA pass?"loopify?"Improve existing skill(s) from learnings.
| Sub-mode | When |
|---|---|
| from-chat (default) | Scan recent conversation for learnings, identify affected skill(s) |
| from-dump | User provides a brief, feedback, transcript, postmortem |
| targeted | User names the skill + change directly. Skip discovery. |
| usage | Review recent runs of the named skill, identify gaps |
Default when invoked mid-conversation with substantive recent activity: from-chat.
For from-chat / from-dump / usage: look for change-worthy signals (full taxonomy in references/update-change-types.md):
Output: a clear list of N learnings, each phrased as a single change.
For targeted: skip extraction — user already named the change.
For each learning, search across all SKILL.md + references/ in the current repo (and optionally all sibling repos from your repos.yaml with --cross-repo):
grep -rln "<key terms>" ~/code/makerskills/skills/ --include="*.md"
# Across all sibling repos (list yours in $MAKERSKILLS_CONFIG/skillify/repos.yaml):
config="${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/skillify/repos.yaml"
for raw in $(yq -r '.repos[].path' "$config"); do
repo="${raw/#\~/$HOME}" # expand leading ~ to $HOME so grep resolves the real path
grep -rln "<terms>" "$repo/skills/" --include="*.md" 2>/dev/null
done
Classify by confidence:
| Confidence | What | Action |
|---|---|---|
| High | Direct keyword match + clearly same topic | Propose change |
| Medium | Adjacent topic — rule might apply | Surface for explicit approval |
| Low | Tangential — rule could be stretched | Mention but don't propose |
See references/update-propagation.md for the cross-skill propagation playbook.
For each learning: is this skill-specific or a broader principle?
| Type | Where it goes |
|---|---|
| Skill-specific rule | Edit the SKILL.md / references file directly |
| Cross-cutting principle | feedback_<topic>.md in the memory store (agent memory, or ${MAKERSKILLS_MEMORY:-${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/memory}/) |
| Both | Write the memory file AND update the skill(s) that immediately apply |
Example: "links go in first comments, not body" → applies to jab-hook AND is a broader social principle → both update jab-hook AND save feedback_social_link_placement.md.
Offer the memory write explicitly: "This looks like a principle, not just a skill rule. Save to memory as feedback_<slug>.md?"
For each affected file, show change as before/after or unified diff:
### `skills/<skill>/SKILL.md` — proposed change
**Before** (lines NN–NN):
> <existing text>
**After**:
> <new text>
**Why**: <one-line rationale>
**Version bump**: 0.2.0 → 0.2.1 (PATCH — clarification)
**Approve / edit / skip?**
Per-file approval. Don't batch — small changes are easy to OK; bundling forces all-or-nothing.
See references/update-versioning.md for semver rules.
Edit to apply the exact changemetadata.version per the suggested levelBatch multiple file changes within one skill into a single commit.
Group by skill. Examples:
"slide-deck: emphasize spoken-aloud voice (write for the ear, not the page)""jab-hook, marketingskills:social: link placement (no inline URLs)"Show:
compound-engineering:heal-skill would be a useful QA passDon't add ceremony to surgical edits. If the user says "add this one bullet to X.md," just Edit. UPDATE mode earns its keep when:
For one-line updates with no cross-skill implications: just Edit.
watch-video — load-bearing for CREATE / from-video. Visual-mode output (transcript + key visual moments + summary) is the input for skill synthesis. Always call in visual mode for process recordings — UI state matters as much as words.second-brain — optionally capture source video/dump as raw/call-<slug>.md or raw/note-<slug>.md so the source artifact lives alongside the skill it produced.toolify — sibling in the -ify trifecta. Use toolify when the goal is adding an integration/MCP/API, not authoring a skill.loopify — sibling in the -ify trifecta. Use loopify for agent-loop setup rather than a skill.compound-engineering:create-agent-skill (agent) — call for format and best-practices expertisecompound-engineering:skill-creator (skill) — deeper best-practices referencecompound-engineering:heal-skill (skill) — QA pass after any modewatch-video, read-book, paste). Single-word noun names are fine for distinctive concepts (decide, pm, paste, skillify).${MAKERSKILLS_MEMORY:-${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/memory}/, never a hardcoded Claude Code memory path.CLAUDE.md or AGENTS.md for user-owned schema/config docs.open, MLX) — e.g. wl-copy/xclip, xdg-open, faster-whisper.references/attribution.md.