@hivehub/rulebook 5.5.2 → 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-learn-capture.md +41 -48
- package/.claude/commands/rulebook-learn-list.md +13 -13
- 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 +418 -394
- 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/context-intelligence.d.ts +0 -1
- package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
- package/dist/cli/commands/context-intelligence.js +12 -33
- package/dist/cli/commands/context-intelligence.js.map +1 -1
- package/dist/cli/commands/index.d.ts +4 -7
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +4 -7
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +58 -83
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +0 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +1 -7
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/memory.d.ts +7 -1
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +51 -57
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/misc.d.ts +1 -15
- package/dist/cli/commands/misc.d.ts.map +1 -1
- package/dist/cli/commands/misc.js +36 -215
- package/dist/cli/commands/misc.js.map +1 -1
- package/dist/cli/commands/plans.d.ts +0 -6
- package/dist/cli/commands/plans.d.ts.map +1 -1
- package/dist/cli/commands/plans.js +9 -77
- package/dist/cli/commands/plans.js.map +1 -1
- package/dist/cli/commands/skills.js +6 -6
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/task.js +4 -4
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +128 -53
- 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 +107 -78
- package/dist/cli/prompts.js.map +1 -1
- package/dist/core/{claude-mcp.d.ts → claude/claude-mcp.d.ts} +9 -0
- package/dist/core/claude/claude-mcp.d.ts.map +1 -0
- package/dist/core/{claude-mcp.js → claude/claude-mcp.js} +33 -3
- package/dist/core/claude/claude-mcp.js.map +1 -0
- package/dist/core/claude/claude-md-generator.d.ts.map +1 -0
- package/dist/core/{claude-md-generator.js → claude/claude-md-generator.js} +2 -2
- package/dist/core/claude/claude-md-generator.js.map +1 -0
- package/dist/core/{claude-settings-manager.d.ts → claude/claude-settings-manager.d.ts} +12 -0
- package/dist/core/claude/claude-settings-manager.d.ts.map +1 -0
- package/dist/core/{claude-settings-manager.js → claude/claude-settings-manager.js} +81 -22
- package/dist/core/claude/claude-settings-manager.js.map +1 -0
- package/dist/core/{cli-bridge.d.ts → console/cli-bridge.d.ts} +2 -2
- package/dist/core/console/cli-bridge.d.ts.map +1 -0
- package/dist/core/{cli-bridge.js → console/cli-bridge.js} +3 -3
- package/dist/core/console/cli-bridge.js.map +1 -0
- package/dist/core/{detector.d.ts → detect/detector.d.ts} +16 -1
- package/dist/core/detect/detector.d.ts.map +1 -0
- package/dist/core/detect/detector.js +766 -0
- package/dist/core/detect/detector.js.map +1 -0
- 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/docs/docs-generator.d.ts.map +1 -0
- package/dist/core/{docs-generator.js → docs/docs-generator.js} +1 -1
- package/dist/core/docs/docs-generator.js.map +1 -0
- package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -0
- package/dist/core/{mcp-reference-generator.js → docs/mcp-reference-generator.js} +2 -2
- package/dist/core/docs/mcp-reference-generator.js.map +1 -0
- package/dist/core/{generator.d.ts → generators/generator.d.ts} +3 -4
- package/dist/core/generators/generator.d.ts.map +1 -0
- package/dist/core/{generator.js → generators/generator.js} +42 -157
- package/dist/core/generators/generator.js.map +1 -0
- package/dist/core/{gitignore-generator.d.ts → generators/gitignore-generator.d.ts} +1 -1
- package/dist/core/generators/gitignore-generator.d.ts.map +1 -0
- package/dist/core/{gitignore-generator.js → generators/gitignore-generator.js} +1 -1
- package/dist/core/generators/gitignore-generator.js.map +1 -0
- package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -0
- package/dist/core/{minimal-scaffolder.js → generators/minimal-scaffolder.js} +2 -2
- package/dist/core/generators/minimal-scaffolder.js.map +1 -0
- package/dist/core/{rules-generator.d.ts → generators/rules-generator.d.ts} +2 -6
- package/dist/core/generators/rules-generator.d.ts.map +1 -0
- package/dist/core/{rules-generator.js → generators/rules-generator.js} +41 -2
- package/dist/core/generators/rules-generator.js.map +1 -0
- package/dist/core/{workflow-generator.d.ts → generators/workflow-generator.d.ts} +1 -1
- package/dist/core/generators/workflow-generator.d.ts.map +1 -0
- package/dist/core/{workflow-generator.js → generators/workflow-generator.js} +2 -3
- package/dist/core/generators/workflow-generator.js.map +1 -0
- package/dist/core/{multi-tool-generator.d.ts → ide/multi-tool-generator.d.ts} +1 -1
- package/dist/core/ide/multi-tool-generator.d.ts.map +1 -0
- package/dist/core/{multi-tool-generator.js → ide/multi-tool-generator.js} +1 -1
- package/dist/core/ide/multi-tool-generator.js.map +1 -0
- package/dist/core/ide/opencode-generator.d.ts +72 -0
- package/dist/core/ide/opencode-generator.d.ts.map +1 -0
- package/dist/core/ide/opencode-generator.js +450 -0
- package/dist/core/ide/opencode-generator.js.map +1 -0
- package/dist/core/merger.d.ts +1 -1
- package/dist/core/merger.d.ts.map +1 -1
- package/dist/core/merger.js +5 -5
- package/dist/core/merger.js.map +1 -1
- package/dist/core/migrator.d.ts +0 -1
- package/dist/core/migrator.d.ts.map +1 -1
- package/dist/core/migrator.js +4 -29
- package/dist/core/migrator.js.map +1 -1
- package/dist/core/quality/coverage-checker.d.ts.map +1 -0
- package/dist/core/{coverage-checker.js → quality/coverage-checker.js} +2 -2
- package/dist/core/quality/coverage-checker.js.map +1 -0
- package/dist/core/quality/dependency-checker.d.ts.map +1 -0
- package/dist/core/{dependency-checker.js → quality/dependency-checker.js} +1 -1
- package/dist/core/quality/dependency-checker.js.map +1 -0
- package/dist/core/quality/doctor.d.ts.map +1 -0
- package/dist/core/{doctor.js → quality/doctor.js} +1 -67
- package/dist/core/quality/doctor.js.map +1 -0
- package/dist/core/quality/validator.d.ts.map +1 -0
- package/dist/core/{validator.js → quality/validator.js} +1 -1
- package/dist/core/quality/validator.js.map +1 -0
- package/dist/core/{skills-manager.d.ts → skills/skills-manager.d.ts} +1 -1
- package/dist/core/skills/skills-manager.d.ts.map +1 -0
- package/dist/core/{skills-manager.js → skills/skills-manager.js} +1 -25
- package/dist/core/skills/skills-manager.js.map +1 -0
- package/dist/core/{config-manager.d.ts → state/config-manager.d.ts} +1 -1
- package/dist/core/state/config-manager.d.ts.map +1 -0
- package/dist/core/{config-manager.js → state/config-manager.js} +2 -61
- package/dist/core/state/config-manager.js.map +1 -0
- package/dist/core/state/override-manager.d.ts.map +1 -0
- package/dist/core/{override-manager.js → state/override-manager.js} +1 -1
- package/dist/core/state/override-manager.js.map +1 -0
- package/dist/core/{state-writer.d.ts → state/state-writer.d.ts} +2 -3
- package/dist/core/state/state-writer.d.ts.map +1 -0
- package/dist/core/{state-writer.js → state/state-writer.js} +6 -9
- package/dist/core/state/state-writer.js.map +1 -0
- package/dist/core/state/version-bumper.d.ts.map +1 -0
- package/dist/core/{version-bumper.js → state/version-bumper.js} +1 -1
- package/dist/core/state/version-bumper.js.map +1 -0
- package/dist/core/{decision-manager.d.ts → tasks/decision-manager.d.ts} +1 -1
- package/dist/core/tasks/decision-manager.d.ts.map +1 -0
- package/dist/core/{decision-manager.js → tasks/decision-manager.js} +1 -1
- package/dist/core/tasks/decision-manager.js.map +1 -0
- package/dist/core/{knowledge-manager.d.ts → tasks/knowledge-manager.d.ts} +1 -1
- package/dist/core/tasks/knowledge-manager.d.ts.map +1 -0
- package/dist/core/{knowledge-manager.js → tasks/knowledge-manager.js} +1 -1
- package/dist/core/tasks/knowledge-manager.js.map +1 -0
- package/dist/core/{learn-manager.d.ts → tasks/learn-manager.d.ts} +1 -3
- package/dist/core/tasks/learn-manager.d.ts.map +1 -0
- package/dist/core/{learn-manager.js → tasks/learn-manager.js} +1 -39
- package/dist/core/tasks/learn-manager.js.map +1 -0
- package/dist/core/tasks/plans-manager.d.ts.map +1 -0
- package/dist/core/{plans-manager.js → tasks/plans-manager.js} +1 -1
- package/dist/core/tasks/plans-manager.js.map +1 -0
- package/dist/core/tasks/task-manager.d.ts.map +1 -0
- package/dist/core/{task-manager.js → tasks/task-manager.js} +2 -2
- package/dist/core/tasks/task-manager.js.map +1 -0
- package/dist/core/workspace/project-worker.d.ts +6 -6
- package/dist/core/workspace/project-worker.d.ts.map +1 -1
- package/dist/core/workspace/project-worker.js +6 -6
- package/dist/core/workspace/project-worker.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -176
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +16 -960
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/file-search.d.ts +43 -0
- package/dist/memory/file-search.d.ts.map +1 -0
- package/dist/memory/file-search.js +228 -0
- package/dist/memory/file-search.js.map +1 -0
- package/dist/memory/file-store.d.ts +99 -0
- package/dist/memory/file-store.d.ts.map +1 -0
- package/dist/memory/file-store.js +615 -0
- package/dist/memory/file-store.js.map +1 -0
- package/dist/memory/legacy-migrator.d.ts +27 -0
- package/dist/memory/legacy-migrator.d.ts.map +1 -0
- package/dist/memory/legacy-migrator.js +185 -0
- package/dist/memory/legacy-migrator.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +25 -24
- package/dist/memory/memory-manager.d.ts.map +1 -1
- package/dist/memory/memory-manager.js +97 -140
- package/dist/memory/memory-manager.js.map +1 -1
- package/dist/memory/memory-types.d.ts +1 -1
- package/dist/memory/memory-types.d.ts.map +1 -1
- package/dist/types.d.ts +20 -118
- package/dist/types.d.ts.map +1 -1
- package/package.json +23 -27
- 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/context-intelligence.md +50 -52
- 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/OPENCODE.md +85 -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-learn-capture.md +41 -48
- package/templates/commands/rulebook-learn-list.md +13 -13
- 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_LEAN.md +0 -14
- 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 +24 -16
- package/templates/hooks/enforce-pre-tool.sh +70 -0
- package/templates/hooks/terse-mode-tracker.sh +146 -143
- 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/OPENCODE.md +63 -0
- 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/cli/opencode/SKILL.md +82 -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/.claude/commands/ralph-config.md +0 -112
- package/.claude/commands/ralph-history.md +0 -110
- package/.claude/commands/ralph-init.md +0 -72
- package/.claude/commands/ralph-pause-resume.md +0 -105
- package/.claude/commands/ralph-run.md +0 -101
- package/.claude/commands/ralph-status.md +0 -76
- 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.map +0 -1
- package/dist/core/claude-mcp.js.map +0 -1
- package/dist/core/claude-md-generator.d.ts.map +0 -1
- package/dist/core/claude-md-generator.js.map +0 -1
- package/dist/core/claude-settings-manager.d.ts.map +0 -1
- package/dist/core/claude-settings-manager.js.map +0 -1
- package/dist/core/cli-bridge.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/core/config-manager.js.map +0 -1
- package/dist/core/coverage-checker.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/core/decision-manager.js.map +0 -1
- package/dist/core/dependency-checker.d.ts.map +0 -1
- package/dist/core/dependency-checker.js.map +0 -1
- 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.map +0 -1
- package/dist/core/docs-generator.js.map +0 -1
- package/dist/core/doctor.d.ts.map +0 -1
- package/dist/core/doctor.js.map +0 -1
- package/dist/core/generator.d.ts.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- package/dist/core/knowledge-manager.js.map +0 -1
- package/dist/core/learn-manager.d.ts.map +0 -1
- package/dist/core/learn-manager.js.map +0 -1
- package/dist/core/mcp-reference-generator.d.ts.map +0 -1
- package/dist/core/mcp-reference-generator.js.map +0 -1
- package/dist/core/minimal-scaffolder.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/core/multi-tool-generator.js.map +0 -1
- package/dist/core/override-manager.d.ts.map +0 -1
- package/dist/core/override-manager.js.map +0 -1
- package/dist/core/plans-manager.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/core/rules-generator.js.map +0 -1
- package/dist/core/skills-manager.d.ts.map +0 -1
- package/dist/core/skills-manager.js.map +0 -1
- package/dist/core/state-writer.d.ts.map +0 -1
- package/dist/core/state-writer.js.map +0 -1
- package/dist/core/task-manager.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/core/validator.js.map +0 -1
- package/dist/core/version-bumper.d.ts.map +0 -1
- 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.map +0 -1
- 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
- package/templates/core/RALPH.md +0 -471
- package/templates/frameworks/ANGULAR.md +0 -36
- package/templates/frameworks/DJANGO.md +0 -83
- package/templates/frameworks/ELECTRON.md +0 -147
- package/templates/frameworks/FLASK.md +0 -38
- package/templates/frameworks/FLUTTER.md +0 -55
- package/templates/frameworks/JQUERY.md +0 -32
- package/templates/frameworks/LARAVEL.md +0 -38
- package/templates/frameworks/NESTJS.md +0 -43
- package/templates/frameworks/NEXTJS.md +0 -127
- package/templates/frameworks/NUXT.md +0 -40
- package/templates/frameworks/RAILS.md +0 -66
- package/templates/frameworks/REACT.md +0 -38
- package/templates/frameworks/REACT_NATIVE.md +0 -47
- package/templates/frameworks/SPRING.md +0 -39
- package/templates/frameworks/SYMFONY.md +0 -36
- package/templates/frameworks/VUE.md +0 -36
- package/templates/frameworks/ZEND.md +0 -35
- package/templates/hooks/enforce-mcp-for-tasks.sh +0 -31
- package/templates/hooks/enforce-no-deferred.sh +0 -21
- package/templates/hooks/enforce-no-shortcuts.sh +0 -31
- package/templates/ides/COPILOT.md +0 -37
- package/templates/ides/CURSOR.md +0 -43
- package/templates/ides/JETBRAINS_AI.md +0 -35
- package/templates/ides/REPLIT.md +0 -36
- package/templates/ides/TABNINE.md +0 -29
- package/templates/ides/VSCODE.md +0 -40
- package/templates/ides/WINDSURF.md +0 -36
- package/templates/ides/ZED.md +0 -32
- package/templates/ides/cursor-mdc/go.mdc +0 -24
- package/templates/ides/cursor-mdc/python.mdc +0 -24
- package/templates/ides/cursor-mdc/quality.mdc +0 -25
- package/templates/ides/cursor-mdc/ralph.mdc +0 -39
- package/templates/ides/cursor-mdc/rulebook.mdc +0 -38
- package/templates/ides/cursor-mdc/rust.mdc +0 -24
- package/templates/ides/cursor-mdc/typescript.mdc +0 -25
- package/templates/ralph/ralph-history.bat +0 -4
- package/templates/ralph/ralph-history.sh +0 -5
- package/templates/ralph/ralph-init.bat +0 -5
- package/templates/ralph/ralph-init.sh +0 -5
- package/templates/ralph/ralph-pause.bat +0 -5
- package/templates/ralph/ralph-pause.sh +0 -5
- package/templates/ralph/ralph-run.bat +0 -5
- package/templates/ralph/ralph-run.sh +0 -5
- package/templates/ralph/ralph-status.bat +0 -4
- package/templates/ralph/ralph-status.sh +0 -5
- package/templates/services/AZURE_BLOB.md +0 -184
- package/templates/services/CASSANDRA.md +0 -239
- package/templates/services/DATADOG.md +0 -26
- package/templates/services/DOCKER.md +0 -124
- package/templates/services/DOCKER_COMPOSE.md +0 -168
- package/templates/services/DYNAMODB.md +0 -308
- package/templates/services/ELASTICSEARCH.md +0 -347
- package/templates/services/GCS.md +0 -178
- package/templates/services/HELM.md +0 -194
- package/templates/services/INFLUXDB.md +0 -265
- package/templates/services/KAFKA.md +0 -341
- package/templates/services/KUBERNETES.md +0 -208
- package/templates/services/MARIADB.md +0 -183
- package/templates/services/MEMCACHED.md +0 -242
- package/templates/services/MINIO.md +0 -201
- package/templates/services/MONGODB.md +0 -268
- package/templates/services/MYSQL.md +0 -358
- package/templates/services/NEO4J.md +0 -247
- package/templates/services/OPENTELEMETRY.md +0 -25
- package/templates/services/ORACLE.md +0 -290
- package/templates/services/PINO.md +0 -24
- package/templates/services/POSTGRESQL.md +0 -326
- package/templates/services/PROMETHEUS.md +0 -33
- package/templates/services/RABBITMQ.md +0 -286
- package/templates/services/REDIS.md +0 -292
- package/templates/services/S3.md +0 -298
- package/templates/services/SENTRY.md +0 -23
- package/templates/services/SQLITE.md +0 -294
- package/templates/services/SQLSERVER.md +0 -294
- package/templates/services/WINSTON.md +0 -30
- package/templates/skills/frameworks/angular/SKILL.md +0 -46
- package/templates/skills/frameworks/django/SKILL.md +0 -93
- package/templates/skills/frameworks/electron/SKILL.md +0 -157
- package/templates/skills/frameworks/flask/SKILL.md +0 -48
- package/templates/skills/frameworks/flutter/SKILL.md +0 -65
- package/templates/skills/frameworks/jquery/SKILL.md +0 -42
- package/templates/skills/frameworks/laravel/SKILL.md +0 -48
- package/templates/skills/frameworks/nestjs/SKILL.md +0 -53
- package/templates/skills/frameworks/nextjs/SKILL.md +0 -137
- package/templates/skills/frameworks/nuxt/SKILL.md +0 -50
- package/templates/skills/frameworks/rails/SKILL.md +0 -76
- package/templates/skills/frameworks/react/SKILL.md +0 -48
- package/templates/skills/frameworks/react-native/SKILL.md +0 -57
- package/templates/skills/frameworks/spring/SKILL.md +0 -49
- package/templates/skills/frameworks/symfony/SKILL.md +0 -46
- package/templates/skills/frameworks/vue/SKILL.md +0 -46
- package/templates/skills/frameworks/zend/SKILL.md +0 -45
- package/templates/skills/services/azure-blob/SKILL.md +0 -194
- package/templates/skills/services/cassandra/SKILL.md +0 -249
- package/templates/skills/services/dynamodb/SKILL.md +0 -318
- package/templates/skills/services/elasticsearch/SKILL.md +0 -357
- package/templates/skills/services/gcs/SKILL.md +0 -188
- package/templates/skills/services/influxdb/SKILL.md +0 -275
- package/templates/skills/services/kafka/SKILL.md +0 -351
- package/templates/skills/services/mariadb/SKILL.md +0 -193
- package/templates/skills/services/memcached/SKILL.md +0 -252
- package/templates/skills/services/minio/SKILL.md +0 -211
- package/templates/skills/services/mongodb/SKILL.md +0 -278
- package/templates/skills/services/mysql/SKILL.md +0 -368
- package/templates/skills/services/neo4j/SKILL.md +0 -257
- package/templates/skills/services/oracle/SKILL.md +0 -300
- package/templates/skills/services/postgresql/SKILL.md +0 -336
- package/templates/skills/services/rabbitmq/SKILL.md +0 -296
- package/templates/skills/services/redis/SKILL.md +0 -302
- package/templates/skills/services/s3/SKILL.md +0 -308
- package/templates/skills/services/sqlite/SKILL.md +0 -304
- package/templates/skills/services/sqlserver/SKILL.md +0 -304
- package/templates/skills/workflows/ralph/SETUP.md +0 -228
- package/templates/skills/workflows/ralph/SKILL.md +0 -309
- package/templates/skills/workflows/ralph/install.sh +0 -87
- package/templates/skills/workflows/ralph/manifest.json +0 -158
- /package/dist/core/{claude-md-generator.d.ts → claude/claude-md-generator.d.ts} +0 -0
- /package/dist/core/{docs-generator.d.ts → docs/docs-generator.d.ts} +0 -0
- /package/dist/core/{mcp-reference-generator.d.ts → docs/mcp-reference-generator.d.ts} +0 -0
- /package/dist/core/{minimal-scaffolder.d.ts → generators/minimal-scaffolder.d.ts} +0 -0
- /package/dist/core/{coverage-checker.d.ts → quality/coverage-checker.d.ts} +0 -0
- /package/dist/core/{dependency-checker.d.ts → quality/dependency-checker.d.ts} +0 -0
- /package/dist/core/{doctor.d.ts → quality/doctor.d.ts} +0 -0
- /package/dist/core/{validator.d.ts → quality/validator.d.ts} +0 -0
- /package/dist/core/{override-manager.d.ts → state/override-manager.d.ts} +0 -0
- /package/dist/core/{version-bumper.d.ts → state/version-bumper.d.ts} +0 -0
- /package/dist/core/{plans-manager.d.ts → tasks/plans-manager.d.ts} +0 -0
- /package/dist/core/{task-manager.d.ts → tasks/task-manager.d.ts} +0 -0
|
@@ -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 }
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
export const meta = {
|
|
2
|
+
name: 'review-fanout',
|
|
3
|
+
description:
|
|
4
|
+
'Adversarial multi-dimension review of the current git diff (correctness, security, performance, tests). Each finding is independently verified before it survives, then synthesized into a prioritized report.',
|
|
5
|
+
phases: [{ title: 'Review' }, { title: 'Verify' }, { title: 'Synthesize', model: 'opus' }],
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const FINDINGS_SCHEMA = {
|
|
9
|
+
type: 'object',
|
|
10
|
+
additionalProperties: false,
|
|
11
|
+
required: ['findings'],
|
|
12
|
+
properties: {
|
|
13
|
+
findings: {
|
|
14
|
+
type: 'array',
|
|
15
|
+
items: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
additionalProperties: false,
|
|
18
|
+
required: ['title', 'file', 'severity', 'detail'],
|
|
19
|
+
properties: {
|
|
20
|
+
title: { type: 'string' },
|
|
21
|
+
file: { type: 'string', description: 'path:line of the issue' },
|
|
22
|
+
severity: { type: 'string', enum: ['blocker', 'major', 'minor', 'nit'] },
|
|
23
|
+
detail: { type: 'string', description: 'what is wrong and why it matters' },
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const VERDICT_SCHEMA = {
|
|
31
|
+
type: 'object',
|
|
32
|
+
additionalProperties: false,
|
|
33
|
+
required: ['real', 'reason'],
|
|
34
|
+
properties: {
|
|
35
|
+
real: { type: 'boolean', description: 'true only if the finding is a genuine, reproducible problem' },
|
|
36
|
+
reason: { type: 'string' },
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const DIMENSIONS = [
|
|
41
|
+
{
|
|
42
|
+
key: 'correctness',
|
|
43
|
+
agentType: 'code-reviewer',
|
|
44
|
+
model: 'sonnet',
|
|
45
|
+
focus: 'logic errors, broken edge cases, incorrect error handling, and regressions',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
key: 'security',
|
|
49
|
+
agentType: 'security-reviewer',
|
|
50
|
+
model: 'haiku',
|
|
51
|
+
focus: 'injection, secret leakage, unsafe deserialization, missing authz/validation, vulnerable patterns',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
key: 'performance',
|
|
55
|
+
agentType: 'performance-engineer',
|
|
56
|
+
model: 'sonnet',
|
|
57
|
+
focus: 'N+1 patterns, accidental quadratic work, unnecessary allocations, blocking I/O on hot paths',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
key: 'tests',
|
|
61
|
+
agentType: 'tester',
|
|
62
|
+
model: 'sonnet',
|
|
63
|
+
focus: 'missing test coverage for changed behavior, weak assertions, and untested edge cases',
|
|
64
|
+
},
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
// Optional path-scoping: when invoked with args.paths, review ONLY those files (the
|
|
68
|
+
// caller's changeset) instead of the whole uncommitted diff. Avoids re-reviewing
|
|
69
|
+
// unrelated accumulated changes when there are no commits between units of work.
|
|
70
|
+
const scopePaths = args && Array.isArray(args.paths) && args.paths.length ? args.paths : null
|
|
71
|
+
const diffCmd = scopePaths
|
|
72
|
+
? `git --no-pager diff -- ${scopePaths.join(' ')} ; git --no-pager diff --staged -- ${scopePaths.join(' ')}`
|
|
73
|
+
: 'git --no-pager diff ; git --no-pager diff --staged'
|
|
74
|
+
const scopeNote = scopePaths
|
|
75
|
+
? `Review ONLY these files (the caller's changeset): ${scopePaths.join(', ')}. Ignore changes in any other file.`
|
|
76
|
+
: 'Review the full current diff.'
|
|
77
|
+
|
|
78
|
+
// Pipeline: each dimension's findings verify as soon as that dimension finishes —
|
|
79
|
+
// no barrier, so the fast haiku security pass is not blocked by the slower lenses.
|
|
80
|
+
const results = await pipeline(
|
|
81
|
+
DIMENSIONS,
|
|
82
|
+
(d) =>
|
|
83
|
+
agent(
|
|
84
|
+
`Review the current git diff for ${d.key} issues. Focus on: ${d.focus}.
|
|
85
|
+
${scopeNote}
|
|
86
|
+
Run \`${diffCmd}\` to see the changes. Report only issues introduced or exposed by this diff — not pre-existing debt.`,
|
|
87
|
+
{ label: `review:${d.key}`, phase: 'Review', agentType: d.agentType, model: d.model, schema: FINDINGS_SCHEMA }
|
|
88
|
+
),
|
|
89
|
+
(review, d) =>
|
|
90
|
+
parallel(
|
|
91
|
+
(review.findings || []).map((f) => () =>
|
|
92
|
+
agent(
|
|
93
|
+
`Adversarially verify this ${d.key} finding. Try to REFUTE it. Read the relevant code at ${f.file}. Default to real=false if you cannot concretely confirm the problem.
|
|
94
|
+
Finding: ${f.title}
|
|
95
|
+
Detail: ${f.detail}`,
|
|
96
|
+
{ label: `verify:${d.key}`, phase: 'Verify', model: 'haiku', schema: VERDICT_SCHEMA }
|
|
97
|
+
).then((v) => ({ ...f, dimension: d.key, verdict: v }))
|
|
98
|
+
)
|
|
99
|
+
)
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
const confirmed = results
|
|
103
|
+
.flat()
|
|
104
|
+
.filter(Boolean)
|
|
105
|
+
.filter((f) => f.verdict && f.verdict.real)
|
|
106
|
+
|
|
107
|
+
// blocking = verified findings severe enough to fail a gate (blocker/major).
|
|
108
|
+
// Consumers (e.g. rulebook-driver) feed these back to the implementer.
|
|
109
|
+
const blocking = confirmed.filter((f) => /^(blocker|major)$/i.test(f.severity || ''))
|
|
110
|
+
|
|
111
|
+
phase('Synthesize')
|
|
112
|
+
const report = await agent(
|
|
113
|
+
`Synthesize a prioritized code-review report from these confirmed findings (already verified as real). Group by severity, give each a one-line fix recommendation, and lead with blockers.
|
|
114
|
+
${JSON.stringify(confirmed, null, 2)}`,
|
|
115
|
+
{ label: 'synthesize', phase: 'Synthesize', model: 'opus' }
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
return { confirmedCount: confirmed.length, confirmed, blocking, report }
|