{"owner":"vercel-labs","repo":"deepsec","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nPointer file for Claude Code working in this repo. User-facing docs are\nin [README.md](./README.md); contributor docs in\n[CONTRIBUTING.md](./CONTRIBUTING.md). Read those first.\n\n## Repo shape\n\n```\npackages/\n  core/        Types, schemas, plugin contracts, config loader (defineConfig)\n  scanner/     Regex matchers + scanning engine\n  processor/   AI agent integration (Claude Agent SDK, Codex SDK), enrich, triage, revalidate\n  deepsec/      Publishable package: bundled CLI + the `deepsec/config` sub-export + the @vercel/sandbox executor\ne2e/           End-to-end tests\n```\n\n## Commands\n\n```bash\npnpm install\npnpm test          # all packages, including e2e\npnpm test:unit     # excludes e2e\npnpm -r build      # tsc across all workspaces (typecheck)\npnpm bundle        # esbuild bundle for distribution\npnpm deepsec ...    # the CLI (runs via tsx)\n```\n\n## Patterns to keep in mind\n\n- Plugin contracts live in `packages/core/src/plugin.ts`. Internals route\n  through `getRegistry()` from `deepsec/config` rather than calling\n  organization-specific code directly.\n- The CLI auto-loads `deepsec.config.{ts,mjs,js,cjs}` from cwd upward\n  (via `packages/deepsec/src/load-config.ts`, jiti).\n- New matchers go in `packages/scanner/src/matchers/` and register in\n  `matchers/index.ts`. Org-specific matchers belong in a separate\n  plugin package, not in this tree.\n- The AI prompt template lives in `packages/processor/src/index.ts`. It\n  is intentionally generic. Don't add organization-specific context\n  there; use `data/<projectId>/INFO.md` or `config.json:promptAppend`.\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nPointer file for Claude Code working in this repo. User-facing docs are\nin [README.md](./README.md); contributor docs in\n[CONTRIBUTING.md](./CONTRIBUTING.md). Read those first.\n\n## Repo shape\n\n```\npackages/\n  core/        Types, schemas, plugin contracts, config loader (defineConfig)\n  scanner/     Regex matchers + scanning engine\n  processor/   AI agent integration (Claude Agent SDK, Codex SDK), enrich, triage, revalidate\n  deepsec/      Publishable package: bundled CLI + the `deepsec/config` sub-export + the @vercel/sandbox executor\ne2e/           End-to-end tests\n```\n\n## Commands\n\n```bash\npnpm install\npnpm test          # all packages, including e2e\npnpm test:unit     # excludes e2e\npnpm -r build      # tsc across all workspaces (typecheck)\npnpm bundle        # esbuild bundle for distribution\npnpm deepsec ...    # the CLI (runs via tsx)\n```\n\n## Patterns to keep in mind\n\n- Plugin contracts live in `packages/core/src/plugin.ts`. Internals route\n  through `getRegistry()` from `deepsec/config` rather than calling\n  organization-specific code directly.\n- The CLI auto-loads `deepsec.config.{ts,mjs,js,cjs}` from cwd upward\n  (via `packages/deepsec/src/load-config.ts`, jiti).\n- New matchers go in `packages/scanner/src/matchers/` and register in\n  `matchers/index.ts`. Org-specific matchers belong in a separate\n  plugin package, not in this tree.\n- The AI prompt template lives in `packages/processor/src/index.ts`. It\n  is intentionally generic. Don't add organization-specific context\n  there; use `data/<projectId>/INFO.md` or `config.json:promptAppend`.\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\nPointer file for Claude Code working in this repo. User-facing docs are\nin [README.md](./README.md); contributor docs in\n[CONTRIBUTING.md](./CONTRIBUTING.md). Read those first.\n\n## Repo shape\n\n```\npackages/\n  core/        Types, schemas, plugin contracts, config loader (defineConfig)\n  scanner/     Regex matchers + scanning engine\n  processor/   AI agent integration (Claude Agent SDK, Codex SDK), enrich, triage, revalidate\n  deepsec/      Publishable package: bundled CLI + the `deepsec/config` sub-export + the @vercel/sandbox executor\ne2e/           End-to-end tests\n```\n\n## Commands\n\n```bash\npnpm install\npnpm test          # all packages, including e2e\npnpm test:unit     # excludes e2e\npnpm -r build      # tsc across all workspaces (typecheck)\npnpm bundle        # esbuild bundle for distribution\npnpm deepsec ...    # the CLI (runs via tsx)\n```\n\n## Patterns to keep in mind\n\n- Plugin contracts live in `packages/core/src/plugin.ts`. Internals route\n  through `getRegistry()` from `deepsec/config` rather than calling\n  organization-specific code directly.\n- The CLI auto-loads `deepsec.config.{ts,mjs,js,cjs}` from cwd upward\n  (via `packages/deepsec/src/load-config.ts`, jiti).\n- New matchers go in `packages/scanner/src/matchers/` and register in\n  `matchers/index.ts`. Org-specific matchers belong in a separate\n  plugin package, not in this tree.\n- The AI prompt template lives in `packages/processor/src/index.ts`. It\n  is intentionally generic. Don't add organization-specific context\n  there; use `data/<projectId>/INFO.md` or `config.json:promptAppend`.\n","category":"root","tokens":397}]}