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.
- package/.claude/agents/antipattern-hunter.md +176 -0
- package/.claude/agents/code-reviewer.md +205 -0
- package/.claude/agents/code-writer.md +154 -0
- package/.claude/agents/deputy-cto.md +309 -0
- package/.claude/agents/feedback-agent.md +101 -0
- package/.claude/agents/investigator.md +136 -0
- package/.claude/agents/product-manager.md +97 -0
- package/.claude/agents/project-manager.md +116 -0
- package/.claude/agents/repo-hygiene-expert.md +626 -0
- package/.claude/agents/secret-manager.md +324 -0
- package/.claude/agents/test-writer.md +354 -0
- package/.claude/commands/configure-personas.md +144 -0
- package/.claude/commands/cto-report.md +36 -0
- package/.claude/commands/demo.md +89 -0
- package/.claude/commands/deputy-cto.md +345 -0
- package/.claude/commands/hotfix.md +31 -0
- package/.claude/commands/overdrive-gentyr.md +167 -0
- package/.claude/commands/product-manager.md +32 -0
- package/.claude/commands/push-migrations.md +86 -0
- package/.claude/commands/push-secrets.md +97 -0
- package/.claude/commands/services.json.example +30 -0
- package/.claude/commands/setup-gentyr.md +396 -0
- package/.claude/commands/show.md +42 -0
- package/.claude/commands/spawn-tasks.md +79 -0
- package/.claude/commands/toggle-automation-gentyr.md +75 -0
- package/.claude/commands/toggle-product-manager.md +19 -0
- package/.claude/commands/triage.md +69 -0
- package/.claude/hooks/README.md +686 -0
- package/.claude/hooks/__tests__/README.md +129 -0
- package/.claude/hooks/agent-tracker.js +434 -0
- package/.claude/hooks/antipattern-hunter-hook.js +401 -0
- package/.claude/hooks/api-key-watcher.js +289 -0
- package/.claude/hooks/block-no-verify.js +301 -0
- package/.claude/hooks/bypass-approval-hook.js +313 -0
- package/.claude/hooks/compliance-checker.js +1309 -0
- package/.claude/hooks/config-reader.js +143 -0
- package/.claude/hooks/credential-file-guard.js +1139 -0
- package/.claude/hooks/credential-health-check.js +168 -0
- package/.claude/hooks/credential-sync-hook.js +79 -0
- package/.claude/hooks/cto-notification-hook.js +656 -0
- package/.claude/hooks/feedback-launcher.js +424 -0
- package/.claude/hooks/feedback-orchestrator.js +367 -0
- package/.claude/hooks/gentyr-splash.js +47 -0
- package/.claude/hooks/gentyr-sync.js +389 -0
- package/.claude/hooks/hourly-automation.js +3340 -0
- package/.claude/hooks/key-sync.js +899 -0
- package/.claude/hooks/lib/approval-utils.js +731 -0
- package/.claude/hooks/lib/feature-branch-helper.js +102 -0
- package/.claude/hooks/lib/worktree-manager.js +330 -0
- package/.claude/hooks/mapping-validator.js +285 -0
- package/.claude/hooks/plan-executor.js +398 -0
- package/.claude/hooks/playwright-cli-guard.js +104 -0
- package/.claude/hooks/playwright-health-check.js +71 -0
- package/.claude/hooks/pre-commit-review.js +725 -0
- package/.claude/hooks/prompts/local-spec-enforcement.md +310 -0
- package/.claude/hooks/prompts/mapping-fix.md +92 -0
- package/.claude/hooks/prompts/mapping-review.md +140 -0
- package/.claude/hooks/prompts/schema-mapper.md +185 -0
- package/.claude/hooks/prompts/spec-enforcement.md +233 -0
- package/.claude/hooks/protected-action-approval-hook.js +336 -0
- package/.claude/hooks/protected-action-gate.js +562 -0
- package/.claude/hooks/protected-actions.json +208 -0
- package/.claude/hooks/protected-actions.json.template +122 -0
- package/.claude/hooks/quota-monitor.js +490 -0
- package/.claude/hooks/reporters/jest-failure-reporter.js +401 -0
- package/.claude/hooks/reporters/playwright-failure-reporter.js +446 -0
- package/.claude/hooks/reporters/vitest-failure-reporter.js +443 -0
- package/.claude/hooks/schema-mapper-hook.js +544 -0
- package/.claude/hooks/secret-leak-detector.js +216 -0
- package/.claude/hooks/session-reviver.js +514 -0
- package/.claude/hooks/slash-command-prefetch.js +1145 -0
- package/.claude/hooks/stale-work-detector.js +205 -0
- package/.claude/hooks/stop-continue-hook.js +414 -0
- package/.claude/hooks/todo-maintenance.js +522 -0
- package/.claude/hooks/todo-processing-prompt.md +75 -0
- package/.claude/hooks/usage-optimizer.js +791 -0
- package/.claude/mcp/README.md +246 -0
- package/.claude/settings.json.template +168 -0
- package/.mcp.json.template +207 -0
- package/CLAUDE.md +340 -0
- package/CLAUDE.md.gentyr-section +89 -0
- package/LICENSE +21 -0
- package/README.md +297 -0
- package/cli/commands/init.js +471 -0
- package/cli/commands/migrate.js +132 -0
- package/cli/commands/protect.js +271 -0
- package/cli/commands/scaffold.js +48 -0
- package/cli/commands/status.js +133 -0
- package/cli/commands/sync.js +101 -0
- package/cli/commands/uninstall.js +207 -0
- package/cli/index.js +111 -0
- package/cli/lib/config-gen.js +214 -0
- package/cli/lib/resolve-framework.js +97 -0
- package/cli/lib/state.js +140 -0
- package/cli/lib/symlinks.js +260 -0
- package/docs/AUTOMATION-SYSTEMS.md +484 -0
- package/docs/BINARY-PATCHING.md +212 -0
- package/docs/CHANGELOG.md +2830 -0
- package/docs/CREDENTIAL-DETECTION.md +151 -0
- package/docs/CTO-DASHBOARD.md +476 -0
- package/docs/DEPLOYMENT-FLOW.md +477 -0
- package/docs/DEVELOPER.md +116 -0
- package/docs/Executive.md +372 -0
- package/docs/SECRET-PATHS.md +77 -0
- package/docs/SETUP-GUIDE.md +419 -0
- package/docs/STACK.md +109 -0
- package/docs/TESTING.md +440 -0
- package/docs/assets/claude-logo.svg +3 -0
- package/docs/sessions/2026-01-24-spec-suite-implementation.md +190 -0
- package/docs/sessions/2026-02-15-feedback-e2e-audit.md +484 -0
- package/docs/sessions/2026-02-20-credential-rotation-experiments.md +340 -0
- package/docs/sessions/TEST-COVERAGE-REPORT-2026-02-20.md +168 -0
- package/docs/shared/EPHEMERAL-STATE-FILES.md +115 -0
- package/docs/shared/PROTECTION-SYSTEM.md +341 -0
- package/husky/post-commit +10 -0
- package/husky/pre-commit +40 -0
- package/husky/pre-push +94 -0
- package/package.json +43 -0
- package/packages/cto-dashboard/package-lock.json +3510 -0
- package/packages/cto-dashboard/package.json +41 -0
- package/packages/cto-dashboard/pnpm-lock.yaml +2168 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.d.ts +220 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.d.ts.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.js +376 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.js.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/index.d.ts +121 -0
- package/packages/mcp-servers/dist/__testUtils__/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/index.js +180 -0
- package/packages/mcp-servers/dist/__testUtils__/index.js.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.d.ts +84 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.d.ts.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.js +309 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.js.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/index.d.ts +7 -0
- package/packages/mcp-servers/dist/agent-reports/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/index.js +8 -0
- package/packages/mcp-servers/dist/agent-reports/index.js.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/server.d.ts +22 -0
- package/packages/mcp-servers/dist/agent-reports/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/server.js +535 -0
- package/packages/mcp-servers/dist/agent-reports/server.js.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/types.d.ts +258 -0
- package/packages/mcp-servers/dist/agent-reports/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/types.js +81 -0
- package/packages/mcp-servers/dist/agent-reports/types.js.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/index.d.ts +5 -0
- package/packages/mcp-servers/dist/agent-tracker/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/index.js +5 -0
- package/packages/mcp-servers/dist/agent-tracker/index.js.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/server.d.ts +12 -0
- package/packages/mcp-servers/dist/agent-tracker/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/server.js +919 -0
- package/packages/mcp-servers/dist/agent-tracker/server.js.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/types.d.ts +328 -0
- package/packages/mcp-servers/dist/agent-tracker/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/types.js +128 -0
- package/packages/mcp-servers/dist/agent-tracker/types.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.d.ts +27 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.js +167 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.d.ts +6 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.js +6 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.d.ts +13 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.js +959 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.d.ts +41 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.js +8 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.js.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/index.d.ts +8 -0
- package/packages/mcp-servers/dist/cloudflare/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/index.js +8 -0
- package/packages/mcp-servers/dist/cloudflare/index.js.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/server.d.ts +16 -0
- package/packages/mcp-servers/dist/cloudflare/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/server.js +253 -0
- package/packages/mcp-servers/dist/cloudflare/server.js.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/types.d.ts +141 -0
- package/packages/mcp-servers/dist/cloudflare/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/types.js +53 -0
- package/packages/mcp-servers/dist/cloudflare/types.js.map +1 -0
- package/packages/mcp-servers/dist/codecov/index.d.ts +7 -0
- package/packages/mcp-servers/dist/codecov/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/codecov/index.js +7 -0
- package/packages/mcp-servers/dist/codecov/index.js.map +1 -0
- package/packages/mcp-servers/dist/codecov/server.d.ts +21 -0
- package/packages/mcp-servers/dist/codecov/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/codecov/server.js +376 -0
- package/packages/mcp-servers/dist/codecov/server.js.map +1 -0
- package/packages/mcp-servers/dist/codecov/types.d.ts +269 -0
- package/packages/mcp-servers/dist/codecov/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/codecov/types.js +128 -0
- package/packages/mcp-servers/dist/codecov/types.js.map +1 -0
- package/packages/mcp-servers/dist/cto-report/index.d.ts +9 -0
- package/packages/mcp-servers/dist/cto-report/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-report/index.js +9 -0
- package/packages/mcp-servers/dist/cto-report/index.js.map +1 -0
- package/packages/mcp-servers/dist/cto-report/server.d.ts +14 -0
- package/packages/mcp-servers/dist/cto-report/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-report/server.js +859 -0
- package/packages/mcp-servers/dist/cto-report/server.js.map +1 -0
- package/packages/mcp-servers/dist/cto-report/types.d.ts +213 -0
- package/packages/mcp-servers/dist/cto-report/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-report/types.js +29 -0
- package/packages/mcp-servers/dist/cto-report/types.js.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/index.d.ts +7 -0
- package/packages/mcp-servers/dist/cto-reports/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/index.js +8 -0
- package/packages/mcp-servers/dist/cto-reports/index.js.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/server.d.ts +20 -0
- package/packages/mcp-servers/dist/cto-reports/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/server.js +538 -0
- package/packages/mcp-servers/dist/cto-reports/server.js.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/types.d.ts +236 -0
- package/packages/mcp-servers/dist/cto-reports/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/types.js +77 -0
- package/packages/mcp-servers/dist/cto-reports/types.js.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/index.d.ts +7 -0
- package/packages/mcp-servers/dist/deputy-cto/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/index.js +8 -0
- package/packages/mcp-servers/dist/deputy-cto/index.js.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/server.d.ts +23 -0
- package/packages/mcp-servers/dist/deputy-cto/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/server.js +1700 -0
- package/packages/mcp-servers/dist/deputy-cto/server.js.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/types.d.ts +439 -0
- package/packages/mcp-servers/dist/deputy-cto/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/types.js +102 -0
- package/packages/mcp-servers/dist/deputy-cto/types.js.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/index.d.ts +5 -0
- package/packages/mcp-servers/dist/elastic-logs/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/index.js +5 -0
- package/packages/mcp-servers/dist/elastic-logs/index.js.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/server.d.ts +18 -0
- package/packages/mcp-servers/dist/elastic-logs/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/server.js +259 -0
- package/packages/mcp-servers/dist/elastic-logs/server.js.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/types.d.ts +107 -0
- package/packages/mcp-servers/dist/elastic-logs/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/types.js +31 -0
- package/packages/mcp-servers/dist/elastic-logs/types.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.d.ts +2 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.js +2 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.d.ts +21 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.js +580 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.d.ts +331 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.js +40 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.d.ts +9 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.js +9 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.d.ts +36 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.js +392 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.d.ts +152 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.js +67 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.js.map +1 -0
- package/packages/mcp-servers/dist/github/index.d.ts +7 -0
- package/packages/mcp-servers/dist/github/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/github/index.js +7 -0
- package/packages/mcp-servers/dist/github/index.js.map +1 -0
- package/packages/mcp-servers/dist/github/server.d.ts +15 -0
- package/packages/mcp-servers/dist/github/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/github/server.js +686 -0
- package/packages/mcp-servers/dist/github/server.js.map +1 -0
- package/packages/mcp-servers/dist/github/types.d.ts +660 -0
- package/packages/mcp-servers/dist/github/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/github/types.js +209 -0
- package/packages/mcp-servers/dist/github/types.js.map +1 -0
- package/packages/mcp-servers/dist/index.d.ts +30 -0
- package/packages/mcp-servers/dist/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/index.js +32 -0
- package/packages/mcp-servers/dist/index.js.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.d.ts +5 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.js +5 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.js.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.d.ts +15 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.js +252 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.js.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.d.ts +74 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.js +20 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.js.map +1 -0
- package/packages/mcp-servers/dist/onepassword/index.d.ts +2 -0
- package/packages/mcp-servers/dist/onepassword/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/onepassword/index.js +2 -0
- package/packages/mcp-servers/dist/onepassword/index.js.map +1 -0
- package/packages/mcp-servers/dist/onepassword/server.d.ts +2 -0
- package/packages/mcp-servers/dist/onepassword/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/onepassword/server.js +159 -0
- package/packages/mcp-servers/dist/onepassword/server.js.map +1 -0
- package/packages/mcp-servers/dist/onepassword/types.d.ts +55 -0
- package/packages/mcp-servers/dist/onepassword/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/onepassword/types.js +22 -0
- package/packages/mcp-servers/dist/onepassword/types.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/helpers.d.ts +20 -0
- package/packages/mcp-servers/dist/playwright/helpers.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/helpers.js +31 -0
- package/packages/mcp-servers/dist/playwright/helpers.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/index.d.ts +5 -0
- package/packages/mcp-servers/dist/playwright/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/index.js +5 -0
- package/packages/mcp-servers/dist/playwright/index.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/server.d.ts +13 -0
- package/packages/mcp-servers/dist/playwright/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/server.js +1201 -0
- package/packages/mcp-servers/dist/playwright/server.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/types.d.ts +216 -0
- package/packages/mcp-servers/dist/playwright/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/types.js +172 -0
- package/packages/mcp-servers/dist/playwright/types.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.d.ts +39 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.js +71 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.d.ts +5 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.js +5 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.d.ts +34 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.js +538 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.d.ts +305 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.js +123 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.js.map +1 -0
- package/packages/mcp-servers/dist/product-manager/server.d.ts +17 -0
- package/packages/mcp-servers/dist/product-manager/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/product-manager/server.js +690 -0
- package/packages/mcp-servers/dist/product-manager/server.js.map +1 -0
- package/packages/mcp-servers/dist/product-manager/types.d.ts +286 -0
- package/packages/mcp-servers/dist/product-manager/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/product-manager/types.js +99 -0
- package/packages/mcp-servers/dist/product-manager/types.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.d.ts +7 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.js +7 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.d.ts +19 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.js +174 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.d.ts +35 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.js +465 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.d.ts +127 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.js +80 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.js.map +1 -0
- package/packages/mcp-servers/dist/render/index.d.ts +8 -0
- package/packages/mcp-servers/dist/render/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/render/index.js +8 -0
- package/packages/mcp-servers/dist/render/index.js.map +1 -0
- package/packages/mcp-servers/dist/render/server.d.ts +15 -0
- package/packages/mcp-servers/dist/render/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/render/server.js +428 -0
- package/packages/mcp-servers/dist/render/server.js.map +1 -0
- package/packages/mcp-servers/dist/render/types.d.ts +273 -0
- package/packages/mcp-servers/dist/render/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/render/types.js +102 -0
- package/packages/mcp-servers/dist/render/types.js.map +1 -0
- package/packages/mcp-servers/dist/resend/index.d.ts +7 -0
- package/packages/mcp-servers/dist/resend/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/resend/index.js +7 -0
- package/packages/mcp-servers/dist/resend/index.js.map +1 -0
- package/packages/mcp-servers/dist/resend/server.d.ts +15 -0
- package/packages/mcp-servers/dist/resend/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/resend/server.js +298 -0
- package/packages/mcp-servers/dist/resend/server.js.map +1 -0
- package/packages/mcp-servers/dist/resend/types.d.ts +222 -0
- package/packages/mcp-servers/dist/resend/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/resend/types.js +58 -0
- package/packages/mcp-servers/dist/resend/types.js.map +1 -0
- package/packages/mcp-servers/dist/review-queue/index.d.ts +6 -0
- package/packages/mcp-servers/dist/review-queue/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/review-queue/index.js +6 -0
- package/packages/mcp-servers/dist/review-queue/index.js.map +1 -0
- package/packages/mcp-servers/dist/review-queue/server.d.ts +17 -0
- package/packages/mcp-servers/dist/review-queue/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/review-queue/server.js +348 -0
- package/packages/mcp-servers/dist/review-queue/server.js.map +1 -0
- package/packages/mcp-servers/dist/review-queue/types.d.ts +162 -0
- package/packages/mcp-servers/dist/review-queue/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/review-queue/types.js +56 -0
- package/packages/mcp-servers/dist/review-queue/types.js.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/server.d.ts +19 -0
- package/packages/mcp-servers/dist/secret-sync/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/server.js +1139 -0
- package/packages/mcp-servers/dist/secret-sync/server.js.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/types.d.ts +442 -0
- package/packages/mcp-servers/dist/secret-sync/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/types.js +113 -0
- package/packages/mcp-servers/dist/secret-sync/types.js.map +1 -0
- package/packages/mcp-servers/dist/session-events/index.d.ts +5 -0
- package/packages/mcp-servers/dist/session-events/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-events/index.js +5 -0
- package/packages/mcp-servers/dist/session-events/index.js.map +1 -0
- package/packages/mcp-servers/dist/session-events/server.d.ts +11 -0
- package/packages/mcp-servers/dist/session-events/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-events/server.js +290 -0
- package/packages/mcp-servers/dist/session-events/server.js.map +1 -0
- package/packages/mcp-servers/dist/session-events/types.d.ts +213 -0
- package/packages/mcp-servers/dist/session-events/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-events/types.js +69 -0
- package/packages/mcp-servers/dist/session-events/types.js.map +1 -0
- package/packages/mcp-servers/dist/session-restart/index.d.ts +9 -0
- package/packages/mcp-servers/dist/session-restart/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-restart/index.js +9 -0
- package/packages/mcp-servers/dist/session-restart/index.js.map +1 -0
- package/packages/mcp-servers/dist/session-restart/server.d.ts +20 -0
- package/packages/mcp-servers/dist/session-restart/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-restart/server.js +411 -0
- package/packages/mcp-servers/dist/session-restart/server.js.map +1 -0
- package/packages/mcp-servers/dist/session-restart/types.d.ts +26 -0
- package/packages/mcp-servers/dist/session-restart/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-restart/types.js +16 -0
- package/packages/mcp-servers/dist/session-restart/types.js.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/index.d.ts +5 -0
- package/packages/mcp-servers/dist/setup-helper/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/index.js +5 -0
- package/packages/mcp-servers/dist/setup-helper/index.js.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/server.d.ts +14 -0
- package/packages/mcp-servers/dist/setup-helper/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/server.js +454 -0
- package/packages/mcp-servers/dist/setup-helper/server.js.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/types.d.ts +81 -0
- package/packages/mcp-servers/dist/setup-helper/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/types.js +41 -0
- package/packages/mcp-servers/dist/setup-helper/types.js.map +1 -0
- package/packages/mcp-servers/dist/shared/audited-server.d.ts +31 -0
- package/packages/mcp-servers/dist/shared/audited-server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/audited-server.js +126 -0
- package/packages/mcp-servers/dist/shared/audited-server.js.map +1 -0
- package/packages/mcp-servers/dist/shared/constants.d.ts +26 -0
- package/packages/mcp-servers/dist/shared/constants.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/constants.js +41 -0
- package/packages/mcp-servers/dist/shared/constants.js.map +1 -0
- package/packages/mcp-servers/dist/shared/index.d.ts +6 -0
- package/packages/mcp-servers/dist/shared/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/index.js +6 -0
- package/packages/mcp-servers/dist/shared/index.js.map +1 -0
- package/packages/mcp-servers/dist/shared/readonly-db.d.ts +11 -0
- package/packages/mcp-servers/dist/shared/readonly-db.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/readonly-db.js +47 -0
- package/packages/mcp-servers/dist/shared/readonly-db.js.map +1 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.d.ts +20 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.js +65 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.js.map +1 -0
- package/packages/mcp-servers/dist/shared/server.d.ts +86 -0
- package/packages/mcp-servers/dist/shared/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/server.js +291 -0
- package/packages/mcp-servers/dist/shared/server.js.map +1 -0
- package/packages/mcp-servers/dist/shared/types.d.ts +113 -0
- package/packages/mcp-servers/dist/shared/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/types.js +36 -0
- package/packages/mcp-servers/dist/shared/types.js.map +1 -0
- package/packages/mcp-servers/dist/show/server.d.ts +12 -0
- package/packages/mcp-servers/dist/show/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/show/server.js +97 -0
- package/packages/mcp-servers/dist/show/server.js.map +1 -0
- package/packages/mcp-servers/dist/show/types.d.ts +19 -0
- package/packages/mcp-servers/dist/show/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/show/types.js +32 -0
- package/packages/mcp-servers/dist/show/types.js.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/index.d.ts +5 -0
- package/packages/mcp-servers/dist/specs-browser/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/index.js +5 -0
- package/packages/mcp-servers/dist/specs-browser/index.js.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/server.d.ts +13 -0
- package/packages/mcp-servers/dist/specs-browser/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/server.js +692 -0
- package/packages/mcp-servers/dist/specs-browser/server.js.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/types.d.ts +337 -0
- package/packages/mcp-servers/dist/specs-browser/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/types.js +134 -0
- package/packages/mcp-servers/dist/specs-browser/types.js.map +1 -0
- package/packages/mcp-servers/dist/supabase/index.d.ts +10 -0
- package/packages/mcp-servers/dist/supabase/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/supabase/index.js +10 -0
- package/packages/mcp-servers/dist/supabase/index.js.map +1 -0
- package/packages/mcp-servers/dist/supabase/server.d.ts +20 -0
- package/packages/mcp-servers/dist/supabase/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/supabase/server.js +451 -0
- package/packages/mcp-servers/dist/supabase/server.js.map +1 -0
- package/packages/mcp-servers/dist/supabase/types.d.ts +196 -0
- package/packages/mcp-servers/dist/supabase/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/supabase/types.js +76 -0
- package/packages/mcp-servers/dist/supabase/types.js.map +1 -0
- package/packages/mcp-servers/dist/todo-db/index.d.ts +5 -0
- package/packages/mcp-servers/dist/todo-db/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/todo-db/index.js +5 -0
- package/packages/mcp-servers/dist/todo-db/index.js.map +1 -0
- package/packages/mcp-servers/dist/todo-db/server.d.ts +13 -0
- package/packages/mcp-servers/dist/todo-db/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/todo-db/server.js +649 -0
- package/packages/mcp-servers/dist/todo-db/server.js.map +1 -0
- package/packages/mcp-servers/dist/todo-db/types.d.ts +225 -0
- package/packages/mcp-servers/dist/todo-db/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/todo-db/types.js +69 -0
- package/packages/mcp-servers/dist/todo-db/types.js.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/index.d.ts +7 -0
- package/packages/mcp-servers/dist/user-feedback/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/index.js +8 -0
- package/packages/mcp-servers/dist/user-feedback/index.js.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/server.d.ts +25 -0
- package/packages/mcp-servers/dist/user-feedback/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/server.js +914 -0
- package/packages/mcp-servers/dist/user-feedback/server.js.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/types.d.ts +415 -0
- package/packages/mcp-servers/dist/user-feedback/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/types.js +132 -0
- package/packages/mcp-servers/dist/user-feedback/types.js.map +1 -0
- package/packages/mcp-servers/dist/vercel/index.d.ts +9 -0
- package/packages/mcp-servers/dist/vercel/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/vercel/index.js +9 -0
- package/packages/mcp-servers/dist/vercel/index.js.map +1 -0
- package/packages/mcp-servers/dist/vercel/server.d.ts +17 -0
- package/packages/mcp-servers/dist/vercel/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/vercel/server.js +265 -0
- package/packages/mcp-servers/dist/vercel/server.js.map +1 -0
- package/packages/mcp-servers/dist/vercel/types.d.ts +189 -0
- package/packages/mcp-servers/dist/vercel/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/vercel/types.js +65 -0
- package/packages/mcp-servers/dist/vercel/types.js.map +1 -0
- package/packages/mcp-servers/package-lock.json +3765 -0
- package/packages/mcp-servers/package.json +64 -0
- package/packages/mcp-servers/test/reporters/test-failure-reporter.ts +372 -0
- package/packages/mcp-servers/vitest.config.ts +27 -0
- package/scripts/__tests__/README.md +163 -0
- package/scripts/apply-credential-hardening.sh +271 -0
- package/scripts/credential-providers/manual.js +56 -0
- package/scripts/credential-providers/onepassword.js +85 -0
- package/scripts/credential-providers/provider-interface.js +104 -0
- package/scripts/encrypt-credential.js +337 -0
- package/scripts/feedback-launcher.js +338 -0
- package/scripts/feedback-orchestrator.js +373 -0
- package/scripts/fix-mcp-launcher-issues.sh +97 -0
- package/scripts/force-spawn-tasks.js +651 -0
- package/scripts/force-triage-reports.js +560 -0
- package/scripts/generate-protected-actions-spec.js +142 -0
- package/scripts/generate-proxy-certs.sh +158 -0
- package/scripts/grant-chrome-ext-permissions.sh +242 -0
- package/scripts/mcp-launcher.js +125 -0
- package/scripts/merge-settings.cjs +167 -0
- package/scripts/patch-clawd.py +844 -0
- package/scripts/patch-credential-cache.py +313 -0
- package/scripts/patches/credential-file-guard-patched.mjs +573 -0
- package/scripts/patches/credential-file-guard.js.patched +573 -0
- package/scripts/patches/verify-tokenizer.mjs +132 -0
- package/scripts/protect-framework.sh +478 -0
- package/scripts/readme-chrome.template +12 -0
- package/scripts/reap-completed-agents.js +439 -0
- package/scripts/reinstall.sh +86 -0
- package/scripts/resign-node.sh +185 -0
- package/scripts/rotation-proxy.js +656 -0
- package/scripts/rotation-stress-monitor.mjs +862 -0
- package/scripts/setup-automation-service.sh +648 -0
- package/scripts/setup-check.js +251 -0
- package/scripts/watch-claude-version.js +142 -0
- package/specs/framework/CORE-INVARIANTS.md +161 -0
- package/specs/patterns/AGENT-PATTERNS.md +223 -0
- package/specs/patterns/HOOK-PATTERNS.md +242 -0
- package/specs/patterns/MCP-SERVER-PATTERNS.md +144 -0
- package/templates/config/gitignore.template +14 -0
- package/templates/config/merge-chain-check.yml.template +51 -0
- package/templates/config/package.json.template +18 -0
- package/templates/config/pnpm-workspace.yaml +5 -0
- package/templates/config/services.json.template +18 -0
- package/templates/config/tsconfig.base.json +17 -0
- package/templates/scaffold/integrations/_template/.gitkeep +0 -0
- package/templates/scaffold/packages/logger/package.json +17 -0
- package/templates/scaffold/packages/logger/src/logger.ts +44 -0
- package/templates/scaffold/packages/shared/package.json +17 -0
- package/templates/scaffold/packages/shared/src/errors.ts +43 -0
- package/templates/scaffold/products/_product/apps/backend/package.json +21 -0
- package/templates/scaffold/products/_product/apps/backend/src/index.ts +17 -0
- package/templates/scaffold/products/_product/apps/extension/.gitkeep +0 -0
- package/templates/scaffold/products/_product/apps/web/.gitkeep +0 -0
- package/templates/scaffold/specs/global/.gitkeep +0 -0
- package/templates/scaffold/specs/local/.gitkeep +0 -0
- package/templates/scaffold/specs/reference/.gitkeep +0 -0
- 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
|
+
```
|