specweave 1.0.375 → 1.0.377
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/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.js +67 -30
- package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave-github/lib/github-ac-checkbox-sync.js +55 -30
- package/plugins/specweave-github/lib/github-ac-checkbox-sync.ts +69 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-ac-checkbox-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-checkbox-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,MAAM,EAAiB,MAAM,8BAA8B,CAAC;AAWrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,OAAO,EAAE;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAQD;;;;;OAKG;IACG,wBAAwB,CAC5B,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GACrC,OAAO,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"github-ac-checkbox-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-checkbox-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,MAAM,EAAiB,MAAM,8BAA8B,CAAC;AAWrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAiB;gBAE3B,OAAO,EAAE;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAQD;;;;;OAKG;IACG,wBAAwB,CAC5B,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GACrC,OAAO,CAAC,oBAAoB,CAAC;IAiLhC;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAwBvE;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAe1C;;OAEG;YACW,2BAA2B;CA+G1C"}
|
|
@@ -54,14 +54,14 @@ export class GitHubACCheckboxSync {
|
|
|
54
54
|
this.logger.log('ℹ️ No user stories found for this increment');
|
|
55
55
|
return result;
|
|
56
56
|
}
|
|
57
|
-
// Get GitHub repo info
|
|
57
|
+
// Get default GitHub repo info (used when US doesn't have per-repo URL)
|
|
58
58
|
const githubConfig = config.sync?.github || {};
|
|
59
59
|
const repoInfo = await this.providerRouter.detectGitHubRepo(githubConfig);
|
|
60
60
|
if (!repoInfo) {
|
|
61
61
|
this.logger.log('⚠️ GitHub repository not configured');
|
|
62
62
|
return result;
|
|
63
63
|
}
|
|
64
|
-
const
|
|
64
|
+
const defaultClient = GitHubClientV2.fromRepo(repoInfo.owner, repoInfo.repo);
|
|
65
65
|
this.logger.log(`\n📊 Syncing AC checkboxes to GitHub issues...`);
|
|
66
66
|
this.logger.log(` Repository: ${repoInfo.owner}/${repoInfo.repo}`);
|
|
67
67
|
// Load spec.md to get current AC status
|
|
@@ -77,9 +77,10 @@ export class GitHubACCheckboxSync {
|
|
|
77
77
|
// Process each user story with a GitHub issue
|
|
78
78
|
for (const usFile of userStories) {
|
|
79
79
|
// Find GitHub issue number from frontmatter
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
// Supports: external_tools.github.number, external.github.issue, external_id
|
|
81
|
+
const ghInfo = usFile.external_tools?.github;
|
|
82
|
+
const issueNumber = ghInfo?.number || ghInfo?.issue || ghInfo?.issue_number ||
|
|
83
|
+
usFile.external_id;
|
|
83
84
|
if (!issueNumber) {
|
|
84
85
|
this.logger.log(` ⏭️ ${usFile.id} - No GitHub issue linked`);
|
|
85
86
|
continue;
|
|
@@ -98,6 +99,15 @@ export class GitHubACCheckboxSync {
|
|
|
98
99
|
continue;
|
|
99
100
|
}
|
|
100
101
|
try {
|
|
102
|
+
// Use per-repo client if URL points to a different repo (cross-project support)
|
|
103
|
+
let client = defaultClient;
|
|
104
|
+
const ghUrl = ghInfo?.url;
|
|
105
|
+
if (ghUrl) {
|
|
106
|
+
const repoMatch = ghUrl.match(/github\.com\/([^/]+)\/([^/]+)\/issues\//);
|
|
107
|
+
if (repoMatch && `${repoMatch[1]}/${repoMatch[2]}` !== `${repoInfo.owner}/${repoInfo.repo}`) {
|
|
108
|
+
client = GitHubClientV2.fromRepo(repoMatch[1], repoMatch[2]);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
101
111
|
// Fetch and update issue
|
|
102
112
|
const issue = await client.getIssue(Number(issueNumber));
|
|
103
113
|
if (!issue) {
|
|
@@ -243,33 +253,60 @@ ${[...usAcStatus.entries()].map(([id, done]) => `- ${done ? '✅' : '⬜'} ${id}
|
|
|
243
253
|
return [];
|
|
244
254
|
}
|
|
245
255
|
}
|
|
246
|
-
// Find living docs for this feature
|
|
247
|
-
const
|
|
248
|
-
|
|
256
|
+
// Find living docs for this feature — scan all project folders for cross-project support
|
|
257
|
+
const specsRoot = path.join(this.projectRoot, '.specweave/docs/internal/specs');
|
|
258
|
+
const usFiles = [];
|
|
259
|
+
// Collect all project folders that have this feature
|
|
260
|
+
const projectDirs = [];
|
|
261
|
+
const primaryPath = path.join(specsRoot, this.projectId, featureId);
|
|
262
|
+
if (existsSync(primaryPath)) {
|
|
263
|
+
projectDirs.push(primaryPath);
|
|
264
|
+
}
|
|
265
|
+
// For cross-project increments, also scan other project folders
|
|
266
|
+
if (existsSync(specsRoot)) {
|
|
267
|
+
try {
|
|
268
|
+
const allProjects = await fs.readdir(specsRoot);
|
|
269
|
+
for (const proj of allProjects) {
|
|
270
|
+
if (proj === this.projectId)
|
|
271
|
+
continue;
|
|
272
|
+
const projFeaturePath = path.join(specsRoot, proj, featureId);
|
|
273
|
+
if (existsSync(projFeaturePath)) {
|
|
274
|
+
projectDirs.push(projFeaturePath);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
// Ignore readdir errors
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
if (projectDirs.length === 0) {
|
|
249
283
|
return [];
|
|
250
284
|
}
|
|
251
|
-
// Load all US files
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
285
|
+
// Load all US files from all matching project/feature folders
|
|
286
|
+
for (const featurePath of projectDirs) {
|
|
287
|
+
const files = await fs.readdir(featurePath);
|
|
288
|
+
for (const file of files) {
|
|
289
|
+
if (file.startsWith('us-') && file.endsWith('.md')) {
|
|
290
|
+
const filePath = path.join(featurePath, file);
|
|
291
|
+
const fileContent = await fs.readFile(filePath, 'utf-8');
|
|
292
|
+
const match = fileContent.match(/^---\n([\s\S]*?)\n---/);
|
|
293
|
+
if (match) {
|
|
294
|
+
const fm = yaml.parse(match[1]);
|
|
295
|
+
// Support both external_tools (legacy) and external (living docs) formats
|
|
296
|
+
const externalTools = fm.external_tools || fm.external;
|
|
297
|
+
usFiles.push({
|
|
298
|
+
id: fm.id,
|
|
299
|
+
title: fm.title,
|
|
300
|
+
format_preservation: fm.format_preservation,
|
|
301
|
+
external_title: fm.external_title,
|
|
302
|
+
external_source: fm.external_source,
|
|
303
|
+
external_id: fm.external_id,
|
|
304
|
+
external_url: fm.external_url,
|
|
305
|
+
imported_at: fm.imported_at,
|
|
306
|
+
origin: fm.origin,
|
|
307
|
+
external_tools: externalTools,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
273
310
|
}
|
|
274
311
|
}
|
|
275
312
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-ac-checkbox-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-checkbox-sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-ac-checkbox-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-checkbox-sync.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.377",
|
|
4
4
|
"description": "Spec-driven development framework for AI coding agents. Works with Claude Code, Codex, Antigravity, Cursor, Copilot & more. 100+ skills, 49 CLI commands, verified skill certification, autonomous execution, and living documentation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -52,7 +52,7 @@ class GitHubACCheckboxSync {
|
|
|
52
52
|
this.logger.log("\u26A0\uFE0F GitHub repository not configured");
|
|
53
53
|
return result;
|
|
54
54
|
}
|
|
55
|
-
const
|
|
55
|
+
const defaultClient = GitHubClientV2.fromRepo(repoInfo.owner, repoInfo.repo);
|
|
56
56
|
this.logger.log(`
|
|
57
57
|
\u{1F4CA} Syncing AC checkboxes to GitHub issues...`);
|
|
58
58
|
this.logger.log(` Repository: ${repoInfo.owner}/${repoInfo.repo}`);
|
|
@@ -70,7 +70,8 @@ class GitHubACCheckboxSync {
|
|
|
70
70
|
const acStatus = GitHubACCheckboxSync.parseACStatusFromSpec(specContent);
|
|
71
71
|
this.logger.log(` Found ${acStatus.size} ACs in spec.md`);
|
|
72
72
|
for (const usFile of userStories) {
|
|
73
|
-
const
|
|
73
|
+
const ghInfo = usFile.external_tools?.github;
|
|
74
|
+
const issueNumber = ghInfo?.number || ghInfo?.issue || ghInfo?.issue_number || usFile.external_id;
|
|
74
75
|
if (!issueNumber) {
|
|
75
76
|
this.logger.log(` \u23ED\uFE0F ${usFile.id} - No GitHub issue linked`);
|
|
76
77
|
continue;
|
|
@@ -87,6 +88,14 @@ class GitHubACCheckboxSync {
|
|
|
87
88
|
continue;
|
|
88
89
|
}
|
|
89
90
|
try {
|
|
91
|
+
let client = defaultClient;
|
|
92
|
+
const ghUrl = ghInfo?.url;
|
|
93
|
+
if (ghUrl) {
|
|
94
|
+
const repoMatch = ghUrl.match(/github\.com\/([^/]+)\/([^/]+)\/issues\//);
|
|
95
|
+
if (repoMatch && `${repoMatch[1]}/${repoMatch[2]}` !== `${repoInfo.owner}/${repoInfo.repo}`) {
|
|
96
|
+
client = GitHubClientV2.fromRepo(repoMatch[1], repoMatch[2]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
90
99
|
const issue = await client.getIssue(Number(issueNumber));
|
|
91
100
|
if (!issue) {
|
|
92
101
|
this.logger.log(` \u26A0\uFE0F ${usFile.id} - Issue #${issueNumber} not found`);
|
|
@@ -231,36 +240,52 @@ ${[...usAcStatus.entries()].map(
|
|
|
231
240
|
return [];
|
|
232
241
|
}
|
|
233
242
|
}
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
243
|
+
const specsRoot = path.join(this.projectRoot, ".specweave/docs/internal/specs");
|
|
244
|
+
const usFiles = [];
|
|
245
|
+
const projectDirs = [];
|
|
246
|
+
const primaryPath = path.join(specsRoot, this.projectId, featureId);
|
|
247
|
+
if (existsSync(primaryPath)) {
|
|
248
|
+
projectDirs.push(primaryPath);
|
|
249
|
+
}
|
|
250
|
+
if (existsSync(specsRoot)) {
|
|
251
|
+
try {
|
|
252
|
+
const allProjects = await fs.readdir(specsRoot);
|
|
253
|
+
for (const proj of allProjects) {
|
|
254
|
+
if (proj === this.projectId) continue;
|
|
255
|
+
const projFeaturePath = path.join(specsRoot, proj, featureId);
|
|
256
|
+
if (existsSync(projFeaturePath)) {
|
|
257
|
+
projectDirs.push(projFeaturePath);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
} catch {
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (projectDirs.length === 0) {
|
|
241
264
|
return [];
|
|
242
265
|
}
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
266
|
+
for (const featurePath of projectDirs) {
|
|
267
|
+
const files = await fs.readdir(featurePath);
|
|
268
|
+
for (const file of files) {
|
|
269
|
+
if (file.startsWith("us-") && file.endsWith(".md")) {
|
|
270
|
+
const filePath = path.join(featurePath, file);
|
|
271
|
+
const fileContent = await fs.readFile(filePath, "utf-8");
|
|
272
|
+
const match = fileContent.match(/^---\n([\s\S]*?)\n---/);
|
|
273
|
+
if (match) {
|
|
274
|
+
const fm = yaml.parse(match[1]);
|
|
275
|
+
const externalTools = fm.external_tools || fm.external;
|
|
276
|
+
usFiles.push({
|
|
277
|
+
id: fm.id,
|
|
278
|
+
title: fm.title,
|
|
279
|
+
format_preservation: fm.format_preservation,
|
|
280
|
+
external_title: fm.external_title,
|
|
281
|
+
external_source: fm.external_source,
|
|
282
|
+
external_id: fm.external_id,
|
|
283
|
+
external_url: fm.external_url,
|
|
284
|
+
imported_at: fm.imported_at,
|
|
285
|
+
origin: fm.origin,
|
|
286
|
+
external_tools: externalTools
|
|
287
|
+
});
|
|
288
|
+
}
|
|
264
289
|
}
|
|
265
290
|
}
|
|
266
291
|
}
|
|
@@ -87,7 +87,7 @@ export class GitHubACCheckboxSync {
|
|
|
87
87
|
return result;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
// Get GitHub repo info
|
|
90
|
+
// Get default GitHub repo info (used when US doesn't have per-repo URL)
|
|
91
91
|
const githubConfig = config.sync?.github || {};
|
|
92
92
|
const repoInfo = await this.providerRouter.detectGitHubRepo(githubConfig as GitHubRepoConfig);
|
|
93
93
|
if (!repoInfo) {
|
|
@@ -95,7 +95,7 @@ export class GitHubACCheckboxSync {
|
|
|
95
95
|
return result;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
const
|
|
98
|
+
const defaultClient = GitHubClientV2.fromRepo(repoInfo.owner, repoInfo.repo);
|
|
99
99
|
|
|
100
100
|
this.logger.log(`\n📊 Syncing AC checkboxes to GitHub issues...`);
|
|
101
101
|
this.logger.log(` Repository: ${repoInfo.owner}/${repoInfo.repo}`);
|
|
@@ -122,9 +122,10 @@ export class GitHubACCheckboxSync {
|
|
|
122
122
|
// Process each user story with a GitHub issue
|
|
123
123
|
for (const usFile of userStories) {
|
|
124
124
|
// Find GitHub issue number from frontmatter
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
// Supports: external_tools.github.number, external.github.issue, external_id
|
|
126
|
+
const ghInfo = usFile.external_tools?.github as Record<string, any> | undefined;
|
|
127
|
+
const issueNumber = ghInfo?.number || ghInfo?.issue || ghInfo?.issue_number ||
|
|
128
|
+
usFile.external_id;
|
|
128
129
|
|
|
129
130
|
if (!issueNumber) {
|
|
130
131
|
this.logger.log(` ⏭️ ${usFile.id} - No GitHub issue linked`);
|
|
@@ -147,6 +148,16 @@ export class GitHubACCheckboxSync {
|
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
try {
|
|
151
|
+
// Use per-repo client if URL points to a different repo (cross-project support)
|
|
152
|
+
let client = defaultClient;
|
|
153
|
+
const ghUrl = ghInfo?.url as string | undefined;
|
|
154
|
+
if (ghUrl) {
|
|
155
|
+
const repoMatch = ghUrl.match(/github\.com\/([^/]+)\/([^/]+)\/issues\//);
|
|
156
|
+
if (repoMatch && `${repoMatch[1]}/${repoMatch[2]}` !== `${repoInfo.owner}/${repoInfo.repo}`) {
|
|
157
|
+
client = GitHubClientV2.fromRepo(repoMatch[1], repoMatch[2]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
150
161
|
// Fetch and update issue
|
|
151
162
|
const issue = await client.getIssue(Number(issueNumber));
|
|
152
163
|
if (!issue) {
|
|
@@ -327,42 +338,63 @@ ${[...usAcStatus.entries()].map(([id, done]) =>
|
|
|
327
338
|
}
|
|
328
339
|
}
|
|
329
340
|
|
|
330
|
-
// Find living docs for this feature
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
-
'.specweave/docs/internal/specs',
|
|
334
|
-
this.projectId,
|
|
335
|
-
featureId
|
|
336
|
-
);
|
|
341
|
+
// Find living docs for this feature — scan all project folders for cross-project support
|
|
342
|
+
const specsRoot = path.join(this.projectRoot, '.specweave/docs/internal/specs');
|
|
343
|
+
const usFiles: LivingDocsUSFile[] = [];
|
|
337
344
|
|
|
338
|
-
|
|
339
|
-
|
|
345
|
+
// Collect all project folders that have this feature
|
|
346
|
+
const projectDirs: string[] = [];
|
|
347
|
+
const primaryPath = path.join(specsRoot, this.projectId, featureId);
|
|
348
|
+
if (existsSync(primaryPath)) {
|
|
349
|
+
projectDirs.push(primaryPath);
|
|
340
350
|
}
|
|
341
351
|
|
|
342
|
-
//
|
|
343
|
-
|
|
344
|
-
|
|
352
|
+
// For cross-project increments, also scan other project folders
|
|
353
|
+
if (existsSync(specsRoot)) {
|
|
354
|
+
try {
|
|
355
|
+
const allProjects = await fs.readdir(specsRoot);
|
|
356
|
+
for (const proj of allProjects) {
|
|
357
|
+
if (proj === this.projectId) continue;
|
|
358
|
+
const projFeaturePath = path.join(specsRoot, proj, featureId);
|
|
359
|
+
if (existsSync(projFeaturePath)) {
|
|
360
|
+
projectDirs.push(projFeaturePath);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
} catch {
|
|
364
|
+
// Ignore readdir errors
|
|
365
|
+
}
|
|
366
|
+
}
|
|
345
367
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
368
|
+
if (projectDirs.length === 0) {
|
|
369
|
+
return [];
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
// Load all US files from all matching project/feature folders
|
|
373
|
+
for (const featurePath of projectDirs) {
|
|
374
|
+
const files = await fs.readdir(featurePath);
|
|
375
|
+
for (const file of files) {
|
|
376
|
+
if (file.startsWith('us-') && file.endsWith('.md')) {
|
|
377
|
+
const filePath = path.join(featurePath, file);
|
|
378
|
+
const fileContent = await fs.readFile(filePath, 'utf-8');
|
|
379
|
+
|
|
380
|
+
const match = fileContent.match(/^---\n([\s\S]*?)\n---/);
|
|
381
|
+
if (match) {
|
|
382
|
+
const fm = yaml.parse(match[1]);
|
|
383
|
+
// Support both external_tools (legacy) and external (living docs) formats
|
|
384
|
+
const externalTools = fm.external_tools || fm.external;
|
|
385
|
+
usFiles.push({
|
|
386
|
+
id: fm.id,
|
|
387
|
+
title: fm.title,
|
|
388
|
+
format_preservation: fm.format_preservation,
|
|
389
|
+
external_title: fm.external_title,
|
|
390
|
+
external_source: fm.external_source,
|
|
391
|
+
external_id: fm.external_id,
|
|
392
|
+
external_url: fm.external_url,
|
|
393
|
+
imported_at: fm.imported_at,
|
|
394
|
+
origin: fm.origin,
|
|
395
|
+
external_tools: externalTools,
|
|
396
|
+
});
|
|
397
|
+
}
|
|
366
398
|
}
|
|
367
399
|
}
|
|
368
400
|
}
|