specweave 0.1.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/INSTALL.md +848 -0
- package/LICENSE +21 -0
- package/README.md +675 -0
- package/SPECWEAVE.md +665 -0
- package/bin/install-agents.sh +57 -0
- package/bin/install-all.sh +49 -0
- package/bin/install-commands.sh +56 -0
- package/bin/install-skills.sh +57 -0
- package/bin/specweave.js +81 -0
- package/dist/adapters/adapter-base.d.ts +50 -0
- package/dist/adapters/adapter-base.d.ts.map +1 -0
- package/dist/adapters/adapter-base.js +146 -0
- package/dist/adapters/adapter-base.js.map +1 -0
- package/dist/adapters/adapter-interface.d.ts +108 -0
- package/dist/adapters/adapter-interface.d.ts.map +1 -0
- package/dist/adapters/adapter-interface.js +9 -0
- package/dist/adapters/adapter-interface.js.map +1 -0
- package/dist/adapters/claude/adapter.d.ts +54 -0
- package/dist/adapters/claude/adapter.d.ts.map +1 -0
- package/dist/adapters/claude/adapter.js +184 -0
- package/dist/adapters/claude/adapter.js.map +1 -0
- package/dist/adapters/copilot/adapter.d.ts +42 -0
- package/dist/adapters/copilot/adapter.d.ts.map +1 -0
- package/dist/adapters/copilot/adapter.js +239 -0
- package/dist/adapters/copilot/adapter.js.map +1 -0
- package/dist/adapters/cursor/adapter.d.ts +42 -0
- package/dist/adapters/cursor/adapter.d.ts.map +1 -0
- package/dist/adapters/cursor/adapter.js +297 -0
- package/dist/adapters/cursor/adapter.js.map +1 -0
- package/dist/adapters/generic/adapter.d.ts +40 -0
- package/dist/adapters/generic/adapter.d.ts.map +1 -0
- package/dist/adapters/generic/adapter.js +155 -0
- package/dist/adapters/generic/adapter.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +247 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +7 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +160 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/list.d.ts +6 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +154 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/package.json +90 -0
- package/src/adapters/README.md +312 -0
- package/src/adapters/adapter-base.ts +146 -0
- package/src/adapters/adapter-interface.ts +120 -0
- package/src/adapters/claude/README.md +241 -0
- package/src/adapters/claude/adapter.ts +157 -0
- package/src/adapters/copilot/.github/copilot/instructions.md +376 -0
- package/src/adapters/copilot/README.md +200 -0
- package/src/adapters/copilot/adapter.ts +210 -0
- package/src/adapters/cursor/.cursor/context/docs-context.md +62 -0
- package/src/adapters/cursor/.cursor/context/increments-context.md +71 -0
- package/src/adapters/cursor/.cursor/context/strategy-context.md +73 -0
- package/src/adapters/cursor/.cursor/context/tests-context.md +89 -0
- package/src/adapters/cursor/.cursorrules +325 -0
- package/src/adapters/cursor/README.md +243 -0
- package/src/adapters/cursor/adapter.ts +268 -0
- package/src/adapters/generic/README.md +277 -0
- package/src/adapters/generic/SPECWEAVE-MANUAL.md +676 -0
- package/src/adapters/generic/adapter.ts +159 -0
- package/src/adapters/registry.yaml +126 -0
- package/src/agents/architect/AGENT.md +416 -0
- package/src/agents/devops/AGENT.md +1738 -0
- package/src/agents/docs-writer/AGENT.md +239 -0
- package/src/agents/performance/AGENT.md +228 -0
- package/src/agents/pm/AGENT.md +751 -0
- package/src/agents/qa-lead/AGENT.md +150 -0
- package/src/agents/security/AGENT.md +179 -0
- package/src/agents/sre/AGENT.md +582 -0
- package/src/agents/sre/modules/backend-diagnostics.md +481 -0
- package/src/agents/sre/modules/database-diagnostics.md +509 -0
- package/src/agents/sre/modules/infrastructure.md +561 -0
- package/src/agents/sre/modules/monitoring.md +439 -0
- package/src/agents/sre/modules/security-incidents.md +421 -0
- package/src/agents/sre/modules/ui-diagnostics.md +302 -0
- package/src/agents/sre/playbooks/01-high-cpu-usage.md +204 -0
- package/src/agents/sre/playbooks/02-database-deadlock.md +241 -0
- package/src/agents/sre/playbooks/03-memory-leak.md +252 -0
- package/src/agents/sre/playbooks/04-slow-api-response.md +269 -0
- package/src/agents/sre/playbooks/05-ddos-attack.md +293 -0
- package/src/agents/sre/playbooks/06-disk-full.md +314 -0
- package/src/agents/sre/playbooks/07-service-down.md +333 -0
- package/src/agents/sre/playbooks/08-data-corruption.md +337 -0
- package/src/agents/sre/playbooks/09-cascade-failure.md +430 -0
- package/src/agents/sre/playbooks/10-rate-limit-exceeded.md +464 -0
- package/src/agents/sre/scripts/health-check.sh +230 -0
- package/src/agents/sre/scripts/log-analyzer.py +213 -0
- package/src/agents/sre/scripts/metrics-collector.sh +294 -0
- package/src/agents/sre/scripts/trace-analyzer.js +257 -0
- package/src/agents/sre/templates/incident-report.md +249 -0
- package/src/agents/sre/templates/mitigation-plan.md +375 -0
- package/src/agents/sre/templates/post-mortem.md +418 -0
- package/src/agents/sre/templates/runbook-template.md +412 -0
- package/src/agents/tech-lead/AGENT.md +263 -0
- package/src/commands/add-tasks.md +176 -0
- package/src/commands/close-increment.md +347 -0
- package/src/commands/create-increment.md +223 -0
- package/src/commands/create-project.md +528 -0
- package/src/commands/generate-docs.md +623 -0
- package/src/commands/list-increments.md +180 -0
- package/src/commands/review-docs.md +331 -0
- package/src/commands/start-increment.md +139 -0
- package/src/commands/sync-github.md +115 -0
- package/src/commands/validate-increment.md +800 -0
- package/src/hooks/README.md +252 -0
- package/src/hooks/docs-changed.sh +59 -0
- package/src/hooks/human-input-required.sh +55 -0
- package/src/hooks/post-task-completion.sh +57 -0
- package/src/hooks/pre-implementation.sh +47 -0
- package/src/skills/ado-sync/README.md +449 -0
- package/src/skills/ado-sync/SKILL.md +245 -0
- package/src/skills/ado-sync/test-cases/test-1.yaml +9 -0
- package/src/skills/ado-sync/test-cases/test-2.yaml +8 -0
- package/src/skills/ado-sync/test-cases/test-3.yaml +9 -0
- package/src/skills/bmad-method-expert/SKILL.md +628 -0
- package/src/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
- package/src/skills/bmad-method-expert/scripts/check-setup.js +208 -0
- package/src/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
- package/src/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
- package/src/skills/bmad-method-expert/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/bmad-method-expert/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/bmad-method-expert/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/brownfield-analyzer/SKILL.md +523 -0
- package/src/skills/brownfield-analyzer/test-cases/test-1-basic-analysis.yaml +48 -0
- package/src/skills/brownfield-analyzer/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/brownfield-analyzer/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/SKILL.md +625 -0
- package/src/skills/brownfield-onboarder/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/brownfield-onboarder/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/calendar-system/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/context-loader/SKILL.md +734 -0
- package/src/skills/context-loader/test-cases/test-1-basic-loading.yaml +39 -0
- package/src/skills/context-loader/test-cases/test-2-token-budget-exceeded.yaml +44 -0
- package/src/skills/context-loader/test-cases/test-3-section-anchors.yaml +45 -0
- package/src/skills/context-optimizer/SKILL.md +618 -0
- package/src/skills/context-optimizer/test-cases/test-1-bug-fix-narrow.yaml +97 -0
- package/src/skills/context-optimizer/test-cases/test-2-feature-focused.yaml +109 -0
- package/src/skills/context-optimizer/test-cases/test-3-architecture-broad.yaml +98 -0
- package/src/skills/cost-optimizer/SKILL.md +190 -0
- package/src/skills/cost-optimizer/test-cases/test-1-basic-comparison.yaml +75 -0
- package/src/skills/cost-optimizer/test-cases/test-2-budget-constraint.yaml +52 -0
- package/src/skills/cost-optimizer/test-cases/test-3-scale-requirement.yaml +63 -0
- package/src/skills/cost-optimizer/test-results/README.md +46 -0
- package/src/skills/design-system-architect/SKILL.md +107 -0
- package/src/skills/design-system-architect/test-cases/test-1-token-structure.yaml +23 -0
- package/src/skills/design-system-architect/test-cases/test-2-component-hierarchy.yaml +24 -0
- package/src/skills/design-system-architect/test-cases/test-3-accessibility-checklist.yaml +23 -0
- package/src/skills/diagrams-architect/SKILL.md +763 -0
- package/src/skills/diagrams-generator/SKILL.md +25 -0
- package/src/skills/diagrams-generator/test-cases/test-1.yaml +9 -0
- package/src/skills/diagrams-generator/test-cases/test-2.yaml +9 -0
- package/src/skills/diagrams-generator/test-cases/test-3.yaml +8 -0
- package/src/skills/docs-updater/README.md +48 -0
- package/src/skills/docs-updater/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/docs-updater/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/docs-updater/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/dotnet-backend/SKILL.md +250 -0
- package/src/skills/e2e-playwright/README.md +506 -0
- package/src/skills/e2e-playwright/SKILL.md +457 -0
- package/src/skills/e2e-playwright/execute.js +373 -0
- package/src/skills/e2e-playwright/lib/utils.js +514 -0
- package/src/skills/e2e-playwright/package.json +33 -0
- package/src/skills/e2e-playwright/test-cases/TC-001-basic-navigation.yaml +54 -0
- package/src/skills/e2e-playwright/test-cases/TC-002-form-interaction.yaml +64 -0
- package/src/skills/e2e-playwright/test-cases/TC-003-specweave-integration.yaml +74 -0
- package/src/skills/e2e-playwright/test-cases/TC-004-accessibility-check.yaml +98 -0
- package/src/skills/figma-designer/SKILL.md +149 -0
- package/src/skills/figma-implementer/SKILL.md +148 -0
- package/src/skills/figma-mcp-connector/SKILL.md +136 -0
- package/src/skills/figma-mcp-connector/test-cases/test-1-read-file-desktop.yaml +22 -0
- package/src/skills/figma-mcp-connector/test-cases/test-2-read-file-framelink.yaml +21 -0
- package/src/skills/figma-mcp-connector/test-cases/test-3-error-handling.yaml +18 -0
- package/src/skills/figma-to-code/SKILL.md +128 -0
- package/src/skills/figma-to-code/test-cases/test-1-token-generation.yaml +29 -0
- package/src/skills/figma-to-code/test-cases/test-2-component-generation.yaml +27 -0
- package/src/skills/figma-to-code/test-cases/test-3-typescript-generation.yaml +28 -0
- package/src/skills/frontend/SKILL.md +177 -0
- package/src/skills/github-sync/SKILL.md +252 -0
- package/src/skills/github-sync/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/github-sync/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/github-sync/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/hetzner-provisioner/README.md +308 -0
- package/src/skills/hetzner-provisioner/SKILL.md +251 -0
- package/src/skills/hetzner-provisioner/test-cases/test-1-basic-provision.yaml +71 -0
- package/src/skills/hetzner-provisioner/test-cases/test-2-postgres-provision.yaml +85 -0
- package/src/skills/hetzner-provisioner/test-cases/test-3-ssl-config.yaml +126 -0
- package/src/skills/hetzner-provisioner/test-results/README.md +259 -0
- package/src/skills/increment-planner/SKILL.md +889 -0
- package/src/skills/increment-planner/scripts/feature-utils.js +250 -0
- package/src/skills/increment-planner/test-cases/test-1-basic-feature.yaml +27 -0
- package/src/skills/increment-planner/test-cases/test-2-complex-feature.yaml +30 -0
- package/src/skills/increment-planner/test-cases/test-3-auto-numbering.yaml +24 -0
- package/src/skills/increment-quality-judge/SKILL.md +566 -0
- package/src/skills/increment-quality-judge/test-cases/test-1-good-spec.yaml +95 -0
- package/src/skills/increment-quality-judge/test-cases/test-2-poor-spec.yaml +108 -0
- package/src/skills/increment-quality-judge/test-cases/test-3-export-suggestions.yaml +87 -0
- package/src/skills/jira-sync/README.md +328 -0
- package/src/skills/jira-sync/SKILL.md +209 -0
- package/src/skills/jira-sync/test-cases/test-1.yaml +9 -0
- package/src/skills/jira-sync/test-cases/test-2.yaml +9 -0
- package/src/skills/jira-sync/test-cases/test-3.yaml +10 -0
- package/src/skills/nextjs/SKILL.md +176 -0
- package/src/skills/nodejs-backend/SKILL.md +181 -0
- package/src/skills/notification-system/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/notification-system/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/notification-system/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/python-backend/SKILL.md +226 -0
- package/src/skills/role-orchestrator/README.md +197 -0
- package/src/skills/role-orchestrator/SKILL.md +1184 -0
- package/src/skills/role-orchestrator/test-cases/test-1-simple-product.yaml +98 -0
- package/src/skills/role-orchestrator/test-cases/test-2-quality-gate-failure.yaml +73 -0
- package/src/skills/role-orchestrator/test-cases/test-3-security-workflow.yaml +121 -0
- package/src/skills/role-orchestrator/test-cases/test-4-parallel-execution.yaml +145 -0
- package/src/skills/role-orchestrator/test-cases/test-5-feedback-loops.yaml +149 -0
- package/src/skills/skill-creator/LICENSE.txt +202 -0
- package/src/skills/skill-creator/SKILL.md +209 -0
- package/src/skills/skill-creator/scripts/init_skill.py +303 -0
- package/src/skills/skill-creator/scripts/package_skill.py +110 -0
- package/src/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/src/skills/skill-creator/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/skill-creator/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/skill-creator/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/skill-router/SKILL.md +497 -0
- package/src/skills/skill-router/test-cases/test-1-basic-routing.yaml +33 -0
- package/src/skills/skill-router/test-cases/test-2-ambiguous-request.yaml +42 -0
- package/src/skills/skill-router/test-cases/test-3-nested-orchestration.yaml +50 -0
- package/src/skills/spec-driven-brainstorming/README.md +264 -0
- package/src/skills/spec-driven-brainstorming/SKILL.md +439 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-001-simple-idea-to-design.yaml +148 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-002-complex-ultrathink-design.yaml +190 -0
- package/src/skills/spec-driven-brainstorming/test-cases/TC-003-unclear-requirements-socratic.yaml +233 -0
- package/src/skills/spec-driven-debugging/README.md +479 -0
- package/src/skills/spec-driven-debugging/SKILL.md +652 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-001-simple-auth-bug.yaml +212 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-002-race-condition-ultrathink.yaml +461 -0
- package/src/skills/spec-driven-debugging/test-cases/TC-003-brownfield-missing-spec.yaml +366 -0
- package/src/skills/spec-kit-expert/SKILL.md +1012 -0
- package/src/skills/spec-kit-expert/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/spec-kit-expert/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/spec-kit-expert/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/specweave-ado-mapper/SKILL.md +501 -0
- package/src/skills/specweave-detector/SKILL.md +420 -0
- package/src/skills/specweave-detector/test-cases/test-1-basic-detection.yaml +37 -0
- package/src/skills/specweave-detector/test-cases/test-2-missing-config.yaml +37 -0
- package/src/skills/specweave-detector/test-cases/test-3-non-specweave-project.yaml +34 -0
- package/src/skills/specweave-jira-mapper/SKILL.md +500 -0
- package/src/skills/stripe-integrator/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/stripe-integrator/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/stripe-integrator/test-cases/test-3-placeholder.yaml +12 -0
- package/src/skills/task-builder/README.md +90 -0
- package/src/skills/task-builder/test-cases/test-1-placeholder.yaml +12 -0
- package/src/skills/task-builder/test-cases/test-2-placeholder.yaml +12 -0
- package/src/skills/task-builder/test-cases/test-3-placeholder.yaml +12 -0
- package/src/templates/.env.example +144 -0
- package/src/templates/.gitignore.template +81 -0
- package/src/templates/CLAUDE.md.template +383 -0
- package/src/templates/README.md.template +240 -0
- package/src/templates/config.yaml +333 -0
- package/src/templates/docs/README.md +124 -0
- package/src/templates/docs/adr-template.md +118 -0
- package/src/templates/docs/hld-template.md +220 -0
- package/src/templates/docs/lld-template.md +580 -0
- package/src/templates/docs/prd-template.md +132 -0
- package/src/templates/docs/rfc-template.md +229 -0
- package/src/templates/docs/runbook-template.md +298 -0
- package/src/templates/environments/minimal/.env.production +16 -0
- package/src/templates/environments/minimal/README.md +54 -0
- package/src/templates/environments/minimal/deploy-production.yml +52 -0
- package/src/templates/environments/progressive/.env.qa +28 -0
- package/src/templates/environments/progressive/README.md +129 -0
- package/src/templates/environments/progressive/deploy-production.yml +93 -0
- package/src/templates/environments/progressive/deploy-qa.yml +62 -0
- package/src/templates/environments/progressive/deploy-staging.yml +67 -0
- package/src/templates/environments/standard/.env.development +20 -0
- package/src/templates/environments/standard/.env.production +30 -0
- package/src/templates/environments/standard/.env.staging +23 -0
- package/src/templates/environments/standard/README.md +97 -0
- package/src/templates/environments/standard/deploy-production.yml +68 -0
- package/src/templates/environments/standard/deploy-staging.yml +61 -0
- package/src/templates/environments/standard/docker-compose.yml +43 -0
- package/src/templates/increment-metadata-template.yaml +138 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cursor Adapter
|
|
4
|
+
*
|
|
5
|
+
* Semi-automation adapter for Cursor editor.
|
|
6
|
+
* Provides workflow instructions via .cursorrules and @ context shortcuts.
|
|
7
|
+
*
|
|
8
|
+
* Since Cursor doesn't natively support Claude Code's skills/agents/hooks,
|
|
9
|
+
* this adapter teaches Cursor HOW TO BEHAVE LIKE it has these capabilities.
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
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.CursorAdapter = 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 CursorAdapter extends adapter_base_1.AdapterBase {
|
|
50
|
+
constructor() {
|
|
51
|
+
super(...arguments);
|
|
52
|
+
this.name = 'cursor';
|
|
53
|
+
this.description = 'Cursor adapter - Semi-automation with .cursorrules and @ context shortcuts';
|
|
54
|
+
this.automationLevel = 'semi';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Detect if Cursor is available
|
|
58
|
+
*
|
|
59
|
+
* Checks for:
|
|
60
|
+
* - cursor command in PATH
|
|
61
|
+
* - .cursor/ directory exists
|
|
62
|
+
* - .cursorrules file exists
|
|
63
|
+
*/
|
|
64
|
+
async detect() {
|
|
65
|
+
const hasCursorCLI = await this.commandExists('cursor');
|
|
66
|
+
const hasCursorDir = await this.fileExists('.cursor');
|
|
67
|
+
const hasCursorRules = await this.fileExists('.cursorrules');
|
|
68
|
+
return hasCursorCLI || hasCursorDir || hasCursorRules;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get files to install for Cursor adapter
|
|
72
|
+
*/
|
|
73
|
+
getFiles() {
|
|
74
|
+
return [
|
|
75
|
+
{
|
|
76
|
+
sourcePath: '.cursorrules',
|
|
77
|
+
targetPath: '.cursorrules',
|
|
78
|
+
description: 'Cursor workflow instructions (how to act like skills/agents)'
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
sourcePath: '.cursor/context/increments-context.md',
|
|
82
|
+
targetPath: '.cursor/context/increments-context.md',
|
|
83
|
+
description: '@increments context shortcut'
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
sourcePath: '.cursor/context/docs-context.md',
|
|
87
|
+
targetPath: '.cursor/context/docs-context.md',
|
|
88
|
+
description: '@docs context shortcut'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
sourcePath: '.cursor/context/strategy-context.md',
|
|
92
|
+
targetPath: '.cursor/context/strategy-context.md',
|
|
93
|
+
description: '@strategy context shortcut'
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
sourcePath: '.cursor/context/tests-context.md',
|
|
97
|
+
targetPath: '.cursor/context/tests-context.md',
|
|
98
|
+
description: '@tests context shortcut'
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
sourcePath: 'README.md',
|
|
102
|
+
targetPath: '.cursor/README.md',
|
|
103
|
+
description: 'Cursor adapter documentation'
|
|
104
|
+
}
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Install Cursor adapter
|
|
109
|
+
*/
|
|
110
|
+
async install(options) {
|
|
111
|
+
console.log('\n📦 Installing Cursor Adapter (Semi-Automation)\n');
|
|
112
|
+
// Ensure .cursor directory exists
|
|
113
|
+
const cursorDir = path.join(options.projectPath, '.cursor');
|
|
114
|
+
await fs.ensureDir(cursorDir);
|
|
115
|
+
await fs.ensureDir(path.join(cursorDir, 'context'));
|
|
116
|
+
// Copy files
|
|
117
|
+
await super.install(options);
|
|
118
|
+
console.log('\n✨ Cursor adapter installed!');
|
|
119
|
+
console.log('\n📋 Files created:');
|
|
120
|
+
console.log(' - .cursorrules (workflow instructions)');
|
|
121
|
+
console.log(' - .cursor/context/ (@ shortcuts)');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Post-installation instructions
|
|
125
|
+
*/
|
|
126
|
+
async postInstall(options) {
|
|
127
|
+
console.log(this.getInstructions());
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get usage instructions for Cursor adapter
|
|
131
|
+
*/
|
|
132
|
+
getInstructions() {
|
|
133
|
+
return `
|
|
134
|
+
================================================================
|
|
135
|
+
Cursor Adapter - Semi-Automation
|
|
136
|
+
================================================================
|
|
137
|
+
|
|
138
|
+
Your project is now configured for Cursor with SEMI-automation!
|
|
139
|
+
|
|
140
|
+
WHAT THIS PROVIDES:
|
|
141
|
+
|
|
142
|
+
- .cursorrules (Workflow Instructions)
|
|
143
|
+
- Teaches Cursor HOW to act like Claude Code skills/agents
|
|
144
|
+
- Step-by-step workflow for creating increments
|
|
145
|
+
- Context loading strategy (70%+ token savings)
|
|
146
|
+
- Increment lifecycle management
|
|
147
|
+
|
|
148
|
+
- @ Context Shortcuts (Quick Access)
|
|
149
|
+
- @increments - Load current increment files
|
|
150
|
+
- @docs - Load architecture documentation
|
|
151
|
+
- @strategy - Load business specifications
|
|
152
|
+
- @tests - Load test strategy and cases
|
|
153
|
+
|
|
154
|
+
- Composer Multi-File Editing
|
|
155
|
+
- Create multiple files simultaneously
|
|
156
|
+
- Edit across spec.md, plan.md, tasks.md
|
|
157
|
+
|
|
158
|
+
UNDERSTANDING THE DIFFERENCE:
|
|
159
|
+
|
|
160
|
+
Claude Code (Full Automation):
|
|
161
|
+
- Native skills (auto-activate)
|
|
162
|
+
- Native agents (separate context windows)
|
|
163
|
+
- Native hooks (auto-update docs)
|
|
164
|
+
- Slash commands (/create-increment)
|
|
165
|
+
|
|
166
|
+
Cursor (Semi-Automation - This Adapter):
|
|
167
|
+
- Simulated skills (via .cursorrules instructions)
|
|
168
|
+
- Simulated agents (manual role invocation)
|
|
169
|
+
- No hooks (manual doc updates)
|
|
170
|
+
- Simulated commands (via workflow instructions)
|
|
171
|
+
|
|
172
|
+
HOW WE BRIDGE THE GAP:
|
|
173
|
+
|
|
174
|
+
Anthropic's standards (skills, agents, MCP) provide superior
|
|
175
|
+
results. For Cursor, we provide "implementation guides"
|
|
176
|
+
that teach Cursor's AI how to BEHAVE LIKE it has these
|
|
177
|
+
capabilities, even without native support.
|
|
178
|
+
|
|
179
|
+
Example: .cursorrules says:
|
|
180
|
+
"When user requests feature, act like 'increment-planner' skill:
|
|
181
|
+
1. Read context-manifest.yaml
|
|
182
|
+
2. Load only files listed there
|
|
183
|
+
3. Invoke PM role: Create spec.md
|
|
184
|
+
4. Invoke Architect role: Create plan.md"
|
|
185
|
+
|
|
186
|
+
HOW TO "IMPLEMENT" SKILLS IN CURSOR:
|
|
187
|
+
|
|
188
|
+
What is a SpecWeave Skill?
|
|
189
|
+
A skill is a specialized capability that activates when needed.
|
|
190
|
+
|
|
191
|
+
In Claude Code: Skills are native (.claude/skills/)
|
|
192
|
+
In Cursor: You simulate by reading relevant files
|
|
193
|
+
|
|
194
|
+
Example: increment-planner skill
|
|
195
|
+
|
|
196
|
+
Claude Code (automatic):
|
|
197
|
+
User: "create increment for auth"
|
|
198
|
+
→ increment-planner skill activates automatically
|
|
199
|
+
|
|
200
|
+
Cursor (manual simulation):
|
|
201
|
+
User: "create increment for auth"
|
|
202
|
+
→ You read .cursorrules
|
|
203
|
+
→ Follow workflow: read config → create spec → create plan
|
|
204
|
+
→ Act like increment-planner by following those steps
|
|
205
|
+
|
|
206
|
+
HOW TO "IMPLEMENT" AGENTS IN CURSOR:
|
|
207
|
+
|
|
208
|
+
What is a SpecWeave Agent?
|
|
209
|
+
An agent is a specialized role (PM, Architect, DevOps, etc.)
|
|
210
|
+
with separate context window.
|
|
211
|
+
|
|
212
|
+
In Claude Code: Agents have separate context windows
|
|
213
|
+
In Cursor: You adopt the role's perspective
|
|
214
|
+
|
|
215
|
+
Example: PM agent
|
|
216
|
+
|
|
217
|
+
Claude Code (automatic):
|
|
218
|
+
Task({ subagent_type: "pm", prompt: "create spec" })
|
|
219
|
+
→ PM agent with separate context window
|
|
220
|
+
|
|
221
|
+
Cursor (manual simulation):
|
|
222
|
+
User: "act as PM agent and create spec"
|
|
223
|
+
→ You adopt PM perspective:
|
|
224
|
+
- Focus on WHAT and WHY (not HOW)
|
|
225
|
+
- Technology-agnostic requirements
|
|
226
|
+
- User stories and acceptance criteria
|
|
227
|
+
→ Create spec.md following PM role
|
|
228
|
+
|
|
229
|
+
Pro Tip: .cursorrules defines each role's responsibilities
|
|
230
|
+
|
|
231
|
+
QUICK START:
|
|
232
|
+
|
|
233
|
+
1. Open project in Cursor
|
|
234
|
+
|
|
235
|
+
2. Create your first feature:
|
|
236
|
+
"Create increment for user authentication"
|
|
237
|
+
|
|
238
|
+
Cursor will:
|
|
239
|
+
- Read .cursorrules for workflow
|
|
240
|
+
- Ask clarifying questions
|
|
241
|
+
- Create spec.md (acting as PM)
|
|
242
|
+
- Create plan.md (acting as Architect)
|
|
243
|
+
- Create tasks.md
|
|
244
|
+
|
|
245
|
+
3. Use @ shortcuts for context:
|
|
246
|
+
"@increments show me the current increment"
|
|
247
|
+
"@docs show me the architecture"
|
|
248
|
+
"@strategy show me the business requirements"
|
|
249
|
+
|
|
250
|
+
4. Use Composer for multi-file edits:
|
|
251
|
+
Cmd+I → "Update spec.md and plan.md to add OAuth2"
|
|
252
|
+
|
|
253
|
+
CONTEXT LOADING (70%+ Token Savings):
|
|
254
|
+
|
|
255
|
+
CRITICAL: Always read context-manifest.yaml first!
|
|
256
|
+
|
|
257
|
+
.cursorrules teaches Cursor:
|
|
258
|
+
1. Look for .specweave/increments/####/context-manifest.yaml
|
|
259
|
+
2. ONLY load files listed in manifest
|
|
260
|
+
3. Don't load all specs (wastes tokens)
|
|
261
|
+
|
|
262
|
+
Example manifest (YAML):
|
|
263
|
+
|
|
264
|
+
spec_sections:
|
|
265
|
+
- .specweave/docs/internal/strategy/auth/spec.md
|
|
266
|
+
documentation:
|
|
267
|
+
- .specweave/docs/internal/architecture/auth-design.md
|
|
268
|
+
|
|
269
|
+
Cursor: "Only load these 2 files, not entire docs/ folder"
|
|
270
|
+
|
|
271
|
+
LIMITATIONS (vs Claude Code):
|
|
272
|
+
|
|
273
|
+
- No auto-activation (must explicitly request workflows)
|
|
274
|
+
- No separate context windows (all context shared)
|
|
275
|
+
- No hooks (can't auto-update docs on events)
|
|
276
|
+
- Requires manual role adoption (say "act as PM")
|
|
277
|
+
|
|
278
|
+
But still VERY good experience with Composer + @ shortcuts!
|
|
279
|
+
|
|
280
|
+
DOCUMENTATION:
|
|
281
|
+
|
|
282
|
+
- SPECWEAVE.md: Complete development guide
|
|
283
|
+
- .cursorrules: Workflow instructions (READ THIS!)
|
|
284
|
+
- .cursor/README.md: Cursor-specific documentation
|
|
285
|
+
- .specweave/docs/: Project documentation
|
|
286
|
+
|
|
287
|
+
You're ready to build with SpecWeave on Cursor!
|
|
288
|
+
|
|
289
|
+
Pro tip: Say "act as [role]" to simulate agents:
|
|
290
|
+
- "act as PM and create spec"
|
|
291
|
+
- "act as Architect and design system"
|
|
292
|
+
- "act as DevOps and create infrastructure"
|
|
293
|
+
`;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
exports.CursorAdapter = CursorAdapter;
|
|
297
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/cursor/adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAC7B,6CAA+B;AAC/B,kDAA8C;AAG9C,MAAa,aAAc,SAAQ,0BAAW;IAA9C;;QACE,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,4EAA4E,CAAC;QAC3F,oBAAe,GAAG,MAAe,CAAC;IAyPpC,CAAC;IAvPC;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAE7D,OAAO,YAAY,IAAI,YAAY,IAAI,cAAc,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL;gBACE,UAAU,EAAE,cAAc;gBAC1B,UAAU,EAAE,cAAc;gBAC1B,WAAW,EAAE,8DAA8D;aAC5E;YACD;gBACE,UAAU,EAAE,uCAAuC;gBACnD,UAAU,EAAE,uCAAuC;gBACnD,WAAW,EAAE,8BAA8B;aAC5C;YACD;gBACE,UAAU,EAAE,iCAAiC;gBAC7C,UAAU,EAAE,iCAAiC;gBAC7C,WAAW,EAAE,wBAAwB;aACtC;YACD;gBACE,UAAU,EAAE,qCAAqC;gBACjD,UAAU,EAAE,qCAAqC;gBACjD,WAAW,EAAE,4BAA4B;aAC1C;YACD;gBACE,UAAU,EAAE,kCAAkC;gBAC9C,UAAU,EAAE,kCAAkC;gBAC9C,WAAW,EAAE,yBAAyB;aACvC;YACD;gBACE,UAAU,EAAE,WAAW;gBACvB,UAAU,EAAE,mBAAmB;gBAC/B,WAAW,EAAE,8BAA8B;aAC5C;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAElE,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;QAC9B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAEpD,aAAa;QACb,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgKN,CAAC;IACJ,CAAC;CACF;AA5PD,sCA4PC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic Adapter
|
|
3
|
+
*
|
|
4
|
+
* Manual workflow adapter that works with ANY AI tool.
|
|
5
|
+
* Provides step-by-step instructions for using SpecWeave without tool-specific features.
|
|
6
|
+
*
|
|
7
|
+
* This adapter ensures 100% compatibility - works with ChatGPT web, Claude web,
|
|
8
|
+
* Gemini, or literally ANY AI that can read markdown and follow instructions.
|
|
9
|
+
*/
|
|
10
|
+
import { AdapterBase } from '../adapter-base';
|
|
11
|
+
import { AdapterOptions, AdapterFile } from '../adapter-interface';
|
|
12
|
+
export declare class GenericAdapter extends AdapterBase {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
automationLevel: "manual";
|
|
16
|
+
/**
|
|
17
|
+
* Detect if generic adapter should be used
|
|
18
|
+
*
|
|
19
|
+
* This adapter is the universal fallback - always returns true
|
|
20
|
+
* since it works with literally any AI tool.
|
|
21
|
+
*/
|
|
22
|
+
detect(): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Get files to install for Generic adapter
|
|
25
|
+
*/
|
|
26
|
+
getFiles(): AdapterFile[];
|
|
27
|
+
/**
|
|
28
|
+
* Install Generic adapter
|
|
29
|
+
*/
|
|
30
|
+
install(options: AdapterOptions): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Post-installation instructions
|
|
33
|
+
*/
|
|
34
|
+
postInstall(options: AdapterOptions): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Get usage instructions for Generic adapter
|
|
37
|
+
*/
|
|
38
|
+
getInstructions(): string;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/generic/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnE,qBAAa,cAAe,SAAQ,WAAW;IAC7C,IAAI,SAAa;IACjB,WAAW,SAA+E;IAC1F,eAAe,EAAG,QAAQ,CAAU;IAEpC;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAKhC;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;IAezB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACH,eAAe,IAAI,MAAM;CAqF1B"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generic Adapter
|
|
4
|
+
*
|
|
5
|
+
* Manual workflow adapter that works with ANY AI tool.
|
|
6
|
+
* Provides step-by-step instructions for using SpecWeave without tool-specific features.
|
|
7
|
+
*
|
|
8
|
+
* This adapter ensures 100% compatibility - works with ChatGPT web, Claude web,
|
|
9
|
+
* Gemini, or literally ANY AI that can read markdown and follow instructions.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GenericAdapter = void 0;
|
|
13
|
+
const adapter_base_1 = require("../adapter-base");
|
|
14
|
+
class GenericAdapter extends adapter_base_1.AdapterBase {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.name = 'generic';
|
|
18
|
+
this.description = 'Generic adapter - Manual workflow for ANY AI tool (ChatGPT, Gemini, etc.)';
|
|
19
|
+
this.automationLevel = 'manual';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Detect if generic adapter should be used
|
|
23
|
+
*
|
|
24
|
+
* This adapter is the universal fallback - always returns true
|
|
25
|
+
* since it works with literally any AI tool.
|
|
26
|
+
*/
|
|
27
|
+
async detect() {
|
|
28
|
+
// Generic adapter works with ANY tool - always available
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get files to install for Generic adapter
|
|
33
|
+
*/
|
|
34
|
+
getFiles() {
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
sourcePath: 'SPECWEAVE-MANUAL.md',
|
|
38
|
+
targetPath: 'SPECWEAVE-MANUAL.md',
|
|
39
|
+
description: 'Complete manual workflow guide for ANY AI tool'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
sourcePath: 'README.md',
|
|
43
|
+
targetPath: '.specweave/adapters/generic/README.md',
|
|
44
|
+
description: 'Generic adapter documentation'
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Install Generic adapter
|
|
50
|
+
*/
|
|
51
|
+
async install(options) {
|
|
52
|
+
console.log('\n📦 Installing Generic Adapter (Manual Workflow)\n');
|
|
53
|
+
// Generic adapter is simple - just copy manual guide
|
|
54
|
+
await super.install(options);
|
|
55
|
+
console.log('\n✨ Generic adapter installed!');
|
|
56
|
+
console.log('\n📋 Files created:');
|
|
57
|
+
console.log(' - SPECWEAVE-MANUAL.md (complete manual workflow guide)');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Post-installation instructions
|
|
61
|
+
*/
|
|
62
|
+
async postInstall(options) {
|
|
63
|
+
console.log(this.getInstructions());
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get usage instructions for Generic adapter
|
|
67
|
+
*/
|
|
68
|
+
getInstructions() {
|
|
69
|
+
return `
|
|
70
|
+
================================================================
|
|
71
|
+
Generic Adapter - Manual Workflow
|
|
72
|
+
================================================================
|
|
73
|
+
|
|
74
|
+
Your project is now configured for ANY AI tool!
|
|
75
|
+
|
|
76
|
+
WHAT THIS PROVIDES:
|
|
77
|
+
|
|
78
|
+
- SPECWEAVE-MANUAL.md (Complete Manual Guide)
|
|
79
|
+
- Step-by-step instructions for creating increments
|
|
80
|
+
- Templates you can copy-paste to any AI
|
|
81
|
+
- Workflow guidance (no tool dependencies)
|
|
82
|
+
- Works with LITERALLY any AI
|
|
83
|
+
|
|
84
|
+
- 100% Compatibility
|
|
85
|
+
- ChatGPT (web), Claude (web), Gemini
|
|
86
|
+
- Any AI that can read text
|
|
87
|
+
|
|
88
|
+
UNDERSTANDING "MANUAL":
|
|
89
|
+
|
|
90
|
+
Manual = You Orchestrate, AI Executes
|
|
91
|
+
|
|
92
|
+
Example workflow:
|
|
93
|
+
1. You read SPECWEAVE-MANUAL.md (Step 1: Create Folder)
|
|
94
|
+
2. You run: mkdir -p .specweave/increments/0001-auth
|
|
95
|
+
3. You read Step 2: Create spec.md
|
|
96
|
+
4. You copy template from manual, paste to AI (ChatGPT)
|
|
97
|
+
5. AI generates spec.md content
|
|
98
|
+
6. You copy AI's response, save to spec.md file
|
|
99
|
+
7. Repeat for plan.md, tasks.md, etc.
|
|
100
|
+
|
|
101
|
+
Manual does not mean harder - just means YOU control each step (no automation).
|
|
102
|
+
Benefit: Works with ANY AI tool!
|
|
103
|
+
|
|
104
|
+
COMPARISON:
|
|
105
|
+
|
|
106
|
+
Claude Code (Full): "create increment" -> Done in 30 seconds (auto)
|
|
107
|
+
Cursor (Semi): "create increment" -> Done in 5 minutes (.cursorrules)
|
|
108
|
+
Copilot (Basic): Create files manually, Copilot suggests content
|
|
109
|
+
Generic (Manual): Follow SPECWEAVE-MANUAL.md step-by-step (30-60 min)
|
|
110
|
+
|
|
111
|
+
Trade-off: Speed vs Compatibility
|
|
112
|
+
- Claude Code: Fast, but only works with Claude Code
|
|
113
|
+
- Generic: Slower, but works with EVERY AI tool!
|
|
114
|
+
|
|
115
|
+
WHEN TO USE:
|
|
116
|
+
|
|
117
|
+
Use Generic adapter if:
|
|
118
|
+
- You use ChatGPT web, Claude web, Gemini, or other AI
|
|
119
|
+
- You don't have access to Claude Code or Cursor
|
|
120
|
+
- You want maximum compatibility (works with ANYTHING)
|
|
121
|
+
- Simple projects where automation isn't critical
|
|
122
|
+
|
|
123
|
+
Consider alternatives if:
|
|
124
|
+
- You want automation -> Use Claude Code (full) or Cursor (semi)
|
|
125
|
+
- You have file system access -> Use Copilot at minimum
|
|
126
|
+
- Large projects -> Manual workflow becomes tedious
|
|
127
|
+
|
|
128
|
+
QUICK START:
|
|
129
|
+
|
|
130
|
+
1. Open SPECWEAVE-MANUAL.md
|
|
131
|
+
Read the complete manual workflow guide
|
|
132
|
+
|
|
133
|
+
2. Follow step-by-step for your first feature
|
|
134
|
+
- Step 1: Create increment folder
|
|
135
|
+
- Step 2: Create spec.md (copy template, paste to AI, save)
|
|
136
|
+
- Step 3: Create plan.md (copy template, paste to AI, save)
|
|
137
|
+
- Step 4: Create tasks.md (copy template, paste to AI, save)
|
|
138
|
+
|
|
139
|
+
3. Use any AI tool you prefer
|
|
140
|
+
ChatGPT, Claude web, Gemini, Perplexity, etc.
|
|
141
|
+
|
|
142
|
+
DOCUMENTATION:
|
|
143
|
+
|
|
144
|
+
- SPECWEAVE-MANUAL.md: Complete step-by-step guide (READ THIS FIRST!)
|
|
145
|
+
- SPECWEAVE.md: Complete technical documentation
|
|
146
|
+
- .specweave/docs/: Project documentation
|
|
147
|
+
|
|
148
|
+
You're ready to build with SpecWeave using ANY AI tool!
|
|
149
|
+
|
|
150
|
+
Remember: Generic = Manual = Copy-paste workflow, but 100% compatible!
|
|
151
|
+
`;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.GenericAdapter = GenericAdapter;
|
|
155
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/generic/adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAIH,kDAA8C;AAG9C,MAAa,cAAe,SAAQ,0BAAW;IAA/C;;QACE,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,2EAA2E,CAAC;QAC1F,oBAAe,GAAG,QAAiB,CAAC;IA4ItC,CAAC;IA1IC;;;;;OAKG;IACH,KAAK,CAAC,MAAM;QACV,yDAAyD;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL;gBACE,UAAU,EAAE,qBAAqB;gBACjC,UAAU,EAAE,qBAAqB;gBACjC,WAAW,EAAE,gDAAgD;aAC9D;YACD;gBACE,UAAU,EAAE,WAAW;gBACvB,UAAU,EAAE,uCAAuC;gBACnD,WAAW,EAAE,+BAA+B;aAC7C;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QAEnE,qDAAqD;QACrD,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkFN,CAAC;IACJ,CAAC;CACF;AA/ID,wCA+IC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAOA,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,WAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAgGf"}
|