Use Garry Tan's exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA
This report presents the forensic synthetic code analysis of garrytan/gstack, a TypeScript project with 121,727 GitHub stars. SynthScan v2.0 examined 277,575 lines of code across 907 source files, recording 1451 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 11.4 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1451 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | design/test/serve.test.ts | 50 | // ─── Serve as HTTP module (not subprocess) ──────────────────────── | COMMENT |
| MEDIUM | design/test/serve.test.ts | 280 | // ─── Path traversal protection in /api/reload ───────────────────── | COMMENT |
| MEDIUM | design/test/serve.test.ts | 413 | // ─── Full lifecycle: regeneration round-trip ────────────────────── | COMMENT |
| MEDIUM | design/test/feedback-roundtrip-daemon.test.ts | 63 | // ─── Submit round-trip ─────────────────────────────────────────── | COMMENT |
| MEDIUM | design/test/feedback-roundtrip-daemon.test.ts | 141 | // ─── Regenerate + reload round-trip ────────────────────────────── | COMMENT |
| MEDIUM | design/test/feedback-roundtrip-daemon.test.ts | 214 | // ─── Two-board, one-daemon attach behavior ─────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 44 | // ─── /health ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 67 | // ─── POST /api/boards (publish) ───────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 147 | // ─── GET /boards/<id> trailing-slash redirect ──────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 176 | // ─── POST /boards/<id>/api/feedback ────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 257 | // ─── POST /boards/<id>/api/reload ──────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 311 | // ─── GET / (index) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 346 | // ─── /shutdown ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 378 | // ─── LRU + non-done protection ─────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 438 | // ─── Idle + meaningful activity ────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 456 | // ─── Malformed body negatives ──────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon.test.ts | 522 | // ─── Unknown routes ────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/test/feedback-roundtrip.test.ts | 130 | // ─── The critical test: browser click → file on disk ───────────── | COMMENT |
| MEDIUM | design/test/daemon-discovery.test.ts | 71 | // ─── healthCheck + readStateFile basics ────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon-discovery.test.ts | 100 | // ─── ensureDaemon ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon-discovery.test.ts | 287 | // ─── publishBoard ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon-discovery.test.ts | 318 | // ─── shutdownDaemon / daemonStatus ─────────────────────────────── | COMMENT |
| MEDIUM | design/test/daemon-discovery.test.ts | 506 | // ─── Concurrent ensureDaemon race (one wins the lock) ─────────── | COMMENT |
| MEDIUM | design/test/daemon-discovery.test.ts | 546 | // ─── Stale-lock reclaim ────────────────────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon.ts | 42 | // ─── Tunables (env overrides for tests) ────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon.ts | 62 | // ─── Per-board state ───────────────────────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon.ts | 108 | // ─── Helpers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon.ts | 192 | // ─── Shutdown ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon.ts | 232 | // ─── Handlers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon.ts | 467 | // ─── Router ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon.ts | 525 | // ─── Startup ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | design/src/daemon-client.ts | 216 | // ─── Internals ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | extension/sidepanel.js | 86 | // ─── Chat path ripped ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | extension/sidepanel.js | 92 | // ─── Reload Sidebar ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | extension/sidepanel.js | 97 | // ─── Copy Cookies ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 33 | // ─── Connection State Machine ───────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 112 | // ─── Debug Tabs ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 155 | // ─── Activity Feed ────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 244 | // ─── SSE Connection ───────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 295 | // ─── Memory Footer Readout ────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 391 | // ─── Tab guardrail toast (D5 + Codex single-tab flag) ─────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 583 | // ─── Refs Tab ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 619 | // ─── Inspector Tab ────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 726 | // ─── Box Model Rendering ──────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 772 | // ─── Matched Rules Rendering ──────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 863 | // ─── Computed Styles Rendering ────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 888 | // ─── Quick Edit ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 962 | // ─── Send to Agent ────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1019 | // ─── Quick Action Helpers (toolbar buttons) ────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1102 | // ─── Section Toggles ──────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1117 | // ─── Inspector SSE ────────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1149 | // ─── Server Discovery ─────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1199 | // ─── Port Configuration ───────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1228 | // ─── Reconnect / Copy Buttons ──────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1339 | // ─── Message Listener ─────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/sidepanel.js | 1382 | // ─── v1.44 pagehide: explicit PTY dispose on sidebar close ────────── | COMMENT |
| MEDIUM | extension/background.js | 16 | // ─── Port Discovery ──────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/background.js | 33 | // ─── Auth Token Bootstrap ───────────────────────────────────── | COMMENT |
| MEDIUM | extension/background.js | 53 | // ─── Health Polling ──────────────────────────────────────────── | COMMENT |
| MEDIUM | extension/background.js | 132 | // ─── Command Proxy ───────────────────────────────────────────── | COMMENT |
| 662 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CHANGELOG.md | 3204 | A short patch wave from three contributors. macOS users who ran `/careful` with `rm -rf node_modules` were silently hitt | CODE |
| LOW | CHANGELOG.md | 3211 | - **#1394** Codex skill `## Step 0: Check codex binary` renamed to `## Step 0.4: Check codex binary` so the header no lo | CODE |
| LOW | README.md | 47 | ### Step 1: Install on your machine | COMMENT |
| LOW | README.md | 53 | ### Step 2: Team mode — auto-update for shared repos (recommended) | COMMENT |
| LOW | CONTRIBUTING.md | 412 | ### Step 1: Symlink your checkout | COMMENT |
| LOW | CONTRIBUTING.md | 419 | ### Step 2: Run setup to create per-skill symlinks | COMMENT |
| LOW | CONTRIBUTING.md | 433 | ### Step 3: Develop | COMMENT |
| LOW | pair-agent/SKILL.md | 859 | ## Step 1: Check prerequisites | COMMENT |
| LOW | pair-agent/SKILL.md | 873 | ## Step 2: Ask what they want | COMMENT |
| LOW | pair-agent/SKILL.md | 894 | ## Step 3: Local or remote? | COMMENT |
| LOW | pair-agent/SKILL.md | 912 | ## Step 4: Execute pairing | COMMENT |
| LOW | pair-agent/SKILL.md | 997 | ## Step 5: Verify connection | COMMENT |
| LOW | design-html/SKILL.md | 961 | ## Step 0: Input Detection | COMMENT |
| LOW | design-html/SKILL.md | 1061 | ## Step 1: Design Analysis | COMMENT |
| LOW | design-html/SKILL.md | 1092 | ## Step 2: Smart Pretext API Routing | COMMENT |
| LOW | design-html/SKILL.md | 1132 | ## Step 3: Generate Pretext-Native HTML | COMMENT |
| LOW | design-html/SKILL.md | 1381 | ## Step 4: Preview + Refinement Loop | COMMENT |
| LOW | design-html/SKILL.md | 1440 | ## Step 5: Save & Next Steps | COMMENT |
| LOW | plan-tune/SKILL.md | 808 | ## Step 0: Detect what the user wants | COMMENT |
| LOW | design-shotgun/SKILL.md | 936 | ## Step 0: Session Detection | COMMENT |
| LOW | design-shotgun/SKILL.md | 968 | ## Step 1: Context Gathering | COMMENT |
| LOW | design-shotgun/SKILL.md | 1022 | ## Step 2: Taste Memory | COMMENT |
| LOW | design-shotgun/SKILL.md | 1088 | ## Step 3: Generate Variants | COMMENT |
| LOW | design-shotgun/SKILL.md | 1217 | ## Step 4: Comparison Board + Feedback Loop | COMMENT |
| LOW | design-shotgun/SKILL.md | 1333 | ## Step 5: Feedback Confirmation | COMMENT |
| LOW | design-shotgun/SKILL.md | 1349 | ## Step 6: Save & Next Steps | COMMENT |
| LOW | plan-design-review/SKILL.md | 802 | ## Step 0: Detect platform and base branch | COMMENT |
| LOW | plan-design-review/SKILL.md | 1138 | ## Step 0: Design Scope Assessment | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 462 | // Step 1: User clicks regenerate | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 472 | // Step 2: Progress shows regenerating | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 476 | // Step 3: Agent generates new variants and reloads | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 487 | // Step 4: Progress shows serving (board would auto-refresh) | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 491 | // Step 5: User submits on round 2 | COMMENT |
| LOW | design/test/feedback-roundtrip.test.ts | 296 | // Step 1: User clicks Regenerate | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 312 | // Step 2: Agent generates new variants and creates a new board | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 321 | // Step 3: Agent POSTs /api/reload to swap the board | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 331 | // Step 4: Board auto-refreshes (simulated by navigating again) | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 340 | // Step 5: User picks variant C on round 2 and submits | COMMENT |
| LOW⚡ | design/src/evolve.ts | 35 | // Step 1: Analyze current screenshot | COMMENT |
| LOW⚡ | design/src/evolve.ts | 39 | // Step 2: Generate evolved version using analysis + brief | COMMENT |
| LOW | autoplan/SKILL.md | 807 | ## Step 0: Detect platform and base branch | COMMENT |
| LOW | autoplan/SKILL.md | 1028 | ### Step 1: Capture restore point | COMMENT |
| LOW | autoplan/SKILL.md | 1055 | ### Step 2: Read context | COMMENT |
| LOW | autoplan/SKILL.md | 1071 | ### Step 3: Load skill files from disk | COMMENT |
| LOW⚡ | extension/sidepanel.js | 1284 | // Step 2: If background says connected + has token, use that | COMMENT |
| LOW⚡ | extension/sidepanel.js | 1294 | // Step 3: Background not connected yet. Try hitting /health directly. | COMMENT |
| LOW | extension/sidepanel.js | 1262 | // Step 1: Ask background for the port | COMMENT |
| LOW | ios-qa/docs/tailscale-acl-example.md | 19 | ## Step 1: Install and run Tailscale | COMMENT |
| LOW | ios-qa/docs/tailscale-acl-example.md | 35 | ## Step 2: Set up the daemon's ACL | COMMENT |
| LOW | ios-qa/docs/tailscale-acl-example.md | 75 | ## Step 3: Mint a session token for a remote agent | COMMENT |
| LOW | ios-qa/docs/tailscale-acl-example.md | 91 | ## Step 4: Tighten the Tailscale ACL (defense in depth) | COMMENT |
| LOW | ios-qa/docs/tailscale-acl-example.md | 122 | ## Step 5: Audit trail | COMMENT |
| LOW | ios-qa/daemon/src/tunnel-bootstrap.ts | 73 | // Step 1: pick a device | COMMENT |
| LOW⚡ | ios-qa/daemon/src/tunnel-bootstrap.ts | 92 | // Step 2: launch app (idempotent — devicectl returns success if already running) | COMMENT |
| LOW⚡ | ios-qa/daemon/src/tunnel-bootstrap.ts | 100 | // Step 3: resolve tunnel IPv6. Try devicectl `info details` first (most | COMMENT |
| LOW | ios-qa/daemon/src/tunnel-bootstrap.ts | 119 | // Step 4: wait for StateServer to become reachable, then scrape boot token. | COMMENT |
| LOW | ios-qa/daemon/src/tunnel-bootstrap.ts | 146 | // Step 5: rotate the boot token to a fresh in-memory-only one. | COMMENT |
| LOW | test/skill-validation.test.ts | 1234 | // Headings like "## Step 7: Test Coverage Audit" — NOT sub-steps like "## Step 8.1:" | COMMENT |
| LOW | test/regression-1624-retro-stale-base.test.ts | 45 | const step1 = body.indexOf("### Step 1: Gather Raw Data"); | CODE |
| LOW⚡ | test/skill-e2e-review.test.ts | 292 | const step0Start = full.indexOf('## Step 0: Detect platform and base branch'); | CODE |
| 228 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | design-html/SKILL.md | 1082 | on the plan or user description (never lorem ipsum). | CODE |
| LOW | design-html/SKILL.md | 1181 | - Real content extracted from the mockup (never lorem ipsum) | CODE |
| LOW | design-html/SKILL.md | 1508 | user's description. Never use "Lorem ipsum", "Your text here", or placeholder content. | CODE |
| LOW | design/test/variants-retry-after.test.ts | 62 | "fake-key", "prompt", outputPath, "1024x1024", "high", fetchFn, | CODE |
| LOW | design/test/variants-retry-after.test.ts | 79 | "fake-key", "prompt", outputPath, "1024x1024", "high", fetchFn, | CODE |
| LOW | design/test/variants-retry-after.test.ts | 94 | "fake-key", "prompt", outputPath, "1024x1024", "high", fetchFn, | CODE |
| LOW | design/test/variants-retry-after.test.ts | 110 | "fake-key", "prompt", outputPath, "1024x1024", "high", fetchFn, | CODE |
| LOW | design/test/variants-retry-after.test.ts | 125 | "fake-key", "prompt", outputPath, "1024x1024", "high", fetchFn, | CODE |
| LOW | design-consultation/sections/proposal-and-preview.md | 297 | 3. **Shows the product name** (not "Lorem Ipsum") as the hero heading | CODE |
| LOW | ios-qa/daemon/test/session-tokens.test.ts | 15 | identity: 'user@example.com', | CODE |
| LOW | ios-qa/daemon/test/session-tokens.test.ts | 20 | identity: 'user@example.com', | CODE |
| LOW | ios-qa/daemon/test/tailscale-localapi.test.ts | 20 | UserProfile: { LoginName: 'admin@example.com' }, | CODE |
| LOW⚡ | ios-qa/daemon/test/allowlist.test.ts | 33 | entries: [{ identity: 'user@example.com', capabilities: ['observe'], expires_at: null }], | CODE |
| LOW⚡ | ios-qa/daemon/test/allowlist.test.ts | 37 | expect(JSON.parse(raw).entries[0].identity).toBe('user@example.com'); | CODE |
| LOW⚡ | ios-qa/daemon/test/allowlist.test.ts | 43 | entries: [{ identity: 'user@example.com', capabilities: ['mutate' as const], expires_at: null }], | CODE |
| LOW⚡ | ios-qa/daemon/test/allowlist.test.ts | 45 | expect(findEntry(list, 'user@example.com')?.identity).toBe('user@example.com'); | CODE |
| LOW | ios-qa/daemon/src/types.ts | 58 | identity: string; // canonicalized: "user@example.com" or "tag:<name>" or "node:<key>" | CODE |
| LOW | ios-qa/daemon/src/tailscale-localapi.ts | 91 | * "UserProfile": { "LoginName": "user@example.com", ... }, | COMMENT |
| LOW | test/skill-e2e-session-intelligence.test.ts | 36 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-autoplan-chain.test.ts | 60 | gitRun(['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/gbrain-supabase-provision.test.ts | 101 | { id: 'deprec-1', slug: 'acme', name: 'Acme Inc' }, | CODE |
| LOW | test/gbrain-supabase-provision.test.ts | 112 | { slug: 'acme', name: 'Acme Inc' }, | CODE |
| LOW | test/skill-e2e-bws.test.ts | 195 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-bws.test.ts | 298 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 29 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 117 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 202 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 284 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 381 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 521 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 583 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 644 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan.test.ts | 781 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-office-hours.test.ts | 39 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-office-hours.test.ts | 111 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-plan-tune.test.ts | 36 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-review.test.ts | 29 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-review.test.ts | 102 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-review.test.ts | 174 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-review.test.ts | 276 | run('git', ['config', 'user.email', 'test@test.com'], dir); | CODE |
| LOW | test/skill-e2e-review.test.ts | 334 | run('git', ['config', 'user.email', 'test@test.com'], dir); | CODE |
| LOW | test/skill-e2e-review.test.ts | 548 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-deploy.test.ts | 27 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-deploy.test.ts | 99 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-deploy.test.ts | 178 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-deploy.test.ts | 254 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-deploy.test.ts | 315 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-deploy.test.ts | 380 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-context-skills.test.ts | 39 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e-office-hours-phase4.test.ts | 58 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 335 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 466 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 523 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 595 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 858 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 945 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 1029 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 1224 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 1324 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | test/skill-e2e.test.ts | 1411 | run('git', ['config', 'user.email', 'test@test.com']); | CODE |
| 66 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bunfig.toml | 1 | [test] | COMMENT |
| LOW | test-setup.ts | 21 | // pollution class where one test sets `process.env.PATH = '/test/bin:/usr/bin'` | COMMENT |
| LOW | design/test/daemon-discovery.test.ts | 361 | await publishBoard({ port: d.port, html: makeBoardHtml(workDir) }); | COMMENT |
| LOW | extension/sidepanel.js | 1381 | COMMENT | |
| LOW | ios-qa/daemon/src/tunnel-bootstrap.ts | 1 | // Bootstrap the CoreDevice tunnel to a connected iPhone running the iOS app | COMMENT |
| LOW | ios-qa/daemon/src/index.ts | 1 | // gstack-ios-qa-daemon entrypoint. | COMMENT |
| LOW | ios-qa/scripts/gen-accessors.ts | 1 | #!/usr/bin/env bun | COMMENT |
| LOW | ios-qa/scripts/gen-accessors-tool/Package.swift | 1 | // swift-tools-version:5.9 | COMMENT |
| LOW | test/catalog-trim.test.ts | 101 | // can't backtrack past a non-period char. For "DESIGN.md and v1.45.0.0 | COMMENT |
| LOW | test/brain-sync-windows-paths.test.ts | 1 | import { describe, test, expect } from 'bun:test'; | COMMENT |
| LOW | test/brain-sync-windows-paths.test.ts | 21 | // nothing and the drain silently stages/commits nothing. | COMMENT |
| LOW | test/skill-llm-eval-spec.test.ts | 21 | const describeEval = evalsEnabled ? describe : describe.skip; | COMMENT |
| LOW | test/llm-judge-recommendation.test.ts | 101 | B) Client-side | COMMENT |
| LOW | test/skill-e2e-setup-gbrain-path4-local-pglite.test.ts | 1 | // E2E: /setup-gbrain Path 4 with Step 4.5 "Yes" — local PGLite for code search. | COMMENT |
| LOW | test/skill-e2e-ios-swift-build.test.ts | 1 | // Swift-build invariant tests. Runs against the fixture iOS app at | COMMENT |
| LOW | test/skill-e2e-ios.test.ts | 1 | // High-level E2E for /ios-qa skill flow. | COMMENT |
| LOW | test/skill-e2e-ios-device.test.ts | 1 | // GSTACK_HAS_IOS_DEVICE=1 device-path test. Runs only when: | COMMENT |
| LOW | test/skill-e2e-ios-device.test.ts | 121 | // `swift build --triple arm64-apple-ios` directly because SwiftPM | COMMENT |
| LOW | test/skill-e2e-ios-device.test.ts | 141 | // - test/fixtures/ios-qa/FixtureApp/FixtureApp.xcodeproj (or generated) | COMMENT |
| LOW | test/skill-e2e-autoplan-dual-voice.test.ts | 81 | // Fire /autoplan with a 10-min hard timeout on the spawn itself. | COMMENT |
| LOW | test/skill-e2e-autoplan-dual-voice.test.ts | 101 | COMMENT | |
| LOW | test/post-rename-doc-regen.test.ts | 1 | // Post-rename doc-regen regression: after `bun run gen:skill-docs`, no | COMMENT |
| LOW | test/setup-gbrain-path4-structure.test.ts | 1 | // setup-gbrain Path 4 structural lint. | COMMENT |
| LOW | test/benchmark-cli.test.ts | 101 | // On a dev machine with full auth configured, the default --dry-run output | COMMENT |
| LOW | test/skill-e2e-setup-gbrain-remote.test.ts | 1 | // E2E: /setup-gbrain Path 4 (Remote MCP) happy path via Agent SDK. | COMMENT |
| LOW | test/skill-e2e-plan-format.test.ts | 41 | // `Recommendation: <choice> because <reason>`, where <choice> is the bare | COMMENT |
| LOW | test/gstack-memory-ingest.test.ts | 621 | // last segment matching the session id. | COMMENT |
| LOW | test/plan-tune.test.ts | 361 | // that don't appear to map to any registry entry. | COMMENT |
| LOW | test/skill-e2e-setup-gbrain-bad-token.test.ts | 1 | // E2E: /setup-gbrain Path 4 with a bad bearer token via Agent SDK. | COMMENT |
| LOW | test/gen-skill-docs.test.ts | 361 | COMMENT | |
| LOW | test/helpers/agent-sdk-runner.ts | 301 | const queryImpl: QueryProvider = opts.queryProvider ?? query; | COMMENT |
| LOW | test/helpers/touchfiles.ts | 101 | 'plan-ceo-review-plan-mode': ['plan-ceo-review/**', 'scripts/resolvers/preamble/generate-completion-status.ts', 'sc | COMMENT |
| LOW | test/helpers/touchfiles.ts | 141 | // devex, office-hours + future PR2 carves). One file iterating CARVE_GUARDS; | COMMENT |
| LOW | test/helpers/touchfiles.ts | 401 | 'ios-qa-e2e': ['ios-qa/**', 'ios-fix/**', 'ios-design-review/**', 'ios-clean/**', 'ios-sync/**', 'test/skill-e2e | COMMENT |
| LOW | test/helpers/touchfiles.ts | 501 | 'office-hours-brain-writeback': 'periodic', | COMMENT |
| LOW | test/helpers/claude-pty-runner.ts | 301 | COMMENT | |
| LOW | test/helpers/claude-pty-runner.ts | 321 | // and deterministic but brittle to PTY rendering quirks (cursor-positioning | COMMENT |
| LOW | test/helpers/claude-pty-runner.ts | 541 | // option lines onto one logical line via stripped cursor-positioning | COMMENT |
| LOW | test/helpers/claude-pty-runner.ts | 561 | // positives on prose ("First, x. Second, y.") are extremely rare given | COMMENT |
| LOW | test/helpers/claude-pty-runner.ts | 581 | // count markers anywhere in the tail. The `❯ 1.` cursor gate above already | COMMENT |
| LOW | test/helpers/claude-pty-runner.ts | 641 | const tail = visible.length > 4096 ? visible.slice(-4096) : visible; | COMMENT |
| LOW | test/helpers/claude-pty-runner.ts | 1121 | */ | COMMENT |
| LOW | test/helpers/claude-pty-runner.ts | 2021 | // observer for gate-tier floor tests catching the May 2026 transcript bug | COMMENT |
| LOW | bin/gstack-gbrain-lib.sh | 1 | # gstack-gbrain-lib.sh — shared helpers for setup-gbrain bin scripts. | COMMENT |
| LOW | bin/gstack-gbrain-lib.sh | 21 | # | COMMENT |
| LOW | bin/gstack-pr-title-rewrite.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | bin/gstack-gbrain-sync.ts | 861 | // walks the filesystem. On a freshly-registered source (0 pages) a --full | COMMENT |
| LOW | bin/gstack-gbrain-sync.ts | 1241 | ); | COMMENT |
| LOW | bin/gstack-memory-ingest.ts | 781 | body, | COMMENT |
| LOW | bin/gstack-memory-ingest.ts | 801 | // → readNewFailures(preImportOffset, slugMap) → Set<sourcePath> (D7) | COMMENT |
| LOW | bin/gstack-memory-ingest.ts | 1541 | // PERSISTENT dir under ~/.gstack/transcripts/ and SKIP `gbrain import` | COMMENT |
| LOW | supabase/config.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | supabase/functions/community-pulse/index.ts | 1 | // gstack community-pulse edge function | COMMENT |
| LOW | scripts/detect-bump.ts | 1 | #!/usr/bin/env bun | COMMENT |
| LOW | scripts/test-free-shards.ts | 61 | { pattern: /\bwhich claude\b/, reason: 'which claude (use Bun.which)' }, | COMMENT |
| LOW | scripts/test-free-shards.ts | 81 | // Tests that spawn the browse server as a subprocess via `bun run server.ts`. | COMMENT |
| LOW | scripts/build-app.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/gen-skill-docs.ts | 21 | import { externalSkillName, extractHookSafetyProse as _extractHookSafetyProse, extractNameAndDescription as _extractName | COMMENT |
| LOW | scripts/gen-skill-docs.ts | 281 | COMMENT | |
| LOW | scripts/gen-skill-docs.ts | 321 | // We tolerate sentences with embedded periods (URLs, "v1.45.0.0") by requiring | COMMENT |
| 64 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | design/test/serve.test.ts | 462 | // Step 1: User clicks regenerate | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 472 | // Step 2: Progress shows regenerating | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 476 | // Step 3: Agent generates new variants and reloads | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 487 | // Step 4: Progress shows serving (board would auto-refresh) | COMMENT |
| LOW⚡ | design/test/serve.test.ts | 491 | // Step 5: User submits on round 2 | COMMENT |
| LOW | design/test/feedback-roundtrip.test.ts | 296 | // Step 1: User clicks Regenerate | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 312 | // Step 2: Agent generates new variants and creates a new board | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 321 | // Step 3: Agent POSTs /api/reload to swap the board | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 331 | // Step 4: Board auto-refreshes (simulated by navigating again) | COMMENT |
| LOW⚡ | design/test/feedback-roundtrip.test.ts | 340 | // Step 5: User picks variant C on round 2 and submits | COMMENT |
| LOW⚡ | design/src/evolve.ts | 35 | // Step 1: Analyze current screenshot | COMMENT |
| LOW⚡ | design/src/evolve.ts | 39 | // Step 2: Generate evolved version using analysis + brief | COMMENT |
| LOW⚡ | extension/sidepanel.js | 1284 | // Step 2: If background says connected + has token, use that | COMMENT |
| LOW⚡ | extension/sidepanel.js | 1294 | // Step 3: Background not connected yet. Try hitting /health directly. | COMMENT |
| LOW | extension/sidepanel.js | 1262 | // Step 1: Ask background for the port | COMMENT |
| LOW | ios-qa/daemon/src/tunnel-bootstrap.ts | 73 | // Step 1: pick a device | COMMENT |
| LOW⚡ | ios-qa/daemon/src/tunnel-bootstrap.ts | 92 | // Step 2: launch app (idempotent — devicectl returns success if already running) | COMMENT |
| LOW⚡ | ios-qa/daemon/src/tunnel-bootstrap.ts | 100 | // Step 3: resolve tunnel IPv6. Try devicectl `info details` first (most | COMMENT |
| LOW | ios-qa/daemon/src/tunnel-bootstrap.ts | 119 | // Step 4: wait for StateServer to become reachable, then scrape boot token. | COMMENT |
| LOW | ios-qa/daemon/src/tunnel-bootstrap.ts | 146 | // Step 5: rotate the boot token to a fresh in-memory-only one. | COMMENT |
| LOW | test/skill-validation.test.ts | 1234 | // Headings like "## Step 7: Test Coverage Audit" — NOT sub-steps like "## Step 8.1:" | COMMENT |
| LOW | test/regression-1624-retro-stale-base.test.ts | 45 | const step1 = body.indexOf("### Step 1: Gather Raw Data"); | CODE |
| LOW⚡ | test/skill-e2e-review.test.ts | 292 | const step0Start = full.indexOf('## Step 0: Detect platform and base branch'); | CODE |
| LOW⚡ | test/skill-e2e-review.test.ts | 293 | const step1Start = full.indexOf('## Step 1: Check branch'); | CODE |
| LOW⚡ | test/skill-e2e-review.test.ts | 349 | const step0Start = fullShipSkill.indexOf('## Step 0: Detect platform and base branch'); | CODE |
| LOW⚡ | test/skill-e2e-review.test.ts | 350 | const step0End = fullShipSkill.indexOf('## Step 1: Pre-flight'); | CODE |
| LOW | test/skill-llm-eval.test.ts | 655 | startMarker: '## Step 0: Nuclear Scope Challenge', | CODE |
| LOW | test/skill-llm-eval.test.ts | 724 | startMarker: '## Step 1: Pre-flight', | CODE |
| LOW | test/skill-llm-eval.test.ts | 760 | startMarker: '### Step 2: Detect platform', | CODE |
| LOW⚡ | test/skill-e2e.test.ts | 3302 | const step4Start = full.indexOf('## Step 4: Version bump'); | CODE |
| LOW⚡ | test/skill-e2e.test.ts | 3304 | const step7Start = full.indexOf('## Step 7: Push'); | CODE |
| LOW | test/skill-e2e-ios-swift-build.test.ts | 117 | // Step 1: clean + release build (Core only — UI/Touch can't build on macOS) | COMMENT |
| LOW | test/skill-e2e-ios-swift-build.test.ts | 129 | // Step 2: locate the built object file(s). SwiftPM puts .build artifacts | COMMENT |
| LOW⚡ | test/carve-guards-negative.test.ts | 37 | `# ${skill}\n## Step 0: Setup\nstays here\n## Section index\n| When | Read |\n${stopLine}${leak}## EXIT PLAN MODE GA | CODE |
| LOW⚡ | test/carve-guards-negative.test.ts | 47 | mustStayInSkeleton: ['## Step 0: Setup'], | CODE |
| LOW | test/skill-ceo-section-ordering.test.ts | 37 | const STEP0 = '## Step 0: Nuclear Scope Challenge + Mode Selection'; | CODE |
| LOW | test/gen-skill-docs.test.ts | 354 | markers: ['# Mega Plan Review Mode', '## Step 0: Detect platform and base branch'], | CODE |
| LOW | test/helpers/carve-guards.ts | 141 | mustStayInSkeleton: ['## Step 0: Nuclear Scope Challenge'], | CODE |
| LOW | test/helpers/carve-guards.ts | 161 | mustStayInSkeleton: ['### Step 0: Scope Challenge'], | CODE |
| LOW⚡ | test/helpers/carve-guards.ts | 247 | mustStayInSkeleton: ['## Step 1: Pre-flight', '## Step 1.5: Coverage Map'], | CODE |
| LOW⚡ | test/helpers/carve-guards.ts | 248 | mustMoveToSection: ['## Step 2: Per-File Documentation Audit', '## Step 5: CHANGELOG Voice Polish'], | CODE |
| LOW | bin/gstack-gbrain-sync.ts | 840 | // Step 1: Ensure source registered (idempotent). Single source of truth in lib — | COMMENT |
| LOW | bin/gstack-gbrain-sync.ts | 857 | // Step 2: Always run the page-creating file walk first, then (for --full) | COMMENT |
| LOW | bin/gstack-gbrain-sync.ts | 931 | // Step 3: Pin this worktree's CWD to the source via .gbrain-source. Subsequent | COMMENT |
| LOW | bin/gstack-gbrain-sync.ts | 947 | // Step 4: Deferred hostname-fold cleanup. | COMMENT |
| LOW | scripts/resolvers/utility.ts | 12 | return `## Step 0: Detect platform and base branch | CODE |
| LOW⚡ | scripts/resolvers/utility.ts | 376 | return `## Step 13: CHANGELOG (auto-generate) | CODE |
| LOW | browse/test/sidebar-ux.test.ts | 1343 | // Step 1: sidepanel sends sidebarOpened when connected | COMMENT |
| LOW | browse/test/sidebar-ux.test.ts | 1354 | // Step 2: background.js accepts and relays sidebarOpened | COMMENT |
| LOW | browse/test/sidebar-ux.test.ts | 1376 | // Step 3: content.js fires gstack-extension-ready ONLY on sidebarOpened | COMMENT |
| LOW | browse/test/sidebar-ux.test.ts | 1390 | // Step 4: welcome page hides arrow on gstack-extension-ready | COMMENT |
| LOW | browse/scripts/build-node-server.sh | 16 | # Step 1: Transpile server.ts to a single .mjs bundle (externalize runtime deps) | COMMENT |
| LOW⚡ | browse/scripts/build-node-server.sh | 31 | # Step 2: Post-process | COMMENT |
| LOW⚡ | browse/scripts/build-node-server.sh | 37 | # Step 3: Create the final file with polyfill header injected after the first line | COMMENT |
| LOW | browse/scripts/build-node-server.sh | 51 | # Step 4: Copy polyfill to dist/ | COMMENT |
| LOW | make-pdf/src/smartypants.ts | 32 | // Step 1: split into preserved + transformed zones. | COMMENT |
| LOW | make-pdf/src/smartypants.ts | 54 | // Step 2: restore preserved zones. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | design/src/daemon.ts | 179 | function findActiveBoardForSourceDir(sourceDir: string): Board | null { | CODE |
| LOW | design/src/design-to-code.ts | 22 | export async function generateDesignToCodePrompt( | CODE |
| LOW | design/src/daemon-client.ts | 315 | async function gracefulShutdownExistingDaemon(port: number): Promise<void> { | CODE |
| LOW | design/src/variants.ts | 222 | async function generateResponsiveVariants( | CODE |
| LOW | test/skill-e2e-plan-ceo-mode-routing.test.ts | 68 | async function navigateToModeAskUserQuestion( | CODE |
| LOW | test/skill-e2e-skillify.test.ts | 130 | function installBundledHackernewsSkill(workDir: string) { | CODE |
| LOW | test/extension-pty-inject-invariant.test.ts | 70 | function findEnclosingFunctionStart(content: string, callerPos: number): number { | CODE |
| LOW | test/gen-skill-docs.test.ts | 74 | function extractPreambleBeforeWorkflow(content: string, workflowMarkers: string[]): string { | CODE |
| LOW | test/helpers/agent-sdk-runner.ts | 145 | export function passThroughNonAskUserQuestion( | CODE |
| LOW | test/helpers/skill-parser.ts | 145 | export function extractRemoteSlugPatterns(rootDir: string, subdirs: string[]): Map<string, string[]> { | CODE |
| LOW | test/helpers/e2e-helpers.ts | 212 | export async function assertRecommendationQuality(opts: { | CODE |
| LOW | test/helpers/claude-pty-runner.ts | 244 | export function planFileHasDecisionsSection(planFile: string): boolean { | CODE |
| LOW | test/helpers/claude-pty-runner.ts | 282 | export function isPermissionDialogVisible(visible: string): boolean { | CODE |
| LOW | test/helpers/claude-pty-runner.ts | 303 | export function isNumberedOptionListVisible(visible: string): boolean { | CODE |
| LOW | test/helpers/claude-pty-runner.ts | 1085 | export function assertReviewReportAtBottom( | CODE |
| LOW | test/helpers/claude-pty-runner.ts | 1122 | export function assertReportAtBottomIfPlanWritten( | CODE |
| LOW | bin/gstack-gbrain-sync.ts | 396 | export function derivePathOnlyHashLegacyId(repoPath: string): string { | CODE |
| LOW | bin/gstack-gbrain-sync.ts | 423 | function gbrainSupportsSourcesRename(env?: NodeJS.ProcessEnv): boolean { | CODE |
| LOW | bin/gstack-gbrain-sync.ts | 489 | export function planHostnameFoldMigration( | CODE |
| LOW | bin/gstack-gbrain-sync.ts | 1017 | export function ensureGbrainSourceGitignored(root: string): void { | CODE |
| LOW | bin/gstack-memory-ingest.ts | 1238 | function makePersistentTranscriptDir(): string { | CODE |
| LOW | scripts/gstack-schema-pack.ts | 261 | export function getSchemaPackMutationPayload(): { | CODE |
| LOW | scripts/gen-skill-docs.ts | 66 | function effectiveSuppressedResolvers(hostConfig: HostConfig): Set<string> { | CODE |
| LOW | scripts/gen-skill-docs.ts | 193 | function extractNameAndDescription(content: string): { name: string; description: string } { | CODE |
| LOW | scripts/gen-skill-docs.ts | 483 | function condenseOpenAIShortDescription(description: string): string { | CODE |
| LOW | scripts/psychographic-signals.ts | 253 | export function validateRegistrySignalKeys(): { | CODE |
| LOW | scripts/psychographic-signals.ts | 285 | export function normalizeToDimensionValue(total: number): number { | CODE |
| LOW⚡ | scripts/resolvers/testing.ts | 182 | function generateTestCoverageAuditInner(mode: CoverageAuditMode): string { | CODE |
| LOW⚡ | scripts/resolvers/testing.ts | 541 | export function generateTestCoverageAuditPlan(_ctx: TemplateContext): string { | CODE |
| LOW⚡ | scripts/resolvers/testing.ts | 545 | export function generateTestCoverageAuditShip(_ctx: TemplateContext): string { | CODE |
| LOW⚡ | scripts/resolvers/testing.ts | 549 | export function generateTestCoverageAuditReview(_ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/review-army.ts | 14 | function generateSpecialistSelection(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/review-army.ts | 85 | function generateSpecialistDispatch(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/gbrain.ts | 55 | export function generateGBrainContextLoad(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/gbrain.ts | 75 | export function generateGBrainSaveResults(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/gbrain.ts | 195 | export function generateBrainCacheRefresh(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/review.ts | 74 | export function generatePlanFileReviewReport(_ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/review.ts | 204 | export function generateAntiShortcutClause(_ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/review.ts | 321 | export function generateCodexSecondOpinion(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/review.ts | 840 | function generatePlanFileDiscovery(): string { | CODE |
| LOW | scripts/resolvers/review.ts | 876 | function generatePlanCompletionAuditInner(mode: PlanCompletionMode): string { | CODE |
| LOW⚡ | scripts/resolvers/review.ts | 1113 | export function generatePlanCompletionAuditShip(_ctx: TemplateContext): string { | CODE |
| LOW⚡ | scripts/resolvers/review.ts | 1117 | export function generatePlanCompletionAuditReview(_ctx: TemplateContext): string { | CODE |
| LOW⚡ | scripts/resolvers/review.ts | 1123 | export function generatePlanVerificationExec(_ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/question-tuning.ts | 50 | export function generateQuestionPreferenceCheck(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/question-tuning.ts | 68 | export function generateInlineTuneFeedback(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/design.ts | 69 | export function generateDesignMethodology(_ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/design.ts | 541 | export function generateDesignOutsideVoices(ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/design.ts | 912 | export function generateDesignShotgunLoop(_ctx: TemplateContext): string { | CODE |
| LOW⚡ | scripts/resolvers/utility.ts | 375 | export function generateChangelogWorkflow(_ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/codex-helpers.ts | 5 | export function extractNameAndDescription(content: string): { name: string; description: string } { | CODE |
| LOW | scripts/resolvers/codex-helpers.ts | 43 | export function condenseOpenAIShortDescription(description: string): string { | CODE |
| LOW | scripts/resolvers/confidence.ts | 19 | export function generateConfidenceCalibration(_ctx: TemplateContext): string { | CODE |
| LOW | scripts/resolvers/redact-doc.ts | 66 | export function generateRedactTaxonomyTable(_ctx: TemplateContext, args?: string[]): string { | CODE |
| LOW | scripts/resolvers/redact-doc.ts | 120 | export function generateRedactInvocationBlock(ctx: TemplateContext, args?: string[]): string { | CODE |
| LOW | …s/resolvers/preamble/generate-continuous-checkpoint.ts | 3 | export function generateContinuousCheckpoint(): string { | CODE |
| LOW | …resolvers/preamble/generate-writing-style-migration.ts | 3 | export function generateWritingStyleMigration(ctx: TemplateContext): string { | CODE |
| LOW | …s/resolvers/preamble/generate-vendoring-deprecation.ts | 3 | export function generateVendoringDeprecation(ctx: TemplateContext): string { | CODE |
| LOW | …esolvers/preamble/generate-brain-health-instruction.ts | 3 | export function generateBrainHealthInstruction(ctx: TemplateContext): string { | CODE |
| LOW | …ts/resolvers/preamble/generate-completeness-section.ts | 3 | export function generateCompletenessSection(ctx?: TemplateContext): string { | CODE |
| 26 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CHANGELOG.md | 2092 | ## **Local gbrain PGLite now defaults to Voyage's code-specialized embedding model when `VOYAGE_API_KEY` is set.** | COMMENT |
| MEDIUM | TODOS.md | 2002 | ### Swarm primitive — reusable multi-agent dispatch | COMMENT |
| MEDIUM | TODOS.md | 2096 | **Why:** Multi-week initiatives often span 3-5 specs that share context but ship sequentially. Today `/spec --epic` woul | CODE |
| MEDIUM | CLAUDE.md | 546 | ## Community PR guardrails | COMMENT |
| MEDIUM | autoplan/SKILL.md | 1114 | # including autoplan's own dual-voice orchestration. Honor it before probing. | COMMENT |
| MEDIUM | test/benchmark-runner.test.ts | 52 | // Gemini has very limited agentic surface | COMMENT |
| MEDIUM | test/preamble-first-task-scaffold.test.ts | 7 | // P4 first-run scaffold (activation lift). Two surfaces under test: | COMMENT |
| MEDIUM | test/preamble-first-task-scaffold.test.ts | 162 | expect(md).toContain('`ACTIVATED` is `no`'); // P4 scaffold branch | CODE |
| MEDIUM | test/helpers/touchfiles.ts | 44 | // P4 first-run scaffold (activation lift) — the detection binary end-to-end | COMMENT |
| MEDIUM | test/helpers/touchfiles.ts | 466 | // P4 first-run scaffold — periodic (onboarding, non-safety, model-touched marker) | COMMENT |
| MEDIUM | test/helpers/touchfiles.ts | 478 | // Review — gate for functional/guardrails, periodic for quality | COMMENT |
| MEDIUM | test/helpers/touchfiles.ts | 663 | // CSO — gate for security guardrails, periodic for quality | COMMENT |
| MEDIUM | test/helpers/parity-harness.ts | 224 | // v1.2.0 activation lift: the unified first-run-guidance section (P4 scaffold + | COMMENT |
| MEDIUM | test/helpers/tool-map.ts | 58 | // Shell access depends on flags; most agentic tools are not exposed. | COMMENT |
| MEDIUM | context-restore/SKILL.md | 832 | # context window just listing them. /context-save list handles pagination. | COMMENT |
| MEDIUM⚡ | docs/skills.md | 51 | | [`/careful`](#safety--guardrails) | **Safety Guardrails** | Warns before destructive commands (rm -rf, DROP TABLE, for | CODE |
| MEDIUM⚡ | docs/skills.md | 52 | | [`/freeze`](#safety--guardrails) | **Edit Lock** | Restrict all file edits to a single directory. Blocks Edit and Writ | CODE |
| MEDIUM⚡ | docs/skills.md | 53 | | [`/guard`](#safety--guardrails) | **Full Safety** | Combines /careful + /freeze in one command. Maximum safety for pro | CODE |
| MEDIUM⚡ | docs/skills.md | 54 | | [`/unfreeze`](#safety--guardrails) | **Unlock** | Remove the /freeze boundary, allowing edits everywhere again. | | CODE |
| MEDIUM | docs/designs/SESSION_INTELLIGENCE.md | 134 | - [CodeScene: Agentic AI coding best practices](https://codescene.com/blog/agentic-ai-coding-best-practice-patterns-for- | CODE |
| MEDIUM | docs/designs/ML_PROMPT_INJECTION_KILLER.md | 88 | - [npm](https://www.npmjs.com/package/@openai/guardrails) | CODE |
| MEDIUM | supabase/functions/telemetry-ingest/index.ts | 72 | // scaffold), handoff (P1 office-hours → next skill), route (gstack router). | COMMENT |
| MEDIUM | …ipts/resolvers/preamble/generate-first-run-guidance.ts | 3 | // First-run guidance (P4 scaffold + P3 loop tip), unified into one section. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/setup-gbrain-path4-structure.test.ts | 86 | expect(tmpl).toMatch(/<YOUR_TOKEN>/); | CODE |
| HIGH | test/setup-gbrain-path4-structure.test.ts | 124 | // - <bearer>, <YOUR_TOKEN>, <TOKEN> (placeholder) | COMMENT |
| HIGH | test/setup-gbrain-path4-structure.test.ts | 130 | expect(line).toMatch(/Bearer (\$GBRAIN_MCP_TOKEN|<bearer>|<YOUR_TOKEN>|<TOKEN>|\.\.\."?)/); | CODE |
| HIGH | test/redact-engine.test.ts | 244 | expect(isPlaceholderSpan("your_api_key")).toBe(true); | CODE |
| HIGH | setup-gbrain/SKILL.md | 1606 | -H 'Authorization: Bearer <YOUR_TOKEN>' \ | CODE |
| HIGH | setup-gbrain/SKILL.md | 1612 | `<YOUR_TOKEN>` so the snippet is safe to copy into chat / share. | CODE |
| HIGH | lib/redact-patterns.ts | 404 | // recipe as env.kv to kill Bearer YOUR_TOKEN_HERE placeholders. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/ship-version-sync.test.ts | 49 | elif command -v bun >/dev/null 2>&1; then | CODE |
| HIGH | scripts/resolvers/design.ts | 959 | elif [ -f "$_DESIGN_DIR/feedback-pending.json" ]; then | CODE |
| HIGH | scripts/resolvers/constants.ts | 101 | elif ! command -v codex >/dev/null 2>&1; then | CODE |
| HIGH | scripts/resolvers/constants.ts | 103 | elif ! _gstack_codex_auth_probe >/dev/null 2>&1; then | CODE |
| HIGH | scripts/resolvers/confidence.ts | 47 | would live. If "dict.get() might return None", quote the dict initialization. | CODE |
| HIGH | scripts/resolvers/preamble/generate-brain-sync-block.ts | 120 | elif [ -d "$_GSTACK_HOME/.git" ] && [ "$_BRAIN_SYNC_MODE" != "off" ]; then | CODE |
| HIGH | scripts/resolvers/preamble/generate-preamble-bash.ts | 121 | elif [ "\${GSTACK_PLAN_MODE:-}" = "active" ]; then | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/skill-e2e-setup-gbrain-path4-local-pglite.test.ts | 15 | // Periodic-tier (codex #12: AgentSDK harness is non-deterministic; gate-tier | COMMENT |
| MEDIUM | test/skill-e2e-office-hours-brain-writeback.test.ts | 160 | // Set up the fake gbrain CLI with robust argv quoting + payload capture. | COMMENT |
| MEDIUM | test/helpers/touchfiles.ts | 130 | // Real-PTY E2E batch (#6 new tests on the harness). | COMMENT |
| MEDIUM | test/helpers/touchfiles.ts | 183 | // Periodic-tier per codex #12 (AgentSDK harness is non-deterministic). | COMMENT |
| MEDIUM | scripts/resolvers/testing.ts | 42 | ### B2. Research best practices | COMMENT |
| MEDIUM | scripts/resolvers/preamble/generate-preamble-bash.ts | 116 | # from CLAUDE_PLAN_FILE (set by the harness when plan mode is active) and | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | bin/gstack-gbrain-lib.sh | 3 | # This file is NOT executable; source it: | COMMENT |
| MEDIUM | scripts/build-app.sh | 181 | # Create a temporary directory for DMG contents | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/build-app.sh | 12 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/skill-routing-e2e.test.ts | 373 | fs.writeFileSync(path.join(tmpDir, 'waitlist.ts'), 'export class WaitlistService {\n async addParty(name: string, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup-gbrain/SKILL.md | 1411 | except Exception: | CODE |