create-hq 5.0.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 (310) hide show
  1. package/dist/deps.d.ts +4 -0
  2. package/dist/deps.d.ts.map +1 -0
  3. package/dist/deps.js +65 -0
  4. package/dist/deps.js.map +1 -0
  5. package/dist/git.d.ts +3 -0
  6. package/dist/git.d.ts.map +1 -0
  7. package/dist/git.js +19 -0
  8. package/dist/git.js.map +1 -0
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +23 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/scaffold.d.ts +8 -0
  14. package/dist/scaffold.d.ts.map +1 -0
  15. package/dist/scaffold.js +130 -0
  16. package/dist/scaffold.js.map +1 -0
  17. package/dist/ui.d.ts +7 -0
  18. package/dist/ui.d.ts.map +1 -0
  19. package/dist/ui.js +36 -0
  20. package/dist/ui.js.map +1 -0
  21. package/package.json +41 -0
  22. package/template/.claude/CLAUDE.md +202 -0
  23. package/template/.claude/commands/checkpoint.md +127 -0
  24. package/template/.claude/commands/cleanup.md +307 -0
  25. package/template/.claude/commands/execute-task.md +440 -0
  26. package/template/.claude/commands/exit-plan.md +41 -0
  27. package/template/.claude/commands/handoff.md +97 -0
  28. package/template/.claude/commands/learn.md +218 -0
  29. package/template/.claude/commands/metrics.md +118 -0
  30. package/template/.claude/commands/newworker.md +162 -0
  31. package/template/.claude/commands/nexttask.md +67 -0
  32. package/template/.claude/commands/prd.md +238 -0
  33. package/template/.claude/commands/reanchor.md +51 -0
  34. package/template/.claude/commands/remember.md +126 -0
  35. package/template/.claude/commands/run-project.md +348 -0
  36. package/template/.claude/commands/run.md +110 -0
  37. package/template/.claude/commands/search-reindex.md +62 -0
  38. package/template/.claude/commands/search.md +100 -0
  39. package/template/.claude/commands/setup.md +381 -0
  40. package/template/.claude/scripts/pure-ralph-loop.ps1 +312 -0
  41. package/template/.claude/scripts/pure-ralph-loop.sh +859 -0
  42. package/template/CHANGELOG.md +220 -0
  43. package/template/LICENSE +21 -0
  44. package/template/MIGRATION.md +259 -0
  45. package/template/README.md +368 -0
  46. package/template/data/journal/.gitkeep +0 -0
  47. package/template/docs/images/ascii-banner-options.md +122 -0
  48. package/template/docs/images/hq-banner.svg +105 -0
  49. package/template/knowledge/Ralph/01-overview.md +71 -0
  50. package/template/knowledge/Ralph/02-core-concepts.md +114 -0
  51. package/template/knowledge/Ralph/03-how-ralph-works.md +184 -0
  52. package/template/knowledge/Ralph/04-back-pressure.md +222 -0
  53. package/template/knowledge/Ralph/05-specifications.md +210 -0
  54. package/template/knowledge/Ralph/06-agents-md.md +222 -0
  55. package/template/knowledge/Ralph/07-implementation.md +316 -0
  56. package/template/knowledge/Ralph/08-economics.md +182 -0
  57. package/template/knowledge/Ralph/09-resources.md +145 -0
  58. package/template/knowledge/Ralph/10-claude-code-workflow.md +212 -0
  59. package/template/knowledge/Ralph/11-team-training-guide.md +383 -0
  60. package/template/knowledge/Ralph/README.md +40 -0
  61. package/template/knowledge/ai-security-framework/CONTRIBUTING.md +139 -0
  62. package/template/knowledge/ai-security-framework/GLOSSARY.md +176 -0
  63. package/template/knowledge/ai-security-framework/LICENSE +21 -0
  64. package/template/knowledge/ai-security-framework/QUICK-START.md +172 -0
  65. package/template/knowledge/ai-security-framework/README.md +232 -0
  66. package/template/knowledge/ai-security-framework/checklists/browser-security.md +301 -0
  67. package/template/knowledge/ai-security-framework/checklists/credential-isolation.md +322 -0
  68. package/template/knowledge/ai-security-framework/checklists/incident-response.md +288 -0
  69. package/template/knowledge/ai-security-framework/checklists/pre-flight.md +249 -0
  70. package/template/knowledge/ai-security-framework/checklists/weekly-audit.md +159 -0
  71. package/template/knowledge/ai-security-framework/configs/audit-logging.md +372 -0
  72. package/template/knowledge/ai-security-framework/configs/kill-switches.md +354 -0
  73. package/template/knowledge/ai-security-framework/docs/01-core-principles.md +256 -0
  74. package/template/knowledge/ai-security-framework/docs/02-threat-landscape.md +326 -0
  75. package/template/knowledge/ai-security-framework/docs/03-security-posture.md +250 -0
  76. package/template/knowledge/ai-security-framework/templates/agents-security.md +233 -0
  77. package/template/knowledge/design-styles/README.md +42 -0
  78. package/template/knowledge/design-styles/american-industrial.md +136 -0
  79. package/template/knowledge/design-styles/ethereal-abstract.md +133 -0
  80. package/template/knowledge/design-styles/liminal-portal.md +111 -0
  81. package/template/knowledge/design-styles/swipes/american-industrial/G-3m4YPW0AADdu2.jpeg +0 -0
  82. package/template/knowledge/design-styles/swipes/american-industrial/G-JJlt5WwAABK3K.png +0 -0
  83. package/template/knowledge/design-styles/swipes/american-industrial/G-JJmj5W0AEbJ-7.png +0 -0
  84. package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ (1).jpeg +0 -0
  85. package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ.jpeg +0 -0
  86. package/template/knowledge/design-styles/swipes/american-industrial/G7fVkn3WEAAM-ST.jpeg +0 -0
  87. package/template/knowledge/design-styles/swipes/american-industrial/G8ECO5JWEAIksyn.png +0 -0
  88. package/template/knowledge/design-styles/swipes/american-industrial/G9-3GQSWoAA8eqZ.png +0 -0
  89. package/template/knowledge/design-styles/swipes/american-industrial/G9xEOqrXkAEZRcs.png +0 -0
  90. package/template/knowledge/design-styles/swipes/american-industrial/G_MVeJrXQAA8sx4.jpeg +0 -0
  91. package/template/knowledge/design-styles/swipes/american-industrial/G_RSkmGXkAAgAVZ.png +0 -0
  92. package/template/knowledge/design-styles/swipes/american-industrial/README.md +31 -0
  93. package/template/knowledge/design-styles/swipes/american-industrial/qyqtg7Dq.png +0 -0
  94. package/template/knowledge/dev-team/README.md +35 -0
  95. package/template/knowledge/dev-team/patterns/README.md +34 -0
  96. package/template/knowledge/dev-team/patterns/frontend/react-best-practices.md +178 -0
  97. package/template/knowledge/dev-team/troubleshooting/README.md +31 -0
  98. package/template/knowledge/dev-team/workflows/README.md +49 -0
  99. package/template/knowledge/hq/checkpoint-schema.json +51 -0
  100. package/template/knowledge/hq/index-md-spec.md +74 -0
  101. package/template/knowledge/hq/thread-schema.md +153 -0
  102. package/template/knowledge/hq-core/checkpoint-schema.json +51 -0
  103. package/template/knowledge/hq-core/index-md-spec.md +74 -0
  104. package/template/knowledge/hq-core/thread-schema.md +153 -0
  105. package/template/knowledge/loom/README.md +51 -0
  106. package/template/knowledge/loom/architecture.md +125 -0
  107. package/template/knowledge/loom/code-style.md +169 -0
  108. package/template/knowledge/loom/llm-proxy.md +132 -0
  109. package/template/knowledge/loom/state-machine.md +131 -0
  110. package/template/knowledge/loom/thread-system.md +117 -0
  111. package/template/knowledge/loom/tools.md +94 -0
  112. package/template/knowledge/loom/weaver.md +96 -0
  113. package/template/knowledge/loom/web-frontend.md +131 -0
  114. package/template/knowledge/projects/README.md +72 -0
  115. package/template/knowledge/projects/templates/README.template.md +28 -0
  116. package/template/knowledge/workers/README.md +195 -0
  117. package/template/knowledge/workers/ralph-loop-pattern.md +157 -0
  118. package/template/knowledge/workers/skill-schema.md +182 -0
  119. package/template/knowledge/workers/state-machine.md +102 -0
  120. package/template/knowledge/workers/templates/base-worker.yaml +73 -0
  121. package/template/knowledge/workers/templates/code-worker.yaml +85 -0
  122. package/template/knowledge/workers/templates/skill.yaml +49 -0
  123. package/template/knowledge/workers/templates/social-worker.yaml +70 -0
  124. package/template/modules/examples/full-manifest.yaml +92 -0
  125. package/template/modules/examples/minimal.yaml +14 -0
  126. package/template/modules/modules.yaml +59 -0
  127. package/template/projects/.gitkeep +0 -0
  128. package/template/projects/incorporate-workers-into-pure-ralph/prd.json +88 -0
  129. package/template/projects/pure-ralph-branch-isolation/README.md +114 -0
  130. package/template/projects/pure-ralph-branch-isolation/prd.json +123 -0
  131. package/template/projects/purist-ralph-loop/README.md +148 -0
  132. package/template/projects/purist-ralph-loop/prd.json +135 -0
  133. package/template/projects/ralph-test/prd.json +50 -0
  134. package/template/prompts/pure-ralph-base.md +551 -0
  135. package/template/settings/.gitkeep +0 -0
  136. package/template/settings/pure-ralph.json +42 -0
  137. package/template/social-content/drafts/INDEX.md +21 -0
  138. package/template/social-content/drafts/linkedin/.gitkeep +1 -0
  139. package/template/social-content/drafts/x/.gitkeep +1 -0
  140. package/template/social-content/images/.gitkeep +1 -0
  141. package/template/starter-projects/code-worker/README.md +97 -0
  142. package/template/starter-projects/code-worker/prd.json +45 -0
  143. package/template/starter-projects/personal-assistant/README.md +42 -0
  144. package/template/starter-projects/personal-assistant/prd.json +43 -0
  145. package/template/starter-projects/social-media/README.md +60 -0
  146. package/template/starter-projects/social-media/prd.json +43 -0
  147. package/template/workers/content-brand/README.md +59 -0
  148. package/template/workers/content-brand/skills/messaging-alignment.md +91 -0
  149. package/template/workers/content-brand/skills/tone-check.md +76 -0
  150. package/template/workers/content-brand/skills/voice-analysis.md +68 -0
  151. package/template/workers/content-brand/worker.yaml +81 -0
  152. package/template/workers/content-legal/README.md +80 -0
  153. package/template/workers/content-legal/skills/claim-substantiation.md +150 -0
  154. package/template/workers/content-legal/skills/compliance-scan.md +123 -0
  155. package/template/workers/content-legal/skills/disclaimer-check.md +146 -0
  156. package/template/workers/content-legal/worker.yaml +118 -0
  157. package/template/workers/content-product/README.md +77 -0
  158. package/template/workers/content-product/skills/claim-verification.md +96 -0
  159. package/template/workers/content-product/skills/feature-accuracy.md +117 -0
  160. package/template/workers/content-product/skills/stats-check.md +128 -0
  161. package/template/workers/content-product/worker.yaml +97 -0
  162. package/template/workers/content-sales/README.md +70 -0
  163. package/template/workers/content-sales/skills/conversion-analysis.md +96 -0
  164. package/template/workers/content-sales/skills/cta-audit.md +107 -0
  165. package/template/workers/content-sales/skills/value-prop-check.md +114 -0
  166. package/template/workers/content-sales/worker.yaml +93 -0
  167. package/template/workers/content-shared/cli.ts +242 -0
  168. package/template/workers/content-shared/index.ts +234 -0
  169. package/template/workers/content-shared/lib/accuracy-analyzer.ts +661 -0
  170. package/template/workers/content-shared/lib/analyze.ts +370 -0
  171. package/template/workers/content-shared/lib/brand-analyzer.ts +526 -0
  172. package/template/workers/content-shared/lib/cms-integration.ts +446 -0
  173. package/template/workers/content-shared/lib/compliance-analyzer.ts +655 -0
  174. package/template/workers/content-shared/lib/conversion-analyzer.ts +555 -0
  175. package/template/workers/content-shared/lib/github-integration.ts +582 -0
  176. package/template/workers/content-shared/lib/output.ts +373 -0
  177. package/template/workers/content-shared/lib/parser.ts +771 -0
  178. package/template/workers/content-shared/lib/priority.ts +439 -0
  179. package/template/workers/content-shared/lib/recommendations.ts +512 -0
  180. package/template/workers/content-shared/lib/reporter.ts +749 -0
  181. package/template/workers/content-shared/lib/restructure.ts +664 -0
  182. package/template/workers/content-shared/lib/scorer.ts +140 -0
  183. package/template/workers/content-shared/lib/types.ts +227 -0
  184. package/template/workers/content-shared/lib/variants.ts +595 -0
  185. package/template/workers/content-shared/package.json +51 -0
  186. package/template/workers/content-shared/pnpm-lock.yaml +39 -0
  187. package/template/workers/content-shared/test/sample-page.json +115 -0
  188. package/template/workers/content-shared/tsconfig.json +20 -0
  189. package/template/workers/dev-team/README.md +166 -0
  190. package/template/workers/dev-team/_template.yaml +70 -0
  191. package/template/workers/dev-team/architect/package.json +27 -0
  192. package/template/workers/dev-team/architect/skills/api-design.md +89 -0
  193. package/template/workers/dev-team/architect/skills/refactor-plan.md +96 -0
  194. package/template/workers/dev-team/architect/skills/system-design.md +100 -0
  195. package/template/workers/dev-team/architect/src/index.ts +49 -0
  196. package/template/workers/dev-team/architect/src/mcp-server.ts +122 -0
  197. package/template/workers/dev-team/architect/src/skills/api-design.ts +316 -0
  198. package/template/workers/dev-team/architect/src/skills/refactor-plan.ts +264 -0
  199. package/template/workers/dev-team/architect/src/skills/system-design.ts +212 -0
  200. package/template/workers/dev-team/architect/tsconfig.json +19 -0
  201. package/template/workers/dev-team/architect/worker.yaml +128 -0
  202. package/template/workers/dev-team/backend-dev/package-lock.json +1252 -0
  203. package/template/workers/dev-team/backend-dev/package.json +27 -0
  204. package/template/workers/dev-team/backend-dev/skills/implement-endpoint.md +70 -0
  205. package/template/workers/dev-team/backend-dev/skills/implement-service.md +62 -0
  206. package/template/workers/dev-team/backend-dev/src/index.ts +51 -0
  207. package/template/workers/dev-team/backend-dev/src/mcp-server.ts +109 -0
  208. package/template/workers/dev-team/backend-dev/src/skills/implement-endpoint.ts +122 -0
  209. package/template/workers/dev-team/backend-dev/src/skills/implement-service.ts +126 -0
  210. package/template/workers/dev-team/backend-dev/tsconfig.json +19 -0
  211. package/template/workers/dev-team/backend-dev/worker.yaml +128 -0
  212. package/template/workers/dev-team/code-reviewer/package-lock.json +1080 -0
  213. package/template/workers/dev-team/code-reviewer/package.json +24 -0
  214. package/template/workers/dev-team/code-reviewer/skills/merge-to-production.md +61 -0
  215. package/template/workers/dev-team/code-reviewer/skills/merge-to-staging.md +54 -0
  216. package/template/workers/dev-team/code-reviewer/skills/request-changes.md +63 -0
  217. package/template/workers/dev-team/code-reviewer/skills/review-pr.md +77 -0
  218. package/template/workers/dev-team/code-reviewer/src/index.ts +56 -0
  219. package/template/workers/dev-team/code-reviewer/src/mcp-server.ts +101 -0
  220. package/template/workers/dev-team/code-reviewer/tsconfig.json +19 -0
  221. package/template/workers/dev-team/code-reviewer/worker.yaml +90 -0
  222. package/template/workers/dev-team/database-dev/package.json +22 -0
  223. package/template/workers/dev-team/database-dev/skills/create-schema.md +48 -0
  224. package/template/workers/dev-team/database-dev/src/index.ts +50 -0
  225. package/template/workers/dev-team/database-dev/src/mcp-server.ts +76 -0
  226. package/template/workers/dev-team/database-dev/tsconfig.json +18 -0
  227. package/template/workers/dev-team/database-dev/worker.yaml +90 -0
  228. package/template/workers/dev-team/frontend-dev/package.json +22 -0
  229. package/template/workers/dev-team/frontend-dev/skills/create-component.md +26 -0
  230. package/template/workers/dev-team/frontend-dev/src/index.ts +50 -0
  231. package/template/workers/dev-team/frontend-dev/src/mcp-server.ts +77 -0
  232. package/template/workers/dev-team/frontend-dev/tsconfig.json +18 -0
  233. package/template/workers/dev-team/frontend-dev/worker.yaml +132 -0
  234. package/template/workers/dev-team/infra-dev/package.json +24 -0
  235. package/template/workers/dev-team/infra-dev/skills/add-monitoring.md +73 -0
  236. package/template/workers/dev-team/infra-dev/skills/configure-deployment.md +80 -0
  237. package/template/workers/dev-team/infra-dev/skills/create-dockerfile.md +62 -0
  238. package/template/workers/dev-team/infra-dev/skills/setup-cicd.md +63 -0
  239. package/template/workers/dev-team/infra-dev/src/index.ts +55 -0
  240. package/template/workers/dev-team/infra-dev/src/mcp-server.ts +82 -0
  241. package/template/workers/dev-team/infra-dev/tsconfig.json +19 -0
  242. package/template/workers/dev-team/infra-dev/worker.yaml +92 -0
  243. package/template/workers/dev-team/knowledge-curator/package.json +24 -0
  244. package/template/workers/dev-team/knowledge-curator/skills/curate-troubleshooting.md +63 -0
  245. package/template/workers/dev-team/knowledge-curator/skills/process-learnings.md +61 -0
  246. package/template/workers/dev-team/knowledge-curator/skills/sync-documentation.md +76 -0
  247. package/template/workers/dev-team/knowledge-curator/skills/update-patterns.md +63 -0
  248. package/template/workers/dev-team/knowledge-curator/src/index.ts +53 -0
  249. package/template/workers/dev-team/knowledge-curator/src/mcp-server.ts +92 -0
  250. package/template/workers/dev-team/knowledge-curator/tsconfig.json +19 -0
  251. package/template/workers/dev-team/knowledge-curator/worker.yaml +80 -0
  252. package/template/workers/dev-team/motion-designer/package.json +22 -0
  253. package/template/workers/dev-team/motion-designer/skills/add-animation.md +25 -0
  254. package/template/workers/dev-team/motion-designer/skills/generate-image.md +36 -0
  255. package/template/workers/dev-team/motion-designer/src/index.ts +63 -0
  256. package/template/workers/dev-team/motion-designer/src/mcp-server.ts +79 -0
  257. package/template/workers/dev-team/motion-designer/tsconfig.json +18 -0
  258. package/template/workers/dev-team/motion-designer/worker.yaml +84 -0
  259. package/template/workers/dev-team/product-planner/queue.json +4 -0
  260. package/template/workers/dev-team/product-planner/worker.yaml +220 -0
  261. package/template/workers/dev-team/project-manager/package-lock.json +1252 -0
  262. package/template/workers/dev-team/project-manager/package.json +27 -0
  263. package/template/workers/dev-team/project-manager/skills/create-prd.md +66 -0
  264. package/template/workers/dev-team/project-manager/skills/next-issue.md +51 -0
  265. package/template/workers/dev-team/project-manager/skills/project-status.md +59 -0
  266. package/template/workers/dev-team/project-manager/skills/update-learnings.md +65 -0
  267. package/template/workers/dev-team/project-manager/src/index.ts +54 -0
  268. package/template/workers/dev-team/project-manager/src/mcp-server.ts +207 -0
  269. package/template/workers/dev-team/project-manager/src/skills/create-prd.ts +86 -0
  270. package/template/workers/dev-team/project-manager/src/skills/next-issue.ts +137 -0
  271. package/template/workers/dev-team/project-manager/src/skills/project-status.ts +131 -0
  272. package/template/workers/dev-team/project-manager/src/skills/update-learnings.ts +94 -0
  273. package/template/workers/dev-team/project-manager/tsconfig.json +19 -0
  274. package/template/workers/dev-team/project-manager/worker.yaml +96 -0
  275. package/template/workers/dev-team/qa-tester/package.json +24 -0
  276. package/template/workers/dev-team/qa-tester/skills/create-demo-account.md +36 -0
  277. package/template/workers/dev-team/qa-tester/skills/run-tests.md +36 -0
  278. package/template/workers/dev-team/qa-tester/skills/write-test.md +27 -0
  279. package/template/workers/dev-team/qa-tester/src/index.ts +61 -0
  280. package/template/workers/dev-team/qa-tester/src/mcp-server.ts +88 -0
  281. package/template/workers/dev-team/qa-tester/tsconfig.json +18 -0
  282. package/template/workers/dev-team/qa-tester/worker.yaml +116 -0
  283. package/template/workers/dev-team/task-executor/package-lock.json +1252 -0
  284. package/template/workers/dev-team/task-executor/package.json +27 -0
  285. package/template/workers/dev-team/task-executor/skills/analyze-issue.md +101 -0
  286. package/template/workers/dev-team/task-executor/skills/execute.md +133 -0
  287. package/template/workers/dev-team/task-executor/skills/report-learnings.md +106 -0
  288. package/template/workers/dev-team/task-executor/skills/validate-completion.md +121 -0
  289. package/template/workers/dev-team/task-executor/src/index.ts +54 -0
  290. package/template/workers/dev-team/task-executor/src/mcp-server.ts +139 -0
  291. package/template/workers/dev-team/task-executor/src/skills/analyze-issue.ts +219 -0
  292. package/template/workers/dev-team/task-executor/src/skills/execute.ts +132 -0
  293. package/template/workers/dev-team/task-executor/src/skills/report-learnings.ts +119 -0
  294. package/template/workers/dev-team/task-executor/src/skills/validate-completion.ts +142 -0
  295. package/template/workers/dev-team/task-executor/tsconfig.json +19 -0
  296. package/template/workers/dev-team/task-executor/worker.yaml +110 -0
  297. package/template/workers/registry.yaml +171 -0
  298. package/template/workers/security-scanner/README.md +73 -0
  299. package/template/workers/security-scanner/skills/pre-deploy-check.md +205 -0
  300. package/template/workers/security-scanner/worker.yaml +26 -0
  301. package/template/workspace/checkpoints/.gitkeep +0 -0
  302. package/template/workspace/content-ideas/inbox.jsonl +0 -0
  303. package/template/workspace/drafts/.gitkeep +0 -0
  304. package/template/workspace/learnings/.gitkeep +3 -0
  305. package/template/workspace/orchestrator/.gitkeep +0 -0
  306. package/template/workspace/ralph-test/COMPLETE.md +18 -0
  307. package/template/workspace/ralph-test/hello.txt +2 -0
  308. package/template/workspace/reports/.gitkeep +0 -0
  309. package/template/workspace/scratch/.gitkeep +0 -0
  310. package/template/workspace/threads/.gitkeep +3 -0
@@ -0,0 +1,372 @@
1
+ # Audit Logging Configuration
2
+
3
+ > What to log, how to log it, and how to use logs for security
4
+
5
+ ---
6
+
7
+ ## Why Logging Matters
8
+
9
+ Without logs, you have no visibility into what AI agents are doing. When something goes wrong—and eventually something will—logs are your forensic evidence, your debugging tool, and your compliance documentation.
10
+
11
+ **Key stat:** Audit logging adds 5-10ms latency and ~15% monthly storage growth for active agents. This is worth it.
12
+
13
+ ---
14
+
15
+ ## What to Log
16
+
17
+ ### Required Fields (Minimum Viable Logging)
18
+
19
+ Every AI action should capture:
20
+
21
+ | Field | Description | Example |
22
+ |-------|-------------|---------|
23
+ | `timestamp` | UTC time of action | `2025-12-14T15:30:00Z` |
24
+ | `action_type` | Category of action | `browser_navigate`, `file_write`, `api_call` |
25
+ | `target` | What was acted upon | `https://example.com`, `/path/to/file` |
26
+ | `outcome` | Result | `success`, `failure`, `blocked` |
27
+ | `session_id` | Groups related actions | `sess_abc123` |
28
+
29
+ ### Recommended Fields (Better Visibility)
30
+
31
+ | Field | Description | Example |
32
+ |-------|-------------|---------|
33
+ | `agent_id` | Which AI agent | `claude-chrome-main` |
34
+ | `user_id` | Human associated | `corey@example.com` |
35
+ | `request_id` | Unique action ID | `req_xyz789` |
36
+ | `duration_ms` | Time to complete | `1234` |
37
+ | `input_summary` | What was requested | `"Navigate to docs"` |
38
+ | `output_summary` | What was returned | `"Page loaded"` |
39
+ | `error_details` | If failed, why | `"Access denied"` |
40
+ | `ip_address` | Source | `192.168.1.1` |
41
+ | `risk_level` | Assessed risk | `low`, `medium`, `high` |
42
+
43
+ ### Comprehensive Fields (Full Forensics)
44
+
45
+ For critical environments, also log:
46
+
47
+ | Field | Description |
48
+ |-------|-------------|
49
+ | `parent_session_id` | For nested operations |
50
+ | `model_version` | AI model used |
51
+ | `prompt_hash` | Hash of prompt (not full prompt, for privacy) |
52
+ | `context_window_usage` | How full was context |
53
+ | `tokens_used` | Token consumption |
54
+ | `cost_usd` | Estimated cost |
55
+ | `policy_checks` | Which policies were evaluated |
56
+ | `approval_chain` | Who approved (if applicable) |
57
+
58
+ ---
59
+
60
+ ## Log Format
61
+
62
+ ### Structured JSON (Recommended)
63
+
64
+ ```json
65
+ {
66
+ "timestamp": "2025-12-14T15:30:00.123Z",
67
+ "level": "INFO",
68
+ "action_type": "browser_navigate",
69
+ "agent_id": "claude-chrome-main",
70
+ "session_id": "sess_abc123",
71
+ "request_id": "req_xyz789",
72
+ "target": "https://docs.example.com/api",
73
+ "outcome": "success",
74
+ "duration_ms": 1234,
75
+ "risk_level": "low",
76
+ "metadata": {
77
+ "page_title": "API Documentation",
78
+ "response_code": 200
79
+ }
80
+ }
81
+ ```
82
+
83
+ ### Log Levels
84
+
85
+ | Level | Use For | Example |
86
+ |-------|---------|---------|
87
+ | `DEBUG` | Detailed tracing | Step-by-step navigation |
88
+ | `INFO` | Normal operations | "Navigated to page" |
89
+ | `WARN` | Concerning but handled | "Blocked site attempted" |
90
+ | `ERROR` | Failures | "API call failed" |
91
+ | `CRITICAL` | Security events | "Credential access attempt" |
92
+
93
+ ---
94
+
95
+ ## Action-Specific Logging
96
+
97
+ ### Browser Actions
98
+
99
+ ```json
100
+ {
101
+ "action_type": "browser_navigate",
102
+ "target": "https://example.com/page",
103
+ "metadata": {
104
+ "previous_url": "https://previous.com",
105
+ "navigation_type": "link_click",
106
+ "blocked": false,
107
+ "security_warnings": []
108
+ }
109
+ }
110
+ ```
111
+
112
+ ```json
113
+ {
114
+ "action_type": "browser_form_submit",
115
+ "target": "https://example.com/form",
116
+ "metadata": {
117
+ "form_id": "contact-form",
118
+ "fields_filled": ["name", "email", "message"],
119
+ "sensitive_fields": false
120
+ }
121
+ }
122
+ ```
123
+
124
+ ### File Operations
125
+
126
+ ```json
127
+ {
128
+ "action_type": "file_write",
129
+ "target": "/workspace/document.md",
130
+ "metadata": {
131
+ "file_size_bytes": 1234,
132
+ "content_hash": "sha256:abc123...",
133
+ "previous_hash": "sha256:xyz789...",
134
+ "backup_created": true
135
+ }
136
+ }
137
+ ```
138
+
139
+ ### API Calls
140
+
141
+ ```json
142
+ {
143
+ "action_type": "api_call",
144
+ "target": "https://api.service.com/endpoint",
145
+ "metadata": {
146
+ "method": "POST",
147
+ "response_code": 200,
148
+ "request_size_bytes": 500,
149
+ "response_size_bytes": 1200,
150
+ "cost_estimate_usd": 0.001
151
+ }
152
+ }
153
+ ```
154
+
155
+ ### Security Events
156
+
157
+ ```json
158
+ {
159
+ "action_type": "security_block",
160
+ "target": "https://banking.example.com",
161
+ "outcome": "blocked",
162
+ "metadata": {
163
+ "block_reason": "financial_site_blocklist",
164
+ "policy_matched": "browser-security-001",
165
+ "original_instruction": "check account balance",
166
+ "alert_generated": true
167
+ }
168
+ }
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Storage and Retention
174
+
175
+ ### Where to Store
176
+
177
+ | Option | Pros | Cons | Best For |
178
+ |--------|------|------|----------|
179
+ | Local files | Simple, fast | Limited search, scale | Development |
180
+ | Cloud storage (S3) | Durable, cheap | Query overhead | Archival |
181
+ | Log service (Datadog) | Search, alerts | Cost | Production |
182
+ | SIEM (Splunk) | Security focus | Complex, expensive | Enterprise |
183
+
184
+ ### Retention Policy
185
+
186
+ | Log Type | Retention | Reason |
187
+ |----------|-----------|--------|
188
+ | Debug logs | 7 days | High volume, low value |
189
+ | Info logs | 30 days | Operational visibility |
190
+ | Warn logs | 90 days | Trend analysis |
191
+ | Error logs | 1 year | Debugging, compliance |
192
+ | Critical/Security | 7 years | Legal, forensics |
193
+
194
+ ### Storage Estimate
195
+
196
+ ```
197
+ Active AI agent:
198
+ - 1,000 actions/day
199
+ - ~500 bytes/action (JSON)
200
+ - = 500KB/day
201
+ - = 15MB/month
202
+ - = 180MB/year
203
+
204
+ Multiply by number of active agents.
205
+ ```
206
+
207
+ ---
208
+
209
+ ## Log Integrity
210
+
211
+ ### Why It Matters
212
+
213
+ Logs are useless if they can be tampered with. An attacker who compromises your system will try to cover their tracks.
214
+
215
+ ### Protections
216
+
217
+ 1. **Append-only storage**: Use write-once storage where possible
218
+ 2. **Cryptographic signing**: Sign log entries
219
+ 3. **Segregated storage**: Store logs where AI agents can't access them
220
+ 4. **Hash chaining**: Each entry includes hash of previous entry
221
+
222
+ ### Simple Hash Chain Example
223
+
224
+ ```json
225
+ {
226
+ "entry_id": 1001,
227
+ "timestamp": "2025-12-14T15:30:00Z",
228
+ "previous_hash": "sha256:abc123...",
229
+ "entry_hash": "sha256:def456...",
230
+ "data": { ... }
231
+ }
232
+ ```
233
+
234
+ If any entry is modified, the chain breaks and tampering is detected.
235
+
236
+ ---
237
+
238
+ ## Alerting
239
+
240
+ ### What Should Trigger Alerts
241
+
242
+ | Event | Severity | Action |
243
+ |-------|----------|--------|
244
+ | Blocked site access attempt | Medium | Log + review daily |
245
+ | Credential access attempt | Critical | Immediate notification |
246
+ | Unusual action volume | Medium | Automated + manual review |
247
+ | Failed security check | High | Immediate notification |
248
+ | Error rate spike | Medium | Investigate within 1 hour |
249
+
250
+ ### Alert Configuration Example
251
+
252
+ ```yaml
253
+ alerts:
254
+ - name: credential_access
255
+ condition: action_type == "credential_access"
256
+ severity: critical
257
+ notify:
258
+ - sms: "+1-555-0123"
259
+ - email: "security@example.com"
260
+ throttle: 1 per minute
261
+
262
+ - name: blocked_navigation
263
+ condition: action_type == "browser_navigate" AND outcome == "blocked"
264
+ severity: medium
265
+ notify:
266
+ - slack: "#ai-security"
267
+ throttle: 10 per hour
268
+
269
+ - name: high_volume
270
+ condition: count(session_id) > 100 per 5 minutes
271
+ severity: high
272
+ notify:
273
+ - email: "ops@example.com"
274
+ ```
275
+
276
+ ---
277
+
278
+ ## Querying Logs
279
+
280
+ ### Common Queries
281
+
282
+ **All actions in a session:**
283
+ ```sql
284
+ SELECT * FROM logs
285
+ WHERE session_id = 'sess_abc123'
286
+ ORDER BY timestamp;
287
+ ```
288
+
289
+ **Security events last 24 hours:**
290
+ ```sql
291
+ SELECT * FROM logs
292
+ WHERE level = 'CRITICAL'
293
+ AND timestamp > NOW() - INTERVAL 24 HOUR;
294
+ ```
295
+
296
+ **Failed actions by type:**
297
+ ```sql
298
+ SELECT action_type, COUNT(*) as failures
299
+ FROM logs
300
+ WHERE outcome = 'failure'
301
+ AND timestamp > NOW() - INTERVAL 7 DAY
302
+ GROUP BY action_type
303
+ ORDER BY failures DESC;
304
+ ```
305
+
306
+ **Unusual patterns (potential attack):**
307
+ ```sql
308
+ SELECT session_id, COUNT(*) as actions,
309
+ COUNT(DISTINCT action_type) as variety
310
+ FROM logs
311
+ WHERE timestamp > NOW() - INTERVAL 1 HOUR
312
+ GROUP BY session_id
313
+ HAVING actions > 50 OR variety > 10;
314
+ ```
315
+
316
+ ---
317
+
318
+ ## Implementation Checklist
319
+
320
+ ### Phase 1: Basic Logging
321
+
322
+ - [ ] Implement minimum required fields
323
+ - [ ] Log to local JSON files
324
+ - [ ] Set up daily log rotation
325
+ - [ ] Manual daily review process
326
+
327
+ ### Phase 2: Enhanced Logging
328
+
329
+ - [ ] Add recommended fields
330
+ - [ ] Move to centralized storage
331
+ - [ ] Set up basic alerting
332
+ - [ ] Weekly review process
333
+
334
+ ### Phase 3: Production Logging
335
+
336
+ - [ ] Add comprehensive fields
337
+ - [ ] Implement log integrity (signing/chaining)
338
+ - [ ] Configure automated alerting
339
+ - [ ] Integrate with security monitoring
340
+
341
+ ---
342
+
343
+ ## Quick Reference
344
+
345
+ ### Log Every Time
346
+
347
+ ```
348
+ ✓ AI navigates to a URL
349
+ ✓ AI reads or writes a file
350
+ ✓ AI makes an API call
351
+ ✓ AI sends any communication
352
+ ✓ AI is blocked from an action
353
+ ✓ AI encounters an error
354
+ ✓ Human approves/denies request
355
+ ```
356
+
357
+ ### Log Entry Checklist
358
+
359
+ ```
360
+ □ Timestamp (UTC)
361
+ □ Action type
362
+ □ Target
363
+ □ Outcome
364
+ □ Session ID
365
+ □ Agent ID
366
+ □ Risk level (if applicable)
367
+ □ Error details (if failure)
368
+ ```
369
+
370
+ ---
371
+
372
+ *Related: [Core Principles](../docs/01-core-principles.md) | [Kill Switches](kill-switches.md)*
@@ -0,0 +1,354 @@
1
+ # Kill Switch Patterns
2
+
3
+ > Emergency controls to stop AI agents when things go wrong
4
+
5
+ ---
6
+
7
+ ## Why Kill Switches Matter
8
+
9
+ In September 2025, researchers discovered that some advanced AI models were actively resisting shutdown attempts. While current tools are far from that level, the principle remains: you need the ability to stop AI agents immediately, reliably, and completely.
10
+
11
+ **The Rule:** If you can't stop it in under 60 seconds, you don't have control.
12
+
13
+ ---
14
+
15
+ ## Kill Switch Hierarchy
16
+
17
+ ### Level 1: Soft Stop (Graceful)
18
+ - Complete current action, then stop
19
+ - Preserve state for review
20
+ - Allow cleanup operations
21
+ - **Use when:** Non-urgent concern, want to investigate
22
+
23
+ ### Level 2: Hard Stop (Immediate)
24
+ - Terminate current action mid-execution
25
+ - Preserve logs but not state
26
+ - No cleanup
27
+ - **Use when:** Suspicious behavior observed
28
+
29
+ ### Level 3: Emergency Stop (Nuclear)
30
+ - Kill all processes
31
+ - Revoke all tokens
32
+ - Disconnect all sessions
33
+ - **Use when:** Active compromise suspected
34
+
35
+ ---
36
+
37
+ ## Implementation Patterns
38
+
39
+ ### Pattern 1: Session Termination
40
+
41
+ **What it does:** Ends the current AI session immediately.
42
+
43
+ **Claude in Chrome:**
44
+ ```
45
+ 1. Chrome Task Manager: Shift + Esc
46
+ 2. Find Claude-related processes
47
+ 3. Click "End process"
48
+ ```
49
+
50
+ **Claude Code:**
51
+ ```bash
52
+ # Find Claude processes
53
+ ps aux | grep -i claude
54
+
55
+ # Kill specific process
56
+ kill -9 <PID>
57
+
58
+ # Kill all Claude processes
59
+ pkill -f claude
60
+ ```
61
+
62
+ **Any browser-based AI:**
63
+ ```
64
+ 1. Close all tabs: Cmd/Ctrl + Shift + W
65
+ 2. Force quit browser: Cmd + Option + Esc (Mac) / Alt + F4 (Windows)
66
+ ```
67
+
68
+ ### Pattern 2: Token Revocation
69
+
70
+ **What it does:** Invalidates all AI access tokens immediately.
71
+
72
+ **GitHub:**
73
+ ```
74
+ Settings → Developer Settings → Personal Access Tokens
75
+ → Find AI token → Revoke
76
+ ```
77
+
78
+ **Google/Gmail:**
79
+ ```
80
+ Security → Third-party apps with account access
81
+ → Find AI app → Remove Access
82
+ ```
83
+
84
+ **Slack:**
85
+ ```
86
+ Apps → Manage → [AI App] → Remove App
87
+ ```
88
+
89
+ **AWS:**
90
+ ```bash
91
+ # Deactivate IAM access key
92
+ aws iam update-access-key \
93
+ --user-name ai-agent \
94
+ --access-key-id AKIA... \
95
+ --status Inactive
96
+
97
+ # Or delete it entirely
98
+ aws iam delete-access-key \
99
+ --user-name ai-agent \
100
+ --access-key-id AKIA...
101
+ ```
102
+
103
+ ### Pattern 3: Network Isolation
104
+
105
+ **What it does:** Cuts AI's network access.
106
+
107
+ **Local firewall (Mac):**
108
+ ```bash
109
+ # Block all outbound from specific app
110
+ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Chrome.app
111
+ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --blockapp /Applications/Chrome.app
112
+ ```
113
+
114
+ **Local firewall (Linux):**
115
+ ```bash
116
+ # Block outbound for user
117
+ sudo iptables -A OUTPUT -m owner --uid-owner ai-user -j DROP
118
+ ```
119
+
120
+ **Router level:**
121
+ - Log into router admin
122
+ - Block device MAC address
123
+ - Or: Unplug network cable (simplest)
124
+
125
+ ### Pattern 4: Circuit Breaker (Automated)
126
+
127
+ **What it does:** Automatically triggers kill switch based on conditions.
128
+
129
+ **Example implementation:**
130
+ ```python
131
+ class CircuitBreaker:
132
+ def __init__(self, threshold=10, window_seconds=60):
133
+ self.threshold = threshold
134
+ self.window = window_seconds
135
+ self.events = []
136
+
137
+ def record_event(self, event_type):
138
+ now = time.time()
139
+ self.events.append((now, event_type))
140
+
141
+ # Clean old events
142
+ self.events = [(t, e) for t, e in self.events
143
+ if now - t < self.window]
144
+
145
+ # Check threshold
146
+ if len(self.events) >= self.threshold:
147
+ self.trip()
148
+
149
+ def trip(self):
150
+ logger.critical("Circuit breaker tripped!")
151
+ self.kill_all_agents()
152
+ self.revoke_all_tokens()
153
+ self.send_alert()
154
+ ```
155
+
156
+ **Trigger conditions:**
157
+ - Error rate exceeds threshold
158
+ - Unusual action patterns
159
+ - Access to blocked resources
160
+ - Spending limit reached
161
+ - Manual trigger
162
+
163
+ ---
164
+
165
+ ## Quick Reference Card
166
+
167
+ Print this and keep it accessible:
168
+
169
+ ```
170
+ ╔═══════════════════════════════════════════════════════════════╗
171
+ ║ AI KILL SWITCH QUICK CARD ║
172
+ ╠═══════════════════════════════════════════════════════════════╣
173
+ ║ ║
174
+ ║ IMMEDIATE BROWSER STOP ║
175
+ ║ ───────────────────── ║
176
+ ║ Mac: Cmd + Option + Esc → Force Quit Browser ║
177
+ ║ Windows: Ctrl + Shift + Esc → End Task ║
178
+ ║ Chrome: Shift + Esc → Kill Process ║
179
+ ║ ║
180
+ ║ CLOSE ALL TABS ║
181
+ ║ ───────────────────── ║
182
+ ║ Mac: Cmd + Shift + W ║
183
+ ║ Windows: Ctrl + Shift + W ║
184
+ ║ ║
185
+ ║ KILL CLI PROCESSES ║
186
+ ║ ───────────────────── ║
187
+ ║ pkill -f claude ║
188
+ ║ pkill -f "ai-agent" ║
189
+ ║ ║
190
+ ║ TOKEN REVOCATION ║
191
+ ║ ───────────────────── ║
192
+ ║ GitHub: Settings → Tokens → Revoke ║
193
+ ║ Google: Security → Third-party apps → Remove ║
194
+ ║ AWS: IAM → Users → Security credentials → Deactivate ║
195
+ ║ ║
196
+ ║ NETWORK CUTOFF ║
197
+ ║ ───────────────────── ║
198
+ ║ • Unplug ethernet / Disable WiFi ║
199
+ ║ • Router: Block device ║
200
+ ║ ║
201
+ ║ CONTACTS ║
202
+ ║ ───────────────────── ║
203
+ ║ Primary: _______________________ ║
204
+ ║ Security: _______________________ ║
205
+ ║ Cloud: _______________________ ║
206
+ ║ ║
207
+ ╚═══════════════════════════════════════════════════════════════╝
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Emergency Procedures by Scenario
213
+
214
+ ### Scenario: AI Navigating to Suspicious Sites
215
+
216
+ 1. **Soft stop:** Close the specific tab
217
+ 2. **If continues:** Force quit browser
218
+ 3. **Review:** Check browser history
219
+ 4. **Assess:** What pages were accessed?
220
+ 5. **Action:** Block suspicious domains
221
+
222
+ ### Scenario: AI Attempting Unauthorized Access
223
+
224
+ 1. **Hard stop:** Kill browser process immediately
225
+ 2. **Revoke:** All AI tokens for affected services
226
+ 3. **Log:** Preserve all audit logs
227
+ 4. **Investigate:** What was accessed/attempted?
228
+ 5. **Rotate:** Credentials that may be compromised
229
+
230
+ ### Scenario: Suspected Prompt Injection Attack
231
+
232
+ 1. **Hard stop:** Kill all AI processes
233
+ 2. **Isolate:** Don't let AI process more content
234
+ 3. **Preserve:** Screenshot/capture the malicious content
235
+ 4. **Review:** What actions did AI take after exposure?
236
+ 5. **Report:** Notify AI provider if appropriate
237
+
238
+ ### Scenario: AI Acting on Compromised Credentials
239
+
240
+ 1. **Emergency stop:** Kill everything
241
+ 2. **Revoke:** ALL credentials AI has accessed
242
+ 3. **Change:** Passwords for critical accounts
243
+ 4. **Review:** Audit logs for unauthorized actions
244
+ 5. **Notify:** Affected parties if data exposed
245
+
246
+ ### Scenario: Unknown/Unexplained AI Behavior
247
+
248
+ 1. **Pause:** Don't kill immediately
249
+ 2. **Observe:** What exactly is it doing?
250
+ 3. **Log:** Record the behavior
251
+ 4. **Soft stop:** Complete current action, then halt
252
+ 5. **Investigate:** Review logs and context
253
+
254
+ ---
255
+
256
+ ## Testing Your Kill Switches
257
+
258
+ ### Weekly Test (5 minutes)
259
+
260
+ 1. Verify you can close all AI tabs in <10 seconds
261
+ 2. Confirm browser task manager is accessible
262
+ 3. Check that you know where token revocation is
263
+
264
+ ### Monthly Test (15 minutes)
265
+
266
+ 1. Practice full browser force-quit
267
+ 2. Test one token revocation and re-creation
268
+ 3. Verify network isolation method works
269
+ 4. Time your emergency stop (should be <60 seconds)
270
+
271
+ ### Quarterly Drill (30 minutes)
272
+
273
+ 1. Full emergency scenario simulation
274
+ 2. Practice all kill switch levels
275
+ 3. Verify all documentation is current
276
+ 4. Update quick reference card if needed
277
+
278
+ ---
279
+
280
+ ## Automated Kill Switch Configuration
281
+
282
+ ### Spending Limits
283
+
284
+ ```yaml
285
+ limits:
286
+ api_spending:
287
+ daily_max_usd: 10
288
+ action: pause_and_alert
289
+
290
+ token_usage:
291
+ hourly_max: 100000
292
+ action: hard_stop
293
+ ```
294
+
295
+ ### Behavioral Triggers
296
+
297
+ ```yaml
298
+ triggers:
299
+ blocked_site_attempts:
300
+ threshold: 3
301
+ window: 60_seconds
302
+ action: soft_stop
303
+
304
+ error_rate:
305
+ threshold: 50_percent
306
+ window: 5_minutes
307
+ action: soft_stop
308
+
309
+ credential_access:
310
+ threshold: 1
311
+ action: hard_stop
312
+ ```
313
+
314
+ ### Time-Based Controls
315
+
316
+ ```yaml
317
+ schedules:
318
+ allowed_hours:
319
+ start: "08:00"
320
+ end: "18:00"
321
+ timezone: "America/Denver"
322
+ outside_hours: soft_stop
323
+
324
+ max_session_duration:
325
+ minutes: 120
326
+ action: soft_stop
327
+ ```
328
+
329
+ ---
330
+
331
+ ## Post-Kill-Switch Actions
332
+
333
+ ### After Any Kill Switch Activation
334
+
335
+ 1. **Document:** Why was it triggered?
336
+ 2. **Preserve:** All logs from the session
337
+ 3. **Assess:** Was this a real threat or false positive?
338
+ 4. **Update:** Security controls if needed
339
+ 5. **Resume:** Only after investigation complete
340
+
341
+ ### Resumption Checklist
342
+
343
+ Before restarting AI agents:
344
+
345
+ - [ ] Root cause identified
346
+ - [ ] Logs preserved
347
+ - [ ] Security controls updated (if needed)
348
+ - [ ] Fresh session (no contaminated context)
349
+ - [ ] Credentials rotated (if suspicious)
350
+ - [ ] Team notified (if applicable)
351
+
352
+ ---
353
+
354
+ *Related: [Audit Logging](audit-logging.md) | [Core Principles](../docs/01-core-principles.md)*