- gantt-tasks: Replace Supabase REST with API calls using GANTT_MACHINE_TOKEN - mission-control-docs: Replace Supabase REST with API calls using MC_MACHINE_TOKEN - Both skills now follow API-centric architecture - Updated SKILL.md documentation for both This ensures consistency with the CLI auth pattern and provides single source of truth through API endpoints.
5.9 KiB
| name | description |
|---|---|
| mission-control-docs | Full CRUD operations for Mission Control Documents. Create, read, update, delete documents. Uses Mission Control API with machine token authentication. |
mission-control-docs
Module Skill - Complete document management for Mission Control via API.
Purpose
Provides all operations needed to work with Mission Control documents: create, read, update, delete, list, and search. Uses Mission Control API (not direct Supabase).
Authentication
Uses machine token for server-to-server API calls:
export MC_MACHINE_TOKEN="50cd5e8fe3f895353f97c9ee64052c0b689b4eedf79259746413734d0a163cf8"
export MC_API_URL="https://mission-control-rho-pink.vercel.app/api"
Architecture: Skills → API (with machine token) → Database
This follows the API-centric pattern where all business logic lives in API routes.
Usage
source ~/.agents/skills/mission-control-docs/lib/docs.sh
# Create document
DOC_ID=$(mc_doc_create \
--title "Article Title" \
--content "$CONTENT" \
--folder "Research/AI & Agents/")
# Get document
mc_doc_get "$DOC_ID"
# List documents
mc_doc_list --folder "Research/"
Functions
Document CRUD
mc_doc_create([options])
Create a new document.
Options:
--title- Document title (required)--content- Document content (required)--folder- Folder path (default: auto-detected)--tags- Tags as JSON array string (default: auto-detected)--type- Document type (default: markdown)--description- Description (optional)
Returns: Document ID on success
Example:
DOC_ID=$(mc_doc_create \
--title "API Design Patterns" \
--content "$SUMMARY_CONTENT" \
--folder "Research/Tools & Tech/" \
--tags '["api", "design", "reference"]')
Auto-categorization: If folder not specified, detects based on content keywords:
Research/AI & Agents/- AI, agent, LLM, Claude, OpenClaw, GPTResearch/iOS Development/- Swift, iOS, Xcode, Apple, SwiftUIResearch/Business & Marketing/- SaaS, business, startup, marketingResearch/Tools & Tech/- tool, library, API, SDK, frameworkResearch/Tutorials/- tutorial, guide, how-to, walkthroughResearch/- Default
mc_doc_get(DOC_ID)
Get document by ID.
Returns: Document JSON
Example:
DOC=$(mc_doc_get "a1b2c3d4-...")
echo "$DOC" | jq -r '.title'
mc_doc_list([filters])
List documents with optional filters.
Filters:
--folder- Filter by folder path--tags- Filter by tag--search- Search in title/content--limit- Max results (default: 50)--json- Output as JSON
Example:
# List all in folder
mc_doc_list --folder "Research/AI & Agents/"
# Search
mc_doc_list --search "OpenClaw"
# Get JSON for processing
mc_doc_list --folder "Research/" --json
mc_doc_update(DOC_ID, [options])
Update document fields.
Parameters:
DOC_ID- Document UUID--title- New title--content- New content--folder- New folder--tags- New tags (JSON array)--description- New description
Example:
mc_doc_update "$DOC_ID" \
--title "Updated Title" \
--tags '["research", "ai", "updated"]'
mc_doc_delete(DOC_ID)
Delete document permanently.
Example:
mc_doc_delete "$DOC_ID"
Search & Discovery
mc_doc_search(QUERY, [LIMIT])
Search documents by title or content.
Parameters:
QUERY- Search termLIMIT- Max results (default: 20)
Example:
# Search for OpenClaw
mc_doc_search "OpenClaw" 10
mc_doc_folder_list()
List all unique folders.
Example:
mc_doc_folder_list
Auto-detection
_detect_folder(CONTENT)
Auto-detect folder based on content keywords.
Example:
FOLDER=$(_detect_folder "$CONTENT")
echo "Detected folder: $FOLDER"
_detect_tags(CONTENT)
Auto-detect tags based on content keywords.
Returns: JSON array of tags
Example:
TAGS=$(_detect_tags "$CONTENT")
echo "Detected tags: $TAGS"
File Structure
~/.agents/skills/mission-control-docs/
├── SKILL.md # This documentation
└── lib/
└── docs.sh # All document functions
Integration Example
Complete workflow:
# Set authentication
export MC_MACHINE_TOKEN="50cd5e8fe3f895353f97c9ee64052c0b689b4eedf79259746413734d0a163cf8"
export MC_API_URL="https://mission-control-rho-pink.vercel.app/api"
source ~/.agents/skills/mission-control-docs/lib/docs.sh
# Research summary from URL
SUMMARY=$(cat << 'EOF'
## Scrapling: Modern Web Scraping Framework
Scrapling is a Python web scraping framework with:
- Adaptive parsing
- Anti-bot bypass
- Full crawling capabilities
**Use Cases:**
- E-commerce monitoring
- Content aggregation
- SEO auditing
**Links:**
- GitHub: https://github.com/D4Vinci/Scrapling
- Docs: https://scrapling.readthedocs.io
EOF
)
# Create document with auto-detection
DOC_ID=$(mc_doc_create \
--title "Scrapling: Web Scraping Framework" \
--content "$SUMMARY" \
--description "Auto-research from URL: https://github.com/D4Vinci/Scrapling")
echo "Document created: $DOC_ID"
# Verify
echo "=== Document Created ==="
mc_doc_get "$DOC_ID" | jq -r '.title, .folder, .tags'
CLI Alternative
For interactive/command-line use, use the Mission Control CLI:
# Set auth for CLI
export MC_MACHINE_TOKEN="50cd5e8fe3f895353f97c9ee64052c0b689b4eedf79259746413734d0a163cf8"
export MC_API_URL="https://mission-control-rho-pink.vercel.app/api"
cd /Users/mattbruce/Documents/Projects/OpenClaw/Web/mission-control
# List documents
./scripts/mc.sh document list
# Get specific document
./scripts/mc.sh document get $DOC_ID
Note: The skill library and CLI both use the same API endpoints with machine token authentication.
Note: This is a low-level module skill. Used by orchestrator skills like url-research-to-documents-and-tasks, not directly by users.