docs: publish approved legacy Epic catalogue #1

Merged
jarvis-at-skic merged 4 commits from docs/approved-legacy-epics into test 2026-09-02 02:47:56 -07:00
13 changed files with 93 additions and 1 deletions
Showing only changes of commit 9b85ba4322 - Show all commits
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-1 Features"
description: "Review Features governed by 3DARCH-EP-1."
---
# Review 3DARCH-EP-1 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-1 boundary](../3darch-ep-1.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-10 Features"
description: "Review Features governed by 3DARCH-EP-10."
---
# Review 3DARCH-EP-10 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-10 boundary](../3darch-ep-10.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-2 Features"
description: "Review Features governed by 3DARCH-EP-2."
---
# Review 3DARCH-EP-2 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-2 boundary](../3darch-ep-2.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-3 Features"
description: "Review Features governed by 3DARCH-EP-3."
---
# Review 3DARCH-EP-3 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-3 boundary](../3darch-ep-3.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-4 Features"
description: "Review Features governed by 3DARCH-EP-4."
---
# Review 3DARCH-EP-4 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-4 boundary](../3darch-ep-4.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-5 Features"
description: "Review Features governed by 3DARCH-EP-5."
---
# Review 3DARCH-EP-5 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-5 boundary](../3darch-ep-5.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-6 Features"
description: "Review Features governed by 3DARCH-EP-6."
---
# Review 3DARCH-EP-6 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-6 boundary](../3darch-ep-6.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-7 Features"
description: "Review Features governed by 3DARCH-EP-7."
---
# Review 3DARCH-EP-7 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-7 boundary](../3darch-ep-7.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-8 Features"
description: "Review Features governed by 3DARCH-EP-8."
---
# Review 3DARCH-EP-8 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-8 boundary](../3darch-ep-8.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+8
View File
@@ -0,0 +1,8 @@
---
title: "3DARCH-EP-9 Features"
description: "Review Features governed by 3DARCH-EP-9."
---
# Review 3DARCH-EP-9 Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [3DARCH-EP-9 boundary](../3darch-ep-9.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
+11
View File
@@ -66,6 +66,16 @@ The approved catalogue was mined from legacy revision \`${epic.legacy_revision}\
${evidenceList(epic)}
`;
const featuresPage = (epic) => `---
title: "${epic.id} Features"
description: "Review Features governed by ${epic.id}."
---
# Review ${epic.id} Features
No child Features have been defined or approved for this Epic. Feature discovery must preserve the [${epic.id} boundary](../${epic.id.toLowerCase()}.md) and requires a separate human **Approved for Solution** decision before Architecture solution work begins.
`;
const epicLinks = records.map((epic) => `- [${epic.id} — ${epic.title}](./${epic.id.toLowerCase()}.md)`).join('\n');
const epicIndex = `---
title: "Epics"
@@ -110,6 +120,7 @@ const expected = new Map([
[join(root, 'scope/roadmap.md'), roadmap],
[join(root, 'src/data/scopeIssues.ts'), ts],
...records.map((epic) => [join(root, `scope/epics/${epic.id.toLowerCase()}.md`), epicPage(epic)]),
...records.map((epic) => [join(root, `scope/epics/${epic.id.toLowerCase()}/features.md`), featuresPage(epic)]),
]);
let stale = false;
+1 -1
View File
@@ -16,7 +16,7 @@ const sidebars: SidebarsConfig = {
type: 'category' as const,
label: id.toUpperCase(),
link: {type: 'doc' as const, id: `epics/${id}`},
items: [{type: 'category' as const, label: 'Features', items: []}],
items: [{type: 'category' as const, label: 'Features', link: {type: 'doc' as const, id: `epics/${id}/features`}, items: []}],
})),
},
],
+1
View File
@@ -41,6 +41,7 @@ test('approved Epic catalogue is complete, governed, and reader-linked', () => {
const slug = id.toLowerCase();
assert.ok(existsSync(`data/scope/epics/${slug}.yml`), id);
assert.ok(existsSync(`scope/epics/${slug}.md`), id);
assert.ok(existsSync(`scope/epics/${slug}/features.md`), `${id} Features group`);
const record = JSON.parse(read(`data/scope/epics/${slug}.yml`));
assert.equal(record.id, id);
assert.equal(record.status, 'IN_BACKLOG');