@hivehub/rulebook 5.7.0 → 5.8.1
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 +10 -1
- package/dist/core/claude/claude-mcp.d.ts.map +1 -1
- package/dist/core/claude/claude-mcp.js +48 -2
- 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 +2 -1
- package/dist/core/generators/generator.d.ts.map +1 -1
- package/dist/core/generators/generator.js +38 -1
- 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 +217 -0
- package/templates/agents/quality-gatekeeper.md +208 -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 +125 -0
- package/templates/claude-workflows/rulebook-driver.js +382 -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/templates/workflows/typescript-test.yml +9 -3
- 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
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Runs after every model turn. Estimates the current context usage
|
|
5
5
|
# from the JSONL transcript and, when it exceeds the configured
|
|
6
|
-
# threshold,
|
|
7
|
-
# the
|
|
6
|
+
# threshold, instructs the model to invoke the /handoff skill and tell
|
|
7
|
+
# the user to type /clear. The Stop event has no `additionalContext`
|
|
8
|
+
# field, so force mode uses `decision:"block"`+`reason` (fed to the
|
|
9
|
+
# model) and warn mode uses `systemMessage` (surfaced to the user).
|
|
8
10
|
#
|
|
9
11
|
# Thresholds are read from .rulebook/rulebook.json `handoff` section.
|
|
10
12
|
# Defaults: warn=75, force=90 (percentage of estimated max context).
|
|
@@ -62,11 +64,19 @@ if [[ "$pct" -ge "$FORCE_PCT" ]]; then
|
|
|
62
64
|
# Force mode: write urgent sentinel + emit strong instruction
|
|
63
65
|
mkdir -p "$HANDOFF_DIR"
|
|
64
66
|
touch "${HANDOFF_DIR}/.urgent"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
# Block exactly once: drive the model to invoke /handoff. After the handoff
|
|
68
|
+
# file exists, switch to a non-blocking systemMessage so we don't trap the
|
|
69
|
+
# model in a stop-loop that burns context at the worst possible moment.
|
|
70
|
+
if [[ -f "${HANDOFF_DIR}/_pending.md" ]]; then
|
|
71
|
+
msg="⚠️ CONTEXT AT ${pct}% — handoff already saved to .rulebook/handoff/_pending.md. >>> TYPE /clear NOW — your context will be auto-restored in the next session <<<"
|
|
72
|
+
jq -nc --arg msg "$msg" '{ systemMessage: $msg }'
|
|
73
|
+
else
|
|
74
|
+
msg="⚠️ CONTEXT AT ${pct}% (FORCE THRESHOLD). You MUST invoke /handoff NOW to save session state to .rulebook/handoff/_pending.md. After it succeeds, tell the user: '>>> TYPE /clear NOW — your context will be auto-restored in the next session <<<'. Do NOT continue working until the user has typed /clear."
|
|
75
|
+
jq -nc --arg msg "$msg" '{ decision: "block", reason: $msg }'
|
|
76
|
+
fi
|
|
67
77
|
elif [[ "$pct" -ge "$WARN_PCT" ]]; then
|
|
68
|
-
msg="⚠️ Context at ${pct}%. Recommended: invoke /handoff to save session state
|
|
69
|
-
jq -nc --arg msg "$msg" '{
|
|
78
|
+
msg="⚠️ Context at ${pct}%. Recommended: invoke /handoff to save session state, then type /clear for a fresh session."
|
|
79
|
+
jq -nc --arg msg "$msg" '{ systemMessage: $msg }'
|
|
70
80
|
else
|
|
71
81
|
# Below threshold — no-op
|
|
72
82
|
printf '%s' '{}'
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Claude Code SessionStart hook — rulebook update check (Windows).
|
|
2
|
+
#
|
|
3
|
+
# Mirrors templates/hooks/update-check.sh: compares the project's installed
|
|
4
|
+
# rulebook version (.rulebook/rulebook.json -> version) against the latest
|
|
5
|
+
# @hivehub/rulebook on npm, cached 24h in .rulebook/.update-check. Emits an
|
|
6
|
+
# additionalContext advisory when a newer version exists, else `{}`.
|
|
7
|
+
|
|
8
|
+
$ErrorActionPreference = 'SilentlyContinue'
|
|
9
|
+
|
|
10
|
+
function Emit-None { Write-Output '{}'; exit 0 }
|
|
11
|
+
|
|
12
|
+
# Resolve project root from stdin JSON cwd, else env, else pwd.
|
|
13
|
+
$inputRaw = $null
|
|
14
|
+
if ([Console]::IsInputRedirected) { try { $inputRaw = [Console]::In.ReadToEnd() } catch { } }
|
|
15
|
+
$projectRoot = $null
|
|
16
|
+
if ($inputRaw) { try { $projectRoot = (ConvertFrom-Json $inputRaw).cwd } catch { } }
|
|
17
|
+
if (-not $projectRoot) {
|
|
18
|
+
if ($env:CLAUDE_PROJECT_DIR) { $projectRoot = $env:CLAUDE_PROJECT_DIR }
|
|
19
|
+
else { $projectRoot = (Get-Location).Path }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
$configFile = Join-Path $projectRoot '.rulebook/rulebook.json'
|
|
23
|
+
$cacheFile = Join-Path $projectRoot '.rulebook/.update-check'
|
|
24
|
+
$pkg = '@hivehub/rulebook'
|
|
25
|
+
$cacheTtl = 86400
|
|
26
|
+
|
|
27
|
+
if (-not (Test-Path $configFile)) { Emit-None }
|
|
28
|
+
|
|
29
|
+
$config = $null
|
|
30
|
+
try { $config = Get-Content -Raw $configFile | ConvertFrom-Json } catch { Emit-None }
|
|
31
|
+
$installed = $config.version
|
|
32
|
+
if (-not $installed) { Emit-None }
|
|
33
|
+
if ($config.updateCheck -and $config.updateCheck.enabled -eq $false) { Emit-None }
|
|
34
|
+
|
|
35
|
+
$now = [int][double]::Parse((Get-Date -UFormat %s))
|
|
36
|
+
$latest = $null
|
|
37
|
+
$cacheTs = 0
|
|
38
|
+
if (Test-Path $cacheFile) {
|
|
39
|
+
try {
|
|
40
|
+
$cache = Get-Content -Raw $cacheFile | ConvertFrom-Json
|
|
41
|
+
$cacheTs = [int]$cache.checkedAt
|
|
42
|
+
$latest = $cache.latest
|
|
43
|
+
} catch { }
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
$age = $now - $cacheTs
|
|
47
|
+
if (-not $latest -or $age -ge $cacheTtl) {
|
|
48
|
+
$fetched = $null
|
|
49
|
+
try {
|
|
50
|
+
$job = Start-Job { param($p) npm view $p version 2>$null } -ArgumentList $pkg
|
|
51
|
+
if (Wait-Job $job -Timeout 5) { $fetched = (Receive-Job $job) }
|
|
52
|
+
Remove-Job $job -Force
|
|
53
|
+
} catch { }
|
|
54
|
+
if ($fetched) {
|
|
55
|
+
$latest = ("$fetched").Trim()
|
|
56
|
+
try {
|
|
57
|
+
[IO.File]::WriteAllText($cacheFile, (@{ latest = $latest; checkedAt = $now } | ConvertTo-Json -Compress))
|
|
58
|
+
} catch { }
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (-not $latest) { Emit-None }
|
|
63
|
+
|
|
64
|
+
function Ver-Gt([string]$a, [string]$b) {
|
|
65
|
+
$aa = ($a -split '-')[0]; $bb = ($b -split '-')[0]
|
|
66
|
+
$A = $aa -split '\.'; $B = $bb -split '\.'
|
|
67
|
+
for ($i = 0; $i -lt 3; $i++) {
|
|
68
|
+
$ai = 0; $bi = 0
|
|
69
|
+
if ($A[$i]) { [int]::TryParse(($A[$i] -replace '[^0-9]', ''), [ref]$ai) | Out-Null }
|
|
70
|
+
if ($B[$i]) { [int]::TryParse(($B[$i] -replace '[^0-9]', ''), [ref]$bi) | Out-Null }
|
|
71
|
+
if ($ai -gt $bi) { return $true }
|
|
72
|
+
if ($ai -lt $bi) { return $false }
|
|
73
|
+
}
|
|
74
|
+
return $false
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (Ver-Gt $latest $installed) {
|
|
78
|
+
$ctx = "## Rulebook update available`n`nThis project is on rulebook **$installed**, but **$latest** is published on npm.`n`nAsk the user whether they want to update. If they agree, run ``rulebook update`` (or ``npx $pkg@latest update``) to regenerate the rules to the latest version, then review the diff before committing. Do not update without the user's confirmation."
|
|
79
|
+
$out = @{ hookSpecificOutput = @{ hookEventName = 'SessionStart'; additionalContext = $ctx } }
|
|
80
|
+
Write-Output ($out | ConvertTo-Json -Compress -Depth 4)
|
|
81
|
+
exit 0
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
Emit-None
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Claude Code SessionStart hook — rulebook update check.
|
|
3
|
+
#
|
|
4
|
+
# Compares the project's installed rulebook version (.rulebook/rulebook.json
|
|
5
|
+
# → version) against the latest published @hivehub/rulebook on npm. When a
|
|
6
|
+
# newer version exists, emits an additionalContext advisory so Claude can
|
|
7
|
+
# offer to run `rulebook update`. The npm lookup is cached for 24h in
|
|
8
|
+
# .rulebook/.update-check to keep session start fast and offline-friendly.
|
|
9
|
+
#
|
|
10
|
+
# Emits `{}` (no-op) on any of: no config, no network/npm, already current,
|
|
11
|
+
# cache still fresh with no known update, or any error. Never blocks startup.
|
|
12
|
+
|
|
13
|
+
set -euo pipefail
|
|
14
|
+
|
|
15
|
+
# --- Resolve project root (from stdin JSON cwd, else env, else pwd) ----------
|
|
16
|
+
input="$(cat || true)"
|
|
17
|
+
PROJECT_ROOT=""
|
|
18
|
+
if [[ -n "$input" ]] && command -v jq &>/dev/null; then
|
|
19
|
+
PROJECT_ROOT="$(printf '%s' "$input" | jq -r '.cwd // empty' 2>/dev/null || true)"
|
|
20
|
+
fi
|
|
21
|
+
[[ -z "$PROJECT_ROOT" ]] && PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
22
|
+
|
|
23
|
+
CONFIG_FILE="${PROJECT_ROOT}/.rulebook/rulebook.json"
|
|
24
|
+
CACHE_FILE="${PROJECT_ROOT}/.rulebook/.update-check"
|
|
25
|
+
PKG="@hivehub/rulebook"
|
|
26
|
+
CACHE_TTL=86400 # 24h in seconds
|
|
27
|
+
|
|
28
|
+
emit_none() { printf '%s' '{}'; exit 0; }
|
|
29
|
+
|
|
30
|
+
# Need jq + a config to do anything useful.
|
|
31
|
+
command -v jq &>/dev/null || emit_none
|
|
32
|
+
[[ -f "$CONFIG_FILE" ]] || emit_none
|
|
33
|
+
|
|
34
|
+
installed="$(jq -r '.version // empty' "$CONFIG_FILE" 2>/dev/null || true)"
|
|
35
|
+
[[ -z "$installed" ]] && emit_none
|
|
36
|
+
|
|
37
|
+
# Allow opt-out via config: { "updateCheck": { "enabled": false } }.
|
|
38
|
+
# Note: jq's `//` treats `false` as empty, so `.updateCheck.enabled // true`
|
|
39
|
+
# would wrongly yield true when explicitly disabled — test the value directly.
|
|
40
|
+
enabled="$(jq -r 'if .updateCheck.enabled == false then "false" else "true" end' "$CONFIG_FILE" 2>/dev/null || echo true)"
|
|
41
|
+
[[ "$enabled" == "false" ]] && emit_none
|
|
42
|
+
|
|
43
|
+
# --- Determine latest version (cache-first) ---------------------------------
|
|
44
|
+
now="$(date -u +%s)"
|
|
45
|
+
latest=""
|
|
46
|
+
cache_ts=0
|
|
47
|
+
if [[ -f "$CACHE_FILE" ]]; then
|
|
48
|
+
cache_ts="$(jq -r '.checkedAt // 0' "$CACHE_FILE" 2>/dev/null || echo 0)"
|
|
49
|
+
latest="$(jq -r '.latest // empty' "$CACHE_FILE" 2>/dev/null || true)"
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
age=$(( now - cache_ts ))
|
|
53
|
+
if [[ -z "$latest" || "$age" -ge "$CACHE_TTL" ]]; then
|
|
54
|
+
# Cache miss or stale — query npm with a hard timeout so startup never hangs.
|
|
55
|
+
fetched=""
|
|
56
|
+
if command -v npm &>/dev/null; then
|
|
57
|
+
if command -v timeout &>/dev/null; then
|
|
58
|
+
fetched="$(timeout 5 npm view "$PKG" version 2>/dev/null || true)"
|
|
59
|
+
else
|
|
60
|
+
fetched="$(npm view "$PKG" version 2>/dev/null || true)"
|
|
61
|
+
fi
|
|
62
|
+
fi
|
|
63
|
+
if [[ -n "$fetched" ]]; then
|
|
64
|
+
latest="$fetched"
|
|
65
|
+
# Refresh cache (best-effort; ignore write failures).
|
|
66
|
+
jq -nc --arg l "$latest" --argjson t "$now" \
|
|
67
|
+
'{latest: $l, checkedAt: $t}' > "$CACHE_FILE" 2>/dev/null || true
|
|
68
|
+
fi
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# No latest resolved (offline / first run with no network) — no-op.
|
|
72
|
+
[[ -z "$latest" ]] && emit_none
|
|
73
|
+
|
|
74
|
+
# --- Compare semver (numeric major.minor.patch, ignoring pre-release) -------
|
|
75
|
+
ver_gt() {
|
|
76
|
+
# returns 0 (true) if $1 > $2
|
|
77
|
+
local a="${1%%-*}" b="${2%%-*}"
|
|
78
|
+
local IFS=.
|
|
79
|
+
# shellcheck disable=SC2206
|
|
80
|
+
local A=($a) B=($b)
|
|
81
|
+
for i in 0 1 2; do
|
|
82
|
+
local ai="${A[i]:-0}" bi="${B[i]:-0}"
|
|
83
|
+
# Strip non-numeric just in case.
|
|
84
|
+
ai="${ai//[!0-9]/}"; bi="${bi//[!0-9]/}"
|
|
85
|
+
ai="${ai:-0}"; bi="${bi:-0}"
|
|
86
|
+
if (( ai > bi )); then return 0; fi
|
|
87
|
+
if (( ai < bi )); then return 1; fi
|
|
88
|
+
done
|
|
89
|
+
return 1
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if ver_gt "$latest" "$installed"; then
|
|
93
|
+
ctx="## Rulebook update available\n\nThis project is on rulebook **${installed}**, but **${latest}** is published on npm.\n\nAsk the user whether they want to update. If they agree, run \`rulebook update\` (or \`npx ${PKG}@latest update\`) to regenerate the rules to the latest version, then review the diff before committing. Do not update without the user's confirmation."
|
|
94
|
+
jq -nc --arg ctx "$ctx" '{
|
|
95
|
+
hookSpecificOutput: {
|
|
96
|
+
hookEventName: "SessionStart",
|
|
97
|
+
additionalContext: $ctx
|
|
98
|
+
}
|
|
99
|
+
}'
|
|
100
|
+
exit 0
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
emit_none
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
<!-- RULEBOOK:START -->
|
|
2
|
-
# Continue.dev — Code Assistant Rules
|
|
3
|
-
|
|
4
|
-
## Context Loading
|
|
5
|
-
- Always read AGENTS.md before making changes
|
|
6
|
-
- Check `.rulebook/specs/` for relevant spec files
|
|
7
|
-
|
|
8
|
-
## Code Standards
|
|
9
|
-
- Match existing code style and conventions
|
|
10
|
-
- Prefer editing existing files over creating new ones
|
|
11
|
-
- Add types for all new parameters and return values
|
|
12
|
-
|
|
13
|
-
## Testing
|
|
14
|
-
- Write tests for every new function
|
|
15
|
-
- Run existing tests after changes to verify no regressions
|
|
16
|
-
<!-- RULEBOOK:END -->
|
|
1
|
+
<!-- RULEBOOK:START -->
|
|
2
|
+
# Continue.dev — Code Assistant Rules
|
|
3
|
+
|
|
4
|
+
## Context Loading
|
|
5
|
+
- Always read AGENTS.md before making changes
|
|
6
|
+
- Check `.rulebook/specs/` for relevant spec files
|
|
7
|
+
|
|
8
|
+
## Code Standards
|
|
9
|
+
- Match existing code style and conventions
|
|
10
|
+
- Prefer editing existing files over creating new ones
|
|
11
|
+
- Add types for all new parameters and return values
|
|
12
|
+
|
|
13
|
+
## Testing
|
|
14
|
+
- Write tests for every new function
|
|
15
|
+
- Run existing tests after changes to verify no regressions
|
|
16
|
+
<!-- RULEBOOK:END -->
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
<!-- RULEBOOK:START -->
|
|
2
|
-
# GitHub Copilot — Project Instructions
|
|
3
|
-
|
|
4
|
-
## Code Style
|
|
5
|
-
- Use TypeScript with strict mode
|
|
6
|
-
- Follow existing naming conventions (camelCase functions, PascalCase classes)
|
|
7
|
-
- Prefer `async/await` over callbacks or raw Promises
|
|
8
|
-
|
|
9
|
-
## Architecture
|
|
10
|
-
- Follow the module structure described in AGENTS.md
|
|
11
|
-
- Keep functions small and focused (single responsibility)
|
|
12
|
-
- Use dependency injection over direct imports where possible
|
|
13
|
-
|
|
14
|
-
## Testing
|
|
15
|
-
- Write Vitest tests for all new functions
|
|
16
|
-
- Place tests in `tests/` directory, not alongside source files
|
|
17
|
-
- Mock external dependencies in unit tests
|
|
18
|
-
|
|
19
|
-
## Security
|
|
20
|
-
- Never commit credentials or API keys
|
|
21
|
-
- Validate all external input at system boundaries
|
|
22
|
-
- Follow OWASP top 10 guidelines
|
|
23
|
-
<!-- RULEBOOK:END -->
|
|
1
|
+
<!-- RULEBOOK:START -->
|
|
2
|
+
# GitHub Copilot — Project Instructions
|
|
3
|
+
|
|
4
|
+
## Code Style
|
|
5
|
+
- Use TypeScript with strict mode
|
|
6
|
+
- Follow existing naming conventions (camelCase functions, PascalCase classes)
|
|
7
|
+
- Prefer `async/await` over callbacks or raw Promises
|
|
8
|
+
|
|
9
|
+
## Architecture
|
|
10
|
+
- Follow the module structure described in AGENTS.md
|
|
11
|
+
- Keep functions small and focused (single responsibility)
|
|
12
|
+
- Use dependency injection over direct imports where possible
|
|
13
|
+
|
|
14
|
+
## Testing
|
|
15
|
+
- Write Vitest tests for all new functions
|
|
16
|
+
- Place tests in `tests/` directory, not alongside source files
|
|
17
|
+
- Mock external dependencies in unit tests
|
|
18
|
+
|
|
19
|
+
## Security
|
|
20
|
+
- Never commit credentials or API keys
|
|
21
|
+
- Validate all external input at system boundaries
|
|
22
|
+
- Follow OWASP top 10 guidelines
|
|
23
|
+
<!-- RULEBOOK:END -->
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<!-- RULEBOOK:START -->
|
|
2
|
-
# Gemini CLI — Project Directives
|
|
3
|
-
|
|
4
|
-
## Code Generation Rules
|
|
5
|
-
- Generate TypeScript with strict mode enabled
|
|
6
|
-
- Follow existing file and function naming conventions
|
|
7
|
-
- Always add error handling for async operations
|
|
8
|
-
- Generate tests alongside implementation code
|
|
9
|
-
|
|
10
|
-
## Quality Standards
|
|
11
|
-
- All code must pass TypeScript type-check
|
|
12
|
-
- All code must pass ESLint without warnings
|
|
13
|
-
- Test coverage must meet project thresholds
|
|
14
|
-
|
|
15
|
-
## Project Context
|
|
16
|
-
See AGENTS.md for full project architecture and team conventions.
|
|
17
|
-
<!-- RULEBOOK:END -->
|
|
1
|
+
<!-- RULEBOOK:START -->
|
|
2
|
+
# Gemini CLI — Project Directives
|
|
3
|
+
|
|
4
|
+
## Code Generation Rules
|
|
5
|
+
- Generate TypeScript with strict mode enabled
|
|
6
|
+
- Follow existing file and function naming conventions
|
|
7
|
+
- Always add error handling for async operations
|
|
8
|
+
- Generate tests alongside implementation code
|
|
9
|
+
|
|
10
|
+
## Quality Standards
|
|
11
|
+
- All code must pass TypeScript type-check
|
|
12
|
+
- All code must pass ESLint without warnings
|
|
13
|
+
- Test coverage must meet project thresholds
|
|
14
|
+
|
|
15
|
+
## Project Context
|
|
16
|
+
See AGENTS.md for full project architecture and team conventions.
|
|
17
|
+
<!-- RULEBOOK:END -->
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<!-- RULEBOOK:START -->
|
|
2
|
-
# Windsurf — Project Rules
|
|
3
|
-
|
|
4
|
-
You are an AI assistant for this project. Follow these rules:
|
|
5
|
-
|
|
6
|
-
1. Read AGENTS.md for full project context before starting any task
|
|
7
|
-
2. Never create files in the root unless explicitly asked
|
|
8
|
-
3. All TypeScript must be strict-mode compatible
|
|
9
|
-
4. Write tests for new functionality
|
|
10
|
-
5. Run quality checks before marking work complete
|
|
11
|
-
|
|
12
|
-
## Project Structure
|
|
13
|
-
Follow the existing directory structure. See AGENTS.md for details.
|
|
14
|
-
<!-- RULEBOOK:END -->
|
|
1
|
+
<!-- RULEBOOK:START -->
|
|
2
|
+
# Windsurf — Project Rules
|
|
3
|
+
|
|
4
|
+
You are an AI assistant for this project. Follow these rules:
|
|
5
|
+
|
|
6
|
+
1. Read AGENTS.md for full project context before starting any task
|
|
7
|
+
2. Never create files in the root unless explicitly asked
|
|
8
|
+
3. All TypeScript must be strict-mode compatible
|
|
9
|
+
4. Write tests for new functionality
|
|
10
|
+
5. Run quality checks before marking work complete
|
|
11
|
+
|
|
12
|
+
## Project Structure
|
|
13
|
+
Follow the existing directory structure. See AGENTS.md for details.
|
|
14
|
+
<!-- RULEBOOK:END -->
|