idea-capture-triggers — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited idea-capture-triggers (Hook) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
One command to give Claude Code persistent memory, git conventions, and a complete dev workflow.
npx claude-dev-stackClaude Code is powerful — but it forgets everything between sessions. Claude Dev Stack fixes that.
Alpha channel — install vianpm install -g claude-dev-stack@alpha. The stable@latesttag (v0.12.x) is unchanged.
v1.0 introduces the CDS-Core architecture: a pnpm monorepo with Claude Agent SDK integration, SQLite session memory, and automatic session capture.
What's new in alpha:
/end required.sessions.search, docs.search, planning.status tools available directly inside Claude Code.claude-dev-stack migrate sessions ports historical markdown sessions into SQLite.claude-dev-stack doctor --gsd-permissions configures the GSD executor allowlist.Links:
Requirements: Node 20+ (Node 18 no longer supported). See the migration guide for details.
If you use Claude Code seriously, you've hit these walls:
fix stuff or update code. No scopes, no conventional commits, no branch conventions — unless you manually instruct it every time.Claude Dev Stack sets up an Obsidian-compatible vault that stores everything Claude needs to resume work across sessions — context, decisions, session logs, git conventions — and auto-loads it every time.
| Without Claude Dev Stack | With Claude Dev Stack |
|---|---|
| "What were we working on?" — Claude has no idea | "Let's continue" — Claude loads context, shows last TODO, proposes next steps |
Commits: fix bug, update stuff, changes | Commits: fix(auth): resolve token refresh race condition |
| You explain the same architecture every session | Architecture is in context.md, loaded automatically |
| Decisions lost in chat history | ADRs saved in decisions/, searchable in Obsidian |
| Manual plugin/MCP setup per machine | One wizard configures everything, update keeps it current |
| Notion docs manually pasted into projects | notion add <url> + auto-import with overwrite protection |
npx claude-dev-stackThe interactive wizard walks you through:
This is the single most important step. Claude reads this file at the start of every session.
cd ~/Projects/my-project && claude
> "help me fill in context.md for this project"Describe your project's purpose, tech stack, architecture, current state, and known issues. The more specific you are, the better Claude performs across sessions.
cd ~/Projects/my-project && claude
> "let's continue"Claude automatically loads your project context, shows what was done last session, and proposes next steps. When you're done:
> "done for today"Claude creates a session log with what was done, decisions made, and TODO for next time.
You close your laptop Friday evening. Monday morning:
> "let's continue"
Project: my-saas-app
Last session (2026-04-11): Implemented user auth flow, added JWT refresh.
TODO: Wire up email verification endpoint, add rate limiting.
Suggested next step: Email verification — the auth flow is complete
but unverified users can still access protected routes.No context lost. No "remind me what we were doing."
Claude Dev Stack detects your monorepo structure and generates scopes automatically:
claude-dev-stack scopes init --quick
# Detected: pnpm-workspace (apps/web, apps/api, packages/ui)
# Generated .claude/git-scopes.json with scopes: web, api, uiNow when you say "commit this as a fix":
fix(api): resolve database connection timeout on cold startNot fix stuff. Supports 7 monorepo types: pnpm, npm/yarn workspaces, Nx, Turborepo, Lerna, Cargo workspaces, Go multi-module, and Python uv.
Sync your vault to Google NotebookLM for docs-grounded research:
claude-dev-stack notebooklm sync
# Syncing 3 projects to per-project notebooks...
# cds__my-saas-app: 12 sources (3 new, 9 unchanged)
# cds__mobile-app: 5 sources (1 updated)
# cds__shared-lib: 2 sources (all current)Each project gets its own cds__{slug} notebook. Hash-based delta sync — only changed files are re-uploaded. Sync runs automatically on every session end — your notebooks stay current without manual intervention.
Query your notebooks directly from Claude:
> "ask notebooklm what we decided about the auth flow"
Answer: In session 2026-04-11, you decided to use JWT with refresh tokens...
Citations: [sessions/2026-04-11-auth-flow.md, decisions/0003-jwt-auth.md]Or from the CLI:
claude-dev-stack notebooklm ask "what's our API rate limiting strategy?"
claude-dev-stack notebooklm generate report # AI-generated summary of your project
claude-dev-stack notebooklm generate mind-map # Visual mind map of project knowledgeUpgrading from v0.8? Migrate existing sources safely:
claude-dev-stack notebooklm migrate # dry-run — shows what would move
claude-dev-stack notebooklm migrate --execute # two-phase-commit: upload+verify, then delete from sharedPull Notion docs into your vault without leaving the terminal:
claude-dev-stack notion add https://www.notion.so/workspace/API-Spec-abc123
claude-dev-stack notion importImported files land in vault/projects/{slug}/docs/notion/ with provenance stamps. If you edit the imported file locally and Notion gets updated, re-import writes a .notion-update.md sibling instead of overwriting your changes.
In a live Claude session, you can also trigger imports via the notion-importer skill using MCP — no CLI needed.
Working across multiple projects in a session:
> "switch to mobile-app"
# Saves current context, loads mobile-app context
> "what did we decide about the auth flow?"
# Reads from mobile-app/decisions/ — finds ADR-003
> "switch back to my-saas-app"
# Restores previous context seamlessly| Component | What it does |
|---|---|
| Knowledge Vault | Obsidian-compatible markdown vault — project context, session logs, ADRs, docs |
| Session Hooks | Auto-loads context at session start, reminds to log at session end |
| Git Conventions | Per-project .claude/git-scopes.json — auto-detected scopes, commit formats, branch conventions |
| NotebookLM Sync + Query | Per-project notebooks with auto-sync on session end, hash-based delta, query API (ask + generate), two-phase migration |
| Notion Import | Declare pages in .claude/notion_pages.json, import via CLI or MCP skill with overwrite protection |
| Skills | Session manager, project switcher, auto-router, dev-research, git-conventions, notion-importer |
| GSD Workflow | Spec-driven development with subagent orchestration (optional) |
| Deep Research | Structured web research — outlines, investigation, reports |
| Plugins | 98+ Claude Code plugins with use-case recommendations |
| MCP Servers | 18 pre-configured servers (GitHub, Postgres, Playwright, Slack, etc.) |
| Templates | Context.md generation for 14 stacks |
| Doctor | Health check for all components — prereqs, vault, skills, plugins, git-scopes, NotebookLM, Notion MCP |
claude-dev-stack # Full interactive setup wizardclaude-dev-stack projects # List projects with status
claude-dev-stack projects add # Add a project to vault
claude-dev-stack projects remove # Remove project from vaultclaude-dev-stack scopes init # Initialize git-scopes.json (--quick or --full mode)
claude-dev-stack scopes list # Show current scopes and config
claude-dev-stack scopes add <name> # Add a scope
claude-dev-stack scopes remove <name> # Remove a scope
claude-dev-stack scopes refresh # Re-detect scopes from project structureclaude-dev-stack notion list # Show configured Notion pages
claude-dev-stack notion add <url> # Add Notion page to import config
claude-dev-stack notion import # Import all configured pages (or --page <id>)claude-dev-stack notebooklm sync # Sync vault to per-project NotebookLM notebooks
claude-dev-stack notebooklm status # Show sync status, file counts, stale files
claude-dev-stack notebooklm ask "question" # Query your notebook — returns answer + citations
claude-dev-stack notebooklm generate report # Generate AI summary of project knowledge
claude-dev-stack notebooklm generate mind-map # Generate visual mind map
claude-dev-stack notebooklm migrate # Dry-run migration from shared to per-project notebooks
claude-dev-stack notebooklm migrate --execute # Execute migration (two-phase-commit)claude-dev-stack docs # List documents per project
claude-dev-stack docs add # Add from files, Notion export, or pasteclaude-dev-stack skills # List installed skills
claude-dev-stack skills install # Install from catalog or Git URL
claude-dev-stack skills remove # Remove installed skillsclaude-dev-stack plugins # List installed plugins
claude-dev-stack plugins install # Install via preset or browse all 98+
claude-dev-stack plugins presets # Install curated set (fullstack, frontend, backend, etc.)
claude-dev-stack plugins marketplaces # Add third-party marketplaces (19 available)claude-dev-stack mcp # List configured MCP servers
claude-dev-stack mcp install # Install from catalog (18 servers)
claude-dev-stack mcp remove # Remove MCP serversclaude-dev-stack new # Generate context.md from stack template14 stacks: Next.js, Nuxt, SvelteKit, Astro, React+Vite, FastAPI, Express, Laravel, Spring Boot, Rails, Django, Flutter, Go, Blank.
claude-dev-stack import # Import AI configs from a project directorySupports: CLAUDE.md, .cursorrules, .windsurfrules, copilot-instructions.md, .clinerules, .aider.conf.yml.
claude-dev-stack export # Export vault as .tar.gz
claude-dev-stack sync init # Initialize vault as git repo
claude-dev-stack sync push # Commit and push vault
claude-dev-stack sync pull # Pull latest from remoteclaude-dev-stack doctor # Health check for all components
claude-dev-stack update # Update skills, hooks, GSD, CLI
claude-dev-stack stats # Analytics dashboard
claude-dev-stack help # Show all commands
claude-dev-stack version # Show version~/vault/
├── meta/
│ ├── project-registry.md # All mapped projects
│ └── session-protocol.md # Session conventions
├── shared/
│ ├── patterns.md # Reusable patterns across projects
│ └── infra.md # Infrastructure notes
├── research/ # Deep Research outputs
├── projects/
│ ├── my-project/
│ │ ├── context.md # ★ Project context (the most important file)
│ │ ├── sessions/ # Auto-generated session logs
│ │ ├── decisions/ # Architecture Decision Records
│ │ └── docs/ # Documentation
│ │ └── notion/ # Notion auto-imports (with provenance stamps)
│ └── _template/
└── CLAUDE.md.template| Folder | Content | Who creates it |
|---|---|---|
context.md | Project overview, stack, architecture, current state | You (with Claude's help) |
sessions/ | Session logs: what was done, decisions, TODO | Claude (automatically via hooks) |
decisions/ | ADRs: why we chose X over Y | Claude (when decisions are made) |
docs/ | Documentation, specs, plans | You (via docs add) |
docs/notion/ | Notion page imports with provenance stamps | Claude (via notion import or skill) |
Skills are markdown files that tell Claude how to behave in specific situations. They auto-trigger based on what you say — no slash commands needed.
| Skill | Triggers on | What it does |
|---|---|---|
| session-manager | "hi", "let's continue", "done", "all set" | Loads context at start, creates session log at end |
| project-switcher | "switch to X", project name mentions | Saves current context, loads target project |
| dev-router | Any message | Routes to the right skill automatically |
| git-conventions | "commit this", "create a branch" | Reads .claude/git-scopes.json, produces type(scope): subject |
| notion-importer | "import notion docs" | Calls Notion MCP tools directly from session |
| dev-research | "check docs", "ask notebooklm" | Queries NotebookLM for docs-grounded answers |
Two hooks run at the Claude Code level for reliability (skills can be ignored by Claude, but hooks always fire):
| Hook | When | What |
|---|---|---|
| session-start-context | Session starts | Loads context.md + outstanding TODOs |
| session-end-check | Session ends | Reminds to create session log, auto-syncs vault to NotebookLM, auto-pushes vault git |
Every team member runs:
npx claude-dev-stackTo share the vault:
claude-dev-stack sync init # Initialize vault as git repo
# Add remote, push to shared repo
# Each team member clones/pulls the vaultSession logs, ADRs, and context stay in sync. Each developer's Claude sessions contribute to a shared knowledge base.
Works inside VS Code dev containers and GitHub Codespaces. See examples/devcontainer/ for a complete configuration.
{
"image": "mcr.microsoft.com/devcontainers/javascript-node:22",
"mounts": [
"source=${localEnv:HOME}/.ssh,target=/home/node/.ssh,type=bind,readonly",
"source=${localEnv:HOME}/.claude,target=/home/node/.claude,type=bind"
],
"postCreateCommand": "npm install -g @anthropic-ai/claude-code && npx --yes claude-dev-stack"
}With vault git sync, your context follows you between host and container automatically.
npx claude-dev-stack updateUpdates built-in skills, hooks, git-based skills (Obsidian, Deep Research), GSD, and Claude Code CLI.
notebooklm-py)The wizard detects missing tools and shows install commands:
✘ node — not found
ℹ Install: brew install nodeBuilt on top of:
If this saves you time, consider buying me a coffee:
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.