一键导入
bootstrap-memory
Seed OpenMemory with existing knowledge from key-prompts, decisions, tool learnings, and behavioral prefs. Safe to re-run — uses per-entry dedup.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Seed OpenMemory with existing knowledge from key-prompts, decisions, tool learnings, and behavioral prefs. Safe to re-run — uses per-entry dedup.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate interactive HTML diagrams (flowcharts, sequence diagrams, class diagrams, state diagrams, ER diagrams, Gantt charts, etc.) using Mermaid.js. Opens the result in the browser. Use when the user says "/diagram", "draw a flowchart", "make a diagram", "show me a flow", "sequence diagram", "class diagram", "state diagram", or any request for a visual diagram.
Graph-node skill: reads .ship-manifest.json (or story/epic IDs), launches one background agent per story to write plans/*.md files, applies critique checklist, updates DB with plan_file paths. Artifact-chain-aware version of /draft-plan. Consumes manifest from /plan-stories, produces plans/*.md for /env-preflight.
Spec-driven feature decomposition: accepts a FeatureSpec JSON (product, pattern, entity, fields, permissions, integrations, UI) and decomposes it into dependency-ordered stages using deterministic pattern DAGs. Creates stories via PM tools and writes .ship-manifest.json for downstream /draft-plans and /run-stories consumption. Use when the user says "/factory spec.json", "/factory --pattern crud-ui <inline JSON>", or "/factory --dry-run spec.json".
Merge a story worktree branch into its dev branch, push, clean up the worktree and branches, and mark the story done. Use when the user says "/merge-worktree", "/merge-worktree story-NNN", or "merge worktree".
Execute stories in parallel (where safe) using background agents, each working in an isolated git worktree branched from a shared dev branch. Handles dependency ordering, write-file conflict detection, and reports results. Use when the user says "/run-stories", "/run-stories story-NNN", "/run-stories epic-NNN", or any combination of story and epic IDs.
Bridge between presearch briefings (or inline args) and the /draft-plans skill. Parses inputs, dispatches the planner agent to create an epic and stories in the DB, and writes .ship-manifest.json for downstream consumption. Three invocation modes: briefing path, inline title+items, or resume an existing epic. Also handles execute mode for existing plan files (bypasses planner, creates DB entries directly). Use when the user says "/plan-stories presearch/topic.md", "/plan-stories \"Title\" 1. Feature 2. Feature", or "/plan-stories epic-NNN".
| name | bootstrap-memory |
| description | Seed OpenMemory with existing knowledge from key-prompts, decisions, tool learnings, and behavioral prefs. Safe to re-run — uses per-entry dedup. |
| args | [] |
Incremental seeding of OpenMemory with project knowledge. Safe to re-run — checks each entry for duplicates before storing.
Setup auto memory symlinks. Run ~/.claude/scripts/setup-memory.sh. This creates the machine-specific projects/<encoded>/memory/ directories and symlinks them to the portable memory/*.md files. If the script fails, warn but continue — OpenMemory seeding doesn't depend on symlinks.
Health check. Call openmemory_list(user_id="global", limit=1). If unreachable, abort: "OpenMemory not reachable. Ensure Ollama is running (ollama serve) and the OpenMemory MCP server is registered."
Seed key prompt patterns. Read each file in ~/.claude/.claude/tracking/key-prompts/. For each ## entry:
simhash = md5(compressed_entry)[:16]openmemory_query(query=<full compressed entry text>, k=3, user_id="global") — for each result: compare the first 80 chars of content_preview against the entry (case-insensitive, whitespace-normalized); if they match, skip (count as skip_count). If no content match but a result has matching simhash in metadata, also skip.openmemory_store(content="<compressed entry>", tags=["prompt-pattern"], user_id="global", metadata={"sector": "procedural", "simhash": "<simhash>"})prompt_countShadow active decisions. Call pm_list_decisions(status="active"). For each decision:
simhash = md5(decision_summary)[:16]openmemory_query(query=<full decision summary text>, k=3, user_id="proj:dotclaude") — for each result: compare the first 80 chars of content_preview against the entry (case-insensitive, whitespace-normalized); if they match, skip (count as skip_count). If no content match but a result has matching simhash in metadata, also skip.openmemory_store(content="Decision [id]: <title> — <summary>", tags=["decision"], user_id="proj:dotclaude", metadata={"sector": "semantic", "decision_id": "<id>", "simhash": "<simhash>"})decision_countSeed tool learnings. Read ~/.claude/tool-learnings.md. For each - prefixed line (skip headers and blank lines):
- )simhash = md5(learning_text)[:16]openmemory_query(query=<learning_text>, k=3, user_id="global") — apply same dedup logic (first 80 chars content match OR simhash match → skip)openmemory_store(content="<learning_text>", tags=["tool-learning"], user_id="global", metadata={"sector": "procedural", "simhash": "<simhash>"})learning_countShadow behavioral prefs. Query correction_groups DB for promoted/manual entries:
sqlite3 ~/.claude/.claude/epics.db "SELECT text FROM correction_groups WHERE status IN ('promoted') OR source='manual' AND text != '' ORDER BY updated_at DESC;"simhash = md5(text)[:16]openmemory_query(query=<text>, k=3, user_id="proj:dotclaude") — apply same dedup logicopenmemory_store(content="<text>", tags=["behavioral-pref"], user_id="proj:dotclaude", metadata={"sector": "procedural", "simhash": "<simhash>"})pref_countReport. Print: "Bootstrapped N memories (P prompt patterns, D decisions, L tool learnings, B behavioral prefs). Skipped J duplicates."