Self-healing spine for GitHub Copilot - sense/heal/snapshot/trace with mission runtime supervisor
Phoenix MCP has 5 tools with significant definition gaps. Tool names lack clear action verbs (phoenix_sense, phoenix_snapshot, phoenix_heal are domain-specific but not verb-noun patterns). Descriptions exist but are terse (10-80 chars, below the 50-200 char baseline for LLM optimization). Input schemas are partially visible but lack parameter-level descriptions and type constraints. The phoenix_mission tool accepts complex nested objects (goals array with id/depends_on/task fields) but these nested structures are not documented. No output schemas are documented. Error handling and recovery guidance are absent. Only 1 of 5 tools has descriptions approaching adequacy.
Heal an artifact by rolling back to a blessed snapshot, with recheck validation
Run a dependency-ordered DAG of goals with isolation, concurrency control, and per-goal trace chains
Sense conformance of a check (command_exit, file_hash, etc.) against a target artifact
Snapshot a blessed artifact state when a check is green, for later rollback healing
Verify the tamper-evident trace chain integrity (hash chain validation)
Tool names lack action verbs. 'phoenix_sense', 'phoenix_snapshot', 'phoenix_heal' are domain-specific but do not follow verb_noun pattern (get_, create_, update_, delete_, search_). LLMs infer intent from names, these names require reading descriptions to understand what happens.
Descriptions are too short (10-80 chars vs. baseline 50-200 chars). 'Sense conformance of a check' and 'Verify the tamper-evident trace chain integrity' lack context for when/why to call these tools. No guidance on prerequisites, return values, or error recovery.
Input parameters lack descriptions. 'check' parameter in phoenix_sense is documented as 'Check definition with kind, target, and expect fields' but the nested structure (kind, target, expect) is not defined. 'goals' array in phoenix_mission has no per-field documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No output schemas documented. Callers cannot know what fields to expect from responses, forcing them to guess or read source code. This breaks tool chaining, if phoenix_snapshot returns a snap_id, phoenix_heal must accept it, but the contract is invisible.
No error handling or recovery guidance. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next. A failed check in phoenix_sense returns nothing actionable.