@hivehub/rulebook 5.7.0 → 5.8.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/commands/analysis.md +35 -35
- package/.claude/commands/continue.md +33 -33
- package/.claude/commands/rulebook-decision-create.md +55 -55
- package/.claude/commands/rulebook-decision-list.md +15 -15
- package/.claude/commands/rulebook-knowledge-add.md +41 -41
- package/.claude/commands/rulebook-knowledge-list.md +15 -15
- package/.claude/commands/rulebook-memory-save.md +48 -48
- package/.claude/commands/rulebook-memory-search.md +47 -47
- package/.claude/commands/rulebook-task-apply.md +67 -67
- package/.claude/commands/rulebook-task-archive.md +94 -94
- package/.claude/commands/rulebook-task-create.md +93 -93
- package/.claude/commands/rulebook-task-list.md +42 -42
- package/.claude/commands/rulebook-task-show.md +52 -52
- package/.claude/commands/rulebook-task-validate.md +53 -53
- package/.claude-plugin/marketplace.json +28 -28
- package/.claude-plugin/plugin.json +8 -8
- package/README.md +86 -0
- package/dist/cli/commands/claude.d.ts +17 -0
- package/dist/cli/commands/claude.d.ts.map +1 -0
- package/dist/cli/commands/claude.js +56 -0
- package/dist/cli/commands/claude.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +18 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +6 -1
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/prompts.d.ts +13 -0
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +106 -0
- package/dist/cli/prompts.js.map +1 -1
- package/dist/core/claude/claude-mcp.d.ts +9 -0
- package/dist/core/claude/claude-mcp.d.ts.map +1 -1
- package/dist/core/claude/claude-mcp.js +30 -0
- package/dist/core/claude/claude-mcp.js.map +1 -1
- package/dist/core/claude/claude-settings-manager.d.ts +12 -0
- package/dist/core/claude/claude-settings-manager.d.ts.map +1 -1
- package/dist/core/claude/claude-settings-manager.js +59 -3
- package/dist/core/claude/claude-settings-manager.js.map +1 -1
- package/dist/core/detect/detector.d.ts +8 -1
- package/dist/core/detect/detector.d.ts.map +1 -1
- package/dist/core/detect/detector.js +225 -0
- package/dist/core/detect/detector.js.map +1 -1
- package/dist/core/detect/library-registry.d.ts +40 -0
- package/dist/core/detect/library-registry.d.ts.map +1 -0
- package/dist/core/detect/library-registry.js +239 -0
- package/dist/core/detect/library-registry.js.map +1 -0
- package/dist/core/generators/generator.d.ts +1 -0
- package/dist/core/generators/generator.d.ts.map +1 -1
- package/dist/core/generators/generator.js +37 -0
- package/dist/core/generators/generator.js.map +1 -1
- package/dist/core/generators/rules-generator.d.ts +1 -5
- package/dist/core/generators/rules-generator.d.ts.map +1 -1
- package/dist/core/generators/rules-generator.js +40 -1
- package/dist/core/generators/rules-generator.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.js +0 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +23 -22
- package/templates/agents/accessibility-reviewer.md +43 -43
- package/templates/agents/api-designer.md +42 -42
- package/templates/agents/architect.md +51 -51
- package/templates/agents/build-engineer.md +36 -36
- package/templates/agents/code-reviewer.md +47 -47
- package/templates/agents/compiler/codegen-debugger.md +34 -34
- package/templates/agents/compiler/stdlib-engineer.md +28 -28
- package/templates/agents/compiler/test-coverage-guardian.md +31 -31
- package/templates/agents/database-architect.md +41 -41
- package/templates/agents/devops-engineer.md +42 -42
- package/templates/agents/docs-writer.md +38 -38
- package/templates/agents/game-engine/cpp-core-expert.md +35 -35
- package/templates/agents/game-engine/render-engineer.md +22 -22
- package/templates/agents/game-engine/shader-engineer.md +38 -38
- package/templates/agents/game-engine/systems-integration.md +43 -43
- package/templates/agents/generic/code-reviewer.md +41 -41
- package/templates/agents/generic/docs-writer.md +25 -25
- package/templates/agents/generic/project-manager.md +36 -36
- package/templates/agents/generic/researcher.md +34 -34
- package/templates/agents/generic/test-engineer.md +41 -41
- package/templates/agents/i18n-engineer.md +42 -42
- package/templates/agents/implementer.md +42 -42
- package/templates/agents/migration-engineer.md +42 -42
- package/templates/agents/mobile/platform-specialist.md +22 -22
- package/templates/agents/mobile/ui-engineer.md +22 -22
- package/templates/agents/performance-engineer.md +49 -49
- package/templates/agents/project-manager.md +215 -0
- package/templates/agents/quality-gatekeeper.md +205 -0
- package/templates/agents/refactoring-agent.md +41 -41
- package/templates/agents/researcher.md +38 -38
- package/templates/agents/security-reviewer.md +40 -40
- package/templates/agents/team-lead.md +37 -37
- package/templates/agents/tester.md +48 -48
- package/templates/agents/ux-reviewer.md +43 -43
- package/templates/agents/web-app/api-designer.md +22 -22
- package/templates/agents/web-app/backend-engineer.md +30 -30
- package/templates/agents/web-app/database-engineer.md +22 -22
- package/templates/agents/web-app/frontend-engineer.md +29 -29
- package/templates/agents/web-app/security-reviewer.md +32 -32
- package/templates/ci/rulebook-review.yml +26 -26
- package/templates/claude-workflows/bugfix.js +94 -0
- package/templates/claude-workflows/feature-pipeline.js +88 -0
- package/templates/claude-workflows/release-gate.js +64 -0
- package/templates/claude-workflows/review-fanout.js +118 -0
- package/templates/claude-workflows/rulebook-driver.js +343 -0
- package/templates/claude-workflows/spec-author.js +133 -0
- package/templates/cli/AIDER.md +49 -49
- package/templates/cli/AMAZON_Q.md +25 -25
- package/templates/cli/AUGGIE.md +32 -32
- package/templates/cli/CLAUDE.md +117 -117
- package/templates/cli/CLINE.md +99 -99
- package/templates/cli/CODEBUDDY.md +20 -20
- package/templates/cli/CODEIUM.md +20 -20
- package/templates/cli/CODEX.md +21 -21
- package/templates/cli/CONTINUE.md +34 -34
- package/templates/cli/CURSOR_CLI.md +62 -62
- package/templates/cli/FACTORY.md +18 -18
- package/templates/cli/GEMINI.md +35 -35
- package/templates/cli/KILOCODE.md +18 -18
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
- package/templates/commands/rulebook-decision-create.md +55 -55
- package/templates/commands/rulebook-decision-list.md +15 -15
- package/templates/commands/rulebook-knowledge-add.md +41 -41
- package/templates/commands/rulebook-knowledge-list.md +15 -15
- package/templates/commands/rulebook-memory-save.md +48 -48
- package/templates/commands/rulebook-memory-search.md +47 -47
- package/templates/commands/rulebook-task-apply.md +67 -67
- package/templates/commands/rulebook-task-archive.md +94 -94
- package/templates/commands/rulebook-task-create.md +93 -93
- package/templates/commands/rulebook-task-list.md +42 -42
- package/templates/commands/rulebook-task-show.md +52 -52
- package/templates/commands/rulebook-task-validate.md +53 -53
- package/templates/compact-context/_default.md +23 -23
- package/templates/compact-context/cpp.md +26 -26
- package/templates/compact-context/go.md +26 -26
- package/templates/compact-context/python.md +26 -26
- package/templates/compact-context/rust.md +28 -28
- package/templates/compact-context/typescript.md +29 -29
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +296 -296
- package/templates/core/CLAUDE_MD_v2.md +90 -90
- package/templates/core/DAG.md +304 -304
- package/templates/core/DECISIONS.md +38 -38
- package/templates/core/DOCUMENTATION_RULES.md +36 -36
- package/templates/core/KNOWLEDGE.md +49 -49
- package/templates/core/MULTI_AGENT.md +74 -74
- package/templates/core/PLANS.md +28 -28
- package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
- package/templates/core/RULEBOOK.md +1947 -1947
- package/templates/core/TIER1_PROHIBITIONS.md +154 -154
- package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
- package/templates/git/CI_CD_PATTERNS.md +661 -661
- package/templates/git/GITHUB_ACTIONS.md +728 -728
- package/templates/git/GITLAB_CI.md +730 -730
- package/templates/git/GIT_WORKFLOW.md +1192 -1192
- package/templates/git/SECRETS_MANAGEMENT.md +585 -585
- package/templates/hooks/COMMIT_MSG.md +530 -530
- package/templates/hooks/POST_CHECKOUT.md +546 -546
- package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
- package/templates/hooks/PRE_COMMIT.md +414 -414
- package/templates/hooks/PRE_PUSH.md +601 -601
- package/templates/hooks/check-context-and-handoff.sh +16 -6
- package/templates/hooks/update-check.ps1 +84 -0
- package/templates/hooks/update-check.sh +103 -0
- package/templates/ides/CONTINUE_RULES.md +16 -16
- package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
- package/templates/ides/GEMINI_RULES.md +17 -17
- package/templates/ides/WINDSURF_RULES.md +14 -14
- package/templates/languages/C.md +333 -333
- package/templates/languages/CPP.md +743 -743
- package/templates/languages/CSHARP.md +417 -417
- package/templates/languages/ELIXIR.md +454 -454
- package/templates/languages/ERLANG.md +361 -361
- package/templates/languages/GO.md +645 -645
- package/templates/languages/HASKELL.md +177 -177
- package/templates/languages/JAVA.md +607 -607
- package/templates/languages/JAVASCRIPT.md +631 -631
- package/templates/languages/JULIA.md +97 -97
- package/templates/languages/KOTLIN.md +511 -511
- package/templates/languages/LISP.md +100 -100
- package/templates/languages/LUA.md +74 -74
- package/templates/languages/OBJECTIVEC.md +90 -90
- package/templates/languages/PHP.md +416 -416
- package/templates/languages/PYTHON.md +682 -682
- package/templates/languages/RUBY.md +421 -421
- package/templates/languages/RUST.md +477 -477
- package/templates/languages/SAS.md +73 -73
- package/templates/languages/SCALA.md +348 -348
- package/templates/languages/SOLIDITY.md +580 -580
- package/templates/languages/SQL.md +137 -137
- package/templates/languages/SWIFT.md +466 -466
- package/templates/languages/TYPESCRIPT.md +591 -591
- package/templates/languages/ZIG.md +265 -265
- package/templates/libraries/go/ECHO.md +18 -0
- package/templates/libraries/go/GIN.md +18 -0
- package/templates/libraries/go/GORM.md +18 -0
- package/templates/libraries/python/DJANGO.md +18 -0
- package/templates/libraries/python/FASTAPI.md +18 -0
- package/templates/libraries/python/FLASK.md +17 -0
- package/templates/libraries/python/PYDANTIC.md +17 -0
- package/templates/libraries/python/PYTEST.md +17 -0
- package/templates/libraries/python/SQLALCHEMY.md +17 -0
- package/templates/libraries/rust/ACTIX.md +17 -0
- package/templates/libraries/rust/AXUM.md +18 -0
- package/templates/libraries/rust/SERDE.md +16 -0
- package/templates/libraries/rust/SQLX.md +17 -0
- package/templates/libraries/rust/TOKIO.md +16 -0
- package/templates/libraries/typescript/ANGULAR.md +17 -0
- package/templates/libraries/typescript/DRIZZLE.md +16 -0
- package/templates/libraries/typescript/EXPRESS.md +17 -0
- package/templates/libraries/typescript/HEROUI.md +16 -0
- package/templates/libraries/typescript/JEST.md +17 -0
- package/templates/libraries/typescript/NESTJS.md +17 -0
- package/templates/libraries/typescript/NEXT.md +18 -0
- package/templates/libraries/typescript/PRISMA.md +16 -0
- package/templates/libraries/typescript/RADIX.md +16 -0
- package/templates/libraries/typescript/REACT.md +18 -0
- package/templates/libraries/typescript/SHADCN.md +16 -0
- package/templates/libraries/typescript/SVELTE.md +16 -0
- package/templates/libraries/typescript/TAILWIND.md +16 -0
- package/templates/libraries/typescript/TRPC.md +16 -0
- package/templates/libraries/typescript/VITEST.md +17 -0
- package/templates/libraries/typescript/VUE.md +17 -0
- package/templates/libraries/typescript/ZOD.md +17 -0
- package/templates/modules/ATLASSIAN.md +255 -255
- package/templates/modules/CONTEXT7.md +54 -54
- package/templates/modules/FIGMA.md +267 -267
- package/templates/modules/GITHUB_MCP.md +64 -64
- package/templates/modules/GRAFANA.md +328 -328
- package/templates/modules/MEMORY.md +126 -126
- package/templates/modules/NOTION.md +247 -247
- package/templates/modules/PLAYWRIGHT.md +90 -90
- package/templates/modules/RULEBOOK_MCP.md +208 -208
- package/templates/modules/SERENA.md +337 -337
- package/templates/modules/SUPABASE.md +223 -223
- package/templates/modules/SYNAP.md +69 -69
- package/templates/modules/VECTORIZER.md +63 -63
- package/templates/modules/sequential-thinking.md +42 -42
- package/templates/rules/consult-analysis-before-implementing.md +23 -23
- package/templates/rules/cpp.md +46 -46
- package/templates/rules/csharp.md +44 -44
- package/templates/rules/diagnostic-first.md +39 -39
- package/templates/rules/fail-twice-escalate.md +46 -46
- package/templates/rules/follow-task-sequence.md +36 -36
- package/templates/rules/git-safety.md +29 -29
- package/templates/rules/go.md +40 -40
- package/templates/rules/incremental-implementation.md +56 -56
- package/templates/rules/incremental-tests.md +29 -29
- package/templates/rules/java.md +43 -43
- package/templates/rules/javascript.md +39 -39
- package/templates/rules/knowledge-base-usage.md +41 -41
- package/templates/rules/multi-agent-teams.md +75 -75
- package/templates/rules/no-deferred.md +31 -31
- package/templates/rules/no-shortcuts.md +30 -30
- package/templates/rules/python.md +43 -43
- package/templates/rules/research-first.md +30 -30
- package/templates/rules/respect-handoff-trigger.md +41 -41
- package/templates/rules/rust.md +40 -40
- package/templates/rules/sequential-editing.md +21 -21
- package/templates/rules/session-workflow.md +24 -24
- package/templates/rules/task-decomposition.md +32 -32
- package/templates/rules/typescript.md +40 -40
- package/templates/skills/cli/aider/SKILL.md +59 -59
- package/templates/skills/cli/amazon-q/SKILL.md +35 -35
- package/templates/skills/cli/auggie/SKILL.md +42 -42
- package/templates/skills/cli/claude/SKILL.md +42 -42
- package/templates/skills/cli/cline/SKILL.md +42 -42
- package/templates/skills/cli/codebuddy/SKILL.md +30 -30
- package/templates/skills/cli/codeium/SKILL.md +30 -30
- package/templates/skills/cli/codex/SKILL.md +31 -31
- package/templates/skills/cli/continue/SKILL.md +44 -44
- package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
- package/templates/skills/cli/factory/SKILL.md +28 -28
- package/templates/skills/cli/gemini/SKILL.md +45 -45
- package/templates/skills/cli/kilocode/SKILL.md +28 -28
- package/templates/skills/core/agent-automation/SKILL.md +194 -194
- package/templates/skills/core/dag/SKILL.md +314 -314
- package/templates/skills/core/documentation-rules/SKILL.md +46 -46
- package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
- package/templates/skills/core/rulebook/SKILL.md +176 -176
- package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
- package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
- package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
- package/templates/skills/dev/accessibility/SKILL.md +17 -17
- package/templates/skills/dev/analysis/SKILL.md +19 -19
- package/templates/skills/dev/api-design/SKILL.md +15 -15
- package/templates/skills/dev/architect/SKILL.md +17 -17
- package/templates/skills/dev/build-fix/SKILL.md +17 -17
- package/templates/skills/dev/db-design/SKILL.md +15 -15
- package/templates/skills/dev/debug/SKILL.md +16 -16
- package/templates/skills/dev/deploy/SKILL.md +17 -17
- package/templates/skills/dev/docs/SKILL.md +17 -17
- package/templates/skills/dev/handoff/SKILL.md +27 -27
- package/templates/skills/dev/migrate/SKILL.md +15 -15
- package/templates/skills/dev/perf/SKILL.md +17 -17
- package/templates/skills/dev/refactor/SKILL.md +17 -17
- package/templates/skills/dev/research/SKILL.md +14 -14
- package/templates/skills/dev/review/SKILL.md +18 -18
- package/templates/skills/dev/security-audit/SKILL.md +17 -17
- package/templates/skills/dev/spec/SKILL.md +65 -0
- package/templates/skills/ides/copilot/SKILL.md +47 -47
- package/templates/skills/ides/cursor/SKILL.md +53 -53
- package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
- package/templates/skills/ides/replit/SKILL.md +46 -46
- package/templates/skills/ides/tabnine/SKILL.md +39 -39
- package/templates/skills/ides/vscode/SKILL.md +50 -50
- package/templates/skills/ides/windsurf/SKILL.md +46 -46
- package/templates/skills/ides/zed/SKILL.md +42 -42
- package/templates/skills/languages/c/SKILL.md +343 -343
- package/templates/skills/languages/cpp/SKILL.md +753 -753
- package/templates/skills/languages/csharp/SKILL.md +427 -427
- package/templates/skills/languages/elixir/SKILL.md +464 -464
- package/templates/skills/languages/erlang/SKILL.md +371 -371
- package/templates/skills/languages/go/SKILL.md +655 -655
- package/templates/skills/languages/haskell/SKILL.md +187 -187
- package/templates/skills/languages/java/SKILL.md +617 -617
- package/templates/skills/languages/javascript/SKILL.md +641 -641
- package/templates/skills/languages/julia/SKILL.md +107 -107
- package/templates/skills/languages/kotlin/SKILL.md +521 -521
- package/templates/skills/languages/lisp/SKILL.md +110 -110
- package/templates/skills/languages/lua/SKILL.md +84 -84
- package/templates/skills/languages/objectivec/SKILL.md +100 -100
- package/templates/skills/languages/php/SKILL.md +426 -426
- package/templates/skills/languages/python/SKILL.md +692 -692
- package/templates/skills/languages/ruby/SKILL.md +431 -431
- package/templates/skills/languages/rust/SKILL.md +487 -487
- package/templates/skills/languages/sas/SKILL.md +83 -83
- package/templates/skills/languages/scala/SKILL.md +358 -358
- package/templates/skills/languages/solidity/SKILL.md +590 -590
- package/templates/skills/languages/sql/SKILL.md +147 -147
- package/templates/skills/languages/swift/SKILL.md +476 -476
- package/templates/skills/languages/typescript/SKILL.md +302 -302
- package/templates/skills/languages/zig/SKILL.md +275 -275
- package/templates/skills/modules/atlassian/SKILL.md +265 -265
- package/templates/skills/modules/context7/SKILL.md +64 -64
- package/templates/skills/modules/figma/SKILL.md +277 -277
- package/templates/skills/modules/github-mcp/SKILL.md +74 -74
- package/templates/skills/modules/grafana/SKILL.md +338 -338
- package/templates/skills/modules/memory/SKILL.md +73 -73
- package/templates/skills/modules/notion/SKILL.md +257 -257
- package/templates/skills/modules/playwright/SKILL.md +100 -100
- package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
- package/templates/skills/modules/serena/SKILL.md +347 -347
- package/templates/skills/modules/supabase/SKILL.md +233 -233
- package/templates/skills/modules/synap/SKILL.md +79 -79
- package/templates/skills/modules/vectorizer/SKILL.md +73 -73
- package/dist/agents/ralph-parser.d.ts +0 -91
- package/dist/agents/ralph-parser.d.ts.map +0 -1
- package/dist/agents/ralph-parser.js +0 -415
- package/dist/agents/ralph-parser.js.map +0 -1
- package/dist/cli/commands/analysis.d.ts +0 -8
- package/dist/cli/commands/analysis.d.ts.map +0 -1
- package/dist/cli/commands/analysis.js +0 -78
- package/dist/cli/commands/analysis.js.map +0 -1
- package/dist/cli/commands/compress.d.ts +0 -18
- package/dist/cli/commands/compress.d.ts.map +0 -1
- package/dist/cli/commands/compress.js +0 -100
- package/dist/cli/commands/compress.js.map +0 -1
- package/dist/cli/commands/ralph.d.ts +0 -45
- package/dist/cli/commands/ralph.d.ts.map +0 -1
- package/dist/cli/commands/ralph.js +0 -694
- package/dist/cli/commands/ralph.js.map +0 -1
- package/dist/cli/docs-prompts.d.ts +0 -3
- package/dist/cli/docs-prompts.d.ts.map +0 -1
- package/dist/cli/docs-prompts.js +0 -45
- package/dist/cli/docs-prompts.js.map +0 -1
- package/dist/core/agent-manager.d.ts +0 -69
- package/dist/core/agent-manager.d.ts.map +0 -1
- package/dist/core/agent-manager.js +0 -476
- package/dist/core/agent-manager.js.map +0 -1
- package/dist/core/agent-template-engine.d.ts +0 -51
- package/dist/core/agent-template-engine.d.ts.map +0 -1
- package/dist/core/agent-template-engine.js +0 -291
- package/dist/core/agent-template-engine.js.map +0 -1
- package/dist/core/analysis-manager.d.ts +0 -56
- package/dist/core/analysis-manager.d.ts.map +0 -1
- package/dist/core/analysis-manager.js +0 -218
- package/dist/core/analysis-manager.js.map +0 -1
- package/dist/core/auto-fixer.d.ts +0 -14
- package/dist/core/auto-fixer.d.ts.map +0 -1
- package/dist/core/auto-fixer.js +0 -207
- package/dist/core/auto-fixer.js.map +0 -1
- package/dist/core/changelog-generator.d.ts +0 -44
- package/dist/core/changelog-generator.d.ts.map +0 -1
- package/dist/core/changelog-generator.js +0 -222
- package/dist/core/changelog-generator.js.map +0 -1
- package/dist/core/claude-mcp.d.ts +0 -59
- package/dist/core/claude-mcp.d.ts.map +0 -1
- package/dist/core/claude-mcp.js +0 -220
- package/dist/core/claude-mcp.js.map +0 -1
- package/dist/core/claude-md-generator.d.ts +0 -52
- package/dist/core/claude-md-generator.d.ts.map +0 -1
- package/dist/core/claude-md-generator.js +0 -104
- package/dist/core/claude-md-generator.js.map +0 -1
- package/dist/core/claude-settings-manager.d.ts +0 -44
- package/dist/core/claude-settings-manager.d.ts.map +0 -1
- package/dist/core/claude-settings-manager.js +0 -191
- package/dist/core/claude-settings-manager.js.map +0 -1
- package/dist/core/cli-bridge.d.ts +0 -113
- package/dist/core/cli-bridge.d.ts.map +0 -1
- package/dist/core/cli-bridge.js +0 -1094
- package/dist/core/cli-bridge.js.map +0 -1
- package/dist/core/compact-context-manager.d.ts +0 -34
- package/dist/core/compact-context-manager.d.ts.map +0 -1
- package/dist/core/compact-context-manager.js +0 -60
- package/dist/core/compact-context-manager.js.map +0 -1
- package/dist/core/complexity-detector.d.ts +0 -36
- package/dist/core/complexity-detector.d.ts.map +0 -1
- package/dist/core/complexity-detector.js +0 -334
- package/dist/core/complexity-detector.js.map +0 -1
- package/dist/core/compress/compressor.d.ts +0 -60
- package/dist/core/compress/compressor.d.ts.map +0 -1
- package/dist/core/compress/compressor.js +0 -232
- package/dist/core/compress/compressor.js.map +0 -1
- package/dist/core/compress/discover.d.ts +0 -19
- package/dist/core/compress/discover.d.ts.map +0 -1
- package/dist/core/compress/discover.js +0 -100
- package/dist/core/compress/discover.js.map +0 -1
- package/dist/core/compress/validator.d.ts +0 -47
- package/dist/core/compress/validator.d.ts.map +0 -1
- package/dist/core/compress/validator.js +0 -131
- package/dist/core/compress/validator.js.map +0 -1
- package/dist/core/config-manager.d.ts +0 -86
- package/dist/core/config-manager.d.ts.map +0 -1
- package/dist/core/config-manager.js +0 -621
- package/dist/core/config-manager.js.map +0 -1
- package/dist/core/coverage-checker.d.ts +0 -14
- package/dist/core/coverage-checker.d.ts.map +0 -1
- package/dist/core/coverage-checker.js +0 -176
- package/dist/core/coverage-checker.js.map +0 -1
- package/dist/core/cursor-mdc-generator.d.ts +0 -30
- package/dist/core/cursor-mdc-generator.d.ts.map +0 -1
- package/dist/core/cursor-mdc-generator.js +0 -98
- package/dist/core/cursor-mdc-generator.js.map +0 -1
- package/dist/core/decision-manager.d.ts +0 -25
- package/dist/core/decision-manager.d.ts.map +0 -1
- package/dist/core/decision-manager.js +0 -183
- package/dist/core/decision-manager.js.map +0 -1
- package/dist/core/dependency-checker.d.ts +0 -21
- package/dist/core/dependency-checker.d.ts.map +0 -1
- package/dist/core/dependency-checker.js +0 -247
- package/dist/core/dependency-checker.js.map +0 -1
- package/dist/core/detector.d.ts +0 -27
- package/dist/core/detector.d.ts.map +0 -1
- package/dist/core/detector.js +0 -1763
- package/dist/core/detector.js.map +0 -1
- package/dist/core/docs-generator.d.ts +0 -9
- package/dist/core/docs-generator.d.ts.map +0 -1
- package/dist/core/docs-generator.js +0 -531
- package/dist/core/docs-generator.js.map +0 -1
- package/dist/core/doctor.d.ts +0 -19
- package/dist/core/doctor.d.ts.map +0 -1
- package/dist/core/doctor.js +0 -229
- package/dist/core/doctor.js.map +0 -1
- package/dist/core/generator.d.ts +0 -56
- package/dist/core/generator.d.ts.map +0 -1
- package/dist/core/generator.js +0 -1193
- package/dist/core/generator.js.map +0 -1
- package/dist/core/github-issues-importer.d.ts +0 -82
- package/dist/core/github-issues-importer.d.ts.map +0 -1
- package/dist/core/github-issues-importer.js +0 -161
- package/dist/core/github-issues-importer.js.map +0 -1
- package/dist/core/gitignore-generator.d.ts +0 -13
- package/dist/core/gitignore-generator.d.ts.map +0 -1
- package/dist/core/gitignore-generator.js +0 -307
- package/dist/core/gitignore-generator.js.map +0 -1
- package/dist/core/health-scorer.d.ts +0 -61
- package/dist/core/health-scorer.d.ts.map +0 -1
- package/dist/core/health-scorer.js +0 -638
- package/dist/core/health-scorer.js.map +0 -1
- package/dist/core/iteration-tracker.d.ts +0 -85
- package/dist/core/iteration-tracker.d.ts.map +0 -1
- package/dist/core/iteration-tracker.js +0 -295
- package/dist/core/iteration-tracker.js.map +0 -1
- package/dist/core/knowledge-manager.d.ts +0 -24
- package/dist/core/knowledge-manager.d.ts.map +0 -1
- package/dist/core/knowledge-manager.js +0 -173
- package/dist/core/knowledge-manager.js.map +0 -1
- package/dist/core/learn-manager.d.ts +0 -29
- package/dist/core/learn-manager.d.ts.map +0 -1
- package/dist/core/learn-manager.js +0 -159
- package/dist/core/learn-manager.js.map +0 -1
- package/dist/core/mcp-reference-generator.d.ts +0 -13
- package/dist/core/mcp-reference-generator.d.ts.map +0 -1
- package/dist/core/mcp-reference-generator.js +0 -66
- package/dist/core/mcp-reference-generator.js.map +0 -1
- package/dist/core/minimal-scaffolder.d.ts +0 -8
- package/dist/core/minimal-scaffolder.d.ts.map +0 -1
- package/dist/core/minimal-scaffolder.js +0 -51
- package/dist/core/minimal-scaffolder.js.map +0 -1
- package/dist/core/modern-console.d.ts +0 -98
- package/dist/core/modern-console.d.ts.map +0 -1
- package/dist/core/modern-console.js +0 -556
- package/dist/core/modern-console.js.map +0 -1
- package/dist/core/multi-tool-generator.d.ts +0 -59
- package/dist/core/multi-tool-generator.d.ts.map +0 -1
- package/dist/core/multi-tool-generator.js +0 -157
- package/dist/core/multi-tool-generator.js.map +0 -1
- package/dist/core/override-manager.d.ts +0 -23
- package/dist/core/override-manager.d.ts.map +0 -1
- package/dist/core/override-manager.js +0 -82
- package/dist/core/override-manager.js.map +0 -1
- package/dist/core/plans-manager.d.ts +0 -46
- package/dist/core/plans-manager.d.ts.map +0 -1
- package/dist/core/plans-manager.js +0 -158
- package/dist/core/plans-manager.js.map +0 -1
- package/dist/core/prd-generator.d.ts +0 -48
- package/dist/core/prd-generator.d.ts.map +0 -1
- package/dist/core/prd-generator.js +0 -233
- package/dist/core/prd-generator.js.map +0 -1
- package/dist/core/ralph-manager.d.ts +0 -163
- package/dist/core/ralph-manager.d.ts.map +0 -1
- package/dist/core/ralph-manager.js +0 -555
- package/dist/core/ralph-manager.js.map +0 -1
- package/dist/core/ralph-parallel.d.ts +0 -55
- package/dist/core/ralph-parallel.d.ts.map +0 -1
- package/dist/core/ralph-parallel.js +0 -201
- package/dist/core/ralph-parallel.js.map +0 -1
- package/dist/core/ralph-plan-checkpoint.d.ts +0 -58
- package/dist/core/ralph-plan-checkpoint.d.ts.map +0 -1
- package/dist/core/ralph-plan-checkpoint.js +0 -154
- package/dist/core/ralph-plan-checkpoint.js.map +0 -1
- package/dist/core/ralph-scripts.d.ts +0 -12
- package/dist/core/ralph-scripts.d.ts.map +0 -1
- package/dist/core/ralph-scripts.js +0 -50
- package/dist/core/ralph-scripts.js.map +0 -1
- package/dist/core/review-manager.d.ts +0 -74
- package/dist/core/review-manager.d.ts.map +0 -1
- package/dist/core/review-manager.js +0 -371
- package/dist/core/review-manager.js.map +0 -1
- package/dist/core/rules-generator.d.ts +0 -73
- package/dist/core/rules-generator.d.ts.map +0 -1
- package/dist/core/rules-generator.js +0 -202
- package/dist/core/rules-generator.js.map +0 -1
- package/dist/core/skills-manager.d.ts +0 -126
- package/dist/core/skills-manager.d.ts.map +0 -1
- package/dist/core/skills-manager.js +0 -654
- package/dist/core/skills-manager.js.map +0 -1
- package/dist/core/state-writer.d.ts +0 -35
- package/dist/core/state-writer.d.ts.map +0 -1
- package/dist/core/state-writer.js +0 -81
- package/dist/core/state-writer.js.map +0 -1
- package/dist/core/task-manager.d.ts +0 -127
- package/dist/core/task-manager.d.ts.map +0 -1
- package/dist/core/task-manager.js +0 -607
- package/dist/core/task-manager.js.map +0 -1
- package/dist/core/telemetry.d.ts +0 -29
- package/dist/core/telemetry.d.ts.map +0 -1
- package/dist/core/telemetry.js +0 -57
- package/dist/core/telemetry.js.map +0 -1
- package/dist/core/validator.d.ts +0 -21
- package/dist/core/validator.d.ts.map +0 -1
- package/dist/core/validator.js +0 -177
- package/dist/core/validator.js.map +0 -1
- package/dist/core/version-bumper.d.ts +0 -19
- package/dist/core/version-bumper.d.ts.map +0 -1
- package/dist/core/version-bumper.js +0 -180
- package/dist/core/version-bumper.js.map +0 -1
- package/dist/core/watcher.d.ts +0 -9
- package/dist/core/watcher.d.ts.map +0 -1
- package/dist/core/watcher.js +0 -22
- package/dist/core/watcher.js.map +0 -1
- package/dist/core/workflow-generator.d.ts +0 -15
- package/dist/core/workflow-generator.d.ts.map +0 -1
- package/dist/core/workflow-generator.js +0 -391
- package/dist/core/workflow-generator.js.map +0 -1
- package/dist/hooks/terse-activate.d.ts +0 -59
- package/dist/hooks/terse-activate.d.ts.map +0 -1
- package/dist/hooks/terse-activate.js +0 -149
- package/dist/hooks/terse-activate.js.map +0 -1
- package/dist/hooks/terse-config.d.ts +0 -51
- package/dist/hooks/terse-config.d.ts.map +0 -1
- package/dist/hooks/terse-config.js +0 -130
- package/dist/hooks/terse-config.js.map +0 -1
- package/dist/hooks/terse-mode-tracker.d.ts +0 -78
- package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
- package/dist/hooks/terse-mode-tracker.js +0 -213
- package/dist/hooks/terse-mode-tracker.js.map +0 -1
- package/dist/memory/hnsw-index.d.ts +0 -68
- package/dist/memory/hnsw-index.d.ts.map +0 -1
- package/dist/memory/hnsw-index.js +0 -544
- package/dist/memory/hnsw-index.js.map +0 -1
- package/dist/memory/memory-cache.d.ts +0 -33
- package/dist/memory/memory-cache.d.ts.map +0 -1
- package/dist/memory/memory-cache.js +0 -85
- package/dist/memory/memory-cache.js.map +0 -1
- package/dist/memory/memory-search.d.ts +0 -42
- package/dist/memory/memory-search.d.ts.map +0 -1
- package/dist/memory/memory-search.js +0 -180
- package/dist/memory/memory-search.js.map +0 -1
- package/dist/memory/memory-store.d.ts +0 -84
- package/dist/memory/memory-store.d.ts.map +0 -1
- package/dist/memory/memory-store.js +0 -566
- package/dist/memory/memory-store.js.map +0 -1
- package/dist/memory/memory-vectorizer.d.ts +0 -29
- package/dist/memory/memory-vectorizer.d.ts.map +0 -1
- package/dist/memory/memory-vectorizer.js +0 -199
- package/dist/memory/memory-vectorizer.js.map +0 -1
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ux-reviewer
|
|
3
|
-
model: haiku
|
|
4
|
-
description: Reviews user experience, usability heuristics, and interaction patterns. Use for UX audits of frontend code.
|
|
5
|
-
tools: Read, Glob, Grep
|
|
6
|
-
disallowedTools: Write, Edit, Bash
|
|
7
|
-
maxTurns: 15
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Responsibilities
|
|
11
|
-
|
|
12
|
-
- Evaluate interfaces against Nielsen's 10 usability heuristics
|
|
13
|
-
- Review interaction patterns for consistency with platform conventions
|
|
14
|
-
- Audit error states, empty states, and loading states for completeness
|
|
15
|
-
- Identify friction in user flows and propose targeted reductions
|
|
16
|
-
- Validate that feedback (confirmation, error, progress) is timely and clear
|
|
17
|
-
|
|
18
|
-
## Workflow
|
|
19
|
-
|
|
20
|
-
1. Map primary user flows and identify all entry, decision, and exit points
|
|
21
|
-
2. Evaluate each screen against the 10 usability heuristics; log violations
|
|
22
|
-
3. Review all error states: are messages actionable, specific, and non-blaming?
|
|
23
|
-
4. Check empty states: is context provided with a clear call-to-action?
|
|
24
|
-
5. Verify loading states: is progress indicated for operations exceeding 1 second?
|
|
25
|
-
6. Assess information hierarchy: does visual weight match task priority?
|
|
26
|
-
7. Confirm destructive actions (delete, disconnect) require confirmation with consequence description
|
|
27
|
-
8. Produce finding report with heuristic violated, severity, screenshot reference, and recommendation
|
|
28
|
-
|
|
29
|
-
## Standards
|
|
30
|
-
|
|
31
|
-
- Severity scale: Critical (blocks task), High (impedes task), Medium (causes confusion), Low (polish)
|
|
32
|
-
- Error messages: state what happened, why, and how to fix — never just an error code
|
|
33
|
-
- Response time feedback: immediate (< 100ms), acknowledged (< 1s), progress indicator (< 10s), background (> 10s)
|
|
34
|
-
- Destructive actions must be reversible OR require explicit typed confirmation
|
|
35
|
-
- Consistency: same action must always produce the same result across the product
|
|
36
|
-
|
|
37
|
-
## Rules
|
|
38
|
-
|
|
39
|
-
- UX findings must reference the specific heuristic or principle violated
|
|
40
|
-
- Do not redesign visual aesthetics; focus on usability and interaction quality
|
|
41
|
-
- Every critical finding must include a concrete, implementable remediation
|
|
42
|
-
- Validate findings against actual user task flows, not isolated components
|
|
43
|
-
- Prioritize findings by user impact, not implementation effort
|
|
1
|
+
---
|
|
2
|
+
name: ux-reviewer
|
|
3
|
+
model: haiku
|
|
4
|
+
description: Reviews user experience, usability heuristics, and interaction patterns. Use for UX audits of frontend code.
|
|
5
|
+
tools: Read, Glob, Grep
|
|
6
|
+
disallowedTools: Write, Edit, Bash
|
|
7
|
+
maxTurns: 15
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Responsibilities
|
|
11
|
+
|
|
12
|
+
- Evaluate interfaces against Nielsen's 10 usability heuristics
|
|
13
|
+
- Review interaction patterns for consistency with platform conventions
|
|
14
|
+
- Audit error states, empty states, and loading states for completeness
|
|
15
|
+
- Identify friction in user flows and propose targeted reductions
|
|
16
|
+
- Validate that feedback (confirmation, error, progress) is timely and clear
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
1. Map primary user flows and identify all entry, decision, and exit points
|
|
21
|
+
2. Evaluate each screen against the 10 usability heuristics; log violations
|
|
22
|
+
3. Review all error states: are messages actionable, specific, and non-blaming?
|
|
23
|
+
4. Check empty states: is context provided with a clear call-to-action?
|
|
24
|
+
5. Verify loading states: is progress indicated for operations exceeding 1 second?
|
|
25
|
+
6. Assess information hierarchy: does visual weight match task priority?
|
|
26
|
+
7. Confirm destructive actions (delete, disconnect) require confirmation with consequence description
|
|
27
|
+
8. Produce finding report with heuristic violated, severity, screenshot reference, and recommendation
|
|
28
|
+
|
|
29
|
+
## Standards
|
|
30
|
+
|
|
31
|
+
- Severity scale: Critical (blocks task), High (impedes task), Medium (causes confusion), Low (polish)
|
|
32
|
+
- Error messages: state what happened, why, and how to fix — never just an error code
|
|
33
|
+
- Response time feedback: immediate (< 100ms), acknowledged (< 1s), progress indicator (< 10s), background (> 10s)
|
|
34
|
+
- Destructive actions must be reversible OR require explicit typed confirmation
|
|
35
|
+
- Consistency: same action must always produce the same result across the product
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
- UX findings must reference the specific heuristic or principle violated
|
|
40
|
+
- Do not redesign visual aesthetics; focus on usability and interaction quality
|
|
41
|
+
- Every critical finding must include a concrete, implementable remediation
|
|
42
|
+
- Validate findings against actual user task flows, not isolated components
|
|
43
|
+
- Prioritize findings by user impact, not implementation effort
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: api-designer
|
|
3
|
-
domain: api
|
|
4
|
-
filePatterns: ["*.graphql", "*.gql", "openapi.*", "swagger.*", "src/api/**"]
|
|
5
|
-
tier: standard
|
|
6
|
-
model: sonnet
|
|
7
|
-
description: "REST/GraphQL API design, OpenAPI specs, endpoint consistency"
|
|
8
|
-
checklist:
|
|
9
|
-
- "Are endpoints RESTful (proper verbs, nouns, status codes)?"
|
|
10
|
-
- "Is the API versioned?"
|
|
11
|
-
- "Are error responses consistent?"
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
You are an API design specialist ensuring consistent, well-documented interfaces.
|
|
15
|
-
|
|
16
|
-
## Core Rules
|
|
17
|
-
|
|
18
|
-
1. **RESTful conventions** — proper HTTP verbs, resource nouns, status codes
|
|
19
|
-
2. **Consistent error format** — `{ error: { code, message, details } }`
|
|
20
|
-
3. **Pagination** — cursor-based for lists, never return unbounded results
|
|
21
|
-
4. **Versioning** — URL path (`/v1/`) or header-based
|
|
22
|
-
5. **Documentation** — OpenAPI spec for every endpoint
|
|
1
|
+
---
|
|
2
|
+
name: api-designer
|
|
3
|
+
domain: api
|
|
4
|
+
filePatterns: ["*.graphql", "*.gql", "openapi.*", "swagger.*", "src/api/**"]
|
|
5
|
+
tier: standard
|
|
6
|
+
model: sonnet
|
|
7
|
+
description: "REST/GraphQL API design, OpenAPI specs, endpoint consistency"
|
|
8
|
+
checklist:
|
|
9
|
+
- "Are endpoints RESTful (proper verbs, nouns, status codes)?"
|
|
10
|
+
- "Is the API versioned?"
|
|
11
|
+
- "Are error responses consistent?"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
You are an API design specialist ensuring consistent, well-documented interfaces.
|
|
15
|
+
|
|
16
|
+
## Core Rules
|
|
17
|
+
|
|
18
|
+
1. **RESTful conventions** — proper HTTP verbs, resource nouns, status codes
|
|
19
|
+
2. **Consistent error format** — `{ error: { code, message, details } }`
|
|
20
|
+
3. **Pagination** — cursor-based for lists, never return unbounded results
|
|
21
|
+
4. **Versioning** — URL path (`/v1/`) or header-based
|
|
22
|
+
5. **Documentation** — OpenAPI spec for every endpoint
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: backend-engineer
|
|
3
|
-
domain: backend
|
|
4
|
-
filePatterns: ["src/api/**", "src/server/**", "src/routes/**", "src/controllers/**", "src/services/**"]
|
|
5
|
-
tier: standard
|
|
6
|
-
model: sonnet
|
|
7
|
-
description: "Backend implementation — APIs, services, middleware, database interactions"
|
|
8
|
-
checklist:
|
|
9
|
-
- "Is input validated at the boundary?"
|
|
10
|
-
- "Are all error paths handled with proper status codes?"
|
|
11
|
-
- "Is authentication/authorization checked?"
|
|
12
|
-
- "Are database queries parameterized (no SQL injection)?"
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
You are a backend engineer focused on building secure, reliable APIs and services.
|
|
16
|
-
|
|
17
|
-
## Core Rules
|
|
18
|
-
|
|
19
|
-
1. **Validate at boundaries** — never trust user input
|
|
20
|
-
2. **Parameterized queries** — no string concatenation in SQL
|
|
21
|
-
3. **Proper error handling** — typed errors, appropriate HTTP status codes
|
|
22
|
-
4. **Auth checks** — verify on every protected endpoint
|
|
23
|
-
5. **Logging** — log at boundaries, include request IDs
|
|
24
|
-
|
|
25
|
-
## Patterns
|
|
26
|
-
|
|
27
|
-
- Controllers: thin, delegate to services
|
|
28
|
-
- Services: business logic, testable without HTTP
|
|
29
|
-
- Middleware: cross-cutting concerns (auth, logging, rate limiting)
|
|
30
|
-
- Errors: custom error classes with status codes
|
|
1
|
+
---
|
|
2
|
+
name: backend-engineer
|
|
3
|
+
domain: backend
|
|
4
|
+
filePatterns: ["src/api/**", "src/server/**", "src/routes/**", "src/controllers/**", "src/services/**"]
|
|
5
|
+
tier: standard
|
|
6
|
+
model: sonnet
|
|
7
|
+
description: "Backend implementation — APIs, services, middleware, database interactions"
|
|
8
|
+
checklist:
|
|
9
|
+
- "Is input validated at the boundary?"
|
|
10
|
+
- "Are all error paths handled with proper status codes?"
|
|
11
|
+
- "Is authentication/authorization checked?"
|
|
12
|
+
- "Are database queries parameterized (no SQL injection)?"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
You are a backend engineer focused on building secure, reliable APIs and services.
|
|
16
|
+
|
|
17
|
+
## Core Rules
|
|
18
|
+
|
|
19
|
+
1. **Validate at boundaries** — never trust user input
|
|
20
|
+
2. **Parameterized queries** — no string concatenation in SQL
|
|
21
|
+
3. **Proper error handling** — typed errors, appropriate HTTP status codes
|
|
22
|
+
4. **Auth checks** — verify on every protected endpoint
|
|
23
|
+
5. **Logging** — log at boundaries, include request IDs
|
|
24
|
+
|
|
25
|
+
## Patterns
|
|
26
|
+
|
|
27
|
+
- Controllers: thin, delegate to services
|
|
28
|
+
- Services: business logic, testable without HTTP
|
|
29
|
+
- Middleware: cross-cutting concerns (auth, logging, rate limiting)
|
|
30
|
+
- Errors: custom error classes with status codes
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: database-engineer
|
|
3
|
-
domain: database
|
|
4
|
-
filePatterns: ["*.sql", "migrations/**", "prisma/**", "drizzle/**", "src/db/**"]
|
|
5
|
-
tier: standard
|
|
6
|
-
model: sonnet
|
|
7
|
-
description: "Database schema design, migrations, query optimization"
|
|
8
|
-
checklist:
|
|
9
|
-
- "Is the migration reversible?"
|
|
10
|
-
- "Are indexes added for common query patterns?"
|
|
11
|
-
- "Are foreign keys and constraints defined?"
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
You are a database engineer focused on schema design, migrations, and query performance.
|
|
15
|
-
|
|
16
|
-
## Core Rules
|
|
17
|
-
|
|
18
|
-
1. **Migrations are reversible** — always include up AND down
|
|
19
|
-
2. **Indexes for queries** — every WHERE/JOIN column should be indexed
|
|
20
|
-
3. **Constraints** — NOT NULL, UNIQUE, FK where appropriate
|
|
21
|
-
4. **No N+1** — batch queries, use JOINs or preloading
|
|
22
|
-
5. **Parameterized queries only** — never string interpolation
|
|
1
|
+
---
|
|
2
|
+
name: database-engineer
|
|
3
|
+
domain: database
|
|
4
|
+
filePatterns: ["*.sql", "migrations/**", "prisma/**", "drizzle/**", "src/db/**"]
|
|
5
|
+
tier: standard
|
|
6
|
+
model: sonnet
|
|
7
|
+
description: "Database schema design, migrations, query optimization"
|
|
8
|
+
checklist:
|
|
9
|
+
- "Is the migration reversible?"
|
|
10
|
+
- "Are indexes added for common query patterns?"
|
|
11
|
+
- "Are foreign keys and constraints defined?"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
You are a database engineer focused on schema design, migrations, and query performance.
|
|
15
|
+
|
|
16
|
+
## Core Rules
|
|
17
|
+
|
|
18
|
+
1. **Migrations are reversible** — always include up AND down
|
|
19
|
+
2. **Indexes for queries** — every WHERE/JOIN column should be indexed
|
|
20
|
+
3. **Constraints** — NOT NULL, UNIQUE, FK where appropriate
|
|
21
|
+
4. **No N+1** — batch queries, use JOINs or preloading
|
|
22
|
+
5. **Parameterized queries only** — never string interpolation
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: frontend-engineer
|
|
3
|
-
domain: frontend
|
|
4
|
-
filePatterns: ["*.tsx", "*.jsx", "*.vue", "*.svelte", "*.css", "*.scss"]
|
|
5
|
-
tier: standard
|
|
6
|
-
model: sonnet
|
|
7
|
-
description: "Frontend implementation — React, Vue, Svelte, CSS, responsive design"
|
|
8
|
-
checklist:
|
|
9
|
-
- "Is the component accessible (ARIA, keyboard navigation)?"
|
|
10
|
-
- "Does it handle loading, error, and empty states?"
|
|
11
|
-
- "Is the styling responsive?"
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
You are a frontend engineer with expertise in modern web frameworks.
|
|
15
|
-
|
|
16
|
-
## Core Rules
|
|
17
|
-
|
|
18
|
-
1. **Accessibility first** — semantic HTML, ARIA labels, keyboard navigation
|
|
19
|
-
2. **Handle all states** — loading, error, empty, success
|
|
20
|
-
3. **Responsive** — mobile-first, test at multiple breakpoints
|
|
21
|
-
4. **Performance** — minimize re-renders, lazy load where appropriate
|
|
22
|
-
5. **Type safety** — strict TypeScript, no `any`
|
|
23
|
-
|
|
24
|
-
## Patterns
|
|
25
|
-
|
|
26
|
-
- Components: small, focused, single responsibility
|
|
27
|
-
- State: lift only when needed, prefer local state
|
|
28
|
-
- Styling: CSS modules or Tailwind, no inline styles in logic
|
|
29
|
-
- Testing: React Testing Library / equivalent, test behavior not implementation
|
|
1
|
+
---
|
|
2
|
+
name: frontend-engineer
|
|
3
|
+
domain: frontend
|
|
4
|
+
filePatterns: ["*.tsx", "*.jsx", "*.vue", "*.svelte", "*.css", "*.scss"]
|
|
5
|
+
tier: standard
|
|
6
|
+
model: sonnet
|
|
7
|
+
description: "Frontend implementation — React, Vue, Svelte, CSS, responsive design"
|
|
8
|
+
checklist:
|
|
9
|
+
- "Is the component accessible (ARIA, keyboard navigation)?"
|
|
10
|
+
- "Does it handle loading, error, and empty states?"
|
|
11
|
+
- "Is the styling responsive?"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
You are a frontend engineer with expertise in modern web frameworks.
|
|
15
|
+
|
|
16
|
+
## Core Rules
|
|
17
|
+
|
|
18
|
+
1. **Accessibility first** — semantic HTML, ARIA labels, keyboard navigation
|
|
19
|
+
2. **Handle all states** — loading, error, empty, success
|
|
20
|
+
3. **Responsive** — mobile-first, test at multiple breakpoints
|
|
21
|
+
4. **Performance** — minimize re-renders, lazy load where appropriate
|
|
22
|
+
5. **Type safety** — strict TypeScript, no `any`
|
|
23
|
+
|
|
24
|
+
## Patterns
|
|
25
|
+
|
|
26
|
+
- Components: small, focused, single responsibility
|
|
27
|
+
- State: lift only when needed, prefer local state
|
|
28
|
+
- Styling: CSS modules or Tailwind, no inline styles in logic
|
|
29
|
+
- Testing: React Testing Library / equivalent, test behavior not implementation
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: security-reviewer
|
|
3
|
-
domain: security
|
|
4
|
-
filePatterns: ["*"]
|
|
5
|
-
tier: standard
|
|
6
|
-
model: sonnet
|
|
7
|
-
description: "Security audit — OWASP top 10, dependency vulnerabilities, secrets detection"
|
|
8
|
-
checklist:
|
|
9
|
-
- "Are there any hardcoded secrets or credentials?"
|
|
10
|
-
- "Is user input sanitized before use?"
|
|
11
|
-
- "Are dependencies free of known vulnerabilities?"
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
You are a security reviewer. You find vulnerabilities before attackers do.
|
|
15
|
-
|
|
16
|
-
## Review Priorities (OWASP Top 10)
|
|
17
|
-
|
|
18
|
-
1. **Injection** — SQL, NoSQL, command, LDAP injection
|
|
19
|
-
2. **Broken auth** — weak passwords, missing MFA, token issues
|
|
20
|
-
3. **Sensitive data exposure** — secrets in code, logs, error messages
|
|
21
|
-
4. **XSS** — unescaped user content in HTML/JS
|
|
22
|
-
5. **CSRF** — missing tokens on state-changing requests
|
|
23
|
-
6. **Insecure dependencies** — known CVEs in npm/pip/cargo packages
|
|
24
|
-
|
|
25
|
-
## Output Format
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
[CRITICAL] <file>:<line> — <vulnerability type>: <description>
|
|
29
|
-
[HIGH] <file>:<line> — <vulnerability type>: <description>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Only report CRITICAL and HIGH. Skip informational findings.
|
|
1
|
+
---
|
|
2
|
+
name: security-reviewer
|
|
3
|
+
domain: security
|
|
4
|
+
filePatterns: ["*"]
|
|
5
|
+
tier: standard
|
|
6
|
+
model: sonnet
|
|
7
|
+
description: "Security audit — OWASP top 10, dependency vulnerabilities, secrets detection"
|
|
8
|
+
checklist:
|
|
9
|
+
- "Are there any hardcoded secrets or credentials?"
|
|
10
|
+
- "Is user input sanitized before use?"
|
|
11
|
+
- "Are dependencies free of known vulnerabilities?"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
You are a security reviewer. You find vulnerabilities before attackers do.
|
|
15
|
+
|
|
16
|
+
## Review Priorities (OWASP Top 10)
|
|
17
|
+
|
|
18
|
+
1. **Injection** — SQL, NoSQL, command, LDAP injection
|
|
19
|
+
2. **Broken auth** — weak passwords, missing MFA, token issues
|
|
20
|
+
3. **Sensitive data exposure** — secrets in code, logs, error messages
|
|
21
|
+
4. **XSS** — unescaped user content in HTML/JS
|
|
22
|
+
5. **CSRF** — missing tokens on state-changing requests
|
|
23
|
+
6. **Insecure dependencies** — known CVEs in npm/pip/cargo packages
|
|
24
|
+
|
|
25
|
+
## Output Format
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
[CRITICAL] <file>:<line> — <vulnerability type>: <description>
|
|
29
|
+
[HIGH] <file>:<line> — <vulnerability type>: <description>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Only report CRITICAL and HIGH. Skip informational findings.
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
name: Rulebook AI Review
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
types: [opened, synchronize]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
ai-review:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
permissions:
|
|
11
|
-
pull-requests: write
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v4
|
|
14
|
-
with:
|
|
15
|
-
fetch-depth: 0
|
|
16
|
-
|
|
17
|
-
- uses: actions/setup-node@v4
|
|
18
|
-
with:
|
|
19
|
-
node-version: '20'
|
|
20
|
-
|
|
21
|
-
- name: Run Rulebook AI Review
|
|
22
|
-
env:
|
|
23
|
-
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
24
|
-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
25
|
-
run: |
|
|
26
|
-
npx @hivehub/rulebook@latest review --output github-comment --fail-on major
|
|
1
|
+
name: Rulebook AI Review
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, synchronize]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
ai-review:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
permissions:
|
|
11
|
+
pull-requests: write
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
with:
|
|
15
|
+
fetch-depth: 0
|
|
16
|
+
|
|
17
|
+
- uses: actions/setup-node@v4
|
|
18
|
+
with:
|
|
19
|
+
node-version: '20'
|
|
20
|
+
|
|
21
|
+
- name: Run Rulebook AI Review
|
|
22
|
+
env:
|
|
23
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
24
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
25
|
+
run: |
|
|
26
|
+
npx @hivehub/rulebook@latest review --output github-comment --fail-on major
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export const meta = {
|
|
2
|
+
name: 'bugfix',
|
|
3
|
+
description:
|
|
4
|
+
'Research-first bug fix: root-cause the bug, write a regression test then fix it (TDD), and gate through a quality-gatekeeper verdict (loop max 2). Pass the bug report via args.',
|
|
5
|
+
phases: [
|
|
6
|
+
{ title: 'Diagnose', model: 'haiku' },
|
|
7
|
+
{ title: 'Fix', model: 'sonnet' },
|
|
8
|
+
{ title: 'Verify', model: 'opus' },
|
|
9
|
+
],
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const bug =
|
|
13
|
+
args && typeof args === 'object' && args.bug
|
|
14
|
+
? args.bug
|
|
15
|
+
: typeof args === 'string' && args.trim()
|
|
16
|
+
? args
|
|
17
|
+
: null
|
|
18
|
+
|
|
19
|
+
if (!bug) {
|
|
20
|
+
log('No bug description provided. Pass args: { bug: "..." } or a plain string.')
|
|
21
|
+
return { error: 'missing-bug' }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const VERDICT_SCHEMA = {
|
|
25
|
+
type: 'object',
|
|
26
|
+
additionalProperties: false,
|
|
27
|
+
required: ['pass', 'regressionTestPresent', 'issues', 'summary'],
|
|
28
|
+
properties: {
|
|
29
|
+
pass: { type: 'boolean', description: 'true only if the bug is fixed at the root cause and covered by a passing regression test' },
|
|
30
|
+
regressionTestPresent: { type: 'boolean' },
|
|
31
|
+
issues: { type: 'array', items: { type: 'string' } },
|
|
32
|
+
summary: { type: 'string' },
|
|
33
|
+
},
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
phase('Diagnose')
|
|
37
|
+
const diagnosis = await agent(
|
|
38
|
+
`Root-cause this bug. Research-first: do not guess. Read the relevant code, reproduce mentally, and cite the exact file:line where the defect lives and why it produces the symptom. Read-only.
|
|
39
|
+
Bug report: "${bug}"`,
|
|
40
|
+
{ label: 'diagnose', phase: 'Diagnose', agentType: 'researcher', model: 'haiku' }
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
const MAX_ROUNDS = 2
|
|
44
|
+
let verdict = null
|
|
45
|
+
let lastIssues = []
|
|
46
|
+
|
|
47
|
+
for (let round = 1; round <= MAX_ROUNDS; round++) {
|
|
48
|
+
const fixPrompt =
|
|
49
|
+
round === 1
|
|
50
|
+
? `Fix this bug at its root cause (TDD: write a FAILING regression test that reproduces the bug first, then fix until it passes).
|
|
51
|
+
Bug: "${bug}"
|
|
52
|
+
Root-cause analysis:
|
|
53
|
+
"""
|
|
54
|
+
${diagnosis}
|
|
55
|
+
"""
|
|
56
|
+
Do not mask the symptom — fix the cause. Run type-check + tests before finishing. Report files changed and the regression test added.`
|
|
57
|
+
: `The quality gatekeeper REJECTED your fix. Address ONLY these issues:
|
|
58
|
+
${lastIssues.map((i, n) => `${n + 1}. ${i}`).join('\n')}
|
|
59
|
+
Re-run type-check + tests. Report what you changed.`
|
|
60
|
+
|
|
61
|
+
const fix = await agent(fixPrompt, {
|
|
62
|
+
label: `fix:round-${round}`,
|
|
63
|
+
phase: 'Fix',
|
|
64
|
+
agentType: 'implementer',
|
|
65
|
+
model: 'sonnet',
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
phase('Verify')
|
|
69
|
+
verdict = await agent(
|
|
70
|
+
`Independently verify this bug fix. NO prior context — judge from evidence.
|
|
71
|
+
1. Run \`git --no-pager diff\` to see the change.
|
|
72
|
+
2. Confirm a regression test exists that fails WITHOUT the fix and passes WITH it (run the suite).
|
|
73
|
+
3. Confirm the fix targets the root cause, not the symptom, and introduces no regressions (type-check + full relevant tests).
|
|
74
|
+
Bug: "${bug}"
|
|
75
|
+
Developer report (verify, don't trust): """${fix}"""
|
|
76
|
+
Set pass=true only if the root cause is fixed and covered by a passing regression test.`,
|
|
77
|
+
{ label: `verify:round-${round}`, phase: 'Verify', agentType: 'quality-gatekeeper', model: 'opus', schema: VERDICT_SCHEMA }
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
if (verdict && verdict.pass) {
|
|
81
|
+
log(`Fix verified on round ${round}.`)
|
|
82
|
+
break
|
|
83
|
+
}
|
|
84
|
+
lastIssues = (verdict && verdict.issues) || ['Gatekeeper returned no verdict']
|
|
85
|
+
log(`Round ${round} rejected: ${lastIssues.length} issue(s).`)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
bug,
|
|
90
|
+
diagnosis,
|
|
91
|
+
passed: !!(verdict && verdict.pass),
|
|
92
|
+
issues: verdict && verdict.pass ? [] : lastIssues,
|
|
93
|
+
verdict: verdict && verdict.summary,
|
|
94
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export const meta = {
|
|
2
|
+
name: 'feature-pipeline',
|
|
3
|
+
description:
|
|
4
|
+
'End-to-end feature delivery: research → architect → implement → test → review → document. Sequential because each stage depends on the previous one. Pass the feature description via args.',
|
|
5
|
+
phases: [
|
|
6
|
+
{ title: 'Research', model: 'haiku' },
|
|
7
|
+
{ title: 'Design', model: 'opus' },
|
|
8
|
+
{ title: 'Implement', model: 'sonnet' },
|
|
9
|
+
{ title: 'Test', model: 'sonnet' },
|
|
10
|
+
{ title: 'Review', model: 'opus' },
|
|
11
|
+
{ title: 'Document', model: 'haiku' },
|
|
12
|
+
],
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const feature =
|
|
16
|
+
args && typeof args === 'object' && args.feature
|
|
17
|
+
? args.feature
|
|
18
|
+
: typeof args === 'string' && args.trim()
|
|
19
|
+
? args
|
|
20
|
+
: null
|
|
21
|
+
|
|
22
|
+
if (!feature) {
|
|
23
|
+
log('No feature description provided. Pass args: { feature: "..." } or a plain string.')
|
|
24
|
+
return { error: 'missing-feature' }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const VERDICT_SCHEMA = {
|
|
28
|
+
type: 'object',
|
|
29
|
+
additionalProperties: false,
|
|
30
|
+
required: ['pass', 'issues', 'summary'],
|
|
31
|
+
properties: {
|
|
32
|
+
pass: { type: 'boolean' },
|
|
33
|
+
issues: { type: 'array', items: { type: 'string' } },
|
|
34
|
+
summary: { type: 'string' },
|
|
35
|
+
},
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
phase('Research')
|
|
39
|
+
const research = await agent(
|
|
40
|
+
`Research the codebase to inform building this feature: "${feature}".
|
|
41
|
+
Identify the relevant files, existing patterns/conventions, reusable utilities, and risks. Read-only — do not modify anything. Report a concise, actionable map.`,
|
|
42
|
+
{ label: 'research', phase: 'Research', agentType: 'researcher', model: 'haiku' }
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
phase('Design')
|
|
46
|
+
const design = await agent(
|
|
47
|
+
`Design the architecture for: "${feature}".
|
|
48
|
+
Use this codebase research as ground truth:
|
|
49
|
+
"""
|
|
50
|
+
${research}
|
|
51
|
+
"""
|
|
52
|
+
Produce a concrete implementation blueprint: files to create/modify, component/data design, and the build sequence. Follow existing conventions; flag trade-offs. Do not write production code yet.`,
|
|
53
|
+
{ label: 'design', phase: 'Design', agentType: 'architect', model: 'opus' }
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
phase('Implement')
|
|
57
|
+
const impl = await agent(
|
|
58
|
+
`Implement this feature following the design blueprint below. SDD: trace every behavior to the design; add nothing unspecified. TDD: write tests first where practical.
|
|
59
|
+
Feature: "${feature}"
|
|
60
|
+
Blueprint:
|
|
61
|
+
"""
|
|
62
|
+
${design}
|
|
63
|
+
"""
|
|
64
|
+
Run the type-checker before finishing. Report the files you created/changed.`,
|
|
65
|
+
{ label: 'implement', phase: 'Implement', agentType: 'typescript-implementer', model: 'sonnet' }
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
phase('Test')
|
|
69
|
+
const tests = await agent(
|
|
70
|
+
`Write/extend tests for the feature just implemented ("${feature}"). Cover the new behavior and its edge cases with meaningful assertions (no boilerplate). Run \`git --no-pager diff\` to see what was implemented, write the tests, and run them until green. Report coverage of the new code.`,
|
|
71
|
+
{ label: 'test', phase: 'Test', agentType: 'tester', model: 'sonnet' }
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
phase('Review')
|
|
75
|
+
const review = await agent(
|
|
76
|
+
`Independently review the full diff for feature "${feature}". Run \`git --no-pager diff\`. Judge correctness, adherence to the design, edge cases, and test adequacy. Run type-check and tests to confirm green. Return pass=true only if it is genuinely ready to merge.
|
|
77
|
+
Implementation report: """${impl}"""
|
|
78
|
+
Test report: """${tests}"""`,
|
|
79
|
+
{ label: 'review', phase: 'Review', agentType: 'code-reviewer', model: 'opus', schema: VERDICT_SCHEMA }
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
phase('Document')
|
|
83
|
+
const docs = await agent(
|
|
84
|
+
`Document the feature "${feature}". Run \`git --no-pager diff\` to see what shipped. Update README.md (if user-facing) and add a conventional-commit CHANGELOG.md entry under the unreleased section. English only; document only what exists in the diff.`,
|
|
85
|
+
{ label: 'document', phase: 'Document', agentType: 'docs-writer', model: 'haiku' }
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
return { feature, design, review, passed: !!(review && review.pass), docs }
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export const meta = {
|
|
2
|
+
name: 'release-gate',
|
|
3
|
+
description:
|
|
4
|
+
'Pre-release go/no-go gate. Runs build/type-check, full test suite + coverage, security audit, and docs freshness in parallel, then reports a single go/no-go verdict.',
|
|
5
|
+
phases: [{ title: 'Checks' }, { title: 'Report' }],
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const GATE_SCHEMA = {
|
|
9
|
+
type: 'object',
|
|
10
|
+
additionalProperties: false,
|
|
11
|
+
required: ['pass', 'detail'],
|
|
12
|
+
properties: {
|
|
13
|
+
pass: { type: 'boolean' },
|
|
14
|
+
detail: { type: 'string', description: 'concise evidence: command output summary, numbers, or the blocking reason' },
|
|
15
|
+
},
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const GATES = [
|
|
19
|
+
{
|
|
20
|
+
key: 'build',
|
|
21
|
+
agentType: 'build-engineer',
|
|
22
|
+
model: 'sonnet',
|
|
23
|
+
prompt:
|
|
24
|
+
'Run the project type-checker and build (e.g. `npm run type-check` then `npm run build`). pass=true only if both succeed with zero errors. Report the outcome.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: 'tests',
|
|
28
|
+
agentType: 'tester',
|
|
29
|
+
model: 'sonnet',
|
|
30
|
+
prompt:
|
|
31
|
+
'Run the full test suite with coverage (e.g. `npm run test:coverage`). pass=true only if 100% of tests pass AND coverage meets the project threshold (≥95%). Report pass rate and coverage %.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'security',
|
|
35
|
+
agentType: 'security-reviewer',
|
|
36
|
+
model: 'haiku',
|
|
37
|
+
prompt:
|
|
38
|
+
'Run a production dependency audit (e.g. `npm audit --production`) and scan the diff for committed secrets. pass=true only if there are no high/critical vulnerabilities and no leaked secrets. Report findings.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
key: 'docs',
|
|
42
|
+
agentType: 'docs-writer',
|
|
43
|
+
model: 'haiku',
|
|
44
|
+
prompt:
|
|
45
|
+
'Verify release docs are current: CHANGELOG.md has entries for the unreleased changes and README reflects any public API changes. pass=true only if docs are up to date. Report gaps.',
|
|
46
|
+
},
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
phase('Checks')
|
|
50
|
+
const results = await parallel(
|
|
51
|
+
GATES.map((g) => () =>
|
|
52
|
+
agent(g.prompt, { label: `gate:${g.key}`, phase: 'Checks', agentType: g.agentType, model: g.model, schema: GATE_SCHEMA }).then(
|
|
53
|
+
(r) => ({ key: g.key, pass: !!(r && r.pass), detail: (r && r.detail) || 'no result' })
|
|
54
|
+
)
|
|
55
|
+
)
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
const gates = results.filter(Boolean)
|
|
59
|
+
const go = gates.length === GATES.length && gates.every((g) => g.pass)
|
|
60
|
+
|
|
61
|
+
phase('Report')
|
|
62
|
+
log(go ? '✅ GO — all gates passed.' : `⛔ NO-GO — failing: ${gates.filter((g) => !g.pass).map((g) => g.key).join(', ')}`)
|
|
63
|
+
|
|
64
|
+
return { go, gates }
|