New skill: meeting-minutes-taker - Transform meeting transcripts into structured minutes - Multi-pass parallel generation with UNION merge - Evidence-based recording with speaker quotes - Mermaid diagrams for architecture discussions - Iterative human-in-the-loop refinement - Bundled references: template and completeness checklist skill-creator enhancements: - Add Step 5: Sanitization Review (Optional) - New references/sanitization_checklist.md with: - 8 categories of content to sanitize - Automated grep scan commands - 3-phase sanitization process - Common pitfalls and completion checklist - Renumber existing steps 5-8 to 6-9 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.7 KiB
5.7 KiB
Skill Sanitization Checklist
When extracting a skill from a business project for public distribution, systematically remove all business-specific content to make it generic and reusable.
Quick Scan Commands
Run these grep patterns to identify potential sensitive content:
# Business/product names (case-insensitive)
grep -rniE "mercury|portal|underwriting|glean|[company-name]|[product-name]" skill-folder/
# Person names (look for capitalized names)
grep -rniE "\b(Oliver|John|Alice|Bob|建斌|小明)\b" skill-folder/
# Absolute paths and usernames
grep -rniE "/Users/|/home/|/mnt/c/Users|OneDrive|username" skill-folder/
# Chinese characters (if skill should be English-only)
grep -rn '[一-龥]' skill-folder/
# Internal jargon
grep -rniE "ultrathink|internal-only|confidential" skill-folder/
Categories to Sanitize
1. Product and Project Names
What to find:
- Project codenames (e.g., "Mercury Prepared", "Project Phoenix")
- Internal product names (e.g., "Reviewer Portal", "Admin Dashboard")
- Tool-specific names (e.g., "Glean Gemini" → just "Gemini")
How to replace:
- Use generic terms: "the system", "the application", "the service"
- Use placeholder patterns:
<project-name>,<product-name> - Use generic examples: "e-commerce platform", "user management system"
2. Person Names
What to find:
- Real employee names in examples: "Oliver will handle...", "建斌你来..."
- Team member references in action items
- Author attributions that reveal identity
How to replace:
- Use generic names: "Alice", "Bob", "the developer", "the reviewer"
- Use role-based references: "Backend team", "PM", "Designer"
- Remove author attributions or use placeholders
3. Entity and Data Model Names
What to find:
- Business-specific entities:
REVIEW_RESULT,RISK_MODEL,INSPECTION_FACTOR - Domain-specific hierarchies:
Section → Area → Item → Evidence - Field names revealing business logic:
risk_level,underwriting_status
How to replace:
- Use generic entities:
ORDER,ORDER_ITEM,USER,PRODUCT - Use generic hierarchies:
Category → Subcategory → Item → Detail - Use generic fields:
status,quantity,customer_name
4. Folder Structures and Paths
What to find:
- Team-specific folders:
10-team-collaboration/Meeting Minutes - Project-specific paths:
reviewer-portal-api-design - Environment-specific paths:
/Users/username/Projects/
How to replace:
- Use generic paths:
project-docs/meeting-minutes - Use placeholder paths:
<project-root>/docs/ - Use relative paths within skill bundle
5. Internal Terminology and Jargon
What to find:
- Internal slang: "ultrathink", "deep dive session"
- Company-specific processes: "Mercury standup", "Portal review"
- Abbreviations without context: "MP", "RP", "UW"
How to replace:
- Use industry-standard terms: "deep review", "thorough analysis"
- Expand or remove unexplained abbreviations
- Use generic process names
6. Language-Specific Content
What to find:
- Chinese phrases in English skills: "后面再说", "MVP 先不做"
- Mixed language examples that assume bilingual context
- Culture-specific references
How to replace:
- Translate to the skill's primary language
- Use language-neutral examples
- Or explicitly support multilingual with clear labels
7. Business Logic Examples
What to find:
- Domain-specific workflows: "Underwriting system conflicts"
- Business rules: "Inspection Factor vs Risk Factor"
- Industry-specific terminology without explanation
How to replace:
- Use generic software examples: "Note field conflicts with Comment system"
- Use universal patterns: "UserProfile vs Account naming conflict"
- Add context if domain terms are necessary
8. External Service References
What to find:
- Internal APIs:
POST /evaluate (push to Risk Model) - Company-specific integrations: "Sync with Underwriting system"
- Internal tool names: "Glean search", "Internal Wiki"
How to replace:
- Use generic services:
POST /process (send to External Service) - Use placeholder APIs:
<external-api>/endpoint - Use generic tool categories: "enterprise search", "knowledge base"
Sanitization Process
Phase 1: Automated Scan
# Run all grep patterns above
# Export results to a file for review
grep -rniE "pattern1|pattern2|pattern3" skill-folder/ > sanitization_report.txt
Phase 2: Manual Review
For each match:
- Determine if it's truly business-specific or generic
- Decide on appropriate replacement
- Check if replacement maintains meaning
- Verify no broken references
Phase 3: Verification
After sanitization:
- Re-run all grep patterns - should return no matches
- Read through skill to ensure coherence
- Test skill functionality still works
- Have someone unfamiliar with the original project review
Common Pitfalls
| Pitfall | Solution |
|---|---|
| Over-sanitizing generic terms | "reviewer" as a role is fine; "Reviewer Portal" is not |
| Breaking examples by removing context | Replace with equivalent generic examples |
| Leaving orphaned references | Check all cross-references after renaming |
| Inconsistent replacements | Use find-and-replace for consistency |
| Sanitizing technical terms | Keep industry-standard terms (API, JSON, MVP) |
Checklist Before Completion
- No product/project codenames remain
- No real person names in examples
- No business-specific entity names
- No internal folder structures
- No unexplained jargon or abbreviations
- No language-specific content (unless intentional)
- No internal API or service references
- All examples are generic and universally understandable
- Skill still functions correctly after changes
- Someone unfamiliar with original project can understand it