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>
This commit is contained in:
@@ -20,6 +20,7 @@ cd our-claude-skills/custom-skills/_ourdigital-shared
|
||||
./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
|
||||
@@ -29,20 +30,59 @@ cd our-claude-skills/custom-skills/_ourdigital-shared
|
||||
|
||||
| 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:
|
||||
|
||||
```bash
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
./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
|
||||
├── config.yaml # Global configuration
|
||||
├── credentials/ # Service account JSONs
|
||||
│ └── *.json
|
||||
└── logs/ # Installation logs
|
||||
└── logs/ # Installation logs
|
||||
|
||||
~/.env.ourdigital # Environment variables (chmod 600)
|
||||
~/.env.ourdigital # Environment variables (chmod 600)
|
||||
```
|
||||
|
||||
## Manual Setup
|
||||
@@ -53,21 +93,27 @@ If you prefer manual setup:
|
||||
```bash
|
||||
mkdir -p ~/.ourdigital/credentials
|
||||
chmod 700 ~/.ourdigital ~/.ourdigital/credentials
|
||||
mkdir -p ~/.claude/commands
|
||||
```
|
||||
|
||||
### 2. Copy environment template
|
||||
### 2. Symlink global commands
|
||||
```bash
|
||||
ln -s /path/to/our-claude-skills/.claude/commands/*.md ~/.claude/commands/
|
||||
```
|
||||
|
||||
### 3. Copy environment template
|
||||
```bash
|
||||
cp .env.ourdigital.template ~/.env.ourdigital
|
||||
chmod 600 ~/.env.ourdigital
|
||||
```
|
||||
|
||||
### 3. Edit credentials
|
||||
### 4. Edit credentials
|
||||
```bash
|
||||
nano ~/.env.ourdigital
|
||||
# Add your API keys
|
||||
```
|
||||
|
||||
### 4. Create virtual environment
|
||||
### 5. Create virtual environment
|
||||
```bash
|
||||
python3 -m venv .venv-ourdigital
|
||||
source .venv-ourdigital/bin/activate
|
||||
@@ -79,8 +125,8 @@ pip install -r requirements/base.txt
|
||||
| Service | Variable | How to Get |
|
||||
|---------|----------|------------|
|
||||
| Notion | `NOTION_API_TOKEN` | [Notion Integrations](https://www.notion.so/my-integrations) |
|
||||
| Ghost Blog | `GHOST_BLOG_ADMIN_KEY` | Ghost Admin → Integrations |
|
||||
| Ghost Journal | `GHOST_JOURNAL_ADMIN_KEY` | Ghost Admin → 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](https://www.figma.com/developers/api#access-tokens) |
|
||||
|
||||
### Using 1Password CLI
|
||||
@@ -143,6 +189,15 @@ pyenv local 3.11
|
||||
python scripts/validate_install.py --verbose
|
||||
```
|
||||
|
||||
### Commands not showing in Claude Code
|
||||
```bash
|
||||
# Check symlinks are intact
|
||||
ls -la ~/.claude/commands/
|
||||
|
||||
# Re-install commands
|
||||
./install.sh --commands
|
||||
```
|
||||
|
||||
## File Reference
|
||||
|
||||
| File | Purpose |
|
||||
|
||||
Reference in New Issue
Block a user