claude-code-workflow 6.3.18 → 6.3.19
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/CLAUDE.md +8 -5
- package/.claude/agents/action-planning-agent.md +26 -2
- package/.claude/agents/code-developer.md +132 -43
- package/.claude/agents/debug-explore-agent.md +434 -0
- package/.claude/agents/test-fix-agent.md +14 -0
- package/.claude/commands/issue/discover.md +41 -0
- package/.claude/commands/issue/execute.md +200 -19
- package/.claude/commands/issue/new.md +1 -1
- package/.claude/commands/issue/plan.md +6 -1
- package/.claude/commands/issue/queue.md +94 -39
- package/.claude/commands/memory/swagger-docs.md +773 -0
- package/.claude/commands/workflow/brainstorm/auto-parallel.md +21 -21
- package/.claude/commands/workflow/execute.md +54 -34
- package/.claude/commands/workflow/lite-execute.md +48 -164
- package/.claude/commands/workflow/lite-fix.md +4 -4
- package/.claude/commands/workflow/lite-plan.md +5 -5
- package/.claude/commands/workflow/plan.md +27 -27
- package/.claude/commands/workflow/review.md +42 -17
- package/.claude/commands/workflow/tdd-plan.md +25 -25
- package/.claude/commands/workflow/test-fix-gen.md +10 -10
- package/.claude/commands/workflow/test-gen.md +14 -14
- package/.claude/commands/workflow/ui-design/explore-auto.md +21 -21
- package/.claude/commands/workflow/ui-design/imitate-auto.md +24 -24
- package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +693 -0
- package/.claude/skills/ccw/SKILL.md +462 -0
- package/.claude/skills/ccw/index/command-capabilities.json +127 -0
- package/.claude/skills/ccw/index/intent-rules.json +136 -0
- package/.claude/skills/ccw/index/workflow-chains.json +451 -0
- package/.claude/skills/ccw/phases/actions/bugfix.md +218 -0
- package/.claude/skills/ccw/phases/actions/coupled.md +194 -0
- package/.claude/skills/ccw/phases/actions/docs.md +93 -0
- package/.claude/skills/ccw/phases/actions/full.md +154 -0
- package/.claude/skills/ccw/phases/actions/issue.md +201 -0
- package/.claude/skills/ccw/phases/actions/rapid.md +104 -0
- package/.claude/skills/ccw/phases/actions/review-fix.md +84 -0
- package/.claude/skills/ccw/phases/actions/tdd.md +66 -0
- package/.claude/skills/ccw/phases/actions/ui.md +79 -0
- package/.claude/skills/ccw/phases/orchestrator.md +435 -0
- package/.claude/skills/ccw/specs/intent-classification.md +336 -0
- package/.claude/skills/ccw-help/SKILL.md +177 -0
- package/.claude/skills/ccw-help/index/all-agents.json +82 -0
- package/.claude/skills/{command-guide → ccw-help}/index/all-commands.json +183 -73
- package/.claude/skills/{command-guide → ccw-help}/index/by-category.json +187 -73
- package/.claude/skills/{command-guide → ccw-help}/index/by-use-case.json +295 -185
- package/.claude/skills/{command-guide → ccw-help}/index/command-relationships.json +19 -166
- package/.claude/skills/{command-guide → ccw-help}/index/essential-commands.json +10 -10
- package/.claude/skills/ccw-help/scripts/analyze_commands.py +337 -0
- package/.claude/skills/code-reviewer/README.md +340 -0
- package/.claude/skills/code-reviewer/SKILL.md +308 -0
- package/.claude/skills/code-reviewer/phases/01-code-discovery.md +246 -0
- package/.claude/skills/code-reviewer/phases/02-security-analysis.md +442 -0
- package/.claude/skills/code-reviewer/phases/03-best-practices-review.md +36 -0
- package/.claude/skills/code-reviewer/phases/04-report-generation.md +278 -0
- package/.claude/skills/code-reviewer/specs/best-practices-requirements.md +346 -0
- package/.claude/skills/code-reviewer/specs/quality-standards.md +252 -0
- package/.claude/skills/code-reviewer/specs/security-requirements.md +243 -0
- package/.claude/skills/code-reviewer/templates/best-practice-finding.md +234 -0
- package/.claude/skills/code-reviewer/templates/report-template.md +316 -0
- package/.claude/skills/code-reviewer/templates/security-finding.md +161 -0
- package/.claude/skills/skill-generator/SKILL.md +187 -0
- package/.claude/skills/skill-generator/phases/01-requirements-discovery.md +239 -0
- package/.claude/skills/skill-generator/phases/02-structure-generation.md +207 -0
- package/.claude/skills/skill-generator/phases/03-phase-generation.md +802 -0
- package/.claude/skills/skill-generator/phases/04-specs-templates.md +328 -0
- package/.claude/skills/skill-generator/phases/05-validation.md +334 -0
- package/.claude/skills/skill-generator/specs/cli-integration.md +448 -0
- package/.claude/skills/skill-generator/specs/execution-modes.md +396 -0
- package/.claude/skills/skill-generator/specs/scripting-integration.md +265 -0
- package/.claude/skills/skill-generator/specs/skill-requirements.md +466 -0
- package/.claude/skills/skill-generator/templates/autonomous-action.md +517 -0
- package/.claude/skills/skill-generator/templates/autonomous-orchestrator.md +276 -0
- package/.claude/skills/skill-generator/templates/code-analysis-action.md +503 -0
- package/.claude/skills/skill-generator/templates/llm-action.md +355 -0
- package/.claude/skills/skill-generator/templates/script-bash.md +277 -0
- package/.claude/skills/skill-generator/templates/script-python.md +198 -0
- package/.claude/skills/skill-generator/templates/sequential-phase.md +441 -0
- package/.claude/skills/skill-generator/templates/skill-md.md +156 -0
- package/.claude/workflows/chinese-response.md +15 -28
- package/.claude/workflows/cli-templates/prompts/documentation/swagger-api.txt +266 -0
- package/.claude/workflows/cli-tools-usage.md +221 -177
- package/.claude/workflows/windows-platform.md +13 -10
- package/.codex/prompts/issue-execute.md +305 -82
- package/.codex/prompts/issue-queue.md +22 -0
- package/.codex/prompts/lite-execute.md +36 -11
- package/README.md +309 -305
- package/ccw/README.md +10 -4
- package/ccw/dist/cli.d.ts.map +1 -1
- package/ccw/dist/cli.js +4 -1
- package/ccw/dist/cli.js.map +1 -1
- package/ccw/dist/commands/cli.d.ts.map +1 -1
- package/ccw/dist/commands/cli.js +131 -34
- package/ccw/dist/commands/cli.js.map +1 -1
- package/ccw/dist/commands/issue.d.ts +152 -0
- package/ccw/dist/commands/issue.d.ts.map +1 -1
- package/ccw/dist/commands/issue.js +550 -85
- package/ccw/dist/commands/issue.js.map +1 -1
- package/ccw/dist/commands/serve.d.ts +1 -0
- package/ccw/dist/commands/serve.d.ts.map +1 -1
- package/ccw/dist/commands/serve.js +12 -5
- package/ccw/dist/commands/serve.js.map +1 -1
- package/ccw/dist/commands/stop.d.ts.map +1 -1
- package/ccw/dist/commands/stop.js +29 -5
- package/ccw/dist/commands/stop.js.map +1 -1
- package/ccw/dist/commands/tool.d.ts.map +1 -1
- package/ccw/dist/commands/tool.js +19 -2
- package/ccw/dist/commands/tool.js.map +1 -1
- package/ccw/dist/commands/view.d.ts +1 -0
- package/ccw/dist/commands/view.d.ts.map +1 -1
- package/ccw/dist/commands/view.js +10 -3
- package/ccw/dist/commands/view.js.map +1 -1
- package/ccw/dist/config/cli-settings-manager.d.ts +86 -0
- package/ccw/dist/config/cli-settings-manager.d.ts.map +1 -0
- package/ccw/dist/config/cli-settings-manager.js +392 -0
- package/ccw/dist/config/cli-settings-manager.js.map +1 -0
- package/ccw/dist/config/litellm-api-config-manager.d.ts +71 -5
- package/ccw/dist/config/litellm-api-config-manager.d.ts.map +1 -1
- package/ccw/dist/config/litellm-api-config-manager.js +290 -20
- package/ccw/dist/config/litellm-api-config-manager.js.map +1 -1
- package/ccw/dist/core/auth/csrf-manager.d.ts +18 -0
- package/ccw/dist/core/auth/csrf-manager.d.ts.map +1 -0
- package/ccw/dist/core/auth/csrf-manager.js +80 -0
- package/ccw/dist/core/auth/csrf-manager.js.map +1 -0
- package/ccw/dist/core/auth/csrf-middleware.d.ts +8 -0
- package/ccw/dist/core/auth/csrf-middleware.d.ts.map +1 -0
- package/ccw/dist/core/auth/csrf-middleware.js +141 -0
- package/ccw/dist/core/auth/csrf-middleware.js.map +1 -0
- package/ccw/dist/core/auth/middleware.d.ts +15 -0
- package/ccw/dist/core/auth/middleware.d.ts.map +1 -0
- package/ccw/dist/core/auth/middleware.js +76 -0
- package/ccw/dist/core/auth/middleware.js.map +1 -0
- package/ccw/dist/core/auth/token-manager.d.ts +41 -0
- package/ccw/dist/core/auth/token-manager.d.ts.map +1 -0
- package/ccw/dist/core/auth/token-manager.js +171 -0
- package/ccw/dist/core/auth/token-manager.js.map +1 -0
- package/ccw/dist/core/cache-manager.d.ts +6 -6
- package/ccw/dist/core/cache-manager.d.ts.map +1 -1
- package/ccw/dist/core/cache-manager.js +70 -48
- package/ccw/dist/core/cache-manager.js.map +1 -1
- package/ccw/dist/core/claude-freshness.d.ts.map +1 -1
- package/ccw/dist/core/claude-freshness.js +23 -3
- package/ccw/dist/core/claude-freshness.js.map +1 -1
- package/ccw/dist/core/core-memory-store.d.ts.map +1 -1
- package/ccw/dist/core/core-memory-store.js +2 -1
- package/ccw/dist/core/core-memory-store.js.map +1 -1
- package/ccw/dist/core/cors.d.ts +3 -0
- package/ccw/dist/core/cors.d.ts.map +1 -0
- package/ccw/dist/core/cors.js +10 -0
- package/ccw/dist/core/cors.js.map +1 -0
- package/ccw/dist/core/dashboard-generator-patch.js +0 -1
- package/ccw/dist/core/dashboard-generator-patch.js.map +1 -1
- package/ccw/dist/core/dashboard-generator.d.ts.map +1 -1
- package/ccw/dist/core/dashboard-generator.js +417 -416
- package/ccw/dist/core/dashboard-generator.js.map +1 -1
- package/ccw/dist/core/data-aggregator.js +2 -2
- package/ccw/dist/core/data-aggregator.js.map +1 -1
- package/ccw/dist/core/lite-scanner.d.ts +1 -1
- package/ccw/dist/core/lite-scanner.d.ts.map +1 -1
- package/ccw/dist/core/lite-scanner.js +130 -127
- package/ccw/dist/core/lite-scanner.js.map +1 -1
- package/ccw/dist/core/routes/auth-routes.d.ts +12 -0
- package/ccw/dist/core/routes/auth-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/auth-routes.js +80 -0
- package/ccw/dist/core/routes/auth-routes.js.map +1 -0
- package/ccw/dist/core/routes/ccw-routes.d.ts +1 -14
- package/ccw/dist/core/routes/ccw-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/ccw-routes.js +9 -4
- package/ccw/dist/core/routes/ccw-routes.js.map +1 -1
- package/ccw/dist/core/routes/claude-routes.d.ts +1 -14
- package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/claude-routes.js +98 -39
- package/ccw/dist/core/routes/claude-routes.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts +14 -12
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +122 -43
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/cli-settings-routes.d.ts +11 -0
- package/ccw/dist/core/routes/cli-settings-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/cli-settings-routes.js +204 -0
- package/ccw/dist/core/routes/cli-settings-routes.js.map +1 -0
- package/ccw/dist/core/routes/codexlens/config-handlers.d.ts +6 -0
- package/ccw/dist/core/routes/codexlens/config-handlers.d.ts.map +1 -0
- package/ccw/dist/core/routes/codexlens/config-handlers.js +1195 -0
- package/ccw/dist/core/routes/codexlens/config-handlers.js.map +1 -0
- package/ccw/dist/core/routes/codexlens/index-handlers.d.ts +10 -0
- package/ccw/dist/core/routes/codexlens/index-handlers.d.ts.map +1 -0
- package/ccw/dist/core/routes/codexlens/index-handlers.js +322 -0
- package/ccw/dist/core/routes/codexlens/index-handlers.js.map +1 -0
- package/ccw/dist/core/routes/codexlens/semantic-handlers.d.ts +6 -0
- package/ccw/dist/core/routes/codexlens/semantic-handlers.d.ts.map +1 -0
- package/ccw/dist/core/routes/codexlens/semantic-handlers.js +865 -0
- package/ccw/dist/core/routes/codexlens/semantic-handlers.js.map +1 -0
- package/ccw/dist/core/routes/codexlens/utils.d.ts +23 -0
- package/ccw/dist/core/routes/codexlens/utils.d.ts.map +1 -0
- package/ccw/dist/core/routes/codexlens/utils.js +85 -0
- package/ccw/dist/core/routes/codexlens/utils.js.map +1 -0
- package/ccw/dist/core/routes/codexlens/watcher-handlers.d.ts +13 -0
- package/ccw/dist/core/routes/codexlens/watcher-handlers.d.ts.map +1 -0
- package/ccw/dist/core/routes/codexlens/watcher-handlers.js +235 -0
- package/ccw/dist/core/routes/codexlens/watcher-handlers.js.map +1 -0
- package/ccw/dist/core/routes/codexlens-routes.d.ts +2 -11
- package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.js +10 -981
- package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
- package/ccw/dist/core/routes/discovery-routes.d.ts +1 -35
- package/ccw/dist/core/routes/discovery-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/discovery-routes.js +25 -0
- package/ccw/dist/core/routes/discovery-routes.js.map +1 -1
- package/ccw/dist/core/routes/files-routes.d.ts +1 -14
- package/ccw/dist/core/routes/files-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/files-routes.js +57 -14
- package/ccw/dist/core/routes/files-routes.js.map +1 -1
- package/ccw/dist/core/routes/graph-routes.d.ts +1 -14
- package/ccw/dist/core/routes/graph-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/graph-routes.js +36 -37
- package/ccw/dist/core/routes/graph-routes.js.map +1 -1
- package/ccw/dist/core/routes/help-routes.d.ts +1 -14
- package/ccw/dist/core/routes/help-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/help-routes.js +5 -0
- package/ccw/dist/core/routes/help-routes.js.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.d.ts +4 -14
- package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.js +43 -21
- package/ccw/dist/core/routes/hooks-routes.js.map +1 -1
- package/ccw/dist/core/routes/issue-routes.d.ts +1 -34
- package/ccw/dist/core/routes/issue-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/issue-routes.js +24 -0
- package/ccw/dist/core/routes/issue-routes.js.map +1 -1
- package/ccw/dist/core/routes/litellm-api-routes.d.ts +1 -14
- package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/litellm-api-routes.js +505 -48
- package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -1
- package/ccw/dist/core/routes/litellm-routes.d.ts +1 -14
- package/ccw/dist/core/routes/litellm-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/litellm-routes.js +28 -11
- package/ccw/dist/core/routes/litellm-routes.js.map +1 -1
- package/ccw/dist/core/routes/mcp-routes.d.ts +1 -14
- package/ccw/dist/core/routes/mcp-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/mcp-routes.js +99 -30
- package/ccw/dist/core/routes/mcp-routes.js.map +1 -1
- package/ccw/dist/core/routes/mcp-templates-db.d.ts.map +1 -1
- package/ccw/dist/core/routes/mcp-templates-db.js +30 -31
- package/ccw/dist/core/routes/mcp-templates-db.js.map +1 -1
- package/ccw/dist/core/routes/memory-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/memory-routes.js +74 -24
- package/ccw/dist/core/routes/memory-routes.js.map +1 -1
- package/ccw/dist/core/routes/nav-status-routes.d.ts +3 -0
- package/ccw/dist/core/routes/nav-status-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/nav-status-routes.js +217 -0
- package/ccw/dist/core/routes/nav-status-routes.js.map +1 -0
- package/ccw/dist/core/routes/rules-routes.d.ts +1 -14
- package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/rules-routes.js +481 -58
- package/ccw/dist/core/routes/rules-routes.js.map +1 -1
- package/ccw/dist/core/routes/session-routes.d.ts +1 -14
- package/ccw/dist/core/routes/session-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/session-routes.js +15 -3
- package/ccw/dist/core/routes/session-routes.js.map +1 -1
- package/ccw/dist/core/routes/skills-routes.d.ts +1 -14
- package/ccw/dist/core/routes/skills-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/skills-routes.js +394 -112
- package/ccw/dist/core/routes/skills-routes.js.map +1 -1
- package/ccw/dist/core/routes/status-routes.d.ts +1 -14
- package/ccw/dist/core/routes/status-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/status-routes.js +4 -0
- package/ccw/dist/core/routes/status-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.d.ts +4 -10
- package/ccw/dist/core/routes/system-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +6 -4
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/dist/core/routes/types.d.ts +19 -0
- package/ccw/dist/core/routes/types.d.ts.map +1 -0
- package/ccw/dist/core/routes/types.js +2 -0
- package/ccw/dist/core/routes/types.js.map +1 -0
- package/ccw/dist/core/server.d.ts.map +1 -1
- package/ccw/dist/core/server.js +201 -29
- package/ccw/dist/core/server.js.map +1 -1
- package/ccw/dist/core/services/api-key-tester.d.ts +31 -0
- package/ccw/dist/core/services/api-key-tester.d.ts.map +1 -0
- package/ccw/dist/core/services/api-key-tester.js +106 -0
- package/ccw/dist/core/services/api-key-tester.js.map +1 -0
- package/ccw/dist/core/services/health-check-service.d.ts +82 -0
- package/ccw/dist/core/services/health-check-service.d.ts.map +1 -0
- package/ccw/dist/core/services/health-check-service.js +271 -0
- package/ccw/dist/core/services/health-check-service.js.map +1 -0
- package/ccw/dist/core/websocket.d.ts +9 -7
- package/ccw/dist/core/websocket.d.ts.map +1 -1
- package/ccw/dist/core/websocket.js +9 -4
- package/ccw/dist/core/websocket.js.map +1 -1
- package/ccw/dist/tools/claude-cli-tools.d.ts +152 -28
- package/ccw/dist/tools/claude-cli-tools.d.ts.map +1 -1
- package/ccw/dist/tools/claude-cli-tools.js +490 -100
- package/ccw/dist/tools/claude-cli-tools.js.map +1 -1
- package/ccw/dist/tools/cli-config-manager.d.ts +24 -8
- package/ccw/dist/tools/cli-config-manager.d.ts.map +1 -1
- package/ccw/dist/tools/cli-config-manager.js +76 -156
- package/ccw/dist/tools/cli-config-manager.js.map +1 -1
- package/ccw/dist/tools/cli-executor-core.d.ts +85 -0
- package/ccw/dist/tools/cli-executor-core.d.ts.map +1 -0
- package/ccw/dist/tools/cli-executor-core.js +1310 -0
- package/ccw/dist/tools/cli-executor-core.js.map +1 -0
- package/ccw/dist/tools/cli-executor-state.d.ts +241 -0
- package/ccw/dist/tools/cli-executor-state.d.ts.map +1 -0
- package/ccw/dist/tools/cli-executor-state.js +392 -0
- package/ccw/dist/tools/cli-executor-state.js.map +1 -0
- package/ccw/dist/tools/cli-executor-utils.d.ts +36 -0
- package/ccw/dist/tools/cli-executor-utils.d.ts.map +1 -0
- package/ccw/dist/tools/cli-executor-utils.js +298 -0
- package/ccw/dist/tools/cli-executor-utils.js.map +1 -0
- package/ccw/dist/tools/cli-executor.d.ts +3 -377
- package/ccw/dist/tools/cli-executor.d.ts.map +1 -1
- package/ccw/dist/tools/cli-executor.js +3 -1884
- package/ccw/dist/tools/cli-executor.js.map +1 -1
- package/ccw/dist/tools/cli-history-store.d.ts +2 -0
- package/ccw/dist/tools/cli-history-store.d.ts.map +1 -1
- package/ccw/dist/tools/cli-history-store.js.map +1 -1
- package/ccw/dist/tools/cli-output-converter.d.ts +192 -0
- package/ccw/dist/tools/cli-output-converter.d.ts.map +1 -0
- package/ccw/dist/tools/cli-output-converter.js +1047 -0
- package/ccw/dist/tools/cli-output-converter.js.map +1 -0
- package/ccw/dist/tools/cli-prompt-builder.d.ts +113 -0
- package/ccw/dist/tools/cli-prompt-builder.d.ts.map +1 -0
- package/ccw/dist/tools/cli-prompt-builder.js +363 -0
- package/ccw/dist/tools/cli-prompt-builder.js.map +1 -0
- package/ccw/dist/tools/codex-lens.d.ts +15 -1
- package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
- package/ccw/dist/tools/codex-lens.js +289 -55
- package/ccw/dist/tools/codex-lens.js.map +1 -1
- package/ccw/dist/tools/detect-changed-modules.d.ts.map +1 -1
- package/ccw/dist/tools/detect-changed-modules.js +22 -4
- package/ccw/dist/tools/detect-changed-modules.js.map +1 -1
- package/ccw/dist/tools/index.d.ts.map +1 -1
- package/ccw/dist/tools/index.js +2 -0
- package/ccw/dist/tools/index.js.map +1 -1
- package/ccw/dist/tools/litellm-client.d.ts.map +1 -1
- package/ccw/dist/tools/litellm-client.js +10 -4
- package/ccw/dist/tools/litellm-client.js.map +1 -1
- package/ccw/dist/tools/litellm-executor.d.ts +2 -4
- package/ccw/dist/tools/litellm-executor.d.ts.map +1 -1
- package/ccw/dist/tools/litellm-executor.js +39 -8
- package/ccw/dist/tools/litellm-executor.js.map +1 -1
- package/ccw/dist/tools/native-session-discovery.d.ts +2 -0
- package/ccw/dist/tools/native-session-discovery.d.ts.map +1 -1
- package/ccw/dist/tools/native-session-discovery.js +197 -1
- package/ccw/dist/tools/native-session-discovery.js.map +1 -1
- package/ccw/dist/tools/session-manager.d.ts.map +1 -1
- package/ccw/dist/tools/session-manager.js +79 -0
- package/ccw/dist/tools/session-manager.js.map +1 -1
- package/ccw/dist/tools/skill-context-loader.d.ts +15 -0
- package/ccw/dist/tools/skill-context-loader.d.ts.map +1 -0
- package/ccw/dist/tools/skill-context-loader.js +198 -0
- package/ccw/dist/tools/skill-context-loader.js.map +1 -0
- package/ccw/dist/tools/smart-search.d.ts +8 -3
- package/ccw/dist/tools/smart-search.d.ts.map +1 -1
- package/ccw/dist/tools/smart-search.js +378 -75
- package/ccw/dist/tools/smart-search.js.map +1 -1
- package/ccw/dist/types/cli-settings.d.ts +86 -0
- package/ccw/dist/types/cli-settings.d.ts.map +1 -0
- package/ccw/dist/types/cli-settings.js +54 -0
- package/ccw/dist/types/cli-settings.js.map +1 -0
- package/ccw/dist/types/litellm-api-config.d.ts +40 -1
- package/ccw/dist/types/litellm-api-config.d.ts.map +1 -1
- package/ccw/dist/utils/exec-constants.d.ts +25 -0
- package/ccw/dist/utils/exec-constants.d.ts.map +1 -0
- package/ccw/dist/utils/exec-constants.js +25 -0
- package/ccw/dist/utils/exec-constants.js.map +1 -0
- package/ccw/dist/utils/path-resolver.d.ts +1 -0
- package/ccw/dist/utils/path-resolver.d.ts.map +1 -1
- package/ccw/dist/utils/path-resolver.js +48 -3
- package/ccw/dist/utils/path-resolver.js.map +1 -1
- package/ccw/dist/utils/path-validator.d.ts.map +1 -1
- package/ccw/dist/utils/path-validator.js +25 -6
- package/ccw/dist/utils/path-validator.js.map +1 -1
- package/ccw/dist/utils/python-utils.d.ts.map +1 -1
- package/ccw/dist/utils/python-utils.js +27 -7
- package/ccw/dist/utils/python-utils.js.map +1 -1
- package/ccw/dist/utils/shell-escape.d.ts +8 -0
- package/ccw/dist/utils/shell-escape.d.ts.map +1 -0
- package/ccw/dist/utils/shell-escape.js +24 -0
- package/ccw/dist/utils/shell-escape.js.map +1 -0
- package/ccw/dist/utils/uv-manager.d.ts +167 -0
- package/ccw/dist/utils/uv-manager.d.ts.map +1 -0
- package/ccw/dist/utils/uv-manager.js +644 -0
- package/ccw/dist/utils/uv-manager.js.map +1 -0
- package/ccw/src/cli.ts +4 -1
- package/ccw/src/commands/cli.ts +132 -34
- package/ccw/src/commands/issue.ts +605 -91
- package/ccw/src/commands/serve.ts +15 -5
- package/ccw/src/commands/stop.ts +32 -5
- package/ccw/src/commands/tool.ts +17 -2
- package/ccw/src/commands/view.ts +13 -3
- package/ccw/src/config/cli-settings-manager.ts +460 -0
- package/ccw/src/config/litellm-api-config-manager.ts +392 -57
- package/ccw/src/core/auth/csrf-manager.ts +104 -0
- package/ccw/src/core/auth/csrf-middleware.ts +159 -0
- package/ccw/src/core/auth/middleware.ts +94 -0
- package/ccw/src/core/auth/token-manager.ts +219 -0
- package/ccw/src/core/cache-manager.ts +64 -52
- package/ccw/src/core/claude-freshness.ts +26 -6
- package/ccw/src/core/core-memory-store.ts +2 -1
- package/ccw/src/core/cors.ts +10 -0
- package/ccw/src/core/dashboard-generator-patch.ts +47 -48
- package/ccw/src/core/dashboard-generator.ts +797 -744
- package/ccw/src/core/data-aggregator.ts +667 -667
- package/ccw/src/core/lite-scanner.ts +156 -140
- package/ccw/src/core/routes/auth-routes.ts +98 -0
- package/ccw/src/core/routes/ccw-routes.ts +10 -20
- package/ccw/src/core/routes/claude-routes.ts +101 -51
- package/ccw/src/core/routes/cli-routes.ts +152 -55
- package/ccw/src/core/routes/cli-settings-routes.ts +232 -0
- package/ccw/src/core/routes/codexlens/README.md +37 -0
- package/ccw/src/core/routes/codexlens/config-handlers.ts +1269 -0
- package/ccw/src/core/routes/codexlens/index-handlers.ts +354 -0
- package/ccw/src/core/routes/codexlens/semantic-handlers.ts +931 -0
- package/ccw/src/core/routes/codexlens/utils.ts +96 -0
- package/ccw/src/core/routes/codexlens/watcher-handlers.ts +265 -0
- package/ccw/src/core/routes/codexlens-routes.ts +11 -1044
- package/ccw/src/core/routes/discovery-routes.ts +1 -12
- package/ccw/src/core/routes/files-routes.ts +112 -40
- package/ccw/src/core/routes/graph-routes.ts +39 -46
- package/ccw/src/core/routes/help-routes.ts +2 -12
- package/ccw/src/core/routes/hooks-routes.ts +83 -44
- package/ccw/src/core/routes/issue-routes.ts +1 -12
- package/ccw/src/core/routes/litellm-api-routes.ts +566 -60
- package/ccw/src/core/routes/litellm-routes.ts +35 -27
- package/ccw/src/core/routes/mcp-routes.ts +157 -60
- package/ccw/src/core/routes/mcp-routes.ts.backup +549 -550
- package/ccw/src/core/routes/mcp-templates-db.ts +267 -268
- package/ccw/src/core/routes/memory-routes.ts +76 -22
- package/ccw/src/core/routes/nav-status-routes.ts +231 -0
- package/ccw/src/core/routes/rules-routes.ts +600 -81
- package/ccw/src/core/routes/session-routes.ts +28 -22
- package/ccw/src/core/routes/skills-routes.ts +452 -132
- package/ccw/src/core/routes/status-routes.ts +1 -12
- package/ccw/src/core/routes/system-routes.ts +15 -22
- package/ccw/src/core/routes/types.ts +25 -0
- package/ccw/src/core/server.ts +651 -468
- package/ccw/src/core/services/api-key-tester.ts +137 -0
- package/ccw/src/core/services/health-check-service.ts +340 -0
- package/ccw/src/core/websocket.ts +20 -12
- package/ccw/src/templates/dashboard-css/01-base.css +109 -0
- package/ccw/src/templates/dashboard-css/10-cli-status.css +202 -0
- package/ccw/src/templates/dashboard-css/21-cli-toolmgmt.css +308 -0
- package/ccw/src/templates/dashboard-css/30-core-memory.css +20 -0
- package/ccw/src/templates/dashboard-css/31-api-settings.css +751 -14
- package/ccw/src/templates/dashboard-css/33-cli-stream-viewer.css +230 -2
- package/ccw/src/templates/dashboard-js/api.js +5 -0
- package/ccw/src/templates/dashboard-js/components/cli-status.js +279 -107
- package/ccw/src/templates/dashboard-js/components/cli-stream-viewer.js +262 -20
- package/ccw/src/templates/dashboard-js/components/hook-manager.js +105 -5
- package/ccw/src/templates/dashboard-js/components/mcp-manager.js +317 -0
- package/ccw/src/templates/dashboard-js/components/navigation.js +45 -0
- package/ccw/src/templates/dashboard-js/components/notifications.js +128 -0
- package/ccw/src/templates/dashboard-js/i18n.js +4438 -3983
- package/ccw/src/templates/dashboard-js/main.js +71 -0
- package/ccw/src/templates/dashboard-js/services.js +289 -0
- package/ccw/src/templates/dashboard-js/views/api-settings.js +5613 -3361
- package/ccw/src/templates/dashboard-js/views/claude-manager.js +1 -7
- package/ccw/src/templates/dashboard-js/views/cli-manager.js +581 -87
- package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +6091 -1965
- package/ccw/src/templates/dashboard-js/views/core-memory.js +129 -20
- package/ccw/src/templates/dashboard-js/views/hook-manager.js +17 -3
- package/ccw/src/templates/dashboard-js/views/mcp-manager.js +63 -0
- package/ccw/src/templates/dashboard-js/views/project-overview.js +182 -37
- package/ccw/src/templates/dashboard-js/views/rules-manager.js +26 -3
- package/ccw/src/templates/dashboard-js/views/skills-manager.js +2 -42
- package/ccw/src/templates/dashboard.html +6 -0
- package/ccw/src/tools/README.md +29 -0
- package/ccw/src/tools/claude-cli-tools.ts +640 -125
- package/ccw/src/tools/cli-config-manager.ts +102 -172
- package/ccw/src/tools/cli-executor-core.ts +1533 -0
- package/ccw/src/tools/cli-executor-state.ts +560 -0
- package/ccw/src/tools/cli-executor-utils.ts +349 -0
- package/ccw/src/tools/cli-executor.ts +3 -2309
- package/ccw/src/tools/cli-history-store.ts +2 -0
- package/ccw/src/tools/cli-output-converter.ts +1237 -0
- package/ccw/src/tools/cli-prompt-builder.ts +487 -0
- package/ccw/src/tools/codex-lens.ts +324 -59
- package/ccw/src/tools/detect-changed-modules.ts +24 -6
- package/ccw/src/tools/index.ts +2 -0
- package/ccw/src/tools/litellm-client.ts +10 -4
- package/ccw/src/tools/litellm-executor.ts +146 -114
- package/ccw/src/tools/native-session-discovery.ts +209 -1
- package/ccw/src/tools/session-manager.ts +88 -0
- package/ccw/src/tools/skill-context-loader.ts +213 -0
- package/ccw/src/tools/smart-search.ts +427 -76
- package/ccw/src/types/cli-settings.ts +137 -0
- package/ccw/src/types/litellm-api-config.ts +55 -1
- package/ccw/src/utils/exec-constants.ts +24 -0
- package/ccw/src/utils/path-resolver.ts +49 -3
- package/ccw/src/utils/path-validator.ts +28 -6
- package/ccw/src/utils/python-utils.ts +140 -121
- package/ccw/src/utils/shell-escape.ts +30 -0
- package/ccw/src/utils/uv-manager.ts +796 -0
- package/ccw-litellm/src/ccw_litellm/__pycache__/__init__.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/__pycache__/__init__.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/__init__.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/__init__.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +270 -251
- package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +33 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/__init__.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/__init__.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/loader.py +343 -316
- package/ccw-litellm/src/ccw_litellm/config/models.py +162 -130
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/__init__.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/__init__.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/embedder.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/embedder.cpython-312.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/llm.cpython-310.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/llm.cpython-312.pyc +0 -0
- package/codex-lens/pyproject.toml +43 -0
- package/codex-lens/src/codexlens/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/__main__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/__main__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/entities.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/entities.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/env_config.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/env_config.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/env_config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/errors.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/__pycache__/errors.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +4416 -2295
- package/codex-lens/src/codexlens/cli/embedding_manager.py +767 -14
- package/codex-lens/src/codexlens/cli/model_manager.py +676 -0
- package/codex-lens/src/codexlens/config.py +321 -12
- package/codex-lens/src/codexlens/entities.py +4 -1
- package/codex-lens/src/codexlens/env_config.py +298 -0
- package/codex-lens/src/codexlens/indexing/__init__.py +23 -1
- package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/embedding.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/indexing/embedding.py +582 -0
- package/codex-lens/src/codexlens/indexing/symbol_extractor.py +62 -28
- package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/parsers/factory.py +139 -10
- package/codex-lens/src/codexlens/parsers/treesitter_parser.py +487 -13
- package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/binary_searcher.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/graph_expander.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/binary_searcher.py +277 -0
- package/codex-lens/src/codexlens/search/chain_search.py +1642 -8
- package/codex-lens/src/codexlens/search/enrichment.py +21 -0
- package/codex-lens/src/codexlens/search/graph_expander.py +264 -0
- package/codex-lens/src/codexlens/search/hybrid_search.py +772 -37
- package/codex-lens/src/codexlens/search/ranking.py +347 -8
- package/codex-lens/src/codexlens/semantic/SPLADE_IMPLEMENTATION.md +225 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/base.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/base.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/reranker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/splade_encoder.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/splade_encoder.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/splade_encoder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/ann_index.py +654 -0
- package/codex-lens/src/codexlens/semantic/factory.py +63 -3
- package/codex-lens/src/codexlens/semantic/gpu_support.py +19 -2
- package/codex-lens/src/codexlens/semantic/litellm_embedder.py +144 -144
- package/codex-lens/src/codexlens/semantic/reranker/__init__.py +25 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/api_reranker.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/api_reranker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/base.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/base.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/factory.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/fastembed_reranker.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/fastembed_reranker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/legacy.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/legacy.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/litellm_reranker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/onnx_reranker.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/__pycache__/onnx_reranker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/reranker/api_reranker.py +403 -0
- package/codex-lens/src/codexlens/semantic/reranker/base.py +46 -0
- package/codex-lens/src/codexlens/semantic/reranker/factory.py +159 -0
- package/codex-lens/src/codexlens/semantic/reranker/fastembed_reranker.py +257 -0
- package/codex-lens/src/codexlens/semantic/reranker/legacy.py +91 -0
- package/codex-lens/src/codexlens/semantic/reranker/litellm_reranker.py +214 -0
- package/codex-lens/src/codexlens/semantic/reranker/onnx_reranker.py +268 -0
- package/codex-lens/src/codexlens/semantic/splade_encoder.py +567 -0
- package/codex-lens/src/codexlens/semantic/vector_store.py +472 -352
- package/codex-lens/src/codexlens/storage/__init__.py +3 -0
- package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/merkle_tree.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/splade_index.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/splade_index.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/splade_index.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/vector_meta_store.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/vector_meta_store.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/__pycache__/vector_meta_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/dir_index.py +310 -12
- package/codex-lens/src/codexlens/storage/index_tree.py +194 -23
- package/codex-lens/src/codexlens/storage/merkle_tree.py +136 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_006_enhance_relationships.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_007_add_graph_neighbors.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_007_add_graph_neighbors.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_007_add_graph_neighbors.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_008_add_merkle_hashes.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_009_add_splade.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_010_add_multi_vector_chunks.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_006_enhance_relationships.py +37 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_007_add_graph_neighbors.py +47 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_008_add_merkle_hashes.py +81 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_009_add_splade.py +103 -0
- package/codex-lens/src/codexlens/storage/migrations/migration_010_add_multi_vector_chunks.py +162 -0
- package/codex-lens/src/codexlens/storage/splade_index.py +578 -0
- package/codex-lens/src/codexlens/storage/sqlite_store.py +508 -184
- package/codex-lens/src/codexlens/storage/vector_meta_store.py +415 -0
- package/codex-lens/src/codexlens/watcher/__init__.py +17 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/__init__.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/__init__.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/events.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/events.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/events.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/file_watcher.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/file_watcher.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/file_watcher.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/incremental_indexer.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/incremental_indexer.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/incremental_indexer.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/manager.cpython-310.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/manager.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/__pycache__/manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/watcher/events.py +82 -0
- package/codex-lens/src/codexlens/watcher/file_watcher.py +347 -0
- package/codex-lens/src/codexlens/watcher/incremental_indexer.py +369 -0
- package/codex-lens/src/codexlens/watcher/manager.py +255 -0
- package/package.json +4 -1
- package/.claude/commands/workflow/docs/analyze.md +0 -1467
- package/.claude/commands/workflow/docs/copyright.md +0 -1265
- package/.claude/skills/command-guide/SKILL.md +0 -388
- package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +0 -592
- package/.claude/skills/command-guide/guides/cli-tools-guide.md +0 -410
- package/.claude/skills/command-guide/guides/examples.md +0 -537
- package/.claude/skills/command-guide/guides/getting-started.md +0 -242
- package/.claude/skills/command-guide/guides/implementation-details.md +0 -1010
- package/.claude/skills/command-guide/guides/index-structure.md +0 -326
- package/.claude/skills/command-guide/guides/troubleshooting.md +0 -92
- package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +0 -316
- package/.claude/skills/command-guide/guides/workflow-patterns.md +0 -662
- package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +0 -855
- package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +0 -267
- package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +0 -182
- package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +0 -446
- package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +0 -558
- package/.claude/skills/command-guide/reference/agents/code-developer.md +0 -311
- package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +0 -308
- package/.claude/skills/command-guide/reference/agents/context-search-agent.md +0 -581
- package/.claude/skills/command-guide/reference/agents/doc-generator.md +0 -330
- package/.claude/skills/command-guide/reference/agents/memory-bridge.md +0 -94
- package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +0 -400
- package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +0 -344
- package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +0 -593
- package/.claude/skills/command-guide/reference/agents/universal-executor.md +0 -131
- package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +0 -440
- package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +0 -93
- package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +0 -687
- package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +0 -471
- package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +0 -386
- package/.claude/skills/command-guide/reference/commands/memory/docs.md +0 -616
- package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +0 -182
- package/.claude/skills/command-guide/reference/commands/memory/load.md +0 -240
- package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +0 -525
- package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +0 -396
- package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +0 -314
- package/.claude/skills/command-guide/reference/commands/memory/update-full.md +0 -332
- package/.claude/skills/command-guide/reference/commands/memory/update-related.md +0 -332
- package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +0 -517
- package/.claude/skills/command-guide/reference/commands/task/breakdown.md +0 -204
- package/.claude/skills/command-guide/reference/commands/task/create.md +0 -152
- package/.claude/skills/command-guide/reference/commands/task/execute.md +0 -270
- package/.claude/skills/command-guide/reference/commands/task/replan.md +0 -437
- package/.claude/skills/command-guide/reference/commands/version.md +0 -254
- package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +0 -447
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +0 -585
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +0 -452
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +0 -443
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +0 -220
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +0 -200
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +0 -398
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +0 -387
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +0 -221
- package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +0 -221
- package/.claude/skills/command-guide/reference/commands/workflow/execute.md +0 -465
- package/.claude/skills/command-guide/reference/commands/workflow/init.md +0 -164
- package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +0 -748
- package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +0 -664
- package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +0 -645
- package/.claude/skills/command-guide/reference/commands/workflow/plan.md +0 -551
- package/.claude/skills/command-guide/reference/commands/workflow/replan.md +0 -515
- package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +0 -606
- package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +0 -765
- package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +0 -776
- package/.claude/skills/command-guide/reference/commands/workflow/review.md +0 -298
- package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +0 -547
- package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +0 -114
- package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +0 -77
- package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +0 -257
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +0 -460
- package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +0 -400
- package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +0 -498
- package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +0 -699
- package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +0 -529
- package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +0 -766
- package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +0 -433
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +0 -487
- package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +0 -518
- package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +0 -309
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +0 -163
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +0 -232
- package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +0 -254
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +0 -1150
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +0 -652
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +0 -454
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +0 -678
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +0 -504
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +0 -745
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +0 -537
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +0 -788
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +0 -356
- package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +0 -773
- package/.claude/skills/command-guide/scripts/analyze_commands.py +0 -502
- package/.claude/skills/command-guide/scripts/update-index.sh +0 -130
- package/.claude/skills/command-guide/templates/issue-bug.md +0 -104
- package/.claude/skills/command-guide/templates/issue-diagnosis.md +0 -275
- package/.claude/skills/command-guide/templates/issue-feature.md +0 -97
- package/.claude/skills/command-guide/templates/issue-question.md +0 -141
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# Quality Standards
|
|
2
|
+
|
|
3
|
+
## Overall Quality Metrics
|
|
4
|
+
|
|
5
|
+
### Quality Score Formula
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Overall Quality = (
|
|
9
|
+
Correctness × 0.30 +
|
|
10
|
+
Security × 0.25 +
|
|
11
|
+
Maintainability × 0.20 +
|
|
12
|
+
Performance × 0.15 +
|
|
13
|
+
Documentation × 0.10
|
|
14
|
+
)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Score Ranges
|
|
18
|
+
|
|
19
|
+
| Range | Grade | Description |
|
|
20
|
+
|-------|-------|-------------|
|
|
21
|
+
| 90-100 | A | Excellent - Production ready |
|
|
22
|
+
| 80-89 | B | Good - Minor improvements needed |
|
|
23
|
+
| 70-79 | C | Acceptable - Some issues to address |
|
|
24
|
+
| 60-69 | D | Poor - Significant improvements required |
|
|
25
|
+
| 0-59 | F | Failing - Major issues, not production ready |
|
|
26
|
+
|
|
27
|
+
## Review Completeness
|
|
28
|
+
|
|
29
|
+
### Mandatory Checks
|
|
30
|
+
|
|
31
|
+
**Security**:
|
|
32
|
+
- ✅ OWASP Top 10 coverage
|
|
33
|
+
- ✅ CWE Top 25 coverage
|
|
34
|
+
- ✅ Language-specific security patterns
|
|
35
|
+
- ✅ Dependency vulnerability scan
|
|
36
|
+
|
|
37
|
+
**Code Quality**:
|
|
38
|
+
- ✅ Naming convention compliance
|
|
39
|
+
- ✅ Complexity analysis
|
|
40
|
+
- ✅ Code duplication detection
|
|
41
|
+
- ✅ Dead code identification
|
|
42
|
+
|
|
43
|
+
**Performance**:
|
|
44
|
+
- ✅ N+1 query detection
|
|
45
|
+
- ✅ Algorithm efficiency check
|
|
46
|
+
- ✅ Memory leak detection
|
|
47
|
+
- ✅ Resource cleanup verification
|
|
48
|
+
|
|
49
|
+
**Maintainability**:
|
|
50
|
+
- ✅ Documentation coverage
|
|
51
|
+
- ✅ Test coverage analysis
|
|
52
|
+
- ✅ Dependency health check
|
|
53
|
+
- ✅ Error handling review
|
|
54
|
+
|
|
55
|
+
## Reporting Standards
|
|
56
|
+
|
|
57
|
+
### Finding Requirements
|
|
58
|
+
|
|
59
|
+
Each finding must include:
|
|
60
|
+
- **Unique ID**: SEC-001, BP-001, etc.
|
|
61
|
+
- **Type**: Specific issue type (sql-injection, high-complexity, etc.)
|
|
62
|
+
- **Severity**: Critical, High, Medium, Low
|
|
63
|
+
- **Location**: File path and line number
|
|
64
|
+
- **Code Snippet**: Vulnerable/problematic code
|
|
65
|
+
- **Message**: Clear description of the issue
|
|
66
|
+
- **Recommendation**: Specific fix guidance
|
|
67
|
+
- **Example**: Before/after code example
|
|
68
|
+
|
|
69
|
+
### Report Structure
|
|
70
|
+
|
|
71
|
+
**Executive Summary**:
|
|
72
|
+
- High-level overview
|
|
73
|
+
- Risk assessment
|
|
74
|
+
- Key statistics
|
|
75
|
+
- Compliance status
|
|
76
|
+
|
|
77
|
+
**Detailed Findings**:
|
|
78
|
+
- Organized by severity
|
|
79
|
+
- Grouped by category
|
|
80
|
+
- Full details for each finding
|
|
81
|
+
|
|
82
|
+
**Action Plan**:
|
|
83
|
+
- Prioritized fix list
|
|
84
|
+
- Effort estimates
|
|
85
|
+
- Timeline recommendations
|
|
86
|
+
|
|
87
|
+
**Metrics Dashboard**:
|
|
88
|
+
- Quality scores
|
|
89
|
+
- Trend analysis (if historical data)
|
|
90
|
+
- Compliance status
|
|
91
|
+
|
|
92
|
+
**Appendix**:
|
|
93
|
+
- Full findings list
|
|
94
|
+
- Configuration details
|
|
95
|
+
- Tool versions
|
|
96
|
+
- References
|
|
97
|
+
|
|
98
|
+
## Output File Standards
|
|
99
|
+
|
|
100
|
+
### File Naming
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
.code-review/
|
|
104
|
+
├── inventory.json # File inventory
|
|
105
|
+
├── security-findings.json # Security findings
|
|
106
|
+
├── best-practices-findings.json # Best practices findings
|
|
107
|
+
├── summary.json # Summary statistics
|
|
108
|
+
├── REPORT.md # Main report
|
|
109
|
+
├── FIX-CHECKLIST.md # Action checklist
|
|
110
|
+
└── state.json # Session state
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### JSON Schema
|
|
114
|
+
|
|
115
|
+
**Finding Schema**:
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"id": "string",
|
|
119
|
+
"type": "string",
|
|
120
|
+
"category": "security|code_quality|performance|maintainability",
|
|
121
|
+
"severity": "critical|high|medium|low",
|
|
122
|
+
"file": "string",
|
|
123
|
+
"line": "number",
|
|
124
|
+
"column": "number",
|
|
125
|
+
"code": "string",
|
|
126
|
+
"message": "string",
|
|
127
|
+
"recommendation": {
|
|
128
|
+
"description": "string",
|
|
129
|
+
"fix_example": "string"
|
|
130
|
+
},
|
|
131
|
+
"references": ["string"],
|
|
132
|
+
"cwe": "string (optional)",
|
|
133
|
+
"owasp": "string (optional)"
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Validation Requirements
|
|
138
|
+
|
|
139
|
+
### Phase Completion Criteria
|
|
140
|
+
|
|
141
|
+
**Phase 1 (Code Discovery)**:
|
|
142
|
+
- ✅ At least 1 file discovered
|
|
143
|
+
- ✅ Files categorized by priority
|
|
144
|
+
- ✅ Metadata extracted
|
|
145
|
+
- ✅ Inventory JSON created
|
|
146
|
+
|
|
147
|
+
**Phase 2 (Security Analysis)**:
|
|
148
|
+
- ✅ All critical/high priority files analyzed
|
|
149
|
+
- ✅ Findings have severity classification
|
|
150
|
+
- ✅ CWE/OWASP mappings included
|
|
151
|
+
- ✅ Fix recommendations provided
|
|
152
|
+
|
|
153
|
+
**Phase 3 (Best Practices)**:
|
|
154
|
+
- ✅ Code quality checks completed
|
|
155
|
+
- ✅ Performance analysis done
|
|
156
|
+
- ✅ Maintainability assessed
|
|
157
|
+
- ✅ Recommendations provided
|
|
158
|
+
|
|
159
|
+
**Phase 4 (Report Generation)**:
|
|
160
|
+
- ✅ All findings consolidated
|
|
161
|
+
- ✅ Scores calculated
|
|
162
|
+
- ✅ Reports generated
|
|
163
|
+
- ✅ Checklist created
|
|
164
|
+
|
|
165
|
+
## Skill Execution Standards
|
|
166
|
+
|
|
167
|
+
### Performance Targets
|
|
168
|
+
|
|
169
|
+
- **Phase 1**: < 30 seconds per 1000 files
|
|
170
|
+
- **Phase 2**: < 60 seconds per 100 files (security)
|
|
171
|
+
- **Phase 3**: < 60 seconds per 100 files (best practices)
|
|
172
|
+
- **Phase 4**: < 10 seconds (report generation)
|
|
173
|
+
|
|
174
|
+
### Resource Limits
|
|
175
|
+
|
|
176
|
+
- **Memory**: < 2GB for projects with 1000+ files
|
|
177
|
+
- **CPU**: Efficient pattern matching (minimize regex complexity)
|
|
178
|
+
- **Disk**: Use streaming for large files (> 10MB)
|
|
179
|
+
|
|
180
|
+
### Error Handling
|
|
181
|
+
|
|
182
|
+
**Graceful Degradation**:
|
|
183
|
+
- If tool unavailable: Skip check, note in report
|
|
184
|
+
- If file unreadable: Log warning, continue with others
|
|
185
|
+
- If analysis fails: Report error, continue with next file
|
|
186
|
+
|
|
187
|
+
**User Notification**:
|
|
188
|
+
- Progress updates every 10% completion
|
|
189
|
+
- Clear error messages with troubleshooting steps
|
|
190
|
+
- Final summary with metrics and file locations
|
|
191
|
+
|
|
192
|
+
## Integration Standards
|
|
193
|
+
|
|
194
|
+
### Git Integration
|
|
195
|
+
|
|
196
|
+
**Pre-commit Hook**:
|
|
197
|
+
```bash
|
|
198
|
+
#!/bin/bash
|
|
199
|
+
ccw run code-reviewer --scope staged --severity critical,high
|
|
200
|
+
exit $? # Block commit if critical/high issues found
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**PR Comments**:
|
|
204
|
+
- Automatic review comments on changed lines
|
|
205
|
+
- Summary comment with overall findings
|
|
206
|
+
- Status check (pass/fail based on threshold)
|
|
207
|
+
|
|
208
|
+
### CI/CD Integration
|
|
209
|
+
|
|
210
|
+
**Requirements**:
|
|
211
|
+
- Exit code 0 if no critical/high issues
|
|
212
|
+
- Exit code 1 if blocking issues found
|
|
213
|
+
- JSON output for parsing
|
|
214
|
+
- Configurable severity threshold
|
|
215
|
+
|
|
216
|
+
### IDE Integration
|
|
217
|
+
|
|
218
|
+
**LSP Support** (future):
|
|
219
|
+
- Real-time security/quality feedback
|
|
220
|
+
- Inline fix suggestions
|
|
221
|
+
- Quick actions for common fixes
|
|
222
|
+
|
|
223
|
+
## Compliance Mapping
|
|
224
|
+
|
|
225
|
+
### Supported Standards
|
|
226
|
+
|
|
227
|
+
**PCI DSS**:
|
|
228
|
+
- Requirement 6.5: Common coding vulnerabilities
|
|
229
|
+
- Map findings to specific requirements
|
|
230
|
+
|
|
231
|
+
**HIPAA**:
|
|
232
|
+
- Technical safeguards
|
|
233
|
+
- Map data exposure findings
|
|
234
|
+
|
|
235
|
+
**GDPR**:
|
|
236
|
+
- Data protection by design
|
|
237
|
+
- Map sensitive data handling
|
|
238
|
+
|
|
239
|
+
**SOC 2**:
|
|
240
|
+
- Security controls
|
|
241
|
+
- Map access control findings
|
|
242
|
+
|
|
243
|
+
### Compliance Reports
|
|
244
|
+
|
|
245
|
+
Generate compliance-specific reports:
|
|
246
|
+
```
|
|
247
|
+
.code-review/compliance/
|
|
248
|
+
├── pci-dss-report.md
|
|
249
|
+
├── hipaa-report.md
|
|
250
|
+
├── gdpr-report.md
|
|
251
|
+
└── soc2-report.md
|
|
252
|
+
```
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# Security Requirements Specification
|
|
2
|
+
|
|
3
|
+
## OWASP Top 10 Coverage
|
|
4
|
+
|
|
5
|
+
### A01:2021 - Broken Access Control
|
|
6
|
+
|
|
7
|
+
**Checks**:
|
|
8
|
+
- Missing authorization checks on protected routes
|
|
9
|
+
- Insecure direct object references (IDOR)
|
|
10
|
+
- Path traversal vulnerabilities
|
|
11
|
+
- Missing CSRF protection
|
|
12
|
+
- Elevation of privilege
|
|
13
|
+
|
|
14
|
+
**Patterns**:
|
|
15
|
+
```javascript
|
|
16
|
+
// Missing auth middleware
|
|
17
|
+
router.get('/admin/*', handler); // ❌ No auth check
|
|
18
|
+
|
|
19
|
+
// Insecure direct object reference
|
|
20
|
+
router.get('/user/:id', async (req, res) => {
|
|
21
|
+
const user = await User.findById(req.params.id); // ❌ No ownership check
|
|
22
|
+
res.json(user);
|
|
23
|
+
});
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### A02:2021 - Cryptographic Failures
|
|
27
|
+
|
|
28
|
+
**Checks**:
|
|
29
|
+
- Sensitive data transmitted without encryption
|
|
30
|
+
- Weak cryptographic algorithms (MD5, SHA1)
|
|
31
|
+
- Hardcoded secrets/keys
|
|
32
|
+
- Insecure random number generation
|
|
33
|
+
|
|
34
|
+
**Patterns**:
|
|
35
|
+
```javascript
|
|
36
|
+
// Weak hashing
|
|
37
|
+
const hash = crypto.createHash('md5').update(password); // ❌ MD5 is weak
|
|
38
|
+
|
|
39
|
+
// Hardcoded secret
|
|
40
|
+
const token = jwt.sign(payload, 'secret123'); // ❌ Hardcoded secret
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### A03:2021 - Injection
|
|
44
|
+
|
|
45
|
+
**Checks**:
|
|
46
|
+
- SQL injection
|
|
47
|
+
- NoSQL injection
|
|
48
|
+
- Command injection
|
|
49
|
+
- LDAP injection
|
|
50
|
+
- XPath injection
|
|
51
|
+
|
|
52
|
+
**Patterns**:
|
|
53
|
+
```javascript
|
|
54
|
+
// SQL injection
|
|
55
|
+
const query = `SELECT * FROM users WHERE id = ${userId}`; // ❌
|
|
56
|
+
|
|
57
|
+
// Command injection
|
|
58
|
+
exec(`git clone ${userRepo}`); // ❌
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### A04:2021 - Insecure Design
|
|
62
|
+
|
|
63
|
+
**Checks**:
|
|
64
|
+
- Missing rate limiting
|
|
65
|
+
- Lack of input validation
|
|
66
|
+
- Business logic flaws
|
|
67
|
+
- Missing security requirements
|
|
68
|
+
|
|
69
|
+
### A05:2021 - Security Misconfiguration
|
|
70
|
+
|
|
71
|
+
**Checks**:
|
|
72
|
+
- Default credentials
|
|
73
|
+
- Overly permissive CORS
|
|
74
|
+
- Verbose error messages
|
|
75
|
+
- Unnecessary features enabled
|
|
76
|
+
- Missing security headers
|
|
77
|
+
|
|
78
|
+
**Patterns**:
|
|
79
|
+
```javascript
|
|
80
|
+
// Overly permissive CORS
|
|
81
|
+
app.use(cors({ origin: '*' })); // ❌
|
|
82
|
+
|
|
83
|
+
// Verbose error
|
|
84
|
+
res.status(500).json({ error: err.stack }); // ❌
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### A06:2021 - Vulnerable and Outdated Components
|
|
88
|
+
|
|
89
|
+
**Checks**:
|
|
90
|
+
- Dependencies with known vulnerabilities
|
|
91
|
+
- Unmaintained dependencies
|
|
92
|
+
- Using deprecated APIs
|
|
93
|
+
|
|
94
|
+
### A07:2021 - Identification and Authentication Failures
|
|
95
|
+
|
|
96
|
+
**Checks**:
|
|
97
|
+
- Weak password requirements
|
|
98
|
+
- Permits brute force attacks
|
|
99
|
+
- Exposed session IDs
|
|
100
|
+
- Weak JWT implementation
|
|
101
|
+
|
|
102
|
+
**Patterns**:
|
|
103
|
+
```javascript
|
|
104
|
+
// Weak bcrypt rounds
|
|
105
|
+
bcrypt.hash(password, 4); // ❌ Too low (min: 10)
|
|
106
|
+
|
|
107
|
+
// Session ID in URL
|
|
108
|
+
res.redirect(`/dashboard?sessionId=${sessionId}`); // ❌
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### A08:2021 - Software and Data Integrity Failures
|
|
112
|
+
|
|
113
|
+
**Checks**:
|
|
114
|
+
- Insecure deserialization
|
|
115
|
+
- Unsigned/unverified updates
|
|
116
|
+
- CI/CD pipeline vulnerabilities
|
|
117
|
+
|
|
118
|
+
**Patterns**:
|
|
119
|
+
```javascript
|
|
120
|
+
// Insecure deserialization
|
|
121
|
+
const obj = eval(userInput); // ❌
|
|
122
|
+
|
|
123
|
+
// Pickle vulnerability (Python)
|
|
124
|
+
data = pickle.loads(untrusted_data) # ❌
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### A09:2021 - Security Logging and Monitoring Failures
|
|
128
|
+
|
|
129
|
+
**Checks**:
|
|
130
|
+
- Missing audit logs
|
|
131
|
+
- Sensitive data in logs
|
|
132
|
+
- Insufficient monitoring
|
|
133
|
+
|
|
134
|
+
**Patterns**:
|
|
135
|
+
```javascript
|
|
136
|
+
// Password in logs
|
|
137
|
+
console.log(`Login attempt: ${username}:${password}`); // ❌
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### A10:2021 - Server-Side Request Forgery (SSRF)
|
|
141
|
+
|
|
142
|
+
**Checks**:
|
|
143
|
+
- Unvalidated URLs in requests
|
|
144
|
+
- Internal network access
|
|
145
|
+
- Cloud metadata exposure
|
|
146
|
+
|
|
147
|
+
**Patterns**:
|
|
148
|
+
```javascript
|
|
149
|
+
// SSRF vulnerability
|
|
150
|
+
const response = await fetch(userProvidedUrl); // ❌
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## CWE Top 25 Coverage
|
|
154
|
+
|
|
155
|
+
### CWE-79: Cross-site Scripting (XSS)
|
|
156
|
+
|
|
157
|
+
**Patterns**:
|
|
158
|
+
```javascript
|
|
159
|
+
element.innerHTML = userInput; // ❌
|
|
160
|
+
document.write(userInput); // ❌
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### CWE-89: SQL Injection
|
|
164
|
+
|
|
165
|
+
**Patterns**:
|
|
166
|
+
```javascript
|
|
167
|
+
query = `SELECT * FROM users WHERE name = '${name}'`; // ❌
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### CWE-20: Improper Input Validation
|
|
171
|
+
|
|
172
|
+
**Checks**:
|
|
173
|
+
- Missing input sanitization
|
|
174
|
+
- No input length limits
|
|
175
|
+
- Unvalidated file uploads
|
|
176
|
+
|
|
177
|
+
### CWE-78: OS Command Injection
|
|
178
|
+
|
|
179
|
+
**Patterns**:
|
|
180
|
+
```javascript
|
|
181
|
+
exec(`ping ${userInput}`); // ❌
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### CWE-190: Integer Overflow
|
|
185
|
+
|
|
186
|
+
**Checks**:
|
|
187
|
+
- Large number operations without bounds checking
|
|
188
|
+
- Array allocation with user-controlled size
|
|
189
|
+
|
|
190
|
+
## Language-Specific Security Rules
|
|
191
|
+
|
|
192
|
+
### TypeScript/JavaScript
|
|
193
|
+
|
|
194
|
+
- Prototype pollution
|
|
195
|
+
- eval() usage
|
|
196
|
+
- Unsafe regex (ReDoS)
|
|
197
|
+
- require() with dynamic input
|
|
198
|
+
|
|
199
|
+
### Python
|
|
200
|
+
|
|
201
|
+
- pickle vulnerabilities
|
|
202
|
+
- yaml.unsafe_load()
|
|
203
|
+
- SQL injection in SQLAlchemy
|
|
204
|
+
- Command injection in subprocess
|
|
205
|
+
|
|
206
|
+
### Java
|
|
207
|
+
|
|
208
|
+
- Deserialization vulnerabilities
|
|
209
|
+
- XXE in XML parsers
|
|
210
|
+
- Path traversal
|
|
211
|
+
- SQL injection in JDBC
|
|
212
|
+
|
|
213
|
+
### Go
|
|
214
|
+
|
|
215
|
+
- Race conditions
|
|
216
|
+
- SQL injection
|
|
217
|
+
- Path traversal
|
|
218
|
+
- Weak cryptography
|
|
219
|
+
|
|
220
|
+
## Severity Classification
|
|
221
|
+
|
|
222
|
+
### Critical
|
|
223
|
+
- Remote code execution
|
|
224
|
+
- SQL injection with write access
|
|
225
|
+
- Authentication bypass
|
|
226
|
+
- Hardcoded credentials in production
|
|
227
|
+
|
|
228
|
+
### High
|
|
229
|
+
- XSS in sensitive contexts
|
|
230
|
+
- Missing authorization checks
|
|
231
|
+
- Sensitive data exposure
|
|
232
|
+
- Insecure cryptography
|
|
233
|
+
|
|
234
|
+
### Medium
|
|
235
|
+
- Missing rate limiting
|
|
236
|
+
- Weak password policy
|
|
237
|
+
- Security misconfiguration
|
|
238
|
+
- Information disclosure
|
|
239
|
+
|
|
240
|
+
### Low
|
|
241
|
+
- Missing security headers
|
|
242
|
+
- Verbose error messages
|
|
243
|
+
- Outdated dependencies (no known exploits)
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Best Practice Finding Template
|
|
2
|
+
|
|
3
|
+
Use this template for documenting code quality, performance, and maintainability issues.
|
|
4
|
+
|
|
5
|
+
## Finding Structure
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"id": "BP-{number}",
|
|
10
|
+
"type": "{issue-type}",
|
|
11
|
+
"category": "{code_quality|performance|maintainability}",
|
|
12
|
+
"severity": "{high|medium|low}",
|
|
13
|
+
"file": "{file-path}",
|
|
14
|
+
"line": {line-number},
|
|
15
|
+
"function": "{function-name}",
|
|
16
|
+
"message": "{clear-description}",
|
|
17
|
+
"recommendation": {
|
|
18
|
+
"description": "{how-to-fix}",
|
|
19
|
+
"example": "{corrected-code}"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Markdown Template
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
### 🟠 [BP-{number}] {Issue Title}
|
|
28
|
+
|
|
29
|
+
**File**: `{file-path}:{line}`
|
|
30
|
+
**Category**: {Code Quality|Performance|Maintainability}
|
|
31
|
+
|
|
32
|
+
**Issue**: {Detailed explanation of the problem}
|
|
33
|
+
|
|
34
|
+
**Current Code**:
|
|
35
|
+
\`\`\`{language}
|
|
36
|
+
{problematic-code}
|
|
37
|
+
\`\`\`
|
|
38
|
+
|
|
39
|
+
**Recommended Fix**:
|
|
40
|
+
\`\`\`{language}
|
|
41
|
+
{improved-code-with-comments}
|
|
42
|
+
\`\`\`
|
|
43
|
+
|
|
44
|
+
**Impact**: {Why this matters - readability, performance, maintainability}
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Example: High Complexity
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
### 🟠 [BP-001] High Cyclomatic Complexity
|
|
53
|
+
|
|
54
|
+
**File**: `src/utils/validator.ts:78`
|
|
55
|
+
**Category**: Code Quality
|
|
56
|
+
**Function**: `validateUserInput`
|
|
57
|
+
**Complexity**: 15 (threshold: 10)
|
|
58
|
+
|
|
59
|
+
**Issue**: Function has 15 decision points, making it difficult to test and maintain.
|
|
60
|
+
|
|
61
|
+
**Current Code**:
|
|
62
|
+
\`\`\`typescript
|
|
63
|
+
function validateUserInput(input) {
|
|
64
|
+
if (!input) return false;
|
|
65
|
+
if (!input.email) return false;
|
|
66
|
+
if (!input.email.includes('@')) return false;
|
|
67
|
+
if (input.email.length > 255) return false;
|
|
68
|
+
// ... 11 more conditions
|
|
69
|
+
}
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
**Recommended Fix**:
|
|
73
|
+
\`\`\`typescript
|
|
74
|
+
// Extract validation rules
|
|
75
|
+
const validationRules = {
|
|
76
|
+
email: (email) => email && email.includes('@') && email.length <= 255,
|
|
77
|
+
password: (pwd) => pwd && pwd.length >= 8 && /[A-Z]/.test(pwd),
|
|
78
|
+
username: (name) => name && /^[a-zA-Z0-9_]+$/.test(name),
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// Simplified validator
|
|
82
|
+
function validateUserInput(input) {
|
|
83
|
+
return Object.entries(validationRules).every(([field, validate]) =>
|
|
84
|
+
validate(input[field])
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
\`\`\`
|
|
88
|
+
|
|
89
|
+
**Impact**: Reduces complexity from 15 to 3, improves testability, and makes validation rules reusable.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Example: N+1 Query
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
### 🟠 [BP-002] N+1 Query Pattern
|
|
98
|
+
|
|
99
|
+
**File**: `src/api/orders.ts:45`
|
|
100
|
+
**Category**: Performance
|
|
101
|
+
|
|
102
|
+
**Issue**: Database query executed inside loop, causing N+1 queries problem. For 100 orders, this creates 101 database queries instead of 2.
|
|
103
|
+
|
|
104
|
+
**Current Code**:
|
|
105
|
+
\`\`\`typescript
|
|
106
|
+
const orders = await Order.findAll();
|
|
107
|
+
for (const order of orders) {
|
|
108
|
+
const user = await User.findById(order.userId);
|
|
109
|
+
order.userName = user.name;
|
|
110
|
+
}
|
|
111
|
+
\`\`\`
|
|
112
|
+
|
|
113
|
+
**Recommended Fix**:
|
|
114
|
+
\`\`\`typescript
|
|
115
|
+
// Batch query all users at once
|
|
116
|
+
const orders = await Order.findAll();
|
|
117
|
+
const userIds = orders.map(o => o.userId);
|
|
118
|
+
const users = await User.findByIds(userIds);
|
|
119
|
+
|
|
120
|
+
// Create lookup map for O(1) access
|
|
121
|
+
const userMap = new Map(users.map(u => [u.id, u]));
|
|
122
|
+
|
|
123
|
+
// Enrich orders with user data
|
|
124
|
+
for (const order of orders) {
|
|
125
|
+
order.userName = userMap.get(order.userId)?.name;
|
|
126
|
+
}
|
|
127
|
+
\`\`\`
|
|
128
|
+
|
|
129
|
+
**Impact**: Reduces database queries from O(n) to O(1), significantly improving performance for large datasets.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Example: Missing Documentation
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
### 🟡 [BP-003] Missing Documentation
|
|
138
|
+
|
|
139
|
+
**File**: `src/services/PaymentService.ts:23`
|
|
140
|
+
**Category**: Maintainability
|
|
141
|
+
|
|
142
|
+
**Issue**: Exported class lacks documentation, making it difficult for other developers to understand its purpose and usage.
|
|
143
|
+
|
|
144
|
+
**Current Code**:
|
|
145
|
+
\`\`\`typescript
|
|
146
|
+
export class PaymentService {
|
|
147
|
+
async processPayment(orderId: string, amount: number) {
|
|
148
|
+
// implementation
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
\`\`\`
|
|
152
|
+
|
|
153
|
+
**Recommended Fix**:
|
|
154
|
+
\`\`\`typescript
|
|
155
|
+
/**
|
|
156
|
+
* Service for processing payment transactions
|
|
157
|
+
*
|
|
158
|
+
* Handles payment processing, refunds, and transaction logging.
|
|
159
|
+
* Integrates with Stripe payment gateway.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* const paymentService = new PaymentService();
|
|
163
|
+
* const result = await paymentService.processPayment('order-123', 99.99);
|
|
164
|
+
*/
|
|
165
|
+
export class PaymentService {
|
|
166
|
+
/**
|
|
167
|
+
* Process a payment for an order
|
|
168
|
+
*
|
|
169
|
+
* @param orderId - Unique order identifier
|
|
170
|
+
* @param amount - Payment amount in USD
|
|
171
|
+
* @returns Payment confirmation with transaction ID
|
|
172
|
+
* @throws {PaymentError} If payment processing fails
|
|
173
|
+
*/
|
|
174
|
+
async processPayment(orderId: string, amount: number) {
|
|
175
|
+
// implementation
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
\`\`\`
|
|
179
|
+
|
|
180
|
+
**Impact**: Improves code discoverability and reduces onboarding time for new developers.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Example: Memory Leak
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
### 🟠 [BP-004] Potential Memory Leak
|
|
189
|
+
|
|
190
|
+
**File**: `src/components/Chat.tsx:56`
|
|
191
|
+
**Category**: Performance
|
|
192
|
+
|
|
193
|
+
**Issue**: WebSocket event listener added without cleanup, causing memory leaks when component unmounts.
|
|
194
|
+
|
|
195
|
+
**Current Code**:
|
|
196
|
+
\`\`\`tsx
|
|
197
|
+
useEffect(() => {
|
|
198
|
+
socket.on('message', handleMessage);
|
|
199
|
+
}, []);
|
|
200
|
+
\`\`\`
|
|
201
|
+
|
|
202
|
+
**Recommended Fix**:
|
|
203
|
+
\`\`\`tsx
|
|
204
|
+
useEffect(() => {
|
|
205
|
+
socket.on('message', handleMessage);
|
|
206
|
+
|
|
207
|
+
// Cleanup on unmount
|
|
208
|
+
return () => {
|
|
209
|
+
socket.off('message', handleMessage);
|
|
210
|
+
};
|
|
211
|
+
}, []);
|
|
212
|
+
\`\`\`
|
|
213
|
+
|
|
214
|
+
**Impact**: Prevents memory leaks and improves application stability in long-running sessions.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Severity Guidelines
|
|
220
|
+
|
|
221
|
+
### High
|
|
222
|
+
- Major performance impact (N+1 queries, O(n²) algorithms)
|
|
223
|
+
- Critical maintainability issues (complexity > 15)
|
|
224
|
+
- Missing error handling in critical paths
|
|
225
|
+
|
|
226
|
+
### Medium
|
|
227
|
+
- Moderate performance impact
|
|
228
|
+
- Code quality issues (complexity 11-15, duplication)
|
|
229
|
+
- Missing tests for important features
|
|
230
|
+
|
|
231
|
+
### Low
|
|
232
|
+
- Minor style violations
|
|
233
|
+
- Missing documentation
|
|
234
|
+
- Low-impact dead code
|