claude-code-session-manager 0.87.0 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/README.md +26 -53
  2. package/dist/assets/{AgentLibrary-DyLWzZDf.js → AgentLibrary-BZ6IY2g1.js} +1 -1
  3. package/dist/assets/{DataModel--mISIJ6h.js → DataModel-dAoGAODX.js} +1 -1
  4. package/dist/assets/{History-C2ahUXTg.js → History-CF157HyX.js} +1 -1
  5. package/dist/assets/{Hooks-BiC6oyR2.js → Hooks-CCPPipBk.js} +1 -1
  6. package/dist/assets/{HostBilko-BPleEOld.js → HostBilko-Dlmz2m06.js} +1 -1
  7. package/dist/assets/{Library-Dc8Qst1R.js → Library-BaXcboWX.js} +1 -1
  8. package/dist/assets/{ListDetail-DIXh-OLX.js → ListDetail-CoUCzG5S.js} +1 -1
  9. package/dist/assets/{MarkdownEditor-C90bkLXK.js → MarkdownEditor-DTg3JlOT.js} +1 -1
  10. package/dist/assets/{McpServers-DqcbLOLZ.js → McpServers-DdjY1sA3.js} +1 -1
  11. package/dist/assets/{Memory-CW62MXlh.js → Memory-BJ3Jlw0C.js} +1 -1
  12. package/dist/assets/{Panel-Bw1FhRuF.js → Panel-ygRSgc41.js} +1 -1
  13. package/dist/assets/{Permissions-BcUC-5y8.js → Permissions-m0KAnccF.js} +1 -1
  14. package/dist/assets/{Plugins-BnKx9flD.js → Plugins-CJRl6B3Q.js} +2 -2
  15. package/dist/assets/{ProvenanceBadge-Bw5vNVPT.js → ProvenanceBadge-w8cnlVvW.js} +1 -1
  16. package/dist/assets/{SaveBar-CWr0O_w-.js → SaveBar-BpyPcUIk.js} +1 -1
  17. package/dist/assets/{Scheduler-DYdLuUqq.js → Scheduler-D2ppxSfy.js} +7 -7
  18. package/dist/assets/{ScopeSwitcher-CrBLbg8s.js → ScopeSwitcher-EyuIwt-j.js} +1 -1
  19. package/dist/assets/{Settings-DluB-vN1.js → Settings-BHSGGFEc.js} +1 -1
  20. package/dist/assets/{SkillReferenceGraph-CHLSseay.js → SkillReferenceGraph-BNaZ2JCF.js} +1 -1
  21. package/dist/assets/{Skills-gNdo_HNK.js → Skills-Dl3q75QV.js} +1 -1
  22. package/dist/assets/{SystemPrompt-Cru05-Ia.js → SystemPrompt-Bg6F-Cyp.js} +1 -1
  23. package/dist/assets/{TagLibrary-DNHY0xou.js → TagLibrary-BSutflCy.js} +1 -1
  24. package/dist/assets/{TiptapBody-I4lmbCgP.js → TiptapBody-CXih4xrc.js} +1 -1
  25. package/dist/assets/{Toggle-bWMHjmRh.js → Toggle-2qtUHhA9.js} +1 -1
  26. package/dist/assets/{index-fc_JjdxL.js → index-B3emy2oI.js} +356 -356
  27. package/dist/assets/{index-DV3PorRY.css → index-BHTX4OTc.css} +1 -1
  28. package/dist/assets/{settingsSchema-BfhtZnGD.js → settingsSchema-CdzxaqwM.js} +1 -1
  29. package/dist/assets/{whisperWorker-Dbia1OpC.js → whisperWorker-C7ZGQwKg.js} +7 -7
  30. package/dist/index.html +2 -2
  31. package/dist/vad/ort-wasm-simd-threaded.asyncify.mjs +106 -110
  32. package/dist/vad/ort-wasm-simd-threaded.asyncify.wasm +0 -0
  33. package/dist/vad/ort-wasm-simd-threaded.jsep.mjs +98 -98
  34. package/dist/vad/ort-wasm-simd-threaded.jsep.wasm +0 -0
  35. package/dist/vad/ort-wasm-simd-threaded.jspi.mjs +99 -102
  36. package/dist/vad/ort-wasm-simd-threaded.jspi.wasm +0 -0
  37. package/dist/vad/ort-wasm-simd-threaded.mjs +46 -46
  38. package/dist/vad/ort-wasm-simd-threaded.wasm +0 -0
  39. package/package.json +10 -13
  40. package/scripts/README.md +59 -0
  41. package/scripts/audit-ops-hygiene.cjs +350 -0
  42. package/scripts/hooks/guard-destructive-git.cjs +10 -34
  43. package/scripts/hooks/guard-inline-implementation.cjs +14 -8
  44. package/scripts/hooks/guard-prd-writes.cjs +7 -36
  45. package/scripts/hooks/guard-self-schedule.cjs +175 -0
  46. package/scripts/ops-sweep.cjs +355 -0
  47. package/scripts/scheduler-mcp-server.cjs +28 -71
  48. package/src/main/__tests__/bilkoHost-integration.test.cjs +3 -3
  49. package/src/main/__tests__/chat-cancel-terminal.test.cjs +6 -9
  50. package/src/main/__tests__/chat-exit-close-race.test.cjs +3 -3
  51. package/src/main/__tests__/chat-mcp-consent-notice.test.cjs +4 -5
  52. package/src/main/__tests__/chat-queue.test.cjs +2 -2
  53. package/src/main/__tests__/chat-stop-signal.test.cjs +2 -2
  54. package/src/main/__tests__/dep-orphan-archive-health.test.cjs +77 -0
  55. package/src/main/__tests__/dod-batchkey.test.cjs +2 -2
  56. package/src/main/__tests__/dod-drain-hook.test.cjs +2 -2
  57. package/src/main/__tests__/dod-report.test.cjs +2 -2
  58. package/src/main/__tests__/dod-reverify.test.cjs +2 -2
  59. package/src/main/__tests__/epicMint.test.cjs +2 -2
  60. package/src/main/__tests__/exchanges.test.cjs +2 -2
  61. package/src/main/__tests__/extractJson.test.cjs +2 -2
  62. package/src/main/__tests__/files-reject-credentials.test.cjs +1 -1
  63. package/src/main/__tests__/fixtures/1218-fo-01-move-scripts-lib-into-src-main-lib.log +556 -0
  64. package/src/main/__tests__/health-build-freshness.test.cjs +39 -0
  65. package/src/main/__tests__/health-delegation-chain.test.cjs +15 -1
  66. package/src/main/__tests__/health-queue-dispatch.test.cjs +58 -7
  67. package/src/main/__tests__/health-tick-liveness.test.cjs +11 -3
  68. package/src/main/__tests__/health-usage-poller.test.cjs +70 -23
  69. package/src/main/__tests__/historyRollup.test.cjs +2 -2
  70. package/src/main/__tests__/kg-augment.test.cjs +2 -2
  71. package/src/main/__tests__/mcpStatus.test.cjs +2 -2
  72. package/src/main/__tests__/memoryAggregate.test.cjs +1 -1
  73. package/src/main/__tests__/memoryStale.test.cjs +1 -1
  74. package/src/main/__tests__/opsErrorLogTelemetryTap.test.cjs +25 -1
  75. package/src/main/__tests__/pollLoop-dispatch-on-failure.test.cjs +33 -3
  76. package/src/main/__tests__/prd-group-allocator.test.cjs +2 -2
  77. package/src/main/__tests__/prdAdminRouteParity.test.cjs +2 -0
  78. package/src/main/__tests__/prdAdminRoutes.test.cjs +14 -2
  79. package/src/main/__tests__/prdAuthoringSeed.test.cjs +39 -0
  80. package/src/main/__tests__/prdLocationsArchived.test.cjs +20 -13
  81. package/src/main/__tests__/proc-role-env.test.cjs +125 -0
  82. package/src/main/__tests__/procname-claude-spawn-sites.test.cjs +304 -0
  83. package/src/main/__tests__/procname-sm-processes.test.cjs +127 -0
  84. package/src/main/__tests__/projectHomeAdminRoutes.test.cjs +81 -401
  85. package/src/main/__tests__/projectPages.test.cjs +63 -149
  86. package/src/main/__tests__/queue-health-verdict.test.cjs +9 -9
  87. package/src/main/__tests__/queue-starvation-dispatch-driver.test.cjs +117 -20
  88. package/src/main/__tests__/queueHistory.test.cjs +2 -2
  89. package/src/main/__tests__/rateLimitPollerStreak.test.cjs +38 -3
  90. package/src/main/__tests__/runVerify-landed-commit-outranks.test.cjs +181 -0
  91. package/src/main/__tests__/runVerify.test.cjs +5 -5
  92. package/src/main/__tests__/scheduleJobStatusDrift.test.cjs +3 -3
  93. package/src/main/__tests__/scheduleJobTransitions.test.cjs +2 -2
  94. package/src/main/__tests__/scheduler-adopted-run-supervision.test.cjs +143 -0
  95. package/src/main/__tests__/scheduler-autofix-select.test.cjs +2 -2
  96. package/src/main/__tests__/scheduler-autopromote.test.cjs +2 -2
  97. package/src/main/__tests__/scheduler-bash-timeout-env.test.cjs +3 -5
  98. package/src/main/__tests__/scheduler-boot-orphans.test.cjs +78 -97
  99. package/src/main/__tests__/scheduler-default-eligible-heal.test.cjs +161 -0
  100. package/src/main/__tests__/scheduler-dispatch-loop.test.cjs +58 -0
  101. package/src/main/__tests__/scheduler-epic-digest.test.cjs +3 -5
  102. package/src/main/__tests__/scheduler-force-tick-outcome.test.cjs +2 -2
  103. package/src/main/__tests__/scheduler-gate-shadow.test.cjs +119 -0
  104. package/src/main/__tests__/scheduler-guard-verdict-autoresolve.test.cjs +46 -0
  105. package/src/main/__tests__/scheduler-heartbeat-payload.test.cjs +80 -0
  106. package/src/main/__tests__/scheduler-inplace-salvage.test.cjs +25 -18
  107. package/src/main/__tests__/scheduler-investigation-prompt.test.cjs +4 -4
  108. package/src/main/__tests__/scheduler-launch-failure.test.cjs +3 -5
  109. package/src/main/__tests__/scheduler-looks-done.test.cjs +26 -7
  110. package/src/main/__tests__/scheduler-manual-pause.test.cjs +118 -0
  111. package/src/main/__tests__/scheduler-meta-code-sha.test.cjs +26 -3
  112. package/src/main/__tests__/scheduler-prd-missing-skip.test.cjs +17 -2
  113. package/src/main/__tests__/scheduler-prd-persona-spawn.test.cjs +3 -5
  114. package/src/main/__tests__/scheduler-quiet-machine-lease.test.cjs +41 -6
  115. package/src/main/__tests__/scheduler-rate-limit-pause.test.cjs +62 -6
  116. package/src/main/__tests__/scheduler-rate-limit-spin-guard.test.cjs +3 -5
  117. package/src/main/__tests__/scheduler-reap-dead-running-jobs.test.cjs +23 -4
  118. package/src/main/__tests__/scheduler-reconcile-cwd-preserve.test.cjs +100 -0
  119. package/src/main/__tests__/scheduler-reconcile-invalid-repair.test.cjs +3 -3
  120. package/src/main/__tests__/scheduler-reconcile-quarantine.test.cjs +4 -4
  121. package/src/main/__tests__/scheduler-shard-quarantine.test.cjs +110 -0
  122. package/src/main/__tests__/scheduler-shared-tree-guard.test.cjs +81 -1
  123. package/src/main/__tests__/scheduler-starve-escalation.test.cjs +4 -4
  124. package/src/main/__tests__/scheduler-stranded-autofix-park.test.cjs +245 -0
  125. package/src/main/__tests__/scheduler-supervisor-record.test.cjs +81 -0
  126. package/src/main/__tests__/scheduler-tick-cancel-token.test.cjs +2 -2
  127. package/src/main/__tests__/scheduler-tick-wedge.test.cjs +172 -0
  128. package/src/main/__tests__/scheduler-transient-failure.test.cjs +2 -2
  129. package/src/main/__tests__/scheduler-worktree-cap-defer.test.cjs +37 -11
  130. package/src/main/__tests__/scheduler-worktree-exec-cwd.test.cjs +3 -5
  131. package/src/main/__tests__/usageSingleFlight.test.cjs +157 -0
  132. package/src/main/__tests__/workTypeLibrary.test.cjs +1 -1
  133. package/src/main/bilkoHost.cjs +16 -7
  134. package/src/main/build-info.json +8 -0
  135. package/src/main/chatRunner.cjs +4 -2
  136. package/src/main/config.cjs +2 -3
  137. package/src/main/docEdit.cjs +4 -2
  138. package/src/main/health.cjs +267 -51
  139. package/src/main/heapSnapshot.cjs +2 -2
  140. package/src/main/historyAggregator.cjs +1 -1
  141. package/src/main/index.cjs +61 -10
  142. package/src/main/ipcSchemas.cjs +6 -17
  143. package/src/main/lib/__tests__/auditLog.test.cjs +38 -0
  144. package/src/main/lib/__tests__/buildIdentity.test.cjs +121 -0
  145. package/src/main/lib/__tests__/cwdClassify.test.cjs +111 -0
  146. package/src/main/lib/__tests__/definitionOfDoneSequence.test.cjs +95 -0
  147. package/src/main/lib/__tests__/delegationReadiness.test.cjs +1 -1
  148. package/src/main/lib/__tests__/dispatchLoop.test.cjs +63 -0
  149. package/src/main/lib/__tests__/gateFixtures.json +20 -0
  150. package/src/main/lib/__tests__/gitWorktree.test.cjs +8 -1
  151. package/src/main/lib/__tests__/instanceLock.test.cjs +93 -7
  152. package/src/main/lib/__tests__/jobSupervisorRecord.test.cjs +78 -0
  153. package/src/main/lib/__tests__/jobWorktreeBootLive.test.cjs +11 -0
  154. package/src/main/lib/__tests__/localAdminHttp.test.cjs +1 -1
  155. package/src/main/lib/__tests__/mcpToolCatalog.test.cjs +6 -1
  156. package/src/main/lib/__tests__/procIdentity.test.cjs +119 -0
  157. package/src/main/lib/__tests__/procName.test.cjs +92 -0
  158. package/src/main/lib/__tests__/queueStoreMachineStateRecovery.test.cjs +67 -0
  159. package/src/main/lib/__tests__/schedulerMcpServerHelp.test.cjs +6 -7
  160. package/src/main/lib/__tests__/schedulerMcpServerProjectHome.test.cjs +37 -204
  161. package/src/main/lib/__tests__/schedulerPaths.test.cjs +226 -0
  162. package/src/main/lib/__tests__/schedulerPathsWorktree.test.cjs +94 -0
  163. package/src/main/lib/__tests__/schedulerRuntimeState.test.cjs +56 -0
  164. package/src/main/lib/__tests__/sessionSlots.test.cjs +45 -0
  165. package/src/main/lib/__tests__/telemetryBacklog.test.cjs +1 -1
  166. package/src/main/lib/__tests__/upgradeDrain.test.cjs +130 -0
  167. package/src/main/lib/__tests__/usageCircuit.test.cjs +61 -0
  168. package/src/main/lib/__tests__/watchdog-helpers.test.cjs +63 -0
  169. package/src/main/lib/__tests__/watchdog-relaunch.test.cjs +73 -0
  170. package/src/main/lib/activeIndexRebuild.cjs +1 -3
  171. package/src/main/lib/activeSessions.cjs +20 -88
  172. package/src/main/lib/adoptedRunSupervisor.cjs +136 -0
  173. package/src/main/lib/agentModelResolve.cjs +33 -1
  174. package/src/main/lib/agentPersonaSchema.cjs +2 -2
  175. package/src/main/lib/auditLog.cjs +30 -5
  176. package/src/main/lib/buildIdentity.cjs +113 -0
  177. package/src/main/lib/classifyPromptTicket.cjs +3 -2
  178. package/src/main/lib/claudeBin.cjs +37 -2
  179. package/src/main/lib/cleanEnv.cjs +27 -1
  180. package/src/main/lib/credentials.cjs +4 -2
  181. package/src/main/lib/cwdClassify.cjs +185 -0
  182. package/src/main/lib/definitionOfDone.cjs +296 -52
  183. package/src/main/lib/dispatchLoop.cjs +40 -0
  184. package/src/main/lib/effectiveModelInfo.cjs +9 -10
  185. package/src/main/lib/ephemeralCwd.cjs +7 -28
  186. package/src/main/lib/gitWorktree.cjs +95 -8
  187. package/src/main/lib/guardShims.cjs +3 -3
  188. package/src/main/lib/historyRollup.cjs +6 -7
  189. package/src/main/lib/instanceLock.cjs +32 -5
  190. package/src/main/lib/jobSupervisorRecord.cjs +147 -0
  191. package/src/main/lib/jobWorktreeBootLive.cjs +9 -5
  192. package/src/main/lib/localAdminHttp.cjs +9 -27
  193. package/src/main/lib/mcpToolCatalog.cjs +29 -77
  194. package/src/main/lib/opsOwnership.cjs +27 -19
  195. package/src/main/lib/prdAuthoringSeed.cjs +36 -0
  196. package/src/main/lib/prdLocations.cjs +48 -1
  197. package/src/main/lib/procIdentity.cjs +126 -0
  198. package/src/main/lib/procName.cjs +98 -0
  199. package/src/main/lib/projectHomeAdminRoutes.cjs +56 -327
  200. package/src/main/lib/queueHistory.cjs +8 -7
  201. package/src/main/lib/queueStore.cjs +57 -37
  202. package/src/main/lib/quietMachineLease.cjs +19 -2
  203. package/src/main/lib/reservationExpiry.cjs +30 -0
  204. package/src/main/lib/runClaudeP.cjs +4 -2
  205. package/src/main/lib/runLogRetention.cjs +3 -2
  206. package/src/main/lib/scheduleJobSchema.cjs +2 -2
  207. package/src/main/lib/scheduleJobTransitions.cjs +29 -2
  208. package/src/main/lib/schedulerBatch.cjs +27 -2
  209. package/src/main/lib/schedulerPaths.cjs +175 -0
  210. package/src/main/lib/schedulerRuntimeState.cjs +59 -0
  211. package/src/main/lib/sessionSlots.cjs +47 -9
  212. package/src/main/lib/smProcNames.cjs +51 -0
  213. package/src/main/lib/upgradeDrain.cjs +188 -0
  214. package/src/main/lib/usageCircuit.cjs +53 -6
  215. package/src/main/lib/watchdogHelpers.cjs +70 -37
  216. package/src/main/lib/withTimeout.cjs +33 -0
  217. package/src/main/mcpStatus.cjs +4 -2
  218. package/src/main/pluginInstall.cjs +6 -2
  219. package/src/main/projectPages.cjs +41 -145
  220. package/src/main/pty.cjs +8 -1
  221. package/src/main/queueOps.cjs +10 -10
  222. package/src/main/runVerify.cjs +69 -3
  223. package/src/main/scheduler.cjs +1598 -381
  224. package/src/main/seedAgentPersonas.cjs +1 -1
  225. package/src/main/seedDevPlugin.cjs +1 -1
  226. package/src/main/seedSchedulerMcp.cjs +7 -6
  227. package/src/main/seedStatus.cjs +1 -1
  228. package/src/main/supervisor.cjs +5 -3
  229. package/src/main/usage.cjs +126 -62
  230. package/src/preload/api.d.ts +18 -64
  231. package/src/preload/index.cjs +2 -4
  232. package/src/seed/agents/project-home-builder.md +31 -48
  233. package/screenshots/.gitkeep +0 -0
  234. package/screenshots/README-screenshots.md +0 -13
  235. package/src/main/lib/projectPageSummarySchema.cjs +0 -181
  236. package/src/main/teams.cjs +0 -95
  237. package/src/main/templates/project-pages-catalog.json +0 -741
  238. package/src/main/templates/project-pages-default-home.html +0 -123
  239. package/src/main/templates/project-pages-pipeline.md +0 -417
  240. package/src/seed/prompts/code-review/ac-coverage-check.md +0 -8
  241. package/src/seed/prompts/code-review/correctness-only.md +0 -8
  242. package/src/seed/prompts/code-review/full-spectrum-high.md +0 -8
  243. package/src/seed/prompts/code-review/hallucination-check.md +0 -8
  244. package/src/seed/prompts/code-review/public-api-compat.md +0 -8
  245. package/src/seed/prompts/code-review/readability-naming.md +0 -8
  246. package/src/seed/prompts/debugging/bug-as-failing-test.md +0 -8
  247. package/src/seed/prompts/debugging/git-bisect-regression.md +0 -8
  248. package/src/seed/prompts/debugging/instrument-intermittent-bug.md +0 -8
  249. package/src/seed/prompts/debugging/localize-pipeline-failure.md +0 -8
  250. package/src/seed/prompts/debugging/reproduce-then-diagnose.md +0 -8
  251. package/src/seed/prompts/documentation/adr-from-change.md +0 -8
  252. package/src/seed/prompts/documentation/module-readme.md +0 -8
  253. package/src/seed/prompts/documentation/onboarding-plan.md +0 -8
  254. package/src/seed/prompts/documentation/refresh-claude-md.md +0 -8
  255. package/src/seed/prompts/documentation/tsdoc-public-exports.md +0 -8
  256. package/src/seed/prompts/git-pr/conventional-commit.md +0 -8
  257. package/src/seed/prompts/git-pr/draft-pr-title-body.md +0 -8
  258. package/src/seed/prompts/git-pr/pre-commit-safety-sweep.md +0 -8
  259. package/src/seed/prompts/git-pr/release-notes-block.md +0 -8
  260. package/src/seed/prompts/git-pr/split-large-pr.md +0 -8
  261. package/src/seed/prompts/performance/bundle-startup-audit.md +0 -8
  262. package/src/seed/prompts/performance/complexity-audit.md +0 -8
  263. package/src/seed/prompts/performance/cpu-profile-hot-path.md +0 -8
  264. package/src/seed/prompts/performance/db-query-plan-review.md +0 -8
  265. package/src/seed/prompts/performance/memory-leak-hunt.md +0 -8
  266. package/src/seed/prompts/qa/api-contract-tests.md +0 -8
  267. package/src/seed/prompts/qa/e2e-critical-path.md +0 -8
  268. package/src/seed/prompts/qa/failing-test-for-bug.md +0 -8
  269. package/src/seed/prompts/qa/find-missing-test-coverage.md +0 -8
  270. package/src/seed/prompts/qa/stabilize-flaky-test.md +0 -8
  271. package/src/seed/prompts/qa/tdd-red-first.md +0 -8
  272. package/src/seed/prompts/qa/visual-regression-review.md +0 -8
  273. package/src/seed/prompts/qa/wcag-axe-scan.md +0 -8
  274. package/src/seed/prompts/refactoring/dead-code-sweep.md +0 -8
  275. package/src/seed/prompts/refactoring/extract-duplicated-pattern.md +0 -8
  276. package/src/seed/prompts/refactoring/modernize-legacy-file.md +0 -8
  277. package/src/seed/prompts/refactoring/reduce-cyclomatic-complexity.md +0 -8
  278. package/src/seed/prompts/refactoring/tighten-module-boundaries.md +0 -8
  279. package/src/seed/prompts/security/authz-audit.md +0 -8
  280. package/src/seed/prompts/security/crypto-correctness.md +0 -8
  281. package/src/seed/prompts/security/cwe-top-25-hunt.md +0 -8
  282. package/src/seed/prompts/security/dependency-audit.md +0 -8
  283. package/src/seed/prompts/security/ipc-boundary-hardening.md +0 -8
  284. package/src/seed/prompts/security/owasp-top-10-staged-diff.md +0 -8
  285. package/src/seed/prompts/security/secret-credential-scan.md +0 -8
  286. package/web/README.md +0 -41
  287. package/web/project-pages/logic/dist/logic.cjs +0 -4709
  288. package/web/project-pages/render.cjs +0 -70
  289. package/web/project-pages/renderer/dist/renderer.cjs +0 -18900
  290. package/web/project-pages/validate-summary.cjs +0 -62
@@ -1,8 +0,0 @@
1
- ---
2
- id: debugging/reproduce-then-diagnose
3
- title: Reproduce-then-diagnose this bug
4
- category: Debugging
5
- sendMode: paste
6
- description: Engages systematic-debugging skill — reliable repro first, then hypothesis-test, then fix.
7
- ---
8
- Engage the `systematic-debugging` skill on this bug: [paste symptom, stack trace, or repro steps]. Phase 1: get a reliable reproduction — the bug must trigger on demand, not "sometimes." Capture the minimum input that triggers it. Phase 2: state your hypothesis in one sentence and describe the observation that would refute it. Phase 3: run the observation. Phase 4: only after the hypothesis survives, propose a fix. Do not patch code until phase 4. If three hypotheses fail, stop and re-examine your assumptions from scratch.
@@ -1,8 +0,0 @@
1
- ---
2
- id: documentation/adr-from-change
3
- title: Architecture decision record from a recent change
4
- category: Documentation
5
- sendMode: paste
6
- description: Standard ADR (Context / Decision / Consequences) for a commit or PR; 200-400 words.
7
- ---
8
- Write an ADR (Architecture Decision Record) for the change in [commit hash / PR / file]. Use the standard ADR shape: Title, Status (Accepted), Context (what was the problem and the forces in play), Decision (what we chose and why, including the load-bearing constraints), Consequences (what gets easier, what gets harder, what we are now committed to). Cite specific file paths. Length target: 200-400 words. Place it in `docs/adr/NNNN-kebab-slug.md`.
@@ -1,8 +0,0 @@
1
- ---
2
- id: documentation/module-readme
3
- title: Write the README for this module
4
- category: Documentation
5
- sendMode: paste
6
- description: What+why, install snippet, 3 usage examples, full API table, limitations — under 300 lines.
7
- ---
8
- Generate a README for this module: [path]. Sections (in this order): one-paragraph what+why, install/import snippet, three usage examples covering the most common cases, the full public API as a table (name, signature, one-line description), configuration options if any, known limitations, and a link to deeper docs if they exist. Read the module to derive everything — do not invent features. Keep it under 300 lines.
@@ -1,8 +0,0 @@
1
- ---
2
- id: documentation/onboarding-plan
3
- title: Onboarding plan for a new engineer
4
- category: Documentation
5
- sendMode: paste
6
- description: 30-min onboarding doc — load-bearing files, canonical commands, 3 non-obvious conventions, 3 footguns.
7
- ---
8
- A new engineer is joining this project tomorrow. Read the repo and produce a 30-minute onboarding doc: (1) what the system does in two paragraphs, (2) the 5-10 load-bearing files they must read first with one sentence each explaining why, (3) the canonical commands (build, test, dev, lint, typecheck) with one-line descriptions, (4) the 3 conventions that aren't obvious from the code (e.g., naming, error handling, IPC patterns), (5) the 3 footguns to avoid. No fluff.
@@ -1,8 +0,0 @@
1
- ---
2
- id: documentation/refresh-claude-md
3
- title: Refresh CLAUDE.md against current repo state
4
- category: Documentation
5
- sendMode: auto-fire
6
- description: Updates commands, paths, conventions, architecture notes; splits files past ~300 lines.
7
- ---
8
- Invoke the `refresh-claude-md` skill. Diff the current `CLAUDE.md` against the actual state of the repo: read `package.json` scripts, look for new top-level directories, check `git log --since="30 days ago"` for architectural shifts, scan for new tooling configs (eslint, vitest, playwright, etc.). Update commands, file paths, conventions, and architecture notes that have drifted. Split the file if it has grown past ~300 lines. Do not add filler; remove anything stale.
@@ -1,8 +0,0 @@
1
- ---
2
- id: documentation/tsdoc-public-exports
3
- title: TSDoc/JSDoc pass on public exports
4
- category: Documentation
5
- sendMode: auto-fire
6
- description: @param + @returns + @throws + @example for every exported symbol in src/.
7
- ---
8
- For every exported function, class, type, and constant in the `src/` public surface, add or update TSDoc comments. Required tags: one-line summary, `@param` per parameter with type semantics (not just "the name"), `@returns` describing the return shape including null/undefined cases, `@throws` for documented exceptions, `@example` for non-trivial APIs. Do NOT document trivial getters, internal helpers, or anything not exported. Match the project's existing TSDoc style if one exists.
@@ -1,8 +0,0 @@
1
- ---
2
- id: git-pr/conventional-commit
3
- title: Write a Conventional Commit message for the staged diff
4
- category: Git / PR
5
- sendMode: auto-fire
6
- description: Picks correct type + scope from the diff; rejects multi-type diffs as a signal to split.
7
- ---
8
- Read the staged diff. Write a single Conventional Commit message with: type from {feat, fix, docs, style, refactor, perf, test, build, ci, chore}, optional scope in parens (the affected module or area), `!` before the colon if there is a breaking change, a ≤72-char subject in imperative mood, a blank line, and a body explaining the WHY (not the what — the diff shows the what). If the diff spans multiple types, that is a signal to split — tell me to split it rather than picking a wrong type.
@@ -1,8 +0,0 @@
1
- ---
2
- id: git-pr/draft-pr-title-body
3
- title: Draft a PR title + description from the branch
4
- category: Git / PR
5
- sendMode: auto-fire
6
- description: Reads main..HEAD; produces title + summary bullets + verifiable test plan checklist + risks.
7
- ---
8
- Run `git log main..HEAD` and `git diff main...HEAD`. Draft: (1) a Conventional-Commits-shaped PR title under 70 chars, (2) a Summary section with 2-4 bullets explaining what changed and why, (3) a Test plan section as a markdown checklist of items a reviewer can actually verify, (4) a "Risks / rollback" section if the diff touches anything load-bearing. Do not invent test coverage that does not exist — only list tests that are actually in the diff.
@@ -1,8 +0,0 @@
1
- ---
2
- id: git-pr/pre-commit-safety-sweep
3
- title: Pre-commit safety sweep
4
- category: Git / PR
5
- sendMode: auto-fire
6
- description: Checks staged diff for secrets, debug code, commented-out blocks, unrelated changes — surface only, no auto-strip.
7
- ---
8
- Before committing, sweep the staged diff for: secrets (API keys, tokens, passwords, `.env` content), unrelated changes that should be in a different commit, debug code (`console.log`, `print`, `debugger`, `dbg!`), commented-out code blocks, TODO/FIXME added without an issue link, and any file over ~500 lines that should be split. Report each finding with `file:line — category — action (remove / move / keep with justification)`. Do not auto-strip — surface them and let me decide.
@@ -1,8 +0,0 @@
1
- ---
2
- id: git-pr/release-notes-block
3
- title: Generate a release-notes block from commits
4
- category: Git / PR
5
- sendMode: auto-fire
6
- description: Groups commits since last tag by Conventional Commits type; rewrites subjects in user-facing past tense.
7
- ---
8
- Read `git log` since the previous tag. Group commits by Conventional-Commits type into sections: Features (feat), Fixes (fix), Performance (perf), Refactors (refactor), Docs (docs), Tests (test), Build/CI (build, ci, chore). One bullet per commit, rewritten from imperative-mood subject into past-tense user-facing language. Surface BREAKING CHANGES at the top in a dedicated section. Only emit emojis if the project's previous releases used them — otherwise plain section headers.
@@ -1,8 +0,0 @@
1
- ---
2
- id: git-pr/split-large-pr
3
- title: Split a too-large PR into reviewable chunks
4
- category: Git / PR
5
- sendMode: paste
6
- description: Proposes 2-5 sequential PRs with scope, dependencies, and the git ops to create each branch.
7
- ---
8
- This branch is too big to review well. Read `git diff main...HEAD` and propose a split into 2-5 sequential PRs, each independently reviewable and independently shippable. For each proposed PR: title, scope (files), dependencies on prior PRs in the chain, and a one-sentence rationale. Then walk me through the actual git operations (cherry-pick or interactive-rebase plan) to create each branch. Do not execute destructive git commands — just produce the plan.
@@ -1,8 +0,0 @@
1
- ---
2
- id: performance/bundle-startup-audit
3
- title: Bundle size / startup time audit
4
- category: Performance
5
- sendMode: auto-fire
6
- description: Lists top 20 modules by size, duplicated deps, dev-only leaks, and synchronous imports over 50KB.
7
- ---
8
- Analyze the production bundle. Report: total gzipped size, top 20 modules by size with their import paths, any duplicated dependency versions, any dev-only dependency leaking into the prod bundle, and any synchronously-imported module over 50 KB that could be lazy-loaded. Suggest concrete `import()` boundaries and tree-shaking opportunities. Cite the entry file:line that pulls each heavy module.
@@ -1,8 +0,0 @@
1
- ---
2
- id: performance/complexity-audit
3
- title: Complexity audit on hot data structures
4
- category: Performance
5
- sendMode: paste
6
- description: Flags every loop over user-scaled data with big-O analysis; proposes O(n) rewrites or justifies n.
7
- ---
8
- Identify every loop in this module that iterates over user-scaled data (collections whose size grows with user count, request count, or document size). For each, state the time and space complexity in big-O, flag any nested loop over user-scaled data as a complexity hazard, and propose either an O(n) rewrite, an index/Map lookup, or a justification that n is provably bounded. Do not touch loops over constant-sized data (e.g., HTTP methods, weekdays).
@@ -1,8 +0,0 @@
1
- ---
2
- id: performance/cpu-profile-hot-path
3
- title: Find the real hot path with a CPU profile
4
- category: Performance
5
- sendMode: paste
6
- description: Runs a sampling profiler, builds a flame graph, lists top 5 self-time + top 5 inclusive-time functions.
7
- ---
8
- Hand off to the `perf-profiler` subagent. Run the app under a sampling CPU profiler (`node --cpu-prof`, `0x`, or `clinic flame` depending on stack) while reproducing the slow scenario I describe: [scenario]. Produce a flame graph and report the top 5 functions by self-time and the top 5 by inclusive time. For each, cite file:line, explain why it is hot (algorithmic, I/O, serialization, etc.), and propose a fix. Do not optimize anything that is not in the top 10 — that is premature.
@@ -1,8 +0,0 @@
1
- ---
2
- id: performance/db-query-plan-review
3
- title: Database query plan review
4
- category: Performance
5
- sendMode: paste
6
- description: Runs EXPLAIN ANALYZE on hot-path queries; flags missing indexes, N+1, and over-fetching.
7
- ---
8
- Find every SQL query or ORM call on the hot path I describe: [path]. For each, run `EXPLAIN ANALYZE` (or the ORM equivalent) and report: rows scanned vs rows returned, missing indexes (sequential scans on large tables), N+1 patterns where one query in a loop should be a single join or batched lookup, and queries returning more columns than the caller uses. Output as a table sorted by estimated cost.
@@ -1,8 +0,0 @@
1
- ---
2
- id: performance/memory-leak-hunt
3
- title: Memory leak hunt
4
- category: Performance
5
- sendMode: paste
6
- description: Snapshot-diffs after 100 iterations to find retained-size growers; pins fix with a regression test.
7
- ---
8
- Run the app, take a heap snapshot, exercise the suspected leak path 100 times, take a second snapshot, diff them. Report retained-size growers: type, count delta, top retainers in the dominator tree. For each candidate leak cite the file:line that allocates and the file:line that fails to release (missing `removeListener`, unbounded cache, closure capturing a large object, timer not cleared, etc.). Propose a fix and a regression test that snapshot-diffs over N iterations and asserts bounded growth.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/api-contract-tests
3
- title: API contract test suite
4
- category: QA
5
- sendMode: paste
6
- description: Exercises happy path, 4xx, auth boundaries, rate limits, idempotency, and pagination for each endpoint.
7
- ---
8
- Engage the `playwright-api-testing` skill. For each public endpoint, write a request-context test that exercises: 200 happy path with schema validation, 4xx invalid input, 401/403 auth boundaries, 429 rate limit (if applicable), idempotency key replay returns identical body, and pagination correctness. Mock no internals — hit the real test server. Validate response bodies against the OpenAPI schema if one exists; otherwise pin the shape with a snapshot.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/e2e-critical-path
3
- title: E2E test for the critical user path
4
- category: QA
5
- sendMode: paste
6
- description: Writes a Playwright test using role/label locators with web-first assertions and no manual sleeps.
7
- ---
8
- Use the `playwright-e2e` skill to write a Playwright test for this user flow: [describe path]. Use role/label locators (`getByRole`, `getByLabel`, `getByTestId`) — no XPath, no long CSS chains. Rely on Playwright's auto-wait; do not insert `waitForTimeout` or manual sleeps. Use web-first assertions (`expect(locator).toBeVisible()`, etc.) so retries happen automatically. Each test must own its data setup and teardown — no shared state across tests.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/failing-test-for-bug
3
- title: Generate a failing test that reproduces this bug
4
- category: QA
5
- sendMode: paste
6
- description: Pins the exact wrong behavior in a test before any fix, using the project's existing test runner.
7
- ---
8
- I have a bug: [describe symptom + steps to reproduce]. Before any fix, write a failing test that pins the exact wrong behavior. The test must fail today on `main` and pass once the bug is fixed. Use the project's existing test runner and the same file/folder convention as the nearest sibling tests. Run the test and paste the failure output so I can verify it reproduces.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/find-missing-test-coverage
3
- title: Find missing test coverage on the diff
4
- category: QA
5
- sendMode: auto-fire
6
- description: Lists untested error paths, branches, and public APIs in the staged diff, ranked by risk.
7
- ---
8
- Look at the staged diff. For every new or changed function, branch, and error path, check whether at least one test exercises it. List untested behaviors as a checklist with `file:line — behavior — suggested test name`. Prioritize: untested error paths and untested public API > untested branches > untested happy paths. Do not propose tests for trivial getters or for code that is purely delegating.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/stabilize-flaky-test
3
- title: Convert a Playwright test failure into a stable fix
4
- category: QA
5
- sendMode: paste
6
- description: Diagnoses a flaky test as real-bug / locator-timing / test-data-leak, then patches and re-runs 10x.
7
- ---
8
- This Playwright test is flaky / failing: [paste test name or path]. Use the `playwright-debug` skill — pull the trace, identify whether the failure is (a) a real bug, (b) a timing/locator issue, or (c) a test-data leak from another test. For (a) write a smaller reproducer and patch the app; for (b) replace the locator with a role/label/testid locator and rely on auto-wait; for (c) isolate the test's setup/teardown. Re-run 10 times in headed mode to confirm stability.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/tdd-red-first
3
- title: TDD this feature, RED first
4
- category: QA
5
- sendMode: paste
6
- description: Forces the RED-GREEN-REFACTOR loop; stops after a confirmed failing test before any implementation.
7
- ---
8
- Engage the `test-driven-development` skill. We are adding the following feature: [describe behavior here]. Start in RED: write the smallest failing test that captures one observable behavior, run it, confirm it fails for the right reason (assertion failure, not setup error), and stop. Do not write implementation. Once I confirm RED, you will write the minimum implementation to reach GREEN, then refactor with the test still green. Never skip RED.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/visual-regression-review
3
- title: Visual regression baseline + diff review
4
- category: QA
5
- sendMode: auto-fire
6
- description: Refreshes screenshot baselines, classifies diffs as intentional / flake / real regression.
7
- ---
8
- Use the `playwright-visual-testing` skill. Capture or refresh `toHaveScreenshot()` baselines for the primary routes, then run the suite. For any diff, classify as: (1) intentional UI change — update baseline, (2) flake — mask the dynamic region or wait for stable font load, (3) real regression — leave failing and open an issue. Disable animations and wait for `networkidle` before capture. Do not blindly update all baselines on a diff.
@@ -1,8 +0,0 @@
1
- ---
2
- id: qa/wcag-axe-scan
3
- title: WCAG 2.2 accessibility scan with axe-core
4
- category: QA
5
- sendMode: auto-fire
6
- description: Runs axe-core against every route, reports violations by WCAG criterion at A/AA levels.
7
- ---
8
- Invoke the `playwright-accessibility` skill. Run an axe-core scan against every route in the app, configured for WCAG 2.0/2.1/2.2 levels A and AA. Report findings as a table: severity, WCAG criterion (e.g., 1.4.3 Contrast, 2.4.7 Focus Visible, 2.5.8 Target Size which is new in 2.2), selector, fix. For "incomplete" items where axe could not be certain, list them separately and propose a manual check. Skip AAA unless the project explicitly targets it.
@@ -1,8 +0,0 @@
1
- ---
2
- id: refactoring/dead-code-sweep
3
- title: Dead code sweep
4
- category: Refactoring
5
- sendMode: auto-fire
6
- description: Audits for unused exports/files/deps; verifies absence of dynamic references before proposing deletes.
7
- ---
8
- Audit the repo for unused exports, unused functions, unused files, unused dependencies, and unreachable branches. Use static analysis (`ts-prune`, `knip`, `depcheck`, or grep + import-graph). For each finding cite file:line and confirm it is genuinely unused by checking for: dynamic imports, string-based references, framework-magic auto-discovery, and re-exports through barrel files. Output a delete-list, then on my go-ahead remove them in a single commit titled `chore: remove dead code`.
@@ -1,8 +0,0 @@
1
- ---
2
- id: refactoring/extract-duplicated-pattern
3
- title: Extract a duplicated pattern into one place
4
- category: Refactoring
5
- sendMode: paste
6
- description: Consolidates 3+ implementations of the same idea; no speculative generality beyond current callers.
7
- ---
8
- Three or more sites in this repo implement [pattern, e.g., "is path inside $HOME", "atomic file write", "exponential backoff retry"]. Find every implementation with grep, compare them, identify the union of behaviors needed, and consolidate to one canonical implementation in a sensible location. Migrate all callers. Keep test coverage equivalent or better. Do not introduce a generic abstraction beyond what the existing call sites need — concrete duplication is fine; speculative generality is not.
@@ -1,8 +0,0 @@
1
- ---
2
- id: refactoring/modernize-legacy-file
3
- title: Modernize a legacy file without changing behavior
4
- category: Refactoring
5
- sendMode: paste
6
- description: callbacks→async/await, var→const, magic numbers, narrowed types — observable behavior unchanged.
7
- ---
8
- Refactor this file to current project conventions: [file path]. Constraints: do NOT change observable behavior, do NOT change the public API, do NOT change the test assertions. You MAY: replace callbacks with async/await, replace `var` with `const`/`let`, replace string concatenation with template literals, extract magic numbers, narrow types, replace try/catch with explicit error returns where the project does that elsewhere. After each commit, run the full test suite and confirm green before continuing.
@@ -1,8 +0,0 @@
1
- ---
2
- id: refactoring/reduce-cyclomatic-complexity
3
- title: Reduce cyclomatic complexity on a hot function
4
- category: Refactoring
5
- sendMode: paste
6
- description: Early returns, guard clauses, small extractions — no new abstractions; preserves signature + tests.
7
- ---
8
- Hand off to the `refactorer` subagent. This function has too many nested conditionals: [name file:function]. Reduce cyclomatic complexity using early returns, guard clauses, lookup tables, and small extracted helpers — no new abstractions, no design patterns unless the situation actually calls for one. Keep the public signature identical and keep the existing test assertions passing unchanged. Report before/after complexity and line count.
@@ -1,8 +0,0 @@
1
- ---
2
- id: refactoring/tighten-module-boundaries
3
- title: Tighten module boundaries
4
- category: Refactoring
5
- sendMode: paste
6
- description: Demotes single-use exports to module-private; moves test-only helpers to __test__.
7
- ---
8
- This module's public surface has grown organically: [name the module]. List every exported symbol. For each, classify: (a) used by 3+ external callers — keep public, (b) used by 1-2 external callers — consider inlining at the call site, (c) only used inside this module — make it module-private, (d) only used in tests — move to a `__test__` helper. Apply the demotions. Re-run typecheck and tests after each commit.
@@ -1,8 +0,0 @@
1
- ---
2
- id: security/authz-audit
3
- title: Auth + authorization audit
4
- category: Security
5
- sendMode: paste
6
- description: Audits every authenticated route/middleware/IPC handler for broken access control (OWASP A01) and IDOR.
7
- ---
8
- Audit every authenticated route, middleware, and IPC handler in this repo for broken access control (OWASP A01) and identification/authentication failures (OWASP A07). For each endpoint or handler, state: who can call it, what authz check protects it, whether that check happens before any side effect, and whether the user-supplied identifier is ever trusted without rebinding to the session subject. Flag any TOCTOU windows, missing authorization on object IDs (IDOR), or auth checks that happen after a database write.
@@ -1,8 +0,0 @@
1
- ---
2
- id: security/crypto-correctness
3
- title: Crypto + secret-handling correctness pass
4
- category: Security
5
- sendMode: paste
6
- description: Reviews crypto primitives, password hashing, JWT signing, and TLS config against OWASP A02.
7
- ---
8
- Find every use of crypto primitives, password hashing, JWT signing/verification, and TLS configuration in this repo. Check against OWASP A02 Cryptographic Failures: no MD5/SHA-1 for security, no ECB mode, no PBKDF2 with iteration counts under 600k, bcrypt cost factor ≥ 12, argon2id preferred over bcrypt for new code, JWTs verified with the algorithm pinned (no `alg: none` accepted), nonces never reused with AES-GCM, randomness from `crypto.randomBytes` not `Math.random`. Report file:line + category + suggested fix.
@@ -1,8 +0,0 @@
1
- ---
2
- id: security/cwe-top-25-hunt
3
- title: Hunt for the CWE Top 25 in this directory
4
- category: Security
5
- sendMode: paste
6
- description: Sweeps the open directory against the 2024 CWE Top 25; adversarial self-verification before reporting.
7
- ---
8
- Hand this off to the `security-auditor` subagent. Sweep the directory I have open against the 2024 CWE Top 25 — prioritize CWE-79 (XSS), CWE-787 (out-of-bounds write), CWE-89 (SQL injection), CWE-352 (CSRF), CWE-22 (path traversal), CWE-78 (OS command injection), CWE-94 (code injection), CWE-918 (SSRF), and CWE-77 (command injection). For each hit, cite file:line, name the CWE, show a minimal reproducer or the exact attack input, and propose a patch. Do an adversarial verification pass on your own findings before reporting — drop any you cannot defend.
@@ -1,8 +0,0 @@
1
- ---
2
- id: security/dependency-audit
3
- title: Dependency audit with exploitability triage
4
- category: Security
5
- sendMode: auto-fire
6
- description: Runs npm audit and triages each advisory by whether the vulnerable path is actually reachable here.
7
- ---
8
- Run the `dependency-auditor` subagent. Execute `npm audit --json` (or the equivalent for this stack), then for every high/critical advisory determine whether the vulnerable code path is actually reachable from this application's entrypoints — most transitive advisories are not exploitable here. Group output as: (1) exploitable + needs immediate patch, (2) exploitable but mitigated by configuration, (3) not reachable, low priority, (4) needs human investigation. Cite the advisory ID, the dependent path (`npm ls`), and the proposed remediation (upgrade, override, or replace).
@@ -1,8 +0,0 @@
1
- ---
2
- id: security/ipc-boundary-hardening
3
- title: IPC / cross-process boundary hardening
4
- category: Security
5
- sendMode: paste
6
- description: Audits every IPC handler for schema validation, path allowlists, URL scheme checks, and shell-safe argv.
7
- ---
8
- Audit every IPC handler, message-port listener, and main-to-renderer boundary in this repo. For each handler, verify: payload is validated by a schema before use; file paths are validated against an allowlist of roots (no `..` escapes, no symlink follows into denied dirs); URLs are scheme-checked before fetch; shell commands never pass user input through `shell: true`. Output a checklist per handler with PASS/FAIL/UNCLEAR and a one-line patch suggestion for each FAIL.
@@ -1,8 +0,0 @@
1
- ---
2
- id: security/owasp-top-10-staged-diff
3
- title: Review staged diff for OWASP Top 10 issues
4
- category: Security
5
- sendMode: auto-fire
6
- description: Sweeps the staged diff against OWASP Top 10:2021 categories and reports findings as a severity table.
7
- ---
8
- Invoke the `security-review` skill on the currently staged diff. Walk OWASP Top 10:2021 in order (A01 Broken Access Control, A02 Cryptographic Failures, A03 Injection, A04 Insecure Design, A05 Security Misconfiguration, A06 Vulnerable Components, A07 Auth Failures, A08 Software & Data Integrity, A09 Logging Failures, A10 SSRF) and report findings as a markdown table with columns: severity (critical/high/medium/low), OWASP category, file:line, one-sentence description, suggested fix. Skip categories with no findings rather than padding. Do not include style or naming nits — security only.
@@ -1,8 +0,0 @@
1
- ---
2
- id: security/secret-credential-scan
3
- title: Secret + credential scan with remediation plan
4
- category: Security
5
- sendMode: auto-fire
6
- description: Greps the tree for hardcoded secrets, checks git history, and orders rotate → redact → gitignore.
7
- ---
8
- Grep the working tree for hardcoded secrets — API keys, OAuth tokens, JWTs, private keys, database URLs with embedded passwords, and webhook signing secrets. Use both pattern matching (e.g., `sk-`, `xoxb-`, `AKIA`, `-----BEGIN`, `Bearer `) and entropy heuristics on string literals over 20 chars. For each finding report file:line, the secret type, whether it is in tracked git history (`git log -S`), and a remediation order: rotate first, then redact, then add to `.gitignore`/secret manager. Do not print the secret value in clear — show a masked prefix only.
package/web/README.md DELETED
@@ -1,41 +0,0 @@
1
- # web/ — the WEB PRESENCE partition
2
-
3
- This directory collects every producer of content displayed on **bilko.run**. It is one of the
4
- four partitions described in
5
- [`session-manager-operations/architecture/project-partition.md`](../session-manager-operations/architecture/project-partition.md)
6
- — PRD 1184 made this partition PHYSICAL so the boundary is visible in the tree, not just on
7
- paper.
8
-
9
- **The user-facing pages themselves are NOT here.** They live in `~/Projects/Bilko`, a sibling
10
- repo. This directory only holds the tooling that *produces* what Bilko serves:
11
-
12
- - `project-pages/` — renders a project's Home/Marketing/Feature/Architecture/Brief pages from a
13
- saved component library + a summary JSON. Consumed by the `project-home-builder` agent
14
- persona and by `src/main/lib/projectHomeAdminRoutes.cjs` (an Electron IPC handler that stays
15
- in `src/main/` — it's DESKTOP HARNESS runtime that *calls* this WEB PRESENCE toolchain, not
16
- part of it).
17
- - `manual/` — builds and captures figures for the Field Manual, the paid product sold at
18
- bilko.run/manual. Source content lives in `session-manager-operations/manual/` (OPERATIONS
19
- STATE, unmoved); output lands in `~/Projects/Bilko/data/manual/releases/`.
20
- - `remote-app/` — the phone-remote PWA, the live source of the bundle published at
21
- `bilko.run/projects/session-manager/`.
22
-
23
- ## Staged for extraction
24
-
25
- This directory is staged for a future `git subtree split --prefix=web` into its own repo. That
26
- split has NOT happened yet — this PRD only collected the partition under one path so the split
27
- becomes mechanical later. Before actually running it, the human still needs to decide:
28
-
29
- - **How the extracted repo reaches `src/main`'s IPC handlers.** `projectHomeAdminRoutes.cjs`
30
- currently reads the `project-pages/renderer/dist/` and `project-pages/logic/dist/` bundles by
31
- a relative path assuming both live in the same repo checkout. Once `web/` is a separate repo,
32
- something has to publish those bundles somewhere the harness can still read them (a build
33
- step that vendors them back in, a package dependency, a fetched artifact — undecided).
34
- - **Who then owns the npm `files` array entries.** `package.json`'s `files` array currently
35
- lists `web/project-pages/render.cjs`, `web/project-pages/renderer/dist/`,
36
- `web/project-pages/logic/dist/`, and `web/project-pages/validate-summary.cjs` directly. If
37
- `web/` moves to its own repo, either the harness repo re-vendors those specific build outputs
38
- before packing, or the split repo publishes them and the harness repo depends on that package
39
- — undecided.
40
- - `web-remote/relay/` is dead code that was deliberately NOT moved here — it stays where it is
41
- pending a separate decision on whether to delete it.