@hivehub/rulebook 5.1.3 → 5.2.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/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 +85 -67
- package/.claude/commands/rulebook-task-archive.md +103 -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 +25 -43
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +11 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/agent-template-engine.js +28 -28
- package/dist/core/generator.js +28 -28
- package/dist/core/task-manager.d.ts +23 -0
- package/dist/core/task-manager.d.ts.map +1 -1
- package/dist/core/task-manager.js +163 -27
- package/dist/core/task-manager.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/mcp/rulebook-server.js +3 -3
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/memory-store.js +91 -91
- package/package.json +21 -22
- package/templates/agents/accessibility-reviewer.md +43 -43
- package/templates/agents/api-designer.md +42 -42
- package/templates/agents/architect.md +51 -51
- package/templates/agents/build-engineer.md +36 -36
- package/templates/agents/code-reviewer.md +47 -47
- package/templates/agents/compiler/codegen-debugger.md +34 -34
- package/templates/agents/compiler/stdlib-engineer.md +28 -28
- package/templates/agents/compiler/test-coverage-guardian.md +31 -31
- package/templates/agents/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/knowledge-base-usage.md +41 -0
- 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,154 +1,154 @@
|
|
|
1
|
-
<!-- TIER1_PROHIBITIONS:START -->
|
|
2
|
-
# Absolute Prohibitions (Tier 1 — Highest Precedence)
|
|
3
|
-
|
|
4
|
-
**These rules override ALL other rules. Violation = output rejected.**
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## PROHIBITION 1: No Shortcuts, Stubs, or Simplified Logic
|
|
9
|
-
|
|
10
|
-
**NEVER** simplify logic, add TODO/FIXME/HACK, create stubs, use placeholders, alter existing logic to avoid complexity, reduce scope, skip edge cases, or deliver partial implementations.
|
|
11
|
-
|
|
12
|
-
**Response time is IRRELEVANT. Quality is everything.**
|
|
13
|
-
|
|
14
|
-
### Forbidden Patterns
|
|
15
|
-
- `// TODO` — unfinished work disguised as progress
|
|
16
|
-
- `// FIXME` — a known bug left for "later"
|
|
17
|
-
- `// HACK` — a shortcut that will haunt you
|
|
18
|
-
- `return 0; // placeholder` — a lie that compiles
|
|
19
|
-
- `/* stub */` — an empty promise
|
|
20
|
-
- Simplified algorithms where the correct one is known
|
|
21
|
-
- Partial implementations ("I'll add the rest later")
|
|
22
|
-
- Reduced scope without explicit approval
|
|
23
|
-
|
|
24
|
-
### Required Behavior
|
|
25
|
-
- **Research** the correct approach before writing code
|
|
26
|
-
- **Implement completely** — every function, every edge case, every error path
|
|
27
|
-
- **Take as long as needed** — correct implementation > fast delivery
|
|
28
|
-
- **Ask if unsure** — propose a plan, never silently simplify
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## PROHIBITION 2: No Destructive Git Operations Without Authorization
|
|
33
|
-
|
|
34
|
-
### Allowed (always safe)
|
|
35
|
-
- `git status`, `git diff`, `git log`, `git blame`
|
|
36
|
-
- `git add`, `git commit` (after quality checks)
|
|
37
|
-
|
|
38
|
-
### Forbidden (require explicit user authorization)
|
|
39
|
-
- `git stash` — can lose uncommitted work
|
|
40
|
-
- `git rebase` — rewrites history
|
|
41
|
-
- `git reset --hard` — destroys uncommitted changes
|
|
42
|
-
- `git checkout -- .` / `git restore .` — discards all changes
|
|
43
|
-
- `git revert` — creates new commits
|
|
44
|
-
- `git cherry-pick` — can cause conflicts
|
|
45
|
-
- `git merge` — can create conflicts
|
|
46
|
-
- `git branch -D` — deletes branch permanently
|
|
47
|
-
- `git push --force` — overwrites remote history
|
|
48
|
-
- `git clean -f` — deletes untracked files permanently
|
|
49
|
-
- `git checkout <branch>` / `git switch` — breaks concurrent sessions sharing the worktree
|
|
50
|
-
|
|
51
|
-
**Why**: Multiple AI sessions may share the same working tree. Destructive operations affect ALL concurrent sessions.
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## PROHIBITION 3: No Deletion Without Authorization
|
|
56
|
-
|
|
57
|
-
**NEVER** run `rm`, `rm -rf`, `del`, or delete any file without explicit user authorization ("yes, delete it").
|
|
58
|
-
|
|
59
|
-
This includes:
|
|
60
|
-
- Cache files (they auto-invalidate — DO NOT manually delete)
|
|
61
|
-
- Backup files
|
|
62
|
-
- Temporary files (clean up YOUR temp files, never others')
|
|
63
|
-
- Build artifacts (use the build system's clean command)
|
|
64
|
-
- Lock files (investigate what holds the lock first)
|
|
65
|
-
|
|
66
|
-
**Why**: AI agents repeatedly delete important files during "cleanup." The cost of an unauthorized deletion (hours rebuilding caches, lost data) always exceeds the cost of asking first.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## PROHIBITION 4: Research Before Implementing — Never Guess
|
|
71
|
-
|
|
72
|
-
**NEVER** guess at:
|
|
73
|
-
- The cause of a bug
|
|
74
|
-
- How an API works
|
|
75
|
-
- What a function does based on its name
|
|
76
|
-
- What "correct" output looks like
|
|
77
|
-
|
|
78
|
-
### Required Process
|
|
79
|
-
1. **State what you KNOW** (from logs, debug output, code reading)
|
|
80
|
-
2. **State what you DON'T KNOW**
|
|
81
|
-
3. **Research** the unknown (read source, check docs, use diagnostic tools)
|
|
82
|
-
4. **Only then** implement the fix
|
|
83
|
-
|
|
84
|
-
**"I think this might be the problem" is NOT acceptable.**
|
|
85
|
-
**"Source X does Y at file:line, we do Z, the difference causes W" IS acceptable.**
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## PROHIBITION 5: Sequential File Editing
|
|
90
|
-
|
|
91
|
-
**ALWAYS** edit files one at a time in sequence: Read file1 → Edit file1 → Read file2 → Edit file2.
|
|
92
|
-
|
|
93
|
-
**NEVER** batch-read multiple files then batch-edit them. By the time you edit file 3, the context from file 1 may be stale.
|
|
94
|
-
|
|
95
|
-
When a task touches 3+ files across subsystems:
|
|
96
|
-
1. **STOP** — do not start implementing
|
|
97
|
-
2. **Plan** the changes (list files, dependency order)
|
|
98
|
-
3. **Decompose** into sub-tasks of 1-2 files each
|
|
99
|
-
4. **Execute** sub-tasks in dependency order
|
|
100
|
-
5. **Build/test** after each sub-task
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## PROHIBITION 6: No Deferred Tasks
|
|
105
|
-
|
|
106
|
-
If a task is in the checklist, **implement it**. No exceptions.
|
|
107
|
-
|
|
108
|
-
- **NEVER** mark tasks as "Deferred"
|
|
109
|
-
- **NEVER** write "Deferred — requires X"
|
|
110
|
-
- **NEVER** skip tasks with excuses
|
|
111
|
-
- **NEVER** deliver partial implementations with "will do later"
|
|
112
|
-
|
|
113
|
-
If a task has a genuine dependency:
|
|
114
|
-
1. Implement the dependency FIRST
|
|
115
|
-
2. Then implement the task
|
|
116
|
-
3. Mark BOTH as done
|
|
117
|
-
|
|
118
|
-
If you truly cannot implement something, explain WHY in concrete terms and propose an alternative — do NOT just write "Deferred."
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## PROHIBITION 7: Follow Task Sequence — No Reordering, No Cherry-Picking
|
|
123
|
-
|
|
124
|
-
When a `tasks.md` checklist defines a sequence of items, **execute them in EXACTLY that order**.
|
|
125
|
-
|
|
126
|
-
### Forbidden
|
|
127
|
-
|
|
128
|
-
- **NEVER** skip ahead to "easier" or "more interesting" tasks
|
|
129
|
-
- **NEVER** reorder tasks because you think a different order is better
|
|
130
|
-
- **NEVER** cherry-pick tasks from the middle of a list
|
|
131
|
-
- **NEVER** decide which tasks are "important enough" to do — do ALL of them, in order
|
|
132
|
-
- **NEVER** group or batch tasks in a different sequence than listed
|
|
133
|
-
- **NEVER** start Phase N+1 before Phase N is 100% complete
|
|
134
|
-
|
|
135
|
-
### Required Behavior
|
|
136
|
-
|
|
137
|
-
1. Read `tasks.md` from top to bottom
|
|
138
|
-
2. Find the FIRST unchecked item (`- [ ]`)
|
|
139
|
-
3. Implement THAT item — not the one you prefer
|
|
140
|
-
4. Mark it `[x]` with what was done
|
|
141
|
-
5. Move to the NEXT unchecked item
|
|
142
|
-
6. Repeat until all items are checked
|
|
143
|
-
|
|
144
|
-
### Why
|
|
145
|
-
|
|
146
|
-
The human spent time defining the task sequence for a reason. The order reflects dependencies, priorities, and a deliberate implementation strategy. When AI agents skip around:
|
|
147
|
-
- Dependencies break because upstream work wasn't done first
|
|
148
|
-
- The human loses track of what's actually complete
|
|
149
|
-
- Work has to be redone because it was built on missing foundations
|
|
150
|
-
- Trust erodes — the human defined a plan and the AI ignored it
|
|
151
|
-
|
|
152
|
-
**The task list is an ORDER, not a MENU. Execute sequentially.**
|
|
153
|
-
|
|
154
|
-
<!-- TIER1_PROHIBITIONS:END -->
|
|
1
|
+
<!-- TIER1_PROHIBITIONS:START -->
|
|
2
|
+
# Absolute Prohibitions (Tier 1 — Highest Precedence)
|
|
3
|
+
|
|
4
|
+
**These rules override ALL other rules. Violation = output rejected.**
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## PROHIBITION 1: No Shortcuts, Stubs, or Simplified Logic
|
|
9
|
+
|
|
10
|
+
**NEVER** simplify logic, add TODO/FIXME/HACK, create stubs, use placeholders, alter existing logic to avoid complexity, reduce scope, skip edge cases, or deliver partial implementations.
|
|
11
|
+
|
|
12
|
+
**Response time is IRRELEVANT. Quality is everything.**
|
|
13
|
+
|
|
14
|
+
### Forbidden Patterns
|
|
15
|
+
- `// TODO` — unfinished work disguised as progress
|
|
16
|
+
- `// FIXME` — a known bug left for "later"
|
|
17
|
+
- `// HACK` — a shortcut that will haunt you
|
|
18
|
+
- `return 0; // placeholder` — a lie that compiles
|
|
19
|
+
- `/* stub */` — an empty promise
|
|
20
|
+
- Simplified algorithms where the correct one is known
|
|
21
|
+
- Partial implementations ("I'll add the rest later")
|
|
22
|
+
- Reduced scope without explicit approval
|
|
23
|
+
|
|
24
|
+
### Required Behavior
|
|
25
|
+
- **Research** the correct approach before writing code
|
|
26
|
+
- **Implement completely** — every function, every edge case, every error path
|
|
27
|
+
- **Take as long as needed** — correct implementation > fast delivery
|
|
28
|
+
- **Ask if unsure** — propose a plan, never silently simplify
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## PROHIBITION 2: No Destructive Git Operations Without Authorization
|
|
33
|
+
|
|
34
|
+
### Allowed (always safe)
|
|
35
|
+
- `git status`, `git diff`, `git log`, `git blame`
|
|
36
|
+
- `git add`, `git commit` (after quality checks)
|
|
37
|
+
|
|
38
|
+
### Forbidden (require explicit user authorization)
|
|
39
|
+
- `git stash` — can lose uncommitted work
|
|
40
|
+
- `git rebase` — rewrites history
|
|
41
|
+
- `git reset --hard` — destroys uncommitted changes
|
|
42
|
+
- `git checkout -- .` / `git restore .` — discards all changes
|
|
43
|
+
- `git revert` — creates new commits
|
|
44
|
+
- `git cherry-pick` — can cause conflicts
|
|
45
|
+
- `git merge` — can create conflicts
|
|
46
|
+
- `git branch -D` — deletes branch permanently
|
|
47
|
+
- `git push --force` — overwrites remote history
|
|
48
|
+
- `git clean -f` — deletes untracked files permanently
|
|
49
|
+
- `git checkout <branch>` / `git switch` — breaks concurrent sessions sharing the worktree
|
|
50
|
+
|
|
51
|
+
**Why**: Multiple AI sessions may share the same working tree. Destructive operations affect ALL concurrent sessions.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## PROHIBITION 3: No Deletion Without Authorization
|
|
56
|
+
|
|
57
|
+
**NEVER** run `rm`, `rm -rf`, `del`, or delete any file without explicit user authorization ("yes, delete it").
|
|
58
|
+
|
|
59
|
+
This includes:
|
|
60
|
+
- Cache files (they auto-invalidate — DO NOT manually delete)
|
|
61
|
+
- Backup files
|
|
62
|
+
- Temporary files (clean up YOUR temp files, never others')
|
|
63
|
+
- Build artifacts (use the build system's clean command)
|
|
64
|
+
- Lock files (investigate what holds the lock first)
|
|
65
|
+
|
|
66
|
+
**Why**: AI agents repeatedly delete important files during "cleanup." The cost of an unauthorized deletion (hours rebuilding caches, lost data) always exceeds the cost of asking first.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## PROHIBITION 4: Research Before Implementing — Never Guess
|
|
71
|
+
|
|
72
|
+
**NEVER** guess at:
|
|
73
|
+
- The cause of a bug
|
|
74
|
+
- How an API works
|
|
75
|
+
- What a function does based on its name
|
|
76
|
+
- What "correct" output looks like
|
|
77
|
+
|
|
78
|
+
### Required Process
|
|
79
|
+
1. **State what you KNOW** (from logs, debug output, code reading)
|
|
80
|
+
2. **State what you DON'T KNOW**
|
|
81
|
+
3. **Research** the unknown (read source, check docs, use diagnostic tools)
|
|
82
|
+
4. **Only then** implement the fix
|
|
83
|
+
|
|
84
|
+
**"I think this might be the problem" is NOT acceptable.**
|
|
85
|
+
**"Source X does Y at file:line, we do Z, the difference causes W" IS acceptable.**
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## PROHIBITION 5: Sequential File Editing
|
|
90
|
+
|
|
91
|
+
**ALWAYS** edit files one at a time in sequence: Read file1 → Edit file1 → Read file2 → Edit file2.
|
|
92
|
+
|
|
93
|
+
**NEVER** batch-read multiple files then batch-edit them. By the time you edit file 3, the context from file 1 may be stale.
|
|
94
|
+
|
|
95
|
+
When a task touches 3+ files across subsystems:
|
|
96
|
+
1. **STOP** — do not start implementing
|
|
97
|
+
2. **Plan** the changes (list files, dependency order)
|
|
98
|
+
3. **Decompose** into sub-tasks of 1-2 files each
|
|
99
|
+
4. **Execute** sub-tasks in dependency order
|
|
100
|
+
5. **Build/test** after each sub-task
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## PROHIBITION 6: No Deferred Tasks
|
|
105
|
+
|
|
106
|
+
If a task is in the checklist, **implement it**. No exceptions.
|
|
107
|
+
|
|
108
|
+
- **NEVER** mark tasks as "Deferred"
|
|
109
|
+
- **NEVER** write "Deferred — requires X"
|
|
110
|
+
- **NEVER** skip tasks with excuses
|
|
111
|
+
- **NEVER** deliver partial implementations with "will do later"
|
|
112
|
+
|
|
113
|
+
If a task has a genuine dependency:
|
|
114
|
+
1. Implement the dependency FIRST
|
|
115
|
+
2. Then implement the task
|
|
116
|
+
3. Mark BOTH as done
|
|
117
|
+
|
|
118
|
+
If you truly cannot implement something, explain WHY in concrete terms and propose an alternative — do NOT just write "Deferred."
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## PROHIBITION 7: Follow Task Sequence — No Reordering, No Cherry-Picking
|
|
123
|
+
|
|
124
|
+
When a `tasks.md` checklist defines a sequence of items, **execute them in EXACTLY that order**.
|
|
125
|
+
|
|
126
|
+
### Forbidden
|
|
127
|
+
|
|
128
|
+
- **NEVER** skip ahead to "easier" or "more interesting" tasks
|
|
129
|
+
- **NEVER** reorder tasks because you think a different order is better
|
|
130
|
+
- **NEVER** cherry-pick tasks from the middle of a list
|
|
131
|
+
- **NEVER** decide which tasks are "important enough" to do — do ALL of them, in order
|
|
132
|
+
- **NEVER** group or batch tasks in a different sequence than listed
|
|
133
|
+
- **NEVER** start Phase N+1 before Phase N is 100% complete
|
|
134
|
+
|
|
135
|
+
### Required Behavior
|
|
136
|
+
|
|
137
|
+
1. Read `tasks.md` from top to bottom
|
|
138
|
+
2. Find the FIRST unchecked item (`- [ ]`)
|
|
139
|
+
3. Implement THAT item — not the one you prefer
|
|
140
|
+
4. Mark it `[x]` with what was done
|
|
141
|
+
5. Move to the NEXT unchecked item
|
|
142
|
+
6. Repeat until all items are checked
|
|
143
|
+
|
|
144
|
+
### Why
|
|
145
|
+
|
|
146
|
+
The human spent time defining the task sequence for a reason. The order reflects dependencies, priorities, and a deliberate implementation strategy. When AI agents skip around:
|
|
147
|
+
- Dependencies break because upstream work wasn't done first
|
|
148
|
+
- The human loses track of what's actually complete
|
|
149
|
+
- Work has to be redone because it was built on missing foundations
|
|
150
|
+
- Trust erodes — the human defined a plan and the AI ignored it
|
|
151
|
+
|
|
152
|
+
**The task list is an ORDER, not a MENU. Execute sequentially.**
|
|
153
|
+
|
|
154
|
+
<!-- TIER1_PROHIBITIONS:END -->
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
<!-- TOKEN_OPTIMIZATION:START -->
|
|
2
|
-
# Token Optimization Rules
|
|
3
|
-
|
|
4
|
-
Output verbosity rules calibrated by model capability tier.
|
|
5
|
-
These rules ensure cost-efficient use of AI models without sacrificing quality.
|
|
6
|
-
|
|
7
|
-
## Model Tier Assignment
|
|
8
|
-
|
|
9
|
-
| Tier | Use For | Claude | Gemini | OpenAI |
|
|
10
|
-
|------|---------|--------|--------|--------|
|
|
11
|
-
| **Core** | Complex bugs, architecture, domain-critical code | opus | Pro | o3 |
|
|
12
|
-
| **Standard** | Tests, implementation, build system, medium tasks | sonnet | Flash | 4o |
|
|
13
|
-
| **Research** | Read-only exploration, docs, codebase search | haiku | Flash-Lite | 4o-mini |
|
|
14
|
-
|
|
15
|
-
## Output Rules by Tier
|
|
16
|
-
|
|
17
|
-
### Research Tier (cheapest — maximize context for work, not reports)
|
|
18
|
-
- Output code, not explanations
|
|
19
|
-
- Minimal reports: "Done" instead of detailed status
|
|
20
|
-
- No markdown tables, emoji, or status sections
|
|
21
|
-
- Combine outputs into one response
|
|
22
|
-
- No "Next Steps" sections
|
|
23
|
-
- No repeating back what was asked
|
|
24
|
-
|
|
25
|
-
### Standard Tier (balanced — brief summaries)
|
|
26
|
-
- Brief summaries (2-3 sentences max)
|
|
27
|
-
- Code with inline comments (no separate explanation blocks)
|
|
28
|
-
- Report only: what changed, what passed, what failed
|
|
29
|
-
- Skip preamble and transitions
|
|
30
|
-
|
|
31
|
-
### Core Tier (most capable — full reasoning when needed)
|
|
32
|
-
- Full explanations welcome for complex decisions
|
|
33
|
-
- Document reasoning for non-obvious choices
|
|
34
|
-
- Detailed analysis for bug investigations
|
|
35
|
-
- Still avoid unnecessary verbosity
|
|
36
|
-
|
|
37
|
-
## Token Savings Reference
|
|
38
|
-
|
|
39
|
-
| Pattern to Avoid | Tokens Wasted | Alternative |
|
|
40
|
-
|-------------------|---------------|-------------|
|
|
41
|
-
| Emoji status tables | ~500/task | Plain text "Done" |
|
|
42
|
-
| "Next Steps" sections | ~100/task | Omit entirely |
|
|
43
|
-
| Detailed quality reports | ~300/task | "Tests pass, coverage 95%" |
|
|
44
|
-
| Repeating the question | ~200/task | Jump to the answer |
|
|
45
|
-
| Markdown formatting abuse | ~200/task | Minimal formatting |
|
|
46
|
-
|
|
47
|
-
**Total savings**: ~850 tokens/task for research tier agents
|
|
48
|
-
|
|
49
|
-
<!-- TOKEN_OPTIMIZATION:END -->
|
|
1
|
+
<!-- TOKEN_OPTIMIZATION:START -->
|
|
2
|
+
# Token Optimization Rules
|
|
3
|
+
|
|
4
|
+
Output verbosity rules calibrated by model capability tier.
|
|
5
|
+
These rules ensure cost-efficient use of AI models without sacrificing quality.
|
|
6
|
+
|
|
7
|
+
## Model Tier Assignment
|
|
8
|
+
|
|
9
|
+
| Tier | Use For | Claude | Gemini | OpenAI |
|
|
10
|
+
|------|---------|--------|--------|--------|
|
|
11
|
+
| **Core** | Complex bugs, architecture, domain-critical code | opus | Pro | o3 |
|
|
12
|
+
| **Standard** | Tests, implementation, build system, medium tasks | sonnet | Flash | 4o |
|
|
13
|
+
| **Research** | Read-only exploration, docs, codebase search | haiku | Flash-Lite | 4o-mini |
|
|
14
|
+
|
|
15
|
+
## Output Rules by Tier
|
|
16
|
+
|
|
17
|
+
### Research Tier (cheapest — maximize context for work, not reports)
|
|
18
|
+
- Output code, not explanations
|
|
19
|
+
- Minimal reports: "Done" instead of detailed status
|
|
20
|
+
- No markdown tables, emoji, or status sections
|
|
21
|
+
- Combine outputs into one response
|
|
22
|
+
- No "Next Steps" sections
|
|
23
|
+
- No repeating back what was asked
|
|
24
|
+
|
|
25
|
+
### Standard Tier (balanced — brief summaries)
|
|
26
|
+
- Brief summaries (2-3 sentences max)
|
|
27
|
+
- Code with inline comments (no separate explanation blocks)
|
|
28
|
+
- Report only: what changed, what passed, what failed
|
|
29
|
+
- Skip preamble and transitions
|
|
30
|
+
|
|
31
|
+
### Core Tier (most capable — full reasoning when needed)
|
|
32
|
+
- Full explanations welcome for complex decisions
|
|
33
|
+
- Document reasoning for non-obvious choices
|
|
34
|
+
- Detailed analysis for bug investigations
|
|
35
|
+
- Still avoid unnecessary verbosity
|
|
36
|
+
|
|
37
|
+
## Token Savings Reference
|
|
38
|
+
|
|
39
|
+
| Pattern to Avoid | Tokens Wasted | Alternative |
|
|
40
|
+
|-------------------|---------------|-------------|
|
|
41
|
+
| Emoji status tables | ~500/task | Plain text "Done" |
|
|
42
|
+
| "Next Steps" sections | ~100/task | Omit entirely |
|
|
43
|
+
| Detailed quality reports | ~300/task | "Tests pass, coverage 95%" |
|
|
44
|
+
| Repeating the question | ~200/task | Jump to the answer |
|
|
45
|
+
| Markdown formatting abuse | ~200/task | Minimal formatting |
|
|
46
|
+
|
|
47
|
+
**Total savings**: ~850 tokens/task for research tier agents
|
|
48
|
+
|
|
49
|
+
<!-- TOKEN_OPTIMIZATION:END -->
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
<!-- ANGULAR:START -->
|
|
2
|
-
# Angular Framework Rules
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: Angular projects must meet these standards before delivery.
|
|
5
|
-
|
|
6
|
-
## Quality Commands
|
|
7
|
-
- Lint: `npm run lint`
|
|
8
|
-
- Unit tests: `npm run test -- --watch=false --code-coverage`
|
|
9
|
-
- e2e tests: `npm run e2e`
|
|
10
|
-
- Build: `npm run build -- --configuration production`
|
|
11
|
-
|
|
12
|
-
## Project Structure
|
|
13
|
-
- Colocate features inside `src/app/<feature>/`
|
|
14
|
-
- Keep shared modules in `src/app/shared`
|
|
15
|
-
- Avoid `providedIn: 'root'` unless service truly global
|
|
16
|
-
- Leverage `OnPush` change detection for performance-critical components
|
|
17
|
-
|
|
18
|
-
## Implementation Guidelines
|
|
19
|
-
- Define interfaces for component inputs/outputs
|
|
20
|
-
- Use `HttpClient` interceptors for auth/logging
|
|
21
|
-
- Isolate environment variables in `src/environments/`
|
|
22
|
-
- Prefer Reactive Forms and RxJS operators over manual subscriptions
|
|
23
|
-
|
|
24
|
-
## Pre-Commit Sequence
|
|
25
|
-
```bash
|
|
26
|
-
npm run lint
|
|
27
|
-
npm run test -- --watch=false
|
|
28
|
-
npm run build -- --configuration production
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Documentation
|
|
32
|
-
- Update `/docs/angular-architecture.md` with new modules and routes
|
|
33
|
-
- Record shared component APIs in Storybook or `/docs/ui-components.md`
|
|
34
|
-
- Version major route changes in `/docs/roadmap.md`
|
|
35
|
-
|
|
36
|
-
<!-- ANGULAR:END -->
|
|
1
|
+
<!-- ANGULAR:START -->
|
|
2
|
+
# Angular Framework Rules
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Angular projects must meet these standards before delivery.
|
|
5
|
+
|
|
6
|
+
## Quality Commands
|
|
7
|
+
- Lint: `npm run lint`
|
|
8
|
+
- Unit tests: `npm run test -- --watch=false --code-coverage`
|
|
9
|
+
- e2e tests: `npm run e2e`
|
|
10
|
+
- Build: `npm run build -- --configuration production`
|
|
11
|
+
|
|
12
|
+
## Project Structure
|
|
13
|
+
- Colocate features inside `src/app/<feature>/`
|
|
14
|
+
- Keep shared modules in `src/app/shared`
|
|
15
|
+
- Avoid `providedIn: 'root'` unless service truly global
|
|
16
|
+
- Leverage `OnPush` change detection for performance-critical components
|
|
17
|
+
|
|
18
|
+
## Implementation Guidelines
|
|
19
|
+
- Define interfaces for component inputs/outputs
|
|
20
|
+
- Use `HttpClient` interceptors for auth/logging
|
|
21
|
+
- Isolate environment variables in `src/environments/`
|
|
22
|
+
- Prefer Reactive Forms and RxJS operators over manual subscriptions
|
|
23
|
+
|
|
24
|
+
## Pre-Commit Sequence
|
|
25
|
+
```bash
|
|
26
|
+
npm run lint
|
|
27
|
+
npm run test -- --watch=false
|
|
28
|
+
npm run build -- --configuration production
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Documentation
|
|
32
|
+
- Update `/docs/angular-architecture.md` with new modules and routes
|
|
33
|
+
- Record shared component APIs in Storybook or `/docs/ui-components.md`
|
|
34
|
+
- Version major route changes in `/docs/roadmap.md`
|
|
35
|
+
|
|
36
|
+
<!-- ANGULAR:END -->
|
|
@@ -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
|
+
|