A Ruby-based automation and tool discovery framework for SaneApps macOS development. Provides canonical workflows, MCP server health monitoring, tool discovery, and PreToolUse enforcement hooks for Claude/Cursor integration.
SaneProcess exposes 28 tools, but critical infrastructure is missing. Tools are defined in a Ruby script (tool_discovery_receipt.rb) with descriptions and basic parameter schemas, but the actual MCP server implementation is not visible in the provided source. The .mcp.json shows external MCP servers (apple-docs, github, xcode) but no evidence of SaneProcess itself being registered as an MCP server. Tool definitions appear to be metadata for documentation/discovery rather than formal MCP tool registrations. Input schemas are present but minimal (mostly single string or boolean params). Descriptions are present (50-200 chars, within baseline) but many lack actionable context for LLM selection. No output schemas documented. No error handling guidance. No security annotations. The server appears to be a Ruby orchestration layer, not a compliant MCP server.
App Store submission and review readiness. Canonical App Store compliance and submission check before resubmitting.
Mini screenshot capture. Canonical Mini GUI-session capture path. Do not use raw ssh mini screencapture.
Cursor preToolUse hook for catastrophic guard. Blocks dangerous MCP/tool names and shell commands.
Deployment safety check for appcast.xml edits. Validates Sparkle signatures, URLs, and length declarations.
Blocks access to sensitive paths: /var, .aws, .gnupg, .env, credentials, secrets, .pem/.p8 files.
Blocks raw ssh mini + screencapture. Enforces capture-mini-screenshot.sh wrapper.
Customer support triage and replies. Canonical review gate for customer email and linked GitHub issue work.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Violates pattern:tool and pattern:response-shaper.
Many tools have empty or minimal input schemas (e.g., status, appstore_preflight, release_preflight, sales, downloads, events accept no parameters or only generic action strings). Limits LLM ability to customize behavior.
No error handling guidance in any tool description. LLMs cannot determine if failures are retryable, user-fixable, or fatal. Violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Blocks local UI tools on MacBook Air when Mini is available. Enforces Mini-first UI automation.
Live active-session tool-call probe for MCP health. Grok helper that resolves SaneProcess and checks MCP availability.
Deployment safety check for Cloudflare Pages deploy. Validates appcast signatures and URLs in deploy directory.
Deployment safety check for R2 uploads. Validates bucket, key format, Sparkle signing, and stapling.
Blocks credential loading from shell startup files (.zshenv, .zshrc, etc.). Enforces sane_load_secrets pattern.
Downloads analytics. Part of canonical sales and analytics path.
Events analytics. Part of canonical sales and analytics path.
Hosted-file dashboard tracker. Canonical hosted-file dashboard tracker for Lemon Squeezy drift.
Cursor preToolUse hook for Write/Edit path fragmentation guard. Enforces project layout violations.
Listing and setup action tracker. Canonical listing/setup action tracker generated from inbox history.
MCP and tooling health. Watchdog is the background-machine truth for MCP server health, duplicate detection, and orphan tracking.
Cursor preToolUse hook for translations build_book.py anti-patterns. Guards Logos PBB markup.
Release readiness and shipping. Canonical preflight before any direct-release publish path.
Revenue, downloads, and funnel analytics. Canonical sales and analytics path instead of ad hoc vendor curls.
Shell-level guard for raw xcodebuild/swift build-test commands in AI sessions. Enforces canonical SaneMaster.rb verify path.
PreToolUse hook enforcing all requirements before tool execution. Enforces research gates, mutation guards, blocked paths, secret protection, and workflow requirements.
Live project status. Canonical live status path across git, inbox, issues, release lanes, and current signals.
Mini control-plane sync. Canonical Mini control-plane parity path instead of hunting automation scripts.
Run and verify a live app. Canonical kill → build → live log → launch path. Saves evidence before launch; --quiet-logs keeps the bounded capture without following console output.
Tool discovery and canonical path selection. Proof step before claiming a tool is missing or inventing a workaround.
Build and test an app. Canonical build and test path. Routes to the Mini when required.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Risk field correctly marks some tools as WRITE, but LLMs cannot see this in schema. Violates current MCP spec (2026-07-28) tool annotations requirement.
Tool definitions appear to be metadata in a Ruby script, not formal MCP tool registrations. No evidence of actual MCP server implementation (no JSON-RPC handlers, no transport binding). Server may not be MCP-compliant at runtime.