brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
publish-skillUse when turning a personal agent skill into an open-source, distributable one. Runs a PII audit, generalizes personal details, checks licence compatibility, reviews cross-platform adapters and walks through packaging.
Independent GitHub snapshot · Automated classification · Original documentation governs
Collect from the user:
~/.claude/skills/my-skill/ or ~/.agents/skills/my-skill/)~/workspace/<your-package>/)SKILL.md from the source skill directoryls -R)| File | Lines | Type | Notes |
|------|-------|------|-------|
Make every later fix on a working copy (<cleaned_skill_path> below) or in the target directory.
NEVER modify the source skill in place, because it is the user's working original.
Gate: User confirms source skill and target package before proceeding.
Before spending effort on PII scrubbing and generalization, confirm the workflow is worth distributing as a skill at all. Apply all three gates:
| Gate | Question | Pass condition |
|---|---|---|
| Uniqueness | Could a competent user get the same result by searching the web for ~5 minutes, or by asking a general assistant with no skill installed? | No |
| Specificity | Does it encode a workflow, decision heuristic, constraint, or convention specific to this domain or a recurring task — rather than a generic code snippet or a standard-library example? | Yes |
| Effort | Did discovering it take real debugging, study design, operational effort, or a reviewer-anticipation lesson (a pitfall, a verification step, a domain convention)? | Yes |
Gate: Any "no" (or "yes" on the inverse) stops publication — recommend documentation or a memory note instead. If the value is real but the skill delegates to private agents, route through Phase 1's orchestrator finding (refactor to standalone first). Only a clear three-way pass proceeds.
references/ come from external sources (published guidelines, textbooks, standards bodies)?| Finding | Action |
|---|---|
| Fully original | Proceed to Phase 2 |
| Adapted with compatible license | Add attribution header, proceed |
| Contains non-compatible third-party content | Flag for removal or URL reference conversion |
| Orchestrator with private agent references | STOP -- requires refactoring to standalone first |
| Competitive/proprietary logic | STOP -- not suitable for open-source |
Zero tolerance: the skill must have exactly 0 PII matches before proceeding.
Before running, ask the user for everything unique to them that should also count as a PII hit:
<First Last>|<native-script name>)<Institution>|<Hospital>)Combine the inputs into a single grep -E alternation pattern (pipe-separated).
Run the bundled audit script. The first argument is the skill directory; the second is the user-specific alternation pattern from Pre-scan Setup.
bash ${CLAUDE_SKILL_DIR}/scripts/audit_skill.sh --strict <source_skill_path> \
"<First Last>|<native-script name>|<Institution>|<Hospital>"
The script scans ten categories, plus the user pattern:
/Users/<name>/, /home/<name>/, ~/Documents, ~/Desktop, ~/Downloads, ~/Projects)*.internal, *.local, *.corp)professor <Surname>, Prof. <Surname>, Dr. <Surname>, PGY[0-9], <한글이름> 교수님)> YYYY-MM-DD ... lines that reveal an internal review timeline)<Surname>{Year}_* pattern, e.g., <Surname>2025_<Journal>_Fig01.png; allow-list excludes generic tokens like Issue2024_, Sample2025_)exiftool for home paths, email addresses and the user pattern, matched case-insensitively. If binaries are present and exiftool is not installed, the RESULT line reads INCOMPLETE and --strict exits 3)Exit codes: 0 clean, 1 findings, 2 usage error / invalid user regex / a scan that could not run, 3 (--strict only) a check that could not run. Only exit 0 means clean.
Known limits: the Korean role branch (item 5) requires the honorific -nim suffix. A bare third-person mention (a Korean name followed by the role word without -nim) is not caught by this script, because separating it from job descriptions such as "advising professor" needs a stoplist that grep -E cannot express. Check such mentions by hand.
For categories the script flags, also verify manually with the Grep tool against ${CLAUDE_SKILL_DIR}/references/pii-patterns.md. Pay particular attention to:
CK-NN, MA-NN, dated cohort namesPresent all findings in a remediation table:
| # | File:Line | Category | Match | Suggested Fix |
|---|-----------|----------|-------|---------------|
Gate: User reviews all findings. Fix each one in the working copy. Re-run the audit on the working copy. Proceed only when 0 hits are confirmed.
"in Korean" / "한국어로" / "Korean language" → "in the user's preferred language""communicate in [specific language]" → "Communicate with the user in their preferred language"metadata.triggers field (or the target package's equivalent) (these aid discovery)"radiology researcher" → "medical researcher" (if the skill is domain-general)"professor" / "fellow" → "researcher" or "user" (context-dependent)${CLAUDE_SKILL_DIR} for bundled reference files~/Documents/... → user-provided output directorytools: field, and allowed-tools pre-approves tools rather than describing them, so do not move requirements thereanalyze-stats")?Show a unified diff of all generalization changes for user review.
For each file in the skill's references/ and scripts/ directories:
Classify each file with ${CLAUDE_SKILL_DIR}/references/license-compatibility-matrix.md (written
for an MIT target; it also lists common checklist and package licenses). Bundle compatible content
with the attribution header or license notice it requires; convert non-compatible content to the
matrix's URL Reference Pattern; mark GPL/LGPL tools as optional external dependencies; treat an
unknown license as incompatible (remove, or get permission).
Present license audit table:
| File | Source | License | Compatible? | Action |
|------|--------|---------|------------|--------|
name and description per the Agent Skills spec, plus any field the target package's own validator requires)${CLAUDE_SKILL_DIR}/... path resolves to an actual filescripts/ have appropriate shebangsRun audit_skill.sh --strict one final time on the cleaned skill. Must return exit code 0.
Check whether the skill can run in common desktop-agent environments:
| Platform | Check |
|---|---|
| Claude Code | No hardcoded dependency on private ~/.claude paths unless documented. |
| Codex | SKILL.md is self-contained and installable under ~/.agents/skills/. |
| Cursor | A short .cursor/rules/*.mdc adapter can point to the canonical SKILL.md. |
| Windows | Commands avoid Unix-only assumptions or provide PowerShell/Python alternatives. |
| macOS/Linux | Shell examples use portable paths where possible. |
If the package is intended for a workshop or classroom, read
${CLAUDE_SKILL_DIR}/references/classroom-distribution.md and follow it (direct-download ZIPs,
release assets, classroom checklist).
Generate a table row matching the target package's README format:
| **{skill-name}** | {One-sentence description of what the skill does.} |
Instruct the user to:
cp -r <cleaned_skill> ~/.claude/skills/<skill-name>/<skill-name> or relevant trigger phrasesGate: User confirms testing is complete.
cp -r <cleaned_skill_path> <target_package>/skills/<skill-name>/
Apply the README entry drafted in Phase 5:
Present the exact commands but do NOT auto-execute push:
cd <target_package>
git add skills/<skill-name>/
git add README.md
git diff --cached # User reviews
git commit -m "Add <skill-name>: <one-line description>"
Gate: User reviews git diff --cached and explicitly approves the commit. Push is always manual.
Remind the user to:
git clone <repo> && cp -r <repo>/skills/<skill-name> ~/.claude/skills/references/classroom-distribution.md.