specweave 0.8.16 → 0.8.18

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.
Files changed (36) hide show
  1. package/.claude-plugin/README.md +3 -3
  2. package/CLAUDE.md +77 -21
  3. package/README.md +11 -3
  4. package/README.md.bak +304 -0
  5. package/dist/cli/commands/init.d.ts.map +1 -1
  6. package/dist/cli/commands/init.js +76 -22
  7. package/dist/cli/commands/init.js.map +1 -1
  8. package/dist/cli/helpers/issue-tracker/ado.js +1 -1
  9. package/dist/cli/helpers/issue-tracker/ado.js.map +1 -1
  10. package/dist/cli/helpers/issue-tracker/github.js +1 -1
  11. package/dist/cli/helpers/issue-tracker/github.js.map +1 -1
  12. package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  13. package/dist/cli/helpers/issue-tracker/index.js +8 -3
  14. package/dist/cli/helpers/issue-tracker/index.js.map +1 -1
  15. package/dist/cli/helpers/issue-tracker/jira.js +1 -1
  16. package/dist/cli/helpers/issue-tracker/jira.js.map +1 -1
  17. package/dist/cli/helpers/issue-tracker/utils.d.ts +5 -2
  18. package/dist/cli/helpers/issue-tracker/utils.d.ts.map +1 -1
  19. package/dist/cli/helpers/issue-tracker/utils.js +13 -6
  20. package/dist/cli/helpers/issue-tracker/utils.js.map +1 -1
  21. package/dist/locales/en/cli.json +1 -1
  22. package/dist/utils/agents-md-compiler.js +2 -2
  23. package/dist/utils/env-multi-project-parser.d.ts +210 -0
  24. package/dist/utils/env-multi-project-parser.d.ts.map +1 -0
  25. package/dist/utils/env-multi-project-parser.js +406 -0
  26. package/dist/utils/env-multi-project-parser.js.map +1 -0
  27. package/package.json +1 -1
  28. package/plugins/specweave/hooks/post-first-increment.sh +79 -0
  29. package/plugins/specweave/skills/increment-planner/SKILL.md +50 -16
  30. package/plugins/specweave/skills/plugin-expert/SKILL.md +344 -0
  31. package/plugins/specweave/skills/specweave-framework/SKILL.md +2 -2
  32. package/plugins/specweave/skills/translator/SKILL.md +29 -0
  33. package/plugins/specweave/skills/translator/SKILL.md.bak +172 -0
  34. package/src/templates/.gitignore.template +1 -0
  35. package/src/templates/AGENTS.md.template +6 -6
  36. package/src/templates/CLAUDE.md.template +10 -10
@@ -65,22 +65,29 @@ export function isClaudeCliAvailable() {
65
65
  * Install tracker plugin via Claude CLI
66
66
  *
67
67
  * @param tracker - Tracker type
68
- * @returns True if installation succeeded
68
+ * @returns Object with success status and optional error message
69
69
  */
70
70
  export function installTrackerPlugin(tracker) {
71
71
  if (tracker === 'none')
72
- return true;
72
+ return { success: true };
73
73
  const pluginName = `specweave-${tracker}`;
74
74
  try {
75
75
  const result = execFileNoThrowSync('claude', [
76
76
  'plugin',
77
77
  'install',
78
- `${pluginName}@specweave`
78
+ pluginName // NO @marketplace suffix - Claude Code resolves from registered marketplaces
79
79
  ]);
80
- return result.success;
80
+ if (result.success) {
81
+ return { success: true };
82
+ }
83
+ else {
84
+ // Return detailed error for debugging
85
+ const error = result.stderr || result.stdout || 'Unknown error';
86
+ return { success: false, error };
87
+ }
81
88
  }
82
- catch {
83
- return false;
89
+ catch (error) {
90
+ return { success: false, error: error.message || 'Failed to execute claude command' };
84
91
  }
85
92
  }
86
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cli/helpers/issue-tracker/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cli/helpers/issue-tracker/utils.ts"],"names":[],"mappings":"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"}
@@ -130,7 +130,7 @@
130
130
  "installGitHub": "/plugin install specweave-github",
131
131
  "installFrontend": "/plugin install specweave-frontend",
132
132
  "step4": "Start building:",
133
- "example": "\"/specweave:inc 'user authentication'\"",
133
+ "example": "\"/specweave:increment 'user authentication'\"",
134
134
  "autoActivate": "Skills and agents auto-activate based on context"
135
135
  },
136
136
  "cursor": {
@@ -257,10 +257,10 @@ This project uses SpecWeave for spec-driven development. SpecWeave provides spec
257
257
  /plugin marketplace add anton-abyzov/specweave
258
258
 
259
259
  # Install core framework
260
- /plugin install specweave@specweave
260
+ /plugin install specweave
261
261
 
262
262
  # Install GitHub plugin (optional)
263
- /plugin install specweave-github@specweave
263
+ /plugin install specweave-github
264
264
  \`\`\`
265
265
 
266
266
  ### For Other Tools (Cursor, Copilot, etc.)
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Environment Multi-Project Parser
3
+ *
4
+ * Parses comma-separated project lists from .env:
5
+ * - JIRA_PROJECT_KEYS=BACKEND,FRONTEND,MOBILE
6
+ * - GITHUB_REPOS=owner/backend-api,owner/frontend-web
7
+ * - AZURE_DEVOPS_PROJECTS=backend-api,frontend-web
8
+ *
9
+ * Auto-creates sync profiles for each project.
10
+ */
11
+ import { SyncProfile } from '../core/types/sync-profile.js';
12
+ export interface JiraProjectConfig {
13
+ projectKey: string;
14
+ domain: string;
15
+ email: string;
16
+ apiToken: string;
17
+ }
18
+ export interface GitHubRepoConfig {
19
+ owner: string;
20
+ repo: string;
21
+ token: string;
22
+ }
23
+ export interface AdoProjectConfig {
24
+ organization: string;
25
+ project: string;
26
+ pat: string;
27
+ }
28
+ export interface MultiProjectEnvConfig {
29
+ jira: JiraProjectConfig[];
30
+ github: GitHubRepoConfig[];
31
+ ado: AdoProjectConfig[];
32
+ }
33
+ /**
34
+ * Parse comma-separated list from environment variable
35
+ *
36
+ * Handles:
37
+ * - Comma separation
38
+ * - Whitespace trimming
39
+ * - Empty values filtering
40
+ *
41
+ * @example
42
+ * parseCommaSeparated("BACKEND, FRONTEND, MOBILE")
43
+ * // Returns: ["BACKEND", "FRONTEND", "MOBILE"]
44
+ */
45
+ export declare function parseCommaSeparated(value: string | undefined): string[];
46
+ /**
47
+ * Parse JIRA project keys from .env
48
+ *
49
+ * Reads:
50
+ * - JIRA_PROJECT_KEYS (comma-separated, NEW format)
51
+ * - JIRA_PROJECT_KEY (single, legacy format)
52
+ * - JIRA_DOMAIN, JIRA_EMAIL, JIRA_API_TOKEN (shared credentials)
53
+ *
54
+ * @returns Array of JIRA project configurations
55
+ *
56
+ * @example
57
+ * // .env:
58
+ * // JIRA_PROJECT_KEYS=BACKEND,FRONTEND,MOBILE
59
+ * // JIRA_DOMAIN=mycompany.atlassian.net
60
+ * // JIRA_EMAIL=user@example.com
61
+ * // JIRA_API_TOKEN=abc123
62
+ *
63
+ * parseJiraProjects()
64
+ * // Returns: [
65
+ * // { projectKey: "BACKEND", domain: "...", email: "...", apiToken: "..." },
66
+ * // { projectKey: "FRONTEND", ... },
67
+ * // { projectKey: "MOBILE", ... }
68
+ * // ]
69
+ */
70
+ export declare function parseJiraProjects(): JiraProjectConfig[];
71
+ /**
72
+ * Parse GitHub repositories from .env
73
+ *
74
+ * Reads:
75
+ * - GITHUB_REPOS (comma-separated, format: "owner/repo,owner2/repo2")
76
+ * - GITHUB_TOKEN (shared credential)
77
+ *
78
+ * @returns Array of GitHub repository configurations
79
+ *
80
+ * @example
81
+ * // .env:
82
+ * // GITHUB_REPOS=myorg/backend-api,myorg/frontend-web
83
+ * // GITHUB_TOKEN=ghp_abc123
84
+ *
85
+ * parseGitHubRepos()
86
+ * // Returns: [
87
+ * // { owner: "myorg", repo: "backend-api", token: "..." },
88
+ * // { owner: "myorg", repo: "frontend-web", token: "..." }
89
+ * // ]
90
+ */
91
+ export declare function parseGitHubRepos(): GitHubRepoConfig[];
92
+ /**
93
+ * Parse Azure DevOps projects from .env
94
+ *
95
+ * Reads:
96
+ * - AZURE_DEVOPS_PROJECTS (comma-separated)
97
+ * - AZURE_DEVOPS_ORG (shared organization)
98
+ * - AZURE_DEVOPS_PAT (shared credential)
99
+ *
100
+ * @returns Array of Azure DevOps project configurations
101
+ *
102
+ * @example
103
+ * // .env:
104
+ * // AZURE_DEVOPS_PROJECTS=backend-api,frontend-web
105
+ * // AZURE_DEVOPS_ORG=easychamp
106
+ * // AZURE_DEVOPS_PAT=xyz789
107
+ *
108
+ * parseAdoProjects()
109
+ * // Returns: [
110
+ * // { organization: "easychamp", project: "backend-api", pat: "..." },
111
+ * // { organization: "easychamp", project: "frontend-web", pat: "..." }
112
+ * // ]
113
+ */
114
+ export declare function parseAdoProjects(): AdoProjectConfig[];
115
+ /**
116
+ * Parse all multi-project configurations from .env
117
+ *
118
+ * @returns All detected project configurations
119
+ */
120
+ export declare function parseMultiProjectEnv(): MultiProjectEnvConfig;
121
+ /**
122
+ * Generate sync profile ID from project identifier
123
+ *
124
+ * Format: "{provider}-{project-id}"
125
+ *
126
+ * @example
127
+ * generateProfileId("jira", "BACKEND")
128
+ * // Returns: "jira-backend"
129
+ *
130
+ * @example
131
+ * generateProfileId("github", "backend-api")
132
+ * // Returns: "github-backend-api"
133
+ */
134
+ export declare function generateProfileId(provider: string, projectId: string): string;
135
+ /**
136
+ * Create JIRA sync profile from project configuration
137
+ */
138
+ export declare function createJiraSyncProfile(config: JiraProjectConfig): {
139
+ id: string;
140
+ profile: Omit<SyncProfile, 'id'>;
141
+ };
142
+ /**
143
+ * Create GitHub sync profile from repository configuration
144
+ */
145
+ export declare function createGitHubSyncProfile(config: GitHubRepoConfig): {
146
+ id: string;
147
+ profile: Omit<SyncProfile, 'id'>;
148
+ };
149
+ /**
150
+ * Create Azure DevOps sync profile from project configuration
151
+ */
152
+ export declare function createAdoSyncProfile(config: AdoProjectConfig): {
153
+ id: string;
154
+ profile: Omit<SyncProfile, 'id'>;
155
+ };
156
+ /**
157
+ * Generate all sync profiles from environment variables
158
+ *
159
+ * @returns Array of { id, profile } objects ready to be created
160
+ *
161
+ * @example
162
+ * // .env:
163
+ * // JIRA_PROJECT_KEYS=BACKEND,FRONTEND
164
+ * // GITHUB_REPOS=myorg/backend-api
165
+ *
166
+ * const profiles = generateSyncProfilesFromEnv();
167
+ * // Returns: [
168
+ * // { id: "jira-backend", profile: { ... } },
169
+ * // { id: "jira-frontend", profile: { ... } },
170
+ * // { id: "github-backend-api", profile: { ... } }
171
+ * // ]
172
+ */
173
+ export declare function generateSyncProfilesFromEnv(): Array<{
174
+ id: string;
175
+ profile: Omit<SyncProfile, 'id'>;
176
+ }>;
177
+ /**
178
+ * Validate JIRA project key format
179
+ *
180
+ * Rules:
181
+ * - 2-10 characters
182
+ * - Uppercase letters only
183
+ * - No special characters
184
+ *
185
+ * @example
186
+ * validateJiraProjectKey("BACKEND") // → true
187
+ * validateJiraProjectKey("backend") // → "Must be uppercase"
188
+ * validateJiraProjectKey("BACK") // → true
189
+ * validateJiraProjectKey("B") // → "Must be 2-10 characters"
190
+ */
191
+ export declare function validateJiraProjectKey(key: string): true | string;
192
+ /**
193
+ * Validate GitHub repo format
194
+ *
195
+ * Format: "owner/repo"
196
+ *
197
+ * @example
198
+ * validateGitHubRepo("myorg/backend-api") // → true
199
+ * validateGitHubRepo("backend-api") // → "Must be owner/repo format"
200
+ */
201
+ export declare function validateGitHubRepo(repo: string): true | string;
202
+ /**
203
+ * Validate Azure DevOps project name
204
+ *
205
+ * @example
206
+ * validateAdoProject("backend-api") // → true
207
+ * validateAdoProject("") // → "Project name is required"
208
+ */
209
+ export declare function validateAdoProject(project: string): true | string;
210
+ //# sourceMappingURL=env-multi-project-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-multi-project-parser.d.ts","sourceRoot":"","sources":["../../src/utils/env-multi-project-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,GAAG,EAAE,gBAAgB,EAAE,CAAC;CACzB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CASvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAoCvD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CA8BrD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CAiCrD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAM5D;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAwBA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAuBA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAwBA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,IAAI,KAAK,CAAC;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAAC,CAoBD;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAcjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAqB9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAUjE"}