System health check (MOT) for skills, agents, hooks, and memory

MITAuto-check: notes

Install Mot

skills CLI
$ npx skills add parcadei/Continuous-Claude-v3 --skill mot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install parcadei/Continuous-Claude-v3 mot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/parcadei/Continuous-Claude-v3.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mot .claude/skills/mot && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mot
GitHub stars
3.9k
Used in
1 other repo
Token cost
~1.8k tokens
SKILL.md length
105 words
Files
1
Skills in repo
141
Repo updated
First seen
Licence
MIT

At a glance

System health check (MOT) for skills, agents, hooks, and memory

  • Works in 5 steps: Skills Audit → Agents Audit → Hooks Audit → …
  • SKILL.md covers Usage, Audit Process, Auto-Fix (--fix flag) and Output Format, plus 2 more sections
  • Calls psql, uv and npm; needs VOYAGE_API_KEY

What it does

Mot is an agent skill from parcadei/Continuous-Claude-v3. System health check (MOT) for skills, agents, hooks, and memory

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Context management for Claude Code. Hooks maintain state via ledgers and handoffs. MCP execution without context pollution. Agent orchestration with isolated context windows. The licence is MIT.

Example prompts

  • “/mot”

Requirements

  • Python 3
  • A credential in VOYAGE_API_KEY
  • Pre-approved tools (allowed-tools): Read, Bash, Glob, Grep

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Skills Audit
  2. Agents Audit
  3. Hooks Audit
  4. Memory Audit
  5. Cross-Reference Audit

What it can do on your machine

Read from SKILL.md and the folder at commit d07ff4b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Bash
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • psql
    • uv
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • VOYAGE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mot loads about 1.8k tokens when it runs. Until then it costs about 17 tokens; SKILL.md has 105 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~17
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from parcadei/Continuous-Claude-v3 at commit d07ff4b, republished under its MIT licence (© parcadei). 105 words, ~1,765 tokens.

Download SKILL.mdSave it as .claude/skills/mot/SKILL.md (or your agent's skills folder).
name
mot
description
System health check (MOT) for skills, agents, hooks, and memory
allowed-tools
Read, Bash, Glob, Grep
model
sonnet

MOT - System Health Check

Run comprehensive health checks on all Claude Code components.

Usage

/mot              # Full audit (all categories)
/mot skills       # Just skills
/mot agents       # Just agents
/mot hooks        # Just hooks
/mot memory       # Just memory system
/mot --fix        # Auto-fix simple issues
/mot --quick      # P0 checks only (fast)

Audit Process

Phase 1: Skills Audit
bash
# Count skills
echo "=== SKILLS ==="
SKILL_COUNT=$(find .claude/skills -name "SKILL.md" | wc -l | xargs)
echo "Found $SKILL_COUNT skill files"

# Check frontmatter parsing
FAIL=0
for skill in $(find .claude/skills -name "SKILL.md"); do
  if ! head -1 "$skill" | grep -q "^---$"; then
    echo "FAIL: No frontmatter: $skill"
    FAIL=$((FAIL+1))
  fi
done
echo "Frontmatter: $((SKILL_COUNT - FAIL)) pass, $FAIL fail"

# Check name matches directory
FAIL=0
for skill in $(find .claude/skills -name "SKILL.md"); do
  dir=$(basename $(dirname "$skill"))
  name=$(grep "^name:" "$skill" 2>/dev/null | head -1 | cut -d: -f2 | xargs)
  if [ -n "$name" ] && [ "$dir" != "$name" ]; then
    echo "FAIL: Name mismatch $dir vs $name"
    FAIL=$((FAIL+1))
  fi
done
echo "Name consistency: $((SKILL_COUNT - FAIL)) pass, $FAIL fail"
Phase 2: Agents Audit
bash
echo "=== AGENTS ==="
AGENT_COUNT=$(ls .claude/agents/*.md 2>/dev/null | wc -l | xargs)
echo "Found $AGENT_COUNT agent files"

# Check required fields
FAIL=0
for agent in .claude/agents/*.md; do
  [ -f "$agent" ] || continue

  # Check name field exists
  if ! grep -q "^name:" "$agent"; then
    echo "FAIL: Missing name: $agent"
    FAIL=$((FAIL+1))
    continue
  fi

  # Check model is valid
  model=$(grep "^model:" "$agent" | head -1 | cut -d: -f2 | xargs)
  case "$model" in
    opus|sonnet|haiku) ;;
    *) echo "FAIL: Invalid model '$model': $agent"; FAIL=$((FAIL+1)) ;;
  esac
done
echo "Agent validation: $((AGENT_COUNT - FAIL)) pass, $FAIL fail"

# Check for dangling references (agents that reference non-existent agents)
echo "Checking agent cross-references..."
for agent in .claude/agents/*.md; do
  [ -f "$agent" ] || continue
  # Find subagent_type references
  refs=$(grep -oE 'subagent_type[=:]["'\'']*([a-z-]+)' "$agent" 2>/dev/null | sed 's/.*["'\'']//' | sed 's/["'\'']$//')
  for ref in $refs; do
    if [ ! -f ".claude/agents/$ref.md" ]; then
      echo "WARN: $agent references non-existent agent: $ref"
    fi
  done
done
Phase 3: Hooks Audit
bash
echo "=== HOOKS ==="

# Check TypeScript source count
TS_COUNT=$(ls .claude/hooks/src/*.ts 2>/dev/null | wc -l | xargs)
echo "Found $TS_COUNT TypeScript source files"

# Check bundles exist
BUNDLE_COUNT=$(ls .claude/hooks/dist/*.mjs 2>/dev/null | wc -l | xargs)
echo "Found $BUNDLE_COUNT built bundles"

# Check shell wrappers are executable
FAIL=0
for sh in .claude/hooks/*.sh; do
  [ -f "$sh" ] || continue
  if [ ! -x "$sh" ]; then
    echo "FAIL: Not executable: $sh"
    FAIL=$((FAIL+1))
  fi
done
SH_COUNT=$(ls .claude/hooks/*.sh 2>/dev/null | wc -l | xargs)
echo "Shell wrappers: $((SH_COUNT - FAIL)) executable, $FAIL need chmod +x"

# Check hooks registered in settings.json exist
echo "Checking registered hooks..."
FAIL=0
# Extract hook commands from settings.json and verify files exist
grep -oE '"command":\s*"[^"]*\.sh"' .claude/settings.json 2>/dev/null | \
  sed 's/.*"\([^"]*\.sh\)".*/\1/' | \
  sed 's|\$CLAUDE_PROJECT_DIR|.claude|g' | \
  sed "s|\$HOME|$HOME|g" | \
  sort -u | while read hook; do
    # Resolve to actual path
    resolved=$(echo "$hook" | sed 's|^\./||')
    if [ ! -f "$resolved" ] && [ ! -f "./$resolved" ]; then
      echo "WARN: Registered hook not found: $hook"
    fi
  done
Phase 4: Memory Audit
bash
echo "=== MEMORY SYSTEM ==="

# Check DATABASE_URL
if [ -z "$DATABASE_URL" ]; then
  echo "FAIL: DATABASE_URL not set"
else
  echo "PASS: DATABASE_URL is set"

  # Test connection
  if psql "$DATABASE_URL" -c "SELECT 1" > /dev/null 2>&1; then
    echo "PASS: PostgreSQL reachable"

    # Check pgvector
    if psql "$DATABASE_URL" -c "SELECT extname FROM pg_extension WHERE extname='vector'" 2>/dev/null | grep -q vector; then
      echo "PASS: pgvector extension installed"
    else
      echo "FAIL: pgvector extension not installed"
    fi

    # Check table exists
    if psql "$DATABASE_URL" -c "\d archival_memory" > /dev/null 2>&1; then
      echo "PASS: archival_memory table exists"

      # Count learnings
      COUNT=$(psql "$DATABASE_URL" -t -c "SELECT COUNT(*) FROM archival_memory" 2>/dev/null | xargs)
      echo "INFO: $COUNT learnings stored"
    else
      echo "FAIL: archival_memory table missing"
    fi
  else
    echo "FAIL: PostgreSQL not reachable"
  fi
fi

# Check Python dependencies
echo "Checking Python dependencies..."
(cd opc && uv run python -c "import psycopg2; import pgvector; import sentence_transformers" 2>/dev/null) && \
  echo "PASS: Python dependencies available" || \
  echo "WARN: Some Python dependencies missing"
Phase 5: Cross-Reference Audit
bash
echo "=== CROSS-REFERENCES ==="

# Check skills reference valid agents
echo "Checking skill → agent references..."
FAIL=0
for skill in $(find .claude/skills -name "SKILL.md"); do
  refs=$(grep -oE 'subagent_type[=:]["'\'']*([a-z-]+)' "$skill" 2>/dev/null | sed 's/.*["'\'']//' | sed 's/["'\'']$//')
  for ref in $refs; do
    if [ -n "$ref" ] && [ ! -f ".claude/agents/$ref.md" ]; then
      echo "FAIL: $skill references missing agent: $ref"
      FAIL=$((FAIL+1))
    fi
  done
done
echo "Skill→Agent refs: $FAIL broken"

Auto-Fix (--fix flag)

If --fix is specified, automatically fix:

  1. Make shell wrappers executable

    bash
    chmod +x .claude/hooks/*.sh
  2. Rebuild hooks if TypeScript newer than bundles

    bash
    cd .claude/hooks && npm run build
  3. Create missing cache directories

    bash
    mkdir -p .claude/cache/agents/{scout,kraken,oracle,spark}
    mkdir -p .claude/cache/mot

Output Format

Write full report to .claude/cache/mot/report-{timestamp}.md:

markdown
# MOT Health Report
Generated: {timestamp}

## Summary
| Category | Pass | Fail | Warn |
|----------|------|------|------|
| Skills   | 204  | 2    | 0    |
| Agents   | 47   | 1    | 3    |
| Hooks    | 58   | 2    | 1    |
| Memory   | 4    | 0    | 1    |
| X-Refs   | 0    | 0    | 2    |

## Issues Found

### P0 - Critical
- [FAIL] Hook build failed: tldr-context-inject.ts

### P1 - High
- [FAIL] Agent references missing: scot → scout (typo)

### P2 - Medium
- [WARN] 3 hooks need rebuild (dist older than src)

### P3 - Low
- [INFO] VOYAGE_API_KEY not set (using local BGE)

Exit Codes

  • 0 - All P0/P1 checks pass
  • 1 - Any P0/P1 failure
  • 2 - Only P2/P3 warnings

Quick Mode (--quick)

Only run P0 checks:

  1. Frontmatter parses
  2. Hooks build
  3. Shell wrappers executable
  4. PostgreSQL reachable

© parcadei, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/mot of parcadei/Continuous-Claude-v3.

Open the folder on GitHubat commit d07ff4b

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in parcadei/Continuous-Claude-v3, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Mot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mot this skillparcadei/Continuous-Claude-v33.9k1 repos~1.8kAutomated safety check: NotesMIT
Skin Health Analyzersickn33/agentic-awesome-skills47k2 repos~293Automated safety check: PassMIT
Codebase Health Dashboardgarrytan/gstack136k—~11kAutomated safety check: NotesMIT
Healthagenticnotetaking/arscontexta3.5k—~7.1kAutomated safety check: NotesMIT
Health Wellnesssickn33/agentic-awesome-skills47k1 repos~3.5kAutomated safety check: PassMIT
Cost Healthruvnet/ruflo74k—~901Automated safety check: NotesMIT

Similar skills

  • Skin Health Analyzer

    sickn33/agentic-awesome-skills

    Analyze skin health data, identify skin problem patterns, assess skin health status.

    47k GitHub starsUsed in 2 repos~293 tokens
    Productivity & AutomationAuto-check passed
  • Runs a project's own type checker, linter, test runner, dead-code detector and shell linter, combines them into a weighted 0-10 score and tracks the trend.

    136k GitHub stars~11k tokensUpdated today
    DevelopmentAuto-check: notes
  • Health

    agenticnotetaking/arscontexta

    Run condition-based vault health diagnostics. An agent skill from agenticnotetaking/arscontexta.

    3.5k GitHub stars~7.1k tokensUpdated 7 mo ago
    Auto-check: notes
  • Health Wellness

    sickn33/agentic-awesome-skills

    Wellbeing check-in register: anonymous flag, department, check-in date, wellbeing score, stress and energy levels, support and resource flags, confidentiality and status.

    47k GitHub starsUsed in 1 repo~3.5k tokens
    Productivity & AutomationAuto-check passed
  • Cost Health

    ruvnet/ruflo

    Composite CI gate — runs cost-budget-check + cost-burn + cost-anomaly + cost-projection in parallel and surfaces a single combined health status with max exit code.

    74k GitHub stars~901 tokensUpdated today
    Auto-check: notes
  • OmniRoute Health CLI

    diegosouzapw/OmniRoute

    Checks OmniRoute server health, per-component status, and circuit breakers from the command line, with a live watch dashboard.

    74k GitHub stars~327 tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from parcadei/Continuous-Claude-v3

All 141 skills in this repo
  • Compound Learnings

    parcadei/Continuous-Claude-v3

    Transform session learnings into permanent capabilities (skills, rules, agents).

    3.9k GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check: notes
  • Debug Hooks

    parcadei/Continuous-Claude-v3

    Systematic hook debugging workflow. An agent skill from parcadei/Continuous-Claude-v3.

    3.9k GitHub starsUsed in 1 repo~863 tokens
    Auto-check: notes
  • Tldr Deep

    parcadei/Continuous-Claude-v3

    Full 5-layer analysis of a specific function. An agent skill from parcadei/Continuous-Claude-v3.

    3.9k GitHub starsUsed in 1 repo~677 tokens
    Auto-check passed
  • Gradient Methods

    parcadei/Continuous-Claude-v3

    Problem-solving strategies for gradient methods in optimization

    3.9k GitHub starsUsed in 2 repos~1k tokens
    Auto-check: notes
  • Math

    parcadei/Continuous-Claude-v3

    Unified math capabilities - computation, solving, and explanation.

    3.9k GitHub starsUsed in 2 repos~1.6k tokens
    Auto-check: notes
  • Math Model Selector

    parcadei/Continuous-Claude-v3

    Routes problems to appropriate mathematical frameworks using expert heuristics

    3.9k GitHub starsUsed in 2 repos~841 tokens
    Auto-check passed

Questions about Mot

What does Mot do?

System health check (MOT) for skills, agents, hooks, and memory. Mot is an agent skill from parcadei/Continuous-Claude-v3.

How do I install Mot in Claude Code?

Run `npx skills add parcadei/Continuous-Claude-v3 --skill mot -a claude-code`. Or copy the skill folder (.claude/skills/mot in parcadei/Continuous-Claude-v3) into .claude/skills/mot in your project. Claude Code loads it when a task matches its description.

How do I install Mot in Codex?

Run `npx skills add parcadei/Continuous-Claude-v3 --skill mot -a codex`. Or copy the skill folder (.claude/skills/mot in parcadei/Continuous-Claude-v3) into .agents/skills/mot in your project. Codex loads it when a task matches its description.

Can I use Mot in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add parcadei/Continuous-Claude-v3 --skill mot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mot, .gemini/skills/mot, .github/skills/mot and .opencode/skills/mot in your project.

What does Mot need to run?

Going by SKILL.md and its folder, Mot needs the command-line tools its instructions call (psql, uv and npm) and credentials named VOYAGE_API_KEY. Our summary lists: Python 3; A credential in VOYAGE_API_KEY. Its frontmatter pre-approves these tools: Read, Bash, Glob, Grep.

Does Mot access the network?

SKILL.md contains no URLs. Its commands use uv and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Mot safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Mot use?

Mot is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mot use?

About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Mot?

Skills that share tags, products or a category with Mot: Skin Health Analyzer (sickn33/agentic-awesome-skills, 47k stars), Codebase Health Dashboard (garrytan/gstack, 136k stars), Health (agenticnotetaking/arscontexta, 3.5k stars) and Health Wellness (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mot?

parcadei (a GitHub user) maintains it in parcadei/Continuous-Claude-v3, which has 3,943 GitHub stars. The repository holds 141 skills in this directory. The repository was last updated on January 26, 2026.

Source: parcadei/Continuous-Claude-v3 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.