[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M76W3GGC7GNETRAK3SJWDT02":3,"skill-same:01M76W3GGC7GNETRAK3SJWDT02":46},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":29,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M76W3GGC7GNETRAK3SJWDT02","health-check",null,"Diagnose and fix Amp system health issues — MCP servers, config, recent errors","hemory\u002Famp","hemory","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21179881?v=4","01M6D31HFJ391DN8N0JP8AQGFE","Hemory Phifer","01M758Z6KK3NGD8654Y5CT668C",0,"MIT","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhealth-check\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: health-check\ndescription: Diagnose and fix Amp system health issues — MCP servers, config, recent errors\n---\n\n## Purpose\n\nDiagnose what's working, what's broken, and fix what can be fixed. This is Amp's self-repair system. It reads health data from pre-flight checks and error logs, translates technical failures into plain language, and offers specific fixes.\n\n## When to Run\n\n- User types `\u002Fhealth-check`\n- User says \"fix health issues\" or \"something's broken\"\n- User says \"check health\" or \"system status\"\n- After session start shows pre-flight warnings\n- When an MCP tool fails and user wants to investigate\n\n---\n\n## Execution\n\n### Step 1: Gather Health Data\n\nRead both health files silently. Don't show raw JSON to the user.\n\n**A. Pre-flight results:**\n\n```\nRead: .logs\u002Fmcp-health.json\n```\n\nThis file contains cached results from the last pre-flight check. Each server entry has:\n- `status`: \"ok\" or \"error\"\n- `error`: technical error message (for your diagnosis)\n- `humanError`: plain-language message (for the user)\n- `checkedAt`: when it was last checked\n\n**B. Error queue:**\n\n```\nRead: .logs\u002Ferror-queue.json\n```\n\nThis file contains recent errors from MCP tool calls. Each entry has:\n- `source`: which MCP server (e.g., \"mcp:work-mcp\")\n- `severity`: \"error\" or \"warning\"\n- `message`: technical error (for your diagnosis)\n- `humanMessage`: plain-language message (for the user)\n- `context.tool`: which tool was called\n- `timestamp`: when it happened\n- `count`: how many times (deduped within 5-minute windows)\n- `acknowledged`: whether user has been told about it\n\n**C. If either file is missing:**\n\nIf `.logs\u002Fmcp-health.json` doesn't exist, the pre-flight checker hasn't run yet. Note this and offer to run one.\n\nIf `.logs\u002Ferror-queue.json` doesn't exist, there are no logged errors. This is good news.\n\nIf the `.logs\u002F` directory doesn't exist at all, the health system hasn't been set up yet. Tell the user:\n\n```\nThe health monitoring system isn't set up yet. This is normal if you just updated Amp.\n\nWant me to check your MCP servers manually? I can verify each one is working.\n```\n\nThen skip to Step 5 (manual check).\n\n---\n\n### Step 2: Display Health Summary\n\nPresent results in plain language, grouped by severity. **Never show raw JSON or stack traces.**\n\n**If everything is healthy and no unacknowledged errors:**\n\n```\nAll systems are running fine. Nothing to fix.\n\nLast checked: [relative time, e.g., \"2 hours ago\"]\nMCP servers: [X]\u002F[Y] operational\nRecent errors: None\n```\n\nStop here. Don't pad with unnecessary detail.\n\n---\n\n**If there are issues, show them grouped by severity:**\n\n```\nAmp Health Report\n━━━━━━━━━━━━━━━━\n\nERRORS (need attention)\n\n  1. [Server name] — [humanMessage or humanError]\n     When: [relative time]  |  Occurrences: [count]\n     Tool affected: [tool name, if from error queue]\n\n  2. [Server name] — [humanMessage or humanError]\n     When: [relative time]  |  Occurrences: [count]\n\nWARNINGS (worth knowing)\n\n  3. [Server name] — [humanMessage or humanError]\n     When: [relative time]\n\n━━━━━━━━━━━━━━━━\n[X] issues found  |  [Y] can be auto-fixed\n```\n\n**Formatting rules:**\n- Show errors first, then warnings\n- Use the `humanMessage` or `humanError` field — never the technical `message` or `error`\n- Show relative timestamps (\"2 hours ago\", \"yesterday at 3pm\") not ISO timestamps\n- If `count` > 1, show it — \"Occurrences: 5\" tells the user this is a persistent problem\n- Combine pre-flight failures and error queue entries for the same server into one item\n- Cap display at 10 issues. If more: \"...and [N] more. Want to see all?\"\n\n---\n\n### Step 3: Diagnose and Propose Fixes\n\nFor each issue, analyze the technical `message`\u002F`error` field (not shown to user) and propose a specific fix. Use this mapping:\n\n**Module\u002FPackage Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `ModuleNotFoundError: No module named 'X'` | [Server] can't start — missing Python package | \"Run `pip install -e amp-core` from your vault folder to reinstall packages.\" |\n| `ImportError: cannot import name 'X'` | [Server] has a code compatibility issue | \"This usually fixes itself with an update. Run `\u002Famp-update` to get the latest version.\" |\n| `No module named 'core.mcp.X'` | [Server] can't find its code | \"The server file may be missing. Want me to check if the file exists?\" |\n\n**Config Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `VAULT_PATH not set` or `KeyError: 'VAULT_PATH'` | [Server] doesn't know where your vault is | \"Your MCP config may need the vault path. Want me to check `.mcp.json`?\" |\n| `JSONDecodeError` | [Server] got corrupted data | \"A config or data file has invalid formatting. Want me to find and fix it?\" |\n| `FileNotFoundError: .mcp.json` | MCP configuration file is missing | \"Your `.mcp.json` file is missing. Want me to regenerate it from the example?\" |\n\n**File\u002FPermission Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `FileNotFoundError: Tasks.md` | Task file not found | \"Your task file is missing — the vault may need setup. Want me to create it?\" |\n| `FileNotFoundError` (other) | [Server] can't find a required file | \"The file `[path]` is missing. Want me to check if it should exist?\" |\n| `PermissionError` | Can't write to [file] | \"Check file permissions on `[path]`. On Mac, try: `chmod 644 [path]`\" |\n\n**Connection Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `ECONNREFUSED` | [Server] isn't responding | \"The server process may have stopped. Restarting your editor usually fixes this.\" |\n| `TimeoutError` or `timed out` | [Server] took too long to respond | \"This could be a one-off. If it keeps happening, restart your editor.\" |\n| `ANTHROPIC_API_KEY not set` | API key is missing | \"Run `\u002Fai-setup` to configure your API key.\" |\n\n**Catch-all:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| Anything else | [Server] hit an unexpected error | \"This is unusual. Want me to look at the server code to investigate?\" |\n\n**Present fixes as a numbered list tied to each issue:**\n\n```\nRecommended fixes:\n\n  1. Granola MCP — missing package\n     → Run: pip install -e amp-core\n     [Auto-fixable]\n\n  2. Work MCP — task file not found\n     → Want me to check if 03-Tasks\u002FTasks.md exists?\n     [Needs investigation]\n\n  3. Career MCP — permission error on evidence file\n     → Run: chmod 644 05-Areas\u002FCareer\u002FEvidence\u002F2026-Q1.md\n     [Manual fix]\n```\n\n---\n\n### Step 4: Offer to Fix\n\nAfter showing the diagnosis, offer to take action:\n\n```\nWant me to try fixing these? Here's what I can do:\n\n  Auto-fix (I'll handle it):\n  • Reinstall Python packages\n  • Regenerate missing config from example\n  • Create missing vault files (Tasks.md, etc.)\n  • Validate and repair .mcp.json\n\n  Manual (you'll need to do this):\n  • File permission changes\n  • Editor restart\n  • API key configuration (\u002Fai-setup)\n\n[Fix what you can] \u002F [Show me details first] \u002F [Skip for now]\n```\n\n**If user says \"fix what you can\":**\n\nExecute auto-fixable items in order:\n\n1. **Missing packages:** Run `pip install -e amp-core` from the amp-core directory\n2. **Missing .mcp.json:** Copy from `.mcp.json.template`, substitute VAULT_PATH\n3. **Invalid .mcp.json:** Read it, validate JSON, identify the issue, offer to rewrite\n4. **Missing vault files:** Create with minimal valid content (e.g., empty Tasks.md with headers)\n5. **Corrupted JSON data files:** Read the file, identify the corruption, offer to reset or repair\n\nAfter each fix, report:\n```\n✓ Reinstalled Python packages\n✓ Created missing 03-Tasks\u002FTasks.md\n✗ Couldn't fix permission on Evidence file — you'll need to run:\n  chmod 644 05-Areas\u002FCareer\u002FEvidence\u002F2026-Q1.md\n```\n\n**If user says \"show me details first\":**\n\nFor each issue, show the full technical context (this is the one time you show technical detail):\n\n```\nIssue #1: Granola MCP — missing package\n\n  Technical error: ModuleNotFoundError: No module named 'granola_server'\n  Server config: granola-mcp in .mcp.json\n  Last working: 2 days ago\n\n  Fix: pip install -e amp-core\n\n  This reinstalls all MCP server packages. It takes about 10 seconds.\n```\n\n---\n\n### Step 5: Acknowledge Errors\n\nAfter addressing issues (whether auto-fixed or explained):\n\n**Update the error queue:**\n\nRead `.logs\u002Ferror-queue.json`, set `acknowledged: true` on every entry that was shown to the user. Write the file back.\n\nThis prevents the same errors from resurfacing at the next session start.\n\n**Note:** If the error queue file doesn't exist or is empty, skip this step.\n\n---\n\n### Step 6: Vault Health Scan\n\nRun the vault maintenance checker to surface content-level issues:\n\n```bash\nnode .claude\u002Fhooks\u002Fmaintenance.cjs\n```\n\nThis checks four things:\n- **Stale inbox files** (>30 days in `00-Inbox\u002F`)\n- **Broken WikiLinks** (dead `[[links]]` in PARA folders)\n- **Orphaned person pages** (people not referenced in tasks or recent meetings)\n- **Stale agent memory** (>90 day old files in `.claude\u002Fmemory\u002F`)\n\nInclude results in the health report under a **Vault Hygiene** section:\n\n```\nVAULT HYGIENE\n\n  Stale inbox files: [N] (oldest: [X] days)\n  Broken WikiLinks: [N]\n  Orphaned person pages: [N]\n  Stale agent memory: [N]\n```\n\nIf all counts are zero, show: `Vault hygiene: ✅ Clean`\n\nFor non-zero items, list the top 5 of each category and offer to fix (archive stale files, remove broken links, etc.)\n\n---\n\n### Step 7: Fresh Re-Check (Optional)\n\nAt the end, offer a fresh check:\n\n```\nWant me to run a fresh pre-flight check to verify everything?\n```\n\n**If yes:**\n\n1. Delete `.logs\u002Fmcp-health.json` (forces re-check)\n2. Run the pre-flight checker:\n   ```bash\n   python3 \"$VAULT_PATH\u002Famp-core\u002Fcore\u002Futils\u002Fpreflight.py\" 2>\u002Fdev\u002Fnull || python3 \"core\u002Futils\u002Fpreflight.py\" 2>\u002Fdev\u002Fnull\n   ```\n3. Read the newly generated `.logs\u002Fmcp-health.json`\n4. Report results:\n   ```\n   Fresh check complete:\n\n   ✓ work-mcp — OK\n   ✓ calendar-mcp — OK\n   ✓ career-mcp — OK\n   ✗ granola-mcp — still failing (missing package)\n   ✓ amp-improvements-mcp — OK\n   ...\n\n   [X]\u002F[Y] MCP servers operational\n   ```\n\n**If the pre-flight script doesn't exist yet** (health system not fully built):\n\nFall back to manual checks:\n\n```python\n# For each server in .mcp.json, try importing the module\npython3 -c \"import core.mcp.work_server\" 2>&1\npython3 -c \"import core.mcp.calendar_server\" 2>&1\n# etc.\n```\n\nReport which imports succeed and which fail.\n\n---\n\n### Step 7: Track Usage (Silent)\n\nUpdate `System\u002Fusage_log.md` to mark health check as used.\n\n**Analytics (Silent):**\n\nCall `track_event` with event_name `health_check_completed` and properties:\n- `errors_found`: number of errors found\n- `warnings_found`: number of warnings found\n- `auto_fixed`: number of issues auto-fixed\n\nThis only fires if the user has opted into analytics. No action needed if it returns \"analytics_disabled\".\n\n---\n\n## Edge Cases\n\n### No Health Files Exist\n\nThe health system hasn't been set up yet. This is expected for new or recently updated Amp installations.\n\nOffer to do a manual check of MCP servers by testing imports, then report what's working.\n\n### Error Queue is Very Large\n\nIf error-queue.json has more than 20 unacknowledged entries:\n\n```\nThere are [N] unacknowledged errors in the queue. Here are the most recent 10:\n\n[Show top 10 by timestamp]\n\nThe older errors are likely symptoms of the same issues. Want me to acknowledge them all after we fix the root causes?\n```\n\n### Same Server Appears in Both Files\n\nIf a server has both a pre-flight failure AND error queue entries, combine them:\n\n```\nGranola MCP — can't start (missing package)\n  Pre-flight: Failed to import at [time]\n  Also: 3 tool errors since [time] (task creation, task update, etc.)\n  Root cause: Missing Python package — fixing the import will resolve the tool errors too\n```\n\n### All Servers Healthy but Errors Exist\n\nThis means servers started fine but tools failed during use. Focus on the error queue:\n\n```\nAll MCP servers are starting correctly, but some tools had errors recently:\n\n  1. Work MCP — task creation failed (3 times, yesterday)\n     This might be a data issue rather than a server problem.\n     Want me to investigate the task file?\n```\n\n### User Just Wants Quick Status\n\nIf user says \"is everything working?\" or \"quick health check\":\n\nGive the short version only:\n\n```\nMCP Servers: [X]\u002F[Y] operational\nRecent errors: [N] (or \"None\")\n[One-liner about any critical issue, or \"Nothing needs attention.\"]\n```\n\nDon't go into fix mode unless asked.\n\n---\n\n### Granola Mobile Recording Check\n\nAs part of the health check, also check for Granola migration status:\n\n1. Run: `node .scripts\u002Fmeeting-intel\u002Fcheck-granola-migration.cjs 2>\u002Fdev\u002Fnull || echo '{\"status\":\"not_applicable\"}'`\n2. If status is `migration_available`, add to the health report under a \"Recommended\" section:\n   ```\n   RECOMMENDED\n\n   Granola mobile recordings — not yet enabled\n     Your phone call recordings aren't syncing to Amp yet.\n     To enable: say \"enable mobile recordings\" or run \u002Fprocess-meetings\n   ```\n3. If status is `token_expired`, add under WARNINGS:\n   ```\n   Granola sign-in expired — mobile recordings paused\n     Desktop meetings still sync, but phone recordings need a refresh.\n     Say \"refresh Granola\" to fix.\n   ```\n4. If `authenticated` or `not_applicable`: don't mention it.\n\n---\n\n## Related Commands\n\n- `\u002Fai-status` — Check AI model configuration specifically\n- `\u002Fai-setup` — Configure API keys and model preferences\n- `\u002Famp-update` — Update Amp (often fixes package issues)\n- `\u002Fxray` — Understand how Amp's architecture works under the hood\n","## Purpose\n\nDiagnose what's working, what's broken, and fix what can be fixed. This is Amp's self-repair system. It reads health data from pre-flight checks and error logs, translates technical failures into plain language, and offers specific fixes.\n\n## When to Run\n\n- User types `\u002Fhealth-check`\n- User says \"fix health issues\" or \"something's broken\"\n- User says \"check health\" or \"system status\"\n- After session start shows pre-flight warnings\n- When an MCP tool fails and user wants to investigate\n\n---\n\n## Execution\n\n### Step 1: Gather Health Data\n\nRead both health files silently. Don't show raw JSON to the user.\n\n**A. Pre-flight results:**\n\n```\nRead: .logs\u002Fmcp-health.json\n```\n\nThis file contains cached results from the last pre-flight check. Each server entry has:\n- `status`: \"ok\" or \"error\"\n- `error`: technical error message (for your diagnosis)\n- `humanError`: plain-language message (for the user)\n- `checkedAt`: when it was last checked\n\n**B. Error queue:**\n\n```\nRead: .logs\u002Ferror-queue.json\n```\n\nThis file contains recent errors from MCP tool calls. Each entry has:\n- `source`: which MCP server (e.g., \"mcp:work-mcp\")\n- `severity`: \"error\" or \"warning\"\n- `message`: technical error (for your diagnosis)\n- `humanMessage`: plain-language message (for the user)\n- `context.tool`: which tool was called\n- `timestamp`: when it happened\n- `count`: how many times (deduped within 5-minute windows)\n- `acknowledged`: whether user has been told about it\n\n**C. If either file is missing:**\n\nIf `.logs\u002Fmcp-health.json` doesn't exist, the pre-flight checker hasn't run yet. Note this and offer to run one.\n\nIf `.logs\u002Ferror-queue.json` doesn't exist, there are no logged errors. This is good news.\n\nIf the `.logs\u002F` directory doesn't exist at all, the health system hasn't been set up yet. Tell the user:\n\n```\nThe health monitoring system isn't set up yet. This is normal if you just updated Amp.\n\nWant me to check your MCP servers manually? I can verify each one is working.\n```\n\nThen skip to Step 5 (manual check).\n\n---\n\n### Step 2: Display Health Summary\n\nPresent results in plain language, grouped by severity. **Never show raw JSON or stack traces.**\n\n**If everything is healthy and no unacknowledged errors:**\n\n```\nAll systems are running fine. Nothing to fix.\n\nLast checked: [relative time, e.g., \"2 hours ago\"]\nMCP servers: [X]\u002F[Y] operational\nRecent errors: None\n```\n\nStop here. Don't pad with unnecessary detail.\n\n---\n\n**If there are issues, show them grouped by severity:**\n\n```\nAmp Health Report\n━━━━━━━━━━━━━━━━\n\nERRORS (need attention)\n\n  1. [Server name] — [humanMessage or humanError]\n     When: [relative time]  |  Occurrences: [count]\n     Tool affected: [tool name, if from error queue]\n\n  2. [Server name] — [humanMessage or humanError]\n     When: [relative time]  |  Occurrences: [count]\n\nWARNINGS (worth knowing)\n\n  3. [Server name] — [humanMessage or humanError]\n     When: [relative time]\n\n━━━━━━━━━━━━━━━━\n[X] issues found  |  [Y] can be auto-fixed\n```\n\n**Formatting rules:**\n- Show errors first, then warnings\n- Use the `humanMessage` or `humanError` field — never the technical `message` or `error`\n- Show relative timestamps (\"2 hours ago\", \"yesterday at 3pm\") not ISO timestamps\n- If `count` > 1, show it — \"Occurrences: 5\" tells the user this is a persistent problem\n- Combine pre-flight failures and error queue entries for the same server into one item\n- Cap display at 10 issues. If more: \"...and [N] more. Want to see all?\"\n\n---\n\n### Step 3: Diagnose and Propose Fixes\n\nFor each issue, analyze the technical `message`\u002F`error` field (not shown to user) and propose a specific fix. Use this mapping:\n\n**Module\u002FPackage Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `ModuleNotFoundError: No module named 'X'` | [Server] can't start — missing Python package | \"Run `pip install -e amp-core` from your vault folder to reinstall packages.\" |\n| `ImportError: cannot import name 'X'` | [Server] has a code compatibility issue | \"This usually fixes itself with an update. Run `\u002Famp-update` to get the latest version.\" |\n| `No module named 'core.mcp.X'` | [Server] can't find its code | \"The server file may be missing. Want me to check if the file exists?\" |\n\n**Config Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `VAULT_PATH not set` or `KeyError: 'VAULT_PATH'` | [Server] doesn't know where your vault is | \"Your MCP config may need the vault path. Want me to check `.mcp.json`?\" |\n| `JSONDecodeError` | [Server] got corrupted data | \"A config or data file has invalid formatting. Want me to find and fix it?\" |\n| `FileNotFoundError: .mcp.json` | MCP configuration file is missing | \"Your `.mcp.json` file is missing. Want me to regenerate it from the example?\" |\n\n**File\u002FPermission Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `FileNotFoundError: Tasks.md` | Task file not found | \"Your task file is missing — the vault may need setup. Want me to create it?\" |\n| `FileNotFoundError` (other) | [Server] can't find a required file | \"The file `[path]` is missing. Want me to check if it should exist?\" |\n| `PermissionError` | Can't write to [file] | \"Check file permissions on `[path]`. On Mac, try: `chmod 644 [path]`\" |\n\n**Connection Issues:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| `ECONNREFUSED` | [Server] isn't responding | \"The server process may have stopped. Restarting your editor usually fixes this.\" |\n| `TimeoutError` or `timed out` | [Server] took too long to respond | \"This could be a one-off. If it keeps happening, restart your editor.\" |\n| `ANTHROPIC_API_KEY not set` | API key is missing | \"Run `\u002Fai-setup` to configure your API key.\" |\n\n**Catch-all:**\n\n| Technical pattern | What to tell the user | Suggested fix |\n|---|---|---|\n| Anything else | [Server] hit an unexpected error | \"This is unusual. Want me to look at the server code to investigate?\" |\n\n**Present fixes as a numbered list tied to each issue:**\n\n```\nRecommended fixes:\n\n  1. Granola MCP — missing package\n     → Run: pip install -e amp-core\n     [Auto-fixable]\n\n  2. Work MCP — task file not found\n     → Want me to check if 03-Tasks\u002FTasks.md exists?\n     [Needs investigation]\n\n  3. Career MCP — permission error on evidence file\n     → Run: chmod 644 05-Areas\u002FCareer\u002FEvidence\u002F2026-Q1.md\n     [Manual fix]\n```\n\n---\n\n### Step 4: Offer to Fix\n\nAfter showing the diagnosis, offer to take action:\n\n```\nWant me to try fixing these? Here's what I can do:\n\n  Auto-fix (I'll handle it):\n  • Reinstall Python packages\n  • Regenerate missing config from example\n  • Create missing vault files (Tasks.md, etc.)\n  • Validate and repair .mcp.json\n\n  Manual (you'll need to do this):\n  • File permission changes\n  • Editor restart\n  • API key configuration (\u002Fai-setup)\n\n[Fix what you can] \u002F [Show me details first] \u002F [Skip for now]\n```\n\n**If user says \"fix what you can\":**\n\nExecute auto-fixable items in order:\n\n1. **Missing packages:** Run `pip install -e amp-core` from the amp-core directory\n2. **Missing .mcp.json:** Copy from `.mcp.json.template`, substitute VAULT_PATH\n3. **Invalid .mcp.json:** Read it, validate JSON, identify the issue, offer to rewrite\n4. **Missing vault files:** Create with minimal valid content (e.g., empty Tasks.md with headers)\n5. **Corrupted JSON data files:** Read the file, identify the corruption, offer to reset or repair\n\nAfter each fix, report:\n```\n✓ Reinstalled Python packages\n✓ Created missing 03-Tasks\u002FTasks.md\n✗ Couldn't fix permission on Evidence file — you'll need to run:\n  chmod 644 05-Areas\u002FCareer\u002FEvidence\u002F2026-Q1.md\n```\n\n**If user says \"show me details first\":**\n\nFor each issue, show the full technical context (this is the one time you show technical detail):\n\n```\nIssue #1: Granola MCP — missing package\n\n  Technical error: ModuleNotFoundError: No module named 'granola_server'\n  Server config: granola-mcp in .mcp.json\n  Last working: 2 days ago\n\n  Fix: pip install -e amp-core\n\n  This reinstalls all MCP server packages. It takes about 10 seconds.\n```\n\n---\n\n### Step 5: Acknowledge Errors\n\nAfter addressing issues (whether auto-fixed or explained):\n\n**Update the error queue:**\n\nRead `.logs\u002Ferror-queue.json`, set `acknowledged: true` on every entry that was shown to the user. Write the file back.\n\nThis prevents the same errors from resurfacing at the next session start.\n\n**Note:** If the error queue file doesn't exist or is empty, skip this step.\n\n---\n\n### Step 6: Vault Health Scan\n\nRun the vault maintenance checker to surface content-level issues:\n\n```bash\nnode .claude\u002Fhooks\u002Fmaintenance.cjs\n```\n\nThis checks four things:\n- **Stale inbox files** (>30 days in `00-Inbox\u002F`)\n- **Broken WikiLinks** (dead `[[links]]` in PARA folders)\n- **Orphaned person pages** (people not referenced in tasks or recent meetings)\n- **Stale agent memory** (>90 day old files in `.claude\u002Fmemory\u002F`)\n\nInclude results in the health report under a **Vault Hygiene** section:\n\n```\nVAULT HYGIENE\n\n  Stale inbox files: [N] (oldest: [X] days)\n  Broken WikiLinks: [N]\n  Orphaned person pages: [N]\n  Stale agent memory: [N]\n```\n\nIf all counts are zero, show: `Vault hygiene: ✅ Clean`\n\nFor non-zero items, list the top 5 of each category and offer to fix (archive stale files, remove broken links, etc.)\n\n---\n\n### Step 7: Fresh Re-Check (Optional)\n\nAt the end, offer a fresh check:\n\n```\nWant me to run a fresh pre-flight check to verify everything?\n```\n\n**If yes:**\n\n1. Delete `.logs\u002Fmcp-health.json` (forces re-check)\n2. Run the pre-flight checker:\n   ```bash\n   python3 \"$VAULT_PATH\u002Famp-core\u002Fcore\u002Futils\u002Fpreflight.py\" 2>\u002Fdev\u002Fnull || python3 \"core\u002Futils\u002Fpreflight.py\" 2>\u002Fdev\u002Fnull\n   ```\n3. Read the newly generated `.logs\u002Fmcp-health.json`\n4. Report results:\n   ```\n   Fresh check complete:\n\n   ✓ work-mcp — OK\n   ✓ calendar-mcp — OK\n   ✓ career-mcp — OK\n   ✗ granola-mcp — still failing (missing package)\n   ✓ amp-improvements-mcp — OK\n   ...\n\n   [X]\u002F[Y] MCP servers operational\n   ```\n\n**If the pre-flight script doesn't exist yet** (health system not fully built):\n\nFall back to manual checks:\n\n```python\n# For each server in .mcp.json, try importing the module\npython3 -c \"import core.mcp.work_server\" 2>&1\npython3 -c \"import core.mcp.calendar_server\" 2>&1\n# etc.\n```\n\nReport which imports succeed and which fail.\n\n---\n\n### Step 7: Track Usage (Silent)\n\nUpdate `System\u002Fusage_log.md` to mark health check as used.\n\n**Analytics (Silent):**\n\nCall `track_event` with event_name `health_check_completed` and properties:\n- `errors_found`: number of errors found\n- `warnings_found`: number of warnings found\n- `auto_fixed`: number of issues auto-fixed\n\nThis only fires if the user has opted into analytics. No action needed if it returns \"analytics_disabled\".\n\n---\n\n## Edge Cases\n\n### No Health Files Exist\n\nThe health system hasn't been set up yet. This is expected for new or recently updated Amp installations.\n\nOffer to do a manual check of MCP servers by testing imports, then report what's working.\n\n### Error Queue is Very Large\n\nIf error-queue.json has more than 20 unacknowledged entries:\n\n```\nThere are [N] unacknowledged errors in the queue. Here are the most recent 10:\n\n[Show top 10 by timestamp]\n\nThe older errors are likely symptoms of the same issues. Want me to acknowledge them all after we fix the root causes?\n```\n\n### Same Server Appears in Both Files\n\nIf a server has both a pre-flight failure AND error queue entries, combine them:\n\n```\nGranola MCP — can't start (missing package)\n  Pre-flight: Failed to import at [time]\n  Also: 3 tool errors since [time] (task creation, task update, etc.)\n  Root cause: Missing Python package — fixing the import will resolve the tool errors too\n```\n\n### All Servers Healthy but Errors Exist\n\nThis means servers started fine but tools failed during use. Focus on the error queue:\n\n```\nAll MCP servers are starting correctly, but some tools had errors recently:\n\n  1. Work MCP — task creation failed (3 times, yesterday)\n     This might be a data issue rather than a server problem.\n     Want me to investigate the task file?\n```\n\n### User Just Wants Quick Status\n\nIf user says \"is everything working?\" or \"quick health check\":\n\nGive the short version only:\n\n```\nMCP Servers: [X]\u002F[Y] operational\nRecent errors: [N] (or \"None\")\n[One-liner about any critical issue, or \"Nothing needs attention.\"]\n```\n\nDon't go into fix mode unless asked.\n\n---\n\n### Granola Mobile Recording Check\n\nAs part of the health check, also check for Granola migration status:\n\n1. Run: `node .scripts\u002Fmeeting-intel\u002Fcheck-granola-migration.cjs 2>\u002Fdev\u002Fnull || echo '{\"status\":\"not_applicable\"}'`\n2. If status is `migration_available`, add to the health report under a \"Recommended\" section:\n   ```\n   RECOMMENDED\n\n   Granola mobile recordings — not yet enabled\n     Your phone call recordings aren't syncing to Amp yet.\n     To enable: say \"enable mobile recordings\" or run \u002Fprocess-meetings\n   ```\n3. If status is `token_expired`, add under WARNINGS:\n   ```\n   Granola sign-in expired — mobile recordings paused\n     Desktop meetings still sync, but phone recordings need a refresh.\n     Say \"refresh Granola\" to fix.\n   ```\n4. If `authenticated` or `not_applicable`: don't mention it.\n\n---\n\n## Related Commands\n\n- `\u002Fai-status` — Check AI model configuration specifically\n- `\u002Fai-setup` — Configure API keys and model preferences\n- `\u002Famp-update` — Update Amp (often fixes package issues)\n- `\u002Fxray` — Understand how Amp's architecture works under the hood\n",{"name":5,"description":7},"main","6a447b9ff35eed7bda9e12399bcd373dd31e0a53",".claude\u002Fskills\u002Fhealth-check","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp","https:\u002F\u002Fgithub.com\u002Fhemory","https:\u002F\u002Fwww.heminthehat.com\u002F","The People Developer | L&D Program Manager | Software Engineer","2026-06-09 00:20:04",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add hemory\u002Famp --skill health-check",{"tool":38,"command":39},"bunx","bunx skills add hemory\u002Famp --skill health-check",{"tool":41,"command":42},"pnpm","pnpm dlx skills add hemory\u002Famp --skill health-check","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhealth-check\u002FSKILL.md",true,[],[47,54,61,68,75,82],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":19},"01M76W5GGTP0YHZQQJ4G2ZPSZE","zoom-setup","Connect Zoom to Amp for meeting recordings, scheduling, and transcript context","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fzoom-setup\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M76W5CWR8MABE0XPZVRXFMDK","xray","Understand what just happened under the hood - learn AI by seeing it in action","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxray\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M76W582J6PD3TTXZXFA2HVQJ","week-review","Review week's progress with concrete accomplishments (not fake percentages), pattern detection, and goal tracking.","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweek-review\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M76W54EY8D8Y55DEPYPJ9YBV","week-plan","Set weekly priorities and plan the week ahead with intelligent suggestions based on goals, calendar shape, and task effort.","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweek-plan\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M76W527EJ43YXBN0CE9SRAYT","triage","Strategically route orphaned files and extract scattered tasks","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftriage\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M76W4ZYRDVHZ3SS8W5WZ53Q8","trello-setup","Connect Trello to Amp for visual Kanban task sync","https:\u002F\u002Fgithub.com\u002Fhemory\u002Famp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftrello-setup\u002FSKILL.md",[],[]]