feat: Add installation tool, Claude.ai export, and skill standardization (#1)
## Summary - Add portable installation tool (`install.sh`) for cross-machine setup - Add Claude.ai export files with proper YAML frontmatter - Add multi-agent-guide v2.0 with consolidated framework template - Rename `00-claude-code-setting` → `00-our-settings-audit` (avoid reserved word) - Add YAML frontmatter to 25+ SKILL.md files for Claude Desktop compatibility ## Commits Included - `93f604a` feat: Add portable installation tool for cross-machine setup - `9b84104` feat: Add Claude.ai export for portable skill installation - `f7ab973` fix: Add YAML frontmatter to Claude.ai export files - `3fed49a` feat(multi-agent-guide): Add v2.0 with consolidated framework - `3be26ef` refactor: Rename settings-audit skill and add YAML frontmatter Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,129 +1,155 @@
|
||||
# OurDigital Skills - Shared Environment
|
||||
# OurDigital Shared Environment
|
||||
|
||||
Shared configuration, dependencies, and environment setup for all OurDigital Claude Skills.
|
||||
Shared configuration, dependencies, and installation tools for OurDigital Skills package.
|
||||
|
||||
## Quick Setup
|
||||
|
||||
### 1. Create Virtual Environment
|
||||
## Quick Install
|
||||
|
||||
```bash
|
||||
cd /path/to/our-claude-skills/custom-skills
|
||||
python -m venv .venv-ourdigital
|
||||
source .venv-ourdigital/bin/activate # macOS/Linux
|
||||
# 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
|
||||
```
|
||||
|
||||
### 2. Install Dependencies
|
||||
## Installation Options
|
||||
|
||||
```bash
|
||||
# For Claude Code environment
|
||||
pip install -r _ourdigital-shared/requirements/code.txt
|
||||
|
||||
# For Claude Desktop environment
|
||||
pip install -r _ourdigital-shared/requirements/desktop.txt
|
||||
|
||||
# Or install as package
|
||||
pip install -e _ourdigital-shared/
|
||||
./install.sh # Full interactive install
|
||||
./install.sh --update # Update existing installation
|
||||
./install.sh --uninstall # Remove installation
|
||||
./install.sh --validate # Check installation status
|
||||
./install.sh --skip-creds # Skip credentials setup
|
||||
./install.sh --skip-venv # Skip virtual environment
|
||||
./install.sh --help # Show all options
|
||||
```
|
||||
|
||||
### 3. Configure Environment Variables
|
||||
## What Gets Installed
|
||||
|
||||
```bash
|
||||
# Copy template
|
||||
cp _ourdigital-shared/.env.ourdigital.template ~/.env.ourdigital
|
||||
|
||||
# Edit with your credentials
|
||||
nano ~/.env.ourdigital
|
||||
```
|
||||
|
||||
### 4. Set Up Credentials Directory
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.ourdigital/credentials
|
||||
# Add your credential files:
|
||||
# - ~/.ourdigital/credentials/notion.json
|
||||
# - ~/.ourdigital/credentials/ghost.json
|
||||
# - ~/.ourdigital/credentials/google.json
|
||||
```
|
||||
| Component | Location | Description |
|
||||
|-----------|----------|-------------|
|
||||
| Environment file | `~/.env.ourdigital` | API keys and secrets |
|
||||
| Config directory | `~/.ourdigital/` | Configuration and credentials |
|
||||
| Virtual environment | `.venv-ourdigital/` | Python dependencies |
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
_ourdigital-shared/
|
||||
├── pyproject.toml # Package configuration
|
||||
├── .env.ourdigital.template # Environment variables template
|
||||
├── requirements/
|
||||
│ ├── base.txt # Common dependencies
|
||||
│ ├── desktop.txt # Desktop-specific
|
||||
│ └── code.txt # Code-specific
|
||||
├── config/
|
||||
│ └── ourdigital.yaml # Global configuration
|
||||
└── README.md # This file
|
||||
~/.ourdigital/
|
||||
├── config.yaml # Global configuration
|
||||
├── credentials/ # Service account JSONs
|
||||
│ └── *.json
|
||||
└── logs/ # Installation logs
|
||||
|
||||
~/.env.ourdigital # Environment variables (chmod 600)
|
||||
```
|
||||
|
||||
## Configuration
|
||||
## Manual Setup
|
||||
|
||||
### Environment Variables
|
||||
If you prefer manual setup:
|
||||
|
||||
Key variables in `.env.ourdigital`:
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `OURDIGITAL_ENV` | Environment (development/production) |
|
||||
| `NOTION_API_TOKEN` | Notion integration token |
|
||||
| `NOTION_WORKING_WITH_AI_DB` | Primary Notion database ID |
|
||||
| `GHOST_BLOG_ADMIN_KEY` | Ghost CMS admin API key |
|
||||
|
||||
### Config File
|
||||
|
||||
`config/ourdigital.yaml` contains:
|
||||
- Brand settings (name, tagline, values)
|
||||
- Channel configurations
|
||||
- Color palette
|
||||
- Typography settings
|
||||
- Skill numbering conventions
|
||||
- Export paths
|
||||
|
||||
## Usage in Skills
|
||||
|
||||
### Loading Configuration
|
||||
|
||||
```python
|
||||
import yaml
|
||||
from pathlib import Path
|
||||
|
||||
def load_config():
|
||||
config_path = Path(__file__).parent.parent / "_ourdigital-shared/config/ourdigital.yaml"
|
||||
with open(config_path) as f:
|
||||
return yaml.safe_load(f)
|
||||
|
||||
config = load_config()
|
||||
print(config['brand']['tagline'])
|
||||
### 1. Create directories
|
||||
```bash
|
||||
mkdir -p ~/.ourdigital/credentials
|
||||
chmod 700 ~/.ourdigital ~/.ourdigital/credentials
|
||||
```
|
||||
|
||||
### Loading Environment
|
||||
|
||||
```python
|
||||
from dotenv import load_dotenv
|
||||
import os
|
||||
|
||||
load_dotenv(os.path.expanduser("~/.env.ourdigital"))
|
||||
|
||||
notion_token = os.getenv("NOTION_API_TOKEN")
|
||||
### 2. Copy environment template
|
||||
```bash
|
||||
cp .env.ourdigital.template ~/.env.ourdigital
|
||||
chmod 600 ~/.env.ourdigital
|
||||
```
|
||||
|
||||
## Skill Numbering
|
||||
### 3. Edit credentials
|
||||
```bash
|
||||
nano ~/.env.ourdigital
|
||||
# Add your API keys
|
||||
```
|
||||
|
||||
| Range | Category |
|
||||
|-------|----------|
|
||||
| 01-09 | OurDigital Core (brand, blog, journal, research, etc.) |
|
||||
| 10 | Meta (skill-creator) |
|
||||
| 11-19 | SEO Tools |
|
||||
| 20-29 | GTM/Analytics Tools |
|
||||
| 31-39 | Notion Tools |
|
||||
| 40-49 | Jamie Clinic Tools |
|
||||
### 4. Create virtual environment
|
||||
```bash
|
||||
python3 -m venv .venv-ourdigital
|
||||
source .venv-ourdigital/bin/activate
|
||||
pip install -r requirements/base.txt
|
||||
```
|
||||
|
||||
## Version
|
||||
## Credentials Required
|
||||
|
||||
- Package Version: 1.0.0
|
||||
- Python Requirement: >= 3.11
|
||||
- Author: OurDigital (Andrew Yim)
|
||||
| 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 |
|
||||
| Figma | `FIGMA_ACCESS_TOKEN` | [Figma Settings](https://www.figma.com/developers/api#access-tokens) |
|
||||
|
||||
### Using 1Password CLI
|
||||
|
||||
If you have 1Password CLI (`op`) installed:
|
||||
```bash
|
||||
# Sign in
|
||||
eval $(op signin)
|
||||
|
||||
# Installer will auto-fetch credentials
|
||||
./install.sh
|
||||
```
|
||||
|
||||
## Validation
|
||||
|
||||
Check your installation status:
|
||||
|
||||
```bash
|
||||
# Quick check
|
||||
./install.sh --validate
|
||||
|
||||
# Detailed check
|
||||
python scripts/validate_install.py --verbose
|
||||
```
|
||||
|
||||
## Cross-Machine Sync
|
||||
|
||||
To sync skills to another machine:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
chmod +x install.sh
|
||||
```
|
||||
|
||||
### Python version
|
||||
```bash
|
||||
# Check version (need 3.11+)
|
||||
python3 --version
|
||||
|
||||
# Use pyenv if needed
|
||||
pyenv install 3.11
|
||||
pyenv local 3.11
|
||||
```
|
||||
|
||||
### Missing credentials
|
||||
```bash
|
||||
# Check what's missing
|
||||
python scripts/validate_install.py --verbose
|
||||
```
|
||||
|
||||
## 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 |
|
||||
|
||||
Reference in New Issue
Block a user