@hivehub/rulebook 5.4.0 → 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 +393 -393
- package/dist/index.js +0 -0
- package/dist/mcp/rulebook-server.js +0 -0
- 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/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 -143
- package/templates/hooks/terse-activate.sh +197 -197
- package/templates/hooks/terse-mode-tracker.ps1 +153 -153
- package/templates/hooks/terse-mode-tracker.sh +187 -187
- 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 -208
- package/templates/modules/SERENA.md +337 -337
- package/templates/modules/SUPABASE.md +223 -223
- package/templates/modules/SYNAP.md +69 -69
- package/templates/modules/VECTORIZER.md +63 -63
- package/templates/modules/sequential-thinking.md +42 -42
- package/templates/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 -116
- package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
- package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
- package/templates/skills/dev/accessibility/SKILL.md +17 -17
- package/templates/skills/dev/analysis/SKILL.md +19 -19
- package/templates/skills/dev/api-design/SKILL.md +15 -15
- package/templates/skills/dev/architect/SKILL.md +17 -17
- package/templates/skills/dev/build-fix/SKILL.md +17 -17
- package/templates/skills/dev/db-design/SKILL.md +15 -15
- package/templates/skills/dev/debug/SKILL.md +16 -16
- package/templates/skills/dev/deploy/SKILL.md +17 -17
- package/templates/skills/dev/docs/SKILL.md +17 -17
- package/templates/skills/dev/handoff/SKILL.md +27 -27
- package/templates/skills/dev/migrate/SKILL.md +15 -15
- package/templates/skills/dev/perf/SKILL.md +17 -17
- package/templates/skills/dev/refactor/SKILL.md +17 -17
- package/templates/skills/dev/research/SKILL.md +14 -14
- package/templates/skills/dev/review/SKILL.md +18 -18
- package/templates/skills/dev/security-audit/SKILL.md +17 -17
- package/templates/skills/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/hooks/terse-activate.d.ts +0 -59
- package/dist/hooks/terse-activate.d.ts.map +0 -1
- package/dist/hooks/terse-activate.js +0 -149
- package/dist/hooks/terse-activate.js.map +0 -1
- package/dist/hooks/terse-config.d.ts +0 -51
- package/dist/hooks/terse-config.d.ts.map +0 -1
- package/dist/hooks/terse-config.js +0 -130
- package/dist/hooks/terse-config.js.map +0 -1
- package/dist/hooks/terse-mode-tracker.d.ts +0 -78
- package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
- package/dist/hooks/terse-mode-tracker.js +0 -213
- package/dist/hooks/terse-mode-tracker.js.map +0 -1
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
<!-- DJANGO:START -->
|
|
2
|
-
# Django Framework Rules
|
|
3
|
-
|
|
4
|
-
**Language**: Python
|
|
5
|
-
**Version**: Django 4.2+ (LTS) or 5.0+
|
|
6
|
-
|
|
7
|
-
## Setup & Configuration
|
|
8
|
-
|
|
9
|
-
```python
|
|
10
|
-
# settings.py
|
|
11
|
-
SECRET_KEY = env('SECRET_KEY') # Never hardcode
|
|
12
|
-
DEBUG = env.bool('DEBUG', default=False)
|
|
13
|
-
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
|
|
14
|
-
|
|
15
|
-
INSTALLED_APPS = [
|
|
16
|
-
# Django apps
|
|
17
|
-
'django.contrib.admin',
|
|
18
|
-
'django.contrib.auth',
|
|
19
|
-
# Third-party
|
|
20
|
-
'rest_framework',
|
|
21
|
-
'corsheaders',
|
|
22
|
-
# Local apps
|
|
23
|
-
'apps.users',
|
|
24
|
-
]
|
|
25
|
-
|
|
26
|
-
DATABASES = {
|
|
27
|
-
'default': env.db('DATABASE_URL') # Use django-environ
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Quality Gates
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Code quality
|
|
35
|
-
black . # Format
|
|
36
|
-
ruff check . # Lint
|
|
37
|
-
mypy . # Type check
|
|
38
|
-
|
|
39
|
-
# Tests
|
|
40
|
-
python manage.py test # Run tests
|
|
41
|
-
pytest --cov=apps --cov-report=html # With coverage
|
|
42
|
-
|
|
43
|
-
# Security
|
|
44
|
-
python manage.py check --deploy # Production checks
|
|
45
|
-
bandit -r apps/ # Security scan
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Best Practices
|
|
49
|
-
|
|
50
|
-
✅ **DO:**
|
|
51
|
-
- Use Class-Based Views (CBVs) or Django REST Framework ViewSets
|
|
52
|
-
- Implement custom User model from start
|
|
53
|
-
- Use Django ORM properly (select_related, prefetch_related)
|
|
54
|
-
- Enable CSRF protection
|
|
55
|
-
- Use environment variables for secrets
|
|
56
|
-
- Write tests for views, models, and forms
|
|
57
|
-
|
|
58
|
-
❌ **DON'T:**
|
|
59
|
-
- Use `DEBUG=True` in production
|
|
60
|
-
- Store secrets in settings.py
|
|
61
|
-
- Use raw SQL without parameterization
|
|
62
|
-
- Skip migrations
|
|
63
|
-
- Ignore security middleware
|
|
64
|
-
|
|
65
|
-
## Project Structure
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
project/
|
|
69
|
-
├── manage.py
|
|
70
|
-
├── requirements.txt
|
|
71
|
-
├── apps/
|
|
72
|
-
│ ├── users/
|
|
73
|
-
│ ├── api/
|
|
74
|
-
│ └── core/
|
|
75
|
-
├── config/
|
|
76
|
-
│ ├── settings.py
|
|
77
|
-
│ ├── urls.py
|
|
78
|
-
│ └── wsgi.py
|
|
79
|
-
└── tests/
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
<!-- DJANGO:END -->
|
|
83
|
-
|
|
1
|
+
<!-- DJANGO:START -->
|
|
2
|
+
# Django Framework Rules
|
|
3
|
+
|
|
4
|
+
**Language**: Python
|
|
5
|
+
**Version**: Django 4.2+ (LTS) or 5.0+
|
|
6
|
+
|
|
7
|
+
## Setup & Configuration
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
# settings.py
|
|
11
|
+
SECRET_KEY = env('SECRET_KEY') # Never hardcode
|
|
12
|
+
DEBUG = env.bool('DEBUG', default=False)
|
|
13
|
+
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
|
|
14
|
+
|
|
15
|
+
INSTALLED_APPS = [
|
|
16
|
+
# Django apps
|
|
17
|
+
'django.contrib.admin',
|
|
18
|
+
'django.contrib.auth',
|
|
19
|
+
# Third-party
|
|
20
|
+
'rest_framework',
|
|
21
|
+
'corsheaders',
|
|
22
|
+
# Local apps
|
|
23
|
+
'apps.users',
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
DATABASES = {
|
|
27
|
+
'default': env.db('DATABASE_URL') # Use django-environ
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Quality Gates
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Code quality
|
|
35
|
+
black . # Format
|
|
36
|
+
ruff check . # Lint
|
|
37
|
+
mypy . # Type check
|
|
38
|
+
|
|
39
|
+
# Tests
|
|
40
|
+
python manage.py test # Run tests
|
|
41
|
+
pytest --cov=apps --cov-report=html # With coverage
|
|
42
|
+
|
|
43
|
+
# Security
|
|
44
|
+
python manage.py check --deploy # Production checks
|
|
45
|
+
bandit -r apps/ # Security scan
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Best Practices
|
|
49
|
+
|
|
50
|
+
✅ **DO:**
|
|
51
|
+
- Use Class-Based Views (CBVs) or Django REST Framework ViewSets
|
|
52
|
+
- Implement custom User model from start
|
|
53
|
+
- Use Django ORM properly (select_related, prefetch_related)
|
|
54
|
+
- Enable CSRF protection
|
|
55
|
+
- Use environment variables for secrets
|
|
56
|
+
- Write tests for views, models, and forms
|
|
57
|
+
|
|
58
|
+
❌ **DON'T:**
|
|
59
|
+
- Use `DEBUG=True` in production
|
|
60
|
+
- Store secrets in settings.py
|
|
61
|
+
- Use raw SQL without parameterization
|
|
62
|
+
- Skip migrations
|
|
63
|
+
- Ignore security middleware
|
|
64
|
+
|
|
65
|
+
## Project Structure
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
project/
|
|
69
|
+
├── manage.py
|
|
70
|
+
├── requirements.txt
|
|
71
|
+
├── apps/
|
|
72
|
+
│ ├── users/
|
|
73
|
+
│ ├── api/
|
|
74
|
+
│ └── core/
|
|
75
|
+
├── config/
|
|
76
|
+
│ ├── settings.py
|
|
77
|
+
│ ├── urls.py
|
|
78
|
+
│ └── wsgi.py
|
|
79
|
+
└── tests/
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
<!-- DJANGO:END -->
|
|
83
|
+
|
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
<!-- ELECTRON:START -->
|
|
2
|
-
# Electron Framework Rules
|
|
3
|
-
|
|
4
|
-
**Language**: TypeScript, JavaScript
|
|
5
|
-
**Version**: Electron 28+
|
|
6
|
-
|
|
7
|
-
## Setup & Configuration
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
// main.ts (Main Process)
|
|
11
|
-
import { app, BrowserWindow } from 'electron'
|
|
12
|
-
import path from 'path'
|
|
13
|
-
|
|
14
|
-
function createWindow() {
|
|
15
|
-
const win = new BrowserWindow({
|
|
16
|
-
width: 1200,
|
|
17
|
-
height: 800,
|
|
18
|
-
webPreferences: {
|
|
19
|
-
preload: path.join(__dirname, 'preload.js'),
|
|
20
|
-
contextIsolation: true,
|
|
21
|
-
nodeIntegration: false,
|
|
22
|
-
},
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
win.loadFile('index.html')
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
app.whenReady().then(createWindow)
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Quality Gates
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Type check
|
|
35
|
-
npm run type-check
|
|
36
|
-
|
|
37
|
-
# Lint
|
|
38
|
-
npm run lint
|
|
39
|
-
|
|
40
|
-
# Tests
|
|
41
|
-
npm test
|
|
42
|
-
|
|
43
|
-
# Build
|
|
44
|
-
npm run build # Compile TypeScript
|
|
45
|
-
npm run package # Package app
|
|
46
|
-
npm run make # Create distributables
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Best Practices
|
|
50
|
-
|
|
51
|
-
✅ **DO:**
|
|
52
|
-
- Use contextIsolation: true
|
|
53
|
-
- Disable nodeIntegration
|
|
54
|
-
- Use preload scripts for IPC
|
|
55
|
-
- Implement auto-updates (electron-updater)
|
|
56
|
-
- Sign and notarize apps (production)
|
|
57
|
-
- Use Content Security Policy
|
|
58
|
-
- Implement proper error handling
|
|
59
|
-
- Separate main and renderer processes
|
|
60
|
-
|
|
61
|
-
❌ **DON'T:**
|
|
62
|
-
- Enable nodeIntegration in renderer
|
|
63
|
-
- Skip contextIsolation
|
|
64
|
-
- Use remote module (deprecated)
|
|
65
|
-
- Ignore security warnings
|
|
66
|
-
- Skip code signing
|
|
67
|
-
- Load remote content without CSP
|
|
68
|
-
- Use synchronous IPC
|
|
69
|
-
- Hardcode credentials
|
|
70
|
-
|
|
71
|
-
## Project Structure
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
src/
|
|
75
|
-
├── main/
|
|
76
|
-
│ ├── main.ts # Main process
|
|
77
|
-
│ ├── preload.ts # Preload script
|
|
78
|
-
│ └── ipc/ # IPC handlers
|
|
79
|
-
├── renderer/
|
|
80
|
-
│ ├── index.html
|
|
81
|
-
│ ├── renderer.ts
|
|
82
|
-
│ └── components/
|
|
83
|
-
└── shared/
|
|
84
|
-
└── types.ts
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## IPC Communication
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
// preload.ts
|
|
91
|
-
import { contextBridge, ipcRenderer } from 'electron'
|
|
92
|
-
|
|
93
|
-
contextBridge.exposeInMainWorld('electronAPI', {
|
|
94
|
-
sendMessage: (message: string) => ipcRenderer.send('message', message),
|
|
95
|
-
onReply: (callback: (reply: string) => void) =>
|
|
96
|
-
ipcRenderer.on('reply', (_event, reply) => callback(reply)),
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
// main.ts
|
|
100
|
-
import { ipcMain } from 'electron'
|
|
101
|
-
|
|
102
|
-
ipcMain.on('message', (event, message) => {
|
|
103
|
-
console.log(message)
|
|
104
|
-
event.reply('reply', 'Message received')
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
// renderer.ts
|
|
108
|
-
declare global {
|
|
109
|
-
interface Window {
|
|
110
|
-
electronAPI: {
|
|
111
|
-
sendMessage: (message: string) => void
|
|
112
|
-
onReply: (callback: (reply: string) => void) => void
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
window.electronAPI.sendMessage('Hello from renderer')
|
|
118
|
-
window.electronAPI.onReply((reply) => console.log(reply))
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Security Checklist
|
|
122
|
-
|
|
123
|
-
```typescript
|
|
124
|
-
// ✅ Good security configuration
|
|
125
|
-
const win = new BrowserWindow({
|
|
126
|
-
webPreferences: {
|
|
127
|
-
contextIsolation: true, // ✅ MUST enable
|
|
128
|
-
nodeIntegration: false, // ✅ MUST disable
|
|
129
|
-
sandbox: true, // ✅ Enable sandbox
|
|
130
|
-
webSecurity: true, // ✅ Enable web security
|
|
131
|
-
allowRunningInsecureContent: false, // ✅ Block insecure content
|
|
132
|
-
},
|
|
133
|
-
})
|
|
134
|
-
|
|
135
|
-
// Content Security Policy
|
|
136
|
-
session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
|
|
137
|
-
callback({
|
|
138
|
-
responseHeaders: {
|
|
139
|
-
...details.responseHeaders,
|
|
140
|
-
'Content-Security-Policy': ["default-src 'self'"]
|
|
141
|
-
}
|
|
142
|
-
})
|
|
143
|
-
})
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
<!-- ELECTRON:END -->
|
|
147
|
-
|
|
1
|
+
<!-- ELECTRON:START -->
|
|
2
|
+
# Electron Framework Rules
|
|
3
|
+
|
|
4
|
+
**Language**: TypeScript, JavaScript
|
|
5
|
+
**Version**: Electron 28+
|
|
6
|
+
|
|
7
|
+
## Setup & Configuration
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
// main.ts (Main Process)
|
|
11
|
+
import { app, BrowserWindow } from 'electron'
|
|
12
|
+
import path from 'path'
|
|
13
|
+
|
|
14
|
+
function createWindow() {
|
|
15
|
+
const win = new BrowserWindow({
|
|
16
|
+
width: 1200,
|
|
17
|
+
height: 800,
|
|
18
|
+
webPreferences: {
|
|
19
|
+
preload: path.join(__dirname, 'preload.js'),
|
|
20
|
+
contextIsolation: true,
|
|
21
|
+
nodeIntegration: false,
|
|
22
|
+
},
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
win.loadFile('index.html')
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
app.whenReady().then(createWindow)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Quality Gates
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Type check
|
|
35
|
+
npm run type-check
|
|
36
|
+
|
|
37
|
+
# Lint
|
|
38
|
+
npm run lint
|
|
39
|
+
|
|
40
|
+
# Tests
|
|
41
|
+
npm test
|
|
42
|
+
|
|
43
|
+
# Build
|
|
44
|
+
npm run build # Compile TypeScript
|
|
45
|
+
npm run package # Package app
|
|
46
|
+
npm run make # Create distributables
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
✅ **DO:**
|
|
52
|
+
- Use contextIsolation: true
|
|
53
|
+
- Disable nodeIntegration
|
|
54
|
+
- Use preload scripts for IPC
|
|
55
|
+
- Implement auto-updates (electron-updater)
|
|
56
|
+
- Sign and notarize apps (production)
|
|
57
|
+
- Use Content Security Policy
|
|
58
|
+
- Implement proper error handling
|
|
59
|
+
- Separate main and renderer processes
|
|
60
|
+
|
|
61
|
+
❌ **DON'T:**
|
|
62
|
+
- Enable nodeIntegration in renderer
|
|
63
|
+
- Skip contextIsolation
|
|
64
|
+
- Use remote module (deprecated)
|
|
65
|
+
- Ignore security warnings
|
|
66
|
+
- Skip code signing
|
|
67
|
+
- Load remote content without CSP
|
|
68
|
+
- Use synchronous IPC
|
|
69
|
+
- Hardcode credentials
|
|
70
|
+
|
|
71
|
+
## Project Structure
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
src/
|
|
75
|
+
├── main/
|
|
76
|
+
│ ├── main.ts # Main process
|
|
77
|
+
│ ├── preload.ts # Preload script
|
|
78
|
+
│ └── ipc/ # IPC handlers
|
|
79
|
+
├── renderer/
|
|
80
|
+
│ ├── index.html
|
|
81
|
+
│ ├── renderer.ts
|
|
82
|
+
│ └── components/
|
|
83
|
+
└── shared/
|
|
84
|
+
└── types.ts
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## IPC Communication
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// preload.ts
|
|
91
|
+
import { contextBridge, ipcRenderer } from 'electron'
|
|
92
|
+
|
|
93
|
+
contextBridge.exposeInMainWorld('electronAPI', {
|
|
94
|
+
sendMessage: (message: string) => ipcRenderer.send('message', message),
|
|
95
|
+
onReply: (callback: (reply: string) => void) =>
|
|
96
|
+
ipcRenderer.on('reply', (_event, reply) => callback(reply)),
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
// main.ts
|
|
100
|
+
import { ipcMain } from 'electron'
|
|
101
|
+
|
|
102
|
+
ipcMain.on('message', (event, message) => {
|
|
103
|
+
console.log(message)
|
|
104
|
+
event.reply('reply', 'Message received')
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
// renderer.ts
|
|
108
|
+
declare global {
|
|
109
|
+
interface Window {
|
|
110
|
+
electronAPI: {
|
|
111
|
+
sendMessage: (message: string) => void
|
|
112
|
+
onReply: (callback: (reply: string) => void) => void
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
window.electronAPI.sendMessage('Hello from renderer')
|
|
118
|
+
window.electronAPI.onReply((reply) => console.log(reply))
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Security Checklist
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
// ✅ Good security configuration
|
|
125
|
+
const win = new BrowserWindow({
|
|
126
|
+
webPreferences: {
|
|
127
|
+
contextIsolation: true, // ✅ MUST enable
|
|
128
|
+
nodeIntegration: false, // ✅ MUST disable
|
|
129
|
+
sandbox: true, // ✅ Enable sandbox
|
|
130
|
+
webSecurity: true, // ✅ Enable web security
|
|
131
|
+
allowRunningInsecureContent: false, // ✅ Block insecure content
|
|
132
|
+
},
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
// Content Security Policy
|
|
136
|
+
session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
|
|
137
|
+
callback({
|
|
138
|
+
responseHeaders: {
|
|
139
|
+
...details.responseHeaders,
|
|
140
|
+
'Content-Security-Policy': ["default-src 'self'"]
|
|
141
|
+
}
|
|
142
|
+
})
|
|
143
|
+
})
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
<!-- ELECTRON:END -->
|
|
147
|
+
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
<!-- FLASK:START -->
|
|
2
|
-
# Flask Framework Rules
|
|
3
|
-
|
|
4
|
-
**Language**: Python
|
|
5
|
-
**Version**: Flask 3.0+
|
|
6
|
-
|
|
7
|
-
## Setup
|
|
8
|
-
|
|
9
|
-
```python
|
|
10
|
-
from flask import Flask
|
|
11
|
-
app = Flask(__name__)
|
|
12
|
-
app.config.from_object('config.ProductionConfig')
|
|
13
|
-
|
|
14
|
-
# Use Flask-SQLAlchemy for ORM
|
|
15
|
-
# Use Flask-Migrate for migrations
|
|
16
|
-
# Use Flask-Login for auth
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Quality Gates
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
black .
|
|
23
|
-
ruff check .
|
|
24
|
-
pytest --cov=app
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Best Practices
|
|
28
|
-
|
|
29
|
-
✅ Use application factory pattern
|
|
30
|
-
✅ Enable CORS properly
|
|
31
|
-
✅ Use blueprints for organization
|
|
32
|
-
✅ Implement error handlers
|
|
33
|
-
|
|
34
|
-
❌ Don't use `debug=True` in production
|
|
35
|
-
❌ Don't store secrets in code
|
|
36
|
-
|
|
37
|
-
<!-- FLASK:END -->
|
|
38
|
-
|
|
1
|
+
<!-- FLASK:START -->
|
|
2
|
+
# Flask Framework Rules
|
|
3
|
+
|
|
4
|
+
**Language**: Python
|
|
5
|
+
**Version**: Flask 3.0+
|
|
6
|
+
|
|
7
|
+
## Setup
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
from flask import Flask
|
|
11
|
+
app = Flask(__name__)
|
|
12
|
+
app.config.from_object('config.ProductionConfig')
|
|
13
|
+
|
|
14
|
+
# Use Flask-SQLAlchemy for ORM
|
|
15
|
+
# Use Flask-Migrate for migrations
|
|
16
|
+
# Use Flask-Login for auth
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Quality Gates
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
black .
|
|
23
|
+
ruff check .
|
|
24
|
+
pytest --cov=app
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Best Practices
|
|
28
|
+
|
|
29
|
+
✅ Use application factory pattern
|
|
30
|
+
✅ Enable CORS properly
|
|
31
|
+
✅ Use blueprints for organization
|
|
32
|
+
✅ Implement error handlers
|
|
33
|
+
|
|
34
|
+
❌ Don't use `debug=True` in production
|
|
35
|
+
❌ Don't store secrets in code
|
|
36
|
+
|
|
37
|
+
<!-- FLASK:END -->
|
|
38
|
+
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
<!-- FLUTTER:START -->
|
|
2
|
-
# Flutter Framework Rules
|
|
3
|
-
|
|
4
|
-
**Language**: Dart
|
|
5
|
-
**Version**: Flutter 3.10+
|
|
6
|
-
|
|
7
|
-
## Setup
|
|
8
|
-
|
|
9
|
-
```yaml
|
|
10
|
-
# pubspec.yaml
|
|
11
|
-
dependencies:
|
|
12
|
-
flutter:
|
|
13
|
-
sdk: flutter
|
|
14
|
-
cupertino_icons: ^1.0.2
|
|
15
|
-
|
|
16
|
-
dev_dependencies:
|
|
17
|
-
flutter_test:
|
|
18
|
-
sdk: flutter
|
|
19
|
-
flutter_lints: ^2.0.0
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Quality Gates
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
dart format --set-exit-if-changed .
|
|
26
|
-
dart analyze --fatal-infos
|
|
27
|
-
flutter test
|
|
28
|
-
flutter build apk --release # Test build
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Best Practices
|
|
32
|
-
|
|
33
|
-
✅ Use StatelessWidget when possible
|
|
34
|
-
✅ Implement proper state management (Provider, Riverpod, Bloc)
|
|
35
|
-
✅ Use const constructors
|
|
36
|
-
✅ Optimize widget rebuilds
|
|
37
|
-
✅ Test on multiple devices
|
|
38
|
-
|
|
39
|
-
❌ Don't use `print()` in production
|
|
40
|
-
❌ Don't skip null safety
|
|
41
|
-
❌ Don't ignore platform differences
|
|
42
|
-
|
|
43
|
-
## Project Structure
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
lib/
|
|
47
|
-
├── main.dart
|
|
48
|
-
├── models/
|
|
49
|
-
├── screens/
|
|
50
|
-
├── widgets/
|
|
51
|
-
└── services/
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
<!-- FLUTTER:END -->
|
|
55
|
-
|
|
1
|
+
<!-- FLUTTER:START -->
|
|
2
|
+
# Flutter Framework Rules
|
|
3
|
+
|
|
4
|
+
**Language**: Dart
|
|
5
|
+
**Version**: Flutter 3.10+
|
|
6
|
+
|
|
7
|
+
## Setup
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
# pubspec.yaml
|
|
11
|
+
dependencies:
|
|
12
|
+
flutter:
|
|
13
|
+
sdk: flutter
|
|
14
|
+
cupertino_icons: ^1.0.2
|
|
15
|
+
|
|
16
|
+
dev_dependencies:
|
|
17
|
+
flutter_test:
|
|
18
|
+
sdk: flutter
|
|
19
|
+
flutter_lints: ^2.0.0
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Quality Gates
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
dart format --set-exit-if-changed .
|
|
26
|
+
dart analyze --fatal-infos
|
|
27
|
+
flutter test
|
|
28
|
+
flutter build apk --release # Test build
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
|
|
33
|
+
✅ Use StatelessWidget when possible
|
|
34
|
+
✅ Implement proper state management (Provider, Riverpod, Bloc)
|
|
35
|
+
✅ Use const constructors
|
|
36
|
+
✅ Optimize widget rebuilds
|
|
37
|
+
✅ Test on multiple devices
|
|
38
|
+
|
|
39
|
+
❌ Don't use `print()` in production
|
|
40
|
+
❌ Don't skip null safety
|
|
41
|
+
❌ Don't ignore platform differences
|
|
42
|
+
|
|
43
|
+
## Project Structure
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
lib/
|
|
47
|
+
├── main.dart
|
|
48
|
+
├── models/
|
|
49
|
+
├── screens/
|
|
50
|
+
├── widgets/
|
|
51
|
+
└── services/
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
<!-- FLUTTER:END -->
|
|
55
|
+
|