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,167 @@
|
|
|
1
|
+
<!-- HOOK:GENTYR:overdrive -->
|
|
2
|
+
# /overdrive-gentyr - GENTYR Overdrive Mode
|
|
3
|
+
|
|
4
|
+
Activates overdrive mode for 1 hour, maxing out all automation frequencies for rapid iteration. The usage optimizer is paused during overdrive to prevent it from scaling frequencies back.
|
|
5
|
+
|
|
6
|
+
The prefetch hook has pre-gathered the current automation config and injected it as `[PREFETCH:overdrive]` context above. Use that data for Step 1 instead of reading the file. If the prefetch data is missing, read the file directly.
|
|
7
|
+
|
|
8
|
+
## What This Does
|
|
9
|
+
|
|
10
|
+
Overdrive temporarily sets all automation cooldowns to their minimum useful values:
|
|
11
|
+
|
|
12
|
+
| Automation | Default | Overdrive |
|
|
13
|
+
|-----------|---------|-----------|
|
|
14
|
+
| hourly_tasks | 55 min | 10 min |
|
|
15
|
+
| lint_checker | 30 min | 10 min |
|
|
16
|
+
| task_runner | 60 min | 10 min |
|
|
17
|
+
| todo_maintenance | 15 min | 5 min |
|
|
18
|
+
| antipattern_hunter | 360 min | 60 min |
|
|
19
|
+
| standalone_antipattern_hunter | 180 min | 60 min |
|
|
20
|
+
| standalone_compliance_checker | 60 min | 15 min |
|
|
21
|
+
| preview_promotion | 360 min | 60 min |
|
|
22
|
+
| staging_health_monitor | 180 min | 30 min |
|
|
23
|
+
| production_health_monitor | 60 min | 15 min |
|
|
24
|
+
| user_feedback | 120 min | 30 min |
|
|
25
|
+
| schema_mapper | 1440 min | 120 min |
|
|
26
|
+
| triage_per_item | 60 min | 15 min |
|
|
27
|
+
| test_failure_reporter | 120 min | 30 min |
|
|
28
|
+
| compliance_checker_file | 10080 min | 1440 min |
|
|
29
|
+
| compliance_checker_spec | 10080 min | 1440 min |
|
|
30
|
+
|
|
31
|
+
**Unchanged (at floor or stability-gated):**
|
|
32
|
+
- `triage_check`: 5 min (already at floor)
|
|
33
|
+
- `pre_commit_review`: 5 min (already at floor)
|
|
34
|
+
- `staging_promotion`: 1200 min (24h stability gate)
|
|
35
|
+
|
|
36
|
+
**Concurrency:** MAX_CONCURRENT_AGENTS raised from 5 to 8.
|
|
37
|
+
|
|
38
|
+
## What This Preserves
|
|
39
|
+
|
|
40
|
+
- CTO activity gate (24h briefing requirement) - NOT bypassed
|
|
41
|
+
- `enabled: false` automation toggle - NOT bypassed
|
|
42
|
+
- Staging-to-production promotion 24h stability gate - NOT changed
|
|
43
|
+
|
|
44
|
+
## Flow
|
|
45
|
+
|
|
46
|
+
### Step 1: Read Current State
|
|
47
|
+
|
|
48
|
+
Read `.claude/state/automation-config.json` and check if `overdrive` section exists and is active.
|
|
49
|
+
|
|
50
|
+
### Step 2: Handle Current State
|
|
51
|
+
|
|
52
|
+
**If overdrive is active and NOT expired:**
|
|
53
|
+
|
|
54
|
+
Display current overdrive status:
|
|
55
|
+
```
|
|
56
|
+
OVERDRIVE MODE: ACTIVE
|
|
57
|
+
Activated: {activated_at}
|
|
58
|
+
Expires: {expires_at} ({minutes remaining} min remaining)
|
|
59
|
+
Concurrency: {max_concurrent_override} agents
|
|
60
|
+
Factor frozen at: {previous_state.factor}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Use `AskUserQuestion`:
|
|
64
|
+
- **Question:** "Overdrive is currently active. What would you like to do?"
|
|
65
|
+
- **Header:** "Overdrive"
|
|
66
|
+
- **Options:**
|
|
67
|
+
- "Extend +60 minutes" - Push expiry forward by 1 hour
|
|
68
|
+
- "Deactivate now" - Revert to previous state immediately
|
|
69
|
+
- "Show status only" - Just display current state
|
|
70
|
+
|
|
71
|
+
If "Extend +60 minutes":
|
|
72
|
+
- Read the config, update `overdrive.expires_at` to current `expires_at` + 60 minutes
|
|
73
|
+
- Write the config back
|
|
74
|
+
- Display new expiry time
|
|
75
|
+
|
|
76
|
+
If "Deactivate now":
|
|
77
|
+
- Read the config
|
|
78
|
+
- Restore `config.effective = config.overdrive.previous_state.effective`
|
|
79
|
+
- Restore `config.adjustment.factor = config.overdrive.previous_state.factor`
|
|
80
|
+
- Set `config.overdrive.active = false`
|
|
81
|
+
- Write config
|
|
82
|
+
- Display "Overdrive deactivated. Previous cooldowns restored."
|
|
83
|
+
|
|
84
|
+
**If overdrive is active but EXPIRED:**
|
|
85
|
+
|
|
86
|
+
Display: "Overdrive was active but has expired. It will be auto-reverted on the next optimizer cycle."
|
|
87
|
+
Then treat as inactive (offer activation).
|
|
88
|
+
|
|
89
|
+
**If overdrive is inactive (or no overdrive section):**
|
|
90
|
+
|
|
91
|
+
Display current automation state summary, then use `AskUserQuestion`:
|
|
92
|
+
- **Question:** "Activate overdrive mode? All automation frequencies will be maxed for 1 hour."
|
|
93
|
+
- **Header:** "Overdrive"
|
|
94
|
+
- **Options:**
|
|
95
|
+
- "Activate overdrive (1 hour)" (Recommended)
|
|
96
|
+
- "Cancel"
|
|
97
|
+
|
|
98
|
+
### Step 3: Activate Overdrive
|
|
99
|
+
|
|
100
|
+
If user confirms activation:
|
|
101
|
+
|
|
102
|
+
1. Read `.claude/state/automation-config.json`
|
|
103
|
+
2. Save current state:
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"overdrive": {
|
|
107
|
+
"active": true,
|
|
108
|
+
"activated_at": "<ISO now>",
|
|
109
|
+
"expires_at": "<ISO now + 1 hour>",
|
|
110
|
+
"previous_state": {
|
|
111
|
+
"factor": "<current config.adjustment.factor or 1.0>",
|
|
112
|
+
"effective": "<current config.effective or {}>"
|
|
113
|
+
},
|
|
114
|
+
"max_concurrent_override": 8,
|
|
115
|
+
"overdrive_effective": {
|
|
116
|
+
"triage_check": 5,
|
|
117
|
+
"hourly_tasks": 10,
|
|
118
|
+
"lint_checker": 10,
|
|
119
|
+
"task_runner": 10,
|
|
120
|
+
"todo_maintenance": 5,
|
|
121
|
+
"antipattern_hunter": 60,
|
|
122
|
+
"standalone_antipattern_hunter": 60,
|
|
123
|
+
"standalone_compliance_checker": 15,
|
|
124
|
+
"preview_promotion": 60,
|
|
125
|
+
"staging_promotion": 1200,
|
|
126
|
+
"staging_health_monitor": 30,
|
|
127
|
+
"production_health_monitor": 15,
|
|
128
|
+
"user_feedback": 30,
|
|
129
|
+
"schema_mapper": 120,
|
|
130
|
+
"triage_per_item": 15,
|
|
131
|
+
"test_failure_reporter": 30,
|
|
132
|
+
"pre_commit_review": 5,
|
|
133
|
+
"compliance_checker_file": 1440,
|
|
134
|
+
"compliance_checker_spec": 1440
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
3. Set `config.effective` to the overdrive values
|
|
140
|
+
4. Write the config
|
|
141
|
+
|
|
142
|
+
### Step 4: Display Summary
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
OVERDRIVE ACTIVATED
|
|
146
|
+
|
|
147
|
+
Duration: 1 hour (expires at {expires_at})
|
|
148
|
+
Concurrency: 5 -> 8 agents
|
|
149
|
+
Previous factor: {factor} (will be restored on expiry)
|
|
150
|
+
|
|
151
|
+
Key changes:
|
|
152
|
+
hourly_tasks: 55 min -> 10 min
|
|
153
|
+
task_runner: 60 min -> 10 min
|
|
154
|
+
antipattern: 360 min -> 60 min
|
|
155
|
+
compliance: 10080 min -> 1440 min
|
|
156
|
+
|
|
157
|
+
The usage optimizer will NOT adjust cooldowns during overdrive.
|
|
158
|
+
Overdrive will auto-revert when it expires.
|
|
159
|
+
To deactivate early: /overdrive-gentyr
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Implementation Notes
|
|
163
|
+
|
|
164
|
+
- The config file is at `.claude/state/automation-config.json`
|
|
165
|
+
- Use `fs.readFileSync` and `fs.writeFileSync` to read/write
|
|
166
|
+
- Always ensure the `version: 1` field is preserved in the config
|
|
167
|
+
- If config file doesn't exist, create it with version: 1 and the overdrive section
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!-- HOOK:GENTYR:product-manager -->
|
|
2
|
+
# /product-manager - Product Market Fit Analysis
|
|
3
|
+
|
|
4
|
+
Manage the product-market-fit (PMF) analysis pipeline. This command shows current analysis status and provides options to initiate, view, run, or report on the analysis.
|
|
5
|
+
|
|
6
|
+
## Step 1: Show Current Status
|
|
7
|
+
|
|
8
|
+
Call `mcp__product-manager__get_analysis_status()` and display:
|
|
9
|
+
- Overall status (not_started / pending_approval / approved / in_progress / completed)
|
|
10
|
+
- Section progress: show each section with a check mark (populated) or circle (empty)
|
|
11
|
+
- If completed: show compliance stats (mapped/total pain points)
|
|
12
|
+
|
|
13
|
+
## Step 2: Present Options Based on Status
|
|
14
|
+
|
|
15
|
+
### If status is `not_started`:
|
|
16
|
+
Present these options:
|
|
17
|
+
1. **Initiate analysis** - Call `mcp__product-manager__initiate_analysis({initiated_by: "human"})`, then report to deputy-CTO via `mcp__agent-reports__report_to_deputy_cto({title: "PMF Analysis Initiated", category: "decision", priority: "high", content: "A product-market-fit analysis has been initiated and requires your approval. Call mcp__product-manager__approve_analysis to approve."})`
|
|
18
|
+
|
|
19
|
+
### If status is `pending_approval`:
|
|
20
|
+
Show message: "Analysis is awaiting CTO approval. The deputy-CTO will approve during the next triage cycle."
|
|
21
|
+
Option: **Approve now** (if CTO is running this command) - Call `mcp__product-manager__approve_analysis({approved_by: "human"})`
|
|
22
|
+
|
|
23
|
+
### If status is `approved` or `in_progress`:
|
|
24
|
+
Present these options:
|
|
25
|
+
1. **View section** - Ask which section (1-6), then call `mcp__product-manager__read_section({section: N})`
|
|
26
|
+
2. **Run full pipeline** - Call `mcp__product-manager__clear_and_respawn({initiated_by: "human"})` to wipe and rebuild all sections sequentially via task chain
|
|
27
|
+
3. **Regenerate markdown** - Call `mcp__product-manager__regenerate_md()`
|
|
28
|
+
|
|
29
|
+
### If status is `completed`:
|
|
30
|
+
Present all options above plus:
|
|
31
|
+
4. **Persona compliance** - Call `mcp__product-manager__get_compliance_report()` and display results
|
|
32
|
+
5. **List unmapped pain points** - Call `mcp__product-manager__list_pain_points({unmapped_only: true})`
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<!-- HOOK:GENTYR:push-migrations -->
|
|
2
|
+
# /push-migrations - Push Local Database Migrations to Remote Supabase
|
|
3
|
+
|
|
4
|
+
Apply pending local migration files to the remote Supabase database. This is the MCP-native equivalent of `supabase link && supabase db push`.
|
|
5
|
+
|
|
6
|
+
The prefetch hook has pre-gathered local migration files and injected them as `[PREFETCH:push-migrations]` context above. Use that data for Step 0/Step 2 instead of reading the filesystem. If the prefetch data is missing, read the files directly.
|
|
7
|
+
|
|
8
|
+
## Security Notes
|
|
9
|
+
|
|
10
|
+
- Each migration is executed via `supabase_push_migration` which requires **APPROVE DATABASE** CTO approval
|
|
11
|
+
- Migrations are tracked in `supabase_migrations.schema_migrations` — already-applied migrations are skipped
|
|
12
|
+
- Failed migrations are automatically rolled back by the Supabase Management API
|
|
13
|
+
- Requires `SUPABASE_ACCESS_TOKEN` (management API token) to be set
|
|
14
|
+
|
|
15
|
+
## Push Flow
|
|
16
|
+
|
|
17
|
+
### Step 0: Load Configuration
|
|
18
|
+
|
|
19
|
+
Read `.claude/config/services.json` and use the `supabase.migrationsDir` field for the local migration file path.
|
|
20
|
+
|
|
21
|
+
If the file does not exist or `supabase.migrationsDir` is not set:
|
|
22
|
+
1. Use `AskUserQuestion` to ask: "Where are your Supabase migration files? (relative path from project root)"
|
|
23
|
+
2. Provide common options:
|
|
24
|
+
- Option 1: "supabase/migrations/" — Standard Supabase CLI layout
|
|
25
|
+
- Option 2: "database/migrations/" — Alternative layout
|
|
26
|
+
3. Save the path to `.claude/config/services.json` (create file if needed)
|
|
27
|
+
|
|
28
|
+
### Step 1: List Remote Migrations
|
|
29
|
+
|
|
30
|
+
Call `mcp__supabase__supabase_list_migrations` to get the list of already-applied migrations on the remote database.
|
|
31
|
+
|
|
32
|
+
Display the results to the user showing which migrations have been applied.
|
|
33
|
+
|
|
34
|
+
### Step 2: Read Local Migration Files
|
|
35
|
+
|
|
36
|
+
Read the local migration directory (from config) and list all `.sql` files, sorted by name (which sorts by number prefix).
|
|
37
|
+
|
|
38
|
+
Naming convention: `NNN_description.sql` (e.g., `001_initial_schema.sql`)
|
|
39
|
+
|
|
40
|
+
### Step 3: Identify Pending Migrations
|
|
41
|
+
|
|
42
|
+
Compare local files against remote migrations. A migration is pending if its name/version does not appear in the remote migration list.
|
|
43
|
+
|
|
44
|
+
Display to the user:
|
|
45
|
+
- Already applied: `001_initial_schema.sql`, etc.
|
|
46
|
+
- Pending: `004_new_feature.sql`, etc.
|
|
47
|
+
|
|
48
|
+
If no pending migrations, inform the user and stop.
|
|
49
|
+
|
|
50
|
+
### Step 4: Confirm with User
|
|
51
|
+
|
|
52
|
+
Use `AskUserQuestion` to confirm:
|
|
53
|
+
|
|
54
|
+
**Question:** "Push {N} pending migration(s) to remote Supabase? This will execute SQL against the production database."
|
|
55
|
+
|
|
56
|
+
**Header:** "Migrations"
|
|
57
|
+
|
|
58
|
+
**Options:**
|
|
59
|
+
- Option 1: "Push all pending" — apply all pending migrations in order
|
|
60
|
+
- Option 2: "Show SQL first" — display the SQL content of each pending migration before pushing
|
|
61
|
+
- Option 3: "Cancel" — abort without changes
|
|
62
|
+
|
|
63
|
+
### Step 5: Push Each Pending Migration
|
|
64
|
+
|
|
65
|
+
For each pending migration (in order):
|
|
66
|
+
|
|
67
|
+
1. Read the local `.sql` file content
|
|
68
|
+
2. Call `mcp__supabase__supabase_push_migration` with:
|
|
69
|
+
- `name`: The migration filename without `.sql` extension (e.g., `004_new_feature`)
|
|
70
|
+
- `sql`: The full SQL content of the file
|
|
71
|
+
3. Report success or failure for each migration
|
|
72
|
+
4. **STOP on first failure** — do not continue with subsequent migrations
|
|
73
|
+
|
|
74
|
+
### Step 6: Verify
|
|
75
|
+
|
|
76
|
+
Call `mcp__supabase__supabase_list_migrations` again to confirm all pending migrations now appear as applied.
|
|
77
|
+
|
|
78
|
+
Report final status to the user.
|
|
79
|
+
|
|
80
|
+
## Important
|
|
81
|
+
|
|
82
|
+
- NEVER modify migration files — they are immutable once created
|
|
83
|
+
- NEVER skip migrations — they must be applied in sequential order
|
|
84
|
+
- NEVER apply migrations without user confirmation
|
|
85
|
+
- If a migration fails, report the error and suggest the user check the SQL manually
|
|
86
|
+
- The `APPROVE DATABASE` CTO gate will trigger for each `supabase_push_migration` call
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<!-- HOOK:GENTYR:push-secrets -->
|
|
2
|
+
# /push-secrets - Push 1Password Secrets to Render & Vercel
|
|
3
|
+
|
|
4
|
+
Sync secrets from 1Password to Render and Vercel environment variables using the `secret-sync` MCP server. Secret values never pass through the agent's context window.
|
|
5
|
+
|
|
6
|
+
The prefetch hook has pre-gathered the current secret mappings from services.json and injected them as `[PREFETCH:push-secrets]` context above. Use that data for Step 0 instead of calling the MCP tool. If the prefetch data is missing, call `mcp__secret-sync__list_mappings` as usual.
|
|
7
|
+
|
|
8
|
+
## Security Notes
|
|
9
|
+
|
|
10
|
+
- The `secret-sync` MCP server handles all secret reading and pushing internally
|
|
11
|
+
- Secret values are NEVER exposed to the agent — only key names and sync status are returned
|
|
12
|
+
- Each sync operation is protected by GENTYR CTO gates
|
|
13
|
+
- Requires `OP_SERVICE_ACCOUNT_TOKEN`, `RENDER_API_KEY`, and/or `VERCEL_TOKEN` configured via `/setup-gentyr`
|
|
14
|
+
|
|
15
|
+
## Push Flow
|
|
16
|
+
|
|
17
|
+
### Step 0: Check Configuration
|
|
18
|
+
|
|
19
|
+
1. Call `mcp__secret-sync__list_mappings` to verify services.json exists and has mappings
|
|
20
|
+
2. If no mappings are configured, inform the user:
|
|
21
|
+
- "No secret mappings found in `.claude/config/services.json`"
|
|
22
|
+
- "Configure mappings first, then run `/push-secrets` again"
|
|
23
|
+
- Show the expected services.json structure with op:// references
|
|
24
|
+
3. If mappings exist, display the mapping table (key names and op:// references, no values)
|
|
25
|
+
|
|
26
|
+
### Step 1: Choose Target
|
|
27
|
+
|
|
28
|
+
Use `AskUserQuestion` to ask:
|
|
29
|
+
|
|
30
|
+
**Question:** "Which services should receive secrets from 1Password?"
|
|
31
|
+
|
|
32
|
+
**Header:** "Target"
|
|
33
|
+
|
|
34
|
+
**Options (multiSelect: true):**
|
|
35
|
+
- Option 1: "Render Production" — Push to production backend
|
|
36
|
+
- Option 2: "Render Staging" — Push to staging backend
|
|
37
|
+
- Option 3: "Vercel" — Push to frontend project
|
|
38
|
+
- Option 4: "All services" — Push to everything
|
|
39
|
+
|
|
40
|
+
### Step 2: Confirm
|
|
41
|
+
|
|
42
|
+
Based on the selection, show the user how many secrets will be synced.
|
|
43
|
+
|
|
44
|
+
Use `AskUserQuestion`:
|
|
45
|
+
|
|
46
|
+
**Question:** "This will sync {N} secrets to {services}. Proceed?"
|
|
47
|
+
|
|
48
|
+
**Header:** "Confirm"
|
|
49
|
+
|
|
50
|
+
**Options:**
|
|
51
|
+
- Option 1: "Yes, sync secrets" — Proceed
|
|
52
|
+
- Option 2: "Show mapping first" — Call `mcp__secret-sync__list_mappings` and display
|
|
53
|
+
- Option 3: "Cancel" — Abort
|
|
54
|
+
|
|
55
|
+
### Step 3: Sync
|
|
56
|
+
|
|
57
|
+
For each selected target, call `mcp__secret-sync__sync_secrets`:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
mcp__secret-sync__sync_secrets({ target: "render-production" })
|
|
61
|
+
mcp__secret-sync__sync_secrets({ target: "render-staging" })
|
|
62
|
+
mcp__secret-sync__sync_secrets({ target: "vercel" })
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Or for all at once:
|
|
66
|
+
```
|
|
67
|
+
mcp__secret-sync__sync_secrets({ target: "all" })
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Step 4: Report Results
|
|
71
|
+
|
|
72
|
+
Display the results from `sync_secrets`:
|
|
73
|
+
- List each key and whether it was created, updated, or errored
|
|
74
|
+
- If there were errors, show which keys failed and the error messages
|
|
75
|
+
- If there are manual entries in `services.json`, remind the user about them
|
|
76
|
+
|
|
77
|
+
### Step 5: Verify (optional)
|
|
78
|
+
|
|
79
|
+
Ask the user if they want to verify:
|
|
80
|
+
|
|
81
|
+
Use `AskUserQuestion`:
|
|
82
|
+
|
|
83
|
+
**Question:** "Verify that all secrets exist on target services?"
|
|
84
|
+
|
|
85
|
+
**Header:** "Verify"
|
|
86
|
+
|
|
87
|
+
**Options:**
|
|
88
|
+
- Option 1: "Yes, verify" — Call `mcp__secret-sync__verify_secrets` and display results
|
|
89
|
+
- Option 2: "No, done" — Skip verification
|
|
90
|
+
|
|
91
|
+
## Important
|
|
92
|
+
|
|
93
|
+
- NEVER attempt to read secrets directly via `mcp__onepassword__read_secret` — use `secret-sync` instead
|
|
94
|
+
- NEVER log, echo, or display secret values — only show key names and sync status
|
|
95
|
+
- If sync fails partway through, the `secret-sync` server reports which keys succeeded and which failed
|
|
96
|
+
- To update existing secrets (rotation), run this command again — it will overwrite existing values
|
|
97
|
+
- Run `/setup-gentyr` first to configure credentials if `secret-sync` server is not available
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Project-specific service configuration for GENTYR slash commands (/push-secrets, /push-migrations). Copy to .claude/config/services.json and fill in your values.",
|
|
3
|
+
"render": {
|
|
4
|
+
"production": { "serviceId": "srv-YOUR_PROD_SERVICE_ID", "label": "Production" },
|
|
5
|
+
"staging": { "serviceId": "srv-YOUR_STAGING_SERVICE_ID", "label": "Staging" }
|
|
6
|
+
},
|
|
7
|
+
"vercel": {
|
|
8
|
+
"projectId": "prj_YOUR_PROJECT_ID"
|
|
9
|
+
},
|
|
10
|
+
"supabase": {
|
|
11
|
+
"migrationsDir": "supabase/migrations/"
|
|
12
|
+
},
|
|
13
|
+
"secrets": {
|
|
14
|
+
"renderProduction": {
|
|
15
|
+
"SUPABASE_URL": "op://Production/Supabase/url",
|
|
16
|
+
"SUPABASE_SERVICE_ROLE_KEY": "op://Production/Supabase/service-role-key",
|
|
17
|
+
"SUPABASE_ANON_KEY": "op://Production/Supabase/anon-key"
|
|
18
|
+
},
|
|
19
|
+
"renderStaging": {
|
|
20
|
+
"SUPABASE_URL": "op://Staging/Supabase/url",
|
|
21
|
+
"SUPABASE_SERVICE_ROLE_KEY": "op://Staging/Supabase/service-role-key",
|
|
22
|
+
"SUPABASE_ANON_KEY": "op://Staging/Supabase/anon-key"
|
|
23
|
+
},
|
|
24
|
+
"vercel": {
|
|
25
|
+
"NEXT_PUBLIC_SUPABASE_URL": { "ref": "op://Production/Supabase/url", "target": ["production", "preview", "development"], "type": "plain" },
|
|
26
|
+
"NEXT_PUBLIC_SUPABASE_ANON_KEY": { "ref": "op://Production/Supabase/anon-key", "target": ["production", "preview", "development"], "type": "plain" }
|
|
27
|
+
},
|
|
28
|
+
"manual": []
|
|
29
|
+
}
|
|
30
|
+
}
|