@stackmemoryai/stackmemory
Version:
Project-scoped memory for AI coding tools. Durable context across sessions with MCP integration, frames, smart retrieval, Claude Code skills, and automatic hooks.
274 lines • 10.7 kB
JSON
{
"$schema": "./skill-rules.schema.json",
"version": "2.0",
"config": {
"minConfidenceScore": 3,
"showMatchReasons": true,
"maxSkillsToShow": 5
},
"scoring": {
"keyword": 2,
"keywordPattern": 3,
"pathPattern": 4,
"directoryMatch": 5,
"intentPattern": 4,
"contentPattern": 3,
"contextPattern": 2
},
"directoryMappings": {
"src/core": "frame-management",
"src/cli": "cli-commands",
"src/integrations/linear": "linear-integration",
"src/integrations/mcp": "mcp-server",
"src/features/tui": "terminal-ui",
"src/core/context": "context-bridge",
"src/core/storage": "storage-tiers",
"src/core/tasks": "task-management",
".claude": "claude-integration",
".github/workflows": "github-actions",
"scripts": "build-scripts",
"docs": "documentation"
},
"skills": {
"frame-management": {
"description": "Frame stack and context management patterns",
"priority": 9,
"triggers": {
"keywords": ["frame", "stack", "context", "framemanager", "push", "pop"],
"keywordPatterns": ["\\bframe\\b", "\\bstack\\b", "context(?:Bridge)?"],
"pathPatterns": ["**/frame-*.ts", "**/context/*.ts", "**/stack-*.ts"],
"intentPatterns": [
"(?:manage|handle).*(?:frame|context)",
"(?:push|pop).*(?:frame|stack)"
],
"contentPatterns": ["FrameManager", "pushFrame", "popFrame", "getContext"]
},
"relatedSkills": ["context-bridge", "storage-tiers"]
},
"linear-integration": {
"description": "Linear API integration and task sync",
"priority": 8,
"triggers": {
"keywords": ["linear", "issue", "sync", "task sync", "oauth"],
"keywordPatterns": ["\\blinear\\b", "\\bissue\\b", "sync.*task"],
"pathPatterns": ["**/linear/**", "**/linear-*.ts"],
"intentPatterns": [
"(?:sync|update).*(?:linear|issue)",
"(?:linear).*(?:task|issue|sync)"
],
"contentPatterns": ["LinearClient", "syncIssue", "createIssue"]
}
},
"mcp-server": {
"description": "Model Context Protocol server implementation",
"priority": 8,
"triggers": {
"keywords": ["mcp", "tool", "server", "protocol", "claude code"],
"keywordPatterns": ["\\bmcp\\b", "model.context", "claude.code"],
"pathPatterns": ["**/mcp/**", "**/mcp-*.ts", "**/tools/**"],
"intentPatterns": [
"(?:implement|create).*(?:mcp|tool)",
"(?:mcp).*(?:server|tool|protocol)"
],
"contentPatterns": ["MCPServer", "registerTool", "@tool", "toolCall"]
},
"relatedSkills": ["claude-integration"]
},
"testing-patterns": {
"description": "Jest testing and test infrastructure",
"priority": 7,
"triggers": {
"keywords": ["test", "jest", "spec", "mock", "fixture"],
"keywordPatterns": ["\\btest\\b", "\\bspec\\b", "\\bjest\\b"],
"pathPatterns": ["**/*.test.ts", "**/*.spec.ts", "**/__tests__/**"],
"intentPatterns": [
"(?:write|add|fix).*(?:test|spec)",
"(?:test).*(?:coverage|suite)"
],
"contentPatterns": ["describe\\(", "it\\(", "expect\\(", "jest\\.mock"]
}
},
"cli-commands": {
"description": "CLI command implementation and structure",
"priority": 7,
"triggers": {
"keywords": ["cli", "command", "yargs", "terminal", "console"],
"keywordPatterns": ["\\bcli\\b", "\\bcommand\\b", "\\byargs\\b"],
"pathPatterns": ["**/cli/**", "**/commands/**", "**/cli-*.ts"],
"intentPatterns": [
"(?:add|create).*(?:command|cli)",
"(?:cli).*(?:command|option|argument)"
],
"contentPatterns": ["yargs", "command\\(", "option\\(", "argv"]
}
},
"storage-tiers": {
"description": "3-tier storage system (Redis/Railway/GCS)",
"priority": 7,
"triggers": {
"keywords": ["storage", "redis", "railway", "bucket", "tier", "cache"],
"keywordPatterns": ["\\bstorage\\b", "\\btier\\b", "\\bredis\\b"],
"pathPatterns": ["**/storage/**", "**/railway-*.ts", "**/redis-*.ts"],
"intentPatterns": [
"(?:implement|configure).*(?:storage|tier)",
"(?:migrate).*(?:data|storage)"
],
"contentPatterns": ["RailwayOptimizedStorage", "StorageTier", "Redis"]
}
},
"context-bridge": {
"description": "Cross-session context synchronization",
"priority": 8,
"triggers": {
"keywords": ["bridge", "sync", "session", "shared context", "handoff"],
"keywordPatterns": ["context.*bridge", "shared.*context", "handoff"],
"pathPatterns": ["**/context-bridge*.ts", "**/shared-context/**"],
"intentPatterns": [
"(?:sync|share).*(?:context|session)",
"(?:handoff).*(?:session|context)"
],
"contentPatterns": ["ContextBridge", "SharedContext", "syncContext"]
},
"relatedSkills": ["frame-management"]
},
"task-management": {
"description": "Task creation, tracking, and persistence",
"priority": 7,
"triggers": {
"keywords": ["task", "todo", "progress", "tracking", "pebbles"],
"keywordPatterns": ["\\btask\\b", "\\btodo\\b", "pebbles"],
"pathPatterns": ["**/tasks/**", "**/task-*.ts", "**/pebbles-*.ts"],
"intentPatterns": [
"(?:create|manage).*(?:task|todo)",
"(?:track).*(?:progress|task)"
],
"contentPatterns": ["TaskManager", "createTask", "updateTask", "PebblesTaskStore"]
}
},
"terminal-ui": {
"description": "Terminal UI with Ink and React",
"priority": 6,
"triggers": {
"keywords": ["tui", "terminal", "ink", "dashboard", "monitor"],
"keywordPatterns": ["\\btui\\b", "\\bink\\b", "terminal.*ui"],
"pathPatterns": ["**/tui/**", "**/terminal-*.tsx", "**/dashboard/**"],
"intentPatterns": [
"(?:create|build).*(?:tui|terminal)",
"(?:dashboard|monitor).*(?:ui|interface)"
],
"contentPatterns": ["ink", "Text", "Box", "useInput"]
}
},
"claude-integration": {
"description": "Claude Code integration and hooks",
"priority": 8,
"triggers": {
"keywords": ["claude", "hook", "skill", "auto-trigger", "clear survival"],
"keywordPatterns": ["claude.*(?:code|hook)", "skill.*eval"],
"pathPatterns": [".claude/**", "**/claude-*.ts", "**/hooks/**"],
"intentPatterns": [
"(?:integrate|setup).*(?:claude)",
"(?:hook|trigger).*(?:claude|skill)"
],
"contentPatterns": ["UserPromptSubmit", "PreToolUse", "PostToolUse", "skill-eval"]
},
"relatedSkills": ["mcp-server"]
},
"build-scripts": {
"description": "Build, deployment, and utility scripts",
"priority": 5,
"triggers": {
"keywords": ["script", "build", "deploy", "npm", "package"],
"keywordPatterns": ["\\bscript\\b", "\\bbuild\\b", "npm.*run"],
"pathPatterns": ["scripts/**", "**/*.sh", "**/build/**"],
"intentPatterns": [
"(?:create|write).*(?:script)",
"(?:build|deploy).*(?:project)"
],
"contentPatterns": ["#!/bin/bash", "npm run", "NODE_ENV"]
}
},
"documentation": {
"description": "Documentation and API reference",
"priority": 4,
"triggers": {
"keywords": ["docs", "documentation", "readme", "api", "reference"],
"keywordPatterns": ["\\bdoc(?:s)?\\b", "readme", "api.*reference"],
"pathPatterns": ["docs/**", "**/*.md", "**/README*"],
"intentPatterns": [
"(?:write|update).*(?:doc|documentation)",
"(?:document).*(?:api|feature)"
]
}
},
"github-actions": {
"description": "CI/CD workflows and GitHub Actions",
"priority": 6,
"triggers": {
"keywords": ["workflow", "action", "ci", "cd", "pipeline"],
"keywordPatterns": ["github.*action", "ci.*cd", "\\bworkflow\\b"],
"pathPatterns": [".github/workflows/**", ".github/**/*.yml"],
"intentPatterns": [
"(?:create|setup).*(?:workflow|pipeline)",
"(?:ci|cd).*(?:setup|configure)"
],
"contentPatterns": ["runs-on:", "uses:", "steps:"]
}
},
"code-quality": {
"description": "Code review and quality checks",
"priority": 8,
"triggers": {
"keywords": ["review", "lint", "quality", "eslint", "prettier"],
"keywordPatterns": ["code.*review", "\\blint\\b", "quality.*check"],
"intentPatterns": [
"(?:review|check).*(?:code|quality)",
"(?:fix).*(?:lint|formatting)"
]
}
},
"performance-optimization": {
"description": "Performance analysis and optimization",
"priority": 7,
"triggers": {
"keywords": ["performance", "optimize", "slow", "bottleneck", "profile"],
"keywordPatterns": ["\\bperf\\b", "optimiz", "bottleneck"],
"intentPatterns": [
"(?:optimize|improve).*(?:performance|speed)",
"(?:debug|fix).*(?:slow|performance)"
],
"contentPatterns": ["performance\\.now", "console\\.time", "profiler"]
}
},
"spec-generator": {
"description": "Iterative spec document generation (one-pager, dev-spec, prompt-plan, agents)",
"priority": 8,
"triggers": {
"keywords": ["spec", "one-pager", "dev-spec", "prompt-plan", "agents.md", "scaffold"],
"keywordPatterns": ["\\bspec\\b", "one.pager", "dev.spec", "prompt.plan"],
"pathPatterns": ["docs/specs/**", "**/AGENTS.md", "**/ONE_PAGER.md", "**/PROMPT_PLAN.md"],
"intentPatterns": [
"(?:generate|create).*(?:spec|one-pager|dev-spec)",
"(?:spec).*(?:generate|validate|update|list)"
],
"contentPatterns": ["SpecGeneratorSkill", "ONE_PAGER", "DEV_SPEC", "PROMPT_PLAN"]
},
"relatedSkills": ["linear-task-runner"]
},
"linear-task-runner": {
"description": "Execute Linear tasks via RLM orchestrator",
"priority": 8,
"triggers": {
"keywords": ["linear-run", "run task", "execute task", "task runner", "ralph linear"],
"keywordPatterns": ["linear.run", "run.*task", "task.*runner"],
"pathPatterns": ["**/linear-task-runner.ts"],
"intentPatterns": [
"(?:run|execute).*(?:linear|task)",
"(?:linear).*(?:run|execute|next|all)"
],
"contentPatterns": ["LinearTaskRunner", "runNext", "runAll", "runTask"]
},
"relatedSkills": ["spec-generator", "linear-integration"]
}
}
}