specweave 0.1.9 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +600 -0
- package/README.md +263 -81
- package/bin/install-all.sh +1 -1
- package/bin/install-commands.sh +3 -3
- package/bin/specweave.js +39 -9
- package/dist/adapters/adapter-base.d.ts +1 -1
- package/dist/adapters/adapter-base.d.ts.map +1 -1
- package/dist/adapters/adapter-base.js +6 -41
- package/dist/adapters/adapter-base.js.map +1 -1
- package/dist/adapters/adapter-interface.js +1 -2
- package/dist/adapters/adapter-interface.js.map +1 -1
- package/dist/adapters/adapter-loader.d.ts +86 -0
- package/dist/adapters/adapter-loader.d.ts.map +1 -0
- package/dist/adapters/adapter-loader.js +216 -0
- package/dist/adapters/adapter-loader.js.map +1 -0
- package/dist/adapters/agents-md-generator.d.ts +48 -0
- package/dist/adapters/agents-md-generator.d.ts.map +1 -0
- package/dist/adapters/agents-md-generator.js +132 -0
- package/dist/adapters/agents-md-generator.js.map +1 -0
- package/dist/adapters/claude/adapter.d.ts +2 -2
- package/dist/adapters/claude/adapter.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.js +5 -42
- package/dist/adapters/claude/adapter.js.map +1 -1
- package/dist/adapters/claude-md-generator.d.ts +78 -0
- package/dist/adapters/claude-md-generator.d.ts.map +1 -0
- package/dist/adapters/claude-md-generator.js +246 -0
- package/dist/adapters/claude-md-generator.js.map +1 -0
- package/dist/adapters/codex/adapter.d.ts +50 -0
- package/dist/adapters/codex/adapter.d.ts.map +1 -0
- package/dist/adapters/codex/adapter.js +316 -0
- package/dist/adapters/codex/adapter.js.map +1 -0
- package/dist/adapters/copilot/adapter.d.ts +10 -9
- package/dist/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/adapters/copilot/adapter.js +35 -100
- package/dist/adapters/copilot/adapter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +8 -6
- package/dist/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/adapters/cursor/adapter.js +47 -130
- package/dist/adapters/cursor/adapter.js.map +1 -1
- package/dist/adapters/doc-generator.d.ts +69 -0
- package/dist/adapters/doc-generator.d.ts.map +1 -0
- package/dist/adapters/doc-generator.js +247 -0
- package/dist/adapters/doc-generator.js.map +1 -0
- package/dist/adapters/gemini/adapter.d.ts +50 -0
- package/dist/adapters/gemini/adapter.d.ts.map +1 -0
- package/dist/adapters/gemini/adapter.js +281 -0
- package/dist/adapters/gemini/adapter.js.map +1 -0
- package/dist/adapters/generic/adapter.d.ts +7 -4
- package/dist/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/adapters/generic/adapter.js +60 -59
- package/dist/adapters/generic/adapter.js.map +1 -1
- package/dist/cli/commands/init.d.ts +3 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +327 -177
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +22 -58
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +27 -64
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/core/credentials-manager.d.ts +90 -0
- package/dist/core/credentials-manager.d.ts.map +1 -0
- package/dist/core/credentials-manager.js +271 -0
- package/dist/core/credentials-manager.js.map +1 -0
- package/dist/core/project-structure-detector.d.ts +92 -0
- package/dist/core/project-structure-detector.d.ts.map +1 -0
- package/dist/core/project-structure-detector.js +289 -0
- package/dist/core/project-structure-detector.js.map +1 -0
- package/dist/core/rfc-generator-v2.d.ts +149 -0
- package/dist/core/rfc-generator-v2.d.ts.map +1 -0
- package/dist/core/rfc-generator-v2.js +399 -0
- package/dist/core/rfc-generator-v2.js.map +1 -0
- package/dist/core/rfc-generator.d.ts +147 -0
- package/dist/core/rfc-generator.d.ts.map +1 -0
- package/dist/core/rfc-generator.js +434 -0
- package/dist/core/rfc-generator.js.map +1 -0
- package/dist/integrations/ado/ado-client.d.ts +123 -0
- package/dist/integrations/ado/ado-client.d.ts.map +1 -0
- package/dist/integrations/ado/ado-client.js +398 -0
- package/dist/integrations/ado/ado-client.js.map +1 -0
- package/dist/integrations/jira/jira-client.d.ts +139 -0
- package/dist/integrations/jira/jira-client.d.ts.map +1 -0
- package/dist/integrations/jira/jira-client.js +386 -0
- package/dist/integrations/jira/jira-client.js.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts +75 -0
- package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.js +474 -0
- package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -0
- package/dist/integrations/jira/jira-mapper.d.ts +105 -0
- package/dist/integrations/jira/jira-mapper.d.ts.map +1 -0
- package/dist/integrations/jira/jira-mapper.js +494 -0
- package/dist/integrations/jira/jira-mapper.js.map +1 -0
- package/dist/testing/test-generator.d.ts +117 -0
- package/dist/testing/test-generator.d.ts.map +1 -0
- package/dist/testing/test-generator.js +370 -0
- package/dist/testing/test-generator.js.map +1 -0
- package/dist/utils/auto-install.d.ts +3 -0
- package/dist/utils/auto-install.d.ts.map +1 -1
- package/dist/utils/auto-install.js +16 -82
- package/dist/utils/auto-install.js.map +1 -1
- package/dist/utils/esm-helpers.d.ts +50 -0
- package/dist/utils/esm-helpers.d.ts.map +1 -0
- package/dist/utils/esm-helpers.js +57 -0
- package/dist/utils/esm-helpers.js.map +1 -0
- package/package.json +16 -7
- package/src/adapters/README.md +1 -2
- package/src/adapters/adapter-base.ts +6 -3
- package/src/adapters/adapter-loader.ts +261 -0
- package/src/adapters/agents-md-generator.ts +162 -0
- package/src/adapters/claude/README.md +6 -14
- package/src/adapters/claude/adapter.ts +4 -4
- package/src/adapters/claude-md-generator.ts +311 -0
- package/src/adapters/codex/README.md +105 -0
- package/src/adapters/codex/adapter.ts +333 -0
- package/src/adapters/copilot/adapter.ts +36 -65
- package/src/adapters/cursor/README.md +0 -2
- package/src/adapters/cursor/adapter.ts +46 -92
- package/src/adapters/doc-generator.ts +331 -0
- package/src/adapters/gemini/README.md +97 -0
- package/src/adapters/gemini/adapter.ts +298 -0
- package/src/adapters/generic/adapter.ts +61 -57
- package/src/adapters/registry.yaml +86 -25
- package/src/agents/devops/AGENT.md +16 -18
- package/src/agents/docs-writer/AGENT.md +2 -2
- package/src/agents/pm/AGENT.md +1 -50
- package/src/commands/README.md +134 -111
- package/src/commands/{build.md → specweave.do.md} +141 -69
- package/src/commands/{done.md → specweave.done.md} +3 -3
- package/src/commands/{inc.md → specweave.inc.md} +4 -4
- package/src/commands/{increment.md → specweave.increment.md} +143 -76
- package/src/commands/specweave.md +430 -0
- package/src/commands/specweave.next.md +495 -0
- package/src/commands/{progress.md → specweave.progress.md} +12 -12
- package/src/commands/specweave.sync-docs.md +665 -0
- package/src/commands/specweave.sync-github.md +269 -0
- package/src/commands/specweave.sync-jira.md +197 -0
- package/src/commands/{validate.md → specweave.validate.md} +4 -4
- package/src/hooks/README.md +19 -29
- package/src/hooks/post-task-completion.sh +25 -30
- package/src/skills/ado-sync/README.md +1 -36
- package/src/skills/bmad-method-expert/SKILL.md +1 -3
- package/src/skills/brownfield-analyzer/SKILL.md +429 -23
- package/src/skills/brownfield-onboarder/SKILL.md +221 -8
- package/src/skills/context-loader/SKILL.md +239 -617
- package/src/skills/context-optimizer/SKILL.md +0 -30
- package/src/skills/github-sync/SKILL.md +1 -19
- package/src/skills/increment-planner/SKILL.md +64 -18
- package/src/skills/increment-quality-judge/SKILL.md +1 -36
- package/src/skills/jira-sync/README.md +1 -38
- package/src/skills/role-orchestrator/README.md +1 -22
- package/src/skills/role-orchestrator/SKILL.md +1 -59
- package/src/skills/skill-router/SKILL.md +0 -18
- package/src/skills/spec-kit-expert/SKILL.md +1 -3
- package/src/skills/specweave-detector/SKILL.md +225 -275
- package/src/skills/task-builder/README.md +1 -7
- package/src/templates/AGENTS.md.template +334 -0
- package/src/templates/CLAUDE.md.template +131 -298
- package/src/templates/README.md.template +115 -23
- package/src/templates/environments/minimal/README.md +0 -1
- package/INSTALL.md +0 -848
- package/SPECWEAVE.md +0 -743
- package/src/adapters/copilot/.github/copilot/instructions.md +0 -376
- package/src/adapters/cursor/.cursorrules +0 -325
- package/src/adapters/generic/SPECWEAVE-MANUAL.md +0 -676
- package/src/commands/create-project.md +0 -528
- package/src/commands/generate-docs.md +0 -623
- package/src/commands/review-docs.md +0 -331
- package/src/commands/sync-github.md +0 -115
- package/src/skills/ado-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/ado-sync/test-cases/test-2.yaml +0 -8
- package/src/skills/ado-sync/test-cases/test-3.yaml +0 -9
- package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +0 -48
- package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +0 -39
- package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +0 -44
- package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +0 -45
- package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +0 -97
- package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +0 -109
- package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +0 -98
- package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +0 -75
- package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +0 -52
- package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +0 -63
- package/src/skills/cost-optimizer/test-results/README.md +0 -46
- package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +0 -23
- package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +0 -24
- package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +0 -23
- package/src/skills/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-2-sequence-diagram.yaml +0 -13
- package/src/skills/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -13
- package/src/skills/diagrams-generator/test-cases/test-1.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-2.yaml +0 -9
- package/src/skills/diagrams-generator/test-cases/test-3.yaml +0 -8
- package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/dotnet-backend/test-cases/test-1-rest-api.yaml +0 -14
- package/src/skills/dotnet-backend/test-cases/test-2-authentication.yaml +0 -13
- package/src/skills/dotnet-backend/test-cases/test-3-minimal-api.yaml +0 -13
- package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +0 -54
- package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +0 -64
- package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +0 -74
- package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +0 -98
- package/src/skills/figma-designer/test-cases/test-1-design-system.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-2-component-library.yaml +0 -13
- package/src/skills/figma-designer/test-cases/test-3-responsive-layout.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-1-design-to-react.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-2-storybook.yaml +0 -13
- package/src/skills/figma-implementer/test-cases/test-3-design-tokens.yaml +0 -13
- package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +0 -22
- package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +0 -21
- package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +0 -18
- package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +0 -29
- package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +0 -27
- package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +0 -28
- package/src/skills/frontend/test-cases/test-1-react-component.yaml +0 -13
- package/src/skills/frontend/test-cases/test-2-form-validation.yaml +0 -13
- package/src/skills/frontend/test-cases/test-3-state-management.yaml +0 -13
- package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +0 -71
- package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +0 -85
- package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +0 -126
- package/src/skills/hetzner-provisioner/test-results/README.md +0 -259
- package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +0 -27
- package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +0 -30
- package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +0 -24
- package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +0 -95
- package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +0 -108
- package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +0 -87
- package/src/skills/jira-sync/test-cases/test-1.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-2.yaml +0 -9
- package/src/skills/jira-sync/test-cases/test-3.yaml +0 -10
- package/src/skills/nextjs/test-cases/test-1-app-router.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-2-server-actions.yaml +0 -13
- package/src/skills/nextjs/test-cases/test-3-api-routes.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-1-express-api.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-2-prisma-orm.yaml +0 -13
- package/src/skills/nodejs-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/python-backend/test-cases/test-1-fastapi-crud.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-2-sqlalchemy.yaml +0 -13
- package/src/skills/python-backend/test-cases/test-3-authentication.yaml +0 -13
- package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +0 -98
- package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +0 -73
- package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +0 -121
- package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +0 -145
- package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +0 -149
- package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +0 -33
- package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +0 -42
- package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +0 -50
- package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +0 -148
- package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +0 -190
- package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +0 -233
- package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +0 -212
- package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +0 -461
- package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +0 -366
- package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/specweave-ado-mapper/test-cases/test-1-export-to-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-2-import-from-ado.yaml +0 -13
- package/src/skills/specweave-ado-mapper/test-cases/test-3-bidirectional-sync.yaml +0 -13
- package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +0 -37
- package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +0 -34
- package/src/skills/specweave-jira-mapper/test-cases/test-1-export-to-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-2-import-from-jira.yaml +0 -13
- package/src/skills/specweave-jira-mapper/test-cases/test-3-sync-status.yaml +0 -13
- package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +0 -12
- package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +0 -12
- package/src/templates/config.yaml +0 -351
- /package/src/commands/{list-increments.md → specweave.list-increments.md} +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Claude Code Adapter
|
|
4
3
|
*
|
|
@@ -8,45 +7,10 @@
|
|
|
8
7
|
* This is the BASELINE adapter - all other adapters try to approximate this experience
|
|
9
8
|
* within their tool's capabilities.
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
-
}
|
|
17
|
-
Object.defineProperty(o, k2, desc);
|
|
18
|
-
}) : (function(o, m, k, k2) {
|
|
19
|
-
if (k2 === undefined) k2 = k;
|
|
20
|
-
o[k2] = m[k];
|
|
21
|
-
}));
|
|
22
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
-
}) : function(o, v) {
|
|
25
|
-
o["default"] = v;
|
|
26
|
-
});
|
|
27
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
-
var ownKeys = function(o) {
|
|
29
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
-
var ar = [];
|
|
31
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
-
return ar;
|
|
33
|
-
};
|
|
34
|
-
return ownKeys(o);
|
|
35
|
-
};
|
|
36
|
-
return function (mod) {
|
|
37
|
-
if (mod && mod.__esModule) return mod;
|
|
38
|
-
var result = {};
|
|
39
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
-
__setModuleDefault(result, mod);
|
|
41
|
-
return result;
|
|
42
|
-
};
|
|
43
|
-
})();
|
|
44
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.ClaudeAdapter = void 0;
|
|
46
|
-
const path = __importStar(require("path"));
|
|
47
|
-
const fs = __importStar(require("fs-extra"));
|
|
48
|
-
const adapter_base_1 = require("../adapter-base");
|
|
49
|
-
class ClaudeAdapter extends adapter_base_1.AdapterBase {
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import fs from 'fs-extra';
|
|
12
|
+
import { AdapterBase } from '../adapter-base.js';
|
|
13
|
+
export class ClaudeAdapter extends AdapterBase {
|
|
50
14
|
constructor() {
|
|
51
15
|
super(...arguments);
|
|
52
16
|
this.name = 'claude';
|
|
@@ -156,7 +120,7 @@ WHAT THIS PROVIDES:
|
|
|
156
120
|
|
|
157
121
|
- Skills (Auto-Activating): specweave-detector, skill-router, context-loader, increment-planner
|
|
158
122
|
- Agents (Specialized Roles): PM, Architect, DevOps, QA, Security, and 14 more
|
|
159
|
-
- Slash Commands: /
|
|
123
|
+
- Slash Commands: /specweave inc, /specweave do, /specweave validate, /specweave sync-github
|
|
160
124
|
- Hooks (Auto-Update): post-task-completion, pre-implementation, docs-changed
|
|
161
125
|
|
|
162
126
|
WHY CLAUDE CODE IS BEST:
|
|
@@ -180,5 +144,4 @@ For complete documentation, see: .claude/README.md
|
|
|
180
144
|
`;
|
|
181
145
|
}
|
|
182
146
|
}
|
|
183
|
-
exports.ClaudeAdapter = ClaudeAdapter;
|
|
184
147
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/claude/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/claude/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,OAAO,aAAc,SAAQ,WAAW;IAA9C;;QACE,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,sFAAsF,CAAC;QACrG,oBAAe,GAAG,MAAe,CAAC;IA0IpC,CAAC;IAxIC;;;;;;OAMG;IACH,KAAK,CAAC,MAAM;QACV,6BAA6B;QAC7B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAExD,2DAA2D;QAC3D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEtD,OAAO,YAAY,IAAI,YAAY,CAAC;IACtC,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ;QACN,OAAO;YACL;gBACE,UAAU,EAAE,WAAW;gBACvB,UAAU,EAAE,mBAAmB;gBAC/B,WAAW,EAAE,8BAA8B;aAC5C;YACD,sEAAsE;YACtE,qDAAqD;SACtD,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QAEvE,kCAAkC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE9B,wBAAwB;QACxB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QACrD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAElD,cAAc;QACd,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAuB;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmDN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLAUDE.md Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates CLAUDE.md - the PRIMARY instruction file for Claude Code.
|
|
5
|
+
*
|
|
6
|
+
* CRITICAL:
|
|
7
|
+
* - Claude Code ONLY reads CLAUDE.md (NOT AGENTS.md)
|
|
8
|
+
* - This is the native/baseline implementation (skills, agents, hooks, slash commands)
|
|
9
|
+
* - Claude Code is NOT an adapter - it's the gold standard that others try to approximate
|
|
10
|
+
*
|
|
11
|
+
* This generator creates a quick reference that lists what's actually installed,
|
|
12
|
+
* so when we add new agents/skills, CLAUDE.md stays in sync automatically.
|
|
13
|
+
*/
|
|
14
|
+
export interface ClaudeMdOptions {
|
|
15
|
+
projectName: string;
|
|
16
|
+
projectPath: string;
|
|
17
|
+
templatePath?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generate CLAUDE.md with dynamic agent/skill sections
|
|
21
|
+
*/
|
|
22
|
+
export declare class ClaudeMdGenerator {
|
|
23
|
+
private docGen;
|
|
24
|
+
constructor(skillsDir?: string, agentsDir?: string, commandsDir?: string);
|
|
25
|
+
/**
|
|
26
|
+
* Generate complete CLAUDE.md content
|
|
27
|
+
*/
|
|
28
|
+
generate(options: ClaudeMdOptions): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Replace dynamic sections in template
|
|
31
|
+
*/
|
|
32
|
+
private replaceDynamicSections;
|
|
33
|
+
/**
|
|
34
|
+
* Generate dynamic agents section
|
|
35
|
+
*/
|
|
36
|
+
private replaceAgentsSection;
|
|
37
|
+
/**
|
|
38
|
+
* Generate agents table
|
|
39
|
+
*/
|
|
40
|
+
private generateAgentsTable;
|
|
41
|
+
/**
|
|
42
|
+
* Get agent activation guidance
|
|
43
|
+
*/
|
|
44
|
+
private getAgentActivation;
|
|
45
|
+
/**
|
|
46
|
+
* Generate dynamic skills section
|
|
47
|
+
*/
|
|
48
|
+
private replaceSkillsSection;
|
|
49
|
+
/**
|
|
50
|
+
* Generate framework skills table
|
|
51
|
+
*/
|
|
52
|
+
private generateFrameworkSkillsTable;
|
|
53
|
+
/**
|
|
54
|
+
* Generate tech skills table
|
|
55
|
+
*/
|
|
56
|
+
private generateTechSkillsTable;
|
|
57
|
+
/**
|
|
58
|
+
* Generate integration skills table
|
|
59
|
+
*/
|
|
60
|
+
private generateIntegrationSkillsTable;
|
|
61
|
+
/**
|
|
62
|
+
* Get skill activation guidance
|
|
63
|
+
*/
|
|
64
|
+
private getSkillActivation;
|
|
65
|
+
/**
|
|
66
|
+
* Generate skills table
|
|
67
|
+
*/
|
|
68
|
+
private generateSkillsTable;
|
|
69
|
+
/**
|
|
70
|
+
* Replace commands section
|
|
71
|
+
*/
|
|
72
|
+
private replaceCommandsSection;
|
|
73
|
+
/**
|
|
74
|
+
* Truncate text to max length
|
|
75
|
+
*/
|
|
76
|
+
private truncate;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=claude-md-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAe;gBAG3B,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM;IAKtB;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBzD;;OAEG;YACW,sBAAsB;IAkBpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAiBtC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACH,OAAO,CAAC,QAAQ;CAIjB"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLAUDE.md Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates CLAUDE.md - the PRIMARY instruction file for Claude Code.
|
|
5
|
+
*
|
|
6
|
+
* CRITICAL:
|
|
7
|
+
* - Claude Code ONLY reads CLAUDE.md (NOT AGENTS.md)
|
|
8
|
+
* - This is the native/baseline implementation (skills, agents, hooks, slash commands)
|
|
9
|
+
* - Claude Code is NOT an adapter - it's the gold standard that others try to approximate
|
|
10
|
+
*
|
|
11
|
+
* This generator creates a quick reference that lists what's actually installed,
|
|
12
|
+
* so when we add new agents/skills, CLAUDE.md stays in sync automatically.
|
|
13
|
+
*/
|
|
14
|
+
import { DocGenerator } from './doc-generator.js';
|
|
15
|
+
import * as path from 'path';
|
|
16
|
+
import fs from 'fs-extra';
|
|
17
|
+
import { getDirname } from '../utils/esm-helpers.js';
|
|
18
|
+
const __dirname = getDirname(import.meta.url);
|
|
19
|
+
/**
|
|
20
|
+
* Generate CLAUDE.md with dynamic agent/skill sections
|
|
21
|
+
*/
|
|
22
|
+
export class ClaudeMdGenerator {
|
|
23
|
+
constructor(skillsDir, agentsDir, commandsDir) {
|
|
24
|
+
this.docGen = new DocGenerator(skillsDir, agentsDir, commandsDir);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Generate complete CLAUDE.md content
|
|
28
|
+
*/
|
|
29
|
+
async generate(options) {
|
|
30
|
+
// Read template
|
|
31
|
+
const templatePath = options.templatePath ||
|
|
32
|
+
path.join(__dirname, '../templates/CLAUDE.md.template');
|
|
33
|
+
if (!await fs.pathExists(templatePath)) {
|
|
34
|
+
throw new Error(`CLAUDE.md template not found at: ${templatePath}`);
|
|
35
|
+
}
|
|
36
|
+
let content = await fs.readFile(templatePath, 'utf-8');
|
|
37
|
+
// Replace placeholders
|
|
38
|
+
content = content.replace(/\{PROJECT_NAME\}/g, options.projectName);
|
|
39
|
+
// Replace dynamic sections
|
|
40
|
+
content = await this.replaceDynamicSections(content);
|
|
41
|
+
return content;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Replace dynamic sections in template
|
|
45
|
+
*/
|
|
46
|
+
async replaceDynamicSections(content) {
|
|
47
|
+
// Extract actual skills and agents
|
|
48
|
+
const skills = await this.docGen.extractSkills();
|
|
49
|
+
const agents = await this.docGen.extractAgents();
|
|
50
|
+
const commands = await this.docGen.extractCommands();
|
|
51
|
+
// Replace agents section (lines 226-243 in template)
|
|
52
|
+
content = this.replaceAgentsSection(content, agents);
|
|
53
|
+
// Replace skills section (lines 248-278 in template)
|
|
54
|
+
content = this.replaceSkillsSection(content, skills);
|
|
55
|
+
// Replace commands section if needed
|
|
56
|
+
content = this.replaceCommandsSection(content, commands);
|
|
57
|
+
return content;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Generate dynamic agents section
|
|
61
|
+
*/
|
|
62
|
+
replaceAgentsSection(content, agents) {
|
|
63
|
+
const agentsTable = this.generateAgentsTable(agents);
|
|
64
|
+
// Find the agents section and replace it
|
|
65
|
+
// Look for "## Agents (Activate Automatically)" section
|
|
66
|
+
const agentsSectionRegex = /## Agents \(Activate Automatically\)[\s\S]*?(?=\n## |$)/;
|
|
67
|
+
const agentsSection = `## Agents (Activate Automatically)
|
|
68
|
+
|
|
69
|
+
**Strategic Agents** (pre-installed & ready to use):
|
|
70
|
+
|
|
71
|
+
${agentsTable}
|
|
72
|
+
|
|
73
|
+
**All ${agents.length} agents are pre-installed** - Claude uses the right one based on your request!
|
|
74
|
+
|
|
75
|
+
**See**: \`.claude/agents/\` for complete list
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
`;
|
|
79
|
+
if (agentsSectionRegex.test(content)) {
|
|
80
|
+
return content.replace(agentsSectionRegex, agentsSection);
|
|
81
|
+
}
|
|
82
|
+
return content;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Generate agents table
|
|
86
|
+
*/
|
|
87
|
+
generateAgentsTable(agents) {
|
|
88
|
+
let table = '| Agent | Purpose | Activates When |\n';
|
|
89
|
+
table += '|-------|---------|----------------|\n';
|
|
90
|
+
for (const agent of agents) {
|
|
91
|
+
const activation = this.getAgentActivation(agent.name);
|
|
92
|
+
table += `| \`${agent.name}\` | ${agent.description} | ${activation} |\n`;
|
|
93
|
+
}
|
|
94
|
+
return table;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get agent activation guidance
|
|
98
|
+
*/
|
|
99
|
+
getAgentActivation(agentName) {
|
|
100
|
+
const activations = {
|
|
101
|
+
'pm': 'Planning features',
|
|
102
|
+
'architect': 'Technical design',
|
|
103
|
+
'security': 'Security review',
|
|
104
|
+
'qa-lead': 'Testing',
|
|
105
|
+
'devops': 'Deployment needed',
|
|
106
|
+
'tech-lead': 'Code review',
|
|
107
|
+
'sre': 'Troubleshooting',
|
|
108
|
+
'docs-writer': 'Writing docs',
|
|
109
|
+
'performance': 'Optimization needed',
|
|
110
|
+
'frontend': 'Frontend development',
|
|
111
|
+
'nodejs-backend': 'Node.js backend',
|
|
112
|
+
'python-backend': 'Python backend',
|
|
113
|
+
'nextjs': 'Next.js development',
|
|
114
|
+
'dotnet-backend': '.NET development'
|
|
115
|
+
};
|
|
116
|
+
return activations[agentName] || 'Specialized tasks';
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generate dynamic skills section
|
|
120
|
+
*/
|
|
121
|
+
replaceSkillsSection(content, skills) {
|
|
122
|
+
const skillsTable = this.generateSkillsTable(skills);
|
|
123
|
+
// Find the skills section and replace it
|
|
124
|
+
const skillsSectionRegex = /## Skills \(Activate Automatically\)[\s\S]*?(?=\n## |$)/;
|
|
125
|
+
const skillsSection = `## Skills (Activate Automatically)
|
|
126
|
+
|
|
127
|
+
**Framework Skills** (always available):
|
|
128
|
+
|
|
129
|
+
${this.generateFrameworkSkillsTable(skills)}
|
|
130
|
+
|
|
131
|
+
**Technology Skills** (all pre-installed):
|
|
132
|
+
|
|
133
|
+
${this.generateTechSkillsTable(skills)}
|
|
134
|
+
|
|
135
|
+
**Integration Skills** (all pre-installed):
|
|
136
|
+
|
|
137
|
+
${this.generateIntegrationSkillsTable(skills)}
|
|
138
|
+
|
|
139
|
+
**See**: \`.claude/skills/\` for complete list of ${skills.length}+ skills!
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
`;
|
|
143
|
+
if (skillsSectionRegex.test(content)) {
|
|
144
|
+
return content.replace(skillsSectionRegex, skillsSection);
|
|
145
|
+
}
|
|
146
|
+
return content;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Generate framework skills table
|
|
150
|
+
*/
|
|
151
|
+
generateFrameworkSkillsTable(skills) {
|
|
152
|
+
const frameworkSkills = skills.filter(s => ['specweave-detector', 'increment-planner', 'context-loader', 'skill-router',
|
|
153
|
+
'spec-driven-debugging', 'spec-driven-brainstorming', 'brownfield-analyzer'].includes(s.name));
|
|
154
|
+
let table = '| Skill | Purpose | Activates When |\n';
|
|
155
|
+
table += '|-------|---------|----------------|\n';
|
|
156
|
+
for (const skill of frameworkSkills) {
|
|
157
|
+
const activation = this.getSkillActivation(skill.name);
|
|
158
|
+
table += `| \`${skill.name}\` | ${this.truncate(skill.description, 60)} | ${activation} |\n`;
|
|
159
|
+
}
|
|
160
|
+
return table;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Generate tech skills table
|
|
164
|
+
*/
|
|
165
|
+
generateTechSkillsTable(skills) {
|
|
166
|
+
const techSkills = skills.filter(s => ['nodejs-backend', 'python-backend', 'nextjs', 'frontend', 'dotnet-backend',
|
|
167
|
+
'e2e-playwright'].includes(s.name));
|
|
168
|
+
let table = '| Skill | Purpose | Activates When |\n';
|
|
169
|
+
table += '|-------|---------|----------------|\n';
|
|
170
|
+
for (const skill of techSkills) {
|
|
171
|
+
const activation = this.getSkillActivation(skill.name);
|
|
172
|
+
table += `| \`${skill.name}\` | ${this.truncate(skill.description, 60)} | ${activation} |\n`;
|
|
173
|
+
}
|
|
174
|
+
return table;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Generate integration skills table
|
|
178
|
+
*/
|
|
179
|
+
generateIntegrationSkillsTable(skills) {
|
|
180
|
+
const integrationSkills = skills.filter(s => ['jira-sync', 'github-sync', 'ado-sync', 'hetzner-provisioner',
|
|
181
|
+
'cost-optimizer', 'figma-mcp-connector'].includes(s.name));
|
|
182
|
+
let table = '| Skill | Purpose | Activates When |\n';
|
|
183
|
+
table += '|-------|---------|----------------|\n';
|
|
184
|
+
for (const skill of integrationSkills) {
|
|
185
|
+
const activation = this.getSkillActivation(skill.name);
|
|
186
|
+
table += `| \`${skill.name}\` | ${this.truncate(skill.description, 60)} | ${activation} |\n`;
|
|
187
|
+
}
|
|
188
|
+
return table;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get skill activation guidance
|
|
192
|
+
*/
|
|
193
|
+
getSkillActivation(skillName) {
|
|
194
|
+
const activations = {
|
|
195
|
+
'specweave-detector': 'User asks about SpecWeave',
|
|
196
|
+
'increment-planner': '/pi or feature planning',
|
|
197
|
+
'context-loader': 'Working on increments',
|
|
198
|
+
'skill-router': 'Ambiguous requests',
|
|
199
|
+
'spec-driven-debugging': 'Bug or test failure',
|
|
200
|
+
'spec-driven-brainstorming': 'Brainstorm or refine idea',
|
|
201
|
+
'nodejs-backend': 'Node.js backend',
|
|
202
|
+
'python-backend': 'Python backend',
|
|
203
|
+
'nextjs': 'Next.js',
|
|
204
|
+
'frontend': 'Frontend',
|
|
205
|
+
'dotnet-backend': '.NET',
|
|
206
|
+
'jira-sync': 'JIRA integration',
|
|
207
|
+
'github-sync': 'GitHub integration',
|
|
208
|
+
'ado-sync': 'Azure DevOps sync',
|
|
209
|
+
'hetzner-provisioner': 'Hetzner deployment',
|
|
210
|
+
'cost-optimizer': 'Cost optimization',
|
|
211
|
+
'e2e-playwright': 'E2E testing'
|
|
212
|
+
};
|
|
213
|
+
return activations[skillName] || 'Specialized tasks';
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Generate skills table
|
|
217
|
+
*/
|
|
218
|
+
generateSkillsTable(skills) {
|
|
219
|
+
let table = '| Skill | Description |\n';
|
|
220
|
+
table += '|-------|-------------|\n';
|
|
221
|
+
for (const skill of skills.slice(0, 20)) { // Top 20 skills
|
|
222
|
+
table += `| \`${skill.name}\` | ${this.truncate(skill.description, 80)} |\n`;
|
|
223
|
+
}
|
|
224
|
+
if (skills.length > 20) {
|
|
225
|
+
table += `| _...and ${skills.length - 20} more_ | See \`.claude/skills/\` |\n`;
|
|
226
|
+
}
|
|
227
|
+
return table;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Replace commands section
|
|
231
|
+
*/
|
|
232
|
+
replaceCommandsSection(content, commands) {
|
|
233
|
+
// Commands are already listed in the template, but we could make them dynamic too
|
|
234
|
+
// For now, we'll skip this since commands are explicitly documented
|
|
235
|
+
return content;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Truncate text to max length
|
|
239
|
+
*/
|
|
240
|
+
truncate(text, maxLength) {
|
|
241
|
+
if (text.length <= maxLength)
|
|
242
|
+
return text;
|
|
243
|
+
return text.substring(0, maxLength - 3) + '...';
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=claude-md-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex Adapter (OpenAI)
|
|
3
|
+
*
|
|
4
|
+
* Semi-automation adapter for OpenAI Codex (ChatGPT Code Interpreter/Codex CLI).
|
|
5
|
+
* Uses universal AGENTS.md file for instructions.
|
|
6
|
+
*
|
|
7
|
+
* Codex features:
|
|
8
|
+
* - Works in CLI, IDE, web, GitHub, iOS app
|
|
9
|
+
* - GPT-5-Codex optimized for engineering tasks
|
|
10
|
+
* - File read/write operations
|
|
11
|
+
* - Test execution and validation
|
|
12
|
+
* - Task-based isolated environments
|
|
13
|
+
*/
|
|
14
|
+
import { AdapterBase } from '../adapter-base.js';
|
|
15
|
+
import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
|
|
16
|
+
export declare class CodexAdapter extends AdapterBase {
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
automationLevel: "semi";
|
|
20
|
+
/**
|
|
21
|
+
* Detect if Codex is available
|
|
22
|
+
*
|
|
23
|
+
* Checks for:
|
|
24
|
+
* - codex command in PATH (Codex CLI)
|
|
25
|
+
* - .codex/ directory exists
|
|
26
|
+
* - AGENTS.md file exists (previously configured)
|
|
27
|
+
*/
|
|
28
|
+
detect(): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Get files to install for Codex adapter
|
|
31
|
+
*/
|
|
32
|
+
getFiles(): AdapterFile[];
|
|
33
|
+
/**
|
|
34
|
+
* Install Codex adapter
|
|
35
|
+
*/
|
|
36
|
+
install(options: AdapterOptions): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Generate AGENTS.md file
|
|
39
|
+
*/
|
|
40
|
+
private generateAgentsMd;
|
|
41
|
+
/**
|
|
42
|
+
* Post-installation instructions
|
|
43
|
+
*/
|
|
44
|
+
postInstall(options: AdapterOptions): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Get usage instructions for Codex adapter
|
|
47
|
+
*/
|
|
48
|
+
getInstructions(): string;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAMtE,qBAAa,YAAa,SAAQ,WAAW;IAC3C,IAAI,SAAW;IACf,WAAW,SAAoF;IAC/F,eAAe,EAAG,MAAM,CAAU;IAElC;;;;;;;OAOG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;IAezB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD;;OAEG;YACW,gBAAgB;IAgB9B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACH,eAAe,IAAI,MAAM;CAuN1B"}
|