Files
Andrew Yim 2aa9d098cb Fix SEO skills 19-34, add global slash commands, update installer (#4)
* Fix SEO skill 34 bugs, Korean labels, and transition Ahrefs refs to our-seo-agent

P0: Fix report_aggregator.py — wrong SKILL_REGISTRY[33] mapping, missing
CATEGORY_WEIGHTS for 7 categories, and break bug in health score parsing
that exited loop even on parse failure.

P1: Remove VIEW tab references from skill 20, expand skill 32 docs,
replace Ahrefs MCP references across all 16 skills (19-28, 31-34)
with our-seo-agent CLI data source references.

P2: Fix Korean labels in executive_report.py and dashboard_generator.py,
add tenacity to base requirements, sync skill 34 base_client.py with
canonical version from skill 12.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add Claude Code slash commands for SEO skills 19-34 and fix stale paths

Create 14 new slash command files for skills 19-28, 31-34 so they
appear as /seo-* commands in Claude Code. Also fix stale directory
paths in 8 existing commands (skills 12-18, 29-30) that referenced
pre-renumbering skill directories.

Update .gitignore to track .claude/commands/ while keeping other
.claude/ files ignored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add 8 slash commands, enhance reference-curator with depth/output options

- Add slash commands: ourdigital-brand-guide, notion-writer, notebooklm-agent,
  notebooklm-automation, notebooklm-studio, notebooklm-research,
  reference-curator, multi-agent-guide
- Add --depth (light/standard/deep/full) with Firecrawl parameter mapping
- Add --output with ~/Documents/reference-library/ default and user confirmation
- Increase --max-sources default from 10 to 100
- Rename /reference-curator-pipeline to /reference-curator
- Simplify web-crawler-orchestrator label to web-crawler in docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Convert slash command script paths to absolute for global availability

Symlinked all 39 project commands to ~/.claude/commands/ so they work
from any project directory. Converted 126 relative custom-skills/ paths
to absolute /Users/ourdigital/Projects/our-claude-skills/custom-skills/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update installer to support global slash command installation

Add symlink-based global command setup so all 39 custom skills work from
any project directory. New --commands flag for quick re-sync, updated
--validate/--update/--uninstall to handle symlinks, and expanded skill
listing to cover all 7 domains.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add user guides in English and Korean for all 52 custom skills

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:37:54 +09:00

5.3 KiB

OurDigital Shared Environment

Shared configuration, dependencies, and installation tools for OurDigital Skills package.

Quick Install

# Clone the repository (on new machine)
git clone https://github.com/ourdigital/our-claude-skills.git
cd our-claude-skills/custom-skills/_ourdigital-shared

# Run installer
./install.sh

Installation Options

./install.sh                  # Full interactive install
./install.sh --update         # Update existing installation
./install.sh --uninstall      # Remove installation
./install.sh --validate       # Check installation status
./install.sh --commands       # Only install/update global slash commands
./install.sh --skip-creds     # Skip credentials setup
./install.sh --skip-venv      # Skip virtual environment
./install.sh --help           # Show all options

What Gets Installed

Component Location Description
Global slash commands ~/.claude/commands/ Symlinks to repo commands (work from any project)
Environment file ~/.env.ourdigital API keys and secrets
Config directory ~/.ourdigital/ Configuration and credentials
Virtual environment .venv-ourdigital/ Python dependencies

Global Slash Commands

All custom skills are installed as global slash commands via symlinks. This means you can use them from any project directory in Claude Code:

# These work from ANY project, not just our-claude-skills/
/seo-technical https://example.com
/reference-curator "Claude Code best practices"
/ourdigital-research "topic"
/notebooklm-agent
/gtm-audit https://example.com

How It Works

The installer symlinks all .md files from .claude/commands/ in the repo to ~/.claude/commands/:

~/.claude/commands/
├── lint.md                    # Original global command
├── test.md                    # Original global command
├── seo-technical.md -> /path/to/our-claude-skills/.claude/commands/seo-technical.md
├── seo-keyword-strategy.md -> ...
├── reference-curator.md -> ...
└── ...                        # ~40 symlinked commands

Since they're symlinks, pulling repo updates automatically refreshes the commands.

Updating Commands

After pulling new changes or adding new commands:

./install.sh --commands    # Re-scan and symlink any new commands

Directory Structure

~/.claude/commands/           # Global slash commands (symlinks)
~/.ourdigital/
├── config.yaml               # Global configuration
├── credentials/              # Service account JSONs
│   └── *.json
└── logs/                     # Installation logs

~/.env.ourdigital             # Environment variables (chmod 600)

Manual Setup

If you prefer manual setup:

1. Create directories

mkdir -p ~/.ourdigital/credentials
chmod 700 ~/.ourdigital ~/.ourdigital/credentials
mkdir -p ~/.claude/commands
ln -s /path/to/our-claude-skills/.claude/commands/*.md ~/.claude/commands/

3. Copy environment template

cp .env.ourdigital.template ~/.env.ourdigital
chmod 600 ~/.env.ourdigital

4. Edit credentials

nano ~/.env.ourdigital
# Add your API keys

5. Create virtual environment

python3 -m venv .venv-ourdigital
source .venv-ourdigital/bin/activate
pip install -r requirements/base.txt

Credentials Required

Service Variable How to Get
Notion NOTION_API_TOKEN Notion Integrations
Ghost Blog GHOST_BLOG_ADMIN_KEY Ghost Admin > Integrations
Ghost Journal GHOST_JOURNAL_ADMIN_KEY Ghost Admin > Integrations
Figma FIGMA_ACCESS_TOKEN Figma Settings

Using 1Password CLI

If you have 1Password CLI (op) installed:

# Sign in
eval $(op signin)

# Installer will auto-fetch credentials
./install.sh

Validation

Check your installation status:

# Quick check
./install.sh --validate

# Detailed check
python scripts/validate_install.py --verbose

Cross-Machine Sync

To sync skills to another machine:

# On new machine
git clone https://github.com/ourdigital/our-claude-skills.git
cd our-claude-skills/custom-skills/_ourdigital-shared
./install.sh

# Credentials need to be set up separately (security)
# Either use 1Password CLI or manually copy ~/.env.ourdigital

Troubleshooting

Permission denied

chmod +x install.sh

Python version

# Check version (need 3.11+)
python3 --version

# Use pyenv if needed
pyenv install 3.11
pyenv local 3.11

Missing credentials

# Check what's missing
python scripts/validate_install.py --verbose

Commands not showing in Claude Code

# Check symlinks are intact
ls -la ~/.claude/commands/

# Re-install commands
./install.sh --commands

File Reference

File Purpose
install.sh Main installer script
.env.ourdigital.template Environment template
config/ourdigital.yaml Default configuration
requirements/base.txt Common dependencies
requirements/code.txt Claude Code dependencies
scripts/validate_install.py Installation validator