USP
OPC Skills uniquely addresses the needs of one-person companies by providing a diverse, interconnected set of automation tools for business growth. It offers broad compatibility, working seamlessly with over 16 different AI coding agents a…
Use cases
- 01Conducting market research for new product ideas
- 02Optimizing website SEO and Generative Engine Optimization (GEO)
- 03Creating logos and banners with AI
- 04Finding and comparing domain names
- 05Archiving session learnings and debugging solutions
Detected files (8)
skills/archive/SKILL.mdskillShow content (2151 bytes)
--- name: archive description: "Archive session learnings, debugging solutions, and deployment logs to .archive/yyyy-mm-dd/ as indexed markdown with searchable tags. Use when completing a significant task, resolving a tricky bug, deploying, or when the user says \"archive this\". Maintains .archive/MEMORY.md index for cross-session knowledge reuse." --- # Archive Skill Capture, index, and reuse project knowledge across sessions. ## When to Archive - After completing a significant task (deploy, migration, major feature) - After resolving a tricky debugging session - When the user says "archive this" - After any multi-step process with learnings worth preserving ## When to Consult Archives - Before debugging infrastructure, deploy, or CI issues - Before repeating a process done in a past session - When encountering an error that may have been solved before **Search**: `grep -ri "keyword" .archive/` **Index**: `.archive/MEMORY.md` ## Archive Workflow 1. Read `.archive/MEMORY.md` — check for related existing archives 2. Create `.archive/YYYY-MM-DD/` directory if needed 3. Write markdown file with YAML frontmatter (see `references/TEMPLATE.md`) 4. **Update `.archive/MEMORY.md`**: add one-line entry under the right category 5. If related archives exist, add `related` field in frontmatter ## Lookup Workflow 1. Read `.archive/MEMORY.md` to find relevant entries 2. Read the specific archive file for detailed context 3. Apply learnings to current task ## Categories - **infrastructure** — AWS, ECS, IAM, networking, secrets, CloudWatch - **release** — TestFlight, versioning, Git Flow, CHANGELOG - **debugging** — Bug fixes, error resolution, gotchas - **feature** — Feature design, implementation notes - **design** — UI/UX, icons, visual design ## Rules - `.archive/` must be in `.gitignore` — local-only notes - Keep entries concise but reproducible - Focus on **problems, fixes, and exact commands** - Always update MEMORY.md after creating an archive - Use descriptive filenames (e.g., `cloudwatch-logging.md` not `session.md`) - Include YAML frontmatter with `tags`, `category`, and optional `related`skills/logo-creator/SKILL.mdskillShow content (5871 bytes)
--- name: logo-creator description: Create logos using AI image generation. Discuss style/ratio, generate variations, iterate with user feedback, crop, remove background, and export as SVG. Use when user wants to create a logo, icon, favicon, brand mark, mascot, emblem, or design a logo. --- # Logo Creator Skill Create professional logos through AI image generation with an iterative design process. ## Prerequisites **Required API Keys (set in environment):** - `GEMINI_API_KEY` - Get from [Google AI Studio](https://aistudio.google.com/apikey) - `REMOVE_BG_API_KEY` - Get from [remove.bg](https://www.remove.bg/api) - `RECRAFT_API_KEY` - Get from [recraft.ai](https://www.recraft.ai/) **Required Skills:** - `nanobanana` - AI image generation (Gemini 3 Pro Image) ## File Output Location All generated files should be saved to the `.skill-archive` directory: ``` .skill-archive/logo-creator/<yyyy-mm-dd-summaryname>/ ``` **Example:** ``` .skill-archive/logo-creator/2026-01-18-opc-logo/ logo-01.png logo-02.png ... logo-09-cropped.png logo-09-nobg.png logo-09.svg preview.html ``` **Guidelines:** - Use current date in format `yyyy-mm-dd` - Add short summary name (project/brand name, kebab-case) - Create directory before generating first logo - Keep all variations and iterations in same folder - Final approved logo should be copied to user's desired location ## Workflow ### Step 1: Discovery & Requirements Before generating, gather requirements from user: **Ask about:** 1. **Project/Brand name** - What is the logo for? 2. **Style preference** - See [references/styles.md](./references/styles.md) for options: - Pixel art / 8-bit retro - Minimalist / flat design - 3D / isometric - Hand-drawn / sketch - Mascot / character - Monogram / lettermark - Abstract / geometric 3. **Aspect ratio** - Default is 1:1 (square), options: - `1:1` - Square (favicons, app icons) - `16:9` - Wide (headers, banners) - `4:3` - Standard - `2:3` - Portrait 4. **Color preferences**: - Monochrome (black & white) - Specific brand colors - Let AI decide 5. **Reference images** - Any existing logos or styles to reference? **Wait for user confirmation before proceeding!** ### Step 2: Generate Logo Variations Generate 20 logo variations (default) using the `nanobanana` skill: ```bash # Generate single logo python3 <nanobanana_skill_dir>/scripts/generate.py "{style} logo for {brand}, {description}, {colors}" \ --ratio 1:1 -o .skill-archive/logo-creator/<date-name>/logo-01.png # Batch generate 20 logos python3 <nanobanana_skill_dir>/scripts/batch_generate.py "{style} logo for {brand}, {description}, {colors}" \ -n 20 --ratio 1:1 -d .skill-archive/logo-creator/<date-name> -p logo ``` **Guidelines:** - Use batch_generate.py for multiple variations (includes auto-delay) - Save to `.skill-archive/logo-creator/<yyyy-mm-dd-summaryname>/` directory - Use sequential naming: `logo-01.png`, `logo-02.png`, etc. **Prompt Tips:** - Include style keywords: "pixel art", "minimalist", "8-bit", "flat design" - Specify colors: "black on white", "monochrome", "blue gradient" - Add context: "tech startup", "food brand", "gaming company" - Request format: "icon", "emblem", "mascot", "lettermark" ### Step 3: Create HTML Preview Copy the preview template and open in browser: ```bash cp <skill_dir>/templates/preview.html .skill-archive/logo-creator/<yyyy-mm-dd-summaryname>/preview.html ``` Then open in default browser: ```bash open .skill-archive/logo-creator/<yyyy-mm-dd-summaryname>/preview.html ``` **IMPORTANT:** Update the HTML to include the correct number of logos generated. ### Step 4: Iterate with User Ask user which logos they prefer: - "Which logos do you like? (e.g., #5, #12, #18)" - "What do you like about them?" - "Any changes you'd want?" Based on feedback: 1. Generate 10-20 more variations of favorite styles 2. Use naming: `logo-{original}-v{n}.png` (e.g., `logo-05-v1.png`) 3. Update HTML preview 4. Repeat until user selects final logo ### Step 5: Finalize Logo Once user approves a logo, process it: **5a. Crop whitespace (make 1:1 with no margins):** ```bash python3 <skill_dir>/scripts/crop_logo.py {input.png} {output-cropped.png} ``` **5b. Remove background:** ```bash python3 <skill_dir>/scripts/remove_bg.py {input.png} {output-nobg.png} ``` **5c. Convert to SVG:** ```bash python3 <skill_dir>/scripts/vectorize.py {input.png} {output.svg} ``` ### Step 6: Deliver Final Assets Present final deliverables: ``` ## Final Logo Assets | File | Description | Size | |------|-------------|------| | logo.png | Original | 1024x1024 | | logo-cropped.png | No margins, 1:1 | ~800x800 | | logo-nobg.png | Transparent background | ~800x800 | | logo.svg | Vector (scalable) | ~20KB | All files saved to: `.skill-archive/logo-creator/<yyyy-mm-dd-summaryname>/` Copy final logo to user's desired location. ``` ## Quick Reference ### Common Prompt Patterns **Pixel Art:** ``` Pixel art {subject} logo, 8-bit retro style, black pixels on white background, {size}x{size} grid, minimalist icon ``` **Minimalist:** ``` Minimalist {subject} logo, flat design, clean lines, {color} on white, simple geometric shapes ``` **Mascot:** ``` Cute {animal/character} mascot logo, friendly expression, {style} style, {colors}, suitable for brand icon ``` **Lettermark:** ``` Letter "{letter}" logo, modern typography, {style} design, {colors}, clean professional look ``` ### Supported Aspect Ratios - `1:1` - Square (default for logos) - `2:3`, `3:2` - Portrait/Landscape - `3:4`, `4:3` - Standard - `4:5`, `5:4` - Photo - `9:16`, `16:9` - Wide - `21:9` - Ultra-wide ## References - [references/styles.md](./references/styles.md) - Logo style guide with prompt examples - [examples/opc-logo-creation.md](./examples/opc-logo-creation.md) - Full example conversation.agents/skills/seo-geo/SKILL.mdskillShow content (8483 bytes)
--- name: seo-geo description: | SEO & GEO (Generative Engine Optimization) for websites. Analyze keywords, generate schema markup, optimize for AI search engines (ChatGPT, Perplexity, Gemini, Copilot, Claude) and traditional search (Google, Bing). Use when user wants to improve search visibility. triggers: - "SEO" - "GEO" - "search optimization" - "schema markup" - "JSON-LD" - "meta tags" - "keyword research" - "search ranking" - "AI visibility" - "ChatGPT ranking" - "Perplexity" - "Google AI Overview" - "indexing" --- # SEO/GEO Optimization Skill Comprehensive SEO and GEO (Generative Engine Optimization) for websites. Optimize for both traditional search engines (Google, Bing) and AI search engines (ChatGPT, Perplexity, Gemini, Copilot, Claude). ## Quick Reference **GEO = Generative Engine Optimization** - Optimizing content to be cited by AI search engines. **Key Insight:** AI search engines don't rank pages - they **cite sources**. Being cited is the new "ranking #1". ## Workflow ### Step 1: Website Audit Get the target URL and analyze current SEO/GEO status. **Basic SEO Audit (Free):** ```bash python3 scripts/seo_audit.py "https://example.com" ``` **Use this for**: Quick technical SEO check (title, meta, H1, robots, sitemap, load time). No API needed. --- **Check Meta Tags:** ```bash curl -sL "https://example.com" | grep -E "<title>|<meta name=\"description\"|<meta property=\"og:|application/ld\+json" | head -20 ``` **Use this for**: Quick check of essential meta tags and schema markup on any webpage. --- **Check robots.txt:** ```bash curl -s "https://example.com/robots.txt" ``` **Use this for**: Verify which bots are allowed/blocked. Critical for ensuring AI search engines can crawl your site. --- **Check sitemap:** ```bash curl -s "https://example.com/sitemap.xml" | head -50 ``` **Use this for**: Verify sitemap structure and ensure all important pages are included for search engine discovery. **Verify AI Bot Access:** ``` # These bots should be allowed in robots.txt: - Googlebot (Google) - Bingbot (Bing/Copilot) - PerplexityBot (Perplexity) - ChatGPT-User (ChatGPT with browsing) - ClaudeBot / anthropic-ai (Claude) - GPTBot (OpenAI) ``` ### Step 2: Keyword Research Use **WebSearch** to research target keywords: ``` WebSearch: "{keyword} keyword difficulty site:ahrefs.com OR site:semrush.com" WebSearch: "{keyword} search volume 2026" WebSearch: "site:{competitor.com} {keyword}" ``` **Analyze:** - Search volume and difficulty - Competitor keyword strategies - Long-tail keyword opportunities - International keyword conflicts (e.g., "OPC" = industrial automation in English markets) ### Step 3: GEO Optimization (AI Search Engines) Apply the **9 Princeton GEO Methods** (see [references/geo-research.md](./references/geo-research.md)): | Method | Visibility Boost | How to Apply | |--------|-----------------|--------------| | **Cite Sources** | +40% | Add authoritative citations and references | | **Statistics Addition** | +37% | Include specific numbers and data points | | **Quotation Addition** | +30% | Add expert quotes with attribution | | **Authoritative Tone** | +25% | Use confident, expert language | | **Easy-to-understand** | +20% | Simplify complex concepts | | **Technical Terms** | +18% | Include domain-specific terminology | | **Unique Words** | +15% | Increase vocabulary diversity | | **Fluency Optimization** | +15-30% | Improve readability and flow | | ~~Keyword Stuffing~~ | **-10%** | **AVOID - hurts visibility** | **Best Combination:** Fluency + Statistics = Maximum boost **Generate FAQPage Schema** (+40% AI visibility): ```json { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "What is [topic]?", "acceptedAnswer": { "@type": "Answer", "text": "According to [source], [answer with statistics]." } }] } ``` **Optimize Content Structure:** - Use "answer-first" format (direct answer at top) - Clear H1 > H2 > H3 hierarchy - Bullet points and numbered lists - Tables for comparison data - Short paragraphs (2-3 sentences max) ### Step 4: Traditional SEO Optimization **Meta Tags Template:** ```html <title>{Primary Keyword} - {Brand} | {Secondary Keyword}</title> <meta name="description" content="{Compelling description with keyword, 150-160 chars}"> <meta name="keywords" content="{keyword1}, {keyword2}, {keyword3}"> <!-- Open Graph --> <meta property="og:title" content="{Title}"> <meta property="og:description" content="{Description}"> <meta property="og:image" content="{Image URL 1200x630}"> <meta property="og:url" content="{Canonical URL}"> <meta property="og:type" content="website"> <!-- Twitter Cards --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="{Title}"> <meta name="twitter:description" content="{Description}"> <meta name="twitter:image" content="{Image URL}"> ``` **JSON-LD Schema** (see [references/schema-templates.md](./references/schema-templates.md)): - WebPage / Article for content pages - FAQPage for FAQ sections - Product for product pages - Organization for about pages - SoftwareApplication for tools/apps **Check Content:** - [ ] H1 contains primary keyword - [ ] Images have descriptive alt text - [ ] Internal links to related content - [ ] External links have `rel="noopener noreferrer"` - [ ] Content is mobile-friendly - [ ] Page loads in < 3 seconds ### Step 5: Validate & Monitor **Schema Validation:** ```bash # Open Google Rich Results Test open "https://search.google.com/test/rich-results?url={encoded_url}" # Open Schema.org Validator open "https://validator.schema.org/?url={encoded_url}" ``` **Check Indexing Status:** ```bash # Google (use Search Console API or manual check) open "https://www.google.com/search?q=site:{domain}" # Bing open "https://www.bing.com/search?q=site:{domain}" ``` **Generate Report:** ```markdown ## SEO/GEO Optimization Report ### Current Status - Meta Tags: ✅/❌ - Schema Markup: ✅/❌ - AI Bot Access: ✅/❌ - Mobile Friendly: ✅/❌ - Page Speed: X seconds ### Recommendations 1. [Priority 1 action] 2. [Priority 2 action] 3. [Priority 3 action] ### GEO Optimizations Applied - [ ] FAQPage schema added - [ ] Statistics included - [ ] Citations added - [ ] Answer-first structure ``` ## Platform-Specific Optimization See [references/platform-algorithms.md](./references/platform-algorithms.md) for detailed ranking factors. ### ChatGPT - Focus on **branded domain authority** (cited 11% more than third-party) - Update content within **30 days** (3.2x more citations) - Build **backlinks** (>350K referring domains = 8.4 avg citations) - Match content style to ChatGPT's response format ### Perplexity - Allow **PerplexityBot** in robots.txt - Use **FAQ Schema** (higher citation rate) - Host **PDF documents** (prioritized for citation) - Focus on **semantic relevance** over keywords ### Google AI Overview (SGE) - Optimize for **E-E-A-T** (Experience, Expertise, Authority, Trust) - Use **structured data** (Schema markup) - Build **topical authority** (content clusters + internal linking) - Include **authoritative citations** (+132% visibility) ### Microsoft Copilot / Bing - Ensure **Bing indexing** (required for citation) - Optimize for **Microsoft ecosystem** (LinkedIn, GitHub mentions help) - Page speed **< 2 seconds** - Clear **entity definitions** ### Claude AI - Ensure **Brave Search indexing** (Claude uses Brave, not Google) - High **factual density** (data-rich content preferred) - Clear **structural clarity** (easy to extract) ## Skill Dependencies This skill works best with: - **twitter skill** - Search SEO experts for latest tips - **reddit skill** - Search r/SEO, r/bigseo for discussions - **WebSearch** - Keyword research and competitor analysis ## References - [references/platform-algorithms.md](./references/platform-algorithms.md) - Detailed ranking factors for each platform - [references/geo-research.md](./references/geo-research.md) - Princeton GEO research (9 methods) - [references/schema-templates.md](./references/schema-templates.md) - JSON-LD templates - [references/seo-checklist.md](./references/seo-checklist.md) - Complete SEO audit checklist - [references/tools-and-apis.md](./references/tools-and-apis.md) - Tools and API reference - [examples/opc-skills-case-study.md](./examples/opc-skills-case-study.md) - Real-world optimization example.factory/skills/add-new-opc-skill/SKILL.mdskillShow content (7543 bytes)
--- name: add-new-opc-skill description: Checklist and automation guide for adding a new skill to the OPC Skills project. Ensures all required files, metadata, logos, and listings are created before release. Use when adding a new skill, publishing a skill, or preparing a skill for release. --- # Add New OPC Skill Use this skill when adding a new skill to the OPC Skills project. Follow every step below to ensure the skill meets all publishing requirements. ## Pre-flight Before starting, confirm: - You are on a feature branch: `feature/skill/<skill-name>` (branched from `develop`) - The skill name is kebab-case (e.g., `my-new-skill`) ## Checklist ### 1. Skill Directory Structure Create the skill directory with required files: ``` skills/<skill-name>/ ├── SKILL.md (required) Main skill documentation ├── scripts/ (if skill has scripts) │ └── *.py / *.sh ├── examples/ (recommended) Usage examples │ └── *.md └── references/ (optional) API docs, templates └── *.md ``` **SKILL.md** must include YAML frontmatter: ```yaml --- name: <skill-name> description: Clear description. Include trigger keywords and "Use when..." contexts. --- ``` Use `template/SKILL.md` as a starting point: ```bash cp -r template skills/<skill-name> ``` ### 2. Skill Logo Generate a pixel-art style SVG logo matching existing skill logos: ```bash # Use the logo-creator skill python3 skills/nanobanana/scripts/batch_generate.py \ "Pixel art <subject> logo, 8-bit retro style, black pixels on white background, minimalist icon, clean crisp edges, no text, centered" \ -n 20 --ratio 1:1 \ -d .skill-archive/logo-creator/<date>-<skill-name> \ -p logo # Open preview to pick a logo cp skills/logo-creator/templates/preview.html .skill-archive/logo-creator/<date>-<skill-name>/ open .skill-archive/logo-creator/<date>-<skill-name>/preview.html # After picking (e.g., #5): python3 skills/logo-creator/scripts/crop_logo.py <input>.png <output>-cropped.png python3 skills/logo-creator/scripts/vectorize.py <output>-cropped.png skill-logos/<skill-name>.svg ``` Verify: `skill-logos/<skill-name>.svg` exists and matches the pixel-art style of other logos. ### 3. skills.json Entry Add a complete entry to the `skills` array in `skills.json`. All fields are required unless noted: ```json { "name": "<skill-name>", "version": "1.0.0", "description": "Full description of the skill.", "logo": "https://raw.githubusercontent.com/ReScienceLab/opc-skills/main/skill-logos/<skill-name>.svg", "icon": "<simpleicons-name>", "color": "<hex-without-hash>", "triggers": ["trigger1", "trigger2"], "dependencies": {}, "auth": { "required": false, "type": null, "keys": [] }, "install": { "user": { "claude": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a claude", "droid": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a droid", "opencode": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a opencode", "codex": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a codex" }, "project": { "claude": "npx skills add ReScienceLab/opc-skills --skill <skill-name>", "droid": "npx skills add ReScienceLab/opc-skills --skill <skill-name>", "cursor": "npx skills add ReScienceLab/opc-skills --skill <skill-name>", "opencode": "npx skills add ReScienceLab/opc-skills --skill <skill-name>", "codex": "npx skills add ReScienceLab/opc-skills --skill <skill-name>" } }, "commands": [ "python3 scripts/example.py \"{input}\"" ], "links": { "github": "https://github.com/ReScienceLab/opc-skills/tree/main/skills/<skill-name>" } } ``` **Field notes:** - `icon`: Use a [Simple Icons](https://simpleicons.org/) name, or generic like `"globe"`, `"archive"`, `"image"` - `color`: 6-char hex without `#` (e.g., `"6B7280"`) - `dependencies`: Object with skill names as keys and version ranges as values (e.g., `{"twitter": ">=1.0.0"}`) - `auth.keys`: Array of `{"env": "VAR_NAME", "url": "https://...", "optional": true/false}` - `commands`: List of CLI commands the skill exposes (empty array `[]` if instructions-only) Validate after editing: ```bash python3 -c "import json; json.load(open('skills.json')); print('valid')" ``` ### 4. README.md Add the skill to the "Included Skills" table in `README.md`: ```markdown | <img src="./skill-logos/<skill-name>.svg" width="24"> | [<skill-name>](./skills/<skill-name>) | Short description | ``` Insert in the appropriate position within the existing table. ### 5. Website (worker.js) Add the skill to the hardcoded skills array in `website/worker.js` inside the `fetchCompareData()` function. Find the `],\n };\n}` closing of the skills array and add before it: ```javascript { name: "<skill-name>", version: "1.0.0", description: "<description>", icon: "<icon>", color: "<color>", triggers: ["trigger1", "trigger2"], dependencies: [], auth: { required: false, note: "..." }, install: { user: { claude: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a claude", droid: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a droid", opencode: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a opencode", codex: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a codex", }, project: { claude: "npx skills add ReScienceLab/opc-skills --skill <skill-name>", droid: "npx skills add ReScienceLab/opc-skills --skill <skill-name>", cursor: "npx skills add ReScienceLab/opc-skills --skill <skill-name>", opencode: "npx skills add ReScienceLab/opc-skills --skill <skill-name>", codex: "npx skills add ReScienceLab/opc-skills --skill <skill-name>", }, }, commands: [], links: { github: "https://github.com/ReScienceLab/opc-skills/tree/main/skills/<skill-name>", }, }, ``` ### 6. CHANGELOG.md Add the skill to the **Skill Compatibility & Dependency Matrix** table: ```markdown | **<skill-name>** | 1.0.0 | - | - | ``` Add an entry under `## [Unreleased]` (or the release version section): ```markdown ### <skill-name> #### [1.0.0] - YYYY-MM-DD - **Added**: Initial release - <description> ``` ## Verification Before committing, verify all items: ```bash # 1. SKILL.md exists with valid frontmatter head -5 skills/<skill-name>/SKILL.md # 2. Logo SVG exists ls -la skill-logos/<skill-name>.svg # 3. skills.json is valid JSON with all fields python3 -c " import json config = json.load(open('skills.json')) skill = [s for s in config['skills'] if s['name'] == '<skill-name>'][0] required = ['name','version','description','logo','icon','color','triggers','dependencies','auth','install','links'] missing = [f for f in required if f not in skill] print('PASS' if not missing else f'MISSING: {missing}') " # 4. README.md lists the skill grep '<skill-name>' README.md # 5. worker.js has the skill grep '<skill-name>' website/worker.js # 6. CHANGELOG.md has the skill in matrix grep '<skill-name>' CHANGELOG.md ``` ## Git Workflow ```bash # Branch git checkout develop && git pull git checkout -b feature/skill/<skill-name> # Commit git add skills/<skill-name>/ skill-logos/<skill-name>.svg skills.json README.md website/worker.js CHANGELOG.md git commit -m "feat(skill): add <skill-name> skill" # PR to develop git push -u origin feature/skill/<skill-name> gh pr create --base develop ```skills/nanobanana/SKILL.mdskillShow content (5281 bytes)
--- name: nanobanana description: Generate and edit images using Google Gemini 3 Pro Image (Nano Banana Pro). Supports text-to-image, image editing, various aspect ratios, and high-resolution output (2K/4K). Use when user wants to generate images, create images, use Gemini image generation, or do AI image generation. --- # Nano Banana - AI Image Generation Generate and edit images using Google's Gemini 3 Pro Image model (`gemini-3-pro-image-preview`, nicknamed "Nano Banana Pro" 🍌). ## Prerequisites **Required:** - `GEMINI_API_KEY` - Get from [Google AI Studio](https://aistudio.google.com/apikey) - Python 3.10+ with `google-genai` package **Install dependencies:** ```bash pip install google-genai pillow ``` ## Quick Start ### Generate an image: ```bash python3 <skill_dir>/scripts/generate.py "a cute robot mascot, pixel art style" -o robot.png ``` ### Edit an existing image: ```bash python3 <skill_dir>/scripts/generate.py "make the background blue" -i input.jpg -o output.png ``` ### Generate with specific aspect ratio: ```bash python3 <skill_dir>/scripts/generate.py "cinematic landscape" --ratio 21:9 -o landscape.png ``` ### Generate high-resolution 4K image: ```bash python3 <skill_dir>/scripts/generate.py "professional product photo" --size 4K -o product.png ``` ## Script Reference ### `scripts/generate.py` Main image generation script. ``` Usage: generate.py [OPTIONS] PROMPT Arguments: PROMPT Text prompt for image generation Options: -o, --output PATH Output file path (default: auto-generated) -i, --input PATH Input image for editing (optional) -r, --ratio RATIO Aspect ratio (1:1, 16:9, 9:16, 21:9, etc.) -s, --size SIZE Image size: 2K or 4K (default: standard) --search Enable Google Search grounding for accuracy -v, --verbose Show detailed output ``` **Supported aspect ratios:** - `1:1` - Square (default) - `2:3`, `3:2` - Portrait/Landscape - `3:4`, `4:3` - Standard - `4:5`, `5:4` - Photo - `9:16`, `16:9` - Widescreen - `21:9` - Ultra-wide/Cinematic ### `scripts/batch_generate.py` Generate multiple images with sequential naming. ``` Usage: batch_generate.py [OPTIONS] PROMPT Arguments: PROMPT Text prompt for image generation Options: -n, --count N Number of images to generate (default: 10) -d, --dir PATH Output directory -p, --prefix STR Filename prefix (default: "image") -r, --ratio RATIO Aspect ratio -s, --size SIZE Image size (2K/4K) --delay SECONDS Delay between generations (default: 3) ``` **Example:** ```bash python3 <skill_dir>/scripts/batch_generate.py "pixel art logo" -n 20 -d ./logos -p logo ``` ## Python API You can also use the module directly: ```python from generate import generate_image, edit_image # Generate image result = generate_image( prompt="a futuristic city at night", output_path="city.png", aspect_ratio="16:9", image_size="4K" ) # Edit existing image result = edit_image( prompt="add flying cars to the sky", input_path="city.png", output_path="city_edited.png" ) ``` ## Environment Variables | Variable | Description | Default | |----------|-------------|---------| | `GEMINI_API_KEY` | Google Gemini API key | Required | | `IMAGE_OUTPUT_DIR` | Default output directory | `./nanobanana-images` | ## Features ### Text-to-Image Generation Create images from text descriptions. The model excels at: - Photorealistic images - Artistic styles (pixel art, illustration, etc.) - Product photography - Landscapes and scenes ### Image Editing Transform existing images with natural language: - Style transfer - Object addition/removal - Background changes - Color adjustments ### High-Resolution Output - **Standard**: Fast generation, good quality - **2K**: Enhanced detail (2048px) - **4K**: Maximum quality (3840px), best for text rendering ### Google Search Grounding Enable `--search` for factually accurate images involving: - Real people, places, landmarks - Current events - Specific products or brands ## Best Practices ### Prompt Writing **Good prompts include:** - Subject description - Style/aesthetic - Lighting and mood - Composition details - Color palette **Example:** ``` "A cozy coffee shop interior, warm lighting, vintage aesthetic, wooden furniture, plants on shelves, morning sunlight through windows, soft focus background, 35mm film photography style" ``` ### Batch Generation Tips 1. Generate 10-20 variations to explore options 2. Use consistent prompts for style coherence 3. Add 3-5 second delays to avoid rate limits 4. Review results and iterate on best candidates ## Rate Limits - Gemini API has usage quotas - Add delays between batch generations - Check your quota at [Google AI Studio](https://aistudio.google.com/) ## Troubleshooting **"API key not found"** - Set `GEMINI_API_KEY` environment variable - Or pass via `--api-key` option **"No image in response"** - Prompt may have triggered safety filters - Try rephrasing to avoid sensitive content **"Rate limit exceeded"** - Wait a few seconds and retry - Reduce batch size or add longer delays ## References - [references/prompts.md](./references/prompts.md) - Prompt examples by category - [examples/](./examples/) - Example usage scriptsskills/domain-hunter/SKILL.mdskillShow content (3829 bytes)
--- name: domain-hunter description: Search domains, compare prices, find promo codes, get purchase recommendations. Use when user wants to buy a domain, check domain prices, find domain deals, compare registrars, or search for .ai/.com domains. --- # Domain Hunter Skill Help users find and purchase domain names at the best price. ## Workflow ### Step 1: Generate Domain Ideas & Check Availability Based on the user's project description, generate 5-10 creative domain name suggestions. **Guidelines:** - Keep names short (under 15 characters) - Make them memorable and brandable - Consider: `{action}{noun}`, `{noun}{suffix}`, `{prefix}{keyword}` - Common suffixes: app, io, hq, ly, ify, now, hub **CRITICAL: Always check availability before presenting domains to user!** Use one of these methods to verify availability: **Method 1: WHOIS check (most reliable)** ```bash # Check if domain is available via whois whois {domain}.{tld} 2>/dev/null | grep -i "no match\|not found\|available\|no data found" && echo "AVAILABLE" || echo "TAKEN" ``` **Method 2: Registrar search page** Open the registrar's domain search in browser to verify: ```bash open "https://www.spaceship.com/domains/?search={domain}.{tld}" ``` **Method 3: Bulk check via Namecheap/Dynadot** - https://www.namecheap.com/domains/registration/results/?domain={domain} - https://www.dynadot.com/domain/search?domain={domain} **IMPORTANT:** - Only present domains that are confirmed AVAILABLE - Mark any uncertain domains with "(unverified)" - Present suggestions to user and **wait for confirmation** before proceeding - Ask user to pick their preferred options or provide feedback - Only move to Step 2 after user approves domain name(s) ### Step 2: Compare Prices Use **WebSearch** to find current prices: ``` WebSearch: "cheapest .{tld} domain registrar 2026 site:tld-list.com" WebSearch: ".{tld} domain price comparison tldes.com" ``` **Key price comparison sites:** - tld-list.com/tld/{tld} - tldes.com/{tld} - domaintyper.com/{tld}-domain ### Step 3: Find Promo Codes Use **Twitter skill** to search registrar accounts: ```bash cd <twitter_skill_directory> python3 scripts/search_tweets.py "from:{registrar} promo code" --type Latest --limit 15 python3 scripts/search_tweets.py "{registrar} promo code coupon" --type Latest --limit 15 ``` Use **Reddit skill** to search domain communities: ```bash cd <reddit_skill_directory> python3 scripts/search_posts.py "{registrar} promo code" --limit 15 python3 scripts/search_posts.py "{registrar} coupon discount" --subreddit Domains --limit 10 ``` **Major registrar Twitter handles:** - @spaceship, @Dynadot, @Namecheap, @Porkbun, @namesilo, @Cloudflare ### Step 4: Recommend Present final recommendation in this format: ``` ## Recommendation **Domain:** example.ai **Best Registrar:** Spaceship **Price:** $68.98/year (2-year minimum = $137.96) **Promo Code:** None available for .ai **Purchase Link:** https://www.spaceship.com/ ### Price Comparison | Registrar | Year 1 | Renewal | 2-Year Total | |-----------|--------|---------|--------------| | Spaceship | $68.98 | $68.98 | $137.96 | | Cloudflare| $70.00 | $70.00 | $140.00 | | Porkbun | $71.40 | $72.40 | $143.80 | ``` ## Important Notes 1. **Premium TLDs** (.ai, .io) rarely have promo codes - wholesale costs are too high 2. **.ai domains** require 2-year minimum registration 3. **Cloudflare** offers at-cost pricing with no markup 4. **Renewal prices** often differ from registration - always check both 5. **WHOIS privacy** is free at most registrars (Cloudflare, Namecheap, Porkbun) ## References - [references/registrars.md](./references/registrars.md) - Detailed registrar comparison - [references/spaceship-api.md](./references/spaceship-api.md) - Spaceship API for automated domain operationsskills/banner-creator/SKILL.mdskillShow content (5364 bytes)
--- name: banner-creator description: Create banners using AI image generation. Discuss format/style, generate variations, iterate with user feedback, crop to target ratio. Use when user wants to create a banner, header, hero image, cover image, GitHub banner, Twitter header, or readme banner. --- # Banner Creator Skill Create professional banners through AI image generation with an iterative design process. ## Prerequisites **Required API Keys (set in environment):** - `GEMINI_API_KEY` - Get from [Google AI Studio](https://aistudio.google.com/apikey) **Required Skills:** - `nanobanana` - AI image generation (Gemini 3 Pro Image) ## File Output Location All generated files should be saved to the `.skill-archive` directory: ``` .skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/ ``` **Example:** ``` .skill-archive/banner-creator/2026-01-19-opc-banner/ banner-01.png banner-02.png ... banner-03-cropped.png preview.html ``` ## Workflow ### Step 1: Discovery & Requirements Before generating, gather requirements from user: **Ask about:** 1. **Purpose** - Where will the banner be used? - GitHub README - Twitter/X header - LinkedIn banner - Website hero - YouTube channel art 2. **Target ratio/size** - See [references/formats.md](./references/formats.md): - `2:1` (1280x640) - GitHub README - `3:1` (1500x500) - Twitter header - `16:9` (1920x1080) - Website hero 3. **Style preference**: - Match existing logo/brand? - Pixel art / 8-bit retro - Minimalist / flat design - Gradient / modern - Illustrated / artistic 4. **Content elements**: - Brand name / project name? - Tagline / slogan? - Logo character to include? 5. **Color preferences**: - Existing brand colors? - Let AI decide? **Wait for user confirmation before proceeding!** ### Step 2: Generate Banner Variations Generate 20 banner variations using the `nanobanana` skill: ```bash # Generate single banner python3 <nanobanana_skill_dir>/scripts/generate.py "{style} banner for {brand}, {description}, {text elements}" \ --ratio 21:9 -o .skill-archive/banner-creator/<date-name>/banner-01.png # Batch generate 20 banners python3 <nanobanana_skill_dir>/scripts/batch_generate.py "{style} banner for {brand}, {description}, {text elements}" \ -n 20 --ratio 21:9 -d .skill-archive/banner-creator/<date-name> -p banner ``` **Guidelines:** - Generate at `21:9` ratio (widest available), crop later to target - Use batch_generate.py for multiple variations (includes auto-delay) - Use sequential naming: `banner-01.png`, `banner-02.png`, etc. **Image Editing (for incorporating existing logo):** ```bash python3 <nanobanana_skill_dir>/scripts/generate.py "add {logo character} to the left side of the banner" \ -i /path/to/existing-logo.png --ratio 21:9 -o banner-with-logo.png ``` ### Step 3: Create HTML Preview Copy the preview template and open in browser: ```bash cp <skill_dir>/templates/preview.html .skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/preview.html ``` Then open in default browser: ```bash open .skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/preview.html ``` **IMPORTANT:** Update the HTML to include the correct number of banners generated. ### Step 4: Iterate with User Ask user which banners they prefer: - "Which banners do you like? (e.g., #3, #7, #15)" - "What do you like about them?" - "Any changes you'd want?" Based on feedback: 1. Generate 10-20 more variations of favorite styles 2. Use naming: `banner-{original}-v{n}.png` (e.g., `banner-03-v1.png`) 3. Update HTML preview 4. Repeat until user selects final banner ### Step 5: Crop to Target Ratio Once user approves a banner, crop to target size: ```bash python3 <skill_dir>/scripts/crop_banner.py {input.png} {output.png} --ratio 2:1 --width 1280 ``` **Common targets:** - GitHub README: `--ratio 2:1 --width 1280` → 1280x640 - Twitter header: `--ratio 3:1 --width 1500` → 1500x500 - Website hero: `--ratio 16:9 --width 1920` → 1920x1080 ### Step 6: Deliver Final Assets Present final deliverables: ``` ## Final Banner Assets | File | Description | Size | |------|-------------|------| | banner-03.png | Original (21:9) | 2016x864 | | banner-03-cropped.png | GitHub README (2:1) | 1280x640 | All files saved to: `.skill-archive/banner-creator/<yyyy-mm-dd-summaryname>/` Copy final banner to user's desired location. ``` ## Quick Reference ### Common Prompt Patterns **With Text:** ``` Wide banner for {brand}, {style} style, featuring "{text}" prominently displayed, {colors}, {scene/elements} ``` **With Character:** ``` Wide banner featuring {character description}, {style} style, {scene}, text "{brand name}" on {position}, {colors} ``` **Abstract/Gradient:** ``` Abstract {style} banner, {colors} gradient, geometric patterns, modern tech feel, text "{brand}" centered ``` **Scene-based:** ``` {Style} illustration banner, {scene description}, {character} in {action}, "{brand}" text overlay, {colors} ``` ### Supported Aspect Ratios Generate at widest ratio, then crop: - `21:9` - Ultra-wide (recommended for generation) - `16:9` - Wide - `3:2` - Standard wide ## References - [references/formats.md](./references/formats.md) - Common banner sizes by platform - [examples/opc-banner-creation.md](./examples/opc-banner-creation.md) - Full example conversation.claude-plugin/marketplace.jsonmarketplaceShow content (5845 bytes)
{ "name": "opc-skills", "owner": { "name": "ReScienceLab", "email": "yilin.jing@rescience.com" }, "metadata": { "description": "Agent Skills for One Person Companies - Boost your AI agent with specialized skills for solopreneurs and indie hackers", "version": "1.0.4" }, "keywords": [ "skills", "agents", "automation", "solopreneur", "indie-hacker", "one-person-company", "productivity", "seo", "social-media", "design", "market-research" ], "plugins": [ { "name": "requesthunt", "source": "./skills/requesthunt", "description": "Generate user demand research reports from real user feedback. Scrape and analyze feature requests, complaints, and questions from Reddit, X, and GitHub.", "version": "1.0.0", "homepage": "https://opc.dev/skills/requesthunt", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "market-research", "keywords": [ "market-research", "user-feedback", "reddit", "twitter", "github", "demand-analysis" ], "strict": true }, { "name": "domain-hunter", "source": "./skills/domain-hunter", "description": "Search domains, compare registrar prices, and find promo codes. Help users find and purchase domain names at the best price.", "version": "1.0.0", "homepage": "https://opc.dev/skills/domain-hunter", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "business", "keywords": [ "domain", "registrar", "pricing", "whois" ], "strict": true }, { "name": "logo-creator", "source": "./skills/logo-creator", "description": "Create logos using AI image generation. Discuss style/ratio, generate variations, iterate with user feedback, crop, remove background, and export as SVG.", "version": "1.0.0", "homepage": "https://opc.dev/skills/logo-creator", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "design", "keywords": [ "logo", "design", "branding", "ai-image-generation", "svg" ], "strict": true }, { "name": "banner-creator", "source": "./skills/banner-creator", "description": "Create banners using AI image generation. Discuss format/style, generate variations, iterate with user feedback, crop to target ratio for GitHub, Twitter, LinkedIn, etc.", "version": "1.0.0", "homepage": "https://opc.dev/skills/banner-creator", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "design", "keywords": [ "banner", "header", "social-media", "ai-image-generation" ], "strict": true }, { "name": "nanobanana", "source": "./skills/nanobanana", "description": "Generate and edit images using Google Gemini 3 Pro Image (Nano Banana Pro). Supports text-to-image, image editing, aspect ratios, and 2K/4K output.", "version": "1.0.0", "homepage": "https://opc.dev/skills/nanobanana", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "ai-tools", "keywords": [ "gemini", "image-generation", "ai", "batch-processing" ], "strict": true }, { "name": "reddit", "source": "./skills/reddit", "description": "Search and retrieve content from Reddit. Get posts, comments, subreddit info, and user profiles via the public JSON API.", "version": "1.0.0", "homepage": "https://opc.dev/skills/reddit", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "social-media", "keywords": [ "reddit", "social-media", "api", "content-scraping" ], "strict": true }, { "name": "twitter", "source": "./skills/twitter", "description": "Search and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io.", "version": "1.0.0", "homepage": "https://opc.dev/skills/twitter", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "social-media", "keywords": [ "twitter", "x", "social-media", "api" ], "strict": true }, { "name": "producthunt", "source": "./skills/producthunt", "description": "Search and retrieve content from Product Hunt. Get posts, topics, users, and collections via the GraphQL API.", "version": "1.0.0", "homepage": "https://opc.dev/skills/producthunt", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "product-discovery", "keywords": [ "producthunt", "product-launch", "api" ], "strict": true }, { "name": "seo-geo", "source": "./skills/seo-geo", "description": "SEO & GEO (Generative Engine Optimization) for websites. Optimize for AI search engines (ChatGPT, Perplexity, Gemini, Copilot, Claude) and traditional search (Google, Bing).", "version": "1.0.0", "homepage": "https://opc.dev/skills/seo-geo", "repository": "https://github.com/ReScienceLab/opc-skills", "license": "MIT", "category": "seo", "keywords": [ "seo", "geo", "optimization", "schema-markup", "ai-visibility" ], "strict": true } ] }
README
OPC Skills
AI Agent Skills for Solopreneurs, Indie Hackers, and One-Person Companies
Extend Claude Code, Cursor, Codex, and more with automation skills.
Browse Skills · Quick Install · View All Skills
What are Skills?
Skills are folders of instructions, scripts, and resources that AI agents load dynamically to improve performance on specialized tasks. Each skill is self-contained with a SKILL.md file containing instructions and metadata.
For more information about the Agent Skills standard, see agentskills.io.
Included Skills
| Skill | Description | |
|---|---|---|
| seo-geo | SEO & GEO optimization for AI search engines (ChatGPT, Perplexity, Google) | |
| requesthunt | Research user demand from Reddit, X, and GitHub | |
| domain-hunter | Find domains, compare registrar prices, and discover promo codes | |
| logo-creator | Create logos with AI, crop, remove background, export as SVG | |
| banner-creator | Create banners for GitHub, Twitter, LinkedIn, etc. | |
| nanobanana | Generate images using Gemini 3 Pro Image (Nano Banana Pro) | |
| Search and retrieve content from Reddit via the public JSON API | ||
| Search and retrieve content from Twitter/X via twitterapi.io | ||
| producthunt | Search Product Hunt posts, topics, users, and collections | |
| archive | Archive session learnings and debugging solutions with indexed markdown |
Quick Install
Claude Code Plugin Marketplace
Install directly from Claude Code's plugin marketplace:
# Add the OPC Skills marketplace
/plugin marketplace add ReScienceLab/opc-skills
# Install specific skills
/plugin install requesthunt@opc-skills
/plugin install domain-hunter@opc-skills
/plugin install seo-geo@opc-skills
# List all available skills
/plugin marketplace list opc-skills
Universal Installation (16+ AI Tools)
Install with one command - works with Claude Code, Cursor, Windsurf, Droid, and 12+ other AI tools:
# Install all skills
npx skills add ReScienceLab/opc-skills
# Install specific skill
npx skills add ReScienceLab/opc-skills --skill reddit
# Install to specific agent
npx skills add ReScienceLab/opc-skills -a droid
Browse and discover skills at skills.sh 🎯
Skills with Dependencies
Some skills require other skills to function properly:
- domain-hunter → requires
twitterandreddit - logo-creator → requires
nanobanana - banner-creator → requires
nanobanana
Install them together:
npx skills add ReScienceLab/opc-skills --skill reddit --skill twitter --skill domain-hunter
Supported AI Tools
OPC Skills work with 16+ AI coding agents via npx skills add:
- Claude Code - Desktop app for AI-assisted coding
- Cursor - AI-first code editor
- Factory Droid - AI software engineering agent
- Windsurf - AI-powered IDE
- OpenCode - Open-source AI coding assistant
- Codex - AI code generation tool
- GitHub Copilot - AI pair programmer
- Gemini CLI - Command-line AI assistant
- Goose - Terminal-based AI agent
- Kilo Code - Lightweight AI coding tool
- Roo Code - AI code assistant
- Trae - AI development companion
- And more...
See the full compatibility list for all supported tools.
Documentation & Resources
Explore OPC Skills through multiple channels:
- DeepWiki - AI-powered interactive documentation with code exploration and Q&A
- Skills Browser - Browse and discover all available skills
- Official Website - Guides, tutorials, and usage examples
- Agent Skills Standard - Learn about the skills specification
Using DeepWiki
DeepWiki provides an AI assistant that can answer questions about the codebase:
- Ask: "How does the domain-hunter skill work?"
- Ask: "Show me the dependencies between skills"
- Ask: "Explain the skill installation process"
The documentation auto-syncs with the repository, so it's always up to date.
Creating New Skills
See the template in ./template/ directory for the basic structure:
- Create a folder in
skills/with your skill name - Add a
SKILL.mdfile with YAML frontmatter - (Optional) Add scripts, examples, or other resources
Required fields in SKILL.md:
---
name: my-skill-name
description: A clear description of what this skill does and when to use it
---
For detailed guidance, check out existing skills or visit the Agent Skills specification.
Star History
Contributing
- Fork this repository
- Create a new skill folder in
skills/ - Add a
SKILL.mdwith proper frontmatter - Submit a pull request
License
Apache 2.0