SpecMem Service - Service Mode Management
Manage SpecMem service modes and monitor connectivity with simple commands.
Manage SpecMem service modes, file watcher, and check connectivity.
COMMAND PARSING
Parse what comes after /specmem-service:
ARGUMENTS: $ARGUMENTS
DECISION LOGIC:
- If ARGUMENTS is empty, blank, or "help" -> Execute HELP section
- If ARGUMENTS is "status" -> Execute STATUS section
- If ARGUMENTS is "start" -> Execute START section
- If ARGUMENTS is "stop" -> Execute STOP section
- If ARGUMENTS is "restart" -> Execute RESTART section
- If ARGUMENTS is "mcp" -> Execute MCP section
- If ARGUMENTS is "http" -> Execute HTTP section
- If ARGUMENTS is "db" -> Execute DB section
- If ARGUMENTS is "watch" or "watch start" -> Execute WATCH_START section
- If ARGUMENTS is "watch stop" -> Execute WATCH_STOP section
- If ARGUMENTS is "watch status" -> Execute WATCH_STATUS section
- If ARGUMENTS is "sync" or "sync check" -> Execute SYNC_CHECK section
- If ARGUMENTS is "sync force" or "resync" -> Execute SYNC_FORCE section
- Otherwise -> Execute HELP section (unknown command)
HELP
Show this help output and STOP:
SpecMem Service - Mode Management
USAGE:
/specmem-service Show this help
/specmem-service status Check all service connectivity
/specmem-service start Start SpecMem services
/specmem-service stop Stop SpecMem services
/specmem-service restart Restart SpecMem services
/specmem-service mcp Test MCP tool availability
/specmem-service http Test HTTP API endpoint
/specmem-service db Test database connection
FILE WATCHER:
/specmem-service watch Start file watcher (auto-sync code changes)
/specmem-service watch start Start file watcher
/specmem-service watch stop Stop file watcher
/specmem-service watch status Check watcher status
SYNC MANAGEMENT:
/specmem-service sync Check if files are in sync
/specmem-service sync check Check sync status (detailed)
/specmem-service sync force Force full resync
/specmem-service resync Force full resync (alias)
SERVICE MODES:
MCP Standard MCP via stdio (native Claude integration)
HTTP REST API at http://localhost:8595
DB Direct PostgreSQL connection
WATCH File watcher for auto-sync
PORTS:
8595 Dashboard/HTTP API
5432 PostgreSQL database
3456 Embedding service
RELATED:
/specmem-stats View system statistics
/specmem Main SpecMem commands
STATUS
Check all service connectivity:
Step 1 - Check MCP:
Call the MCP tool mcp__specmem__show_me_the_stats with empty parameters {}.
If the tool returns successfully -> Report: "MCP: CONNECTED" If the tool fails or errors -> Report: "MCP: NOT AVAILABLE"
Step 2 - Check HTTP: Execute this bash command:
curl -s -o /dev/null -w "%{http_code}" http://localhost:8595/api/health 2>/dev/null || echo "000"
If output is "200" -> Report: "HTTP: CONNECTED (port 8595)" Otherwise -> Report: "HTTP: NOT AVAILABLE"
Step 3 - Check Database: Execute this bash command:
pg_isready -h localhost -p 5432 2>/dev/null && echo "ready" || echo "not ready"
If output contains "ready" (not "not ready") -> Report: "DB: CONNECTED (port 5432)" Otherwise -> Report: "DB: NOT AVAILABLE"
Step 4 - Check File Watcher:
Call the MCP tool mcp__specmem__check_sync_status with parameters:
{
"detailed": false
}
If the tool returns successfully and watcherStatus.isRunning is true -> Report: "WATCHER: RUNNING (syncing code changes)"
If the tool returns successfully and watcherStatus.isRunning is false -> Report: "WATCHER: STOPPED"
Otherwise -> Report: "WATCHER: UNKNOWN"
Step 5 - Display Summary: Show all status results in a formatted summary.
START
Start SpecMem services.
Execute this bash command:
cd /specmem && if [ -f start-specmem.sh ]; then echo "Starting SpecMem services..." && bash start-specmem.sh; elif [ -f start-dashboard.sh ]; then echo "Starting dashboard..." && bash start-dashboard.sh; else echo "ERROR: No startup script found at /specmem"; exit 1; fi
Report the result to the user.
STOP
Stop SpecMem services.
Execute this bash command:
cd /specmem && if [ -f stop-specmem.sh ]; then echo "Stopping SpecMem services..." && bash stop-specmem.sh; else echo "Stopping services via pkill..." && pkill -f "specmem" 2>/dev/null || true && pkill -f "node.*specmem" 2>/dev/null || true && echo "Services stopped (or were not running)"; fi
Report the result to the user.
RESTART
Restart SpecMem services.
Execute this bash command:
cd /specmem && echo "Restarting SpecMem services..." && (if [ -f stop-specmem.sh ]; then bash stop-specmem.sh; else pkill -f "specmem" 2>/dev/null || true; fi) && sleep 2 && (if [ -f start-specmem.sh ]; then bash start-specmem.sh; elif [ -f start-dashboard.sh ]; then bash start-dashboard.sh; else echo "ERROR: No startup script found"; exit 1; fi)
Report the result to the user.
MCP
Test MCP tool availability.
Call the MCP tool mcp__specmem__show_me_the_stats with parameters:
{
"includeTypeDistribution": true,
"includeImportanceDistribution": true
}
Display the result showing memory counts and distributions. If the call fails, report that MCP is not available.
HTTP
Test HTTP API endpoint.
Execute this bash command:
echo "=== HTTP API CHECK ===" && echo "" && echo "Endpoint: http://localhost:8595" && echo "" && echo "Health Check:" && curl -s http://localhost:8595/api/health 2>/dev/null || echo " (not responding)" && echo "" && echo "Available Endpoints:" && echo " GET /api/health" && echo " GET /api/stats" && echo " GET /api/memories" && echo " GET /api/team-members/active" && echo " POST /api/memories/search"
Report the output to the user.
DB
Test database connection.
Execute this bash command:
echo "=== DATABASE CHECK ===" && echo "" && echo "Host: localhost:5432" && echo "" && pg_isready -h localhost -p 5432 2>/dev/null || echo "Database not ready" && echo "" && echo "Tables (if connected):" && PGPASSWORD="${SPECMEM_DB_PASSWORD:-${SPECMEM_PASSWORD:-specmem_westayunprofessional}}" psql -h localhost -p 5432 -U "${SPECMEM_DB_USER:-specmem_westayunprofessional}" -d "${SPECMEM_DB_NAME:-specmem_westayunprofessional}" -c "SELECT tablename FROM pg_tables WHERE schemaname='public' LIMIT 10;" 2>/dev/null || echo " (cannot connect)"
Report the output to the user.
WATCH_START
Start the file watcher to auto-sync code changes to memories.
Call the MCP tool mcp__specmem__start_watching with parameters:
{
"syncCheckIntervalMinutes": 60
}
Display the result to the user:
- If successful: Show projectPath, watchedPaths, filesWatched count
- If already running: Indicate it's already running and show stats
- If error: Show error message
Notes:
- File watcher is PROJECT-SCOPED (only watches current project)
rootPathparameter is DEPRECATED (always uses SPECMEM_PROJECT_PATH)- Default sync check interval is 60 minutes (1 hour)
- Keeps MCP memories in sync with filesystem automatically
WATCH_STOP
Stop the file watcher.
Call the MCP tool mcp__specmem__stop_watching with parameters:
{
"flushPending": true
}
Display the result to the user:
- If successful: Show eventsProcessed and pendingFlushed counts
- If not running: Indicate watcher wasn't running
- If error: Show error message
Notes:
flushPending: trueprocesses all pending changes before stoppingflushPending: falsestops immediately without processing queue
WATCH_STATUS
Check file watcher status.
Call the MCP tool mcp__specmem__check_sync_status with parameters:
{
"detailed": false
}
Display the result to the user:
- Watcher status: isRunning, eventsProcessed, queueSize
- Sync status: inSync, syncScore, driftPercentage
- Summary message
- Stats: totalFiles, totalMemories, upToDate, missingFromMcp, missingFromDisk, contentMismatch
If watcher is not running, suggest starting it with /specmem-service watch start.
SYNC_CHECK
Check if MCP memories are in sync with filesystem.
Call the MCP tool mcp__specmem__check_sync_status with parameters:
{
"detailed": true
}
Display the result to the user:
- Sync status: inSync (true/false)
- Sync score: percentage (0-100%)
- Drift percentage: how much drift detected
- Summary message
- Statistics: totalFiles, totalMemories, upToDate, missingFromMcp, missingFromDisk, contentMismatch
- Detailed lists (because detailed: true):
- Files missing from MCP
- Files deleted from disk
- Files with content mismatch
If drift is detected, suggest running /specmem-service sync force to resync.
Notes:
- This is a read-only check (doesn't modify anything)
- Shows what's out of sync between filesystem and memories
- Use this before force_resync to see what will be changed
SYNC_FORCE
Force a full resync of the entire codebase.
Step 1 - Dry Run Preview:
Call the MCP tool mcp__specmem__force_resync with parameters:
{
"dryRun": true
}
Display the preview to the user:
- Files that would be added
- Files that would be updated
- Files that would be marked deleted
Step 2 - Ask for Confirmation: Ask the user: "Do you want to proceed with the resync? This will update all MCP memories to match the current filesystem. (yes/no)"
Wait for user response.
Step 3 - Execute Resync (if confirmed):
If user confirms (yes/y/proceed/go/confirm):
Call the MCP tool mcp__specmem__force_resync with parameters:
{
"dryRun": false
}
Display the result:
- Success/failure status
- Files added
- Files updated
- Files marked deleted
- Duration (milliseconds)
- Any errors encountered
If user declines: Report: "Resync cancelled by user."
Notes:
- Always shows preview first (dry run)
- Requires explicit user confirmation
- Scans entire codebase and updates all memories
- Use after: git checkout, git pull, mass file operations
- Can take several seconds to minutes on large codebases