--- name: mission-control-docs description: 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: ```bash export MC_MACHINE_TOKEN="50cd5e8fe3f895353f97c9ee64052c0b689b4eedf79259746413734d0a163cf8" export MC_API_URL="https://mission-control.twisteddevices.com/api" ``` **Architecture:** Skills → API (with machine token) → Database This follows the API-centric pattern where all business logic lives in API routes. ## Usage ```bash 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:** ```bash 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, GPT - `Research/iOS Development/` - Swift, iOS, Xcode, Apple, SwiftUI - `Research/Business & Marketing/` - SaaS, business, startup, marketing - `Research/Tools & Tech/` - tool, library, API, SDK, framework - `Research/Tutorials/` - tutorial, guide, how-to, walkthrough - `Research/` - Default #### `mc_doc_get(DOC_ID)` Get document by ID. **Returns:** Document JSON **Example:** ```bash 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:** ```bash # 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:** ```bash mc_doc_update "$DOC_ID" \ --title "Updated Title" \ --tags '["research", "ai", "updated"]' ``` #### `mc_doc_delete(DOC_ID)` Delete document permanently. **Example:** ```bash mc_doc_delete "$DOC_ID" ``` ### Search & Discovery #### `mc_doc_search(QUERY, [LIMIT])` Search documents by title or content. **Parameters:** - `QUERY` - Search term - `LIMIT` - Max results (default: 20) **Example:** ```bash # Search for OpenClaw mc_doc_search "OpenClaw" 10 ``` #### `mc_doc_folder_list()` List all unique folders. **Example:** ```bash mc_doc_folder_list ``` ### Auto-detection #### `_detect_folder(CONTENT)` Auto-detect folder based on content keywords. **Example:** ```bash FOLDER=$(_detect_folder "$CONTENT") echo "Detected folder: $FOLDER" ``` #### `_detect_tags(CONTENT)` Auto-detect tags based on content keywords. **Returns:** JSON array of tags **Example:** ```bash 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: ```bash # Set authentication export MC_MACHINE_TOKEN="50cd5e8fe3f895353f97c9ee64052c0b689b4eedf79259746413734d0a163cf8" export MC_API_URL="https://mission-control.twisteddevices.com/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: ```bash # Set auth for CLI export MC_MACHINE_TOKEN="50cd5e8fe3f895353f97c9ee64052c0b689b4eedf79259746413734d0a163cf8" export MC_API_URL="https://mission-control.twisteddevices.com/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.