gentyr 1.3.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 (599) hide show
  1. package/.claude/agents/antipattern-hunter.md +176 -0
  2. package/.claude/agents/code-reviewer.md +205 -0
  3. package/.claude/agents/code-writer.md +154 -0
  4. package/.claude/agents/deputy-cto.md +309 -0
  5. package/.claude/agents/feedback-agent.md +101 -0
  6. package/.claude/agents/investigator.md +136 -0
  7. package/.claude/agents/product-manager.md +97 -0
  8. package/.claude/agents/project-manager.md +116 -0
  9. package/.claude/agents/repo-hygiene-expert.md +626 -0
  10. package/.claude/agents/secret-manager.md +324 -0
  11. package/.claude/agents/test-writer.md +354 -0
  12. package/.claude/commands/configure-personas.md +144 -0
  13. package/.claude/commands/cto-report.md +36 -0
  14. package/.claude/commands/demo.md +89 -0
  15. package/.claude/commands/deputy-cto.md +345 -0
  16. package/.claude/commands/hotfix.md +31 -0
  17. package/.claude/commands/overdrive-gentyr.md +167 -0
  18. package/.claude/commands/product-manager.md +32 -0
  19. package/.claude/commands/push-migrations.md +86 -0
  20. package/.claude/commands/push-secrets.md +97 -0
  21. package/.claude/commands/services.json.example +30 -0
  22. package/.claude/commands/setup-gentyr.md +396 -0
  23. package/.claude/commands/show.md +42 -0
  24. package/.claude/commands/spawn-tasks.md +79 -0
  25. package/.claude/commands/toggle-automation-gentyr.md +75 -0
  26. package/.claude/commands/toggle-product-manager.md +19 -0
  27. package/.claude/commands/triage.md +69 -0
  28. package/.claude/hooks/README.md +686 -0
  29. package/.claude/hooks/__tests__/README.md +129 -0
  30. package/.claude/hooks/agent-tracker.js +434 -0
  31. package/.claude/hooks/antipattern-hunter-hook.js +401 -0
  32. package/.claude/hooks/api-key-watcher.js +289 -0
  33. package/.claude/hooks/block-no-verify.js +301 -0
  34. package/.claude/hooks/bypass-approval-hook.js +313 -0
  35. package/.claude/hooks/compliance-checker.js +1309 -0
  36. package/.claude/hooks/config-reader.js +143 -0
  37. package/.claude/hooks/credential-file-guard.js +1139 -0
  38. package/.claude/hooks/credential-health-check.js +168 -0
  39. package/.claude/hooks/credential-sync-hook.js +79 -0
  40. package/.claude/hooks/cto-notification-hook.js +656 -0
  41. package/.claude/hooks/feedback-launcher.js +424 -0
  42. package/.claude/hooks/feedback-orchestrator.js +367 -0
  43. package/.claude/hooks/gentyr-splash.js +47 -0
  44. package/.claude/hooks/gentyr-sync.js +389 -0
  45. package/.claude/hooks/hourly-automation.js +3340 -0
  46. package/.claude/hooks/key-sync.js +899 -0
  47. package/.claude/hooks/lib/approval-utils.js +731 -0
  48. package/.claude/hooks/lib/feature-branch-helper.js +102 -0
  49. package/.claude/hooks/lib/worktree-manager.js +330 -0
  50. package/.claude/hooks/mapping-validator.js +285 -0
  51. package/.claude/hooks/plan-executor.js +398 -0
  52. package/.claude/hooks/playwright-cli-guard.js +104 -0
  53. package/.claude/hooks/playwright-health-check.js +71 -0
  54. package/.claude/hooks/pre-commit-review.js +725 -0
  55. package/.claude/hooks/prompts/local-spec-enforcement.md +310 -0
  56. package/.claude/hooks/prompts/mapping-fix.md +92 -0
  57. package/.claude/hooks/prompts/mapping-review.md +140 -0
  58. package/.claude/hooks/prompts/schema-mapper.md +185 -0
  59. package/.claude/hooks/prompts/spec-enforcement.md +233 -0
  60. package/.claude/hooks/protected-action-approval-hook.js +336 -0
  61. package/.claude/hooks/protected-action-gate.js +562 -0
  62. package/.claude/hooks/protected-actions.json +208 -0
  63. package/.claude/hooks/protected-actions.json.template +122 -0
  64. package/.claude/hooks/quota-monitor.js +490 -0
  65. package/.claude/hooks/reporters/jest-failure-reporter.js +401 -0
  66. package/.claude/hooks/reporters/playwright-failure-reporter.js +446 -0
  67. package/.claude/hooks/reporters/vitest-failure-reporter.js +443 -0
  68. package/.claude/hooks/schema-mapper-hook.js +544 -0
  69. package/.claude/hooks/secret-leak-detector.js +216 -0
  70. package/.claude/hooks/session-reviver.js +514 -0
  71. package/.claude/hooks/slash-command-prefetch.js +1145 -0
  72. package/.claude/hooks/stale-work-detector.js +205 -0
  73. package/.claude/hooks/stop-continue-hook.js +414 -0
  74. package/.claude/hooks/todo-maintenance.js +522 -0
  75. package/.claude/hooks/todo-processing-prompt.md +75 -0
  76. package/.claude/hooks/usage-optimizer.js +791 -0
  77. package/.claude/mcp/README.md +246 -0
  78. package/.claude/settings.json.template +168 -0
  79. package/.mcp.json.template +207 -0
  80. package/CLAUDE.md +340 -0
  81. package/CLAUDE.md.gentyr-section +89 -0
  82. package/LICENSE +21 -0
  83. package/README.md +297 -0
  84. package/cli/commands/init.js +471 -0
  85. package/cli/commands/migrate.js +132 -0
  86. package/cli/commands/protect.js +271 -0
  87. package/cli/commands/scaffold.js +48 -0
  88. package/cli/commands/status.js +133 -0
  89. package/cli/commands/sync.js +101 -0
  90. package/cli/commands/uninstall.js +207 -0
  91. package/cli/index.js +111 -0
  92. package/cli/lib/config-gen.js +214 -0
  93. package/cli/lib/resolve-framework.js +97 -0
  94. package/cli/lib/state.js +140 -0
  95. package/cli/lib/symlinks.js +260 -0
  96. package/docs/AUTOMATION-SYSTEMS.md +484 -0
  97. package/docs/BINARY-PATCHING.md +212 -0
  98. package/docs/CHANGELOG.md +2830 -0
  99. package/docs/CREDENTIAL-DETECTION.md +151 -0
  100. package/docs/CTO-DASHBOARD.md +476 -0
  101. package/docs/DEPLOYMENT-FLOW.md +477 -0
  102. package/docs/DEVELOPER.md +116 -0
  103. package/docs/Executive.md +372 -0
  104. package/docs/SECRET-PATHS.md +77 -0
  105. package/docs/SETUP-GUIDE.md +419 -0
  106. package/docs/STACK.md +109 -0
  107. package/docs/TESTING.md +440 -0
  108. package/docs/assets/claude-logo.svg +3 -0
  109. package/docs/sessions/2026-01-24-spec-suite-implementation.md +190 -0
  110. package/docs/sessions/2026-02-15-feedback-e2e-audit.md +484 -0
  111. package/docs/sessions/2026-02-20-credential-rotation-experiments.md +340 -0
  112. package/docs/sessions/TEST-COVERAGE-REPORT-2026-02-20.md +168 -0
  113. package/docs/shared/EPHEMERAL-STATE-FILES.md +115 -0
  114. package/docs/shared/PROTECTION-SYSTEM.md +341 -0
  115. package/husky/post-commit +10 -0
  116. package/husky/pre-commit +40 -0
  117. package/husky/pre-push +94 -0
  118. package/package.json +43 -0
  119. package/packages/cto-dashboard/package-lock.json +3510 -0
  120. package/packages/cto-dashboard/package.json +41 -0
  121. package/packages/cto-dashboard/pnpm-lock.yaml +2168 -0
  122. package/packages/mcp-servers/dist/__testUtils__/fixtures.d.ts +220 -0
  123. package/packages/mcp-servers/dist/__testUtils__/fixtures.d.ts.map +1 -0
  124. package/packages/mcp-servers/dist/__testUtils__/fixtures.js +376 -0
  125. package/packages/mcp-servers/dist/__testUtils__/fixtures.js.map +1 -0
  126. package/packages/mcp-servers/dist/__testUtils__/index.d.ts +121 -0
  127. package/packages/mcp-servers/dist/__testUtils__/index.d.ts.map +1 -0
  128. package/packages/mcp-servers/dist/__testUtils__/index.js +180 -0
  129. package/packages/mcp-servers/dist/__testUtils__/index.js.map +1 -0
  130. package/packages/mcp-servers/dist/__testUtils__/schemas.d.ts +84 -0
  131. package/packages/mcp-servers/dist/__testUtils__/schemas.d.ts.map +1 -0
  132. package/packages/mcp-servers/dist/__testUtils__/schemas.js +309 -0
  133. package/packages/mcp-servers/dist/__testUtils__/schemas.js.map +1 -0
  134. package/packages/mcp-servers/dist/agent-reports/index.d.ts +7 -0
  135. package/packages/mcp-servers/dist/agent-reports/index.d.ts.map +1 -0
  136. package/packages/mcp-servers/dist/agent-reports/index.js +8 -0
  137. package/packages/mcp-servers/dist/agent-reports/index.js.map +1 -0
  138. package/packages/mcp-servers/dist/agent-reports/server.d.ts +22 -0
  139. package/packages/mcp-servers/dist/agent-reports/server.d.ts.map +1 -0
  140. package/packages/mcp-servers/dist/agent-reports/server.js +535 -0
  141. package/packages/mcp-servers/dist/agent-reports/server.js.map +1 -0
  142. package/packages/mcp-servers/dist/agent-reports/types.d.ts +258 -0
  143. package/packages/mcp-servers/dist/agent-reports/types.d.ts.map +1 -0
  144. package/packages/mcp-servers/dist/agent-reports/types.js +81 -0
  145. package/packages/mcp-servers/dist/agent-reports/types.js.map +1 -0
  146. package/packages/mcp-servers/dist/agent-tracker/index.d.ts +5 -0
  147. package/packages/mcp-servers/dist/agent-tracker/index.d.ts.map +1 -0
  148. package/packages/mcp-servers/dist/agent-tracker/index.js +5 -0
  149. package/packages/mcp-servers/dist/agent-tracker/index.js.map +1 -0
  150. package/packages/mcp-servers/dist/agent-tracker/server.d.ts +12 -0
  151. package/packages/mcp-servers/dist/agent-tracker/server.d.ts.map +1 -0
  152. package/packages/mcp-servers/dist/agent-tracker/server.js +919 -0
  153. package/packages/mcp-servers/dist/agent-tracker/server.js.map +1 -0
  154. package/packages/mcp-servers/dist/agent-tracker/types.d.ts +328 -0
  155. package/packages/mcp-servers/dist/agent-tracker/types.d.ts.map +1 -0
  156. package/packages/mcp-servers/dist/agent-tracker/types.js +128 -0
  157. package/packages/mcp-servers/dist/agent-tracker/types.js.map +1 -0
  158. package/packages/mcp-servers/dist/chrome-bridge/browser-tips.d.ts +27 -0
  159. package/packages/mcp-servers/dist/chrome-bridge/browser-tips.d.ts.map +1 -0
  160. package/packages/mcp-servers/dist/chrome-bridge/browser-tips.js +167 -0
  161. package/packages/mcp-servers/dist/chrome-bridge/browser-tips.js.map +1 -0
  162. package/packages/mcp-servers/dist/chrome-bridge/index.d.ts +6 -0
  163. package/packages/mcp-servers/dist/chrome-bridge/index.d.ts.map +1 -0
  164. package/packages/mcp-servers/dist/chrome-bridge/index.js +6 -0
  165. package/packages/mcp-servers/dist/chrome-bridge/index.js.map +1 -0
  166. package/packages/mcp-servers/dist/chrome-bridge/server.d.ts +13 -0
  167. package/packages/mcp-servers/dist/chrome-bridge/server.d.ts.map +1 -0
  168. package/packages/mcp-servers/dist/chrome-bridge/server.js +959 -0
  169. package/packages/mcp-servers/dist/chrome-bridge/server.js.map +1 -0
  170. package/packages/mcp-servers/dist/chrome-bridge/types.d.ts +41 -0
  171. package/packages/mcp-servers/dist/chrome-bridge/types.d.ts.map +1 -0
  172. package/packages/mcp-servers/dist/chrome-bridge/types.js +8 -0
  173. package/packages/mcp-servers/dist/chrome-bridge/types.js.map +1 -0
  174. package/packages/mcp-servers/dist/cloudflare/index.d.ts +8 -0
  175. package/packages/mcp-servers/dist/cloudflare/index.d.ts.map +1 -0
  176. package/packages/mcp-servers/dist/cloudflare/index.js +8 -0
  177. package/packages/mcp-servers/dist/cloudflare/index.js.map +1 -0
  178. package/packages/mcp-servers/dist/cloudflare/server.d.ts +16 -0
  179. package/packages/mcp-servers/dist/cloudflare/server.d.ts.map +1 -0
  180. package/packages/mcp-servers/dist/cloudflare/server.js +253 -0
  181. package/packages/mcp-servers/dist/cloudflare/server.js.map +1 -0
  182. package/packages/mcp-servers/dist/cloudflare/types.d.ts +141 -0
  183. package/packages/mcp-servers/dist/cloudflare/types.d.ts.map +1 -0
  184. package/packages/mcp-servers/dist/cloudflare/types.js +53 -0
  185. package/packages/mcp-servers/dist/cloudflare/types.js.map +1 -0
  186. package/packages/mcp-servers/dist/codecov/index.d.ts +7 -0
  187. package/packages/mcp-servers/dist/codecov/index.d.ts.map +1 -0
  188. package/packages/mcp-servers/dist/codecov/index.js +7 -0
  189. package/packages/mcp-servers/dist/codecov/index.js.map +1 -0
  190. package/packages/mcp-servers/dist/codecov/server.d.ts +21 -0
  191. package/packages/mcp-servers/dist/codecov/server.d.ts.map +1 -0
  192. package/packages/mcp-servers/dist/codecov/server.js +376 -0
  193. package/packages/mcp-servers/dist/codecov/server.js.map +1 -0
  194. package/packages/mcp-servers/dist/codecov/types.d.ts +269 -0
  195. package/packages/mcp-servers/dist/codecov/types.d.ts.map +1 -0
  196. package/packages/mcp-servers/dist/codecov/types.js +128 -0
  197. package/packages/mcp-servers/dist/codecov/types.js.map +1 -0
  198. package/packages/mcp-servers/dist/cto-report/index.d.ts +9 -0
  199. package/packages/mcp-servers/dist/cto-report/index.d.ts.map +1 -0
  200. package/packages/mcp-servers/dist/cto-report/index.js +9 -0
  201. package/packages/mcp-servers/dist/cto-report/index.js.map +1 -0
  202. package/packages/mcp-servers/dist/cto-report/server.d.ts +14 -0
  203. package/packages/mcp-servers/dist/cto-report/server.d.ts.map +1 -0
  204. package/packages/mcp-servers/dist/cto-report/server.js +859 -0
  205. package/packages/mcp-servers/dist/cto-report/server.js.map +1 -0
  206. package/packages/mcp-servers/dist/cto-report/types.d.ts +213 -0
  207. package/packages/mcp-servers/dist/cto-report/types.d.ts.map +1 -0
  208. package/packages/mcp-servers/dist/cto-report/types.js +29 -0
  209. package/packages/mcp-servers/dist/cto-report/types.js.map +1 -0
  210. package/packages/mcp-servers/dist/cto-reports/index.d.ts +7 -0
  211. package/packages/mcp-servers/dist/cto-reports/index.d.ts.map +1 -0
  212. package/packages/mcp-servers/dist/cto-reports/index.js +8 -0
  213. package/packages/mcp-servers/dist/cto-reports/index.js.map +1 -0
  214. package/packages/mcp-servers/dist/cto-reports/server.d.ts +20 -0
  215. package/packages/mcp-servers/dist/cto-reports/server.d.ts.map +1 -0
  216. package/packages/mcp-servers/dist/cto-reports/server.js +538 -0
  217. package/packages/mcp-servers/dist/cto-reports/server.js.map +1 -0
  218. package/packages/mcp-servers/dist/cto-reports/types.d.ts +236 -0
  219. package/packages/mcp-servers/dist/cto-reports/types.d.ts.map +1 -0
  220. package/packages/mcp-servers/dist/cto-reports/types.js +77 -0
  221. package/packages/mcp-servers/dist/cto-reports/types.js.map +1 -0
  222. package/packages/mcp-servers/dist/deputy-cto/index.d.ts +7 -0
  223. package/packages/mcp-servers/dist/deputy-cto/index.d.ts.map +1 -0
  224. package/packages/mcp-servers/dist/deputy-cto/index.js +8 -0
  225. package/packages/mcp-servers/dist/deputy-cto/index.js.map +1 -0
  226. package/packages/mcp-servers/dist/deputy-cto/server.d.ts +23 -0
  227. package/packages/mcp-servers/dist/deputy-cto/server.d.ts.map +1 -0
  228. package/packages/mcp-servers/dist/deputy-cto/server.js +1700 -0
  229. package/packages/mcp-servers/dist/deputy-cto/server.js.map +1 -0
  230. package/packages/mcp-servers/dist/deputy-cto/types.d.ts +439 -0
  231. package/packages/mcp-servers/dist/deputy-cto/types.d.ts.map +1 -0
  232. package/packages/mcp-servers/dist/deputy-cto/types.js +102 -0
  233. package/packages/mcp-servers/dist/deputy-cto/types.js.map +1 -0
  234. package/packages/mcp-servers/dist/elastic-logs/index.d.ts +5 -0
  235. package/packages/mcp-servers/dist/elastic-logs/index.d.ts.map +1 -0
  236. package/packages/mcp-servers/dist/elastic-logs/index.js +5 -0
  237. package/packages/mcp-servers/dist/elastic-logs/index.js.map +1 -0
  238. package/packages/mcp-servers/dist/elastic-logs/server.d.ts +18 -0
  239. package/packages/mcp-servers/dist/elastic-logs/server.d.ts.map +1 -0
  240. package/packages/mcp-servers/dist/elastic-logs/server.js +259 -0
  241. package/packages/mcp-servers/dist/elastic-logs/server.js.map +1 -0
  242. package/packages/mcp-servers/dist/elastic-logs/types.d.ts +107 -0
  243. package/packages/mcp-servers/dist/elastic-logs/types.d.ts.map +1 -0
  244. package/packages/mcp-servers/dist/elastic-logs/types.js +31 -0
  245. package/packages/mcp-servers/dist/elastic-logs/types.js.map +1 -0
  246. package/packages/mcp-servers/dist/feedback-explorer/index.d.ts +2 -0
  247. package/packages/mcp-servers/dist/feedback-explorer/index.d.ts.map +1 -0
  248. package/packages/mcp-servers/dist/feedback-explorer/index.js +2 -0
  249. package/packages/mcp-servers/dist/feedback-explorer/index.js.map +1 -0
  250. package/packages/mcp-servers/dist/feedback-explorer/server.d.ts +21 -0
  251. package/packages/mcp-servers/dist/feedback-explorer/server.d.ts.map +1 -0
  252. package/packages/mcp-servers/dist/feedback-explorer/server.js +580 -0
  253. package/packages/mcp-servers/dist/feedback-explorer/server.js.map +1 -0
  254. package/packages/mcp-servers/dist/feedback-explorer/types.d.ts +331 -0
  255. package/packages/mcp-servers/dist/feedback-explorer/types.d.ts.map +1 -0
  256. package/packages/mcp-servers/dist/feedback-explorer/types.js +40 -0
  257. package/packages/mcp-servers/dist/feedback-explorer/types.js.map +1 -0
  258. package/packages/mcp-servers/dist/feedback-reporter/index.d.ts +9 -0
  259. package/packages/mcp-servers/dist/feedback-reporter/index.d.ts.map +1 -0
  260. package/packages/mcp-servers/dist/feedback-reporter/index.js +9 -0
  261. package/packages/mcp-servers/dist/feedback-reporter/index.js.map +1 -0
  262. package/packages/mcp-servers/dist/feedback-reporter/server.d.ts +36 -0
  263. package/packages/mcp-servers/dist/feedback-reporter/server.d.ts.map +1 -0
  264. package/packages/mcp-servers/dist/feedback-reporter/server.js +392 -0
  265. package/packages/mcp-servers/dist/feedback-reporter/server.js.map +1 -0
  266. package/packages/mcp-servers/dist/feedback-reporter/types.d.ts +152 -0
  267. package/packages/mcp-servers/dist/feedback-reporter/types.d.ts.map +1 -0
  268. package/packages/mcp-servers/dist/feedback-reporter/types.js +67 -0
  269. package/packages/mcp-servers/dist/feedback-reporter/types.js.map +1 -0
  270. package/packages/mcp-servers/dist/github/index.d.ts +7 -0
  271. package/packages/mcp-servers/dist/github/index.d.ts.map +1 -0
  272. package/packages/mcp-servers/dist/github/index.js +7 -0
  273. package/packages/mcp-servers/dist/github/index.js.map +1 -0
  274. package/packages/mcp-servers/dist/github/server.d.ts +15 -0
  275. package/packages/mcp-servers/dist/github/server.d.ts.map +1 -0
  276. package/packages/mcp-servers/dist/github/server.js +686 -0
  277. package/packages/mcp-servers/dist/github/server.js.map +1 -0
  278. package/packages/mcp-servers/dist/github/types.d.ts +660 -0
  279. package/packages/mcp-servers/dist/github/types.d.ts.map +1 -0
  280. package/packages/mcp-servers/dist/github/types.js +209 -0
  281. package/packages/mcp-servers/dist/github/types.js.map +1 -0
  282. package/packages/mcp-servers/dist/index.d.ts +30 -0
  283. package/packages/mcp-servers/dist/index.d.ts.map +1 -0
  284. package/packages/mcp-servers/dist/index.js +32 -0
  285. package/packages/mcp-servers/dist/index.js.map +1 -0
  286. package/packages/mcp-servers/dist/makerkit-docs/index.d.ts +5 -0
  287. package/packages/mcp-servers/dist/makerkit-docs/index.d.ts.map +1 -0
  288. package/packages/mcp-servers/dist/makerkit-docs/index.js +5 -0
  289. package/packages/mcp-servers/dist/makerkit-docs/index.js.map +1 -0
  290. package/packages/mcp-servers/dist/makerkit-docs/server.d.ts +15 -0
  291. package/packages/mcp-servers/dist/makerkit-docs/server.d.ts.map +1 -0
  292. package/packages/mcp-servers/dist/makerkit-docs/server.js +252 -0
  293. package/packages/mcp-servers/dist/makerkit-docs/server.js.map +1 -0
  294. package/packages/mcp-servers/dist/makerkit-docs/types.d.ts +74 -0
  295. package/packages/mcp-servers/dist/makerkit-docs/types.d.ts.map +1 -0
  296. package/packages/mcp-servers/dist/makerkit-docs/types.js +20 -0
  297. package/packages/mcp-servers/dist/makerkit-docs/types.js.map +1 -0
  298. package/packages/mcp-servers/dist/onepassword/index.d.ts +2 -0
  299. package/packages/mcp-servers/dist/onepassword/index.d.ts.map +1 -0
  300. package/packages/mcp-servers/dist/onepassword/index.js +2 -0
  301. package/packages/mcp-servers/dist/onepassword/index.js.map +1 -0
  302. package/packages/mcp-servers/dist/onepassword/server.d.ts +2 -0
  303. package/packages/mcp-servers/dist/onepassword/server.d.ts.map +1 -0
  304. package/packages/mcp-servers/dist/onepassword/server.js +159 -0
  305. package/packages/mcp-servers/dist/onepassword/server.js.map +1 -0
  306. package/packages/mcp-servers/dist/onepassword/types.d.ts +55 -0
  307. package/packages/mcp-servers/dist/onepassword/types.d.ts.map +1 -0
  308. package/packages/mcp-servers/dist/onepassword/types.js +22 -0
  309. package/packages/mcp-servers/dist/onepassword/types.js.map +1 -0
  310. package/packages/mcp-servers/dist/playwright/helpers.d.ts +20 -0
  311. package/packages/mcp-servers/dist/playwright/helpers.d.ts.map +1 -0
  312. package/packages/mcp-servers/dist/playwright/helpers.js +31 -0
  313. package/packages/mcp-servers/dist/playwright/helpers.js.map +1 -0
  314. package/packages/mcp-servers/dist/playwright/index.d.ts +5 -0
  315. package/packages/mcp-servers/dist/playwright/index.d.ts.map +1 -0
  316. package/packages/mcp-servers/dist/playwright/index.js +5 -0
  317. package/packages/mcp-servers/dist/playwright/index.js.map +1 -0
  318. package/packages/mcp-servers/dist/playwright/server.d.ts +13 -0
  319. package/packages/mcp-servers/dist/playwright/server.d.ts.map +1 -0
  320. package/packages/mcp-servers/dist/playwright/server.js +1201 -0
  321. package/packages/mcp-servers/dist/playwright/server.js.map +1 -0
  322. package/packages/mcp-servers/dist/playwright/types.d.ts +216 -0
  323. package/packages/mcp-servers/dist/playwright/types.d.ts.map +1 -0
  324. package/packages/mcp-servers/dist/playwright/types.js +172 -0
  325. package/packages/mcp-servers/dist/playwright/types.js.map +1 -0
  326. package/packages/mcp-servers/dist/playwright-feedback/browser-manager.d.ts +39 -0
  327. package/packages/mcp-servers/dist/playwright-feedback/browser-manager.d.ts.map +1 -0
  328. package/packages/mcp-servers/dist/playwright-feedback/browser-manager.js +71 -0
  329. package/packages/mcp-servers/dist/playwright-feedback/browser-manager.js.map +1 -0
  330. package/packages/mcp-servers/dist/playwright-feedback/index.d.ts +5 -0
  331. package/packages/mcp-servers/dist/playwright-feedback/index.d.ts.map +1 -0
  332. package/packages/mcp-servers/dist/playwright-feedback/index.js +5 -0
  333. package/packages/mcp-servers/dist/playwright-feedback/index.js.map +1 -0
  334. package/packages/mcp-servers/dist/playwright-feedback/server.d.ts +34 -0
  335. package/packages/mcp-servers/dist/playwright-feedback/server.d.ts.map +1 -0
  336. package/packages/mcp-servers/dist/playwright-feedback/server.js +538 -0
  337. package/packages/mcp-servers/dist/playwright-feedback/server.js.map +1 -0
  338. package/packages/mcp-servers/dist/playwright-feedback/types.d.ts +305 -0
  339. package/packages/mcp-servers/dist/playwright-feedback/types.d.ts.map +1 -0
  340. package/packages/mcp-servers/dist/playwright-feedback/types.js +123 -0
  341. package/packages/mcp-servers/dist/playwright-feedback/types.js.map +1 -0
  342. package/packages/mcp-servers/dist/product-manager/server.d.ts +17 -0
  343. package/packages/mcp-servers/dist/product-manager/server.d.ts.map +1 -0
  344. package/packages/mcp-servers/dist/product-manager/server.js +690 -0
  345. package/packages/mcp-servers/dist/product-manager/server.js.map +1 -0
  346. package/packages/mcp-servers/dist/product-manager/types.d.ts +286 -0
  347. package/packages/mcp-servers/dist/product-manager/types.d.ts.map +1 -0
  348. package/packages/mcp-servers/dist/product-manager/types.js +99 -0
  349. package/packages/mcp-servers/dist/product-manager/types.js.map +1 -0
  350. package/packages/mcp-servers/dist/programmatic-feedback/index.d.ts +7 -0
  351. package/packages/mcp-servers/dist/programmatic-feedback/index.d.ts.map +1 -0
  352. package/packages/mcp-servers/dist/programmatic-feedback/index.js +7 -0
  353. package/packages/mcp-servers/dist/programmatic-feedback/index.js.map +1 -0
  354. package/packages/mcp-servers/dist/programmatic-feedback/sandbox.d.ts +19 -0
  355. package/packages/mcp-servers/dist/programmatic-feedback/sandbox.d.ts.map +1 -0
  356. package/packages/mcp-servers/dist/programmatic-feedback/sandbox.js +174 -0
  357. package/packages/mcp-servers/dist/programmatic-feedback/sandbox.js.map +1 -0
  358. package/packages/mcp-servers/dist/programmatic-feedback/server.d.ts +35 -0
  359. package/packages/mcp-servers/dist/programmatic-feedback/server.d.ts.map +1 -0
  360. package/packages/mcp-servers/dist/programmatic-feedback/server.js +465 -0
  361. package/packages/mcp-servers/dist/programmatic-feedback/server.js.map +1 -0
  362. package/packages/mcp-servers/dist/programmatic-feedback/types.d.ts +127 -0
  363. package/packages/mcp-servers/dist/programmatic-feedback/types.d.ts.map +1 -0
  364. package/packages/mcp-servers/dist/programmatic-feedback/types.js +80 -0
  365. package/packages/mcp-servers/dist/programmatic-feedback/types.js.map +1 -0
  366. package/packages/mcp-servers/dist/render/index.d.ts +8 -0
  367. package/packages/mcp-servers/dist/render/index.d.ts.map +1 -0
  368. package/packages/mcp-servers/dist/render/index.js +8 -0
  369. package/packages/mcp-servers/dist/render/index.js.map +1 -0
  370. package/packages/mcp-servers/dist/render/server.d.ts +15 -0
  371. package/packages/mcp-servers/dist/render/server.d.ts.map +1 -0
  372. package/packages/mcp-servers/dist/render/server.js +428 -0
  373. package/packages/mcp-servers/dist/render/server.js.map +1 -0
  374. package/packages/mcp-servers/dist/render/types.d.ts +273 -0
  375. package/packages/mcp-servers/dist/render/types.d.ts.map +1 -0
  376. package/packages/mcp-servers/dist/render/types.js +102 -0
  377. package/packages/mcp-servers/dist/render/types.js.map +1 -0
  378. package/packages/mcp-servers/dist/resend/index.d.ts +7 -0
  379. package/packages/mcp-servers/dist/resend/index.d.ts.map +1 -0
  380. package/packages/mcp-servers/dist/resend/index.js +7 -0
  381. package/packages/mcp-servers/dist/resend/index.js.map +1 -0
  382. package/packages/mcp-servers/dist/resend/server.d.ts +15 -0
  383. package/packages/mcp-servers/dist/resend/server.d.ts.map +1 -0
  384. package/packages/mcp-servers/dist/resend/server.js +298 -0
  385. package/packages/mcp-servers/dist/resend/server.js.map +1 -0
  386. package/packages/mcp-servers/dist/resend/types.d.ts +222 -0
  387. package/packages/mcp-servers/dist/resend/types.d.ts.map +1 -0
  388. package/packages/mcp-servers/dist/resend/types.js +58 -0
  389. package/packages/mcp-servers/dist/resend/types.js.map +1 -0
  390. package/packages/mcp-servers/dist/review-queue/index.d.ts +6 -0
  391. package/packages/mcp-servers/dist/review-queue/index.d.ts.map +1 -0
  392. package/packages/mcp-servers/dist/review-queue/index.js +6 -0
  393. package/packages/mcp-servers/dist/review-queue/index.js.map +1 -0
  394. package/packages/mcp-servers/dist/review-queue/server.d.ts +17 -0
  395. package/packages/mcp-servers/dist/review-queue/server.d.ts.map +1 -0
  396. package/packages/mcp-servers/dist/review-queue/server.js +348 -0
  397. package/packages/mcp-servers/dist/review-queue/server.js.map +1 -0
  398. package/packages/mcp-servers/dist/review-queue/types.d.ts +162 -0
  399. package/packages/mcp-servers/dist/review-queue/types.d.ts.map +1 -0
  400. package/packages/mcp-servers/dist/review-queue/types.js +56 -0
  401. package/packages/mcp-servers/dist/review-queue/types.js.map +1 -0
  402. package/packages/mcp-servers/dist/secret-sync/server.d.ts +19 -0
  403. package/packages/mcp-servers/dist/secret-sync/server.d.ts.map +1 -0
  404. package/packages/mcp-servers/dist/secret-sync/server.js +1139 -0
  405. package/packages/mcp-servers/dist/secret-sync/server.js.map +1 -0
  406. package/packages/mcp-servers/dist/secret-sync/types.d.ts +442 -0
  407. package/packages/mcp-servers/dist/secret-sync/types.d.ts.map +1 -0
  408. package/packages/mcp-servers/dist/secret-sync/types.js +113 -0
  409. package/packages/mcp-servers/dist/secret-sync/types.js.map +1 -0
  410. package/packages/mcp-servers/dist/session-events/index.d.ts +5 -0
  411. package/packages/mcp-servers/dist/session-events/index.d.ts.map +1 -0
  412. package/packages/mcp-servers/dist/session-events/index.js +5 -0
  413. package/packages/mcp-servers/dist/session-events/index.js.map +1 -0
  414. package/packages/mcp-servers/dist/session-events/server.d.ts +11 -0
  415. package/packages/mcp-servers/dist/session-events/server.d.ts.map +1 -0
  416. package/packages/mcp-servers/dist/session-events/server.js +290 -0
  417. package/packages/mcp-servers/dist/session-events/server.js.map +1 -0
  418. package/packages/mcp-servers/dist/session-events/types.d.ts +213 -0
  419. package/packages/mcp-servers/dist/session-events/types.d.ts.map +1 -0
  420. package/packages/mcp-servers/dist/session-events/types.js +69 -0
  421. package/packages/mcp-servers/dist/session-events/types.js.map +1 -0
  422. package/packages/mcp-servers/dist/session-restart/index.d.ts +9 -0
  423. package/packages/mcp-servers/dist/session-restart/index.d.ts.map +1 -0
  424. package/packages/mcp-servers/dist/session-restart/index.js +9 -0
  425. package/packages/mcp-servers/dist/session-restart/index.js.map +1 -0
  426. package/packages/mcp-servers/dist/session-restart/server.d.ts +20 -0
  427. package/packages/mcp-servers/dist/session-restart/server.d.ts.map +1 -0
  428. package/packages/mcp-servers/dist/session-restart/server.js +411 -0
  429. package/packages/mcp-servers/dist/session-restart/server.js.map +1 -0
  430. package/packages/mcp-servers/dist/session-restart/types.d.ts +26 -0
  431. package/packages/mcp-servers/dist/session-restart/types.d.ts.map +1 -0
  432. package/packages/mcp-servers/dist/session-restart/types.js +16 -0
  433. package/packages/mcp-servers/dist/session-restart/types.js.map +1 -0
  434. package/packages/mcp-servers/dist/setup-helper/index.d.ts +5 -0
  435. package/packages/mcp-servers/dist/setup-helper/index.d.ts.map +1 -0
  436. package/packages/mcp-servers/dist/setup-helper/index.js +5 -0
  437. package/packages/mcp-servers/dist/setup-helper/index.js.map +1 -0
  438. package/packages/mcp-servers/dist/setup-helper/server.d.ts +14 -0
  439. package/packages/mcp-servers/dist/setup-helper/server.d.ts.map +1 -0
  440. package/packages/mcp-servers/dist/setup-helper/server.js +454 -0
  441. package/packages/mcp-servers/dist/setup-helper/server.js.map +1 -0
  442. package/packages/mcp-servers/dist/setup-helper/types.d.ts +81 -0
  443. package/packages/mcp-servers/dist/setup-helper/types.d.ts.map +1 -0
  444. package/packages/mcp-servers/dist/setup-helper/types.js +41 -0
  445. package/packages/mcp-servers/dist/setup-helper/types.js.map +1 -0
  446. package/packages/mcp-servers/dist/shared/audited-server.d.ts +31 -0
  447. package/packages/mcp-servers/dist/shared/audited-server.d.ts.map +1 -0
  448. package/packages/mcp-servers/dist/shared/audited-server.js +126 -0
  449. package/packages/mcp-servers/dist/shared/audited-server.js.map +1 -0
  450. package/packages/mcp-servers/dist/shared/constants.d.ts +26 -0
  451. package/packages/mcp-servers/dist/shared/constants.d.ts.map +1 -0
  452. package/packages/mcp-servers/dist/shared/constants.js +41 -0
  453. package/packages/mcp-servers/dist/shared/constants.js.map +1 -0
  454. package/packages/mcp-servers/dist/shared/index.d.ts +6 -0
  455. package/packages/mcp-servers/dist/shared/index.d.ts.map +1 -0
  456. package/packages/mcp-servers/dist/shared/index.js +6 -0
  457. package/packages/mcp-servers/dist/shared/index.js.map +1 -0
  458. package/packages/mcp-servers/dist/shared/readonly-db.d.ts +11 -0
  459. package/packages/mcp-servers/dist/shared/readonly-db.d.ts.map +1 -0
  460. package/packages/mcp-servers/dist/shared/readonly-db.js +47 -0
  461. package/packages/mcp-servers/dist/shared/readonly-db.js.map +1 -0
  462. package/packages/mcp-servers/dist/shared/resolve-framework.d.ts +20 -0
  463. package/packages/mcp-servers/dist/shared/resolve-framework.d.ts.map +1 -0
  464. package/packages/mcp-servers/dist/shared/resolve-framework.js +65 -0
  465. package/packages/mcp-servers/dist/shared/resolve-framework.js.map +1 -0
  466. package/packages/mcp-servers/dist/shared/server.d.ts +86 -0
  467. package/packages/mcp-servers/dist/shared/server.d.ts.map +1 -0
  468. package/packages/mcp-servers/dist/shared/server.js +291 -0
  469. package/packages/mcp-servers/dist/shared/server.js.map +1 -0
  470. package/packages/mcp-servers/dist/shared/types.d.ts +113 -0
  471. package/packages/mcp-servers/dist/shared/types.d.ts.map +1 -0
  472. package/packages/mcp-servers/dist/shared/types.js +36 -0
  473. package/packages/mcp-servers/dist/shared/types.js.map +1 -0
  474. package/packages/mcp-servers/dist/show/server.d.ts +12 -0
  475. package/packages/mcp-servers/dist/show/server.d.ts.map +1 -0
  476. package/packages/mcp-servers/dist/show/server.js +97 -0
  477. package/packages/mcp-servers/dist/show/server.js.map +1 -0
  478. package/packages/mcp-servers/dist/show/types.d.ts +19 -0
  479. package/packages/mcp-servers/dist/show/types.d.ts.map +1 -0
  480. package/packages/mcp-servers/dist/show/types.js +32 -0
  481. package/packages/mcp-servers/dist/show/types.js.map +1 -0
  482. package/packages/mcp-servers/dist/specs-browser/index.d.ts +5 -0
  483. package/packages/mcp-servers/dist/specs-browser/index.d.ts.map +1 -0
  484. package/packages/mcp-servers/dist/specs-browser/index.js +5 -0
  485. package/packages/mcp-servers/dist/specs-browser/index.js.map +1 -0
  486. package/packages/mcp-servers/dist/specs-browser/server.d.ts +13 -0
  487. package/packages/mcp-servers/dist/specs-browser/server.d.ts.map +1 -0
  488. package/packages/mcp-servers/dist/specs-browser/server.js +692 -0
  489. package/packages/mcp-servers/dist/specs-browser/server.js.map +1 -0
  490. package/packages/mcp-servers/dist/specs-browser/types.d.ts +337 -0
  491. package/packages/mcp-servers/dist/specs-browser/types.d.ts.map +1 -0
  492. package/packages/mcp-servers/dist/specs-browser/types.js +134 -0
  493. package/packages/mcp-servers/dist/specs-browser/types.js.map +1 -0
  494. package/packages/mcp-servers/dist/supabase/index.d.ts +10 -0
  495. package/packages/mcp-servers/dist/supabase/index.d.ts.map +1 -0
  496. package/packages/mcp-servers/dist/supabase/index.js +10 -0
  497. package/packages/mcp-servers/dist/supabase/index.js.map +1 -0
  498. package/packages/mcp-servers/dist/supabase/server.d.ts +20 -0
  499. package/packages/mcp-servers/dist/supabase/server.d.ts.map +1 -0
  500. package/packages/mcp-servers/dist/supabase/server.js +451 -0
  501. package/packages/mcp-servers/dist/supabase/server.js.map +1 -0
  502. package/packages/mcp-servers/dist/supabase/types.d.ts +196 -0
  503. package/packages/mcp-servers/dist/supabase/types.d.ts.map +1 -0
  504. package/packages/mcp-servers/dist/supabase/types.js +76 -0
  505. package/packages/mcp-servers/dist/supabase/types.js.map +1 -0
  506. package/packages/mcp-servers/dist/todo-db/index.d.ts +5 -0
  507. package/packages/mcp-servers/dist/todo-db/index.d.ts.map +1 -0
  508. package/packages/mcp-servers/dist/todo-db/index.js +5 -0
  509. package/packages/mcp-servers/dist/todo-db/index.js.map +1 -0
  510. package/packages/mcp-servers/dist/todo-db/server.d.ts +13 -0
  511. package/packages/mcp-servers/dist/todo-db/server.d.ts.map +1 -0
  512. package/packages/mcp-servers/dist/todo-db/server.js +649 -0
  513. package/packages/mcp-servers/dist/todo-db/server.js.map +1 -0
  514. package/packages/mcp-servers/dist/todo-db/types.d.ts +225 -0
  515. package/packages/mcp-servers/dist/todo-db/types.d.ts.map +1 -0
  516. package/packages/mcp-servers/dist/todo-db/types.js +69 -0
  517. package/packages/mcp-servers/dist/todo-db/types.js.map +1 -0
  518. package/packages/mcp-servers/dist/user-feedback/index.d.ts +7 -0
  519. package/packages/mcp-servers/dist/user-feedback/index.d.ts.map +1 -0
  520. package/packages/mcp-servers/dist/user-feedback/index.js +8 -0
  521. package/packages/mcp-servers/dist/user-feedback/index.js.map +1 -0
  522. package/packages/mcp-servers/dist/user-feedback/server.d.ts +25 -0
  523. package/packages/mcp-servers/dist/user-feedback/server.d.ts.map +1 -0
  524. package/packages/mcp-servers/dist/user-feedback/server.js +914 -0
  525. package/packages/mcp-servers/dist/user-feedback/server.js.map +1 -0
  526. package/packages/mcp-servers/dist/user-feedback/types.d.ts +415 -0
  527. package/packages/mcp-servers/dist/user-feedback/types.d.ts.map +1 -0
  528. package/packages/mcp-servers/dist/user-feedback/types.js +132 -0
  529. package/packages/mcp-servers/dist/user-feedback/types.js.map +1 -0
  530. package/packages/mcp-servers/dist/vercel/index.d.ts +9 -0
  531. package/packages/mcp-servers/dist/vercel/index.d.ts.map +1 -0
  532. package/packages/mcp-servers/dist/vercel/index.js +9 -0
  533. package/packages/mcp-servers/dist/vercel/index.js.map +1 -0
  534. package/packages/mcp-servers/dist/vercel/server.d.ts +17 -0
  535. package/packages/mcp-servers/dist/vercel/server.d.ts.map +1 -0
  536. package/packages/mcp-servers/dist/vercel/server.js +265 -0
  537. package/packages/mcp-servers/dist/vercel/server.js.map +1 -0
  538. package/packages/mcp-servers/dist/vercel/types.d.ts +189 -0
  539. package/packages/mcp-servers/dist/vercel/types.d.ts.map +1 -0
  540. package/packages/mcp-servers/dist/vercel/types.js +65 -0
  541. package/packages/mcp-servers/dist/vercel/types.js.map +1 -0
  542. package/packages/mcp-servers/package-lock.json +3765 -0
  543. package/packages/mcp-servers/package.json +64 -0
  544. package/packages/mcp-servers/test/reporters/test-failure-reporter.ts +372 -0
  545. package/packages/mcp-servers/vitest.config.ts +27 -0
  546. package/scripts/__tests__/README.md +163 -0
  547. package/scripts/apply-credential-hardening.sh +271 -0
  548. package/scripts/credential-providers/manual.js +56 -0
  549. package/scripts/credential-providers/onepassword.js +85 -0
  550. package/scripts/credential-providers/provider-interface.js +104 -0
  551. package/scripts/encrypt-credential.js +337 -0
  552. package/scripts/feedback-launcher.js +338 -0
  553. package/scripts/feedback-orchestrator.js +373 -0
  554. package/scripts/fix-mcp-launcher-issues.sh +97 -0
  555. package/scripts/force-spawn-tasks.js +651 -0
  556. package/scripts/force-triage-reports.js +560 -0
  557. package/scripts/generate-protected-actions-spec.js +142 -0
  558. package/scripts/generate-proxy-certs.sh +158 -0
  559. package/scripts/grant-chrome-ext-permissions.sh +242 -0
  560. package/scripts/mcp-launcher.js +125 -0
  561. package/scripts/merge-settings.cjs +167 -0
  562. package/scripts/patch-clawd.py +844 -0
  563. package/scripts/patch-credential-cache.py +313 -0
  564. package/scripts/patches/credential-file-guard-patched.mjs +573 -0
  565. package/scripts/patches/credential-file-guard.js.patched +573 -0
  566. package/scripts/patches/verify-tokenizer.mjs +132 -0
  567. package/scripts/protect-framework.sh +478 -0
  568. package/scripts/readme-chrome.template +12 -0
  569. package/scripts/reap-completed-agents.js +439 -0
  570. package/scripts/reinstall.sh +86 -0
  571. package/scripts/resign-node.sh +185 -0
  572. package/scripts/rotation-proxy.js +656 -0
  573. package/scripts/rotation-stress-monitor.mjs +862 -0
  574. package/scripts/setup-automation-service.sh +648 -0
  575. package/scripts/setup-check.js +251 -0
  576. package/scripts/watch-claude-version.js +142 -0
  577. package/specs/framework/CORE-INVARIANTS.md +161 -0
  578. package/specs/patterns/AGENT-PATTERNS.md +223 -0
  579. package/specs/patterns/HOOK-PATTERNS.md +242 -0
  580. package/specs/patterns/MCP-SERVER-PATTERNS.md +144 -0
  581. package/templates/config/gitignore.template +14 -0
  582. package/templates/config/merge-chain-check.yml.template +51 -0
  583. package/templates/config/package.json.template +18 -0
  584. package/templates/config/pnpm-workspace.yaml +5 -0
  585. package/templates/config/services.json.template +18 -0
  586. package/templates/config/tsconfig.base.json +17 -0
  587. package/templates/scaffold/integrations/_template/.gitkeep +0 -0
  588. package/templates/scaffold/packages/logger/package.json +17 -0
  589. package/templates/scaffold/packages/logger/src/logger.ts +44 -0
  590. package/templates/scaffold/packages/shared/package.json +17 -0
  591. package/templates/scaffold/packages/shared/src/errors.ts +43 -0
  592. package/templates/scaffold/products/_product/apps/backend/package.json +21 -0
  593. package/templates/scaffold/products/_product/apps/backend/src/index.ts +17 -0
  594. package/templates/scaffold/products/_product/apps/extension/.gitkeep +0 -0
  595. package/templates/scaffold/products/_product/apps/web/.gitkeep +0 -0
  596. package/templates/scaffold/specs/global/.gitkeep +0 -0
  597. package/templates/scaffold/specs/local/.gitkeep +0 -0
  598. package/templates/scaffold/specs/reference/.gitkeep +0 -0
  599. package/version.json +15 -0
@@ -0,0 +1,372 @@
1
+ # GENTYR: Autonomous AI Engineering Team
2
+ **G**odlike **E**ntity, **N**ot **T**echnically **Y**our **R**eplacement
3
+
4
+ ## The Problem
5
+
6
+ AI coding agents hallucinate, cut corners, and make autonomous decisions that undermine code quality. Without governance, they'll disable tests, leave placeholder code, and drift from requirements—all while appearing to work. GENTYR transforms Claude from an unreliable assistant into a managed engineering team with human oversight.
7
+
8
+ ---
9
+
10
+ ## 6 Key Challenges & Solutions
11
+
12
+ ### 1. Hallucinated Code
13
+ - **Problem**: AI writes code that appears functional but contains stubs, mocks, or random number generators masquerading as real implementations.
14
+ - **Solution**: Spec enforcement prohibits placeholder code; commit review gate and code reviewer agent reject incomplete implementations.
15
+
16
+ ### 2. Quality Sabotage
17
+ - **Problem**: To achieve goals faster, AI disables tests, weakens linting rules, or skips verification steps.
18
+ - **Solution**: Critical config files are root-owned (immutable to agents); hooks block any attempt to bypass verification.
19
+
20
+ ### 3. Context Fragmentation
21
+ - **Problem**: Different tasks require different expertise, but a single agent can't be expert at everything.
22
+ - **Solution**: 8 specialized agents with domain-optimized prompts; task routing sends work to the right specialist.
23
+
24
+ ### 4. Specification Drift
25
+ - **Problem**: Without persistent requirements tracking, features drift from intent over multiple sessions.
26
+ - **Solution**: Specs directory persists across sessions; all agents query specs before implementing; compliance checker enforces mappings.
27
+
28
+ ### 5. Attention Bandwidth
29
+ - **Problem**: Human can only actively monitor 2-3 sessions while background issues accumulate.
30
+ - **Solution**: Hourly automation handles routine tasks; CTO notification hook shows status on every prompt; issues queue for batch review.
31
+
32
+ ### 6. Autonomous Overreach
33
+ - **Problem**: Background agents making critical decisions without human input creates risk.
34
+ - **Solution**: Deputy-CTO escalates ambiguous cases; critical decisions wait for human input; only humans can authorize emergency bypasses.
35
+
36
+ ---
37
+
38
+ ## Capability Inventory
39
+
40
+ | Capability | What It Does & Why It Matters |
41
+ |------------|-------------------------------|
42
+ | **Commit Approval Gate** | Every commit requires deputy-cto review before merge, preventing broken or malicious code from entering the codebase. |
43
+ | **Specification Enforcement** | Antipattern hunters scan code against project specs, catching violations before they compound. |
44
+ | **Multi-Agent Specialization** | 8 specialized agents ensure each task gets domain expertise rather than generalist guessing. |
45
+ | **Task Orchestration** | Cross-agent todo system coordinates work across sessions, preventing duplicate effort and dropped tasks. |
46
+ | **CTO Escalation Queue** | Agents bubble up questions and decisions to human CTO rather than guessing wrong. |
47
+ | **Emergency Bypass** | Human-only approval mechanism for urgent situations, cryptographically tied to user input. |
48
+ | **Background Automation** | Hourly task runner handles lint fixes, report triage, and plan execution without human prompting. |
49
+ | **API Quota Management** | Multi-key rotation and usage optimization prevents quota exhaustion mid-task. |
50
+ | **Audit Trail** | Every agent spawn, decision, and task completion is logged for accountability. |
51
+ | **Framework Separation** | GENTYR installs as symlinks, keeping framework code separate from project code. |
52
+
53
+ ---
54
+
55
+ ## Architecture
56
+
57
+ ```
58
+ ┌──────────────────────────────────┐ ┌──────────────────────────────────┐
59
+ │ GENTYR FRAMEWORK │ │ YOUR PROJECT │
60
+ │ (central repo) │ │ (any repo) │
61
+ │ │ │ │
62
+ │ packages/ │ │ src/ │
63
+ │ └─ mcp-servers/ │ │ tests/ │
64
+ │ ├─ todo-db │ │ specs/ │
65
+ │ ├─ deputy-cto │ │ CLAUDE.md │
66
+ │ ├─ specs-browser │ │ │
67
+ │ └─ ... │ │ .claude/ │
68
+ │ │ │ ├─ agents/ ←───────────────────┼──── symlink
69
+ │ .claude/ │ │ ├─ hooks/ ←────────────────────┼──── symlink
70
+ │ ├─ agents/ ─────────────────────────┼───→ │
71
+ │ ├─ hooks/ ─────────────────────────┼───→ │
72
+ │ └─ skills/ ─────────────────────────┼───→ skills/ ←────────────────────┼──── symlink
73
+ │ │ │ │ │
74
+ │ │ │ └─ LOCAL DATA (not symlinked) │
75
+ │ │ │ ├─ todo.db │
76
+ │ │ │ ├─ deputy-cto.db │
77
+ │ │ │ └─ reports.db │
78
+ └──────────────────────────────────┘ └──────────────────────────────────┘
79
+
80
+ SHARED CODE PROJECT STATE
81
+ (update once, all projects (isolated per project,
82
+ get changes automatically) never shared)
83
+ ```
84
+
85
+ **How it works:**
86
+ 1. Install GENTYR once on your machine
87
+ 2. Run install script in any project → creates symlinks to GENTYR's agents, hooks, and skills
88
+ 3. Claude Code in that project now uses GENTYR's governance
89
+ 4. Each project maintains its own databases (tasks, decisions, reports)
90
+
91
+ ### MCP Servers (9 Tool APIs)
92
+ - **todo-db** - Task tracking and cross-agent coordination
93
+ - **deputy-cto** - Decision queue and approval management
94
+ - **agent-reports** - Escalation and issue reporting
95
+ - **specs-browser** - Specification lookup and compliance queries
96
+ - **review-queue** - Code review tracking and status
97
+ - **agent-tracker** - Agent spawn monitoring and audit trail
98
+ - **session-events** - Session lifecycle and state management
99
+ - **cto-report** - Executive status dashboard and metrics
100
+ - **cto-reports** - Historical report storage and retrieval
101
+
102
+ ### Specialized Agents (8 Domain Experts)
103
+ - **investigator** - Root cause analysis and debugging
104
+ - **code-writer** - Implementation with spec compliance
105
+ - **test-writer** - Test coverage and validation
106
+ - **code-reviewer** - Pre-commit quality review
107
+ - **project-manager** - Task coordination and prioritization
108
+ - **deputy-cto** - Escalation filtering and CTO briefings
109
+ - **antipattern-hunter** - Spec violation detection
110
+ - **repo-hygiene-expert** - Architecture and dead code analysis
111
+
112
+ ### Automation Hooks (15 Event Handlers)
113
+ - **pre-commit-review** - Triggers deputy-cto review before commits
114
+ - **block-no-verify** - Prevents git hook bypass attempts
115
+ - **compliance-checker** - Scans code against spec mappings
116
+ - **antipattern-hunter-hook** - Detects spec violations on file changes
117
+ - **cto-notification-hook** - Displays status on every prompt
118
+ - **hourly-automation** - Background task execution
119
+ - **api-key-watcher** - Quota monitoring and key rotation
120
+ - **usage-optimizer** - API cost optimization
121
+ - **agent-tracker** - Logs all agent spawns
122
+ - **plan-executor** - Runs approved implementation plans
123
+ - **todo-maintenance** - Task list cleanup and updates
124
+ - **bypass-approval-hook** - Emergency bypass authorization
125
+ - **mapping-validator** - Spec-to-code mapping verification
126
+ - **schema-mapper-hook** - Automatic spec mapping suggestions
127
+ - **config-reader** - Centralized configuration access
128
+
129
+ ---
130
+
131
+ ## Protection Model
132
+
133
+ Critical hooks are root-owned, making them immutable to AI agents. Only human CTO can:
134
+
135
+ - Approve emergency bypasses
136
+ - Modify commit review logic
137
+ - Disable protections
138
+
139
+ This creates a trust hierarchy where agents operate within boundaries they cannot modify.
140
+
141
+ ---
142
+
143
+ ## CTO Status Dashboard (`/cto-report`)
144
+
145
+ The `/cto-report` command launches an Ink-based (React for CLIs) dashboard that provides real-time visibility into the entire GENTYR system. Features include:
146
+
147
+ - **Rounded corner containers** using Ink's `borderStyle: 'round'`
148
+ - **Color-coded quota bars** (green/yellow/red based on usage)
149
+ - **Account overview section** with per-account quota bars (5h, 7d, 7d-sonnet), status indicators, subscription types, and 24h rotation event timeline
150
+ - **Usage trend line graphs** showing 5h and 7d history with trajectory forecast overlay
151
+ - **Usage trajectory projections** with linear regression
152
+ - **Testing health section** with 42-bucket activity graph (4h resolution), Codecov sparkline, agent framework breakdown
153
+ - **Deployments section** with 3-stage pipeline header, per-platform deploy tables (Render/Vercel, 5 entries each), combined deploy timeline, and DeployStats footer (success rate, failure count, frequency)
154
+ - **Infrastructure health section** with 5-provider status dots (Render, Vercel, Supabase, Elasticsearch, Cloudflare), per-platform event tables, Cloudflare nameservers, and load metrics
155
+ - **Logging section** with Elasticsearch log volume timeseries graph, level/service bar charts, top errors/warnings tables, source coverage assessment dots, and storage estimates
156
+ - **Automated instances table** with 24h run counts, time-until-next, frequency adjustments, and token usage bar chart by automation type
157
+ - **Chronological timeline** of all system activity
158
+ - **Metrics summary grid** with nested boxes
159
+
160
+ ```
161
+ ╭──────────────────────────────────────────────────────────────────────────────╮
162
+ │ GENTYR CTO DASHBOARD Period: Last 24h │
163
+ │ Generated: 2026-01-23 16:45 │
164
+ ╰──────────────────────────────────────────────────────────────────────────────╯
165
+
166
+ ╭──────────────────────────────────╮ ╭──────────────────────────────────╮
167
+ │ QUOTA & CAPACITY (3 keys) │ │ SYSTEM STATUS │
168
+ │ 5-hour ████████░░░░░░░░ 45% │ │ Deputy CTO: ENABLED (in 15m) │
169
+ │ 7-day ██████░░░░░░░░░░ 38% │ │ Protection: PROTECTED │
170
+ │ Rotations (24h): 2 │ │ Commits: ALLOWED │
171
+ ╰──────────────────────────────────╯ ╰──────────────────────────────────╯
172
+
173
+ ╭────────────────────────────────────────────────────╮
174
+ │ USAGE TRENDS │
175
+ │ 5-Hour Usage (30 snapshots, 5h ago to now) │
176
+ │ ▁▁▁▁▁▁▁▃▃▃▃▃▃▆▆▆▆▆▆██████ │
177
+ │ ▁▁▁▁▁▁▄▄▄▄▄▄█████████████████████████ │
178
+ │ ▃▃▃▃▃▃█████████████████████████████████████ │
179
+ │ Current: 45% Min: 12% Max: 45% │
180
+ │ │
181
+ │ 7-Day Usage │
182
+ │ ▁▁▁▁▁▁▅▅▅▅▅▅██████ │
183
+ │ ▂▂▂▂▂▂▆▆▆▆▆▆▆██████████████████ │
184
+ │ ▃▃▃▃▃▃▇▇▇▇▇▇███████████████████████████████ │
185
+ │ Current: 38% Min: 8% Max: 38% │
186
+ ╰────────────────────────────────────────────────────╯
187
+
188
+ ╭──────────────────────────────────────────────────────────────────────╮
189
+ │ USAGE TRAJECTORY │
190
+ │ 5-Hour Window 7-Day Window │
191
+ │ ├─ Current: 45% ├─ Current: 38% │
192
+ │ ├─ At Reset: 72% ↑ ├─ At Reset: 52% ↑ │
193
+ │ ├─ Reset In: 2h 15m ├─ Reset In: 3d 4h │
194
+ │ └─ Trend: +5.4%/hr ↑ └─ Trend: +2.1%/day ↑ │
195
+ │ │
196
+ │ Projection Method: Linear regression on last 30 snapshots │
197
+ ╰──────────────────────────────────────────────────────────────────────╯
198
+
199
+ ╭──────────────────────────────────────────────────────────────────────────────╮
200
+ │ AUTOMATED INSTANCES │
201
+ │ Type Runs (24h) Next Run Delta Freq Adj │
202
+ │ ──────────────────────────────────────────────────────────────────────────── │
203
+ │ CLAUDE.md Refactor 3 in 42m +5m34s +15% slower │
204
+ │ Todo Maintenance 8 in 18m -2m10s -10% faster │
205
+ │ Plan Executor 2 in 1h 05m +12m00s +25% slower │
206
+ │ Antipattern Hunter 4 in 55m — baseline │
207
+ │ Triage Check 24 in 3m — baseline │
208
+ │ Lint Checker 6 in 12m — baseline │
209
+ │ ──────────────────────────────────────────────────────────────────────────── │
210
+ │ Pre-Commit Hook 12 on commit — — │
211
+ │ Test Suite 1 on failure — — │
212
+ │ Compliance Checker 5 on change — — │
213
+ │ │
214
+ │ Usage Target: 90% | Current Projected: 87% | Adjusting: ↑ intervals │
215
+ ╰──────────────────────────────────────────────────────────────────────────────╯
216
+
217
+ ╭──────────────────────────────────────────────────────────────────────────────╮
218
+ │ TIMELINE (24h) │
219
+ │ 16:42 ● HOOK pre-commit-review │
220
+ │ └─ deputy-cto-review: "Review commit abc123" │
221
+ │ │
222
+ │ 16:30 ◆ REPORT Security concern [HIGH] │
223
+ │ └─ From: code-reviewer | Status: escalated │
224
+ │ │
225
+ │ 16:15 ○ SESSION 5b420f2c... │
226
+ │ └─ User session (manual) │
227
+ │ │
228
+ │ 15:45 ■ TASK Implement login flow │
229
+ │ └─ Section: CODE-REVIEWER │
230
+ ╰──────────────────────────────────────────────────────────────────────────────╯
231
+
232
+ ╭──────────────────────────────────────────────────────────────────────────────╮
233
+ │ METRICS SUMMARY │
234
+ │ ╭──────────────╮ ╭──────────────╮ ╭──────────────╮ ╭──────────────╮ │
235
+ │ │ Tokens │ │ Sessions │ │ Agents │ │ Tasks │ │
236
+ │ │ In: 2.4M │ │ Task: 47 │ │ Spawns: 12 │ │ Pending: 3 │ │
237
+ │ │ Out: 890K │ │ User: 12 │ │ Types: 5 │ │ Active: 1 │ │
238
+ │ │ Cache: 83% │ │ Total: 59 │ │ │ │ Done: 28 │ │
239
+ │ ╰──────────────╯ ╰──────────────╯ ╰──────────────╯ ╰──────────────╯ │
240
+ │ │
241
+ │ ╭───────────────╮ ╭──────────────╮ ╭───────────────╮ ╭──────────────╮ │
242
+ │ │ Hooks (24h) │ │ Triage │ │ CTO Queue │ │ Cooldowns │ │
243
+ │ │ Total: 156 │ │ Pending: 0 │ │ Questions: 2 │ │ Factor: 1.2x │ │
244
+ │ │ Success: 94% │ │ Handled: 12 │ │ Rejections: 1 │ │ Target: 90% │ │
245
+ │ │ Failures: 2 │ │ Escalated: 3 │ │ Triage: 0 │ │ Proj: 87% │ │
246
+ │ ╰───────────────╯ ╰──────────────╯ ╰───────────────╯ ╰──────────────╯ │
247
+ ╰──────────────────────────────────────────────────────────────────────────────╯
248
+ ```
249
+
250
+ ### Timeline Event Icons
251
+
252
+ | Icon | Type | Source |
253
+ |------|------|--------|
254
+ | ● | HOOK | Agent spawned by hook (agent-tracker) |
255
+ | ◆ | REPORT | CTO report submitted (cto-reports.db) |
256
+ | ◇ | QUESTION | CTO question created (deputy-cto.db) |
257
+ | ■ | TASK | Task completed (todo.db) |
258
+ | ○ | SESSION | Claude Code session (JSONL files) |
259
+
260
+ ### Dashboard Sections Explained
261
+
262
+ #### Account Overview
263
+ - **Purpose**: Per-account credential health monitoring and rotation event tracking
264
+ - **Shows**:
265
+ - Per-account table with truncated key IDs, status (active/exhausted/expired/invalid), subscription type, email, and expiry date
266
+ - Current account marked with `*` prefix and cyan highlighting
267
+ - Per-key quota bars: 5h, 7d, and conditional 7d-sonnet (only displayed if >10pp difference from 7d aggregate)
268
+ - Event timeline (last 24h, max 20 events) with color-coded event types: key_switched (cyan), key_exhausted (red), key_added (green), key_removed (yellow)
269
+ - Rotation count in section title
270
+ - **Data Source**: `~/.claude/api-key-rotation.json` (maintained by key-sync.js)
271
+ - **Key Features**:
272
+ - Accounts sorted: current first, then by status priority, then by added date (newest first)
273
+ - Event descriptions auto-generated from rotation log entries (key_added, key_switched, key_exhausted, key_removed, token_refreshed)
274
+ - Noisy health_check events filtered from timeline
275
+ - 7d-sonnet quota bar conditional rendering reduces clutter when Sonnet usage closely matches aggregate
276
+ - **Graceful Degradation**: Section hidden when api-key-rotation.json missing or empty
277
+
278
+ #### Usage Trends
279
+ - **Purpose**: Visualize API quota consumption history using high-resolution line graphs
280
+ - **Data Source**: `.claude/state/usage-snapshots.json` (collected by usage-optimizer every 10 minutes)
281
+ - **Shows**:
282
+ - **5-Hour Usage Chart**: Historical line graph with current, min, and max values
283
+ - **7-Day Usage Chart**: Historical line graph with current, min, and max values
284
+ - **Trajectory Forecast Chart**: Combined visualization showing history (left side) transitioning to linear projections (right side) for both windows, with 90% target line overlay
285
+ - **X-Axis Labels**: Forecast chart displays "[timeAgo] → now → reset: Xh" to visually separate historical data from projections
286
+ - **Graceful Degradation**: Section hides when no snapshot data available; forecast chart only renders when projection data exists
287
+
288
+ #### Usage Trajectory
289
+ - **Purpose**: Project future API usage at reset time using trend analysis
290
+ - **Algorithm**: Linear regression on last 30 snapshots
291
+ - **Shows**:
292
+ - Current % - Current aggregate usage across all keys
293
+ - At Reset % - Projected usage when quota resets (with trend arrow)
294
+ - Reset In - Time remaining until quota reset
295
+ - Trend - Rate of change (% per hour for 5h, % per day for 7d)
296
+ - **Note**: This text-based projection section complements the visual Trajectory Forecast chart in Usage Trends
297
+
298
+ #### Testing Health
299
+ - **Purpose**: Monitor test suite health, agent coverage, and activity trends
300
+ - **Shows**:
301
+ - Failing suites with fix attempt counts and resolution status
302
+ - Agent breakdown by test framework (jest, vitest, playwright)
303
+ - **42-bucket activity graph** (4h resolution, ~7-day window) rendered as LineGraph — replaces old 7-day sparkline
304
+ - Codecov coverage sparkline (when credentials available)
305
+ - Unique failure count and resolved suites in last 24h
306
+ - **Data Source**: `testing-reader.ts` — aggregates test failure events from agent-tracker database and Codecov API
307
+
308
+ #### Deployments
309
+ - **Purpose**: Live deployment status for Render and Vercel platforms with pipeline visibility
310
+ - **Shows**:
311
+ - PipelineDetail header: 3-stage pipeline (preview → staging → production) with timestamps for each stage
312
+ - Per-platform deploy tables: Render and Vercel each show 5 most recent deploys (service, status, age, commit message)
313
+ - Combined recent deploy timeline (newest first, up to 8 entries from both platforms, with platform badge)
314
+ - DeployStats footer: total deploys, success rate, failure count, and deploy frequency
315
+ - Pipeline promotion state: last preview/staging check and last promotion timestamp
316
+ - **Data Source**: `deployments-reader.ts` — parallel Render and Vercel API calls, all via `Promise.allSettled` with 10s timeouts; `lastPreviewCheck`, `lastStagingCheck`, and stats computed from deploy history
317
+ - **Graceful Degradation**: Section hidden when neither `RENDER_API_KEY` nor `VERCEL_TOKEN` available
318
+
319
+ #### Infrastructure Health
320
+ - **Purpose**: At-a-glance operational status across 5 infrastructure providers with event-level detail
321
+ - **Providers**: Render, Vercel, Supabase, Elasticsearch, Cloudflare — each independently degradable
322
+ - **Shows**:
323
+ - Per-provider status dot (green = healthy, red = unavailable)
324
+ - Render: service count, suspended count, and last deploy timestamp
325
+ - Vercel: project count, error deploy count (24h), and currently-building count
326
+ - Supabase: API reachability health check
327
+ - Cloudflare: plan name, zone status, and nameserver list
328
+ - Per-platform event tables (Render deploy events, Vercel deployment events)
329
+ - Note: Elasticsearch log detail moved to dedicated LOGGING section
330
+ - **Data Source**: `infra-reader.ts` — 5 concurrent provider queries, independent failure isolation; accepts optional `deployments` prop to avoid duplicate API calls
331
+ - **Credential fix**: `CF_API_TOKEN` corrected to `CLOUDFLARE_API_TOKEN`
332
+ - **Graceful Degradation**: Section hidden when no providers return data
333
+
334
+ #### Logging
335
+ - **Purpose**: Centralized log observability from Elasticsearch covering volume, errors, coverage, and cost
336
+ - **Shows**:
337
+ - Log volume timeseries line graph (24 hourly data points)
338
+ - Summary stats: total logs (24h and 1h), error count, warning count
339
+ - By Level bar chart: breakdown of log levels (error, warn, info, debug) with color coding
340
+ - By Service bar chart: top 8 services by log volume
341
+ - Top Errors table: 5 most frequent error messages with service attribution and occurrence count
342
+ - Top Warnings table: 5 most frequent warning messages with service attribution and occurrence count
343
+ - Source Coverage dots: 9 expected sources (api, worker, deployment, ci-cd, testing, database, cdn, auth, cron) assessed as active (green), low-volume (yellow), or missing (gray)
344
+ - Storage footer: estimated daily GB, monthly cost estimate, and index count
345
+ - **Data Source**: `logging-reader.ts` — Elasticsearch queries for volume timeseries, level/service/source breakdowns, top errors/warnings, and `_cat/indices` for storage; `ELASTIC_API_KEY` credential required; endpoint resolved via `resolveElasticEndpoint()` which tries `ELASTIC_ENDPOINT` first then decodes `ELASTIC_CLOUD_ID` (base64 Cloud ID format) as fallback
346
+ - **Field Mapping Note**: All terms aggregations use `.keyword` suffix (e.g., `level.keyword`, `service.keyword`) to support Elastic Serverless deployments where these fields are mapped as `text` type
347
+ - **Storage Fallback**: When `_cat/indices` returns 403 (read-only API key lacks monitor privilege), storage is estimated from document count instead
348
+ - **Graceful Degradation**: Section hidden when no log data available (`hasData: false`)
349
+
350
+ #### Automated Instances
351
+ - **Purpose**: Monitor all automated Claude triggers with frequency adjustment visibility
352
+ - **Columns**:
353
+ - Type - Automation name (Pre-Commit Hook, CLAUDE.md Refactor, etc.)
354
+ - Runs (24h) - Execution count from agent-tracker
355
+ - Next Run - Countdown or trigger type ("on commit", "on failure")
356
+ - Delta - Difference from baseline interval (+5m34s, -2m10s)
357
+ - Freq Adj - Percentage slower/faster from usage optimizer (+15% slower)
358
+ - **Footer**: Shows usage target, current projected %, and adjusting direction (↑↓→)
359
+
360
+ ### Key Metrics Explained
361
+
362
+ - **Quota & Capacity** - Aggregate usage across all API keys; shows rotation count if using multi-key
363
+ - **System Status** - Deputy CTO mode, file protection status, commit gate status
364
+ - **Timeline** - Chronological view of the 20 most recent events across all data sources
365
+ - **Tokens** - Input/output token counts with cache hit rate (higher = better context reuse)
366
+ - **Sessions** - Task-triggered (automated) vs user-triggered (manual) session counts
367
+ - **Agents** - Specialized agent spawn counts by type
368
+ - **Tasks** - Cross-session task pipeline status
369
+ - **Hooks** - Automation hook execution success rate
370
+ - **Triage** - Deputy-CTO triage activity (self-handled vs escalated)
371
+ - **CTO Queue** - Items awaiting human decision (blocks commits when non-empty)
372
+ - **Cooldowns** - Usage projection and dynamic cooldown factor
@@ -0,0 +1,77 @@
1
+ # 1Password Secret Reference Paths
2
+
3
+ Canonical op:// paths for all secrets in the GENTYR stack.
4
+
5
+ ## Credential Types
6
+
7
+ **Secrets** (MUST be in 1Password, resolved via `op://` at runtime):
8
+ All items in the tables below except those marked as "identifier".
9
+
10
+ **Non-secret identifiers** (can be stored as direct values in vault-mappings.json):
11
+ - `CLOUDFLARE_ZONE_ID` — Zone identifier (32-character hex string)
12
+ - `SUPABASE_URL` — Database URL (publicly embedded in frontend)
13
+ - `SUPABASE_ANON_KEY` — Public API key (embedded in frontend as NEXT_PUBLIC_SUPABASE_ANON_KEY, doesn't enable protected actions)
14
+ - `ELASTIC_CLOUD_ID` — Deployment identifier
15
+
16
+ These are not sensitive. They can optionally be in 1Password OR provided directly in chat during `/setup-gentyr`.
17
+
18
+ ## Production Vault
19
+
20
+ | Secret | Reference | Used By |
21
+ |--------|-----------|---------|
22
+ | Supabase URL | `op://Production/Supabase/url` | Backend, Vercel |
23
+ | Supabase Anon Key | `op://Production/Supabase/anon-key` | Frontend, Backend |
24
+ | Supabase Service Role Key | `op://Production/Supabase/service-role-key` | Backend |
25
+ | Supabase Management Token | `op://Production/Supabase/management-token` | CI/CD, MCP |
26
+ | Vercel Token | `op://Production/Vercel/token` | CI/CD, MCP |
27
+ | Vercel Team ID | `op://Production/Vercel/team-id` | CI/CD, MCP |
28
+ | Render API Key | `op://Production/Render/api-key` | CI/CD, MCP |
29
+ | Resend API Key | `op://Production/Resend/api-key` | Backend |
30
+ | Elastic Cloud ID | `op://Production/Elastic/cloud-id` | Backend, MCP |
31
+ | Elastic API Key (Ingest) | `op://Production/Elastic/api-key` | Backend |
32
+ | Elastic API Key (Query) | `op://Production/Elastic/api-key-query` | MCP |
33
+ | Cloudflare API Token | `op://Production/Cloudflare/api-token` | MCP |
34
+ | Cloudflare Zone ID | `op://Production/Cloudflare/zone-id` | MCP |
35
+ | Cloudflare Account ID | `op://Production/Cloudflare/account-id` | MCP |
36
+ | GitHub Token | `op://Production/GitHub/token` | CI/CD, MCP |
37
+ | Codecov Token | `op://Production/Codecov/token` | CI/CD |
38
+ | Backend Encryption Key | `op://Production/Backend/encryption-key` | Backend |
39
+
40
+ ## Staging Vault
41
+
42
+ | Secret | Reference | Used By |
43
+ |--------|-----------|---------|
44
+ | Supabase URL | `op://Staging/Supabase/url` | Backend |
45
+ | Supabase Anon Key | `op://Staging/Supabase/anon-key` | Frontend, Backend |
46
+ | Supabase Service Role Key | `op://Staging/Supabase/service-role-key` | Backend |
47
+ | Resend API Key | `op://Staging/Resend/api-key` | Backend |
48
+
49
+ ## Preview Vault
50
+
51
+ | Secret | Reference | Used By |
52
+ |--------|-----------|---------|
53
+ | Supabase Service Role Key | `op://Preview/Supabase/service-role-key` | Backend |
54
+
55
+ ## services.json Mapping
56
+
57
+ Use these references in `.claude/config/services.json` under the `secrets` key:
58
+
59
+ > **Note:** `ELASTIC_API_KEY` maps to different 1Password fields depending on context:
60
+ > the backend (Render) uses the **ingest** key (`api-key`), while the MCP `elastic-logs`
61
+ > server uses the **read-only query** key (`api-key-query`). See the table above for details.
62
+
63
+ ```json
64
+ {
65
+ "secrets": {
66
+ "renderProduction": {
67
+ "SUPABASE_URL": "op://Production/Supabase/url",
68
+ "SUPABASE_ANON_KEY": "op://Production/Supabase/anon-key",
69
+ "SUPABASE_SERVICE_ROLE_KEY": "op://Production/Supabase/service-role-key",
70
+ "RESEND_API_KEY": "op://Production/Resend/api-key",
71
+ "ELASTIC_CLOUD_ID": "op://Production/Elastic/cloud-id",
72
+ "ELASTIC_API_KEY": "op://Production/Elastic/api-key",
73
+ "ENCRYPTION_KEY": "MANUAL"
74
+ }
75
+ }
76
+ }
77
+ ```