mirror of
https://github.com/ognjengt/founder-skills.git
synced 2026-09-19 07:37:15 +08:00
Initialized project structure
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "founder-skills",
|
||||
"owner": {
|
||||
"name": "Ognjen Gatalo",
|
||||
"url": "https://github.com/ognjengt"
|
||||
},
|
||||
"version": "1.0.0",
|
||||
"description": "Claude Code skills for founders — SOPs, CRO, content creation, outreach, and strategic planning",
|
||||
"repository": "https://github.com/ognjengt/founder-skills",
|
||||
"plugins": [
|
||||
{
|
||||
"name": "founder-skills",
|
||||
"description": "Essential skills for founders: SOPs, conversion optimization, viral hooks, lead magnets, social media writing, outreach, and strategic planning",
|
||||
"skills": [
|
||||
"sop-creator",
|
||||
"cro-optimizer",
|
||||
"viral-hook-creator",
|
||||
"lead-magnet-generator",
|
||||
"strategic-planning",
|
||||
"x-writer",
|
||||
"linkedin-writer",
|
||||
"outreach-specialist"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
# Development Guidelines
|
||||
|
||||
This file provides guidance for Claude when working on the founder-skills repository.
|
||||
|
||||
## Repository Structure
|
||||
|
||||
```
|
||||
founder-skills/
|
||||
├── .claude-plugin/
|
||||
│ └── marketplace.json # Marketplace metadata
|
||||
├── bin/
|
||||
│ └── cli.js # npx installer
|
||||
├── skills/ # All skills
|
||||
│ └── <skill-name>/
|
||||
│ ├── SKILL.md # Skill definition
|
||||
│ └── references/ # Additional materials
|
||||
├── FOUNDER_CONTEXT.md # Shared business context
|
||||
├── package.json # npm package config
|
||||
├── README.md # User documentation
|
||||
└── CLAUDE.md # This file
|
||||
```
|
||||
|
||||
## Adding a New Skill
|
||||
|
||||
1. Create a new directory in `skills/`:
|
||||
```
|
||||
skills/new-skill-name/
|
||||
├── SKILL.md
|
||||
└── references/
|
||||
└── .gitkeep
|
||||
```
|
||||
|
||||
2. Follow the SKILL.md format:
|
||||
```markdown
|
||||
---
|
||||
name: skill-name
|
||||
description: Brief description of what this skill does and when to use it.
|
||||
---
|
||||
|
||||
# Skill Title
|
||||
|
||||
## Founder Context
|
||||
{{file:../../FOUNDER_CONTEXT.md}}
|
||||
|
||||
## Purpose
|
||||
[Detailed explanation of the skill's purpose]
|
||||
|
||||
## Instructions
|
||||
[Step-by-step instructions for Claude]
|
||||
|
||||
## Input
|
||||
$ARGUMENTS
|
||||
|
||||
## Output Format
|
||||
[Expected output structure]
|
||||
|
||||
## References
|
||||
[Links to files in ./references/ if applicable]
|
||||
```
|
||||
|
||||
3. Update `marketplace.json` to include the new skill in the skills array.
|
||||
|
||||
4. Update `README.md` to list the new skill in the Available Skills table.
|
||||
|
||||
## Skill Naming Conventions
|
||||
|
||||
- Use lowercase with hyphens: `sop-creator`, `linkedin-writer`
|
||||
- Be descriptive but concise
|
||||
- The folder name becomes the command: `/sop-creator`
|
||||
|
||||
## Testing Skills
|
||||
|
||||
1. Copy the skill to your local Claude skills directory:
|
||||
```bash
|
||||
cp -r skills/new-skill ~/.claude/skills/
|
||||
```
|
||||
|
||||
2. Open Claude Code and test:
|
||||
```
|
||||
/new-skill [test input]
|
||||
```
|
||||
|
||||
## Code Style
|
||||
|
||||
- Keep SKILL.md files focused and actionable
|
||||
- Use clear, imperative instructions for Claude
|
||||
- Include example outputs where helpful
|
||||
- Reference FOUNDER_CONTEXT.md for business-specific context
|
||||
|
||||
## CLI Development
|
||||
|
||||
The CLI (`bin/cli.js`) handles:
|
||||
- `install` - Copies skills to `~/.claude/skills/`
|
||||
- `list` - Shows available skills
|
||||
- `--skill` flag - Selective installation
|
||||
|
||||
When modifying the CLI:
|
||||
- Keep it dependency-free (Node.js built-ins only)
|
||||
- Test both install and list commands
|
||||
- Ensure error messages are helpful
|
||||
@@ -0,0 +1,39 @@
|
||||
# Founder Context
|
||||
|
||||
This file provides context about your business that all founder-skills will use. Customize it with your specific information.
|
||||
|
||||
## About Your Business
|
||||
|
||||
- **Company name**: [Your company name]
|
||||
- **Industry**: [Your industry/niche]
|
||||
- **Target audience**: [Who you serve - be specific about demographics, pain points, goals]
|
||||
- **Value proposition**: [What makes you unique - your core differentiator]
|
||||
|
||||
## Brand Voice
|
||||
|
||||
- **Tone**: [Professional / Casual / Friendly / Authoritative / etc.]
|
||||
- **Personality traits**: [e.g., helpful, innovative, trustworthy]
|
||||
- **Key messages**: [Core themes you want to communicate]
|
||||
- **Words to use**: [Preferred terminology]
|
||||
- **Words to avoid**: [Terms that don't fit your brand]
|
||||
|
||||
## Business Goals
|
||||
|
||||
- **Short-term (3-6 months)**: [Immediate priorities]
|
||||
- **Long-term (1-3 years)**: [Strategic vision]
|
||||
- **Key metrics**: [What you measure for success]
|
||||
|
||||
## Products/Services
|
||||
|
||||
- **Main offerings**: [What you sell or provide]
|
||||
- **Pricing model**: [How you charge]
|
||||
- **Key features/benefits**: [What customers get]
|
||||
|
||||
## Competitors
|
||||
|
||||
- **Main competitors**: [Who you compete with]
|
||||
- **Your advantages**: [Why customers choose you]
|
||||
|
||||
## Additional Context
|
||||
|
||||
[Any other relevant information for the AI to know when helping with founder tasks - team size, funding stage, tech stack, etc.]
|
||||
@@ -1,2 +1,86 @@
|
||||
# founder-skills
|
||||
Claude skills for founders
|
||||
|
||||
Claude Code skills for founders — SOPs, CRO, content creation, outreach, and strategic planning.
|
||||
|
||||
## Installation
|
||||
|
||||
### Quick Install (All Skills)
|
||||
|
||||
```bash
|
||||
npx founder-skills install
|
||||
```
|
||||
|
||||
### Install Specific Skills
|
||||
|
||||
```bash
|
||||
npx founder-skills install --skill sop-creator
|
||||
npx founder-skills install --skill sop-creator --skill linkedin-writer
|
||||
```
|
||||
|
||||
### List Available Skills
|
||||
|
||||
```bash
|
||||
npx founder-skills list
|
||||
```
|
||||
|
||||
### Manual Installation
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ognjengt/founder-skills
|
||||
cp -r founder-skills/skills/* ~/.claude/skills/
|
||||
cp founder-skills/FOUNDER_CONTEXT.md ~/.claude/
|
||||
```
|
||||
|
||||
## Available Skills
|
||||
|
||||
| Skill | Description |
|
||||
|-------|-------------|
|
||||
| `sop-creator` | Creates detailed Standard Operating Procedures for business processes |
|
||||
| `cro-optimizer` | Conversion rate optimization analysis and recommendations |
|
||||
| `viral-hook-creator` | Creates viral hooks for content and marketing |
|
||||
| `lead-magnet-generator` | Generates lead magnet ideas and content |
|
||||
| `strategic-planning` | Strategic business planning and roadmapping |
|
||||
| `x-writer` | Writes engaging X (Twitter) content |
|
||||
| `linkedin-writer` | Creates professional LinkedIn posts and articles |
|
||||
| `outreach-specialist` | Crafts personalized outreach messages |
|
||||
|
||||
## Usage
|
||||
|
||||
After installation, use skills in Claude Code by typing:
|
||||
|
||||
```
|
||||
/sop-creator create an employee onboarding process
|
||||
```
|
||||
|
||||
```
|
||||
/linkedin-writer write a post about our new product launch
|
||||
```
|
||||
|
||||
## Customizing for Your Business
|
||||
|
||||
After installation, edit `~/.claude/FOUNDER_CONTEXT.md` to add your business details:
|
||||
|
||||
- Company name and industry
|
||||
- Target audience and value proposition
|
||||
- Brand voice and tone
|
||||
- Business goals
|
||||
- Products/services
|
||||
|
||||
All skills reference this context to provide personalized outputs.
|
||||
|
||||
## Contributing
|
||||
|
||||
Want to add a new skill? See [CLAUDE.md](CLAUDE.md) for development guidelines.
|
||||
|
||||
### Skill Structure
|
||||
|
||||
```
|
||||
skills/
|
||||
└── your-skill/
|
||||
├── SKILL.md # Main skill definition
|
||||
└── references/ # Additional reference materials
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
Executable
+212
@@ -0,0 +1,212 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const os = require('os');
|
||||
|
||||
const SKILLS_DIR = path.join(__dirname, '..', 'skills');
|
||||
const FOUNDER_CONTEXT = path.join(__dirname, '..', 'FOUNDER_CONTEXT.md');
|
||||
const TARGET_DIR = path.join(os.homedir(), '.claude', 'skills');
|
||||
const TARGET_CONTEXT = path.join(os.homedir(), '.claude', 'FOUNDER_CONTEXT.md');
|
||||
|
||||
// Available skills
|
||||
function getAvailableSkills() {
|
||||
try {
|
||||
return fs.readdirSync(SKILLS_DIR).filter(name => {
|
||||
const skillPath = path.join(SKILLS_DIR, name);
|
||||
return fs.statSync(skillPath).isDirectory() &&
|
||||
fs.existsSync(path.join(skillPath, 'SKILL.md'));
|
||||
});
|
||||
} catch (err) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
// Copy directory recursively
|
||||
function copyDir(src, dest) {
|
||||
fs.mkdirSync(dest, { recursive: true });
|
||||
const entries = fs.readdirSync(src, { withFileTypes: true });
|
||||
|
||||
for (const entry of entries) {
|
||||
const srcPath = path.join(src, entry.name);
|
||||
const destPath = path.join(dest, entry.name);
|
||||
|
||||
if (entry.isDirectory()) {
|
||||
copyDir(srcPath, destPath);
|
||||
} else {
|
||||
fs.copyFileSync(srcPath, destPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Parse command line arguments
|
||||
function parseArgs(args) {
|
||||
const result = {
|
||||
command: null,
|
||||
skills: []
|
||||
};
|
||||
|
||||
let i = 0;
|
||||
while (i < args.length) {
|
||||
const arg = args[i];
|
||||
|
||||
if (arg === 'install' || arg === 'list') {
|
||||
result.command = arg;
|
||||
} else if (arg === '--skill' || arg === '-s') {
|
||||
i++;
|
||||
if (i < args.length) {
|
||||
result.skills.push(args[i]);
|
||||
}
|
||||
} else if (!arg.startsWith('-')) {
|
||||
if (!result.command) {
|
||||
result.command = arg;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// List available skills
|
||||
function listSkills() {
|
||||
const skills = getAvailableSkills();
|
||||
|
||||
console.log('\n📦 Available founder-skills:\n');
|
||||
|
||||
if (skills.length === 0) {
|
||||
console.log(' No skills found.\n');
|
||||
return;
|
||||
}
|
||||
|
||||
skills.forEach(skill => {
|
||||
const skillPath = path.join(SKILLS_DIR, skill, 'SKILL.md');
|
||||
const content = fs.readFileSync(skillPath, 'utf8');
|
||||
|
||||
// Extract description from frontmatter
|
||||
const match = content.match(/description:\s*(.+)/);
|
||||
const description = match ? match[1].trim() : 'No description';
|
||||
|
||||
console.log(` • ${skill}`);
|
||||
console.log(` ${description}\n`);
|
||||
});
|
||||
|
||||
console.log('Install all: npx founder-skills install');
|
||||
console.log('Install one: npx founder-skills install --skill sop-creator\n');
|
||||
}
|
||||
|
||||
// Install skills
|
||||
function installSkills(selectedSkills) {
|
||||
const availableSkills = getAvailableSkills();
|
||||
|
||||
// If no specific skills selected, install all
|
||||
const skillsToInstall = selectedSkills.length > 0
|
||||
? selectedSkills.filter(s => availableSkills.includes(s))
|
||||
: availableSkills;
|
||||
|
||||
// Check for invalid skill names
|
||||
if (selectedSkills.length > 0) {
|
||||
const invalid = selectedSkills.filter(s => !availableSkills.includes(s));
|
||||
if (invalid.length > 0) {
|
||||
console.log(`\n⚠️ Unknown skills: ${invalid.join(', ')}`);
|
||||
console.log(` Available: ${availableSkills.join(', ')}\n`);
|
||||
}
|
||||
}
|
||||
|
||||
if (skillsToInstall.length === 0) {
|
||||
console.log('\n❌ No valid skills to install.\n');
|
||||
listSkills();
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('\n🚀 Installing founder-skills...\n');
|
||||
|
||||
// Ensure target directory exists
|
||||
fs.mkdirSync(TARGET_DIR, { recursive: true });
|
||||
|
||||
// Copy each skill
|
||||
skillsToInstall.forEach(skill => {
|
||||
const src = path.join(SKILLS_DIR, skill);
|
||||
const dest = path.join(TARGET_DIR, skill);
|
||||
|
||||
try {
|
||||
copyDir(src, dest);
|
||||
console.log(` ✅ ${skill}`);
|
||||
} catch (err) {
|
||||
console.log(` ❌ ${skill} - ${err.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
// Copy FOUNDER_CONTEXT.md if it doesn't exist
|
||||
if (!fs.existsSync(TARGET_CONTEXT)) {
|
||||
try {
|
||||
fs.copyFileSync(FOUNDER_CONTEXT, TARGET_CONTEXT);
|
||||
console.log(`\n 📄 Created ~/.claude/FOUNDER_CONTEXT.md`);
|
||||
console.log(` Edit this file to customize skills for your business.`);
|
||||
} catch (err) {
|
||||
console.log(`\n ⚠️ Could not copy FOUNDER_CONTEXT.md`);
|
||||
}
|
||||
} else {
|
||||
console.log(`\n 📄 ~/.claude/FOUNDER_CONTEXT.md already exists (not overwritten)`);
|
||||
}
|
||||
|
||||
console.log('\n✨ Installation complete!\n');
|
||||
console.log('Usage in Claude Code:');
|
||||
skillsToInstall.forEach(skill => {
|
||||
console.log(` /${skill}`);
|
||||
});
|
||||
console.log('');
|
||||
}
|
||||
|
||||
// Show help
|
||||
function showHelp() {
|
||||
console.log(`
|
||||
founder-skills - Claude Code skills for founders
|
||||
|
||||
Usage:
|
||||
npx founder-skills <command> [options]
|
||||
|
||||
Commands:
|
||||
install Install all skills
|
||||
list List available skills
|
||||
|
||||
Options:
|
||||
--skill, -s <name> Install specific skill(s)
|
||||
Can be used multiple times
|
||||
|
||||
Examples:
|
||||
npx founder-skills install
|
||||
npx founder-skills install --skill sop-creator
|
||||
npx founder-skills install -s sop-creator -s linkedin-writer
|
||||
npx founder-skills list
|
||||
`);
|
||||
}
|
||||
|
||||
// Main
|
||||
function main() {
|
||||
const args = process.argv.slice(2);
|
||||
const { command, skills } = parseArgs(args);
|
||||
|
||||
switch (command) {
|
||||
case 'install':
|
||||
installSkills(skills);
|
||||
break;
|
||||
case 'list':
|
||||
listSkills();
|
||||
break;
|
||||
case 'help':
|
||||
case '--help':
|
||||
case '-h':
|
||||
showHelp();
|
||||
break;
|
||||
default:
|
||||
if (!command) {
|
||||
showHelp();
|
||||
} else {
|
||||
console.log(`\n❌ Unknown command: ${command}\n`);
|
||||
showHelp();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "founder-skills",
|
||||
"version": "1.0.0",
|
||||
"description": "Claude Code skills for founders — SOPs, CRO, content creation, outreach, and strategic planning",
|
||||
"bin": {
|
||||
"founder-skills": "./bin/cli.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ognjengt/founder-skills"
|
||||
},
|
||||
"keywords": [
|
||||
"claude",
|
||||
"claude-code",
|
||||
"skills",
|
||||
"founder",
|
||||
"sop",
|
||||
"cro",
|
||||
"marketing",
|
||||
"ai"
|
||||
],
|
||||
"author": "Ognjen Gatalo",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/ognjengt/founder-skills/issues"
|
||||
},
|
||||
"homepage": "https://github.com/ognjengt/founder-skills#readme"
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
---
|
||||
name: sop-creator
|
||||
description: Creates detailed Standard Operating Procedures (SOPs) for business processes. Use when user needs SOPs, process documentation, operational guides, or workflow documentation.
|
||||
---
|
||||
|
||||
# SOP Creator
|
||||
|
||||
## Founder Context
|
||||
{{file:../../FOUNDER_CONTEXT.md}}
|
||||
|
||||
## Purpose
|
||||
|
||||
Create comprehensive, actionable Standard Operating Procedures (SOPs) that document business processes clearly enough for any team member to follow. SOPs reduce errors, ensure consistency, and make training easier.
|
||||
|
||||
## Instructions
|
||||
|
||||
When the user requests an SOP, follow these steps:
|
||||
|
||||
### 1. Gather Information
|
||||
Ask clarifying questions if needed:
|
||||
- What process needs to be documented?
|
||||
- Who will be performing this process? (role/skill level)
|
||||
- What tools or systems are involved?
|
||||
- Are there any compliance or quality requirements?
|
||||
- What's the desired outcome of this process?
|
||||
|
||||
### 2. Structure the SOP
|
||||
Create a document with these sections:
|
||||
|
||||
#### Header Information
|
||||
- **Title**: Clear, descriptive name of the process
|
||||
- **Version**: Start with 1.0
|
||||
- **Last Updated**: Current date
|
||||
- **Owner**: Who maintains this SOP
|
||||
- **Audience**: Who should follow this SOP
|
||||
|
||||
#### Overview
|
||||
- **Purpose**: Why this SOP exists
|
||||
- **Scope**: What this SOP covers and doesn't cover
|
||||
- **Prerequisites**: What's needed before starting
|
||||
|
||||
#### Procedure
|
||||
- Numbered steps with clear action verbs
|
||||
- Sub-steps where needed
|
||||
- Decision points with clear criteria
|
||||
- Screenshots/diagrams placeholders where helpful
|
||||
- Warnings or notes for critical steps
|
||||
|
||||
#### Quality Checks
|
||||
- How to verify the process was done correctly
|
||||
- Common errors and how to avoid them
|
||||
|
||||
#### Troubleshooting
|
||||
- Common issues and their solutions
|
||||
- When to escalate and to whom
|
||||
|
||||
#### References
|
||||
- Related SOPs
|
||||
- Tools and systems mentioned
|
||||
- Contact information for questions
|
||||
|
||||
### 3. Writing Guidelines
|
||||
- Use active voice and imperative mood ("Click the button" not "The button should be clicked")
|
||||
- One action per step when possible
|
||||
- Be specific about locations, names, and values
|
||||
- Include expected outcomes after key steps
|
||||
- Use consistent terminology throughout
|
||||
- Assume the reader has no prior knowledge of the process
|
||||
|
||||
## Input
|
||||
|
||||
$ARGUMENTS
|
||||
|
||||
## Output Format
|
||||
|
||||
```markdown
|
||||
# SOP: [Process Name]
|
||||
|
||||
**Version:** 1.0
|
||||
**Last Updated:** [Date]
|
||||
**Owner:** [Role/Name]
|
||||
**Audience:** [Who uses this SOP]
|
||||
|
||||
---
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
[Why this process exists and what it achieves]
|
||||
|
||||
## 2. Scope
|
||||
|
||||
**Includes:**
|
||||
- [What this SOP covers]
|
||||
|
||||
**Excludes:**
|
||||
- [What this SOP does not cover]
|
||||
|
||||
## 3. Prerequisites
|
||||
|
||||
- [ ] [Requirement 1]
|
||||
- [ ] [Requirement 2]
|
||||
- [ ] [Access/permissions needed]
|
||||
|
||||
## 4. Procedure
|
||||
|
||||
### Step 1: [Action Title]
|
||||
|
||||
1. [Specific action]
|
||||
2. [Specific action]
|
||||
- [Sub-step if needed]
|
||||
- [Sub-step if needed]
|
||||
|
||||
> **Note:** [Important information]
|
||||
|
||||
**Expected Result:** [What should happen]
|
||||
|
||||
### Step 2: [Action Title]
|
||||
|
||||
[Continue with numbered steps...]
|
||||
|
||||
> **Warning:** [Critical information that could cause issues]
|
||||
|
||||
## 5. Quality Checklist
|
||||
|
||||
- [ ] [Verification item 1]
|
||||
- [ ] [Verification item 2]
|
||||
- [ ] [Final outcome achieved]
|
||||
|
||||
## 6. Troubleshooting
|
||||
|
||||
| Issue | Cause | Solution |
|
||||
|-------|-------|----------|
|
||||
| [Problem] | [Why it happens] | [How to fix] |
|
||||
|
||||
## 7. References
|
||||
|
||||
- [Related SOP or document]
|
||||
- [Tool documentation]
|
||||
- [Contact for questions]
|
||||
|
||||
---
|
||||
|
||||
**Revision History**
|
||||
|
||||
| Version | Date | Author | Changes |
|
||||
|---------|------|--------|---------|
|
||||
| 1.0 | [Date] | [Author] | Initial version |
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
Add any additional SOP templates or examples to the `./references/` folder.
|
||||
Reference in New Issue
Block a user