specweave 0.28.19 → 0.28.22

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 (96) hide show
  1. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +16 -0
  2. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -1
  3. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +63 -3
  4. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
  5. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +12 -3
  6. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -1
  7. package/dist/plugins/specweave-ado/lib/ado-status-sync.js +37 -3
  8. package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -1
  9. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts +8 -6
  10. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts.map +1 -1
  11. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +230 -165
  12. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -1
  13. package/dist/plugins/specweave-github/lib/github-status-sync.d.ts +10 -0
  14. package/dist/plugins/specweave-github/lib/github-status-sync.d.ts.map +1 -1
  15. package/dist/plugins/specweave-github/lib/github-status-sync.js +40 -2
  16. package/dist/plugins/specweave-github/lib/github-status-sync.js.map +1 -1
  17. package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts +2 -0
  18. package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -1
  19. package/dist/plugins/specweave-github/lib/increment-issue-builder.js +25 -5
  20. package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -1
  21. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +12 -0
  22. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -1
  23. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +57 -5
  24. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
  25. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +5 -1
  26. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -1
  27. package/dist/plugins/specweave-jira/lib/jira-status-sync.js +12 -4
  28. package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
  29. package/dist/src/cli/commands/init.d.ts.map +1 -1
  30. package/dist/src/cli/commands/init.js +7 -3
  31. package/dist/src/cli/commands/init.js.map +1 -1
  32. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
  33. package/dist/src/cli/helpers/init/external-import.js +193 -23
  34. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  35. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +115 -0
  36. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -0
  37. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +590 -0
  38. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -0
  39. package/dist/src/cli/helpers/init/language-selection.js +1 -1
  40. package/dist/src/cli/helpers/init/language-selection.js.map +1 -1
  41. package/dist/src/cli/helpers/init/repository-setup.js +1 -1
  42. package/dist/src/cli/helpers/init/repository-setup.js.map +1 -1
  43. package/dist/src/config/types.d.ts +6 -6
  44. package/dist/src/core/background/index.d.ts +11 -0
  45. package/dist/src/core/background/index.d.ts.map +1 -0
  46. package/dist/src/core/background/index.js +11 -0
  47. package/dist/src/core/background/index.js.map +1 -0
  48. package/dist/src/core/background/job-manager.d.ts +65 -0
  49. package/dist/src/core/background/job-manager.d.ts.map +1 -0
  50. package/dist/src/core/background/job-manager.js +192 -0
  51. package/dist/src/core/background/job-manager.js.map +1 -0
  52. package/dist/src/core/background/types.d.ts +59 -0
  53. package/dist/src/core/background/types.d.ts.map +1 -0
  54. package/dist/src/core/background/types.js +8 -0
  55. package/dist/src/core/background/types.js.map +1 -0
  56. package/dist/src/core/repo-structure/multi-repo-configurator.d.ts +25 -0
  57. package/dist/src/core/repo-structure/multi-repo-configurator.d.ts.map +1 -0
  58. package/dist/src/core/repo-structure/multi-repo-configurator.js +614 -0
  59. package/dist/src/core/repo-structure/multi-repo-configurator.js.map +1 -0
  60. package/dist/src/core/repo-structure/prompt-consolidator.d.ts.map +1 -1
  61. package/dist/src/core/repo-structure/prompt-consolidator.js +6 -36
  62. package/dist/src/core/repo-structure/prompt-consolidator.js.map +1 -1
  63. package/dist/src/core/repo-structure/repo-initializer.d.ts +40 -0
  64. package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -0
  65. package/dist/src/core/repo-structure/repo-initializer.js +260 -0
  66. package/dist/src/core/repo-structure/repo-initializer.js.map +1 -0
  67. package/dist/src/core/repo-structure/repo-structure-manager.d.ts +3 -37
  68. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  69. package/dist/src/core/repo-structure/repo-structure-manager.js +23 -803
  70. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  71. package/dist/src/core/types/spec-metadata.d.ts +2 -0
  72. package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
  73. package/dist/src/importers/import-coordinator.d.ts +20 -0
  74. package/dist/src/importers/import-coordinator.d.ts.map +1 -1
  75. package/dist/src/importers/import-coordinator.js.map +1 -1
  76. package/dist/src/init/architecture/types.d.ts +2 -2
  77. package/dist/src/init/compliance/types.d.ts +1 -1
  78. package/package.json +1 -1
  79. package/plugins/specweave/commands/specweave-jobs.md +160 -0
  80. package/plugins/specweave-ado/lib/ado-spec-sync.js +59 -3
  81. package/plugins/specweave-ado/lib/ado-spec-sync.ts +72 -3
  82. package/plugins/specweave-ado/lib/ado-status-sync.js +35 -3
  83. package/plugins/specweave-ado/lib/ado-status-sync.ts +48 -4
  84. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +6 -0
  85. package/plugins/specweave-github/lib/github-increment-sync-cli.js +268 -155
  86. package/plugins/specweave-github/lib/github-increment-sync-cli.ts +313 -209
  87. package/plugins/specweave-github/lib/github-status-sync.js +37 -1
  88. package/plugins/specweave-github/lib/github-status-sync.ts +60 -4
  89. package/plugins/specweave-github/lib/increment-issue-builder.js +26 -5
  90. package/plugins/specweave-github/lib/increment-issue-builder.ts +36 -5
  91. package/plugins/specweave-jira/lib/jira-spec-sync.js +53 -5
  92. package/plugins/specweave-jira/lib/jira-spec-sync.ts +87 -7
  93. package/plugins/specweave-jira/lib/jira-status-sync.js +9 -3
  94. package/plugins/specweave-jira/lib/jira-status-sync.ts +15 -6
  95. package/plugins/specweave-release/commands/specweave-release-npm.md +187 -8
  96. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +9 -0
@@ -56,43 +56,13 @@ my-project-backend/ ← Separate GitHub repo
56
56
  */
57
57
  export function getParentRepoBenefits() {
58
58
  return `
59
- **Why use a parent folder?**
59
+ **Why a parent folder?**
60
+ One central .specweave/ for all repos = single source of truth for specs & docs.
60
61
 
61
- ✅ **Central .specweave/ for all specs/docs**
62
- - One source of truth for entire system
63
- - No duplication or fragmentation
64
- - Easy to search and navigate
65
-
66
- ✅ **Cross-cutting features naturally supported**
67
- - Authentication spans frontend + backend
68
- - All specs in one place, not scattered
69
-
70
- ✅ **System-wide architecture decisions**
71
- - ADRs apply to entire system
72
- - Technology stack decisions documented centrally
73
-
74
- ✅ **Simplified onboarding**
75
- - New developers read one set of docs
76
- - Complete system overview in one location
77
-
78
- ✅ **Local-only approach**
79
- - Parent folder stays on your machine
80
- - .specweave/ is gitignored (not synced to GitHub)
81
- - Implementation repos still on GitHub
82
- - Lighter setup, no parent repo overhead
83
-
84
- **Example Structure:**
85
-
86
- my-parent-folder/ ← Local folder (NOT a GitHub repo)
87
- ├── .specweave/ ← Gitignored (local only)
88
- │ ├── increments/
89
- │ ├── docs/
90
- │ └── logs/
91
- ├── .env ← Config
92
- ├── frontend/ ← Cloned from GitHub (or init new)
93
- └── backend/ ← Cloned from GitHub (or init new)
94
-
95
- **Note:** .specweave/ is NOT synced to GitHub - it's local only.
62
+ my-parent/ Local folder
63
+ ├── .specweave/ ← All specs/docs here (local only)
64
+ ├── frontend/ ← GitHub repo
65
+ └── backend/ ← GitHub repo
96
66
  `.trim();
97
67
  }
98
68
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-consolidator.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/prompt-consolidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-consolidator.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/prompt-consolidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Repository Initialization
3
+ *
4
+ * Extracted from repo-structure-manager.ts to reduce file size and prevent crashes.
5
+ * Handles cloning, git initialization, and directory structure creation.
6
+ */
7
+ import type { GitProvider } from './git-provider.js';
8
+ import type { RepoStructureConfig } from './repo-structure-manager.js';
9
+ export interface RepoInitializerOptions {
10
+ projectPath: string;
11
+ githubToken?: string;
12
+ }
13
+ /**
14
+ * Check if a repository exists on GitHub
15
+ */
16
+ export declare function repositoryExistsOnGitHub(owner: string, repo: string, githubToken?: string): Promise<boolean>;
17
+ /**
18
+ * Clone or initialize a repository
19
+ * If the repo exists on the platform, clone it; otherwise, init + add remote
20
+ */
21
+ export declare function cloneOrInitRepository(repoPath: string, owner: string, name: string, createOnGitHub: boolean, urlType: 'ssh' | 'https', provider: GitProvider, githubToken?: string): Promise<void>;
22
+ /**
23
+ * Create basic structure for a repository/project
24
+ *
25
+ * NOTE: Only creates src/ and tests/ folders for nested projects.
26
+ * Documentation lives in .specweave/docs/internal/specs/{project-id}/ (source of truth)
27
+ */
28
+ export declare function createBasicRepoStructure(repoPath: string, projectId: string): void;
29
+ /**
30
+ * Initialize local git repositories
31
+ */
32
+ export declare function initializeLocalRepos(config: RepoStructureConfig, projectPath: string, githubToken?: string): Promise<void>;
33
+ /**
34
+ * Create SpecWeave project structure (simplified - ONLY specs folders)
35
+ *
36
+ * NOTE: As of v0.X.X (increment 0026), we ONLY create specs/ folders.
37
+ * No modules/, team/, architecture/, legacy/ folders.
38
+ */
39
+ export declare function createSpecWeaveStructure(config: RepoStructureConfig, projectPath: string): Promise<void>;
40
+ //# sourceMappingURL=repo-initializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-initializer.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-initializer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIvE,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,KAAK,GAAG,OAAe,EAChC,QAAQ,EAAE,WAAW,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAuBlF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAsHf;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Repository Initialization
3
+ *
4
+ * Extracted from repo-structure-manager.ts to reduce file size and prevent crashes.
5
+ * Handles cloning, git initialization, and directory structure creation.
6
+ */
7
+ import { existsSync, mkdirSync, writeFileSync, readdirSync, rmdirSync } from 'fs';
8
+ import path from 'path';
9
+ import chalk from 'chalk';
10
+ import ora from 'ora';
11
+ import { execFileNoThrowSync } from '../../utils/execFileNoThrow.js';
12
+ import { getJobManager } from '../background/index.js';
13
+ /**
14
+ * Check if a repository exists on GitHub
15
+ */
16
+ export async function repositoryExistsOnGitHub(owner, repo, githubToken) {
17
+ if (!githubToken) {
18
+ return false;
19
+ }
20
+ try {
21
+ const response = await fetch(`https://api.github.com/repos/${owner}/${repo}`, {
22
+ headers: {
23
+ 'Authorization': `Bearer ${githubToken}`,
24
+ 'Accept': 'application/vnd.github+json'
25
+ }
26
+ });
27
+ return response.ok;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ /**
34
+ * Clone or initialize a repository
35
+ * If the repo exists on the platform, clone it; otherwise, init + add remote
36
+ */
37
+ export async function cloneOrInitRepository(repoPath, owner, name, createOnGitHub, urlType = 'ssh', provider, githubToken) {
38
+ // If .git already exists, skip
39
+ if (existsSync(path.join(repoPath, '.git'))) {
40
+ return;
41
+ }
42
+ const remoteUrl = provider.getRemoteUrl(owner, name, urlType);
43
+ // Check if repository exists on GitHub
44
+ const repoExists = await repositoryExistsOnGitHub(owner, name, githubToken);
45
+ if (repoExists) {
46
+ // Repository exists - clone it
47
+ console.log(chalk.gray(` -> Cloning existing repository from GitHub...`));
48
+ try {
49
+ // Remove directory if it exists and is empty
50
+ if (existsSync(repoPath)) {
51
+ const files = readdirSync(repoPath);
52
+ if (files.length === 0) {
53
+ rmdirSync(repoPath);
54
+ }
55
+ }
56
+ // Clone the repository
57
+ const parentDir = path.dirname(repoPath);
58
+ const repoName = path.basename(repoPath);
59
+ execFileNoThrowSync('git', ['clone', remoteUrl, repoName], { cwd: parentDir });
60
+ console.log(chalk.green(` [OK] Cloned ${owner}/${name}`));
61
+ }
62
+ catch (error) {
63
+ console.log(chalk.yellow(` [!] Clone failed: ${error.message}`));
64
+ console.log(chalk.gray(` -> Falling back to init + remote`));
65
+ // Fallback: init + add remote
66
+ if (!existsSync(repoPath)) {
67
+ mkdirSync(repoPath, { recursive: true });
68
+ }
69
+ execFileNoThrowSync('git', ['init'], { cwd: repoPath });
70
+ execFileNoThrowSync('git', ['remote', 'add', 'origin', remoteUrl], { cwd: repoPath });
71
+ }
72
+ }
73
+ else {
74
+ // Repository doesn't exist - init + add remote
75
+ if (!createOnGitHub) {
76
+ console.log(chalk.gray(` -> Repository will be created later (skipping for now)`));
77
+ return;
78
+ }
79
+ console.log(chalk.gray(` -> Initializing empty git repository...`));
80
+ if (!existsSync(repoPath)) {
81
+ mkdirSync(repoPath, { recursive: true });
82
+ }
83
+ execFileNoThrowSync('git', ['init'], { cwd: repoPath });
84
+ execFileNoThrowSync('git', ['remote', 'add', 'origin', remoteUrl], { cwd: repoPath });
85
+ console.log(chalk.green(` [OK] Initialized ${owner}/${name}`));
86
+ }
87
+ }
88
+ /**
89
+ * Create basic structure for a repository/project
90
+ *
91
+ * NOTE: Only creates src/ and tests/ folders for nested projects.
92
+ * Documentation lives in .specweave/docs/internal/specs/{project-id}/ (source of truth)
93
+ */
94
+ export function createBasicRepoStructure(repoPath, projectId) {
95
+ // Create basic directories (NO docs/ - documentation lives in .specweave/)
96
+ const dirs = ['src', 'tests'];
97
+ for (const dir of dirs) {
98
+ const dirPath = path.join(repoPath, dir);
99
+ if (!existsSync(dirPath)) {
100
+ mkdirSync(dirPath, { recursive: true });
101
+ }
102
+ }
103
+ // Create README.md
104
+ const readmePath = path.join(repoPath, 'README.md');
105
+ if (!existsSync(readmePath)) {
106
+ const readmeContent = `# ${projectId}\n\n${projectId} service/component.\n\nPart of SpecWeave multi-repository project.\n`;
107
+ writeFileSync(readmePath, readmeContent);
108
+ }
109
+ // Create .gitignore
110
+ const gitignorePath = path.join(repoPath, '.gitignore');
111
+ if (!existsSync(gitignorePath)) {
112
+ const gitignoreContent = `node_modules/\ndist/\n.env\n.DS_Store\n*.log\n`;
113
+ writeFileSync(gitignorePath, gitignoreContent);
114
+ }
115
+ }
116
+ /**
117
+ * Initialize local git repositories
118
+ */
119
+ export async function initializeLocalRepos(config, projectPath, githubToken) {
120
+ const totalRepos = config.repositories.length;
121
+ const spinner = ora(`Initializing local repositories... (0/${totalRepos})`).start();
122
+ // Create background job for tracking (if >1 repo)
123
+ let jobManager = null;
124
+ let jobId = null;
125
+ if (totalRepos > 1) {
126
+ try {
127
+ jobManager = getJobManager(projectPath);
128
+ const jobConfig = {
129
+ type: 'clone-repos',
130
+ repositories: config.repositories.map(r => ({
131
+ owner: r.owner,
132
+ name: r.name,
133
+ path: r.path
134
+ })),
135
+ projectPath: projectPath
136
+ };
137
+ const job = jobManager.createJob('clone-repos', jobConfig, totalRepos);
138
+ jobId = job.id;
139
+ jobManager.startJob(jobId);
140
+ }
141
+ catch {
142
+ // Job tracking is optional - continue without it
143
+ }
144
+ }
145
+ // Create directory structure based on architecture
146
+ if (config.architecture === 'parent') {
147
+ // Parent repo approach: ROOT-LEVEL cloning (not services/!)
148
+ // Initialize parent repo at root
149
+ if (!existsSync(path.join(projectPath, '.git'))) {
150
+ execFileNoThrowSync('git', ['init'], { cwd: projectPath });
151
+ if (config.parentRepo) {
152
+ const remoteUrl = config.provider.getRemoteUrl(config.parentRepo.owner, config.parentRepo.name, config.urlType);
153
+ execFileNoThrowSync('git', ['remote', 'add', 'origin', remoteUrl], { cwd: projectPath });
154
+ }
155
+ }
156
+ // Initialize implementation repos at ROOT LEVEL
157
+ let processed = 0;
158
+ for (const repo of config.repositories) {
159
+ processed++;
160
+ spinner.text = `Cloning repositories... (${processed}/${totalRepos}) -> ${repo.name}`;
161
+ const repoPath = path.join(projectPath, repo.path);
162
+ // Clone or initialize repository
163
+ await cloneOrInitRepository(repoPath, repo.owner, repo.name, repo.createOnGitHub, config.urlType, config.provider, githubToken);
164
+ // Create basic structure (only if repo was just initialized, not cloned)
165
+ if (!repo.createOnGitHub || !await repositoryExistsOnGitHub(repo.owner, repo.name, githubToken)) {
166
+ createBasicRepoStructure(repoPath, repo.id);
167
+ }
168
+ // Update background job progress
169
+ if (jobManager && jobId) {
170
+ jobManager.updateProgress(jobId, processed, repo.name, repo.name);
171
+ }
172
+ spinner.text = `Cloned ${processed}/${totalRepos}: ${repo.name}`;
173
+ }
174
+ }
175
+ else if (config.architecture === 'multi-repo') {
176
+ // Standard multi-repo: repos as subdirectories
177
+ let processed = 0;
178
+ for (const repo of config.repositories) {
179
+ processed++;
180
+ spinner.text = `Cloning repositories... (${processed}/${totalRepos}) -> ${repo.name}`;
181
+ const repoPath = path.join(projectPath, repo.path);
182
+ // Clone or initialize repository
183
+ await cloneOrInitRepository(repoPath, repo.owner, repo.name, repo.createOnGitHub, config.urlType, config.provider, githubToken);
184
+ // Create basic structure (only if repo was just initialized, not cloned)
185
+ if (!repo.createOnGitHub || !await repositoryExistsOnGitHub(repo.owner, repo.name, githubToken)) {
186
+ createBasicRepoStructure(repoPath, repo.id);
187
+ }
188
+ // Update background job progress
189
+ if (jobManager && jobId) {
190
+ jobManager.updateProgress(jobId, processed, repo.name, repo.name);
191
+ }
192
+ spinner.text = `Cloned ${processed}/${totalRepos}: ${repo.name}`;
193
+ }
194
+ }
195
+ else {
196
+ // Single repo or monorepo
197
+ if (!existsSync(path.join(projectPath, '.git'))) {
198
+ execFileNoThrowSync('git', ['init'], { cwd: projectPath });
199
+ const repo = config.repositories[0];
200
+ if (repo) {
201
+ const remoteUrl = config.provider.getRemoteUrl(repo.owner, repo.name, config.urlType);
202
+ execFileNoThrowSync('git', ['remote', 'add', 'origin', remoteUrl], { cwd: projectPath });
203
+ }
204
+ }
205
+ // For monorepo, create project directories
206
+ if (config.architecture === 'monorepo' && config.monorepoProjects) {
207
+ for (const project of config.monorepoProjects) {
208
+ const projectPathInner = path.join(projectPath, 'packages', project);
209
+ if (!existsSync(projectPathInner)) {
210
+ mkdirSync(projectPathInner, { recursive: true });
211
+ }
212
+ createBasicRepoStructure(projectPathInner, project);
213
+ }
214
+ }
215
+ }
216
+ // Complete background job
217
+ if (jobManager && jobId) {
218
+ jobManager.completeJob(jobId);
219
+ }
220
+ spinner.succeed(`Local repositories initialized (${totalRepos} repo${totalRepos === 1 ? '' : 's'})`);
221
+ }
222
+ /**
223
+ * Create SpecWeave project structure (simplified - ONLY specs folders)
224
+ *
225
+ * NOTE: As of v0.X.X (increment 0026), we ONLY create specs/ folders.
226
+ * No modules/, team/, architecture/, legacy/ folders.
227
+ */
228
+ export async function createSpecWeaveStructure(config, projectPath) {
229
+ const specweavePath = path.join(projectPath, '.specweave');
230
+ // Create project-specific spec folders (ONLY specs/, no nested folders)
231
+ if (config.architecture === 'monorepo' && config.monorepoProjects) {
232
+ // Monorepo: create specs folder for each project
233
+ for (const project of config.monorepoProjects) {
234
+ const projectSpecPath = path.join(specweavePath, 'docs', 'internal', 'specs', project.toLowerCase());
235
+ if (!existsSync(projectSpecPath)) {
236
+ mkdirSync(projectSpecPath, { recursive: true });
237
+ }
238
+ console.log(chalk.gray(` [OK] Created project structure: ${project}`));
239
+ }
240
+ }
241
+ else if (config.architecture === 'multi-repo' || config.architecture === 'parent') {
242
+ // Multi-repo: create specs folder for each repository
243
+ for (const repo of config.repositories) {
244
+ const projectSpecPath = path.join(specweavePath, 'docs', 'internal', 'specs', repo.id);
245
+ if (!existsSync(projectSpecPath)) {
246
+ mkdirSync(projectSpecPath, { recursive: true });
247
+ }
248
+ console.log(chalk.gray(` [OK] Created project structure: ${repo.path}`));
249
+ }
250
+ // CRITICAL: Also create folder for parent repo (was missing before!)
251
+ if (config.architecture === 'parent' && config.parentRepo) {
252
+ const parentSpecPath = path.join(specweavePath, 'docs', 'internal', 'specs', config.parentRepo.name);
253
+ if (!existsSync(parentSpecPath)) {
254
+ mkdirSync(parentSpecPath, { recursive: true });
255
+ }
256
+ console.log(chalk.gray(` [OK] Created project structure: ${config.parentRepo.name} (parent)`));
257
+ }
258
+ }
259
+ }
260
+ //# sourceMappingURL=repo-initializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-initializer.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-initializer.ts"],"names":[],"mappings":"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"}
@@ -71,23 +71,6 @@ export declare class RepoStructureManager {
71
71
  * Configure single repository
72
72
  */
73
73
  private configureSingleRepo;
74
- /**
75
- * Configure multi-repository architecture
76
- * @param useParent - Whether to use parent repository/folder
77
- * @param isLocalParent - If true, parent folder is local only (NOT pushed to GitHub)
78
- * @param urlType - Git remote URL format (ssh or https)
79
- * @param platform - Git hosting platform type
80
- * @param provider - Git provider instance for API operations
81
- *
82
- * NOTE: This is primarily user-facing output (console.log/console.error).
83
- * All console.* calls in this method are legitimate user-facing exceptions
84
- * as defined in CONTRIBUTING.md (colored messages, confirmations, formatted output).
85
- */
86
- private configureMultiRepo;
87
- /**
88
- * Save setup state for Ctrl+C recovery
89
- */
90
- private saveSetupState;
91
74
  /**
92
75
  * Configure monorepo
93
76
  */
@@ -112,31 +95,14 @@ export declare class RepoStructureManager {
112
95
  * Check if a GitHub account is an organization
113
96
  */
114
97
  private isGitHubOrganization;
115
- /**
116
- * Check if a repository exists on GitHub
117
- */
118
- private repositoryExistsOnGitHub;
119
- /**
120
- * Clone or initialize a repository
121
- * If the repo exists on the platform, clone it; otherwise, init + add remote
122
- */
123
- private cloneOrInitRepository;
124
98
  /**
125
99
  * Initialize local git repositories
100
+ * Delegates to extracted repo-initializer module
126
101
  */
127
102
  initializeLocalRepos(config: RepoStructureConfig): Promise<void>;
128
103
  /**
129
- * Create basic structure for a repository/project
130
- *
131
- * NOTE: Only creates src/ and tests/ folders for nested projects.
132
- * Documentation lives in .specweave/docs/internal/specs/{project-id}/ (source of truth)
133
- */
134
- private createBasicRepoStructure;
135
- /**
136
- * Create SpecWeave project structure (simplified - ONLY specs folders)
137
- *
138
- * NOTE: As of v0.X.X (increment 0026), we ONLY create specs/ folders.
139
- * No modules/, team/, architecture/, legacy/ folders.
104
+ * Create SpecWeave project structure
105
+ * Delegates to extracted repo-initializer module
140
106
  */
141
107
  createSpecWeaveStructure(config: RepoStructureConfig): Promise<void>;
142
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repo-structure-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGtE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAoB;gBAE5B,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IASrD;;;;OAIG;IACG,eAAe,CAAC,uBAAuB,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkGjG;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;OAEG;YACW,WAAW;IAgCzB;;OAEG;YACW,mBAAmB;IAwIjC;;;;;;;;;;;OAWG;YACW,kBAAkB;IA6oBhC;;OAEG;YACW,cAAc;IAQ5B;;OAEG;YACW,iBAAiB;IAmF/B;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiFpE;;OAEG;YACW,eAAe;IAwC7B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;YACW,wBAAwB;IAmBtC;;;OAGG;YACW,qBAAqB;IAmEnC;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEtE;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;;;;OAKG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwC3E"}
1
+ {"version":3,"file":"repo-structure-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAStE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAoB;gBAE5B,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IASrD;;;;OAIG;IACG,eAAe,CAAC,uBAAuB,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2GjG;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;OAEG;YACW,WAAW;IAgCzB;;OAEG;YACW,mBAAmB;IAyIjC;;OAEG;YACW,iBAAiB;IAmF/B;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiFpE;;OAEG;YACW,eAAe;IAwC7B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,oBAAoB;IAoBlC;;;OAGG;IACG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE;;;OAGG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3E"}