Initialized project structure

This commit is contained in:
Ognjen Gatalo
2026-02-02 22:20:10 +01:00
parent 1888c06901
commit fc4284dc19
8 changed files with 642 additions and 1 deletions
+26
View File
@@ -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"
]
}
]
}
+100
View File
@@ -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
+39
View File
@@ -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.]
+85 -1
View File
@@ -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
View File
@@ -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();
+28
View File
@@ -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"
}
+152
View File
@@ -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.