원클릭으로
setup-server
Bootstrap Pierre server with database, admin user, coaches, and test users for development and testing
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Bootstrap Pierre server with database, admin user, coaches, and test users for development and testing
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when designing prompts for LLMs, optimizing model performance, building evaluation frameworks, or implementing advanced prompting techniques like chain-of-thought, few-shot learning, or structured outputs.
How to deploy Dravr infrastructure and apply Cloud Run config changes. Use when editing infra/ terraform, when a merged code change is live but a Cloud Run setting (cpu, memory, min/max instances, env var, scaling) hasn't taken effect, or when asked to plan/apply infra. Explains the two-pipeline model (app binary auto-deploys on push; terraform infra config is a separate manual apply) plus the cpu/cpu_idle guardrails.
Enforces zero-tolerance code quality policy using Clippy with strict lints, all warnings treated as errors
Write well-formatted notes to the dravr-vault Obsidian knowledge base. Use this skill whenever creating or updating an ADR, runbook, plan, API doc, guide, session output, or any structured document that should land in the vault — even when the user doesn't say "Obsidian" explicitly. Delegates to obsidian:obsidian-cli to write to the live vault and applies Dravr frontmatter and formatting standards.
Validates coach markdown files for required frontmatter fields, sections, and naming conventions
Use when setting up the shared dravr-vault Obsidian vault on a new machine or for a new team member. Guides through cloning, symlinking claude_docs, and verifying obsidian-cli.
| name | setup-server |
| description | Bootstrap Pierre server with database, admin user, coaches, and test users for development and testing |
| user-invocable | true |
CLAUDE: When this skill is invoked with /setup-server, run the setup script:
./bin/setup-and-start.sh --skip-fresh-start
For a completely fresh start (wipes database):
./bin/setup-and-start.sh
Bootstraps the Pierre MCP Server with all required components: database, admin user, coaches, and optionally test users. Essential for development, testing, and iOS Simulator testing.
/setup-server
CLAUDE: Default to synthetic provider. Ask if Strava is needed.
Only use Strava when:
# Default to synthetic (RECOMMENDED)
export PIERRE_DEFAULT_PROVIDER=synthetic
# Only if Strava OAuth testing needed
export PIERRE_DEFAULT_PROVIDER=strava
CRITICAL: These are the default credentials from .envrc. Always use these for testing.
Email: admin@pierre.mcp
Password: adminpass123
Email: user@example.com
Password: userpass123
export ADMIN_EMAIL="admin@pierre.mcp"
export ADMIN_PASSWORD="adminpass123"
export OAUTH_DEFAULT_EMAIL="user@example.com"
export OAUTH_DEFAULT_PASSWORD="userpass123"
CLAUDE: To create/approve users via admin API, you need an admin token.
cargo run --bin pierre-cli -- token generate --service claude_test --expires-days 7
# Store the token
export ADMIN_TOKEN="<token-from-above-command>"
# Use in curl requests
curl -H "Authorization: Bearer $ADMIN_TOKEN" \
http://localhost:8081/admin/users
The complete-user-workflow.sh script handles admin tokens automatically:
./scripts/complete-user-workflow.sh
This script:
.workflow_test_env# Load saved tokens
source .workflow_test_env
# Now you can use $ADMIN_TOKEN and $JWT_TOKEN
echo "Admin: $ADMIN_TOKEN"
echo "User JWT: $JWT_TOKEN"
./bin/setup-and-start.sh --skip-fresh-start
./bin/setup-and-start.sh
./bin/setup-and-start.sh --run-tests
Note: Basic setup only runs pierre-cli seed coaches. For full test data, run additional seeders below.
CLAUDE: Before testing features, run the appropriate seeders to populate test data.
All seeders are consolidated under pierre-cli seed <domain> subcommands.
| Seeder | Command | What It Creates |
|---|---|---|
| Bootstrap | pierre-cli seed bootstrap | Admin + demo users (idempotent; requires ADMIN_PASSWORD) |
| Coaches | pierre-cli seed coaches | 9 AI coaching personas (training, nutrition, recovery, mobility) |
| Demo Data | pierre-cli seed demo-data | Dashboard analytics, API keys, usage time-series data |
| Mobility | pierre-cli seed mobility | Stretching exercises, yoga poses, activity-muscle mappings |
| Social | pierre-cli seed social | Friend connections, shared insights, reactions, feed data |
| Synthetic Activities | pierre-cli seed synthetic-activities | 100+ diverse activities (run, MTB, nordic ski, etc.) |
| LLM Usage | pierre-cli seed llm-usage | 30 days of LLM call records for analytics dashboards |
| Insight Samples | pierre-cli seed insight-samples | Loads and validates insight sample markdown files (no DB writes) |
CRITICAL: Use this seeder for testing without OAuth.
# Seed 100 activities for default test user
pierre-cli seed synthetic-activities
# Seed more activities
pierre-cli seed synthetic-activities --count 200
# Seed for specific user
pierre-cli seed synthetic-activities --email alice@example.com
# Reset and reseed
pierre-cli seed synthetic-activities --reset --count 150
Sport types included: Run, Trail Run, Ride, Mountain Bike, Gravel Ride, Nordic Ski, Backcountry Ski, Alpine Ski, Swim, Hike, Walk, Weight Training, Yoga, Rowing, Kayaking, SUP, and more.
Option A: Fresh database with ALL seeders (RECOMMENDED)
./bin/reset-dev-db.sh
This wipes the database and runs ALL seeders automatically.
Option B: Run seeders individually (existing database)
pierre-cli seed coaches
pierre-cli seed demo-data
pierre-cli seed mobility
pierre-cli seed social
| Testing This Feature | Required Seeders |
|---|---|
| Mobile app login | seed coaches (minimal) |
| Coach conversations | seed coaches |
| Activity list/analysis | seed synthetic-activities |
| Performance insights | seed synthetic-activities |
| Dashboard/Analytics | seed demo-data |
| Mobility/Stretching | seed mobility |
| Friends/Feed/Social | seed social + seed synthetic-activities |
| Full E2E testing | All seeders |
After server is running, to create a test user with full access:
./scripts/complete-user-workflow.sh
This script:
.workflow_test_envWhen testing the mobile app with iOS Simulator:
./bin/reset-dev-db.sh
This creates a fresh database with ALL seeders (coaches, demo data, mobility, social).
./bin/start-server.sh
./scripts/complete-user-workflow.sh
Email: user@example.com
Password: userpass123
cd frontend-mobile && bun start
| Endpoint | Purpose |
|---|---|
http://localhost:8081/health | Health check |
http://localhost:8081/oauth2/login | Web login page |
http://localhost:8081/oauth/token | OAuth token endpoint |
http://localhost:8081/mcp | MCP protocol endpoint |
http://localhost:8081/admin/* | Admin endpoints |
./bin/start-server.sh
./bin/stop-server.sh
curl http://localhost:8081/health
# Kill any existing processes
pkill -f pierre-mcp-server
# Check port availability
lsof -i :8081
# Start fresh
./bin/setup-and-start.sh
# Reset database completely
./bin/reset-dev-db.sh
# Generate new admin token
cargo run --bin pierre-cli -- token generate --service test --expires-days 7
cp .envrc.example .envrc
direnv allow
After running complete-user-workflow.sh:
# Contains JWT tokens for API testing
source .workflow_test_env
# Use tokens in curl commands
curl -H "Authorization: Bearer $JWT_TOKEN" http://localhost:8081/mcp ...
validate-frontend - Frontend validationvalidate-mobile - Mobile app validationcreate-worktree - Git worktree for feature branches