@hivehub/rulebook 5.3.3 → 5.4.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/ralph-config.md +112 -112
- package/.claude/commands/ralph-history.md +110 -110
- package/.claude/commands/ralph-init.md +72 -72
- package/.claude/commands/ralph-pause-resume.md +105 -105
- package/.claude/commands/ralph-run.md +101 -101
- package/.claude/commands/ralph-status.md +76 -76
- 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 +48 -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/LICENSE +191 -191
- package/README.md +42 -3
- package/dist/cli/commands/compress.d.ts +18 -0
- package/dist/cli/commands/compress.d.ts.map +1 -0
- package/dist/cli/commands/compress.js +100 -0
- package/dist/cli/commands/compress.js.map +1 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- 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 +2 -0
- 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 +2 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/core/claude-settings-manager.d.ts +7 -0
- package/dist/core/claude-settings-manager.d.ts.map +1 -1
- package/dist/core/claude-settings-manager.js +31 -14
- package/dist/core/claude-settings-manager.js.map +1 -1
- package/dist/core/compress/compressor.d.ts +60 -0
- package/dist/core/compress/compressor.d.ts.map +1 -0
- package/dist/core/compress/compressor.js +232 -0
- package/dist/core/compress/compressor.js.map +1 -0
- package/dist/core/compress/discover.d.ts +19 -0
- package/dist/core/compress/discover.d.ts.map +1 -0
- package/dist/core/compress/discover.js +100 -0
- package/dist/core/compress/discover.js.map +1 -0
- package/dist/core/compress/validator.d.ts +47 -0
- package/dist/core/compress/validator.d.ts.map +1 -0
- package/dist/core/compress/validator.js +131 -0
- package/dist/core/compress/validator.js.map +1 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +66 -0
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/generator.d.ts +16 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +36 -11
- package/dist/core/generator.js.map +1 -1
- package/dist/hooks/safe-flag-io.d.ts +77 -0
- package/dist/hooks/safe-flag-io.d.ts.map +1 -0
- package/dist/hooks/safe-flag-io.js +169 -0
- package/dist/hooks/safe-flag-io.js.map +1 -0
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +236 -0
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +23 -21
- 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 +52 -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/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/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 +18 -18
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
- package/templates/cli/gemini-extension.json +77 -77
- 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 +48 -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_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +296 -296
- package/templates/core/CLAUDE_MD_v2.md +71 -71
- 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/RALPH.md +471 -471
- 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/core/WORKSPACE.md +69 -69
- package/templates/frameworks/ANGULAR.md +36 -36
- package/templates/frameworks/DJANGO.md +83 -83
- package/templates/frameworks/ELECTRON.md +147 -147
- package/templates/frameworks/FLASK.md +38 -38
- package/templates/frameworks/FLUTTER.md +55 -55
- package/templates/frameworks/JQUERY.md +32 -32
- package/templates/frameworks/LARAVEL.md +38 -38
- package/templates/frameworks/NESTJS.md +43 -43
- package/templates/frameworks/NEXTJS.md +127 -127
- package/templates/frameworks/NUXT.md +40 -40
- package/templates/frameworks/RAILS.md +66 -66
- package/templates/frameworks/REACT.md +38 -38
- package/templates/frameworks/REACT_NATIVE.md +47 -47
- package/templates/frameworks/SPRING.md +39 -39
- package/templates/frameworks/SYMFONY.md +36 -36
- package/templates/frameworks/VUE.md +36 -36
- package/templates/frameworks/ZEND.md +35 -35
- 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.ps1 +58 -58
- package/templates/hooks/check-context-and-handoff.sh +76 -76
- package/templates/hooks/enforce-team-for-background-agents.ps1 +63 -63
- package/templates/hooks/enforce-team-for-background-agents.sh +55 -55
- package/templates/hooks/on-compact-reinject.sh +34 -34
- package/templates/hooks/resume-from-handoff.ps1 +40 -40
- package/templates/hooks/resume-from-handoff.sh +61 -61
- package/templates/hooks/terse-activate.ps1 +143 -0
- package/templates/hooks/terse-activate.sh +197 -0
- package/templates/hooks/terse-mode-tracker.ps1 +153 -0
- package/templates/hooks/terse-mode-tracker.sh +187 -0
- package/templates/ides/CONTINUE_RULES.md +16 -16
- package/templates/ides/COPILOT.md +37 -37
- package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
- package/templates/ides/CURSOR.md +43 -43
- package/templates/ides/GEMINI_RULES.md +17 -17
- package/templates/ides/JETBRAINS_AI.md +35 -35
- package/templates/ides/REPLIT.md +36 -36
- package/templates/ides/TABNINE.md +29 -29
- package/templates/ides/VSCODE.md +40 -40
- package/templates/ides/WINDSURF.md +36 -36
- package/templates/ides/WINDSURF_RULES.md +14 -14
- package/templates/ides/ZED.md +32 -32
- package/templates/ides/cursor-mdc/go.mdc +24 -24
- package/templates/ides/cursor-mdc/python.mdc +24 -24
- package/templates/ides/cursor-mdc/quality.mdc +25 -25
- package/templates/ides/cursor-mdc/ralph.mdc +39 -39
- package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
- package/templates/ides/cursor-mdc/rust.mdc +24 -24
- package/templates/ides/cursor-mdc/typescript.mdc +25 -25
- 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/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 -156
- 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/ralph/ralph-history.bat +4 -4
- package/templates/ralph/ralph-history.sh +5 -5
- package/templates/ralph/ralph-init.bat +5 -5
- package/templates/ralph/ralph-init.sh +5 -5
- package/templates/ralph/ralph-pause.bat +5 -5
- package/templates/ralph/ralph-pause.sh +5 -5
- package/templates/ralph/ralph-run.bat +5 -5
- package/templates/ralph/ralph-run.sh +5 -5
- package/templates/ralph/ralph-status.bat +4 -4
- package/templates/ralph/ralph-status.sh +5 -5
- 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/services/AZURE_BLOB.md +184 -184
- package/templates/services/CASSANDRA.md +239 -239
- package/templates/services/DATADOG.md +26 -26
- package/templates/services/DOCKER.md +124 -124
- package/templates/services/DOCKER_COMPOSE.md +168 -168
- package/templates/services/DYNAMODB.md +308 -308
- package/templates/services/ELASTICSEARCH.md +347 -347
- package/templates/services/GCS.md +178 -178
- package/templates/services/HELM.md +194 -194
- package/templates/services/INFLUXDB.md +265 -265
- package/templates/services/KAFKA.md +341 -341
- package/templates/services/KUBERNETES.md +208 -208
- package/templates/services/MARIADB.md +183 -183
- package/templates/services/MEMCACHED.md +242 -242
- package/templates/services/MINIO.md +201 -201
- package/templates/services/MONGODB.md +268 -268
- package/templates/services/MYSQL.md +358 -358
- package/templates/services/NEO4J.md +247 -247
- package/templates/services/OPENTELEMETRY.md +25 -25
- package/templates/services/ORACLE.md +290 -290
- package/templates/services/PINO.md +24 -24
- package/templates/services/POSTGRESQL.md +326 -326
- package/templates/services/PROMETHEUS.md +33 -33
- package/templates/services/RABBITMQ.md +286 -286
- package/templates/services/REDIS.md +292 -292
- package/templates/services/S3.md +298 -298
- package/templates/services/SENTRY.md +23 -23
- package/templates/services/SQLITE.md +294 -294
- package/templates/services/SQLSERVER.md +294 -294
- package/templates/services/WINSTON.md +30 -30
- 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 +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 -0
- package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -0
- package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -0
- 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/frameworks/angular/SKILL.md +46 -46
- package/templates/skills/frameworks/django/SKILL.md +93 -93
- package/templates/skills/frameworks/electron/SKILL.md +157 -157
- package/templates/skills/frameworks/flask/SKILL.md +48 -48
- package/templates/skills/frameworks/flutter/SKILL.md +65 -65
- package/templates/skills/frameworks/jquery/SKILL.md +42 -42
- package/templates/skills/frameworks/laravel/SKILL.md +48 -48
- package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
- package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
- package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
- package/templates/skills/frameworks/rails/SKILL.md +76 -76
- package/templates/skills/frameworks/react/SKILL.md +48 -48
- package/templates/skills/frameworks/react-native/SKILL.md +57 -57
- package/templates/skills/frameworks/spring/SKILL.md +49 -49
- package/templates/skills/frameworks/symfony/SKILL.md +46 -46
- package/templates/skills/frameworks/vue/SKILL.md +46 -46
- package/templates/skills/frameworks/zend/SKILL.md +45 -45
- 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/skills/services/azure-blob/SKILL.md +194 -194
- package/templates/skills/services/cassandra/SKILL.md +249 -249
- package/templates/skills/services/dynamodb/SKILL.md +318 -318
- package/templates/skills/services/elasticsearch/SKILL.md +357 -357
- package/templates/skills/services/gcs/SKILL.md +188 -188
- package/templates/skills/services/influxdb/SKILL.md +275 -275
- package/templates/skills/services/kafka/SKILL.md +351 -351
- package/templates/skills/services/mariadb/SKILL.md +193 -193
- package/templates/skills/services/memcached/SKILL.md +252 -252
- package/templates/skills/services/minio/SKILL.md +211 -211
- package/templates/skills/services/mongodb/SKILL.md +278 -278
- package/templates/skills/services/mysql/SKILL.md +368 -368
- package/templates/skills/services/neo4j/SKILL.md +257 -257
- package/templates/skills/services/oracle/SKILL.md +300 -300
- package/templates/skills/services/postgresql/SKILL.md +336 -336
- package/templates/skills/services/rabbitmq/SKILL.md +296 -296
- package/templates/skills/services/redis/SKILL.md +302 -302
- package/templates/skills/services/s3/SKILL.md +308 -308
- package/templates/skills/services/sqlite/SKILL.md +304 -304
- package/templates/skills/services/sqlserver/SKILL.md +304 -304
- package/templates/skills/workflows/ralph/SKILL.md +309 -309
- package/templates/skills/workflows/ralph/install.sh +87 -87
- package/templates/skills/workflows/ralph/manifest.json +158 -158
- package/templates/workflows/codespell.yml +31 -31
- package/templates/workflows/cpp-lint.yml +47 -47
- package/templates/workflows/cpp-publish.yml +119 -119
- package/templates/workflows/cpp-test.yml +77 -77
- package/templates/workflows/dotnet-lint.yml +29 -29
- package/templates/workflows/dotnet-publish.yml +40 -40
- package/templates/workflows/dotnet-test.yml +41 -41
- package/templates/workflows/elixir-lint.yml +45 -45
- package/templates/workflows/elixir-publish.yml +49 -49
- package/templates/workflows/elixir-test.yml +54 -54
- package/templates/workflows/erlang-lint.yml +47 -47
- package/templates/workflows/erlang-test.yml +62 -62
- package/templates/workflows/go-lint.yml +39 -39
- package/templates/workflows/go-publish.yml +95 -95
- package/templates/workflows/go-test.yml +59 -59
- package/templates/workflows/java-lint.yml +60 -60
- package/templates/workflows/java-publish.yml +120 -120
- package/templates/workflows/java-test.yml +85 -85
- package/templates/workflows/kotlin-lint.yml +34 -34
- package/templates/workflows/kotlin-publish.yml +56 -56
- package/templates/workflows/kotlin-test.yml +48 -48
- package/templates/workflows/php-lint.yml +39 -39
- package/templates/workflows/php-publish.yml +50 -50
- package/templates/workflows/php-test.yml +54 -54
- package/templates/workflows/python-lint.yml +47 -47
- package/templates/workflows/python-publish.yml +91 -91
- package/templates/workflows/python-test.yml +59 -59
- package/templates/workflows/rust-lint.yml +54 -54
- package/templates/workflows/rust-publish.yml +66 -66
- package/templates/workflows/rust-test.yml +75 -75
- package/templates/workflows/solidity-lint.yml +41 -41
- package/templates/workflows/solidity-test.yml +47 -47
- package/templates/workflows/swift-lint.yml +32 -32
- package/templates/workflows/swift-publish.yml +58 -58
- package/templates/workflows/swift-test.yml +44 -44
- package/templates/workflows/typescript-publish.yml +60 -60
- package/templates/workflows/typescript-test.yml +73 -73
- package/templates/workflows/zig-lint.yml +27 -27
- package/templates/workflows/zig-test.yml +40 -40
- package/dist/cli/commands.d.ts +0 -225
- package/dist/cli/commands.d.ts.map +0 -1
- package/dist/cli/commands.js +0 -3984
- package/dist/cli/commands.js.map +0 -1
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# Always use the knowledge base — read before implementing, write after learning
|
|
2
|
-
|
|
3
|
-
# Knowledge Base Usage — Mandatory for All Implementation Work
|
|
4
|
-
|
|
5
|
-
The knowledge base (`rulebook knowledge` + `rulebook learn`) is the project's institutional memory. It prevents repeating mistakes and ensures proven patterns are reused.
|
|
6
|
-
|
|
7
|
-
## BEFORE Starting Any Implementation
|
|
8
|
-
|
|
9
|
-
1. **Check existing knowledge**: `rulebook knowledge list`
|
|
10
|
-
2. **Search for relevant learnings**: `rulebook learn list`
|
|
11
|
-
3. **Apply patterns** that match your task — do NOT reinvent approaches that are already documented
|
|
12
|
-
4. **Avoid anti-patterns** — if a documented anti-pattern matches your planned approach, STOP and choose a different path
|
|
13
|
-
|
|
14
|
-
## DURING Implementation
|
|
15
|
-
|
|
16
|
-
When you discover something non-obvious:
|
|
17
|
-
- A workaround for a framework limitation → `rulebook learn capture`
|
|
18
|
-
- A debugging technique that saved time → `rulebook learn capture`
|
|
19
|
-
- A pattern that emerged and worked well → `rulebook knowledge add pattern`
|
|
20
|
-
- An approach that failed → `rulebook knowledge add anti-pattern`
|
|
21
|
-
|
|
22
|
-
## AFTER Completing a Task (before archive)
|
|
23
|
-
|
|
24
|
-
**Minimum 1 entry per task**. Record at least one of:
|
|
25
|
-
- `rulebook knowledge add pattern "<what worked>"` — reusable approach
|
|
26
|
-
- `rulebook knowledge add anti-pattern "<what failed>"` — approach to avoid
|
|
27
|
-
- `rulebook learn capture --title "<title>" --content "<insight>"` — implementation insight
|
|
28
|
-
- `rulebook decision create` — if a significant architectural choice was made
|
|
29
|
-
|
|
30
|
-
## Forbidden
|
|
31
|
-
|
|
32
|
-
- Starting implementation without checking `rulebook knowledge list`
|
|
33
|
-
- Archiving a task without capturing at least one learning
|
|
34
|
-
- Ignoring documented anti-patterns and repeating known mistakes
|
|
35
|
-
- Discovering a useful pattern and not recording it
|
|
36
|
-
|
|
37
|
-
## Why
|
|
38
|
-
|
|
39
|
-
Without the knowledge base, every session starts from zero. AI agents repeat the same mistakes, rediscover the same patterns, and waste cycles on approaches that were already tried and failed. The knowledge base is what makes the project smarter over time.
|
|
40
|
-
|
|
41
|
-
**"Those who cannot remember the past are condemned to repeat it."**
|
|
1
|
+
# Always use the knowledge base — read before implementing, write after learning
|
|
2
|
+
|
|
3
|
+
# Knowledge Base Usage — Mandatory for All Implementation Work
|
|
4
|
+
|
|
5
|
+
The knowledge base (`rulebook knowledge` + `rulebook learn`) is the project's institutional memory. It prevents repeating mistakes and ensures proven patterns are reused.
|
|
6
|
+
|
|
7
|
+
## BEFORE Starting Any Implementation
|
|
8
|
+
|
|
9
|
+
1. **Check existing knowledge**: `rulebook knowledge list`
|
|
10
|
+
2. **Search for relevant learnings**: `rulebook learn list`
|
|
11
|
+
3. **Apply patterns** that match your task — do NOT reinvent approaches that are already documented
|
|
12
|
+
4. **Avoid anti-patterns** — if a documented anti-pattern matches your planned approach, STOP and choose a different path
|
|
13
|
+
|
|
14
|
+
## DURING Implementation
|
|
15
|
+
|
|
16
|
+
When you discover something non-obvious:
|
|
17
|
+
- A workaround for a framework limitation → `rulebook learn capture`
|
|
18
|
+
- A debugging technique that saved time → `rulebook learn capture`
|
|
19
|
+
- A pattern that emerged and worked well → `rulebook knowledge add pattern`
|
|
20
|
+
- An approach that failed → `rulebook knowledge add anti-pattern`
|
|
21
|
+
|
|
22
|
+
## AFTER Completing a Task (before archive)
|
|
23
|
+
|
|
24
|
+
**Minimum 1 entry per task**. Record at least one of:
|
|
25
|
+
- `rulebook knowledge add pattern "<what worked>"` — reusable approach
|
|
26
|
+
- `rulebook knowledge add anti-pattern "<what failed>"` — approach to avoid
|
|
27
|
+
- `rulebook learn capture --title "<title>" --content "<insight>"` — implementation insight
|
|
28
|
+
- `rulebook decision create` — if a significant architectural choice was made
|
|
29
|
+
|
|
30
|
+
## Forbidden
|
|
31
|
+
|
|
32
|
+
- Starting implementation without checking `rulebook knowledge list`
|
|
33
|
+
- Archiving a task without capturing at least one learning
|
|
34
|
+
- Ignoring documented anti-patterns and repeating known mistakes
|
|
35
|
+
- Discovering a useful pattern and not recording it
|
|
36
|
+
|
|
37
|
+
## Why
|
|
38
|
+
|
|
39
|
+
Without the knowledge base, every session starts from zero. AI agents repeat the same mistakes, rediscover the same patterns, and waste cycles on approaches that were already tried and failed. The knowledge base is what makes the project smarter over time.
|
|
40
|
+
|
|
41
|
+
**"Those who cannot remember the past are condemned to repeat it."**
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
<!-- Generated by @hivehub/rulebook v5.3.0 — delete this comment to prevent regeneration on `rulebook update` -->
|
|
2
|
-
|
|
3
|
-
# Multi-agent work MUST use Teams
|
|
4
|
-
|
|
5
|
-
This project has **more than one specialized agent** and relies on Claude Code's
|
|
6
|
-
experimental Teams feature (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`). When
|
|
7
|
-
you need parallel execution across agents, use **Teams** — not standalone
|
|
8
|
-
background `Agent` calls.
|
|
9
|
-
|
|
10
|
-
## Why
|
|
11
|
-
|
|
12
|
-
Standalone background agents **cannot communicate with each other**. Only
|
|
13
|
-
agents inside a Team have access to the `SendMessage` tool. When two or
|
|
14
|
-
more independent background agents run without a Team:
|
|
15
|
-
|
|
16
|
-
- They cannot coordinate, share intermediate results, or reach consensus.
|
|
17
|
-
- They silently produce conflicting edits or duplicate work.
|
|
18
|
-
- You lose the ability to orchestrate hand-offs between specialists.
|
|
19
|
-
|
|
20
|
-
Rulebook enforces this with a `PreToolUse` hook that **denies** any
|
|
21
|
-
`Agent` invocation with `run_in_background: true` unless it is either:
|
|
22
|
-
|
|
23
|
-
1. `subagent_type: team-lead` (the coordinator that will create the Team), or
|
|
24
|
-
2. Passes `team_name` (already joined to an existing Team).
|
|
25
|
-
|
|
26
|
-
Foreground single-agent calls are unaffected.
|
|
27
|
-
|
|
28
|
-
## How to do parallel multi-agent work correctly
|
|
29
|
-
|
|
30
|
-
**Option A — Spawn a team-lead that creates the Team:**
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
Agent(
|
|
34
|
-
subagent_type: "team-lead",
|
|
35
|
-
run_in_background: true,
|
|
36
|
-
description: "Coordinate the refactor",
|
|
37
|
-
prompt: "Create a team with roles [...]"
|
|
38
|
-
)
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
The team-lead then uses `TeamCreate` and dispatches members with `team_name`.
|
|
42
|
-
|
|
43
|
-
**Option B — Create the Team first, then spawn members:**
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
TeamCreate(name: "refactor-team", members: [...])
|
|
47
|
-
Agent(
|
|
48
|
-
subagent_type: "rust-expert",
|
|
49
|
-
team_name: "refactor-team",
|
|
50
|
-
run_in_background: true,
|
|
51
|
-
description: "Port the auth module",
|
|
52
|
-
prompt: "..."
|
|
53
|
-
)
|
|
54
|
-
Agent(
|
|
55
|
-
subagent_type: "test-writer",
|
|
56
|
-
team_name: "refactor-team",
|
|
57
|
-
run_in_background: true,
|
|
58
|
-
description: "Write tests",
|
|
59
|
-
prompt: "..."
|
|
60
|
-
)
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Both members can now exchange messages via `SendMessage`.
|
|
64
|
-
|
|
65
|
-
## What is NOT blocked
|
|
66
|
-
|
|
67
|
-
- **Foreground `Agent`** (any `subagent_type`, no `run_in_background`): always allowed. Use this for simple delegation where you just need the result.
|
|
68
|
-
- **Background `Agent` with `team_name` set**: allowed because the agent has a coordination channel.
|
|
69
|
-
- **Background `Agent` with `subagent_type: "team-lead"`**: allowed because a team-lead is expected to bootstrap its Team before dispatching members.
|
|
70
|
-
|
|
71
|
-
## Environment requirement
|
|
72
|
-
|
|
73
|
-
This feature requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` in your
|
|
74
|
-
`.claude/settings.json`. Rulebook sets this automatically when
|
|
75
|
-
`multi_agent: true` is enabled in `.rulebook/rulebook.json`.
|
|
1
|
+
<!-- Generated by @hivehub/rulebook v5.3.0 — delete this comment to prevent regeneration on `rulebook update` -->
|
|
2
|
+
|
|
3
|
+
# Multi-agent work MUST use Teams
|
|
4
|
+
|
|
5
|
+
This project has **more than one specialized agent** and relies on Claude Code's
|
|
6
|
+
experimental Teams feature (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`). When
|
|
7
|
+
you need parallel execution across agents, use **Teams** — not standalone
|
|
8
|
+
background `Agent` calls.
|
|
9
|
+
|
|
10
|
+
## Why
|
|
11
|
+
|
|
12
|
+
Standalone background agents **cannot communicate with each other**. Only
|
|
13
|
+
agents inside a Team have access to the `SendMessage` tool. When two or
|
|
14
|
+
more independent background agents run without a Team:
|
|
15
|
+
|
|
16
|
+
- They cannot coordinate, share intermediate results, or reach consensus.
|
|
17
|
+
- They silently produce conflicting edits or duplicate work.
|
|
18
|
+
- You lose the ability to orchestrate hand-offs between specialists.
|
|
19
|
+
|
|
20
|
+
Rulebook enforces this with a `PreToolUse` hook that **denies** any
|
|
21
|
+
`Agent` invocation with `run_in_background: true` unless it is either:
|
|
22
|
+
|
|
23
|
+
1. `subagent_type: team-lead` (the coordinator that will create the Team), or
|
|
24
|
+
2. Passes `team_name` (already joined to an existing Team).
|
|
25
|
+
|
|
26
|
+
Foreground single-agent calls are unaffected.
|
|
27
|
+
|
|
28
|
+
## How to do parallel multi-agent work correctly
|
|
29
|
+
|
|
30
|
+
**Option A — Spawn a team-lead that creates the Team:**
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Agent(
|
|
34
|
+
subagent_type: "team-lead",
|
|
35
|
+
run_in_background: true,
|
|
36
|
+
description: "Coordinate the refactor",
|
|
37
|
+
prompt: "Create a team with roles [...]"
|
|
38
|
+
)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The team-lead then uses `TeamCreate` and dispatches members with `team_name`.
|
|
42
|
+
|
|
43
|
+
**Option B — Create the Team first, then spawn members:**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
TeamCreate(name: "refactor-team", members: [...])
|
|
47
|
+
Agent(
|
|
48
|
+
subagent_type: "rust-expert",
|
|
49
|
+
team_name: "refactor-team",
|
|
50
|
+
run_in_background: true,
|
|
51
|
+
description: "Port the auth module",
|
|
52
|
+
prompt: "..."
|
|
53
|
+
)
|
|
54
|
+
Agent(
|
|
55
|
+
subagent_type: "test-writer",
|
|
56
|
+
team_name: "refactor-team",
|
|
57
|
+
run_in_background: true,
|
|
58
|
+
description: "Write tests",
|
|
59
|
+
prompt: "..."
|
|
60
|
+
)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Both members can now exchange messages via `SendMessage`.
|
|
64
|
+
|
|
65
|
+
## What is NOT blocked
|
|
66
|
+
|
|
67
|
+
- **Foreground `Agent`** (any `subagent_type`, no `run_in_background`): always allowed. Use this for simple delegation where you just need the result.
|
|
68
|
+
- **Background `Agent` with `team_name` set**: allowed because the agent has a coordination channel.
|
|
69
|
+
- **Background `Agent` with `subagent_type: "team-lead"`**: allowed because a team-lead is expected to bootstrap its Team before dispatching members.
|
|
70
|
+
|
|
71
|
+
## Environment requirement
|
|
72
|
+
|
|
73
|
+
This feature requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` in your
|
|
74
|
+
`.claude/settings.json`. Rulebook sets this automatically when
|
|
75
|
+
`multi_agent: true` is enabled in `.rulebook/rulebook.json`.
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: no-deferred
|
|
3
|
-
tier: 2
|
|
4
|
-
description: "Never defer tasks — implement or explain why impossible"
|
|
5
|
-
alwaysApply: true
|
|
6
|
-
filePatterns: ["*"]
|
|
7
|
-
tools: ["all"]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# No Deferred Tasks
|
|
11
|
-
|
|
12
|
-
If a task is in the checklist, **implement it**. No exceptions.
|
|
13
|
-
|
|
14
|
-
## Forbidden
|
|
15
|
-
|
|
16
|
-
- Marking tasks as "Deferred"
|
|
17
|
-
- Writing "Deferred — requires X"
|
|
18
|
-
- Skipping tasks with excuses
|
|
19
|
-
- Partial implementations with "will do later"
|
|
20
|
-
|
|
21
|
-
## Required Behavior
|
|
22
|
-
|
|
23
|
-
If a task has a genuine dependency:
|
|
24
|
-
1. Implement the dependency FIRST
|
|
25
|
-
2. Then implement the task
|
|
26
|
-
3. Mark BOTH as done
|
|
27
|
-
|
|
28
|
-
If you truly cannot implement something:
|
|
29
|
-
1. Explain WHY in concrete terms
|
|
30
|
-
2. Propose an alternative solution
|
|
31
|
-
3. Do NOT just write "Deferred"
|
|
1
|
+
---
|
|
2
|
+
name: no-deferred
|
|
3
|
+
tier: 2
|
|
4
|
+
description: "Never defer tasks — implement or explain why impossible"
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
filePatterns: ["*"]
|
|
7
|
+
tools: ["all"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# No Deferred Tasks
|
|
11
|
+
|
|
12
|
+
If a task is in the checklist, **implement it**. No exceptions.
|
|
13
|
+
|
|
14
|
+
## Forbidden
|
|
15
|
+
|
|
16
|
+
- Marking tasks as "Deferred"
|
|
17
|
+
- Writing "Deferred — requires X"
|
|
18
|
+
- Skipping tasks with excuses
|
|
19
|
+
- Partial implementations with "will do later"
|
|
20
|
+
|
|
21
|
+
## Required Behavior
|
|
22
|
+
|
|
23
|
+
If a task has a genuine dependency:
|
|
24
|
+
1. Implement the dependency FIRST
|
|
25
|
+
2. Then implement the task
|
|
26
|
+
3. Mark BOTH as done
|
|
27
|
+
|
|
28
|
+
If you truly cannot implement something:
|
|
29
|
+
1. Explain WHY in concrete terms
|
|
30
|
+
2. Propose an alternative solution
|
|
31
|
+
3. Do NOT just write "Deferred"
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: no-shortcuts
|
|
3
|
-
tier: 1
|
|
4
|
-
description: "Never use stubs, TODOs, placeholders, or approximations"
|
|
5
|
-
alwaysApply: true
|
|
6
|
-
filePatterns: ["*"]
|
|
7
|
-
tools: ["all"]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# No Shortcuts — Quality Over Speed
|
|
11
|
-
|
|
12
|
-
Response time is IRRELEVANT. The ONLY thing that matters is quality.
|
|
13
|
-
|
|
14
|
-
## Absolutely Forbidden
|
|
15
|
-
|
|
16
|
-
1. **NEVER simplify logic** to deliver faster — implement the correct algorithm
|
|
17
|
-
2. **NEVER add TODOs** — if it needs to be done, do it NOW
|
|
18
|
-
3. **NEVER use stubs** — every function must have its real implementation
|
|
19
|
-
4. **NEVER use placeholders** — no `// placeholder`, no `return 0; // fixme`
|
|
20
|
-
5. **NEVER cut corners** to reduce output size
|
|
21
|
-
6. **NEVER skip edge cases** — handle all of them
|
|
22
|
-
7. **NEVER deliver partial implementations** — complete or explain why not
|
|
23
|
-
8. **NEVER alter existing logic** to make your task easier
|
|
24
|
-
|
|
25
|
-
## Required Behavior
|
|
26
|
-
|
|
27
|
-
- **Research** the correct approach before writing code
|
|
28
|
-
- **Implement completely** — every function, every edge case, every error path
|
|
29
|
-
- **Take as long as needed** — correct > fast
|
|
30
|
-
- **Ask if unsure** — propose a plan, never silently simplify
|
|
1
|
+
---
|
|
2
|
+
name: no-shortcuts
|
|
3
|
+
tier: 1
|
|
4
|
+
description: "Never use stubs, TODOs, placeholders, or approximations"
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
filePatterns: ["*"]
|
|
7
|
+
tools: ["all"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# No Shortcuts — Quality Over Speed
|
|
11
|
+
|
|
12
|
+
Response time is IRRELEVANT. The ONLY thing that matters is quality.
|
|
13
|
+
|
|
14
|
+
## Absolutely Forbidden
|
|
15
|
+
|
|
16
|
+
1. **NEVER simplify logic** to deliver faster — implement the correct algorithm
|
|
17
|
+
2. **NEVER add TODOs** — if it needs to be done, do it NOW
|
|
18
|
+
3. **NEVER use stubs** — every function must have its real implementation
|
|
19
|
+
4. **NEVER use placeholders** — no `// placeholder`, no `return 0; // fixme`
|
|
20
|
+
5. **NEVER cut corners** to reduce output size
|
|
21
|
+
6. **NEVER skip edge cases** — handle all of them
|
|
22
|
+
7. **NEVER deliver partial implementations** — complete or explain why not
|
|
23
|
+
8. **NEVER alter existing logic** to make your task easier
|
|
24
|
+
|
|
25
|
+
## Required Behavior
|
|
26
|
+
|
|
27
|
+
- **Research** the correct approach before writing code
|
|
28
|
+
- **Implement completely** — every function, every edge case, every error path
|
|
29
|
+
- **Take as long as needed** — correct > fast
|
|
30
|
+
- **Ask if unsure** — propose a plan, never silently simplify
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "**/*.py"
|
|
4
|
-
- "**/*.pyi"
|
|
5
|
-
- "pyproject.toml"
|
|
6
|
-
- "setup.py"
|
|
7
|
-
- "setup.cfg"
|
|
8
|
-
- "requirements*.txt"
|
|
9
|
-
---
|
|
10
|
-
<!-- Generated by @hivehub/rulebook v5.3.0 — delete this comment to prevent regeneration on `rulebook update` -->
|
|
11
|
-
|
|
12
|
-
# Python rules
|
|
13
|
-
|
|
14
|
-
Loaded by Claude Code when touching Python files.
|
|
15
|
-
|
|
16
|
-
## Non-negotiables
|
|
17
|
-
|
|
18
|
-
1. **Type-check before test.** Run `mypy` / `pyright` / `pyre` (whichever the project configures) before `pytest`. Type errors are 10x cheaper to discover than test failures.
|
|
19
|
-
2. **Lint with `ruff` or the project's linter** before committing. `ruff check` is fast enough to run on every save.
|
|
20
|
-
3. **Format with `black` / `ruff format`** — never hand-format.
|
|
21
|
-
4. **Type hints on all public functions.** `def foo(x: int) -> str` minimum. Use `from __future__ import annotations` for forward refs.
|
|
22
|
-
5. **No bare `except:`** — catch specific exceptions or `except Exception as e:` at the very least.
|
|
23
|
-
|
|
24
|
-
## Conventions
|
|
25
|
-
|
|
26
|
-
- Follow PEP 8 (handled by the formatter).
|
|
27
|
-
- `pathlib.Path` over `os.path` for filesystem operations.
|
|
28
|
-
- f-strings over `.format()` and `%` formatting.
|
|
29
|
-
- Dataclasses or `pydantic` for data containers, not raw dicts at API boundaries.
|
|
30
|
-
- `logging` module, never `print()`, for anything that ships.
|
|
31
|
-
|
|
32
|
-
## Testing
|
|
33
|
-
|
|
34
|
-
- `pytest` is the default; use the project's configured runner.
|
|
35
|
-
- Fixtures in `conftest.py`, one per module where relevant.
|
|
36
|
-
- `pytest-cov` for coverage; meet the project's threshold.
|
|
37
|
-
- No skipped tests without an explicit comment linking to an issue.
|
|
38
|
-
|
|
39
|
-
## Dependencies & environments
|
|
40
|
-
|
|
41
|
-
- Respect the project's virtualenv / pyenv / poetry / uv setup. Do not install globally.
|
|
42
|
-
- `pyproject.toml` over `setup.py` for new projects.
|
|
43
|
-
- Pin versions in production; unpin only in libraries.
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.py"
|
|
4
|
+
- "**/*.pyi"
|
|
5
|
+
- "pyproject.toml"
|
|
6
|
+
- "setup.py"
|
|
7
|
+
- "setup.cfg"
|
|
8
|
+
- "requirements*.txt"
|
|
9
|
+
---
|
|
10
|
+
<!-- Generated by @hivehub/rulebook v5.3.0 — delete this comment to prevent regeneration on `rulebook update` -->
|
|
11
|
+
|
|
12
|
+
# Python rules
|
|
13
|
+
|
|
14
|
+
Loaded by Claude Code when touching Python files.
|
|
15
|
+
|
|
16
|
+
## Non-negotiables
|
|
17
|
+
|
|
18
|
+
1. **Type-check before test.** Run `mypy` / `pyright` / `pyre` (whichever the project configures) before `pytest`. Type errors are 10x cheaper to discover than test failures.
|
|
19
|
+
2. **Lint with `ruff` or the project's linter** before committing. `ruff check` is fast enough to run on every save.
|
|
20
|
+
3. **Format with `black` / `ruff format`** — never hand-format.
|
|
21
|
+
4. **Type hints on all public functions.** `def foo(x: int) -> str` minimum. Use `from __future__ import annotations` for forward refs.
|
|
22
|
+
5. **No bare `except:`** — catch specific exceptions or `except Exception as e:` at the very least.
|
|
23
|
+
|
|
24
|
+
## Conventions
|
|
25
|
+
|
|
26
|
+
- Follow PEP 8 (handled by the formatter).
|
|
27
|
+
- `pathlib.Path` over `os.path` for filesystem operations.
|
|
28
|
+
- f-strings over `.format()` and `%` formatting.
|
|
29
|
+
- Dataclasses or `pydantic` for data containers, not raw dicts at API boundaries.
|
|
30
|
+
- `logging` module, never `print()`, for anything that ships.
|
|
31
|
+
|
|
32
|
+
## Testing
|
|
33
|
+
|
|
34
|
+
- `pytest` is the default; use the project's configured runner.
|
|
35
|
+
- Fixtures in `conftest.py`, one per module where relevant.
|
|
36
|
+
- `pytest-cov` for coverage; meet the project's threshold.
|
|
37
|
+
- No skipped tests without an explicit comment linking to an issue.
|
|
38
|
+
|
|
39
|
+
## Dependencies & environments
|
|
40
|
+
|
|
41
|
+
- Respect the project's virtualenv / pyenv / poetry / uv setup. Do not install globally.
|
|
42
|
+
- `pyproject.toml` over `setup.py` for new projects.
|
|
43
|
+
- Pin versions in production; unpin only in libraries.
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: research-first
|
|
3
|
-
tier: 1
|
|
4
|
-
description: "Always research before implementing — never guess"
|
|
5
|
-
alwaysApply: true
|
|
6
|
-
filePatterns: ["*"]
|
|
7
|
-
tools: ["all"]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Research Before Implementing
|
|
11
|
-
|
|
12
|
-
NEVER guess at bug causes, API behavior, or algorithm correctness.
|
|
13
|
-
|
|
14
|
-
## Required Process
|
|
15
|
-
|
|
16
|
-
1. **State what you KNOW** (from logs, debug output, code reading)
|
|
17
|
-
2. **State what you DON'T KNOW**
|
|
18
|
-
3. **Research** the unknown (read source, check docs, use diagnostic tools)
|
|
19
|
-
4. **Only then** implement the fix
|
|
20
|
-
|
|
21
|
-
## Forbidden
|
|
22
|
-
|
|
23
|
-
- Guessing at the cause of a bug
|
|
24
|
-
- "Trying things" to see if they work
|
|
25
|
-
- Hypothesizing without reading code
|
|
26
|
-
- Assuming how an API works without checking docs
|
|
27
|
-
- Iterating blindly — each attempt must be informed by new data
|
|
28
|
-
|
|
29
|
-
**"I think this might be the problem" is NOT acceptable.**
|
|
30
|
-
**"Source X does Y at file:line, we do Z, the difference causes W" IS acceptable.**
|
|
1
|
+
---
|
|
2
|
+
name: research-first
|
|
3
|
+
tier: 1
|
|
4
|
+
description: "Always research before implementing — never guess"
|
|
5
|
+
alwaysApply: true
|
|
6
|
+
filePatterns: ["*"]
|
|
7
|
+
tools: ["all"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Research Before Implementing
|
|
11
|
+
|
|
12
|
+
NEVER guess at bug causes, API behavior, or algorithm correctness.
|
|
13
|
+
|
|
14
|
+
## Required Process
|
|
15
|
+
|
|
16
|
+
1. **State what you KNOW** (from logs, debug output, code reading)
|
|
17
|
+
2. **State what you DON'T KNOW**
|
|
18
|
+
3. **Research** the unknown (read source, check docs, use diagnostic tools)
|
|
19
|
+
4. **Only then** implement the fix
|
|
20
|
+
|
|
21
|
+
## Forbidden
|
|
22
|
+
|
|
23
|
+
- Guessing at the cause of a bug
|
|
24
|
+
- "Trying things" to see if they work
|
|
25
|
+
- Hypothesizing without reading code
|
|
26
|
+
- Assuming how an API works without checking docs
|
|
27
|
+
- Iterating blindly — each attempt must be informed by new data
|
|
28
|
+
|
|
29
|
+
**"I think this might be the problem" is NOT acceptable.**
|
|
30
|
+
**"Source X does Y at file:line, we do Z, the difference causes W" IS acceptable.**
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
<!-- Generated by @hivehub/rulebook v5.3.0 — delete this comment to prevent regeneration on `rulebook update` -->
|
|
2
|
-
|
|
3
|
-
# Respect handoff triggers
|
|
4
|
-
|
|
5
|
-
When you receive `additionalContext` mentioning a **handoff trigger**
|
|
6
|
-
(containing phrases like "CONTEXT AT", "invoke /handoff", or
|
|
7
|
-
"session state"), you MUST:
|
|
8
|
-
|
|
9
|
-
1. **Stop** your current task immediately — do not finish the current
|
|
10
|
-
step, do not start a new one.
|
|
11
|
-
2. **Invoke the `/handoff` skill** to write `.rulebook/handoff/_pending.md`
|
|
12
|
-
with: active task, decisions made this session, files touched, next
|
|
13
|
-
steps, and the exact resume command.
|
|
14
|
-
3. **Display the message** `>>> TYPE /clear NOW — your context will be auto-restored <<<`
|
|
15
|
-
prominently so the user sees it.
|
|
16
|
-
4. **Do not continue working** past the handoff message. The user must
|
|
17
|
-
type `/clear` before any further implementation.
|
|
18
|
-
|
|
19
|
-
## Why
|
|
20
|
-
|
|
21
|
-
Sessions degrade as context fills. Research shows that model quality
|
|
22
|
-
at 80%+ context is measurably lower than at 0–50%. The handoff
|
|
23
|
-
mechanism ensures work is preserved and the next session starts fresh
|
|
24
|
-
with full context loaded via the `SessionStart` resume hook.
|
|
25
|
-
|
|
26
|
-
This rule has the **highest precedence** after `git-safety.md`. If a
|
|
27
|
-
handoff trigger fires while you are mid-edit, finish the current
|
|
28
|
-
atomic write (do not leave a file in a broken state), then stop.
|
|
29
|
-
|
|
30
|
-
## What triggers a handoff
|
|
31
|
-
|
|
32
|
-
The `Stop` hook (`check-context-and-handoff.sh`) estimates context
|
|
33
|
-
usage from the JSONL transcript. Two thresholds:
|
|
34
|
-
|
|
35
|
-
- **warn (default 75%)**: advisory — the model should invoke `/handoff`
|
|
36
|
-
and suggest `/clear`.
|
|
37
|
-
- **force (default 90%)**: mandatory — the model MUST invoke `/handoff`
|
|
38
|
-
and MUST NOT continue working.
|
|
39
|
-
|
|
40
|
-
Both thresholds are configurable in `.rulebook/rulebook.json` under
|
|
41
|
-
`handoff.warnThresholdPct` and `handoff.forceThresholdPct`.
|
|
1
|
+
<!-- Generated by @hivehub/rulebook v5.3.0 — delete this comment to prevent regeneration on `rulebook update` -->
|
|
2
|
+
|
|
3
|
+
# Respect handoff triggers
|
|
4
|
+
|
|
5
|
+
When you receive `additionalContext` mentioning a **handoff trigger**
|
|
6
|
+
(containing phrases like "CONTEXT AT", "invoke /handoff", or
|
|
7
|
+
"session state"), you MUST:
|
|
8
|
+
|
|
9
|
+
1. **Stop** your current task immediately — do not finish the current
|
|
10
|
+
step, do not start a new one.
|
|
11
|
+
2. **Invoke the `/handoff` skill** to write `.rulebook/handoff/_pending.md`
|
|
12
|
+
with: active task, decisions made this session, files touched, next
|
|
13
|
+
steps, and the exact resume command.
|
|
14
|
+
3. **Display the message** `>>> TYPE /clear NOW — your context will be auto-restored <<<`
|
|
15
|
+
prominently so the user sees it.
|
|
16
|
+
4. **Do not continue working** past the handoff message. The user must
|
|
17
|
+
type `/clear` before any further implementation.
|
|
18
|
+
|
|
19
|
+
## Why
|
|
20
|
+
|
|
21
|
+
Sessions degrade as context fills. Research shows that model quality
|
|
22
|
+
at 80%+ context is measurably lower than at 0–50%. The handoff
|
|
23
|
+
mechanism ensures work is preserved and the next session starts fresh
|
|
24
|
+
with full context loaded via the `SessionStart` resume hook.
|
|
25
|
+
|
|
26
|
+
This rule has the **highest precedence** after `git-safety.md`. If a
|
|
27
|
+
handoff trigger fires while you are mid-edit, finish the current
|
|
28
|
+
atomic write (do not leave a file in a broken state), then stop.
|
|
29
|
+
|
|
30
|
+
## What triggers a handoff
|
|
31
|
+
|
|
32
|
+
The `Stop` hook (`check-context-and-handoff.sh`) estimates context
|
|
33
|
+
usage from the JSONL transcript. Two thresholds:
|
|
34
|
+
|
|
35
|
+
- **warn (default 75%)**: advisory — the model should invoke `/handoff`
|
|
36
|
+
and suggest `/clear`.
|
|
37
|
+
- **force (default 90%)**: mandatory — the model MUST invoke `/handoff`
|
|
38
|
+
and MUST NOT continue working.
|
|
39
|
+
|
|
40
|
+
Both thresholds are configurable in `.rulebook/rulebook.json` under
|
|
41
|
+
`handoff.warnThresholdPct` and `handoff.forceThresholdPct`.
|