@hivehub/rulebook 5.1.1 → 5.1.3
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/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/README.md +8 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +39 -8
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/agent-template-engine.d.ts.map +1 -1
- package/dist/core/agent-template-engine.js +36 -30
- package/dist/core/agent-template-engine.js.map +1 -1
- package/dist/core/complexity-detector.d.ts.map +1 -1
- package/dist/core/complexity-detector.js +109 -29
- package/dist/core/complexity-detector.js.map +1 -1
- package/dist/core/decision-manager.d.ts.map +1 -1
- package/dist/core/decision-manager.js +2 -7
- package/dist/core/decision-manager.js.map +1 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +28 -28
- package/dist/core/generator.js.map +1 -1
- package/dist/core/indexer/background-indexer.d.ts +1 -0
- package/dist/core/indexer/background-indexer.d.ts.map +1 -1
- package/dist/core/indexer/background-indexer.js +107 -19
- package/dist/core/indexer/background-indexer.js.map +1 -1
- package/dist/core/indexer/indexer-types.d.ts +2 -0
- package/dist/core/indexer/indexer-types.d.ts.map +1 -1
- package/dist/core/knowledge-manager.d.ts.map +1 -1
- package/dist/core/knowledge-manager.js +1 -1
- package/dist/core/knowledge-manager.js.map +1 -1
- package/dist/core/learn-manager.d.ts.map +1 -1
- package/dist/core/learn-manager.js +1 -1
- package/dist/core/learn-manager.js.map +1 -1
- package/dist/core/rule-engine.d.ts.map +1 -1
- package/dist/core/rule-engine.js +1 -3
- package/dist/core/rule-engine.js.map +1 -1
- package/dist/core/task-manager.d.ts.map +1 -1
- package/dist/core/task-manager.js +24 -24
- package/dist/core/task-manager.js.map +1 -1
- package/dist/index.js +23 -7
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts +12 -2
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +100 -30
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/hnsw-index.d.ts.map +1 -1
- package/dist/memory/hnsw-index.js +12 -4
- package/dist/memory/hnsw-index.js.map +1 -1
- package/dist/memory/memory-store.d.ts.map +1 -1
- package/dist/memory/memory-store.js +136 -107
- package/dist/memory/memory-store.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +22 -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/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/core/AGENTS_LEAN.md +25 -25
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +296 -296
- 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/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/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 +156 -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/follow-task-sequence.md +36 -36
- package/templates/rules/git-safety.md +29 -29
- package/templates/rules/incremental-tests.md +29 -29
- package/templates/rules/no-deferred.md +31 -31
- package/templates/rules/no-shortcuts.md +30 -30
- package/templates/rules/research-first.md +30 -30
- 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/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/dev/accessibility/SKILL.md +17 -17
- 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/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
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
<!-- NESTJS:START -->
|
|
2
|
-
# NestJS Framework Rules
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: Align all NestJS services, modules, and controllers with these conventions.
|
|
5
|
-
|
|
6
|
-
## Project Structure
|
|
7
|
-
- Maintain feature-first modules under `src/<feature>/`
|
|
8
|
-
- Keep global providers in `src/common/`
|
|
9
|
-
- Register new modules in `AppModule` and ensure dependency injection consistency
|
|
10
|
-
- Prefer `@nestjs/config` for environment configuration
|
|
11
|
-
|
|
12
|
-
## Quality Gates
|
|
13
|
-
- Lint: `npm run lint`
|
|
14
|
-
- Unit tests: `npm run test`
|
|
15
|
-
- e2e tests: `npm run test:e2e`
|
|
16
|
-
- Build validation: `npm run build`
|
|
17
|
-
- Coverage threshold: **80%+** for service and controller layers
|
|
18
|
-
|
|
19
|
-
## Implementation Guidelines
|
|
20
|
-
- Use DTOs with `class-validator` and `class-transformer`
|
|
21
|
-
- Encapsulate database access in providers (avoid direct repository use in controllers)
|
|
22
|
-
- Document routes with `@nestjs/swagger` when OpenAPI is enabled
|
|
23
|
-
- Keep asynchronous logic wrapped with `try/catch` and map errors to HTTP exceptions
|
|
24
|
-
|
|
25
|
-
## Scripts to Run Before Commit
|
|
26
|
-
```bash
|
|
27
|
-
npm run lint
|
|
28
|
-
npm run test
|
|
29
|
-
npm run test:e2e
|
|
30
|
-
npm run build
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Additional Checks
|
|
34
|
-
- Ensure Circular Dependency detection is clean (`npm run lint -- --max-warnings=0`)
|
|
35
|
-
- Synchronize `.env.example` with actual required variables
|
|
36
|
-
- Maintain aligned versions for Nest core packages (`@nestjs/*`)
|
|
37
|
-
|
|
38
|
-
## Documentation
|
|
39
|
-
- Update `/docs/architecture.md` with new modules and providers
|
|
40
|
-
- Keep OpenAPI spec regenerated via `npm run swagger:generate`
|
|
41
|
-
- Log breaking changes in `CHANGELOG.md`
|
|
42
|
-
|
|
43
|
-
<!-- NESTJS:END -->
|
|
1
|
+
<!-- NESTJS:START -->
|
|
2
|
+
# NestJS Framework Rules
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Align all NestJS services, modules, and controllers with these conventions.
|
|
5
|
+
|
|
6
|
+
## Project Structure
|
|
7
|
+
- Maintain feature-first modules under `src/<feature>/`
|
|
8
|
+
- Keep global providers in `src/common/`
|
|
9
|
+
- Register new modules in `AppModule` and ensure dependency injection consistency
|
|
10
|
+
- Prefer `@nestjs/config` for environment configuration
|
|
11
|
+
|
|
12
|
+
## Quality Gates
|
|
13
|
+
- Lint: `npm run lint`
|
|
14
|
+
- Unit tests: `npm run test`
|
|
15
|
+
- e2e tests: `npm run test:e2e`
|
|
16
|
+
- Build validation: `npm run build`
|
|
17
|
+
- Coverage threshold: **80%+** for service and controller layers
|
|
18
|
+
|
|
19
|
+
## Implementation Guidelines
|
|
20
|
+
- Use DTOs with `class-validator` and `class-transformer`
|
|
21
|
+
- Encapsulate database access in providers (avoid direct repository use in controllers)
|
|
22
|
+
- Document routes with `@nestjs/swagger` when OpenAPI is enabled
|
|
23
|
+
- Keep asynchronous logic wrapped with `try/catch` and map errors to HTTP exceptions
|
|
24
|
+
|
|
25
|
+
## Scripts to Run Before Commit
|
|
26
|
+
```bash
|
|
27
|
+
npm run lint
|
|
28
|
+
npm run test
|
|
29
|
+
npm run test:e2e
|
|
30
|
+
npm run build
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Additional Checks
|
|
34
|
+
- Ensure Circular Dependency detection is clean (`npm run lint -- --max-warnings=0`)
|
|
35
|
+
- Synchronize `.env.example` with actual required variables
|
|
36
|
+
- Maintain aligned versions for Nest core packages (`@nestjs/*`)
|
|
37
|
+
|
|
38
|
+
## Documentation
|
|
39
|
+
- Update `/docs/architecture.md` with new modules and providers
|
|
40
|
+
- Keep OpenAPI spec regenerated via `npm run swagger:generate`
|
|
41
|
+
- Log breaking changes in `CHANGELOG.md`
|
|
42
|
+
|
|
43
|
+
<!-- NESTJS:END -->
|
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
<!-- NEXTJS:START -->
|
|
2
|
-
# Next.js Framework Rules
|
|
3
|
-
|
|
4
|
-
**Language**: TypeScript, JavaScript
|
|
5
|
-
**Version**: Next.js 14+ (App Router)
|
|
6
|
-
|
|
7
|
-
## Setup & Configuration
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
// next.config.ts
|
|
11
|
-
import type { NextConfig } from 'next'
|
|
12
|
-
|
|
13
|
-
const nextConfig: NextConfig = {
|
|
14
|
-
reactStrictMode: true,
|
|
15
|
-
images: {
|
|
16
|
-
domains: ['your-domain.com'],
|
|
17
|
-
},
|
|
18
|
-
env: {
|
|
19
|
-
CUSTOM_KEY: process.env.CUSTOM_KEY,
|
|
20
|
-
},
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export default nextConfig
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Quality Gates
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
# Type check
|
|
30
|
-
npm run type-check # or: tsc --noEmit
|
|
31
|
-
|
|
32
|
-
# Lint
|
|
33
|
-
npm run lint # Next.js ESLint
|
|
34
|
-
|
|
35
|
-
# Format
|
|
36
|
-
npx prettier --check "**/*.{ts,tsx}"
|
|
37
|
-
|
|
38
|
-
# Tests
|
|
39
|
-
npm test # Vitest or Jest
|
|
40
|
-
|
|
41
|
-
# Build
|
|
42
|
-
npm run build # Must succeed
|
|
43
|
-
|
|
44
|
-
# Check bundle size
|
|
45
|
-
npm run build && npx @next/bundle-analyzer
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Best Practices
|
|
49
|
-
|
|
50
|
-
✅ **DO:**
|
|
51
|
-
- Use App Router (app/) for new projects
|
|
52
|
-
- Implement Server Components by default
|
|
53
|
-
- Use Client Components ('use client') only when needed
|
|
54
|
-
- Optimize images with next/image
|
|
55
|
-
- Use dynamic imports for code splitting
|
|
56
|
-
- Implement proper metadata/SEO
|
|
57
|
-
- Use Server Actions for mutations
|
|
58
|
-
- Enable React Strict Mode
|
|
59
|
-
|
|
60
|
-
❌ **DON'T:**
|
|
61
|
-
- Use getServerSideProps/getStaticProps in App Router
|
|
62
|
-
- Fetch on client when server fetch is better
|
|
63
|
-
- Skip image optimization
|
|
64
|
-
- Ignore bundle size
|
|
65
|
-
- Use 'use client' everywhere
|
|
66
|
-
- Hardcode API URLs
|
|
67
|
-
- Skip error boundaries
|
|
68
|
-
|
|
69
|
-
## Project Structure (App Router)
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
app/
|
|
73
|
-
├── layout.tsx # Root layout
|
|
74
|
-
├── page.tsx # Home page
|
|
75
|
-
├── (routes)/
|
|
76
|
-
│ ├── dashboard/
|
|
77
|
-
│ │ ├── layout.tsx
|
|
78
|
-
│ │ └── page.tsx
|
|
79
|
-
│ └── api/
|
|
80
|
-
│ └── users/
|
|
81
|
-
│ └── route.ts
|
|
82
|
-
├── components/
|
|
83
|
-
├── lib/
|
|
84
|
-
└── types/
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Server vs Client Components
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
// Server Component (default)
|
|
91
|
-
async function ServerComponent() {
|
|
92
|
-
const data = await fetch('https://api.example.com/data')
|
|
93
|
-
return <div>{data}</div>
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Client Component
|
|
97
|
-
'use client'
|
|
98
|
-
import { useState } from 'react'
|
|
99
|
-
|
|
100
|
-
function ClientComponent() {
|
|
101
|
-
const [count, setCount] = useState(0)
|
|
102
|
-
return <button onClick={() => setCount(count + 1)}>{count}</button>
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Route Handlers (API Routes)
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
// app/api/users/route.ts
|
|
110
|
-
import { NextRequest, NextResponse } from 'next/server'
|
|
111
|
-
|
|
112
|
-
export async function GET(request: NextRequest) {
|
|
113
|
-
const searchParams = request.nextUrl.searchParams
|
|
114
|
-
const id = searchParams.get('id')
|
|
115
|
-
|
|
116
|
-
return NextResponse.json({ id })
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export async function POST(request: NextRequest) {
|
|
120
|
-
const body = await request.json()
|
|
121
|
-
// Handle POST
|
|
122
|
-
return NextResponse.json({ success: true })
|
|
123
|
-
}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
<!-- NEXTJS:END -->
|
|
127
|
-
|
|
1
|
+
<!-- NEXTJS:START -->
|
|
2
|
+
# Next.js Framework Rules
|
|
3
|
+
|
|
4
|
+
**Language**: TypeScript, JavaScript
|
|
5
|
+
**Version**: Next.js 14+ (App Router)
|
|
6
|
+
|
|
7
|
+
## Setup & Configuration
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
// next.config.ts
|
|
11
|
+
import type { NextConfig } from 'next'
|
|
12
|
+
|
|
13
|
+
const nextConfig: NextConfig = {
|
|
14
|
+
reactStrictMode: true,
|
|
15
|
+
images: {
|
|
16
|
+
domains: ['your-domain.com'],
|
|
17
|
+
},
|
|
18
|
+
env: {
|
|
19
|
+
CUSTOM_KEY: process.env.CUSTOM_KEY,
|
|
20
|
+
},
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default nextConfig
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Quality Gates
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Type check
|
|
30
|
+
npm run type-check # or: tsc --noEmit
|
|
31
|
+
|
|
32
|
+
# Lint
|
|
33
|
+
npm run lint # Next.js ESLint
|
|
34
|
+
|
|
35
|
+
# Format
|
|
36
|
+
npx prettier --check "**/*.{ts,tsx}"
|
|
37
|
+
|
|
38
|
+
# Tests
|
|
39
|
+
npm test # Vitest or Jest
|
|
40
|
+
|
|
41
|
+
# Build
|
|
42
|
+
npm run build # Must succeed
|
|
43
|
+
|
|
44
|
+
# Check bundle size
|
|
45
|
+
npm run build && npx @next/bundle-analyzer
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Best Practices
|
|
49
|
+
|
|
50
|
+
✅ **DO:**
|
|
51
|
+
- Use App Router (app/) for new projects
|
|
52
|
+
- Implement Server Components by default
|
|
53
|
+
- Use Client Components ('use client') only when needed
|
|
54
|
+
- Optimize images with next/image
|
|
55
|
+
- Use dynamic imports for code splitting
|
|
56
|
+
- Implement proper metadata/SEO
|
|
57
|
+
- Use Server Actions for mutations
|
|
58
|
+
- Enable React Strict Mode
|
|
59
|
+
|
|
60
|
+
❌ **DON'T:**
|
|
61
|
+
- Use getServerSideProps/getStaticProps in App Router
|
|
62
|
+
- Fetch on client when server fetch is better
|
|
63
|
+
- Skip image optimization
|
|
64
|
+
- Ignore bundle size
|
|
65
|
+
- Use 'use client' everywhere
|
|
66
|
+
- Hardcode API URLs
|
|
67
|
+
- Skip error boundaries
|
|
68
|
+
|
|
69
|
+
## Project Structure (App Router)
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
app/
|
|
73
|
+
├── layout.tsx # Root layout
|
|
74
|
+
├── page.tsx # Home page
|
|
75
|
+
├── (routes)/
|
|
76
|
+
│ ├── dashboard/
|
|
77
|
+
│ │ ├── layout.tsx
|
|
78
|
+
│ │ └── page.tsx
|
|
79
|
+
│ └── api/
|
|
80
|
+
│ └── users/
|
|
81
|
+
│ └── route.ts
|
|
82
|
+
├── components/
|
|
83
|
+
├── lib/
|
|
84
|
+
└── types/
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Server vs Client Components
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// Server Component (default)
|
|
91
|
+
async function ServerComponent() {
|
|
92
|
+
const data = await fetch('https://api.example.com/data')
|
|
93
|
+
return <div>{data}</div>
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Client Component
|
|
97
|
+
'use client'
|
|
98
|
+
import { useState } from 'react'
|
|
99
|
+
|
|
100
|
+
function ClientComponent() {
|
|
101
|
+
const [count, setCount] = useState(0)
|
|
102
|
+
return <button onClick={() => setCount(count + 1)}>{count}</button>
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Route Handlers (API Routes)
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
// app/api/users/route.ts
|
|
110
|
+
import { NextRequest, NextResponse } from 'next/server'
|
|
111
|
+
|
|
112
|
+
export async function GET(request: NextRequest) {
|
|
113
|
+
const searchParams = request.nextUrl.searchParams
|
|
114
|
+
const id = searchParams.get('id')
|
|
115
|
+
|
|
116
|
+
return NextResponse.json({ id })
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export async function POST(request: NextRequest) {
|
|
120
|
+
const body = await request.json()
|
|
121
|
+
// Handle POST
|
|
122
|
+
return NextResponse.json({ success: true })
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
<!-- NEXTJS:END -->
|
|
127
|
+
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
<!-- NUXT:START -->
|
|
2
|
-
# Nuxt Framework Rules
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: Nuxt 3 applications must keep these standards to ensure SSR quality.
|
|
5
|
-
|
|
6
|
-
## Quality Commands
|
|
7
|
-
- Lint: `npm run lint`
|
|
8
|
-
- Type check: `npm run type-check`
|
|
9
|
-
- Unit tests: `npm run test`
|
|
10
|
-
- Build for production: `npm run build`
|
|
11
|
-
- Generate static output (if applicable): `npm run generate`
|
|
12
|
-
|
|
13
|
-
## Project Structure
|
|
14
|
-
- Define routes with file-based routing under `pages/`
|
|
15
|
-
- Keep server API handlers within `server/api/`
|
|
16
|
-
- Organize composables in `composables/`
|
|
17
|
-
- Place reusable UI components in `components/`
|
|
18
|
-
- Store state via Pinia modules in `stores/`
|
|
19
|
-
|
|
20
|
-
## Implementation Guidelines
|
|
21
|
-
- Use runtime config via `useRuntimeConfig()` for secrets
|
|
22
|
-
- SSR-safe operations only inside `onServerPrefetch`/server routes
|
|
23
|
-
- Prefer `definePageMeta` to control page-level features
|
|
24
|
-
- Maintain i18n messages in `/locales`
|
|
25
|
-
- Cache heavy computations with Nitro storage if needed
|
|
26
|
-
|
|
27
|
-
## Pre-Commit Commands
|
|
28
|
-
```bash
|
|
29
|
-
npm run lint
|
|
30
|
-
npm run type-check
|
|
31
|
-
npm run test
|
|
32
|
-
npm run build
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Documentation
|
|
36
|
-
- Keep `/docs/nuxt-architecture.md` current with route layout and middleware
|
|
37
|
-
- Document server API contracts in `/docs/api.md`
|
|
38
|
-
- Capture deployment steps (SSR vs static) in `/docs/deployment.md`
|
|
39
|
-
|
|
40
|
-
<!-- NUXT:END -->
|
|
1
|
+
<!-- NUXT:START -->
|
|
2
|
+
# Nuxt Framework Rules
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Nuxt 3 applications must keep these standards to ensure SSR quality.
|
|
5
|
+
|
|
6
|
+
## Quality Commands
|
|
7
|
+
- Lint: `npm run lint`
|
|
8
|
+
- Type check: `npm run type-check`
|
|
9
|
+
- Unit tests: `npm run test`
|
|
10
|
+
- Build for production: `npm run build`
|
|
11
|
+
- Generate static output (if applicable): `npm run generate`
|
|
12
|
+
|
|
13
|
+
## Project Structure
|
|
14
|
+
- Define routes with file-based routing under `pages/`
|
|
15
|
+
- Keep server API handlers within `server/api/`
|
|
16
|
+
- Organize composables in `composables/`
|
|
17
|
+
- Place reusable UI components in `components/`
|
|
18
|
+
- Store state via Pinia modules in `stores/`
|
|
19
|
+
|
|
20
|
+
## Implementation Guidelines
|
|
21
|
+
- Use runtime config via `useRuntimeConfig()` for secrets
|
|
22
|
+
- SSR-safe operations only inside `onServerPrefetch`/server routes
|
|
23
|
+
- Prefer `definePageMeta` to control page-level features
|
|
24
|
+
- Maintain i18n messages in `/locales`
|
|
25
|
+
- Cache heavy computations with Nitro storage if needed
|
|
26
|
+
|
|
27
|
+
## Pre-Commit Commands
|
|
28
|
+
```bash
|
|
29
|
+
npm run lint
|
|
30
|
+
npm run type-check
|
|
31
|
+
npm run test
|
|
32
|
+
npm run build
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Documentation
|
|
36
|
+
- Keep `/docs/nuxt-architecture.md` current with route layout and middleware
|
|
37
|
+
- Document server API contracts in `/docs/api.md`
|
|
38
|
+
- Capture deployment steps (SSR vs static) in `/docs/deployment.md`
|
|
39
|
+
|
|
40
|
+
<!-- NUXT:END -->
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
<!-- RAILS:START -->
|
|
2
|
-
# Ruby on Rails Framework Rules
|
|
3
|
-
|
|
4
|
-
**Language**: Ruby
|
|
5
|
-
**Version**: Rails 7.0+
|
|
6
|
-
|
|
7
|
-
## Setup & Configuration
|
|
8
|
-
|
|
9
|
-
```ruby
|
|
10
|
-
# config/database.yml
|
|
11
|
-
production:
|
|
12
|
-
url: <%= ENV['DATABASE_URL'] %>
|
|
13
|
-
|
|
14
|
-
# config/environments/production.rb
|
|
15
|
-
config.force_ssl = true
|
|
16
|
-
config.log_level = :info
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Quality Gates
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# Code quality
|
|
23
|
-
bundle exec rubocop # Lint
|
|
24
|
-
bundle exec brakeman # Security scan
|
|
25
|
-
|
|
26
|
-
# Tests
|
|
27
|
-
bundle exec rspec # Run tests
|
|
28
|
-
bundle exec rspec --format documentation # Verbose
|
|
29
|
-
|
|
30
|
-
# Type check (optional)
|
|
31
|
-
bundle exec steep check # Static typing
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Best Practices
|
|
35
|
-
|
|
36
|
-
✅ **DO:**
|
|
37
|
-
- Use strong parameters
|
|
38
|
-
- Implement authentication (Devise/custom)
|
|
39
|
-
- Use ActiveRecord callbacks sparingly
|
|
40
|
-
- Write RSpec/Minitest tests
|
|
41
|
-
- Use database migrations
|
|
42
|
-
- Enable CSRF protection
|
|
43
|
-
|
|
44
|
-
❌ **DON'T:**
|
|
45
|
-
- Skip validations in models
|
|
46
|
-
- Use `params` without permit
|
|
47
|
-
- Store secrets in code
|
|
48
|
-
- Skip database indexes
|
|
49
|
-
- Ignore N+1 queries
|
|
50
|
-
|
|
51
|
-
## Project Structure
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
app/
|
|
55
|
-
├── controllers/
|
|
56
|
-
├── models/
|
|
57
|
-
├── views/
|
|
58
|
-
├── jobs/
|
|
59
|
-
└── mailers/
|
|
60
|
-
config/
|
|
61
|
-
db/
|
|
62
|
-
spec/
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
<!-- RAILS:END -->
|
|
66
|
-
|
|
1
|
+
<!-- RAILS:START -->
|
|
2
|
+
# Ruby on Rails Framework Rules
|
|
3
|
+
|
|
4
|
+
**Language**: Ruby
|
|
5
|
+
**Version**: Rails 7.0+
|
|
6
|
+
|
|
7
|
+
## Setup & Configuration
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
# config/database.yml
|
|
11
|
+
production:
|
|
12
|
+
url: <%= ENV['DATABASE_URL'] %>
|
|
13
|
+
|
|
14
|
+
# config/environments/production.rb
|
|
15
|
+
config.force_ssl = true
|
|
16
|
+
config.log_level = :info
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Quality Gates
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Code quality
|
|
23
|
+
bundle exec rubocop # Lint
|
|
24
|
+
bundle exec brakeman # Security scan
|
|
25
|
+
|
|
26
|
+
# Tests
|
|
27
|
+
bundle exec rspec # Run tests
|
|
28
|
+
bundle exec rspec --format documentation # Verbose
|
|
29
|
+
|
|
30
|
+
# Type check (optional)
|
|
31
|
+
bundle exec steep check # Static typing
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Best Practices
|
|
35
|
+
|
|
36
|
+
✅ **DO:**
|
|
37
|
+
- Use strong parameters
|
|
38
|
+
- Implement authentication (Devise/custom)
|
|
39
|
+
- Use ActiveRecord callbacks sparingly
|
|
40
|
+
- Write RSpec/Minitest tests
|
|
41
|
+
- Use database migrations
|
|
42
|
+
- Enable CSRF protection
|
|
43
|
+
|
|
44
|
+
❌ **DON'T:**
|
|
45
|
+
- Skip validations in models
|
|
46
|
+
- Use `params` without permit
|
|
47
|
+
- Store secrets in code
|
|
48
|
+
- Skip database indexes
|
|
49
|
+
- Ignore N+1 queries
|
|
50
|
+
|
|
51
|
+
## Project Structure
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
app/
|
|
55
|
+
├── controllers/
|
|
56
|
+
├── models/
|
|
57
|
+
├── views/
|
|
58
|
+
├── jobs/
|
|
59
|
+
└── mailers/
|
|
60
|
+
config/
|
|
61
|
+
db/
|
|
62
|
+
spec/
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
<!-- RAILS:END -->
|
|
66
|
+
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
<!-- REACT:START -->
|
|
2
|
-
# React Framework Rules
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: React applications must comply with these quality bars.
|
|
5
|
-
|
|
6
|
-
## Quality Commands
|
|
7
|
-
- Lint & type check: `npm run lint` + `npm run type-check`
|
|
8
|
-
- Unit/integration tests: `npm run test -- --watch=false`
|
|
9
|
-
- Build: `npm run build`
|
|
10
|
-
- Bundle analysis (optional): `npm run analyze`
|
|
11
|
-
|
|
12
|
-
## Project Structure
|
|
13
|
-
- Group features under `src/features/<name>/`
|
|
14
|
-
- Maintain shared UI primitives in `src/components`
|
|
15
|
-
- Keep hooks in `src/hooks`
|
|
16
|
-
- Centralize state management in `src/state` (Redux/Zustand/Recoil)
|
|
17
|
-
|
|
18
|
-
## Implementation Guidelines
|
|
19
|
-
- Use TypeScript everywhere (no implicit `any`)
|
|
20
|
-
- Prefer functional components with hooks
|
|
21
|
-
- Co-locate component tests as `<Component>.test.tsx`
|
|
22
|
-
- Use React Query/SWR for server state, keep caches invalidated on mutations
|
|
23
|
-
- Wrap new pages with error boundaries and suspense where needed
|
|
24
|
-
|
|
25
|
-
## Pre-Commit Checklist
|
|
26
|
-
```bash
|
|
27
|
-
npm run lint
|
|
28
|
-
npm run type-check
|
|
29
|
-
npm run test -- --watch=false
|
|
30
|
-
npm run build
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Documentation
|
|
34
|
-
- Update `/docs/react-architecture.md` when routes or global providers change
|
|
35
|
-
- Record reusable components in Storybook or `/docs/ui-components.md`
|
|
36
|
-
- Capture performance regressions in `/docs/performance.md`
|
|
37
|
-
|
|
38
|
-
<!-- REACT:END -->
|
|
1
|
+
<!-- REACT:START -->
|
|
2
|
+
# React Framework Rules
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: React applications must comply with these quality bars.
|
|
5
|
+
|
|
6
|
+
## Quality Commands
|
|
7
|
+
- Lint & type check: `npm run lint` + `npm run type-check`
|
|
8
|
+
- Unit/integration tests: `npm run test -- --watch=false`
|
|
9
|
+
- Build: `npm run build`
|
|
10
|
+
- Bundle analysis (optional): `npm run analyze`
|
|
11
|
+
|
|
12
|
+
## Project Structure
|
|
13
|
+
- Group features under `src/features/<name>/`
|
|
14
|
+
- Maintain shared UI primitives in `src/components`
|
|
15
|
+
- Keep hooks in `src/hooks`
|
|
16
|
+
- Centralize state management in `src/state` (Redux/Zustand/Recoil)
|
|
17
|
+
|
|
18
|
+
## Implementation Guidelines
|
|
19
|
+
- Use TypeScript everywhere (no implicit `any`)
|
|
20
|
+
- Prefer functional components with hooks
|
|
21
|
+
- Co-locate component tests as `<Component>.test.tsx`
|
|
22
|
+
- Use React Query/SWR for server state, keep caches invalidated on mutations
|
|
23
|
+
- Wrap new pages with error boundaries and suspense where needed
|
|
24
|
+
|
|
25
|
+
## Pre-Commit Checklist
|
|
26
|
+
```bash
|
|
27
|
+
npm run lint
|
|
28
|
+
npm run type-check
|
|
29
|
+
npm run test -- --watch=false
|
|
30
|
+
npm run build
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Documentation
|
|
34
|
+
- Update `/docs/react-architecture.md` when routes or global providers change
|
|
35
|
+
- Record reusable components in Storybook or `/docs/ui-components.md`
|
|
36
|
+
- Capture performance regressions in `/docs/performance.md`
|
|
37
|
+
|
|
38
|
+
<!-- REACT:END -->
|