VERY IMPORTANT: To avoid what is often referred to as "AI slop", avoid using excessive centered layouts, purple gradients, uniform rounded corners, and Inter font.
Quick Start
Step 1: Initialize Project
Run the initialization script to create a new React project:
scripts/init-artifact.sh <project-name>
cd <project-name>
This creates a fully configured project with:
✅ React + TypeScript (via Vite)
✅ Tailwind CSS 3.4.1 with shadcn/ui theming system
✅ Path aliases (@/) configured
✅ 40+ shadcn/ui components pre-installed
✅ All Radix UI dependencies included
✅ Parcel configured for bundling (via .parcelrc)
✅ Node 18+ compatibility (auto-detects and pins Vite version)
Step 2: Develop Your Artifact
To build the artifact, edit the generated files. See Common Development Tasks below for guidance.
Step 3: Bundle to Single HTML File
To bundle the React app into a single HTML artifact:
scripts/bundle-artifact.sh
This creates bundle.html - a self-contained artifact with all JavaScript, CSS, and dependencies inlined. This file can be directly shared in Claude conversations as an artifact.
Requirements: Your project must have an index.html in the root directory.
Inlines all assets into single HTML using html-inline
Step 4: Share Artifact with User
Finally, share the bundled HTML file in conversation with the user so they can view it as an artifact.
Step 5: Testing/Visualizing the Artifact (Optional)
Note: This is a completely optional step. Only perform if necessary or requested.
To test/visualize the artifact, use available tools (including other Skills or built-in tools like Playwright or Puppeteer). In general, avoid testing the artifact upfront as it adds latency between the request and when the finished artifact can be seen. Test later, after presenting the artifact, if requested or if issues arise.
IMPORTANT - Path Resolution: This skill can be installed in different locations (plugin system, manual installation, global, or project-specific). Before executing any commands, determine the skill directory based on where you loaded this SKILL.md file, and use that path in all commands below. Replace $SKILL_DIR with the actual discovered path. Common installation paths:
General-purpose browser automation skill. I'll write custom Playwright code for any automation task you request and execute it via the universal executor.
CRITICAL WORKFLOW - Follow these steps in order:
Auto-detect dev servers - For localhost testing, ALWAYS run server detection FIRST:
For comprehensive Playwright API documentation, see API_REFERENCE.md:
Selectors & Locators best practices
Network interception & API mocking
Authentication & session management
Visual regression testing
Mobile device emulation
Performance testing
Debugging techniques
CI/CD integration
Tips
CRITICAL: Detect servers FIRST - Always run detectDevServers() before writing test code for localhost testing
Custom headers - Use PW_HEADER_NAME/PW_HEADER_VALUE env vars to identify automated traffic to your backend
Use /tmp for test files - Write to /tmp/playwright-test-*.js, never to skill directory or user's project
Parameterize URLs - Put detected/provided URL in a TARGET_URL constant at the top of every script
DEFAULT: Visible browser - Always use headless: false unless user explicitly asks for headless mode
Headless mode - Only use headless: true when user specifically requests "headless" or "background" execution
Slow down: Use slowMo: 100 to make actions visible and easier to follow
Wait strategies: Use waitForURL, waitForSelector, waitForLoadState instead of fixed timeouts
Error handling: Always use try-catch for robust automation
Console output: Use console.log() to track progress and show what's happening
Troubleshooting
Playwright not installed:
cd$SKILL_DIR && npm run setup
Module not found: Ensure running from skill directory via run.js wrapper
Browser doesn't open: Check headless: false and ensure display available
Element not found: Add wait: await page.waitForSelector('.element', { timeout: 10000 })
Example Usage
User: "Test if the marketing page looks good"
Claude: I'll test the marketing page across multiple viewports. Let me first detect running servers...
[Runs: detectDevServers()]
[Output: Found server on port 3001]
I found your dev server running on http://localhost:3001
[Writes custom automation script to /tmp/playwright-test-marketing.js with URL parameterized]
[Runs: cd $SKILL_DIR && node run.js /tmp/playwright-test-marketing.js]
[Shows results with screenshots from /tmp/]
User: "Check if login redirects correctly"
Claude: I'll test the login flow. First, let me check for running servers...
[Runs: detectDevServers()]
[Output: Found servers on ports 3000 and 3001]
I found 2 dev servers. Which one should I test?
This skill provides guidence for quality focused software development and architecture. It is based on Clean Architecture and Domain Driven Design principles.
代码质量
Code Style Rules
General Principles
Early return pattern: Always use early returns when possible, over nested conditions for better readability
Avoid code duplication through creation of reusable functions and modules
Decompose long (more than 80 lines of code) components and functions into multiple smaller components and functions. If they cannot be used anywhere else, keep it in the same file. But if file longer than 200 lines of code, it should be split into multiple files.
Use arrow functions instead of function declarations when possible
Best Practices
Library-First Approach
ALWAYS search for existing solutions before writing custom code
Check npm for existing libraries that solve the problem
Evaluate existing services/SaaS solutions
Consider third-party APIs for common functionality
Use libraries instead of writing your own utils or helpers. For example, use cockatiel instead of writing your own retry logic.
When custom code IS justified:
Specific business logic unique to the domain
Performance-critical paths with special requirements
When external dependencies would be overkill
Security-sensitive code requiring full control
When existing solutions don't meet requirements after thorough evaluation
Architecture and Design
Clean Architecture & DDD Principles:
Follow domain-driven design and ubiquitous language
Separate domain entities from infrastructure concerns
USE domain-specific names: OrderCalculator, UserAuthenticator, InvoiceGenerator
Follow bounded context naming patterns
Each module should have a single, clear purpose
Separation of Concerns:
Do NOT mix business logic with UI components
Keep database queries out of controllers
Maintain clear boundaries between contexts
Ensure proper separation of responsibilities
Anti-Patterns to Avoid
NIH (Not Invented Here) Syndrome:
Don't build custom auth when Auth0/Supabase exists
Don't write custom state management instead of using Redux/Zustand
Don't create custom form validation instead of using established libraries
Poor Architectural Choices:
Mixing business logic with UI components
Database queries directly in controllers
Lack of clear separation of concerns
Generic Naming Anti-Patterns:
utils.js with 50 unrelated functions
helpers/misc.js as a dumping ground
common/shared.js with unclear purpose
Remember: Every line of custom code is a liability that needs maintenance, testing, and documentation
Code Quality
Proper error handling with typed catch blocks
Break down complex logic into smaller, reusable functions
Avoid deep nesting (max 3 levels)
Keep functions focused and under 50 lines when possible
Keep files focused and under 200 lines of code when possible
6. Ship-Learn-Next Action Planner 学习行动规划器
---name: ship-learn-next description:Transformlearningcontent(likeYouTubetranscripts,articles,tutorials)intoactionableimplementationplansusingtheShip-Learn-Nextframework.Usewhenuserwantstoturnadvice,lessons,oreducationalcontentintoconcreteactionsteps,reps,or a learning quest. allowed-tools:Read,Write---
Ship-Learn-Next Action Planner
This skill helps transform passive learning content into actionable Ship-Learn-Next cycles - turning advice and lessons into concrete, shippable iterations.
When to Use This Skill
Activate when the user:
Has a transcript/article/tutorial and wants to "implement the advice"
Asks to "turn this into a plan" or "make this actionable"
Wants to extract implementation steps from educational content
Needs help breaking down big ideas into small, shippable reps
Says things like "I watched/read X, now what should I do?"
Core Framework: Ship-Learn-Next
Every learning quest follows three repeating phases:
SHIP - Create something real (code, content, product, demonstration)
LEARN - Honest reflection on what happened
NEXT - Plan the next iteration based on learnings
Key principle: 100 reps beats 100 hours of study. Learning = doing better, not knowing more.
How This Skill Works
Step 1: Read the Content
Read the file the user provides (transcript, article, notes):
FILE_PATH="/path/to/content.txt"
Use the Read tool to analyze the content.
Step 2: Extract Core Lessons
Identify from the content:
Main advice/lessons: What are the key takeaways?
Actionable principles: What can actually be practiced?
Skills being taught: What would someone learn by doing this?
Examples/case studies: Real implementations mentioned
Do NOT:
Summarize everything (focus on actionable parts)
List theory without application
Include "nice to know" vs "need to practice"
Step 3: Define the Quest
Help the user frame their learning goal:
Ask:
"Based on this content, what do you want to achieve in 4-8 weeks?"
"What would success look like? (Be specific)"
"What's something concrete you could build/create/ship?"
Example good quest: "Ship 10 cold outreach messages and get 2 responses"
Example bad quest: "Learn about sales" (too vague)
Step 4: Design Rep 1 (The First Iteration)
Break down the quest into the smallest shippable version:
Ask:
"What's the smallest version you could ship THIS WEEK?"
"What do you need to learn JUST to do that?" (not everything)
"What would 'done' look like for rep 1?"
Make it:
Concrete and specific
Completable in 1-7 days
Produces real evidence/artifact
Small enough to not be intimidating
Big enough to learn something meaningful
Step 5: Create the Rep Plan
Structure each rep with:
Rep 1: [Specific Goal]
Ship Goal: [What you'll create/do]
Success Criteria: [How you'll know it's done]
What You'll Learn: [Specific skills/insights]
Resources Needed: [Minimal - just what's needed for THIS rep]
Timeline: [Specific deadline]
Action Steps:
[Concrete step 1]
[Concrete step 2]
[Concrete step 3]
...
After Shipping - Reflection Questions:
What actually happened? (Be specific)
What worked? What didn't?
What surprised you?
On a scale of 1-10, how did this rep go?
What would you do differently next time?
Step 6: Map Future Reps (2-5)
Based on the content, suggest a progression:
Rep 2: [Next level]
Builds on: What you learned in Rep 1
New challenge: One new thing to try/improve
Expected difficulty: [Easier/Same/Harder - and why]
Rep 3: [Continue progression]
...
Progression principles:
Each rep adds ONE new element
Increase difficulty based on success
Reference specific lessons from the content
Keep reps shippable (not theoretical)
Step 7: Connect to Content
For each rep, reference the source material:
"This implements the [concept] from minute X"
"You're practicing the [technique] mentioned in the video"
"This tests the advice about [topic]"
But: Always emphasize DOING over studying. Point to resources only when needed for the specific rep.
Conversation Style
Direct but supportive:
No fluff, but encouraging
"Ship it, then we'll improve it"
"What's the smallest version you could do this week?"
Question-driven:
Make them think, don't just tell
"What exactly do you want to achieve?" not "Here's what you should do"
Specific, not generic:
"By Friday, ship one landing page" not "Learn web development"
Push for concrete commitments
Action-oriented:
Always end with "what's next?"
Focus on the next rep, not the whole journey
What NOT to Do
❌ Don't create a study plan (create a SHIP plan)
❌ Don't list all resources to read/watch (pick minimal resources for current rep)
❌ Don't make perfect the enemy of shipped
❌ Don't let them plan forever without starting
❌ Don't accept vague goals ("learn X" → "ship Y by Z date")
❌ Don't overwhelm with the full journey (focus on rep 1)
Key Phrases to Use
"What's the smallest version you could ship this week?"
"What do you need to learn JUST to do that?"
"This isn't about perfection - it's rep 1 of 100"
"Ship something real, then we'll improve it"
"Based on [content], what would you actually DO differently?"
"Learning = doing better, not knowing more"
Example Output Structure
Your Ship-Learn-Next Quest: [Title]
Quest Overview
Goal: [What they want to achieve in 4-8 weeks]
Source: [The content that inspired this]
Core Lessons: [3-5 key actionable takeaways from content]
Customizing your resume for different industries or roles
Highlighting relevant experience for career transitions
Optimizing your resume for ATS (Applicant Tracking Systems)
Creating multiple resume versions for different job applications
Emphasizing specific skills mentioned in job postings
What This Skill Does
Analyzes Job Descriptions: Extracts key requirements, skills, qualifications, and keywords from job postings
Identifies Priorities: Determines what employers value most based on the job description language and structure
Tailors Content: Reorganizes and emphasizes relevant experience, skills, and achievements
Optimizes Keywords: Incorporates ATS-friendly keywords naturally throughout the resume
Formats Professionally: Creates clean, professional resume layouts suitable for various formats
Provides Recommendations: Suggests improvements and highlights gaps to address
How to Use
Basic Usage
Provide a job description and your background information:
I'm applying for this job: [paste job description]
Here's my background:
5 years as software engineer at TechCorp
Led team of 3 developers on mobile app project
Expert in Python, JavaScript, React
Computer Science degree from State University
With Existing Resume
Upload or paste your current resume along with the job description:
Please tailor my resume for this position:
Job Description: [paste job description]
My Current Resume: [paste resume content]
Career Transition
When changing industries or roles:
I'm transitioning from marketing to product management. Here's the job I'm applying for: [paste job description]
My transferable experience:
7 years in digital marketing
Led cross-functional teams
Managed product launches
Data analysis and A/B testing
Example
User Request:
I need a tailored resume for this job: Senior Data Analyst Position
Requirements:
5+ years experience in data analysis
Expert in SQL, Python, and data visualization tools
Experience with A/B testing and statistical analysis
Results-driven Data Analyst with 5+ years of experience leveraging SQL, Python, and advanced visualization tools to deliver actionable insights. Proven track record in statistical analysis, A/B testing, and cross-functional collaboration. Healthcare industry experience with strong ability to communicate complex data findings to stakeholders.
TECHNICAL SKILLS
Data Analysis & Programming: SQL, Python, Statistical Analysis, A/B Testing
Visualization Tools: Tableau, Power BI, Advanced Dashboard Development
Data Management: Data Automation, ETL Processes, Database Optimization
Business Intelligence: Campaign Analytics, Performance Metrics, KPI Tracking
PROFESSIONAL EXPERIENCE
Data Analyst | RetailCo | 2019 - 2024
Designed and implemented 50+ SQL queries and Python automation scripts, reducing manual data processing time by 60%
Conducted rigorous A/B testing and statistical analysis for marketing campaigns, improving campaign ROI by 35%
Built interactive Tableau and Power BI dashboards for executive team, enabling data-driven decision making
Presented analytical findings to cross-functional stakeholders including marketing, operations, and executive leadership
Collaborated with marketing team to analyze customer behavior patterns and optimize targeting strategies
Data Analysis Intern | HealthPlus Clinic | 2018 - 2019
Supported healthcare analytics initiatives by analyzing patient data and operational metrics
Gained exposure to healthcare industry data management and HIPAA compliance requirements
Assisted in creating reports for clinical staff to improve patient care workflows
EDUCATION
Bachelor of Science in Business Analytics State University | Graduated 2018
KEY ACHIEVEMENTS
Reduced data processing time by 60% through Python automation
Improved marketing campaign ROI by 35% through A/B testing and optimization
Created data visualization system now used across entire organization
Additional Recommendations:
Consider adding any specific healthcare projects or certifications
Quantify more achievements with metrics when possible
If you have experience with R or advanced statistical methods, add them
Consider mentioning any familiarity with healthcare regulations (HIPAA, etc.)
Instructions
When a user requests resume tailoring:
1. Gather Information
Job Description Analysis:
Request the full job description if not provided
Ask for the company name and job title
Candidate Background:
If user provides existing resume, use it as the foundation
If not, request:
Work history (job titles, companies, dates, responsibilities)
Education background
Key skills and technical proficiencies
Notable achievements and metrics
Certifications or awards
Any other relevant information
2. Analyze Job Requirements
Extract and prioritize:
Must-have qualifications: Years of experience, required skills, education
Use standard section headings (Professional Experience, Education, Skills)
Incorporate exact keywords from job description naturally
Avoid tables, graphics, headers/footers, or complex formatting
Use standard fonts and bullet points
Include both acronyms and full terms (e.g., "SQL (Structured Query Language)")
Match job title terminology where truthful
6. Format and Present
Format Options:
Markdown: Clean, readable, easy to copy
Plain Text: ATS-optimized, safe for all systems
Tips for Word/PDF: Provide formatting guidance
Resume Structure Guidelines:
Keep to 1 page for <10 years experience, 2 pages for 10+ years
Use consistent formatting and spacing
Ensure contact information is prominent
Use reverse chronological order (most recent first)
Maintain clean, scannable layout with white space
7. Provide Strategic Recommendations
After presenting the tailored resume, offer:
Strengths Analysis:
What makes this candidate competitive
Unique qualifications to emphasize in cover letter or interview
Gap Analysis:
Requirements not fully met
Suggestions for addressing gaps (courses, projects, reframing experience)
Interview Preparation Tips:
Key talking points aligned with resume
Stories to prepare based on job requirements
Questions to ask that demonstrate fit
Cover Letter Hooks:
Suggest 2-3 opening lines for cover letter
Key achievements to expand upon
8. Iterate and Refine
Ask if user wants to:
Adjust emphasis or tone
Add or remove sections
Generate alternative versions for different roles
Create format variations (traditional vs. modern)
Develop role-specific versions (if applying to multiple similar positions)
9. Best Practices to Follow
Do:
Be truthful and accurate - never fabricate experience
Use industry-standard terminology
Quantify achievements with specific metrics
Tailor each resume to specific job
Proofread for grammar and consistency
Keep language concise and impactful
Don't:
Include personal information (age, marital status, photo unless requested)
Use first-person pronouns (I, me, my)
Include references ("available upon request" is outdated)
List every job if career is 20+ years (focus on relevant, recent experience)
Use generic templates without customization
Exceed 2 pages unless very senior role
10. Special Considerations
Career Changers:
Use functional or hybrid resume format
Emphasize transferable skills
Create compelling narrative in summary
Focus on relevant projects and coursework
Recent Graduates:
Lead with education
Include relevant coursework, projects, internships
Emphasize leadership in student organizations
Include GPA if 3.5+
Senior Executives:
Lead with executive summary
Focus on leadership and strategic impact
Include board memberships, speaking engagements
Emphasize revenue growth, team building, vision
Technical Roles:
Include technical skills section prominently
List programming languages, frameworks, tools
Include GitHub, portfolio, or project links
Mention methodologies (Agile, Scrum, etc.)
Creative Roles:
Include link to portfolio
Highlight creative achievements and campaigns
Mention tools and software proficiencies
Consider more creative formatting (while maintaining ATS compatibility)
Tips for Best Results
Be specific: Provide complete job descriptions and detailed background information
Share metrics: Include numbers, percentages, and quantifiable achievements when describing your experience
Indicate format preference: Let the skill know if you need ATS-optimized, creative, or traditional format
Mention constraints: Share any specific requirements (page limits, sections to include/exclude)
Iterate: Don't hesitate to ask for revisions or alternative approaches
Multiple applications: Generate separate tailored versions for different roles
Privacy Note
This skill processes your personal and professional information to generate tailored resumes. Always review the output before submitting to ensure accuracy and appropriateness. Remove or modify any information you prefer not to share with potential employers.