@hivehub/rulebook 5.1.2 → 5.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/continue.md +33 -33
- package/.claude/commands/ralph-config.md +112 -112
- package/.claude/commands/ralph-history.md +110 -110
- package/.claude/commands/ralph-init.md +72 -72
- package/.claude/commands/ralph-pause-resume.md +105 -105
- package/.claude/commands/ralph-run.md +101 -101
- package/.claude/commands/ralph-status.md +76 -76
- package/.claude/commands/rulebook-decision-create.md +55 -55
- package/.claude/commands/rulebook-decision-list.md +15 -15
- package/.claude/commands/rulebook-knowledge-add.md +41 -41
- package/.claude/commands/rulebook-knowledge-list.md +15 -15
- package/.claude/commands/rulebook-learn-capture.md +48 -48
- package/.claude/commands/rulebook-learn-list.md +13 -13
- package/.claude/commands/rulebook-memory-save.md +48 -48
- package/.claude/commands/rulebook-memory-search.md +47 -47
- package/.claude/commands/rulebook-task-apply.md +67 -67
- package/.claude/commands/rulebook-task-archive.md +94 -94
- package/.claude/commands/rulebook-task-create.md +93 -93
- package/.claude/commands/rulebook-task-list.md +42 -42
- package/.claude/commands/rulebook-task-show.md +52 -52
- package/.claude/commands/rulebook-task-validate.md +53 -53
- package/.claude-plugin/marketplace.json +28 -28
- package/.claude-plugin/plugin.json +8 -8
- package/README.md +4 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +39 -8
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/agent-template-engine.d.ts.map +1 -1
- package/dist/core/agent-template-engine.js +36 -30
- package/dist/core/agent-template-engine.js.map +1 -1
- package/dist/core/complexity-detector.d.ts.map +1 -1
- package/dist/core/complexity-detector.js +109 -29
- package/dist/core/complexity-detector.js.map +1 -1
- package/dist/core/decision-manager.d.ts.map +1 -1
- package/dist/core/decision-manager.js +2 -7
- package/dist/core/decision-manager.js.map +1 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +28 -28
- package/dist/core/generator.js.map +1 -1
- package/dist/core/indexer/background-indexer.d.ts +1 -0
- package/dist/core/indexer/background-indexer.d.ts.map +1 -1
- package/dist/core/indexer/background-indexer.js +107 -19
- package/dist/core/indexer/background-indexer.js.map +1 -1
- package/dist/core/indexer/indexer-types.d.ts +2 -0
- package/dist/core/indexer/indexer-types.d.ts.map +1 -1
- package/dist/core/knowledge-manager.d.ts.map +1 -1
- package/dist/core/knowledge-manager.js +1 -1
- package/dist/core/knowledge-manager.js.map +1 -1
- package/dist/core/learn-manager.d.ts.map +1 -1
- package/dist/core/learn-manager.js +1 -1
- package/dist/core/learn-manager.js.map +1 -1
- package/dist/core/rule-engine.d.ts.map +1 -1
- package/dist/core/rule-engine.js +1 -3
- package/dist/core/rule-engine.js.map +1 -1
- package/dist/core/task-manager.d.ts.map +1 -1
- package/dist/core/task-manager.js +24 -24
- package/dist/core/task-manager.js.map +1 -1
- package/dist/index.js +23 -7
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +18 -6
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/memory/hnsw-index.d.ts.map +1 -1
- package/dist/memory/hnsw-index.js +12 -4
- package/dist/memory/hnsw-index.js.map +1 -1
- package/dist/memory/memory-store.d.ts.map +1 -1
- package/dist/memory/memory-store.js +136 -107
- package/dist/memory/memory-store.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +22 -21
- package/templates/agents/accessibility-reviewer.md +43 -43
- package/templates/agents/api-designer.md +42 -42
- package/templates/agents/architect.md +51 -51
- package/templates/agents/build-engineer.md +36 -36
- package/templates/agents/code-reviewer.md +47 -47
- package/templates/agents/compiler/codegen-debugger.md +34 -34
- package/templates/agents/compiler/stdlib-engineer.md +28 -28
- package/templates/agents/compiler/test-coverage-guardian.md +31 -31
- package/templates/agents/context-intelligence.md +52 -52
- package/templates/agents/database-architect.md +41 -41
- package/templates/agents/devops-engineer.md +42 -42
- package/templates/agents/docs-writer.md +38 -38
- package/templates/agents/game-engine/cpp-core-expert.md +35 -35
- package/templates/agents/game-engine/render-engineer.md +22 -22
- package/templates/agents/game-engine/shader-engineer.md +38 -38
- package/templates/agents/game-engine/systems-integration.md +43 -43
- package/templates/agents/generic/code-reviewer.md +41 -41
- package/templates/agents/generic/docs-writer.md +25 -25
- package/templates/agents/generic/project-manager.md +36 -36
- package/templates/agents/generic/researcher.md +34 -34
- package/templates/agents/generic/test-engineer.md +41 -41
- package/templates/agents/i18n-engineer.md +42 -42
- package/templates/agents/implementer.md +42 -42
- package/templates/agents/migration-engineer.md +42 -42
- package/templates/agents/mobile/platform-specialist.md +22 -22
- package/templates/agents/mobile/ui-engineer.md +22 -22
- package/templates/agents/performance-engineer.md +49 -49
- package/templates/agents/refactoring-agent.md +41 -41
- package/templates/agents/researcher.md +38 -38
- package/templates/agents/security-reviewer.md +40 -40
- package/templates/agents/team-lead.md +37 -37
- package/templates/agents/tester.md +48 -48
- package/templates/agents/ux-reviewer.md +43 -43
- package/templates/agents/web-app/api-designer.md +22 -22
- package/templates/agents/web-app/backend-engineer.md +30 -30
- package/templates/agents/web-app/database-engineer.md +22 -22
- package/templates/agents/web-app/frontend-engineer.md +29 -29
- package/templates/agents/web-app/security-reviewer.md +32 -32
- package/templates/ci/rulebook-review.yml +26 -26
- package/templates/cli/AIDER.md +49 -49
- package/templates/cli/AMAZON_Q.md +25 -25
- package/templates/cli/AUGGIE.md +32 -32
- package/templates/cli/CLAUDE.md +117 -117
- package/templates/cli/CLINE.md +99 -99
- package/templates/cli/CODEBUDDY.md +20 -20
- package/templates/cli/CODEIUM.md +20 -20
- package/templates/cli/CODEX.md +21 -21
- package/templates/cli/CONTINUE.md +34 -34
- package/templates/cli/CURSOR_CLI.md +62 -62
- package/templates/cli/FACTORY.md +18 -18
- package/templates/cli/GEMINI.md +35 -35
- package/templates/cli/KILOCODE.md +18 -18
- package/templates/cli/OPENCODE.md +18 -18
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
- package/templates/commands/rulebook-decision-create.md +55 -55
- package/templates/commands/rulebook-decision-list.md +15 -15
- package/templates/commands/rulebook-knowledge-add.md +41 -41
- package/templates/commands/rulebook-knowledge-list.md +15 -15
- package/templates/commands/rulebook-learn-capture.md +48 -48
- package/templates/commands/rulebook-learn-list.md +13 -13
- package/templates/commands/rulebook-memory-save.md +48 -48
- package/templates/commands/rulebook-memory-search.md +47 -47
- package/templates/commands/rulebook-task-apply.md +67 -67
- package/templates/commands/rulebook-task-archive.md +94 -94
- package/templates/commands/rulebook-task-create.md +93 -93
- package/templates/commands/rulebook-task-list.md +42 -42
- package/templates/commands/rulebook-task-show.md +52 -52
- package/templates/commands/rulebook-task-validate.md +53 -53
- package/templates/core/AGENTS_LEAN.md +25 -25
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +296 -296
- package/templates/core/DAG.md +304 -304
- package/templates/core/DECISIONS.md +38 -38
- package/templates/core/DOCUMENTATION_RULES.md +36 -36
- package/templates/core/KNOWLEDGE.md +49 -49
- package/templates/core/MULTI_AGENT.md +74 -74
- package/templates/core/PLANS.md +28 -28
- package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
- package/templates/core/RALPH.md +471 -471
- package/templates/core/RULEBOOK.md +1947 -1947
- package/templates/core/TIER1_PROHIBITIONS.md +154 -154
- package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
- package/templates/frameworks/ANGULAR.md +36 -36
- package/templates/frameworks/DJANGO.md +83 -83
- package/templates/frameworks/ELECTRON.md +147 -147
- package/templates/frameworks/FLASK.md +38 -38
- package/templates/frameworks/FLUTTER.md +55 -55
- package/templates/frameworks/JQUERY.md +32 -32
- package/templates/frameworks/LARAVEL.md +38 -38
- package/templates/frameworks/NESTJS.md +43 -43
- package/templates/frameworks/NEXTJS.md +127 -127
- package/templates/frameworks/NUXT.md +40 -40
- package/templates/frameworks/RAILS.md +66 -66
- package/templates/frameworks/REACT.md +38 -38
- package/templates/frameworks/REACT_NATIVE.md +47 -47
- package/templates/frameworks/SPRING.md +39 -39
- package/templates/frameworks/SYMFONY.md +36 -36
- package/templates/frameworks/VUE.md +36 -36
- package/templates/frameworks/ZEND.md +35 -35
- package/templates/git/CI_CD_PATTERNS.md +661 -661
- package/templates/git/GITHUB_ACTIONS.md +728 -728
- package/templates/git/GITLAB_CI.md +730 -730
- package/templates/git/GIT_WORKFLOW.md +1192 -1192
- package/templates/git/SECRETS_MANAGEMENT.md +585 -585
- package/templates/hooks/COMMIT_MSG.md +530 -530
- package/templates/hooks/POST_CHECKOUT.md +546 -546
- package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
- package/templates/hooks/PRE_COMMIT.md +414 -414
- package/templates/hooks/PRE_PUSH.md +601 -601
- package/templates/ides/CONTINUE_RULES.md +16 -16
- package/templates/ides/COPILOT.md +37 -37
- package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
- package/templates/ides/CURSOR.md +43 -43
- package/templates/ides/GEMINI_RULES.md +17 -17
- package/templates/ides/JETBRAINS_AI.md +35 -35
- package/templates/ides/REPLIT.md +36 -36
- package/templates/ides/TABNINE.md +29 -29
- package/templates/ides/VSCODE.md +40 -40
- package/templates/ides/WINDSURF.md +36 -36
- package/templates/ides/WINDSURF_RULES.md +14 -14
- package/templates/ides/ZED.md +32 -32
- package/templates/ides/cursor-mdc/go.mdc +24 -24
- package/templates/ides/cursor-mdc/python.mdc +24 -24
- package/templates/ides/cursor-mdc/quality.mdc +25 -25
- package/templates/ides/cursor-mdc/ralph.mdc +39 -39
- package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
- package/templates/ides/cursor-mdc/rust.mdc +24 -24
- package/templates/ides/cursor-mdc/typescript.mdc +25 -25
- package/templates/languages/C.md +333 -333
- package/templates/languages/CPP.md +743 -743
- package/templates/languages/CSHARP.md +417 -417
- package/templates/languages/ELIXIR.md +454 -454
- package/templates/languages/ERLANG.md +361 -361
- package/templates/languages/GO.md +645 -645
- package/templates/languages/HASKELL.md +177 -177
- package/templates/languages/JAVA.md +607 -607
- package/templates/languages/JAVASCRIPT.md +631 -631
- package/templates/languages/JULIA.md +97 -97
- package/templates/languages/KOTLIN.md +511 -511
- package/templates/languages/LISP.md +100 -100
- package/templates/languages/LUA.md +74 -74
- package/templates/languages/OBJECTIVEC.md +90 -90
- package/templates/languages/PHP.md +416 -416
- package/templates/languages/PYTHON.md +682 -682
- package/templates/languages/RUBY.md +421 -421
- package/templates/languages/RUST.md +477 -477
- package/templates/languages/SAS.md +73 -73
- package/templates/languages/SCALA.md +348 -348
- package/templates/languages/SOLIDITY.md +580 -580
- package/templates/languages/SQL.md +137 -137
- package/templates/languages/SWIFT.md +466 -466
- package/templates/languages/TYPESCRIPT.md +591 -591
- package/templates/languages/ZIG.md +265 -265
- package/templates/modules/ATLASSIAN.md +255 -255
- package/templates/modules/CONTEXT7.md +54 -54
- package/templates/modules/FIGMA.md +267 -267
- package/templates/modules/GITHUB_MCP.md +64 -64
- package/templates/modules/GRAFANA.md +328 -328
- package/templates/modules/MEMORY.md +126 -126
- package/templates/modules/NOTION.md +247 -247
- package/templates/modules/PLAYWRIGHT.md +90 -90
- package/templates/modules/RULEBOOK_MCP.md +156 -156
- package/templates/modules/SERENA.md +337 -337
- package/templates/modules/SUPABASE.md +223 -223
- package/templates/modules/SYNAP.md +69 -69
- package/templates/modules/VECTORIZER.md +63 -63
- package/templates/modules/sequential-thinking.md +42 -42
- package/templates/ralph/ralph-history.bat +4 -4
- package/templates/ralph/ralph-history.sh +5 -5
- package/templates/ralph/ralph-init.bat +5 -5
- package/templates/ralph/ralph-init.sh +5 -5
- package/templates/ralph/ralph-pause.bat +5 -5
- package/templates/ralph/ralph-pause.sh +5 -5
- package/templates/ralph/ralph-run.bat +5 -5
- package/templates/ralph/ralph-run.sh +5 -5
- package/templates/ralph/ralph-status.bat +4 -4
- package/templates/ralph/ralph-status.sh +5 -5
- package/templates/rules/follow-task-sequence.md +36 -36
- package/templates/rules/git-safety.md +29 -29
- package/templates/rules/incremental-tests.md +29 -29
- package/templates/rules/no-deferred.md +31 -31
- package/templates/rules/no-shortcuts.md +30 -30
- package/templates/rules/research-first.md +30 -30
- package/templates/rules/sequential-editing.md +21 -21
- package/templates/rules/session-workflow.md +24 -24
- package/templates/rules/task-decomposition.md +32 -32
- package/templates/services/AZURE_BLOB.md +184 -184
- package/templates/services/CASSANDRA.md +239 -239
- package/templates/services/DATADOG.md +26 -26
- package/templates/services/DOCKER.md +124 -124
- package/templates/services/DOCKER_COMPOSE.md +168 -168
- package/templates/services/DYNAMODB.md +308 -308
- package/templates/services/ELASTICSEARCH.md +347 -347
- package/templates/services/GCS.md +178 -178
- package/templates/services/HELM.md +194 -194
- package/templates/services/INFLUXDB.md +265 -265
- package/templates/services/KAFKA.md +341 -341
- package/templates/services/KUBERNETES.md +208 -208
- package/templates/services/MARIADB.md +183 -183
- package/templates/services/MEMCACHED.md +242 -242
- package/templates/services/MINIO.md +201 -201
- package/templates/services/MONGODB.md +268 -268
- package/templates/services/MYSQL.md +358 -358
- package/templates/services/NEO4J.md +247 -247
- package/templates/services/OPENTELEMETRY.md +25 -25
- package/templates/services/ORACLE.md +290 -290
- package/templates/services/PINO.md +24 -24
- package/templates/services/POSTGRESQL.md +326 -326
- package/templates/services/PROMETHEUS.md +33 -33
- package/templates/services/RABBITMQ.md +286 -286
- package/templates/services/REDIS.md +292 -292
- package/templates/services/S3.md +298 -298
- package/templates/services/SENTRY.md +23 -23
- package/templates/services/SQLITE.md +294 -294
- package/templates/services/SQLSERVER.md +294 -294
- package/templates/services/WINSTON.md +30 -30
- package/templates/skills/cli/aider/SKILL.md +59 -59
- package/templates/skills/cli/amazon-q/SKILL.md +35 -35
- package/templates/skills/cli/auggie/SKILL.md +42 -42
- package/templates/skills/cli/claude/SKILL.md +42 -42
- package/templates/skills/cli/cline/SKILL.md +42 -42
- package/templates/skills/cli/codebuddy/SKILL.md +30 -30
- package/templates/skills/cli/codeium/SKILL.md +30 -30
- package/templates/skills/cli/codex/SKILL.md +31 -31
- package/templates/skills/cli/continue/SKILL.md +44 -44
- package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
- package/templates/skills/cli/factory/SKILL.md +28 -28
- package/templates/skills/cli/gemini/SKILL.md +45 -45
- package/templates/skills/cli/kilocode/SKILL.md +28 -28
- package/templates/skills/cli/opencode/SKILL.md +28 -28
- package/templates/skills/core/agent-automation/SKILL.md +194 -194
- package/templates/skills/core/dag/SKILL.md +314 -314
- package/templates/skills/core/documentation-rules/SKILL.md +46 -46
- package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
- package/templates/skills/core/rulebook/SKILL.md +176 -176
- package/templates/skills/dev/accessibility/SKILL.md +17 -17
- package/templates/skills/dev/api-design/SKILL.md +15 -15
- package/templates/skills/dev/architect/SKILL.md +17 -17
- package/templates/skills/dev/build-fix/SKILL.md +17 -17
- package/templates/skills/dev/db-design/SKILL.md +15 -15
- package/templates/skills/dev/debug/SKILL.md +16 -16
- package/templates/skills/dev/deploy/SKILL.md +17 -17
- package/templates/skills/dev/docs/SKILL.md +17 -17
- package/templates/skills/dev/migrate/SKILL.md +15 -15
- package/templates/skills/dev/perf/SKILL.md +17 -17
- package/templates/skills/dev/refactor/SKILL.md +17 -17
- package/templates/skills/dev/research/SKILL.md +14 -14
- package/templates/skills/dev/review/SKILL.md +18 -18
- package/templates/skills/dev/security-audit/SKILL.md +17 -17
- package/templates/skills/frameworks/angular/SKILL.md +46 -46
- package/templates/skills/frameworks/django/SKILL.md +93 -93
- package/templates/skills/frameworks/electron/SKILL.md +157 -157
- package/templates/skills/frameworks/flask/SKILL.md +48 -48
- package/templates/skills/frameworks/flutter/SKILL.md +65 -65
- package/templates/skills/frameworks/jquery/SKILL.md +42 -42
- package/templates/skills/frameworks/laravel/SKILL.md +48 -48
- package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
- package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
- package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
- package/templates/skills/frameworks/rails/SKILL.md +76 -76
- package/templates/skills/frameworks/react/SKILL.md +48 -48
- package/templates/skills/frameworks/react-native/SKILL.md +57 -57
- package/templates/skills/frameworks/spring/SKILL.md +49 -49
- package/templates/skills/frameworks/symfony/SKILL.md +46 -46
- package/templates/skills/frameworks/vue/SKILL.md +46 -46
- package/templates/skills/frameworks/zend/SKILL.md +45 -45
- package/templates/skills/ides/copilot/SKILL.md +47 -47
- package/templates/skills/ides/cursor/SKILL.md +53 -53
- package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
- package/templates/skills/ides/replit/SKILL.md +46 -46
- package/templates/skills/ides/tabnine/SKILL.md +39 -39
- package/templates/skills/ides/vscode/SKILL.md +50 -50
- package/templates/skills/ides/windsurf/SKILL.md +46 -46
- package/templates/skills/ides/zed/SKILL.md +42 -42
- package/templates/skills/languages/c/SKILL.md +343 -343
- package/templates/skills/languages/cpp/SKILL.md +753 -753
- package/templates/skills/languages/csharp/SKILL.md +427 -427
- package/templates/skills/languages/elixir/SKILL.md +464 -464
- package/templates/skills/languages/erlang/SKILL.md +371 -371
- package/templates/skills/languages/go/SKILL.md +655 -655
- package/templates/skills/languages/haskell/SKILL.md +187 -187
- package/templates/skills/languages/java/SKILL.md +617 -617
- package/templates/skills/languages/javascript/SKILL.md +641 -641
- package/templates/skills/languages/julia/SKILL.md +107 -107
- package/templates/skills/languages/kotlin/SKILL.md +521 -521
- package/templates/skills/languages/lisp/SKILL.md +110 -110
- package/templates/skills/languages/lua/SKILL.md +84 -84
- package/templates/skills/languages/objectivec/SKILL.md +100 -100
- package/templates/skills/languages/php/SKILL.md +426 -426
- package/templates/skills/languages/python/SKILL.md +692 -692
- package/templates/skills/languages/ruby/SKILL.md +431 -431
- package/templates/skills/languages/rust/SKILL.md +487 -487
- package/templates/skills/languages/sas/SKILL.md +83 -83
- package/templates/skills/languages/scala/SKILL.md +358 -358
- package/templates/skills/languages/solidity/SKILL.md +590 -590
- package/templates/skills/languages/sql/SKILL.md +147 -147
- package/templates/skills/languages/swift/SKILL.md +476 -476
- package/templates/skills/languages/typescript/SKILL.md +302 -302
- package/templates/skills/languages/zig/SKILL.md +275 -275
- package/templates/skills/modules/atlassian/SKILL.md +265 -265
- package/templates/skills/modules/context7/SKILL.md +64 -64
- package/templates/skills/modules/figma/SKILL.md +277 -277
- package/templates/skills/modules/github-mcp/SKILL.md +74 -74
- package/templates/skills/modules/grafana/SKILL.md +338 -338
- package/templates/skills/modules/memory/SKILL.md +73 -73
- package/templates/skills/modules/notion/SKILL.md +257 -257
- package/templates/skills/modules/playwright/SKILL.md +100 -100
- package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
- package/templates/skills/modules/serena/SKILL.md +347 -347
- package/templates/skills/modules/supabase/SKILL.md +233 -233
- package/templates/skills/modules/synap/SKILL.md +79 -79
- package/templates/skills/modules/vectorizer/SKILL.md +73 -73
- package/templates/skills/services/azure-blob/SKILL.md +194 -194
- package/templates/skills/services/cassandra/SKILL.md +249 -249
- package/templates/skills/services/dynamodb/SKILL.md +318 -318
- package/templates/skills/services/elasticsearch/SKILL.md +357 -357
- package/templates/skills/services/gcs/SKILL.md +188 -188
- package/templates/skills/services/influxdb/SKILL.md +275 -275
- package/templates/skills/services/kafka/SKILL.md +351 -351
- package/templates/skills/services/mariadb/SKILL.md +193 -193
- package/templates/skills/services/memcached/SKILL.md +252 -252
- package/templates/skills/services/minio/SKILL.md +211 -211
- package/templates/skills/services/mongodb/SKILL.md +278 -278
- package/templates/skills/services/mysql/SKILL.md +368 -368
- package/templates/skills/services/neo4j/SKILL.md +257 -257
- package/templates/skills/services/oracle/SKILL.md +300 -300
- package/templates/skills/services/postgresql/SKILL.md +336 -336
- package/templates/skills/services/rabbitmq/SKILL.md +296 -296
- package/templates/skills/services/redis/SKILL.md +302 -302
- package/templates/skills/services/s3/SKILL.md +308 -308
- package/templates/skills/services/sqlite/SKILL.md +304 -304
- package/templates/skills/services/sqlserver/SKILL.md +304 -304
- package/templates/skills/workflows/ralph/SKILL.md +309 -309
- package/templates/skills/workflows/ralph/install.sh +87 -87
- package/templates/skills/workflows/ralph/manifest.json +158 -158
|
@@ -1,337 +1,337 @@
|
|
|
1
|
-
<!-- SERENA:START -->
|
|
2
|
-
# Serena MCP Instructions
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: Use MCP Serena for AI-powered development assistance, code analysis, and intelligent automation.
|
|
5
|
-
|
|
6
|
-
## Core Operations
|
|
7
|
-
|
|
8
|
-
### Code Analysis
|
|
9
|
-
```typescript
|
|
10
|
-
// Analyze code quality
|
|
11
|
-
serena.analyze({
|
|
12
|
-
file: 'src/auth/login.ts',
|
|
13
|
-
checks: ['security', 'performance', 'best-practices']
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
// Get refactoring suggestions
|
|
17
|
-
serena.suggest({
|
|
18
|
-
file: 'src/legacy-code.js',
|
|
19
|
-
type: 'refactor',
|
|
20
|
-
target: 'modern'
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
// Detect code smells
|
|
24
|
-
serena.detectSmells({
|
|
25
|
-
directory: 'src/',
|
|
26
|
-
severity: 'high'
|
|
27
|
-
})
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Code Generation
|
|
31
|
-
```typescript
|
|
32
|
-
// Generate tests
|
|
33
|
-
serena.generateTests({
|
|
34
|
-
sourceFile: 'src/utils/validator.ts',
|
|
35
|
-
framework: 'vitest',
|
|
36
|
-
coverage: 'comprehensive'
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
// Generate documentation
|
|
40
|
-
serena.generateDocs({
|
|
41
|
-
files: ['src/**/*.ts'],
|
|
42
|
-
format: 'markdown',
|
|
43
|
-
includeExamples: true
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
// Generate types
|
|
47
|
-
serena.generateTypes({
|
|
48
|
-
from: 'api-schema.json',
|
|
49
|
-
to: 'src/types/api.ts',
|
|
50
|
-
style: 'strict'
|
|
51
|
-
})
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Intelligent Refactoring
|
|
55
|
-
```typescript
|
|
56
|
-
// Extract function
|
|
57
|
-
serena.refactor({
|
|
58
|
-
action: 'extract-function',
|
|
59
|
-
file: 'src/complex-logic.ts',
|
|
60
|
-
selection: { start: 45, end: 78 },
|
|
61
|
-
newFunctionName: 'processUserData'
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
// Rename symbol
|
|
65
|
-
serena.refactor({
|
|
66
|
-
action: 'rename',
|
|
67
|
-
symbol: 'oldFunctionName',
|
|
68
|
-
newName: 'newFunctionName',
|
|
69
|
-
scope: 'project'
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
// Convert to async
|
|
73
|
-
serena.refactor({
|
|
74
|
-
action: 'convert-to-async',
|
|
75
|
-
file: 'src/sync-operations.ts'
|
|
76
|
-
})
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Code Review
|
|
80
|
-
```typescript
|
|
81
|
-
// Get code review
|
|
82
|
-
serena.review({
|
|
83
|
-
files: ['src/new-feature/**/*.ts'],
|
|
84
|
-
focus: ['security', 'performance', 'maintainability'],
|
|
85
|
-
severity: 'warning-and-above'
|
|
86
|
-
})
|
|
87
|
-
|
|
88
|
-
// Check best practices
|
|
89
|
-
serena.checkBestPractices({
|
|
90
|
-
language: 'typescript',
|
|
91
|
-
framework: 'react',
|
|
92
|
-
files: 'src/components/**/*.tsx'
|
|
93
|
-
})
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Common Patterns
|
|
97
|
-
|
|
98
|
-
### Pre-Commit Analysis
|
|
99
|
-
```typescript
|
|
100
|
-
// Analyze changed files before commit
|
|
101
|
-
const changedFiles = execSync('git diff --cached --name-only').toString().split('\n')
|
|
102
|
-
|
|
103
|
-
for (const file of changedFiles) {
|
|
104
|
-
const analysis = await serena.analyze({
|
|
105
|
-
file,
|
|
106
|
-
checks: ['security', 'performance', 'best-practices']
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
if (analysis.issues.filter(i => i.severity === 'high').length > 0) {
|
|
110
|
-
console.error(`❌ High severity issues found in ${file}`)
|
|
111
|
-
process.exit(1)
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Test Generation Workflow
|
|
117
|
-
```typescript
|
|
118
|
-
// Generate tests for new features
|
|
119
|
-
const newFiles = findFilesWithoutTests('src/features/new-feature')
|
|
120
|
-
|
|
121
|
-
for (const file of newFiles) {
|
|
122
|
-
const tests = await serena.generateTests({
|
|
123
|
-
sourceFile: file,
|
|
124
|
-
framework: 'vitest',
|
|
125
|
-
coverage: 'comprehensive'
|
|
126
|
-
})
|
|
127
|
-
|
|
128
|
-
const testFile = file.replace('.ts', '.test.ts')
|
|
129
|
-
fs.writeFileSync(testFile, tests.code)
|
|
130
|
-
|
|
131
|
-
console.log(`✅ Generated tests for ${file}`)
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Code Quality Dashboard
|
|
136
|
-
```typescript
|
|
137
|
-
// Generate project health report
|
|
138
|
-
const files = glob.sync('src/**/*.ts')
|
|
139
|
-
|
|
140
|
-
const report = {
|
|
141
|
-
totalFiles: files.length,
|
|
142
|
-
issues: [],
|
|
143
|
-
codeSmells: [],
|
|
144
|
-
coverage: 0
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
for (const file of files) {
|
|
148
|
-
const analysis = await serena.analyze({ file })
|
|
149
|
-
report.issues.push(...analysis.issues)
|
|
150
|
-
|
|
151
|
-
const smells = await serena.detectSmells({ file })
|
|
152
|
-
report.codeSmells.push(...smells)
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// Post to dashboard
|
|
156
|
-
await grafana.dashboards.updateDashboard({
|
|
157
|
-
panels: [
|
|
158
|
-
{ title: 'Code Quality', value: calculateQualityScore(report) },
|
|
159
|
-
{ title: 'Issues', value: report.issues.length },
|
|
160
|
-
{ title: 'Code Smells', value: report.codeSmells.length }
|
|
161
|
-
]
|
|
162
|
-
})
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Automated Refactoring Pipeline
|
|
166
|
-
```typescript
|
|
167
|
-
// Identify and fix code smells automatically
|
|
168
|
-
const smells = await serena.detectSmells({
|
|
169
|
-
directory: 'src/',
|
|
170
|
-
severity: 'medium-and-above'
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
for (const smell of smells) {
|
|
174
|
-
if (smell.autoFixable) {
|
|
175
|
-
const result = await serena.refactor({
|
|
176
|
-
action: smell.suggestedAction,
|
|
177
|
-
file: smell.file,
|
|
178
|
-
selection: smell.location
|
|
179
|
-
})
|
|
180
|
-
|
|
181
|
-
if (result.success) {
|
|
182
|
-
console.log(`✅ Fixed: ${smell.description}`)
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
### Documentation Sync
|
|
189
|
-
```typescript
|
|
190
|
-
// Keep documentation in sync with code
|
|
191
|
-
const apiFiles = glob.sync('src/api/**/*.ts')
|
|
192
|
-
|
|
193
|
-
for (const file of apiFiles) {
|
|
194
|
-
const docs = await serena.generateDocs({
|
|
195
|
-
files: [file],
|
|
196
|
-
format: 'markdown',
|
|
197
|
-
includeExamples: true
|
|
198
|
-
})
|
|
199
|
-
|
|
200
|
-
const docFile = `docs/api/${path.basename(file, '.ts')}.md`
|
|
201
|
-
fs.writeFileSync(docFile, docs)
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// Update CHANGELOG with AI summary
|
|
205
|
-
const changes = execSync('git log --oneline --since="1 week ago"').toString()
|
|
206
|
-
const summary = await serena.summarize({
|
|
207
|
-
text: changes,
|
|
208
|
-
format: 'changelog',
|
|
209
|
-
categorize: true
|
|
210
|
-
})
|
|
211
|
-
|
|
212
|
-
updateChangelog(summary)
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
### Intelligent Code Migration
|
|
216
|
-
```typescript
|
|
217
|
-
// Migrate from old to new API
|
|
218
|
-
await serena.migrate({
|
|
219
|
-
from: 'old-api-v1',
|
|
220
|
-
to: 'new-api-v2',
|
|
221
|
-
files: 'src/**/*.ts',
|
|
222
|
-
strategy: 'safe', // safe, aggressive, manual
|
|
223
|
-
createBackup: true
|
|
224
|
-
})
|
|
225
|
-
|
|
226
|
-
// Update imports
|
|
227
|
-
await serena.refactor({
|
|
228
|
-
action: 'update-imports',
|
|
229
|
-
from: '@old-package',
|
|
230
|
-
to: '@new-package',
|
|
231
|
-
scope: 'project'
|
|
232
|
-
})
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
## Best Practices
|
|
236
|
-
|
|
237
|
-
✅ **DO:**
|
|
238
|
-
- Run analysis before commits
|
|
239
|
-
- Generate tests for new code
|
|
240
|
-
- Use AI suggestions as starting point
|
|
241
|
-
- Review generated code before accepting
|
|
242
|
-
- Keep AI-generated docs in sync
|
|
243
|
-
- Use for repetitive refactoring tasks
|
|
244
|
-
- Leverage for code review automation
|
|
245
|
-
|
|
246
|
-
❌ **DON'T:**
|
|
247
|
-
- Blindly accept all suggestions
|
|
248
|
-
- Skip manual code review
|
|
249
|
-
- Use for critical security decisions
|
|
250
|
-
- Ignore high-severity issues
|
|
251
|
-
- Over-rely on automation
|
|
252
|
-
- Skip testing generated code
|
|
253
|
-
|
|
254
|
-
## Configuration
|
|
255
|
-
|
|
256
|
-
```json
|
|
257
|
-
{
|
|
258
|
-
"mcpServers": {
|
|
259
|
-
"serena": {
|
|
260
|
-
"command": "npx",
|
|
261
|
-
"args": ["-y", "@modelcontextprotocol/server-serena"],
|
|
262
|
-
"env": {
|
|
263
|
-
"SERENA_API_KEY": "your-api-key",
|
|
264
|
-
"SERENA_MODEL": "gpt-4",
|
|
265
|
-
"SERENA_TEMPERATURE": "0.2"
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
**Configuration Options:**
|
|
273
|
-
- `SERENA_MODEL`: AI model to use (gpt-4, claude-3, etc.)
|
|
274
|
-
- `SERENA_TEMPERATURE`: Creativity level (0.0-1.0, lower = more deterministic)
|
|
275
|
-
- `SERENA_MAX_TOKENS`: Maximum response length
|
|
276
|
-
- `SERENA_TIMEOUT`: Request timeout in seconds
|
|
277
|
-
|
|
278
|
-
## Integration with AGENT_AUTOMATION
|
|
279
|
-
|
|
280
|
-
Enhance automation workflow with AI assistance:
|
|
281
|
-
|
|
282
|
-
```typescript
|
|
283
|
-
// Step 1: AI-powered code review before quality checks
|
|
284
|
-
const review = await serena.review({
|
|
285
|
-
files: changedFiles,
|
|
286
|
-
focus: ['security', 'performance']
|
|
287
|
-
})
|
|
288
|
-
|
|
289
|
-
if (review.criticalIssues.length > 0) {
|
|
290
|
-
console.error('Critical issues found. Fix before proceeding.')
|
|
291
|
-
process.exit(1)
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
// Step 2: Generate missing tests
|
|
295
|
-
const filesWithoutTests = findFilesWithoutTests()
|
|
296
|
-
for (const file of filesWithoutTests) {
|
|
297
|
-
await serena.generateTests({ sourceFile: file })
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// Step 3: Normal AGENT_AUTOMATION workflow
|
|
301
|
-
// (lint, test, coverage, etc.)
|
|
302
|
-
|
|
303
|
-
// Step 4: AI-powered commit message
|
|
304
|
-
const commitMessage = await serena.generateCommitMessage({
|
|
305
|
-
diff: execSync('git diff --cached').toString(),
|
|
306
|
-
style: 'conventional'
|
|
307
|
-
})
|
|
308
|
-
|
|
309
|
-
git commit -m "${commitMessage}"
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
## CI/CD Integration
|
|
313
|
-
|
|
314
|
-
```yaml
|
|
315
|
-
# .github/workflows/serena-review.yml
|
|
316
|
-
name: AI Code Review
|
|
317
|
-
|
|
318
|
-
on: [pull_request]
|
|
319
|
-
|
|
320
|
-
jobs:
|
|
321
|
-
review:
|
|
322
|
-
runs-on: ubuntu-latest
|
|
323
|
-
steps:
|
|
324
|
-
- uses: actions/checkout@v4
|
|
325
|
-
|
|
326
|
-
- name: AI Code Review
|
|
327
|
-
run: |
|
|
328
|
-
npx serena review \
|
|
329
|
-
--files="$(git diff --name-only origin/main)" \
|
|
330
|
-
--severity=warning \
|
|
331
|
-
--format=github-comment
|
|
332
|
-
env:
|
|
333
|
-
SERENA_API_KEY: ${{ secrets.SERENA_API_KEY }}
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
<!-- SERENA:END -->
|
|
337
|
-
|
|
1
|
+
<!-- SERENA:START -->
|
|
2
|
+
# Serena MCP Instructions
|
|
3
|
+
|
|
4
|
+
**CRITICAL**: Use MCP Serena for AI-powered development assistance, code analysis, and intelligent automation.
|
|
5
|
+
|
|
6
|
+
## Core Operations
|
|
7
|
+
|
|
8
|
+
### Code Analysis
|
|
9
|
+
```typescript
|
|
10
|
+
// Analyze code quality
|
|
11
|
+
serena.analyze({
|
|
12
|
+
file: 'src/auth/login.ts',
|
|
13
|
+
checks: ['security', 'performance', 'best-practices']
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
// Get refactoring suggestions
|
|
17
|
+
serena.suggest({
|
|
18
|
+
file: 'src/legacy-code.js',
|
|
19
|
+
type: 'refactor',
|
|
20
|
+
target: 'modern'
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
// Detect code smells
|
|
24
|
+
serena.detectSmells({
|
|
25
|
+
directory: 'src/',
|
|
26
|
+
severity: 'high'
|
|
27
|
+
})
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Code Generation
|
|
31
|
+
```typescript
|
|
32
|
+
// Generate tests
|
|
33
|
+
serena.generateTests({
|
|
34
|
+
sourceFile: 'src/utils/validator.ts',
|
|
35
|
+
framework: 'vitest',
|
|
36
|
+
coverage: 'comprehensive'
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// Generate documentation
|
|
40
|
+
serena.generateDocs({
|
|
41
|
+
files: ['src/**/*.ts'],
|
|
42
|
+
format: 'markdown',
|
|
43
|
+
includeExamples: true
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
// Generate types
|
|
47
|
+
serena.generateTypes({
|
|
48
|
+
from: 'api-schema.json',
|
|
49
|
+
to: 'src/types/api.ts',
|
|
50
|
+
style: 'strict'
|
|
51
|
+
})
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Intelligent Refactoring
|
|
55
|
+
```typescript
|
|
56
|
+
// Extract function
|
|
57
|
+
serena.refactor({
|
|
58
|
+
action: 'extract-function',
|
|
59
|
+
file: 'src/complex-logic.ts',
|
|
60
|
+
selection: { start: 45, end: 78 },
|
|
61
|
+
newFunctionName: 'processUserData'
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
// Rename symbol
|
|
65
|
+
serena.refactor({
|
|
66
|
+
action: 'rename',
|
|
67
|
+
symbol: 'oldFunctionName',
|
|
68
|
+
newName: 'newFunctionName',
|
|
69
|
+
scope: 'project'
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
// Convert to async
|
|
73
|
+
serena.refactor({
|
|
74
|
+
action: 'convert-to-async',
|
|
75
|
+
file: 'src/sync-operations.ts'
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Code Review
|
|
80
|
+
```typescript
|
|
81
|
+
// Get code review
|
|
82
|
+
serena.review({
|
|
83
|
+
files: ['src/new-feature/**/*.ts'],
|
|
84
|
+
focus: ['security', 'performance', 'maintainability'],
|
|
85
|
+
severity: 'warning-and-above'
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
// Check best practices
|
|
89
|
+
serena.checkBestPractices({
|
|
90
|
+
language: 'typescript',
|
|
91
|
+
framework: 'react',
|
|
92
|
+
files: 'src/components/**/*.tsx'
|
|
93
|
+
})
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Common Patterns
|
|
97
|
+
|
|
98
|
+
### Pre-Commit Analysis
|
|
99
|
+
```typescript
|
|
100
|
+
// Analyze changed files before commit
|
|
101
|
+
const changedFiles = execSync('git diff --cached --name-only').toString().split('\n')
|
|
102
|
+
|
|
103
|
+
for (const file of changedFiles) {
|
|
104
|
+
const analysis = await serena.analyze({
|
|
105
|
+
file,
|
|
106
|
+
checks: ['security', 'performance', 'best-practices']
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
if (analysis.issues.filter(i => i.severity === 'high').length > 0) {
|
|
110
|
+
console.error(`❌ High severity issues found in ${file}`)
|
|
111
|
+
process.exit(1)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Test Generation Workflow
|
|
117
|
+
```typescript
|
|
118
|
+
// Generate tests for new features
|
|
119
|
+
const newFiles = findFilesWithoutTests('src/features/new-feature')
|
|
120
|
+
|
|
121
|
+
for (const file of newFiles) {
|
|
122
|
+
const tests = await serena.generateTests({
|
|
123
|
+
sourceFile: file,
|
|
124
|
+
framework: 'vitest',
|
|
125
|
+
coverage: 'comprehensive'
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
const testFile = file.replace('.ts', '.test.ts')
|
|
129
|
+
fs.writeFileSync(testFile, tests.code)
|
|
130
|
+
|
|
131
|
+
console.log(`✅ Generated tests for ${file}`)
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Code Quality Dashboard
|
|
136
|
+
```typescript
|
|
137
|
+
// Generate project health report
|
|
138
|
+
const files = glob.sync('src/**/*.ts')
|
|
139
|
+
|
|
140
|
+
const report = {
|
|
141
|
+
totalFiles: files.length,
|
|
142
|
+
issues: [],
|
|
143
|
+
codeSmells: [],
|
|
144
|
+
coverage: 0
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
for (const file of files) {
|
|
148
|
+
const analysis = await serena.analyze({ file })
|
|
149
|
+
report.issues.push(...analysis.issues)
|
|
150
|
+
|
|
151
|
+
const smells = await serena.detectSmells({ file })
|
|
152
|
+
report.codeSmells.push(...smells)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Post to dashboard
|
|
156
|
+
await grafana.dashboards.updateDashboard({
|
|
157
|
+
panels: [
|
|
158
|
+
{ title: 'Code Quality', value: calculateQualityScore(report) },
|
|
159
|
+
{ title: 'Issues', value: report.issues.length },
|
|
160
|
+
{ title: 'Code Smells', value: report.codeSmells.length }
|
|
161
|
+
]
|
|
162
|
+
})
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Automated Refactoring Pipeline
|
|
166
|
+
```typescript
|
|
167
|
+
// Identify and fix code smells automatically
|
|
168
|
+
const smells = await serena.detectSmells({
|
|
169
|
+
directory: 'src/',
|
|
170
|
+
severity: 'medium-and-above'
|
|
171
|
+
})
|
|
172
|
+
|
|
173
|
+
for (const smell of smells) {
|
|
174
|
+
if (smell.autoFixable) {
|
|
175
|
+
const result = await serena.refactor({
|
|
176
|
+
action: smell.suggestedAction,
|
|
177
|
+
file: smell.file,
|
|
178
|
+
selection: smell.location
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
if (result.success) {
|
|
182
|
+
console.log(`✅ Fixed: ${smell.description}`)
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Documentation Sync
|
|
189
|
+
```typescript
|
|
190
|
+
// Keep documentation in sync with code
|
|
191
|
+
const apiFiles = glob.sync('src/api/**/*.ts')
|
|
192
|
+
|
|
193
|
+
for (const file of apiFiles) {
|
|
194
|
+
const docs = await serena.generateDocs({
|
|
195
|
+
files: [file],
|
|
196
|
+
format: 'markdown',
|
|
197
|
+
includeExamples: true
|
|
198
|
+
})
|
|
199
|
+
|
|
200
|
+
const docFile = `docs/api/${path.basename(file, '.ts')}.md`
|
|
201
|
+
fs.writeFileSync(docFile, docs)
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// Update CHANGELOG with AI summary
|
|
205
|
+
const changes = execSync('git log --oneline --since="1 week ago"').toString()
|
|
206
|
+
const summary = await serena.summarize({
|
|
207
|
+
text: changes,
|
|
208
|
+
format: 'changelog',
|
|
209
|
+
categorize: true
|
|
210
|
+
})
|
|
211
|
+
|
|
212
|
+
updateChangelog(summary)
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Intelligent Code Migration
|
|
216
|
+
```typescript
|
|
217
|
+
// Migrate from old to new API
|
|
218
|
+
await serena.migrate({
|
|
219
|
+
from: 'old-api-v1',
|
|
220
|
+
to: 'new-api-v2',
|
|
221
|
+
files: 'src/**/*.ts',
|
|
222
|
+
strategy: 'safe', // safe, aggressive, manual
|
|
223
|
+
createBackup: true
|
|
224
|
+
})
|
|
225
|
+
|
|
226
|
+
// Update imports
|
|
227
|
+
await serena.refactor({
|
|
228
|
+
action: 'update-imports',
|
|
229
|
+
from: '@old-package',
|
|
230
|
+
to: '@new-package',
|
|
231
|
+
scope: 'project'
|
|
232
|
+
})
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Best Practices
|
|
236
|
+
|
|
237
|
+
✅ **DO:**
|
|
238
|
+
- Run analysis before commits
|
|
239
|
+
- Generate tests for new code
|
|
240
|
+
- Use AI suggestions as starting point
|
|
241
|
+
- Review generated code before accepting
|
|
242
|
+
- Keep AI-generated docs in sync
|
|
243
|
+
- Use for repetitive refactoring tasks
|
|
244
|
+
- Leverage for code review automation
|
|
245
|
+
|
|
246
|
+
❌ **DON'T:**
|
|
247
|
+
- Blindly accept all suggestions
|
|
248
|
+
- Skip manual code review
|
|
249
|
+
- Use for critical security decisions
|
|
250
|
+
- Ignore high-severity issues
|
|
251
|
+
- Over-rely on automation
|
|
252
|
+
- Skip testing generated code
|
|
253
|
+
|
|
254
|
+
## Configuration
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"mcpServers": {
|
|
259
|
+
"serena": {
|
|
260
|
+
"command": "npx",
|
|
261
|
+
"args": ["-y", "@modelcontextprotocol/server-serena"],
|
|
262
|
+
"env": {
|
|
263
|
+
"SERENA_API_KEY": "your-api-key",
|
|
264
|
+
"SERENA_MODEL": "gpt-4",
|
|
265
|
+
"SERENA_TEMPERATURE": "0.2"
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Configuration Options:**
|
|
273
|
+
- `SERENA_MODEL`: AI model to use (gpt-4, claude-3, etc.)
|
|
274
|
+
- `SERENA_TEMPERATURE`: Creativity level (0.0-1.0, lower = more deterministic)
|
|
275
|
+
- `SERENA_MAX_TOKENS`: Maximum response length
|
|
276
|
+
- `SERENA_TIMEOUT`: Request timeout in seconds
|
|
277
|
+
|
|
278
|
+
## Integration with AGENT_AUTOMATION
|
|
279
|
+
|
|
280
|
+
Enhance automation workflow with AI assistance:
|
|
281
|
+
|
|
282
|
+
```typescript
|
|
283
|
+
// Step 1: AI-powered code review before quality checks
|
|
284
|
+
const review = await serena.review({
|
|
285
|
+
files: changedFiles,
|
|
286
|
+
focus: ['security', 'performance']
|
|
287
|
+
})
|
|
288
|
+
|
|
289
|
+
if (review.criticalIssues.length > 0) {
|
|
290
|
+
console.error('Critical issues found. Fix before proceeding.')
|
|
291
|
+
process.exit(1)
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// Step 2: Generate missing tests
|
|
295
|
+
const filesWithoutTests = findFilesWithoutTests()
|
|
296
|
+
for (const file of filesWithoutTests) {
|
|
297
|
+
await serena.generateTests({ sourceFile: file })
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// Step 3: Normal AGENT_AUTOMATION workflow
|
|
301
|
+
// (lint, test, coverage, etc.)
|
|
302
|
+
|
|
303
|
+
// Step 4: AI-powered commit message
|
|
304
|
+
const commitMessage = await serena.generateCommitMessage({
|
|
305
|
+
diff: execSync('git diff --cached').toString(),
|
|
306
|
+
style: 'conventional'
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
git commit -m "${commitMessage}"
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## CI/CD Integration
|
|
313
|
+
|
|
314
|
+
```yaml
|
|
315
|
+
# .github/workflows/serena-review.yml
|
|
316
|
+
name: AI Code Review
|
|
317
|
+
|
|
318
|
+
on: [pull_request]
|
|
319
|
+
|
|
320
|
+
jobs:
|
|
321
|
+
review:
|
|
322
|
+
runs-on: ubuntu-latest
|
|
323
|
+
steps:
|
|
324
|
+
- uses: actions/checkout@v4
|
|
325
|
+
|
|
326
|
+
- name: AI Code Review
|
|
327
|
+
run: |
|
|
328
|
+
npx serena review \
|
|
329
|
+
--files="$(git diff --name-only origin/main)" \
|
|
330
|
+
--severity=warning \
|
|
331
|
+
--format=github-comment
|
|
332
|
+
env:
|
|
333
|
+
SERENA_API_KEY: ${{ secrets.SERENA_API_KEY }}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
<!-- SERENA:END -->
|
|
337
|
+
|