@codemieai/code 0.1.0 → 0.2.0
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/README.md +13 -0
- package/bin/codebase-memory-ui-daemon.js +10 -0
- package/bin/codemie-codex.js +18 -0
- package/dist/agents/core/AgentCLI.d.ts +1 -0
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +29 -4
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/session/sync-state-utils.d.ts +11 -0
- package/dist/agents/core/session/sync-state-utils.d.ts.map +1 -0
- package/dist/agents/core/session/sync-state-utils.js +99 -0
- package/dist/agents/core/session/sync-state-utils.js.map +1 -0
- package/dist/agents/core/session/types.d.ts +8 -0
- package/dist/agents/core/session/types.d.ts.map +1 -1
- package/dist/agents/core/session/utils/jsonl-reader.d.ts +8 -0
- package/dist/agents/core/session/utils/jsonl-reader.d.ts.map +1 -1
- package/dist/agents/core/session/utils/jsonl-reader.js +37 -0
- package/dist/agents/core/session/utils/jsonl-reader.js.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/plugin/hooks/hooks.json +0 -15
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +2 -0
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/codex/codex-message-types.d.ts +80 -0
- package/dist/agents/plugins/codex/codex-message-types.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex-message-types.js +36 -0
- package/dist/agents/plugins/codex/codex-message-types.js.map +1 -0
- package/dist/agents/plugins/codex/codex-models.d.ts +9 -0
- package/dist/agents/plugins/codex/codex-models.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex-models.js +227 -0
- package/dist/agents/plugins/codex/codex-models.js.map +1 -0
- package/dist/agents/plugins/codex/codex.incremental-sync.d.ts +39 -0
- package/dist/agents/plugins/codex/codex.incremental-sync.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex.incremental-sync.js +147 -0
- package/dist/agents/plugins/codex/codex.incremental-sync.js.map +1 -0
- package/dist/agents/plugins/codex/codex.paths.d.ts +29 -0
- package/dist/agents/plugins/codex/codex.paths.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex.paths.js +43 -0
- package/dist/agents/plugins/codex/codex.paths.js.map +1 -0
- package/dist/agents/plugins/codex/codex.plugin.d.ts +80 -0
- package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex.plugin.js +474 -0
- package/dist/agents/plugins/codex/codex.plugin.js.map +1 -0
- package/dist/agents/plugins/codex/codex.reconciliation.d.ts +43 -0
- package/dist/agents/plugins/codex/codex.reconciliation.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex.reconciliation.js +141 -0
- package/dist/agents/plugins/codex/codex.reconciliation.js.map +1 -0
- package/dist/agents/plugins/codex/codex.session.d.ts +58 -0
- package/dist/agents/plugins/codex/codex.session.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex.session.js +326 -0
- package/dist/agents/plugins/codex/codex.session.js.map +1 -0
- package/dist/agents/plugins/codex/codex.storage-utils.d.ts +15 -0
- package/dist/agents/plugins/codex/codex.storage-utils.d.ts.map +1 -0
- package/dist/agents/plugins/codex/codex.storage-utils.js +19 -0
- package/dist/agents/plugins/codex/codex.storage-utils.js.map +1 -0
- package/dist/agents/plugins/codex/index.d.ts +7 -0
- package/dist/agents/plugins/codex/index.d.ts.map +1 -0
- package/dist/agents/plugins/codex/index.js +9 -0
- package/dist/agents/plugins/codex/index.js.map +1 -0
- package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.d.ts +24 -0
- package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.d.ts.map +1 -0
- package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.js +613 -0
- package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.js.map +1 -0
- package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.d.ts +21 -0
- package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.d.ts.map +1 -0
- package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.js +124 -0
- package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.js.map +1 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +1 -0
- package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/opencode/opencode.storage-utils.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/opencode.storage-utils.js +2 -29
- package/dist/agents/plugins/opencode/opencode.storage-utils.js.map +1 -1
- package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.js.map +1 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +2 -0
- package/dist/agents/registry.js.map +1 -1
- package/dist/bin/codebase-memory-ui-daemon.d.ts +2 -0
- package/dist/bin/codebase-memory-ui-daemon.d.ts.map +1 -0
- package/dist/bin/codebase-memory-ui-daemon.js +141 -0
- package/dist/bin/codebase-memory-ui-daemon.js.map +1 -0
- package/dist/bin/proxy-daemon.js +4 -0
- package/dist/bin/proxy-daemon.js.map +1 -1
- package/dist/cli/commands/assistants/constants.js +2 -2
- package/dist/cli/commands/assistants/constants.js.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/constants.js +4 -4
- package/dist/cli/commands/assistants/setup/configuration/constants.js.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/ui.js +10 -13
- package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.d.ts +4 -0
- package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js +76 -0
- package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js.map +1 -0
- package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.d.ts +4 -0
- package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js +68 -0
- package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js.map +1 -0
- package/dist/cli/commands/assistants/setup/helpers.d.ts +3 -2
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.js +43 -8
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
- package/dist/cli/commands/assistants/setup/index.d.ts +3 -1
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/index.js +15 -12
- package/dist/cli/commands/assistants/setup/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +2 -2
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +2 -2
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/ui.js +8 -13
- package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -1
- package/dist/cli/commands/assistants/setup/summary/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/summary/index.js +14 -8
- package/dist/cli/commands/assistants/setup/summary/index.js.map +1 -1
- package/dist/cli/commands/codebase/daemon-manager.d.ts +24 -0
- package/dist/cli/commands/codebase/daemon-manager.d.ts.map +1 -0
- package/dist/cli/commands/codebase/daemon-manager.js +112 -0
- package/dist/cli/commands/codebase/daemon-manager.js.map +1 -0
- package/dist/cli/commands/codebase/index.d.ts +3 -0
- package/dist/cli/commands/codebase/index.d.ts.map +1 -0
- package/dist/cli/commands/codebase/index.js +130 -0
- package/dist/cli/commands/codebase/index.js.map +1 -0
- package/dist/cli/commands/hook.d.ts.map +1 -1
- package/dist/cli/commands/hook.js +15 -2
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/install.js +2 -2
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/profile/index.d.ts +14 -0
- package/dist/cli/commands/profile/index.d.ts.map +1 -1
- package/dist/cli/commands/profile/index.js +110 -27
- package/dist/cli/commands/profile/index.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop-managed-mcp-servers.json +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.d.ts +4 -6
- package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.js +92 -15
- package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
- package/dist/cli/commands/proxy/daemon-manager.d.ts +1 -0
- package/dist/cli/commands/proxy/daemon-manager.d.ts.map +1 -1
- package/dist/cli/commands/proxy/daemon-manager.js +2 -0
- package/dist/cli/commands/proxy/daemon-manager.js.map +1 -1
- package/dist/cli/commands/proxy/index.d.ts.map +1 -1
- package/dist/cli/commands/proxy/index.js +42 -0
- package/dist/cli/commands/proxy/index.js.map +1 -1
- package/dist/cli/commands/setup.js +1 -1
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/shared/agent-targets.d.ts +10 -0
- package/dist/cli/commands/shared/agent-targets.d.ts.map +1 -0
- package/dist/cli/commands/shared/agent-targets.js +220 -0
- package/dist/cli/commands/shared/agent-targets.js.map +1 -0
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -1
- package/dist/cli/commands/shared/prompts/storage-scope.js +9 -2
- package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -1
- package/dist/cli/commands/shared/selection/ui.d.ts +22 -0
- package/dist/cli/commands/shared/selection/ui.d.ts.map +1 -1
- package/dist/cli/commands/shared/selection/ui.js +34 -0
- package/dist/cli/commands/shared/selection/ui.js.map +1 -1
- package/dist/cli/commands/skills/lib/skills-metrics.d.ts.map +1 -1
- package/dist/cli/commands/skills/lib/skills-metrics.js +47 -11
- package/dist/cli/commands/skills/lib/skills-metrics.js.map +1 -1
- package/dist/cli/commands/skills/setup/generators/codex-skill-generator.d.ts +4 -0
- package/dist/cli/commands/skills/setup/generators/codex-skill-generator.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/generators/codex-skill-generator.js +51 -0
- package/dist/cli/commands/skills/setup/generators/codex-skill-generator.js.map +1 -0
- package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.d.ts +4 -0
- package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.js +51 -0
- package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.js.map +1 -0
- package/dist/cli/commands/skills/setup/helpers.d.ts +3 -2
- package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/helpers.js +31 -6
- package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
- package/dist/cli/commands/skills/setup/index.d.ts +2 -1
- package/dist/cli/commands/skills/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/index.js +14 -11
- package/dist/cli/commands/skills/setup/index.js.map +1 -1
- package/dist/cli/commands/skills/setup/selection/ui.d.ts.map +1 -1
- package/dist/cli/commands/skills/setup/selection/ui.js +8 -13
- package/dist/cli/commands/skills/setup/selection/ui.js.map +1 -1
- package/dist/cli/commands/test-metrics.js +3 -4
- package/dist/cli/commands/test-metrics.js.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +2 -0
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/frameworks/plugins/bmad.plugin.d.ts +10 -1
- package/dist/frameworks/plugins/bmad.plugin.d.ts.map +1 -1
- package/dist/frameworks/plugins/bmad.plugin.js +108 -9
- package/dist/frameworks/plugins/bmad.plugin.js.map +1 -1
- package/dist/frameworks/plugins/codebase-memory.plugin.d.ts +18 -0
- package/dist/frameworks/plugins/codebase-memory.plugin.d.ts.map +1 -0
- package/dist/frameworks/plugins/codebase-memory.plugin.js +131 -0
- package/dist/frameworks/plugins/codebase-memory.plugin.js.map +1 -0
- package/dist/frameworks/plugins/index.d.ts +1 -0
- package/dist/frameworks/plugins/index.d.ts.map +1 -1
- package/dist/frameworks/plugins/index.js +3 -0
- package/dist/frameworks/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +4 -4
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.d.ts +20 -0
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.js +104 -0
- package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js +24 -3
- package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js +5 -0
- package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +3 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +5 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/logging.plugin.js +10 -3
- package/dist/providers/plugins/sso/proxy/plugins/logging.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +26 -8
- package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/sso.proxy.js +21 -4
- package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
- package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/SessionSyncer.js +5 -72
- package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/apiClient.d.ts +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/apiClient.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/apiClient.js +95 -4
- package/dist/providers/plugins/sso/session/processors/conversations/apiClient.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/constants.d.ts +2 -2
- package/dist/providers/plugins/sso/session/processors/conversations/constants.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/constants.js +2 -2
- package/dist/providers/plugins/sso/session/processors/conversations/constants.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.js +85 -21
- package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/types.d.ts +10 -2
- package/dist/providers/plugins/sso/session/processors/conversations/types.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js +80 -46
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts +1 -9
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js +94 -30
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts +4 -6
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js +24 -25
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +140 -99
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts +11 -3
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.auth.js +22 -4
- package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js +2 -2
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts.map +1 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js +4 -1
- package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js.map +1 -1
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -1
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +1 -3
- package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -1
- package/dist/utils/browser.d.ts +7 -0
- package/dist/utils/browser.d.ts.map +1 -0
- package/dist/utils/browser.js +10 -0
- package/dist/utils/browser.js.map +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +7 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/paths.d.ts +8 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +15 -0
- package/dist/utils/paths.js.map +1 -1
- package/package.json +2 -1
- package/scripts/compare-codex-conversations.mjs +894 -0
- package/scripts/validate-secrets.js +7 -3
- package/dist/agents/plugins/claude/plugin/claude-templates/README.md +0 -539
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +0 -252
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/code-review-agent-template.md.template +0 -433
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/refactor-cleaner-agent.md.template +0 -337
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/solution-architect-agent.md.template +0 -197
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/unit-tester-agent.md.template +0 -258
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +0 -179
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/architecture.md.template +0 -197
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +0 -248
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +0 -298
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/integration/external-integrations.md.template +0 -160
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +0 -295
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +0 -186
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/git-workflow.md.template +0 -177
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +0 -315
- package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +0 -522
- package/dist/agents/plugins/claude/plugin/commands/handoff.md +0 -56
- package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +0 -549
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-baseline.sh +0 -39
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-rewrite.sh +0 -101
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/SKILL.md +0 -206
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-agent.md +0 -45
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-claude-md-snippet.md +0 -40
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-command.md +0 -30
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-hooks.json +0 -23
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-skill.md +0 -48
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-agent.md +0 -145
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-claude-md-snippet.md +0 -126
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-command.md +0 -170
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-hooks.json +0 -46
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-skill.md +0 -144
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/sample-report.md +0 -223
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/references/best-practices.md +0 -510
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/references/component-checklists.md +0 -413
- package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/scripts/scan-repo.sh +0 -162
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# Database Patterns
|
|
3
|
-
|
|
4
|
-
<!--
|
|
5
|
-
GENERATION INSTRUCTIONS:
|
|
6
|
-
1. Detect ORM/query builder/raw SQL approach
|
|
7
|
-
2. Scan models/entities for relationships
|
|
8
|
-
3. Extract actual query patterns from repositories/services
|
|
9
|
-
4. Find transaction usage examples
|
|
10
|
-
5. Locate migration files and commands
|
|
11
|
-
6. Output: 150-300 lines max
|
|
12
|
-
-->
|
|
13
|
-
|
|
14
|
-
**Project**: [Extract from config]
|
|
15
|
-
**Database**: [Detect: PostgreSQL | MySQL | MongoDB | SQLite | etc.]
|
|
16
|
-
**Data Access**: [Detect: ORM (name) | Query Builder | Raw SQL | Mixed]
|
|
17
|
-
**Models Location**: `[Detect path]`
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Connection Setup
|
|
22
|
-
|
|
23
|
-
<!-- Extract actual connection configuration -->
|
|
24
|
-
|
|
25
|
-
```[lang]
|
|
26
|
-
// Source: [file:lines]
|
|
27
|
-
[Extract connection/pool configuration]
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Environment Variables**:
|
|
31
|
-
| Variable | Purpose |
|
|
32
|
-
|----------|---------|
|
|
33
|
-
| `[DB_HOST/DATABASE_URL]` | [Connection string or host] |
|
|
34
|
-
| `[DB_NAME]` | [Database name] |
|
|
35
|
-
| `[DB_POOL_SIZE]` | [Pool size if configured] |
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Data Access Pattern
|
|
40
|
-
|
|
41
|
-
<!-- Identify how this codebase accesses data -->
|
|
42
|
-
|
|
43
|
-
**Pattern**: [Detect: Repository | Active Record | DAO | Direct ORM | Service Layer]
|
|
44
|
-
|
|
45
|
-
```[lang]
|
|
46
|
-
// Source: [file:lines]
|
|
47
|
-
[Extract canonical data access example - the PRIMARY pattern used]
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**To add new data access:**
|
|
51
|
-
1. Create in `[detected path]`
|
|
52
|
-
2. Follow pattern: `[detected naming convention]`
|
|
53
|
-
3. Inject/import via `[detected DI or import pattern]`
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Entity/Model Definition
|
|
58
|
-
|
|
59
|
-
<!-- Extract representative model showing conventions -->
|
|
60
|
-
|
|
61
|
-
```[lang]
|
|
62
|
-
// Source: [file:lines]
|
|
63
|
-
[Extract one model with relationships, validations, typical fields]
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**Conventions:**
|
|
67
|
-
| Aspect | Convention |
|
|
68
|
-
|--------|------------|
|
|
69
|
-
| Table naming | `[singular/plural, snake_case/PascalCase]` |
|
|
70
|
-
| Primary key | `[id/uuid/_id pattern]` |
|
|
71
|
-
| Timestamps | `[created_at/createdAt, updated_at/updatedAt]` |
|
|
72
|
-
| Soft delete | `[deleted_at field or N/A]` |
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Relationships
|
|
77
|
-
|
|
78
|
-
<!-- Scan models and document relationship patterns -->
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
[EntityA] ──1:N──► [EntityB] ──N:M──► [EntityC]
|
|
82
|
-
│
|
|
83
|
-
1:1─┴─► [EntityD]
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
| Relationship | Implementation | Source |
|
|
87
|
-
|--------------|----------------|--------|
|
|
88
|
-
| One-to-Many | `[syntax used]` | `[file:line]` |
|
|
89
|
-
| Many-to-Many | `[syntax used]` | `[file:line]` |
|
|
90
|
-
| One-to-One | `[syntax used]` | `[file:line]` |
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## Query Patterns
|
|
95
|
-
|
|
96
|
-
<!-- Extract actual query patterns used in codebase -->
|
|
97
|
-
|
|
98
|
-
### Basic Operations
|
|
99
|
-
|
|
100
|
-
| Operation | Pattern | Source |
|
|
101
|
-
|-----------|---------|--------|
|
|
102
|
-
| Find by ID | `[extract syntax]` | `[file:line]` |
|
|
103
|
-
| Find many | `[extract syntax]` | `[file:line]` |
|
|
104
|
-
| Create | `[extract syntax]` | `[file:line]` |
|
|
105
|
-
| Update | `[extract syntax]` | `[file:line]` |
|
|
106
|
-
| Delete | `[extract syntax]` | `[file:line]` |
|
|
107
|
-
|
|
108
|
-
### Filtering & Search
|
|
109
|
-
|
|
110
|
-
```[lang]
|
|
111
|
-
// Source: [file:lines]
|
|
112
|
-
[Extract example with WHERE conditions, filtering]
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Pagination
|
|
116
|
-
|
|
117
|
-
```[lang]
|
|
118
|
-
// Source: [file:lines]
|
|
119
|
-
[Extract pagination implementation]
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
**Type**: [Offset-based | Cursor-based | Keyset]
|
|
123
|
-
**Params**: `[page/limit or cursor/take]`
|
|
124
|
-
|
|
125
|
-
### Complex Query Example
|
|
126
|
-
|
|
127
|
-
```[lang]
|
|
128
|
-
// Source: [file:lines]
|
|
129
|
-
[Extract query with joins, aggregations, or subqueries if exists]
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Transactions
|
|
135
|
-
|
|
136
|
-
<!-- Find transaction usage in codebase -->
|
|
137
|
-
|
|
138
|
-
```[lang]
|
|
139
|
-
// Source: [file:lines]
|
|
140
|
-
[Extract transaction pattern]
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**Transaction boundaries managed at**: `[Service layer | Repository | Controller]`
|
|
144
|
-
|
|
145
|
-
**Rules in this codebase:**
|
|
146
|
-
- [Extract or infer transaction conventions]
|
|
147
|
-
- [When transactions are used]
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## Eager Loading / N+1 Prevention
|
|
152
|
-
|
|
153
|
-
<!-- Find include/join/populate patterns -->
|
|
154
|
-
|
|
155
|
-
```[lang]
|
|
156
|
-
// Source: [file:lines]
|
|
157
|
-
[Extract eager loading example]
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**Syntax**: `[include/populate/joinedLoad/with - whatever ORM uses]`
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## Migrations
|
|
165
|
-
|
|
166
|
-
<!-- Extract exact commands from package.json, Makefile, or docs -->
|
|
167
|
-
|
|
168
|
-
| Action | Command |
|
|
169
|
-
|--------|---------|
|
|
170
|
-
| Create migration | `[exact command]` |
|
|
171
|
-
| Run pending | `[exact command]` |
|
|
172
|
-
| Rollback last | `[exact command]` |
|
|
173
|
-
| Check status | `[exact command]` |
|
|
174
|
-
|
|
175
|
-
**Migrations location**: `[path]`
|
|
176
|
-
|
|
177
|
-
**Naming convention**: `[timestamp_description | sequential | etc.]`
|
|
178
|
-
|
|
179
|
-
```[lang]
|
|
180
|
-
// Source: [file:lines]
|
|
181
|
-
[Extract example migration structure]
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## Seeding / Fixtures
|
|
187
|
-
|
|
188
|
-
<!-- Find seed data patterns if they exist -->
|
|
189
|
-
|
|
190
|
-
| Action | Command |
|
|
191
|
-
|--------|---------|
|
|
192
|
-
| Run seeds | `[command or N/A]` |
|
|
193
|
-
| Reset + seed | `[command or N/A]` |
|
|
194
|
-
|
|
195
|
-
**Seeds location**: `[path or N/A]`
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Raw Queries
|
|
200
|
-
|
|
201
|
-
<!-- Find if/how raw SQL is used -->
|
|
202
|
-
|
|
203
|
-
**Used for**: [Complex reports | Bulk operations | Not used | etc.]
|
|
204
|
-
|
|
205
|
-
```[lang]
|
|
206
|
-
// Source: [file:lines] - ALWAYS parameterized
|
|
207
|
-
[Extract parameterized raw query example]
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
⚠️ **Never**: String interpolation → SQL injection risk
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## Error Handling
|
|
215
|
-
|
|
216
|
-
<!-- Find database error handling patterns -->
|
|
217
|
-
|
|
218
|
-
| Error Type | Handling | Source |
|
|
219
|
-
|------------|----------|--------|
|
|
220
|
-
| Not found | `[throw/return pattern]` | `[file:line]` |
|
|
221
|
-
| Duplicate key | `[catch/handle pattern]` | `[file:line]` |
|
|
222
|
-
| Connection error | `[retry/fail pattern]` | `[file:line]` |
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
## Conventions Summary
|
|
227
|
-
|
|
228
|
-
| ✅ DO | ❌ DON'T |
|
|
229
|
-
|-------|----------|
|
|
230
|
-
| Use `[detected data access pattern]` | Direct DB calls in `[wrong layer]` |
|
|
231
|
-
| `[eager load syntax]` for relations | Lazy load in loops (N+1) |
|
|
232
|
-
| Parameterized queries | String interpolation |
|
|
233
|
-
| Transactions for multi-writes | Individual saves for related data |
|
|
234
|
-
| `[soft delete if used]` | Hard delete `[if soft delete is convention]` |
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
## Quick Reference
|
|
239
|
-
|
|
240
|
-
| Need | Location | Pattern |
|
|
241
|
-
|------|----------|---------|
|
|
242
|
-
| Models/Entities | `[path]` | `[naming]` |
|
|
243
|
-
| Repositories/DAOs | `[path]` | `[naming]` |
|
|
244
|
-
| Migrations | `[path]` | `[naming]` |
|
|
245
|
-
| Seeds | `[path]` | `[naming]` |
|
|
246
|
-
| DB Config | `[path]` | - |
|
|
247
|
-
|
|
248
|
-
---
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# Development Practices
|
|
3
|
-
|
|
4
|
-
<!--
|
|
5
|
-
GENERATION INSTRUCTIONS:
|
|
6
|
-
1. Scan for linter/formatter configs (.eslintrc, .prettierrc, pyproject.toml, etc.)
|
|
7
|
-
2. Extract naming patterns from existing code
|
|
8
|
-
3. Find error handling patterns in services/controllers
|
|
9
|
-
4. Locate logging usage and configuration
|
|
10
|
-
5. Check for pre-commit hooks, CI config
|
|
11
|
-
6. Output: 150-300 lines max
|
|
12
|
-
-->
|
|
13
|
-
|
|
14
|
-
**Project**: [Extract from config]
|
|
15
|
-
**Language**: [Detect] | **Framework**: [Detect]
|
|
16
|
-
**Linter**: [Detect] | **Formatter**: [Detect]
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Code Style
|
|
21
|
-
|
|
22
|
-
<!-- Extract from linter config + analyze existing code patterns -->
|
|
23
|
-
|
|
24
|
-
### Naming Conventions
|
|
25
|
-
|
|
26
|
-
| Element | Convention | Example |
|
|
27
|
-
|---------|------------|---------|
|
|
28
|
-
| Files | `[kebab-case/snake_case/PascalCase]` | `[actual example from codebase]` |
|
|
29
|
-
| Classes | `[PascalCase]` | `[actual example]` |
|
|
30
|
-
| Functions | `[camelCase/snake_case]` | `[actual example]` |
|
|
31
|
-
| Variables | `[camelCase/snake_case]` | `[actual example]` |
|
|
32
|
-
| Constants | `[UPPER_SNAKE_CASE]` | `[actual example]` |
|
|
33
|
-
| Private | `[_prefix/no prefix/#private]` | `[actual example]` |
|
|
34
|
-
|
|
35
|
-
### File Organization
|
|
36
|
-
|
|
37
|
-
```[lang]
|
|
38
|
-
// Source: [representative file path]
|
|
39
|
-
// Standard file structure in this codebase:
|
|
40
|
-
|
|
41
|
-
[Extract typical file structure showing imports, class/function order]
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Import Order
|
|
45
|
-
|
|
46
|
-
<!-- Extract from linter config or consistent patterns -->
|
|
47
|
-
|
|
48
|
-
```[lang]
|
|
49
|
-
// 1. [Standard library / Built-ins]
|
|
50
|
-
// 2. [External packages / Third-party]
|
|
51
|
-
// 3. [Internal modules / Local imports]
|
|
52
|
-
|
|
53
|
-
[Extract example showing import organization]
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Code Quality
|
|
59
|
-
|
|
60
|
-
<!-- Find linter/formatter configuration -->
|
|
61
|
-
|
|
62
|
-
### Commands
|
|
63
|
-
|
|
64
|
-
| Action | Command | Auto-fix |
|
|
65
|
-
|--------|---------|----------|
|
|
66
|
-
| Lint | `[exact command]` | `[fix command]` |
|
|
67
|
-
| Format | `[exact command]` | `[format write command]` |
|
|
68
|
-
| Type check | `[command or N/A]` | - |
|
|
69
|
-
| All checks | `[combined command if exists]` | - |
|
|
70
|
-
|
|
71
|
-
### Configuration Files
|
|
72
|
-
|
|
73
|
-
| Tool | Config File |
|
|
74
|
-
|------|-------------|
|
|
75
|
-
| Linter | `[.eslintrc / .pylintrc / etc.]` |
|
|
76
|
-
| Formatter | `[.prettierrc / pyproject.toml / etc.]` |
|
|
77
|
-
| Type checker | `[tsconfig.json / mypy.ini / etc.]` |
|
|
78
|
-
|
|
79
|
-
### Pre-commit Hooks
|
|
80
|
-
|
|
81
|
-
<!-- Check for .pre-commit-config.yaml, husky, lint-staged -->
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
# Setup (if not auto-installed)
|
|
85
|
-
[pre-commit install command or N/A]
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
**Runs on commit**: [List what runs - lint, format, tests]
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Error Handling
|
|
93
|
-
|
|
94
|
-
<!-- Extract exception classes and handling patterns -->
|
|
95
|
-
|
|
96
|
-
### Exception Types
|
|
97
|
-
|
|
98
|
-
| Exception | Use When | Source |
|
|
99
|
-
|-----------|----------|--------|
|
|
100
|
-
| `[ValidationError]` | Invalid input data | `[file:line]` |
|
|
101
|
-
| `[NotFoundError]` | Resource doesn't exist | `[file:line]` |
|
|
102
|
-
| `[UnauthorizedError]` | Auth required/failed | `[file:line]` |
|
|
103
|
-
| `[ForbiddenError]` | Permission denied | `[file:line]` |
|
|
104
|
-
| `[ConflictError]` | State conflict | `[file:line]` |
|
|
105
|
-
|
|
106
|
-
### Pattern
|
|
107
|
-
|
|
108
|
-
```[lang]
|
|
109
|
-
// Source: [file:lines]
|
|
110
|
-
[Extract canonical error throwing/handling pattern]
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**Rules:**
|
|
114
|
-
- Throw specific exceptions from `[exceptions path]`
|
|
115
|
-
- Let `[error handler/middleware]` convert to response
|
|
116
|
-
- ❌ Never catch-and-ignore silently
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Logging
|
|
121
|
-
|
|
122
|
-
<!-- Find logging configuration and usage patterns -->
|
|
123
|
-
|
|
124
|
-
### Setup
|
|
125
|
-
|
|
126
|
-
```[lang]
|
|
127
|
-
// Source: [file:lines]
|
|
128
|
-
[Extract logger initialization/import pattern]
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Usage Pattern
|
|
132
|
-
|
|
133
|
-
```[lang]
|
|
134
|
-
// Source: [file:lines]
|
|
135
|
-
[Extract example showing structured logging with context]
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Levels
|
|
139
|
-
|
|
140
|
-
| Level | Use For |
|
|
141
|
-
|-------|---------|
|
|
142
|
-
| `debug` | Development troubleshooting |
|
|
143
|
-
| `info` | Significant operations (startup, requests) |
|
|
144
|
-
| `warn` | Recoverable issues, deprecations |
|
|
145
|
-
| `error` | Failures requiring attention |
|
|
146
|
-
|
|
147
|
-
### Rules
|
|
148
|
-
|
|
149
|
-
- ✅ Include context: `{ userId, requestId, [relevant ids] }`
|
|
150
|
-
- ✅ Use `[detected logger]` from `[import path]`
|
|
151
|
-
- ❌ No secrets, passwords, tokens in logs
|
|
152
|
-
- ❌ No excessive logging in loops/hot paths
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Async Patterns
|
|
157
|
-
|
|
158
|
-
<!-- Detect if async/await, promises, or sync patterns used -->
|
|
159
|
-
|
|
160
|
-
**Style**: [async/await | Promises | Callbacks | Sync | Mixed]
|
|
161
|
-
|
|
162
|
-
```[lang]
|
|
163
|
-
// Source: [file:lines]
|
|
164
|
-
[Extract canonical async pattern]
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Error Handling in Async
|
|
168
|
-
|
|
169
|
-
```[lang]
|
|
170
|
-
// Source: [file:lines]
|
|
171
|
-
[Extract async error handling - try/catch wrapper, error middleware, etc.]
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Configuration & Environment
|
|
177
|
-
|
|
178
|
-
<!-- Find how config is loaded and validated -->
|
|
179
|
-
|
|
180
|
-
### Loading Pattern
|
|
181
|
-
|
|
182
|
-
```[lang]
|
|
183
|
-
// Source: [file:lines]
|
|
184
|
-
[Extract config loading/validation pattern]
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Required Variables
|
|
188
|
-
|
|
189
|
-
| Variable | Purpose | Example |
|
|
190
|
-
|----------|---------|---------|
|
|
191
|
-
| `[VAR_NAME]` | [Purpose] | `[example value]` |
|
|
192
|
-
| `[VAR_NAME]` | [Purpose] | `[example value]` |
|
|
193
|
-
|
|
194
|
-
### Accessing Config
|
|
195
|
-
|
|
196
|
-
```[lang]
|
|
197
|
-
// Use this pattern to access configuration
|
|
198
|
-
[Extract how to import/use config values]
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## Dependencies
|
|
204
|
-
|
|
205
|
-
<!-- Find package manager and conventions -->
|
|
206
|
-
|
|
207
|
-
### Adding Dependencies
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
# Production dependency
|
|
211
|
-
[npm install X / pip install X / etc.]
|
|
212
|
-
|
|
213
|
-
# Dev dependency
|
|
214
|
-
[npm install -D X / pip install X --dev / etc.]
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Update Process
|
|
218
|
-
|
|
219
|
-
```bash
|
|
220
|
-
# Check outdated
|
|
221
|
-
[command]
|
|
222
|
-
|
|
223
|
-
# Update
|
|
224
|
-
[command]
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
**Lock file**: `[package-lock.json / poetry.lock / etc.]` - ✅ Always commit
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## Git Workflow
|
|
232
|
-
|
|
233
|
-
<!-- Extract from CONTRIBUTING.md, .github, or infer from history -->
|
|
234
|
-
|
|
235
|
-
### Branch Naming
|
|
236
|
-
|
|
237
|
-
```
|
|
238
|
-
[feature/bugfix/hotfix]/[ticket-id]-[short-description]
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**Examples**: `feature/ABC-123-add-user-auth`, `bugfix/fix-login-redirect`
|
|
242
|
-
|
|
243
|
-
### Commit Messages
|
|
244
|
-
|
|
245
|
-
<!-- Detect conventional commits, or extract pattern -->
|
|
246
|
-
|
|
247
|
-
```
|
|
248
|
-
[type]([scope]): [description]
|
|
249
|
-
|
|
250
|
-
[body - optional]
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**Types**: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`
|
|
254
|
-
|
|
255
|
-
### PR Checklist
|
|
256
|
-
|
|
257
|
-
- [ ] Linting passes (`[lint command]`)
|
|
258
|
-
- [ ] Tests pass (`[test command]`)
|
|
259
|
-
- [ ] [Other checks from CI or CONTRIBUTING.md]
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## Common Patterns
|
|
264
|
-
|
|
265
|
-
<!-- Extract recurring patterns specific to this codebase -->
|
|
266
|
-
|
|
267
|
-
| Pattern | When to Use | Example |
|
|
268
|
-
|---------|-------------|---------|
|
|
269
|
-
| `[Helper/Utility name]` | [Use case] | `[file:line]` |
|
|
270
|
-
| `[Decorator/Middleware]` | [Use case] | `[file:line]` |
|
|
271
|
-
| `[Factory/Builder]` | [Use case] | `[file:line]` |
|
|
272
|
-
|
|
273
|
-
---
|
|
274
|
-
|
|
275
|
-
## Don't Do
|
|
276
|
-
|
|
277
|
-
<!-- Extract anti-patterns from linter rules or code review patterns -->
|
|
278
|
-
|
|
279
|
-
| ❌ Avoid | ✅ Instead | Why |
|
|
280
|
-
|----------|-----------|-----|
|
|
281
|
-
| `[anti-pattern]` | `[correct pattern]` | [reason] |
|
|
282
|
-
| `[anti-pattern]` | `[correct pattern]` | [reason] |
|
|
283
|
-
| `[anti-pattern]` | `[correct pattern]` | [reason] |
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## Quick Reference
|
|
288
|
-
|
|
289
|
-
| Need | Location |
|
|
290
|
-
|------|----------|
|
|
291
|
-
| Linter config | `[path]` |
|
|
292
|
-
| Formatter config | `[path]` |
|
|
293
|
-
| Exception classes | `[path]` |
|
|
294
|
-
| Logger setup | `[path]` |
|
|
295
|
-
| Config loader | `[path]` |
|
|
296
|
-
| Utilities | `[path]` |
|
|
297
|
-
|
|
298
|
-
---
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
# External Integrations
|
|
2
|
-
|
|
3
|
-
## Quick Summary
|
|
4
|
-
|
|
5
|
-
External service integration patterns for [PROJECT_NAME]: API clients, authentication, retries, and error handling.
|
|
6
|
-
|
|
7
|
-
**Category**: Integration
|
|
8
|
-
**Complexity**: Medium-High
|
|
9
|
-
**Prerequisites**: HTTP clients, async/await, API fundamentals
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 🚨 SIZE LIMIT WARNING
|
|
14
|
-
|
|
15
|
-
**This generated guide MUST be 200-400 lines maximum.**
|
|
16
|
-
|
|
17
|
-
**When filling this template**:
|
|
18
|
-
- ✅ Code examples: 5-15 lines (NEVER > 20)
|
|
19
|
-
- ✅ ONE example per pattern
|
|
20
|
-
- ✅ Use file:line references, not full code
|
|
21
|
-
- ✅ Use tables for multiple patterns
|
|
22
|
-
- ❌ NO multiple examples for same pattern
|
|
23
|
-
- ❌ NO verbose explanations
|
|
24
|
-
- ❌ NO copying entire functions
|
|
25
|
-
|
|
26
|
-
**Validate line count after generation**: `wc -l [this-file]`
|
|
27
|
-
**If > 400 lines**: Condense immediately before continuing!
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Integrated Services
|
|
32
|
-
|
|
33
|
-
| Service | Purpose | Auth | Source |
|
|
34
|
-
|---------|---------|------|--------|
|
|
35
|
-
| [Service1] | [Purpose] | [Method] | [file:lines] |
|
|
36
|
-
| [Service2] | [Purpose] | [Method] | [file:lines] |
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Client Pattern
|
|
41
|
-
|
|
42
|
-
```[language]
|
|
43
|
-
# Source: [file:lines]
|
|
44
|
-
[client_class]
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**Components**: Base URL, auth, retries, timeouts
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Authentication
|
|
52
|
-
|
|
53
|
-
### API Key
|
|
54
|
-
|
|
55
|
-
```[language]
|
|
56
|
-
# Source: [file:lines]
|
|
57
|
-
[api_key_auth]
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### OAuth2
|
|
61
|
-
|
|
62
|
-
```[language]
|
|
63
|
-
# Source: [file:lines]
|
|
64
|
-
[oauth2_auth]
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
**Token Management**: Store securely, refresh before expiry
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Error Handling
|
|
72
|
-
|
|
73
|
-
```[language]
|
|
74
|
-
# Source: [file:lines]
|
|
75
|
-
[error_handling]
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
| Status | Action |
|
|
79
|
-
|--------|--------|
|
|
80
|
-
| 4xx | Log, don't retry (usually) |
|
|
81
|
-
| 5xx | Log, retry with backoff |
|
|
82
|
-
| Timeout | Retry with backoff |
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Retry Logic
|
|
87
|
-
|
|
88
|
-
```[language]
|
|
89
|
-
# Source: [file:lines]
|
|
90
|
-
[retry_pattern]
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Strategy**: Exponential backoff
|
|
94
|
-
**Max Retries**: [N]
|
|
95
|
-
**When**: 5xx, timeouts, connection errors
|
|
96
|
-
**When Not**: 4xx (usually), auth failures
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Rate Limiting
|
|
101
|
-
|
|
102
|
-
```[language]
|
|
103
|
-
# Source: [file:lines]
|
|
104
|
-
[rate_limit]
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
**Headers**: `X-RateLimit-*`, `Retry-After`
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Timeouts
|
|
112
|
-
|
|
113
|
-
```[language]
|
|
114
|
-
# Source: [file:lines]
|
|
115
|
-
[timeout_config]
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**Types**: Connection | Read | Total
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Best Practices
|
|
123
|
-
|
|
124
|
-
| ✅ DO | ❌ DON'T |
|
|
125
|
-
|-------|----------|
|
|
126
|
-
| Retry with backoff | Infinite retries |
|
|
127
|
-
| Set timeouts | Wait forever |
|
|
128
|
-
| Log external calls | Silent failures |
|
|
129
|
-
| Cache when possible | Call repeatedly |
|
|
130
|
-
| Store secrets securely | Hardcode API keys |
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Security
|
|
135
|
-
|
|
136
|
-
- ✅ Env vars / secrets manager
|
|
137
|
-
- ✅ HTTPS only
|
|
138
|
-
- ✅ Validate TLS certs
|
|
139
|
-
- ❌ Log API keys
|
|
140
|
-
- ❌ Ignore cert errors
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Testing
|
|
145
|
-
|
|
146
|
-
```[language]
|
|
147
|
-
# Source: [test_file:lines]
|
|
148
|
-
[mock_example]
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
**Strategy**: Mock in unit tests, use test APIs in integration tests
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## References
|
|
156
|
-
|
|
157
|
-
- **Clients**: `[path/to/clients]`
|
|
158
|
-
- **Service Docs**: [Links]
|
|
159
|
-
|
|
160
|
-
---
|