ai-spector 0.6.6 → 0.6.7
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/commands/graph-impact.d.ts.map +1 -1
- package/dist/commands/graph-impact.js +10 -1
- package/dist/commands/graph-impact.js.map +1 -1
- package/dist/commands/graph-query.d.ts.map +1 -1
- package/dist/commands/graph-query.js +10 -0
- package/dist/commands/graph-query.js.map +1 -1
- package/dist/commands/template.d.ts.map +1 -1
- package/dist/commands/template.js +372 -13
- package/dist/commands/template.js.map +1 -1
- package/dist/graph/merge.d.ts.map +1 -1
- package/dist/graph/merge.js +6 -0
- package/dist/graph/merge.js.map +1 -1
- package/package.json +1 -1
- package/scaffold/claude/.claude/skills/ai-spector-generate-srs/skill.md +4 -0
- package/scaffold/claude/CLAUDE.md +4 -2
- package/scaffold/cursor/skills/_skill-router.md +3 -3
- package/scaffold/cursor/skills/ai-spector/references/generate-workflow.md +11 -3
- package/scaffold/cursor/skills/ai-spector-generate/SKILL.md +23 -4
- package/scaffold/cursor/skills/ai-spector-generate-srs/references/runbook.md +6 -0
- package/scaffold/cursor/skills/ai-spector-template-import/SKILL.md +6 -0
- package/scaffold/cursor/skills/ai-spector-template-import/references/runbook.md +58 -4
- package/scaffold/cursor/skills/ai-spector-template-import/references/skill-outline.md +253 -0
- package/schemas/schema.graph.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-impact.d.ts","sourceRoot":"","sources":["../../src/commands/graph-impact.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAwBD,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,EAChD,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,GACjE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"graph-impact.d.ts","sourceRoot":"","sources":["../../src/commands/graph-impact.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAwBD,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,EAChD,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,GACjE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,CA8BjD;AAED,wBAAsB,qBAAqB,CACzC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,EAChD,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA4Hf;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD/E"}
|
|
@@ -25,7 +25,16 @@ export function resolveImpactOriginId(g, opts) {
|
|
|
25
25
|
if (opts.originId?.trim()) {
|
|
26
26
|
const id = opts.originId.trim();
|
|
27
27
|
if (!g.nodesById.has(id)) {
|
|
28
|
-
|
|
28
|
+
// Suggest document ids from the active graph to help agents using stale builtin seeds
|
|
29
|
+
const docNodes = [...g.nodesById.values()]
|
|
30
|
+
.filter((n) => n.type === "document")
|
|
31
|
+
.map((n) => n.id)
|
|
32
|
+
.slice(0, 6);
|
|
33
|
+
const suggestion = docNodes.length > 0
|
|
34
|
+
? `\nDocument ids in current graph:\n${docNodes.map((d) => ` ${d}`).join("\n")}\n` +
|
|
35
|
+
`Run \`npx ai-spector template inspect <pack> --json\` to list all active pack documents.`
|
|
36
|
+
: "";
|
|
37
|
+
throw new Error(`Unknown node id: ${id}${suggestion}`);
|
|
29
38
|
}
|
|
30
39
|
return { originId: id };
|
|
31
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-impact.js","sourceRoot":"","sources":["../../src/commands/graph-impact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,qBAAqB,CAAC;AAe7B,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAEzD,SAAS,uBAAuB,CAC9B,IAAkE;IAElE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,yBAAyB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CACL,mEAAmE,IAAI,IAAI;YAC3E,0FAA0F;YAC1F,eAAe;YACf,0FAA0F;YAC1F,wCAAwC,IAAI,sCAAsC;YAClF,gDAAgD,QAAQ,EAAE,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,gGAAgG,CAAC;AAC1G,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,CAAgD,EAChD,IAAkE;IAElE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-impact.js","sourceRoot":"","sources":["../../src/commands/graph-impact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-query.d.ts","sourceRoot":"","sources":["../../src/commands/graph-query.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"graph-query.d.ts","sourceRoot":"","sources":["../../src/commands/graph-query.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C7E"}
|
|
@@ -2,6 +2,16 @@ import { loadInMemoryGraph } from "../graph/loadGraph.js";
|
|
|
2
2
|
import { querySubgraph } from "../graph/query.js";
|
|
3
3
|
export async function runGraphQuery(opts) {
|
|
4
4
|
const g = await loadInMemoryGraph(opts.graphPath);
|
|
5
|
+
if (!g.nodesById.has(opts.seedId)) {
|
|
6
|
+
const docNodes = [...g.nodesById.values()]
|
|
7
|
+
.filter((n) => n.type === "document")
|
|
8
|
+
.map((n) => n.id);
|
|
9
|
+
const suggestion = docNodes.length > 0
|
|
10
|
+
? `\nDocument ids in the current graph:\n${docNodes.map((d) => ` ${d}`).join("\n")}\n` +
|
|
11
|
+
`\nTip: if you switched packs, run \`npx ai-spector template inspect <pack>\` to list valid seed ids.`
|
|
12
|
+
: "\nThe graph appears empty — run \`npx ai-spector registry build\` then retry.";
|
|
13
|
+
throw new Error(`Unknown node id: ${opts.seedId}${suggestion}`);
|
|
14
|
+
}
|
|
5
15
|
const queryOpts = {
|
|
6
16
|
direction: opts.direction,
|
|
7
17
|
depth: opts.depth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-query.js","sourceRoot":"","sources":["../../src/commands/graph-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAqB,MAAM,mBAAmB,CAAC;AAYrE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-query.js","sourceRoot":"","sources":["../../src/commands/graph-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAqB,MAAM,mBAAmB,CAAC;AAYrE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAElD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,UAAU,GACd,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,yCAAyC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACrF,sGAAsG;YACxG,CAAC,CAAC,+EAA+E,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,SAAS,GAAiB;QAC9B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAe,CAAC;IACjF,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAExD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC;IACpE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAy9BpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAkFvD"}
|
|
@@ -27,11 +27,13 @@ async function rebuildRegistryAndGraph(root, config) {
|
|
|
27
27
|
const graph = bootstrapFromRegistry(registry);
|
|
28
28
|
await writeJson(graphPath, graph.toTraceabilityGraph());
|
|
29
29
|
const totalSections = registry.documents.reduce((n, d) => n + d.sections.length, 0);
|
|
30
|
+
const tg = graph.toTraceabilityGraph();
|
|
30
31
|
return {
|
|
31
32
|
documents: registry.documents.length,
|
|
32
33
|
sections: totalSections,
|
|
33
34
|
graphNodes: graph.nodesById.size,
|
|
34
|
-
graphEdges:
|
|
35
|
+
graphEdges: tg.edges.length,
|
|
36
|
+
documentIds: tg.nodes.filter((n) => n.type === "document").map((n) => n.id),
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
39
|
async function listInstalledPackNames(root) {
|
|
@@ -79,33 +81,373 @@ async function runTemplateList(opts) {
|
|
|
79
81
|
}
|
|
80
82
|
}
|
|
81
83
|
// ---------------------------------------------------------------------------
|
|
84
|
+
// DAG generation from pack manifest
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
/**
|
|
87
|
+
* Derive a `dag.srs.json` + `dag.srs.graph-seeds.json` pair from a pack manifest.
|
|
88
|
+
*
|
|
89
|
+
* - Non-perDomain documents → flat DAG nodes (no dependsOn; AI refines ordering).
|
|
90
|
+
* - perDomain documents → DAG nodes with `mode: "perDomainBreakout"` and the
|
|
91
|
+
* `perDomainKey` field so the generate skill knows to produce one file per domain item.
|
|
92
|
+
*/
|
|
93
|
+
function buildDagFromManifest(manifest) {
|
|
94
|
+
const packSlug = manifest.packName.replace(/[^a-z0-9]/gi, "-").toLowerCase();
|
|
95
|
+
const dagNodes = [];
|
|
96
|
+
const seedsMap = {};
|
|
97
|
+
const primaryDagIds = [];
|
|
98
|
+
// Pass 1: primary (non-perDomain) documents
|
|
99
|
+
for (const doc of manifest.documents) {
|
|
100
|
+
if (doc.perDomain)
|
|
101
|
+
continue;
|
|
102
|
+
const docSlug = doc.documentId.replace(/^doc\.[^.]+\./, "").replace(/\./g, "-");
|
|
103
|
+
const dagId = `${packSlug}.${docSlug}`;
|
|
104
|
+
const output = doc.output ?? doc.outputPattern ?? `${docSlug}.md`;
|
|
105
|
+
dagNodes.push({ id: dagId, template: doc.template, output, dependsOn: [] });
|
|
106
|
+
seedsMap[dagId] = doc.documentId;
|
|
107
|
+
primaryDagIds.push(dagId);
|
|
108
|
+
}
|
|
109
|
+
// Pass 2: perDomain breakout documents — one DAG node each, depends on primary docs
|
|
110
|
+
for (const doc of manifest.documents) {
|
|
111
|
+
if (!doc.perDomain)
|
|
112
|
+
continue;
|
|
113
|
+
const docSlug = doc.documentId.replace(/^doc\.[^.]+\./, "").replace(/\./g, "-");
|
|
114
|
+
const dagId = `${packSlug}.${docSlug}-breakout`;
|
|
115
|
+
const outputPattern = doc.outputPattern ?? doc.output ?? `${docSlug}/{id}.md`;
|
|
116
|
+
dagNodes.push({
|
|
117
|
+
id: dagId,
|
|
118
|
+
template: doc.template,
|
|
119
|
+
outputPattern,
|
|
120
|
+
dependsOn: primaryDagIds,
|
|
121
|
+
mode: "perDomainBreakout",
|
|
122
|
+
perDomainKey: doc.perDomain,
|
|
123
|
+
});
|
|
124
|
+
seedsMap[dagId] = doc.documentId;
|
|
125
|
+
}
|
|
126
|
+
const dag = { version: 1, root: "docs/srs", nodes: dagNodes };
|
|
127
|
+
// perDomain section: maps domain keys to graph node type + template doc id
|
|
128
|
+
// graphNodeType is the NodeType enum value in the graph (e.g. "requirement", "useCase")
|
|
129
|
+
const perDomainSeeds = {};
|
|
130
|
+
if (manifest.perDomainTemplates) {
|
|
131
|
+
for (const [domain, templateDocId] of Object.entries(manifest.perDomainTemplates)) {
|
|
132
|
+
if (!templateDocId)
|
|
133
|
+
continue;
|
|
134
|
+
perDomainSeeds[domain] = {
|
|
135
|
+
graphNodeType: domain,
|
|
136
|
+
templateDocId,
|
|
137
|
+
seedFromDomainId: true,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
const seeds = {
|
|
142
|
+
version: 1,
|
|
143
|
+
description: `Map dag.srs.json node ids to graph document ids for pack "${manifest.packName}"`,
|
|
144
|
+
seeds: seedsMap,
|
|
145
|
+
perDomain: perDomainSeeds,
|
|
146
|
+
};
|
|
147
|
+
return { dag, seeds };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Write a human+AI-readable generate-hints.md into the pack directory.
|
|
151
|
+
* Describes the generation waves and breakout templates so the generate skill
|
|
152
|
+
* can drive the correct output without reading the manifest directly.
|
|
153
|
+
*/
|
|
154
|
+
async function writeGenerateHints(packDir, manifest) {
|
|
155
|
+
const primaryDocs = manifest.documents.filter((d) => !d.perDomain);
|
|
156
|
+
const breakoutDocs = manifest.documents.filter((d) => d.perDomain);
|
|
157
|
+
const lines = [
|
|
158
|
+
`# Generate hints for pack: ${manifest.packName}`,
|
|
159
|
+
"",
|
|
160
|
+
`> Auto-generated by \`template install\`. Update manually if generation order changes.`,
|
|
161
|
+
"",
|
|
162
|
+
"## Wave 0 — Primary documents",
|
|
163
|
+
"",
|
|
164
|
+
"Generate these first (no inter-document dependencies assumed):",
|
|
165
|
+
"",
|
|
166
|
+
];
|
|
167
|
+
for (const doc of primaryDocs) {
|
|
168
|
+
const output = doc.output ?? doc.outputPattern ?? "(see manifest)";
|
|
169
|
+
lines.push(`- **${doc.documentId}** → \`${output}\``);
|
|
170
|
+
lines.push(` Template: \`${doc.template}\``);
|
|
171
|
+
}
|
|
172
|
+
if (breakoutDocs.length > 0) {
|
|
173
|
+
lines.push("", "## Wave 1 — Per-domain breakout files", "", "Generate after Wave 0. One file per graph node of the matching domain type.", "Query graph for nodes of `type: \"<perDomainKey>\"` to get the item list.", "");
|
|
174
|
+
for (const doc of breakoutDocs) {
|
|
175
|
+
const output = doc.outputPattern ?? doc.output ?? "(see manifest)";
|
|
176
|
+
lines.push(`- **${doc.documentId}** (perDomain: \`${doc.perDomain}\`)`);
|
|
177
|
+
lines.push(` Output pattern: \`${output}\``);
|
|
178
|
+
lines.push(` Template: \`${doc.template}\``);
|
|
179
|
+
lines.push(` → Query: \`npx ai-spector graph query ${manifest.documents[0]?.documentId ?? "doc." + manifest.packName} --json\``);
|
|
180
|
+
lines.push(` → Then generate one file per node where \`node.type === "${doc.perDomain}"\``);
|
|
181
|
+
}
|
|
182
|
+
if (manifest.defaultListedIn) {
|
|
183
|
+
lines.push("", "## Breakout list anchors", "");
|
|
184
|
+
for (const [domain, sectionId] of Object.entries(manifest.defaultListedIn)) {
|
|
185
|
+
lines.push(`- \`${domain}\` items list section: \`${sectionId}\``);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
lines.push("", "> This pack has no per-domain breakout templates.");
|
|
191
|
+
}
|
|
192
|
+
lines.push("", "## Reference", "", `- Pack manifest: \`.ai-spector/packs/${manifest.packName}/manifest.json\``, `- Inspect pack: \`npx ai-spector template inspect ${manifest.packName}\``, `- Active graph seeds: see \`.ai-spector/.docflow/config/dag.srs.graph-seeds.json\``);
|
|
193
|
+
await writeFile(join(packDir, "generate-hints.md"), lines.join("\n") + "\n", "utf8");
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Write a dedicated Cursor + Claude generate skill for the installed pack.
|
|
197
|
+
*
|
|
198
|
+
* Priority: if the AI wrote generate-skill.md to staging during the import workflow,
|
|
199
|
+
* use it directly (it's tailored to the specific template). Otherwise fall back to
|
|
200
|
+
* auto-generating a structural skeleton from the manifest.
|
|
201
|
+
*/
|
|
202
|
+
async function writePackGenerateSkill(root, manifest, stagedSkillPath) {
|
|
203
|
+
const name = manifest.packName;
|
|
204
|
+
const slug = name.replace(/[^a-z0-9]/gi, "-").toLowerCase();
|
|
205
|
+
// If the AI wrote a tailored skill during the import workflow, use it directly
|
|
206
|
+
if (stagedSkillPath && existsSync(stagedSkillPath)) {
|
|
207
|
+
const tailoredContent = await readFile(stagedSkillPath, "utf8");
|
|
208
|
+
const cursorSkillDir = join(root, ".cursor", "skills", `ai-spector-generate-${slug}`);
|
|
209
|
+
await mkdir(cursorSkillDir, { recursive: true });
|
|
210
|
+
await writeFile(join(cursorSkillDir, "SKILL.md"), tailoredContent, "utf8");
|
|
211
|
+
// Derive a minimal Claude skill from the tailored content (strip frontmatter + reformat)
|
|
212
|
+
const claudeContent = [
|
|
213
|
+
`---`,
|
|
214
|
+
`name: ai-spector-generate-${slug}`,
|
|
215
|
+
`description: "Generates documents for the ${name} template pack. Use the pack-specific Cursor skill for full details."`,
|
|
216
|
+
`---`,
|
|
217
|
+
``,
|
|
218
|
+
`# AI Spector — Generate (${name} pack)`,
|
|
219
|
+
``,
|
|
220
|
+
`## When to use`,
|
|
221
|
+
``,
|
|
222
|
+
`- Any request to generate, write, or update documents for pack \`${name}\``,
|
|
223
|
+
``,
|
|
224
|
+
`## Step 0 — Load pack context`,
|
|
225
|
+
``,
|
|
226
|
+
`Read these files before generating:`,
|
|
227
|
+
`1. \`.ai-spector/packs/${name}/generate-hints.md\``,
|
|
228
|
+
`2. \`.ai-spector/.docflow/config/dag.srs.json\``,
|
|
229
|
+
`3. \`.ai-spector/.docflow/config/dag.srs.graph-seeds.json\``,
|
|
230
|
+
``,
|
|
231
|
+
`Then follow the wave structure from \`generate-hints.md\`.`,
|
|
232
|
+
``,
|
|
233
|
+
`## Checklist`,
|
|
234
|
+
``,
|
|
235
|
+
`\`\`\``,
|
|
236
|
+
`- [ ] Loaded generate-hints.md and DAG config`,
|
|
237
|
+
`- [ ] graph validate passes before starting`,
|
|
238
|
+
`- [ ] Wave 0 primary documents generated`,
|
|
239
|
+
`- [ ] Wave 1 breakout files generated (if any)`,
|
|
240
|
+
`- [ ] npx ai-spector index run after each wave`,
|
|
241
|
+
`\`\`\``,
|
|
242
|
+
].join("\n");
|
|
243
|
+
const claudeSkillDir = join(root, ".claude", "skills", `ai-spector-generate-${slug}`);
|
|
244
|
+
await mkdir(claudeSkillDir, { recursive: true });
|
|
245
|
+
await writeFile(join(claudeSkillDir, "skill.md"), claudeContent + "\n", "utf8");
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
// Fallback: auto-generate a structural skeleton from the manifest
|
|
249
|
+
// Derive description from primary docs
|
|
250
|
+
const primaryDocs = manifest.documents.filter((d) => !d.perDomain);
|
|
251
|
+
const breakoutDocs = manifest.documents.filter((d) => d.perDomain);
|
|
252
|
+
const primaryOutputs = primaryDocs
|
|
253
|
+
.map((d) => d.output ?? d.outputPattern ?? d.template)
|
|
254
|
+
.slice(0, 3)
|
|
255
|
+
.join(", ");
|
|
256
|
+
const breakoutNote = breakoutDocs.length > 0
|
|
257
|
+
? ` Plus ${breakoutDocs.length} breakout template(s): ${breakoutDocs.map((d) => d.perDomain).join(", ")}.`
|
|
258
|
+
: "";
|
|
259
|
+
// Infer docs/ path for `paths:` frontmatter
|
|
260
|
+
const outputPaths = new Set();
|
|
261
|
+
for (const doc of manifest.documents) {
|
|
262
|
+
const p = (doc.output ?? doc.outputPattern ?? "docs/").split("/").slice(0, 2).join("/") + "/**";
|
|
263
|
+
outputPaths.add(p);
|
|
264
|
+
}
|
|
265
|
+
const pathsYaml = [...outputPaths].map((p) => ` - "${p}"`).join("\n");
|
|
266
|
+
const cursorSkillContent = [
|
|
267
|
+
`---`,
|
|
268
|
+
`name: ai-spector-generate-${slug}`,
|
|
269
|
+
`description: >-`,
|
|
270
|
+
` Generates documents for the ${name} template pack. Use when the user asks to`,
|
|
271
|
+
` generate, write, or update documents produced by this pack. Outputs: ${primaryOutputs}.${breakoutNote}`,
|
|
272
|
+
` Active pack: ${name}.`,
|
|
273
|
+
`paths:`,
|
|
274
|
+
pathsYaml,
|
|
275
|
+
`---`,
|
|
276
|
+
``,
|
|
277
|
+
`# Generate — ${name} pack`,
|
|
278
|
+
``,
|
|
279
|
+
`## Load at start (in order)`,
|
|
280
|
+
`1. \`.ai-spector/packs/${name}/generate-hints.md\``,
|
|
281
|
+
`2. \`.ai-spector/.docflow/config/dag.srs.json\``,
|
|
282
|
+
`3. \`.ai-spector/.docflow/config/dag.srs.graph-seeds.json\``,
|
|
283
|
+
`4. [\`generate-workflow.md\`](../ai-spector/references/generate-workflow.md)`,
|
|
284
|
+
``,
|
|
285
|
+
`## Pack`,
|
|
286
|
+
``,
|
|
287
|
+
`- Name: \`${name}\``,
|
|
288
|
+
`- Templates: \`.ai-spector/packs/${name}/templates/\``,
|
|
289
|
+
`- Manifest: \`.ai-spector/packs/${name}/manifest.json\``,
|
|
290
|
+
``,
|
|
291
|
+
`## Workflow`,
|
|
292
|
+
``,
|
|
293
|
+
`Follow the wave structure from \`generate-hints.md\`.`,
|
|
294
|
+
``,
|
|
295
|
+
`**Wave 0 — Primary documents:**`,
|
|
296
|
+
`- For each node in \`dag.srs.json\` where \`mode\` is not set:`,
|
|
297
|
+
` - Graph seed: look up DAG id in \`dag.srs.graph-seeds.json\` → use that document id`,
|
|
298
|
+
` - Template: \`.ai-spector/packs/${name}/templates/<template-file>\``,
|
|
299
|
+
` - Output: \`output\` or \`outputPattern\` from \`dag.srs.json\` node`,
|
|
300
|
+
` - **Do NOT** use builtin \`doc.srs.*\` ids — they do not exist in this pack's graph`,
|
|
301
|
+
``,
|
|
302
|
+
...(breakoutDocs.length > 0
|
|
303
|
+
? [
|
|
304
|
+
`**Wave 1 — Breakout files (${breakoutDocs.map((d) => d.perDomain).join(", ")}):**`,
|
|
305
|
+
`- After Wave 0, for each DAG node with \`mode: "perDomainBreakout"\`:`,
|
|
306
|
+
` - Query graph for all nodes where \`type === node.perDomainKey\``,
|
|
307
|
+
` - Generate one file per item using \`outputPattern\` from \`dag.srs.json\``,
|
|
308
|
+
` - Template: \`.ai-spector/packs/${name}/templates/<breakout-template>\``,
|
|
309
|
+
``,
|
|
310
|
+
]
|
|
311
|
+
: []),
|
|
312
|
+
`## After each wave`,
|
|
313
|
+
``,
|
|
314
|
+
`\`\`\`bash`,
|
|
315
|
+
`npx ai-spector graph validate`,
|
|
316
|
+
`npx ai-spector index`,
|
|
317
|
+
`\`\`\``,
|
|
318
|
+
``,
|
|
319
|
+
`## On CLI failure`,
|
|
320
|
+
``,
|
|
321
|
+
`Load [\`cli-failures.md\`](../ai-spector/references/cli-failures.md).`,
|
|
322
|
+
``,
|
|
323
|
+
`"generate ${name}", "write docs", "generate documents" → this skill.`,
|
|
324
|
+
].join("\n");
|
|
325
|
+
const claudeSkillContent = [
|
|
326
|
+
`---`,
|
|
327
|
+
`name: ai-spector-generate-${slug}`,
|
|
328
|
+
`description: "Generates documents for the ${name} template pack. Use when the user asks to generate, write, or update documents. Outputs: ${primaryOutputs}.${breakoutNote}"`,
|
|
329
|
+
`---`,
|
|
330
|
+
``,
|
|
331
|
+
`# AI Spector — Generate (${name} pack)`,
|
|
332
|
+
``,
|
|
333
|
+
`## When to use`,
|
|
334
|
+
``,
|
|
335
|
+
`- "generate ${name}", "write docs", "generate documents" when pack \`${name}\` is active`,
|
|
336
|
+
``,
|
|
337
|
+
`## Step 0 — Load pack context`,
|
|
338
|
+
``,
|
|
339
|
+
`Read these files before generating anything:`,
|
|
340
|
+
`1. \`.ai-spector/packs/${name}/generate-hints.md\` — wave structure`,
|
|
341
|
+
`2. \`.ai-spector/.docflow/config/dag.srs.json\` — DAG node order`,
|
|
342
|
+
`3. \`.ai-spector/.docflow/config/dag.srs.graph-seeds.json\` — graph seed ids`,
|
|
343
|
+
``,
|
|
344
|
+
`## Workflow`,
|
|
345
|
+
``,
|
|
346
|
+
`Follow wave structure from \`generate-hints.md\`.`,
|
|
347
|
+
``,
|
|
348
|
+
`\`\`\``,
|
|
349
|
+
`1. Load generate-hints.md + DAG config`,
|
|
350
|
+
`2. Wave 0: generate primary documents (use seed ids from dag.srs.graph-seeds.json)`,
|
|
351
|
+
...(breakoutDocs.length > 0
|
|
352
|
+
? [`3. Wave 1: generate breakout files (one per graph node of perDomainKey type)`]
|
|
353
|
+
: []),
|
|
354
|
+
`${breakoutDocs.length > 0 ? "4" : "3"}. After each wave: npx ai-spector index`,
|
|
355
|
+
`${breakoutDocs.length > 0 ? "5" : "4"}. Final: npx ai-spector graph validate`,
|
|
356
|
+
`\`\`\``,
|
|
357
|
+
``,
|
|
358
|
+
`**Important:** Use graph seed ids from \`dag.srs.graph-seeds.json\`, NOT builtin \`doc.srs.*\` ids.`,
|
|
359
|
+
``,
|
|
360
|
+
`## Checklist`,
|
|
361
|
+
``,
|
|
362
|
+
`\`\`\``,
|
|
363
|
+
`- [ ] Loaded generate-hints.md and DAG config`,
|
|
364
|
+
`- [ ] graph validate passes before starting`,
|
|
365
|
+
`- [ ] Wave 0 primary documents generated`,
|
|
366
|
+
...(breakoutDocs.length > 0 ? [`- [ ] Wave 1 breakout files generated`] : []),
|
|
367
|
+
`- [ ] npx ai-spector index run after each wave`,
|
|
368
|
+
`- [ ] npx ai-spector graph validate run at end`,
|
|
369
|
+
`\`\`\``,
|
|
370
|
+
].join("\n");
|
|
371
|
+
// Write Cursor skill
|
|
372
|
+
const cursorSkillDir = join(root, ".cursor", "skills", `ai-spector-generate-${slug}`);
|
|
373
|
+
await mkdir(cursorSkillDir, { recursive: true });
|
|
374
|
+
await writeFile(join(cursorSkillDir, "SKILL.md"), cursorSkillContent + "\n", "utf8");
|
|
375
|
+
// Write Claude skill
|
|
376
|
+
const claudeSkillDir = join(root, ".claude", "skills", `ai-spector-generate-${slug}`);
|
|
377
|
+
await mkdir(claudeSkillDir, { recursive: true });
|
|
378
|
+
await writeFile(join(claudeSkillDir, "skill.md"), claudeSkillContent + "\n", "utf8");
|
|
379
|
+
}
|
|
380
|
+
async function writeDagFiles(root, dag, seeds) {
|
|
381
|
+
const dagDir = join(root, ".ai-spector", ".docflow", "config");
|
|
382
|
+
await mkdir(dagDir, { recursive: true });
|
|
383
|
+
await writeJson(join(dagDir, "dag.srs.json"), dag);
|
|
384
|
+
await writeJson(join(dagDir, "dag.srs.graph-seeds.json"), seeds);
|
|
385
|
+
}
|
|
386
|
+
async function restoreBuiltinDagFiles(root) {
|
|
387
|
+
const { scaffoldBundleRoot } = await import("../config/load.js");
|
|
388
|
+
const srcDir = join(scaffoldBundleRoot(), ".ai-spector", ".docflow", "config");
|
|
389
|
+
const destDir = join(root, ".ai-spector", ".docflow", "config");
|
|
390
|
+
await mkdir(destDir, { recursive: true });
|
|
391
|
+
for (const name of ["dag.srs.json", "dag.srs.graph-seeds.json"]) {
|
|
392
|
+
const src = join(srcDir, name);
|
|
393
|
+
const dest = join(destDir, name);
|
|
394
|
+
if (existsSync(src)) {
|
|
395
|
+
await copyFile(src, dest);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
// ---------------------------------------------------------------------------
|
|
82
400
|
// template use <name>
|
|
83
401
|
// ---------------------------------------------------------------------------
|
|
84
402
|
async function runTemplateUse(name, opts) {
|
|
85
403
|
const { root, config, configFile } = await loadConfigAndRoot(opts.cwd);
|
|
86
404
|
if (name === "builtin" || name === "default") {
|
|
87
|
-
// Remove packs.active
|
|
88
405
|
if (config.packs) {
|
|
89
406
|
delete config.packs;
|
|
90
407
|
}
|
|
91
408
|
await saveConfig(configFile, config);
|
|
92
|
-
console.log("Switched to builtin templates.
|
|
409
|
+
console.log("Switched to builtin templates. Restoring builtin DAG config...");
|
|
410
|
+
await restoreBuiltinDagFiles(root);
|
|
93
411
|
}
|
|
94
412
|
else {
|
|
95
|
-
// Verify pack exists
|
|
96
413
|
const manifestPath = join(root, ".ai-spector", "packs", name, "manifest.json");
|
|
97
414
|
if (!existsSync(manifestPath)) {
|
|
98
415
|
console.error(`Pack "${name}" not found. Expected manifest at: ${manifestPath}`);
|
|
99
416
|
process.exitCode = 1;
|
|
100
417
|
return;
|
|
101
418
|
}
|
|
419
|
+
const manifest = await readJson(manifestPath);
|
|
102
420
|
config.packs = { active: name };
|
|
103
421
|
await saveConfig(configFile, config);
|
|
104
|
-
console.log(`Switched to pack "${name}". Rebuilding registry and
|
|
422
|
+
console.log(`Switched to pack "${name}". Rebuilding registry, graph, and DAG config...`);
|
|
423
|
+
// Write pack-derived DAG files, generate-hints.md, and dedicated generate skill
|
|
424
|
+
const packDir = join(root, ".ai-spector", "packs", name);
|
|
425
|
+
const { dag, seeds } = buildDagFromManifest(manifest);
|
|
426
|
+
await writeDagFiles(root, dag, seeds);
|
|
427
|
+
await writeGenerateHints(packDir, manifest);
|
|
428
|
+
await writePackGenerateSkill(root, manifest);
|
|
105
429
|
}
|
|
106
430
|
const stats = await rebuildRegistryAndGraph(root, config);
|
|
107
431
|
console.log(`Done. ${stats.documents} documents, ${stats.sections} sections, ` +
|
|
108
432
|
`${stats.graphNodes} graph nodes, ${stats.graphEdges} edges.`);
|
|
433
|
+
const activePack = config.packs?.active ?? "builtin";
|
|
434
|
+
const docIdList = stats.documentIds?.map((id) => ` - ${id}`).join("\n") ??
|
|
435
|
+
` (run \`npx ai-spector template inspect ${activePack}\` to list them)`;
|
|
436
|
+
console.log(`Active graph document ids (valid query seeds):\n${docIdList}`);
|
|
437
|
+
if (activePack !== "builtin") {
|
|
438
|
+
const activeManifestPath = join(root, ".ai-spector", "packs", activePack, "manifest.json");
|
|
439
|
+
if (existsSync(activeManifestPath)) {
|
|
440
|
+
const activeManifest = await readJson(activeManifestPath);
|
|
441
|
+
const breakoutDocs = activeManifest.documents.filter((d) => d.perDomain);
|
|
442
|
+
if (breakoutDocs.length > 0) {
|
|
443
|
+
console.log(`\n⚠ Pack has ${breakoutDocs.length} breakout template(s) — generate primary docs first, then ask:\n` +
|
|
444
|
+
breakoutDocs.map((d) => ` "generate breakout ${d.perDomain} files from the graph"`).join("\n") +
|
|
445
|
+
`\n See: .ai-spector/packs/${activePack}/generate-hints.md`);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
console.log(`\nNote: .cursor/skills/ai-spector-generate-srs/references/runbook.md still references` +
|
|
449
|
+
`\nbuiltin ids — update it or ask the agent to use the ids above when querying the graph.`);
|
|
450
|
+
}
|
|
109
451
|
}
|
|
110
452
|
// ---------------------------------------------------------------------------
|
|
111
453
|
// template inspect <name>
|
|
@@ -300,16 +642,15 @@ async function runTemplateInstall(opts) {
|
|
|
300
642
|
await saveConfig(configFile, config);
|
|
301
643
|
throw err;
|
|
302
644
|
}
|
|
303
|
-
//
|
|
645
|
+
// Write pack-derived DAG files, generate-hints.md, and dedicated generate skill
|
|
646
|
+
const { dag, seeds } = buildDagFromManifest(finalManifest);
|
|
647
|
+
await writeDagFiles(root, dag, seeds);
|
|
648
|
+
await writeGenerateHints(destDir, finalManifest);
|
|
649
|
+
const stagedSkillPath = join(stagingDir, "generate-skill.md");
|
|
650
|
+
await writePackGenerateSkill(root, finalManifest, stagedSkillPath);
|
|
651
|
+
// skill-hints.md — if the AI wrote one in staging, copy to pack dir
|
|
304
652
|
const skillHintsPath = join(stagingDir, "skill-hints.md");
|
|
305
653
|
if (await pathExists(skillHintsPath)) {
|
|
306
|
-
const hints = await readFile(skillHintsPath, "utf8");
|
|
307
|
-
const cursorSkillPath = join(root, ".cursor/skills/ai-spector-generate/SKILL.md");
|
|
308
|
-
if (await pathExists(cursorSkillPath)) {
|
|
309
|
-
const existing = await readFile(cursorSkillPath, "utf8");
|
|
310
|
-
await writeFile(cursorSkillPath, existing + "\n\n---\n\n## Pack hints: " + packName + "\n\n" + hints);
|
|
311
|
-
console.log(" Updated .cursor/skills/ai-spector-generate/SKILL.md with pack hints.");
|
|
312
|
-
}
|
|
313
654
|
await copyFile(skillHintsPath, join(destDir, "skill-hints.md"));
|
|
314
655
|
}
|
|
315
656
|
// Clear staging
|
|
@@ -320,8 +661,26 @@ async function runTemplateInstall(opts) {
|
|
|
320
661
|
console.log(` Sections : ${stats.sections}`);
|
|
321
662
|
console.log(` Graph : ${stats.graphNodes} nodes, ${stats.graphEdges} edges`);
|
|
322
663
|
console.log();
|
|
664
|
+
const usedAiSkill = existsSync(stagedSkillPath);
|
|
323
665
|
console.log(` Templates → .ai-spector/packs/${packName}/templates/`);
|
|
324
666
|
console.log(` Active → docflow.config.json updated`);
|
|
667
|
+
console.log(` DAG → .ai-spector/.docflow/config/dag.srs.json updated`);
|
|
668
|
+
console.log(` Skill → .cursor/skills/ai-spector-generate-${packName}/SKILL.md ${usedAiSkill ? "(AI-written)" : "(auto-generated from manifest)"}`);
|
|
669
|
+
console.log(` → .claude/skills/ai-spector-generate-${packName}/skill.md`);
|
|
670
|
+
const breakoutDocs = finalManifest.documents.filter((d) => d.perDomain);
|
|
671
|
+
if (breakoutDocs.length > 0) {
|
|
672
|
+
console.log();
|
|
673
|
+
console.log(` ⚠ This pack includes ${breakoutDocs.length} per-domain breakout template(s):`);
|
|
674
|
+
for (const d of breakoutDocs) {
|
|
675
|
+
console.log(` ${d.documentId} (perDomain: ${d.perDomain})`);
|
|
676
|
+
console.log(` output: ${d.outputPattern ?? d.output ?? "(see manifest)"}`);
|
|
677
|
+
}
|
|
678
|
+
console.log();
|
|
679
|
+
console.log(` Breakout files are NOT generated automatically.`);
|
|
680
|
+
console.log(` After "generate SRS", ask your AI IDE:`);
|
|
681
|
+
console.log(` "generate breakout ${breakoutDocs[0]?.perDomain ?? "requirement"} files from the graph"`);
|
|
682
|
+
console.log(` Reference: .ai-spector/packs/${packName}/generate-hints.md`);
|
|
683
|
+
}
|
|
325
684
|
console.log();
|
|
326
685
|
console.log(`Next: ask your AI to "generate <document>" to use the new template.`);
|
|
327
686
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EAEf,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,KAAK,UAAU,iBAAiB,CAAC,GAAY;IAC3C,MAAM,IAAI,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,UAAkB,EAAE,MAAqB;IACjE,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,IAAY,EAAE,MAAqB;IACxE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;QACpC,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;QAChC,UAAU,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,MAAM;KACrD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAY;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,KAAK,UAAU,eAAe,CAAC,IAAsB;IACnD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE/B,gBAAgB;IAChB,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,CAAC;IACtD,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gDAAgD,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,mBAAmB,aAAa,EAAE,CAAC,CAAC;IAElE,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI,CAAC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;QAEpD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAe,YAAY,CAAC,CAAC;YAC5D,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAsB;IAChE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7C,sBAAsB;QACtB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,qBAAqB;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QAC/E,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,SAAS,IAAI,sCAAsC,YAAY,EAAE,CAClE,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,qCAAqC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CACT,SAAS,KAAK,CAAC,SAAS,eAAe,KAAK,CAAC,QAAQ,aAAa;QAChE,GAAG,KAAK,CAAC,UAAU,iBAAiB,KAAK,CAAC,UAAU,SAAS,CAChE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,IAAsB;IACpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnD,IAAI,SAA8B,CAAC;IAEnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,GAAG,MAAM,MAAM,CACzE,mBAAmB,CACpB,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;QACxD,MAAM,EAAE,GAAG,MAAM,2BAA2B,EAAE,CAAC;QAC/C,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QAC/E,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,SAAS,IAAI,sCAAsC,YAAY,EAAE,CAClE,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAe,YAAY,CAAC,CAAC;QAC5D,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GACV,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,WAAW,CAAC;IACd,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,IAAsB;IACvE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAEtE,iCAAiC;IACjC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,+BAA+B,cAAc,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,mCAAmC,cAAc,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAElE,gBAAgB;IAChB,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,OAAO;IACP,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAEpE,yBAAyB;IACzB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAExC,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,aAAa,cAAc,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,iBAAiB,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;QACvE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,QAAQ,GAAG,YAAY,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,KAAK,UAAU,kBAAkB,CAAC,IAIjC;IACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAElE,gCAAgC;IAChC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CACX,0EAA0E,CAC3E,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAwB,cAAc,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CACV,oBAAoB,QAAQ,yDAAyD,CACtF,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CACX,uFAAuF,CACxF,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAU,mBAAmB,CAAC,CAAC;IACjE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,WAA2B,CAAC;IAE7C,sBAAsB;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAEhD,uDAAuD;IACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;IACnF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,+CAA+C,QAAQ,EAAE,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,cAAc;IACd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE7D,6BAA6B;IAC7B,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,iBAAiB;IACjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,QAAQ,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IAEtD,yDAAyD;IACzD,MAAM,aAAa,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC;IAE/D,qBAAqB;IACrB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACpC,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAErC,+CAA+C;IAC/C,IAAI,KAA0D,CAAC;IAC/D,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAmB;QACnB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;QAC/B,CAAC;QACD,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,4EAA4E;IAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC1D,IAAI,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,6CAA6C,CAAC,CAAC;QAClF,IAAI,MAAM,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACzD,MAAM,SAAS,CACb,eAAe,EACf,QAAQ,GAAG,4BAA4B,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CACpE,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB;IAChB,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,8BAA8B,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,UAAU,WAAW,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,mCAAmC,QAAQ,aAAa,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;AACrF,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAsB;IACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,CAAC;QACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CACX,gBAAgB,IAAI,4DAA4D,CACjF,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,KAAK,UAAU,iBAAiB,CAC9B,UAAkB,EAClB,IAA0D;IAE1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAEtD,gCAAgC;IAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,SAAS,CAAC;IAC9D,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS;QAAE,QAAQ,GAAG,SAAS,CAAC;IAE9D,sBAAsB;IACtB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAE3C,yBAAyB;IACzB,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC5E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,qBAAqB;IACrB,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErD,IAAI,QAAsB,CAAC;IAC3B,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,8BAA8B;QAC9B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC5E,MAAM,UAAU,GAAG,MAAM,2BAA2B,EAAE,CAAC;QAEvD,6EAA6E;QAC7E,MAAM,OAAO,GAA8B,EAAE,CAAC;QAE9C,KAAK,MAAM,WAAW,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;YACpD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;YACnE,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBACxC,wEAAwE;gBACxE,2CAA2C;gBAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBACrE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACnE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBACnD,6BAA6B;gBAC7B,MAAM,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1E,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAClC,aAAa,EAAE,CAAC;gBAClB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,QAAQ,GAAG;YACT,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,SAAS;YACrB,kBAAkB,EAAE;gBAClB,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,+BAA+B;aACzC;YACD,eAAe,EAAE;gBACf,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,8BAA8B;gBACvC,KAAK,EAAE,mBAAmB;aAC3B;YACD,SAAS,EAAE,OAAO;SACnB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,cAAc;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,sCAAsC,YAAY,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,MAAM,QAAQ,CAAe,YAAY,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;QAE5E,sCAAsC;QACtC,IAAI,MAAM,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;YACpD,uBAAuB;YACvB,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAmB,EAAE;gBACxD,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;4BACxB,KAAK,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;wBACnD,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BACtC,KAAK,EAAE,CAAC;wBACV,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,aAAa,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;QACpD,CAAC;QAED,iDAAiD;QACjD,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;QAEtD,iCAAiC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACtD,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE5D,gBAAgB;IAChB,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,QAAQ,SAAS,KAAK,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,iBAAiB,aAAa,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAC1D,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,qEAAqE,CAAC,CAAC;IAEtF,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,iGAAiG,CAClG;SACA,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;QACnC,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CACV,sFAAsF,CACvF;SACA,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;QACnC,MAAM,kBAAkB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CACV,0GAA0G,CAC3G;SACA,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,eAAe,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,kFAAkF,CACnF;SACA,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,eAAe,EAAE,kCAAkC,CAAC;SAC3D,MAAM,CAAC,WAAW,EAAE,6CAA6C,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,kBAAkB,CAAC;YACvB,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,IAA0B;YACrC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;QACnC,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CACV,iGAAiG,CAClG;SACA,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACzD,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC;SAChE,MAAM,CAAC,aAAa,EAAE,0CAA0C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,iBAAiB,CAAC,UAAU,EAAE;YAClC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,IAA0B;YACrC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/graph/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkCnD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,kGAAkG;IAClG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAMxF;AAoBD,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,WAAW,CA6Eb;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,SAAS,GACd,OAAO,
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/graph/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkCnD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,kGAAkG;IAClG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAMxF;AAoBD,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,WAAW,CA6Eb;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,SAAS,GACd,OAAO,CAqBT"}
|
package/dist/graph/merge.js
CHANGED
|
@@ -137,6 +137,12 @@ export function skipPatchEdgeIfEndpointsMissing(graph, edge) {
|
|
|
137
137
|
edge.type === "tracesTo") {
|
|
138
138
|
return !from || !to;
|
|
139
139
|
}
|
|
140
|
+
// listedIn: skip gracefully when the list-anchor section doesn't exist in the graph
|
|
141
|
+
// (common with custom packs whose defaultListedIn differs from builtin sections)
|
|
142
|
+
if (edge.type === "listedIn") {
|
|
143
|
+
const to = graph.nodesById.get(edge.to);
|
|
144
|
+
return !from || !to;
|
|
145
|
+
}
|
|
140
146
|
return false;
|
|
141
147
|
}
|
|
142
148
|
function validateSemanticPatch(patch) {
|
package/dist/graph/merge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/graph/merge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/graph/merge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -14,6 +14,10 @@ description: "Generates SRS documents from the knowledge graph using DAG waves.
|
|
|
14
14
|
- `npx ai-spector graph validate` passes
|
|
15
15
|
- Data source analyzed (`npx ai-spector analyze`)
|
|
16
16
|
|
|
17
|
+
> **Scope:** This skill is for the **builtin SRS template** only. If a custom pack is active,
|
|
18
|
+
> use `ai-spector-generate-<packname>` instead (installed when the pack was activated).
|
|
19
|
+
> Check `CLAUDE.md` skill table if unsure which skill to use.
|
|
20
|
+
|
|
17
21
|
## Workflow
|
|
18
22
|
|
|
19
23
|
```
|
|
@@ -53,8 +53,10 @@ When you need to find, query, or understand the project graph:
|
|
|
53
53
|
| Analyze data source / build graph | `ai-spector-graph` |
|
|
54
54
|
| Check impact of changes | `ai-spector-graph` |
|
|
55
55
|
| Import / set up custom template pack | `ai-spector-template-import` |
|
|
56
|
-
|
|
|
57
|
-
|
|
|
56
|
+
| Generate documents (check active pack first) | read `packs.active` → use skill below |
|
|
57
|
+
| → Custom pack active | `ai-spector-generate-<packname>` (installed by `template install`) |
|
|
58
|
+
| → Builtin: Write SRS | `ai-spector-generate-srs` |
|
|
59
|
+
| → Builtin: Write basic design | `ai-spector-generate-basic-design` |
|
|
58
60
|
| HTML prototype | `ai-spector-generate-prototype` |
|
|
59
61
|
| Translation status | `ai-spector-lang-status` |
|
|
60
62
|
| Resolve translations | `ai-spector-resolve-translation` |
|
|
@@ -21,14 +21,14 @@ Agents use this when intent is ambiguous.
|
|
|
21
21
|
| link graph, semantic edges | `ai-spector-graph` | `references/link-graph.md` |
|
|
22
22
|
| sync graph | `ai-spector-graph` | `references/sync-graph.md` |
|
|
23
23
|
| doc summaries | `ai-spector-graph` | `references/summary.md` |
|
|
24
|
-
| SRS, use cases, features
|
|
25
|
-
| screens, APIs, wireframes, basic design | `ai-spector-generate
|
|
24
|
+
| generate docs, write SRS, requirements, use cases, features | `ai-spector-generate` | `SKILL.md` (checks active pack, then routes) |
|
|
25
|
+
| screens, APIs, wireframes, basic design | `ai-spector-generate` | `SKILL.md` (builtin → `ai-spector-generate-basic-design`) |
|
|
26
26
|
| HTML prototype | `ai-spector-generate-prototype` | `references/runbook.md` |
|
|
27
27
|
| set up template pack, import template, custom template, install template | `ai-spector-template-import` | `references/runbook.md` |
|
|
28
28
|
| review comments, C-001, inbox | `ai-spector-resolve-comments` | `references/runbook.md` |
|
|
29
29
|
| translation status, stale langs | `ai-spector-lang-status` | `SKILL.md` |
|
|
30
30
|
| resolve translations, sync JP/VI | `ai-spector-resolve-translation` | `references/runbook.md` |
|
|
31
|
-
| “generate docs” (no layer named) | `ai-spector-generate` |
|
|
31
|
+
| “generate docs” (no layer named) | `ai-spector-generate` | `SKILL.md` |
|
|
32
32
|
|
|
33
33
|
Shared: [ai-spector/references/cli-failures.md](./ai-spector/references/cli-failures.md), [generate-workflow.md](./ai-spector/references/generate-workflow.md), [generate-graph.md](./ai-spector/references/generate-graph.md).
|
|
34
34
|
|
|
@@ -12,10 +12,18 @@ Used by SRS and basic design skills.
|
|
|
12
12
|
Read `.ai-spector/docflow.config.json` at the project root. Check the `languages` array:
|
|
13
13
|
|
|
14
14
|
- **Multiple languages configured** → generate primary language first, then translate to secondary languages from the primary output. Never generate secondary languages independently from the graph — always translate from the finished primary file.
|
|
15
|
-
- **Single language configured** → generate only for that language
|
|
16
|
-
- **`languages` missing** → fall back to reading `.ai-spector/.docflow/config/language.json`. If `documentLanguage` is empty or missing, load [language-picker.md](./language-picker.md) and run the picker.
|
|
15
|
+
- **Single language configured** → generate only for that language.
|
|
16
|
+
- **`languages` missing** → fall back to reading `.ai-spector/.docflow/config/language.json`. If `documentLanguage` is empty or missing, load [language-picker.md](./language-picker.md) and run the picker.
|
|
17
17
|
|
|
18
|
-
Output path rule
|
|
18
|
+
**Output path rule:**
|
|
19
|
+
|
|
20
|
+
| Active pack | Output path |
|
|
21
|
+
|-------------|-------------|
|
|
22
|
+
| Builtin (SRS) | `docs/srs/{lang.code}/{filename}` |
|
|
23
|
+
| Builtin (basic design) | `docs/basic-design/{lang.code}/{filename}` |
|
|
24
|
+
| Custom pack | Path from `dag.srs.json` node (`output` or `outputPattern`). If the path includes `{lang}`, substitute `lang.code`. If it does not include `{lang}`, write to the path as-is (no language subfolder added automatically). |
|
|
25
|
+
|
|
26
|
+
For custom packs: **never rewrite the output path** to add a language subfolder that the manifest didn't define. Respect the path exactly as written in `dag.srs.json`.
|
|
19
27
|
|
|
20
28
|
### Multi-language generation order (mandatory)
|
|
21
29
|
|
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ai-spector-generate
|
|
3
3
|
description: >-
|
|
4
|
-
Routes
|
|
5
|
-
|
|
6
|
-
without
|
|
4
|
+
Routes document-generation requests to the correct skill based on the active template pack.
|
|
5
|
+
Use when the user says "generate docs", "generate requirements", "write SRS", or names a
|
|
6
|
+
document type without specifying a layer. Always checks packs.active before routing.
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# AI Spector — Generate (router)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Step 0 — Check active pack (always first)
|
|
12
|
+
|
|
13
|
+
Read `.ai-spector/docflow.config.json`. Check `packs.active`.
|
|
14
|
+
|
|
15
|
+
| `packs.active` | Action |
|
|
16
|
+
|----------------|--------|
|
|
17
|
+
| Not set or `"builtin"` | Route by layer below |
|
|
18
|
+
| Any custom pack name (e.g. `"msrs"`, `"kaopiz-srs"`) | Switch to skill `ai-spector-generate-<packname>` |
|
|
19
|
+
|
|
20
|
+
For custom packs, the dedicated `ai-spector-generate-<packname>` skill was written when the pack was installed. It loads `generate-hints.md` + the pack DAG and follows `generate-workflow.md`. Use it instead of the builtin layer skills.
|
|
21
|
+
|
|
22
|
+
If the pack-specific skill does not exist yet (pack was installed before this version), run:
|
|
23
|
+
```bash
|
|
24
|
+
npx ai-spector template use <packname>
|
|
25
|
+
```
|
|
26
|
+
This regenerates the skill file.
|
|
27
|
+
|
|
28
|
+
## Route by layer (builtin only)
|
|
29
|
+
|
|
30
|
+
Ask one question or infer from context, then switch skill:
|
|
12
31
|
|
|
13
32
|
| Layer | Skill |
|
|
14
33
|
|-------|-------|
|
|
@@ -10,6 +10,12 @@ Generate SRS markdown **from the traceability graph** in DAG order.
|
|
|
10
10
|
| Graph query, ingest patch, parallelism | [generate-graph.md](../../ai-spector/references/generate-graph.md) |
|
|
11
11
|
| **Graph → template section mapping** | **[srs-context/](./srs-context/) — load the matching section file before writing each doc type** |
|
|
12
12
|
|
|
13
|
+
> **Scope:** This runbook is for the **builtin SRS template** only. If a custom pack is active,
|
|
14
|
+
> the `ai-spector-generate` router will have already dispatched you to the pack-specific skill
|
|
15
|
+
> (`ai-spector-generate-<packname>`). If you are here with a custom pack active, switch to that skill.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
13
19
|
## Intent → DAG hints
|
|
14
20
|
|
|
15
21
|
| User phrase (examples) | Typical DAG / outputs |
|
|
@@ -17,6 +17,12 @@ paths:
|
|
|
17
17
|
|
|
18
18
|
[references/runbook.md](references/runbook.md) — follow all phases in order.
|
|
19
19
|
|
|
20
|
+
## Load when needed
|
|
21
|
+
|
|
22
|
+
| Phase | Load |
|
|
23
|
+
|-------|------|
|
|
24
|
+
| Phase 5 — Write generate skill | [references/skill-outline.md](references/skill-outline.md) |
|
|
25
|
+
|
|
20
26
|
## Natural language
|
|
21
27
|
|
|
22
28
|
"set up template pack", "import my template", "install template", "use my own template",
|
|
@@ -76,7 +76,13 @@ For **each file** in `scan-result.json files[]`:
|
|
|
76
76
|
If the file is a **repeating file** (identified in Q2):
|
|
77
77
|
- `outputPattern` = output-root + vocabulary-slug + `/{nn}-{slug}.md`
|
|
78
78
|
- Example: use cases in `docs/srs/` → `docs/srs/use-cases/uc-{nn}-{slug}.md`
|
|
79
|
-
-
|
|
79
|
+
- If the project uses per-language subfolders (e.g. `docs/srs/en/`), include `{lang}` in the pattern:
|
|
80
|
+
`docs/srs/{lang}/requirements/req-{nn}-{slug}.md`
|
|
81
|
+
- `perDomain` = camelCase of the vocabulary from Q3 (e.g. `"use case"` → `"useCase"`, `"feature"` → `"feature"`, `"epic"` → `"epic"`, `"requirement"` → `"requirement"`)
|
|
82
|
+
|
|
83
|
+
> **Note on perDomain vocabulary:** The builtin generate-SRS skill has deep support for `useCase` and `feature` (it enumerates them automatically). Other values (`requirement`, `epic`, `story`, etc.) are valid and will appear in the DAG, but **breakout file generation for these types is a manual second wave** — after generating the primary document, ask the agent:
|
|
84
|
+
> `"generate breakout <vocabulary> files from the graph"`
|
|
85
|
+
> The agent will read `.ai-spector/packs/<name>/generate-hints.md` for instructions.
|
|
80
86
|
|
|
81
87
|
If the file is a **single/non-repeating file**:
|
|
82
88
|
- `output` = output-root + slugified-filename + `.md`
|
|
@@ -144,7 +150,45 @@ After all files are written, confirm:
|
|
|
144
150
|
|
|
145
151
|
---
|
|
146
152
|
|
|
147
|
-
## Phase 5 — Write
|
|
153
|
+
## Phase 5 — Write the generate skill
|
|
154
|
+
|
|
155
|
+
Load the skill outline reference:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
references/skill-outline.md
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Read it fully, then write `.ai-spector/packs/.staging/generate-skill.md` following the outline.
|
|
162
|
+
|
|
163
|
+
**What you know by this point:**
|
|
164
|
+
- Template structure and placeholders (scan result)
|
|
165
|
+
- Pack name, vocabulary, output location (Phase 1 answers)
|
|
166
|
+
- Manifest with document IDs, outputPattern, perDomain values (Phase 2–3)
|
|
167
|
+
- Refined template files (Phase 4)
|
|
168
|
+
|
|
169
|
+
**Key things to fill in accurately:**
|
|
170
|
+
- `description` field — use the user's actual vocabulary from Phase 1 Q1 and Q3
|
|
171
|
+
- Wave 0 table — derive graph seed IDs by taking each primary documentId from the manifest
|
|
172
|
+
(e.g. `doc.msrs.srs.template` → DAG node `msrs.srs-template`, seed `doc.msrs.srs.template`)
|
|
173
|
+
- Wave 1 table — one row per perDomain document, naming the perDomainKey and outputPattern
|
|
174
|
+
- Domain vocabulary — from Phase 1 Q3
|
|
175
|
+
- Output paths — exactly as specified in the manifest
|
|
176
|
+
- Guardrails — include at least: correct seed IDs, output path convention, breakout wave reminder
|
|
177
|
+
|
|
178
|
+
After writing, show the user a short summary:
|
|
179
|
+
|
|
180
|
+
> "I've written a tailored generate skill for this pack. It includes:
|
|
181
|
+
> - [list Wave 0 documents]
|
|
182
|
+
> - [list Wave 1 breakout types, if any]
|
|
183
|
+
> - [N guardrails]
|
|
184
|
+
>
|
|
185
|
+
> Ready to install?"
|
|
186
|
+
|
|
187
|
+
Wait for confirmation before proceeding to Phase 6.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Phase 6 — Write manifest and install
|
|
148
192
|
|
|
149
193
|
Write the final manifest (incorporating any Phase 3 refinements) to:
|
|
150
194
|
|
|
@@ -164,11 +208,21 @@ Show the CLI output and summarize:
|
|
|
164
208
|
|
|
165
209
|
> "✓ Pack '<name>' installed and active.
|
|
166
210
|
>
|
|
167
|
-
>
|
|
168
|
-
> -
|
|
211
|
+
> A tailored generate skill was written to:
|
|
212
|
+
> - `.cursor/skills/ai-spector-generate-<name>/SKILL.md`
|
|
213
|
+
> - `.claude/skills/ai-spector-generate-<name>/skill.md`
|
|
214
|
+
>
|
|
215
|
+
> **Generation workflow:**
|
|
216
|
+
>
|
|
217
|
+
> Say 'generate <name>' or 'generate <primary doc type>' — the agent will load the skill,
|
|
218
|
+
> read generate-hints.md, and follow the wave structure.
|
|
219
|
+
>
|
|
220
|
+
> Other commands:
|
|
169
221
|
> - 'template list' — see all installed packs
|
|
170
222
|
> - 'template use builtin' — switch back to builtin template"
|
|
171
223
|
|
|
224
|
+
If the install output shows a `⚠ This pack includes ... per-domain breakout template(s)` warning, **explicitly tell the user** which vocabulary they need to generate as a second wave.
|
|
225
|
+
|
|
172
226
|
### If install fails
|
|
173
227
|
|
|
174
228
|
1. Show the full error output
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# Generate Skill Outline
|
|
2
|
+
|
|
3
|
+
Use this outline to write `.ai-spector/packs/.staging/generate-skill.md` during Phase 5 of the template import workflow.
|
|
4
|
+
|
|
5
|
+
The file you write will become `.cursor/skills/ai-spector-generate-<packname>/SKILL.md` — the skill the agent uses every time a user asks to generate documents with this pack.
|
|
6
|
+
|
|
7
|
+
**Quality bar:** this skill should be specific enough that an agent who has never seen the template can generate correct, well-structured documents on the first attempt.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## File format
|
|
12
|
+
|
|
13
|
+
The staged file must be a complete, valid Cursor skill file:
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
---
|
|
17
|
+
name: ai-spector-generate-<packname>
|
|
18
|
+
description: >-
|
|
19
|
+
<one-sentence description — include domain-specific trigger phrases>
|
|
20
|
+
paths:
|
|
21
|
+
- "<output root from manifest>/**"
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Generate — <packname>
|
|
25
|
+
|
|
26
|
+
... sections below ...
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Section 1 — Load at start
|
|
32
|
+
|
|
33
|
+
Always include these four lines exactly:
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
## Load at start
|
|
37
|
+
|
|
38
|
+
1. `.ai-spector/packs/<packname>/generate-hints.md`
|
|
39
|
+
2. `.ai-spector/.docflow/config/dag.srs.json`
|
|
40
|
+
3. `.ai-spector/.docflow/config/dag.srs.graph-seeds.json`
|
|
41
|
+
4. [`generate-workflow.md`](../ai-spector/references/generate-workflow.md)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Section 2 — Pack summary
|
|
47
|
+
|
|
48
|
+
One short paragraph describing what this pack produces and the workflow it follows. Use the vocabulary from the template (e.g. "MADR-style", "IEEE 830", "feature-driven").
|
|
49
|
+
|
|
50
|
+
Example:
|
|
51
|
+
```markdown
|
|
52
|
+
## Pack: kaopiz-srs
|
|
53
|
+
|
|
54
|
+
Generates an IEEE 830 Software Requirements Specification. Primary output is a
|
|
55
|
+
monolithic `srs.md` structured by chapter. Optional breakout use-case detail files
|
|
56
|
+
(`uc-{nn}-{slug}.md`) are generated per use case from the graph.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Section 3 — Trigger phrases
|
|
62
|
+
|
|
63
|
+
List the phrases that should cause Cursor to route to this skill. Be specific — use domain vocabulary the user is likely to say.
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## Trigger phrases
|
|
67
|
+
|
|
68
|
+
"generate SRS", "write requirements", "write use cases", "generate <packname>",
|
|
69
|
+
"generate <primary doc filename>", "write <vocab> detail"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Section 4 — Wave structure
|
|
75
|
+
|
|
76
|
+
Describe each wave in human-readable terms. Copy seed IDs from `dag.srs.graph-seeds.json` (which the CLI will have generated by this point — read it from staging or the installed pack dir if already installed).
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
## Wave structure
|
|
80
|
+
|
|
81
|
+
### Wave 0 — Primary documents (generate first)
|
|
82
|
+
|
|
83
|
+
| DAG node | Graph seed | Output | Purpose |
|
|
84
|
+
|----------|------------|--------|---------|
|
|
85
|
+
| `<packname>.srs-template` | `doc.<packname>.srs.template` | `docs/srs/srs.md` | Monolithic SRS |
|
|
86
|
+
|
|
87
|
+
### Wave 1 — Breakout files (after Wave 0)
|
|
88
|
+
|
|
89
|
+
| Breakout type | Graph node type | Output pattern | Template |
|
|
90
|
+
|---------------|-----------------|----------------|----------|
|
|
91
|
+
| `requirement` | `requirement` | `docs/srs/requirements/req-{nn}-{slug}.md` | `req-template.md` |
|
|
92
|
+
|
|
93
|
+
For Wave 1: query graph for all nodes of the matching type, then generate one file per node.
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Omit Wave 1 section if there are no breakout templates.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Section 5 — Domain vocabulary
|
|
101
|
+
|
|
102
|
+
Fill this in from what the user told you during Phase 1. This helps the agent understand the user's terminology.
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
## Domain vocabulary
|
|
106
|
+
|
|
107
|
+
| Term | Meaning | Graph node type | ID format |
|
|
108
|
+
|------|---------|-----------------|-----------|
|
|
109
|
+
| "use case" | A distinct user goal or interaction | `useCase` | `UC-01`, `UC-02` |
|
|
110
|
+
| "functional requirement" | An atomic system behaviour | `requirement` | `FR-01-01` |
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Omit if the pack has no domain-specific vocabulary (e.g. a simple single-file template).
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Section 6 — Output paths
|
|
118
|
+
|
|
119
|
+
State the output paths clearly. If paths include `{lang}`, note that. If they do NOT include `{lang}`, note that the language subfolder must NOT be added.
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
## Output paths
|
|
123
|
+
|
|
124
|
+
- Primary SRS: `docs/srs/srs.md` (no language subfolder — MSRS is language-neutral)
|
|
125
|
+
- Breakout requirements: `docs/srs/requirements/req-{nn}-{slug}.md`
|
|
126
|
+
|
|
127
|
+
⚠ Do not rewrite these paths to add `/{lang.code}/` — this pack's output is single-language.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Section 7 — Graph seed IDs
|
|
133
|
+
|
|
134
|
+
Copy the actual seed IDs from `dag.srs.graph-seeds.json`. This prevents agents from guessing.
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
## Graph seed IDs
|
|
138
|
+
|
|
139
|
+
Use these IDs when querying the graph (from `dag.srs.graph-seeds.json`):
|
|
140
|
+
|
|
141
|
+
| DAG node | Graph document ID |
|
|
142
|
+
|----------|-------------------|
|
|
143
|
+
| `<packname>.srs-template` | `doc.<packname>.srs.template` |
|
|
144
|
+
|
|
145
|
+
Never use builtin `doc.srs.*` IDs — they do not exist in this pack's graph.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Section 8 — Guardrails
|
|
151
|
+
|
|
152
|
+
List 3–5 pack-specific guardrails. These should address the most likely mistakes an agent would make with this specific template.
|
|
153
|
+
|
|
154
|
+
Common guardrails to include:
|
|
155
|
+
- Wrong graph seed IDs
|
|
156
|
+
- Missing breakout wave
|
|
157
|
+
- Wrong output path convention
|
|
158
|
+
- Template-specific invariants (e.g. "always include the requirement rationale section")
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
## Guardrails
|
|
162
|
+
|
|
163
|
+
- Use seed IDs from `dag.srs.graph-seeds.json`, not builtin `doc.srs.*` IDs
|
|
164
|
+
- Wave 0 must complete before starting Wave 1 breakout files
|
|
165
|
+
- Output to `docs/srs/srs.md` — not `docs/srs/en/srs.md` (no lang subfolder for this pack)
|
|
166
|
+
- Every requirement in the output must have a corresponding `FR-xx-yy` node in the graph
|
|
167
|
+
- After each wave: `npx ai-spector graph validate && npx ai-spector index`
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Section 9 — On CLI failure
|
|
173
|
+
|
|
174
|
+
Always include this line:
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
## On CLI failure
|
|
178
|
+
|
|
179
|
+
Load [`cli-failures.md`](../ai-spector/references/cli-failures.md).
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Quality checklist before writing the file
|
|
185
|
+
|
|
186
|
+
- [ ] `description` field uses vocabulary the user actually said during Phase 1
|
|
187
|
+
- [ ] Wave 0 table has real graph seed IDs (not guessed — from `dag.srs.graph-seeds.json`)
|
|
188
|
+
- [ ] If pack has breakout templates, Wave 1 section is present and correct
|
|
189
|
+
- [ ] Output paths match the manifest exactly
|
|
190
|
+
- [ ] Domain vocabulary table uses the exact terms from Phase 1 Q3
|
|
191
|
+
- [ ] Guardrails address the specific failure modes of this template's structure
|
|
192
|
+
- [ ] No references to builtin `doc.srs.*` IDs
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Example: minimal single-document pack
|
|
197
|
+
|
|
198
|
+
```markdown
|
|
199
|
+
---
|
|
200
|
+
name: ai-spector-generate-arc42
|
|
201
|
+
description: >-
|
|
202
|
+
Generates an arc42 architecture document from the traceability graph. Use when
|
|
203
|
+
the user asks to "generate architecture doc", "write arc42", or "document the system architecture".
|
|
204
|
+
paths:
|
|
205
|
+
- "docs/architecture/**"
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
# Generate — arc42
|
|
209
|
+
|
|
210
|
+
## Load at start
|
|
211
|
+
|
|
212
|
+
1. `.ai-spector/packs/arc42/generate-hints.md`
|
|
213
|
+
2. `.ai-spector/.docflow/config/dag.srs.json`
|
|
214
|
+
3. `.ai-spector/.docflow/config/dag.srs.graph-seeds.json`
|
|
215
|
+
4. [`generate-workflow.md`](../ai-spector/references/generate-workflow.md)
|
|
216
|
+
|
|
217
|
+
## Pack: arc42
|
|
218
|
+
|
|
219
|
+
Generates a single `architecture.md` following the arc42 template (12 sections).
|
|
220
|
+
Query the graph for context nodes, then fill each section from the template.
|
|
221
|
+
|
|
222
|
+
## Trigger phrases
|
|
223
|
+
|
|
224
|
+
"generate architecture", "write arc42", "document system design", "generate arc42"
|
|
225
|
+
|
|
226
|
+
## Wave structure
|
|
227
|
+
|
|
228
|
+
### Wave 0 — Primary document
|
|
229
|
+
|
|
230
|
+
| DAG node | Graph seed | Output |
|
|
231
|
+
|----------|------------|--------|
|
|
232
|
+
| `arc42.architecture` | `doc.arc42.architecture` | `docs/architecture/architecture.md` |
|
|
233
|
+
|
|
234
|
+
## Output paths
|
|
235
|
+
|
|
236
|
+
- Architecture doc: `docs/architecture/architecture.md`
|
|
237
|
+
|
|
238
|
+
## Graph seed IDs
|
|
239
|
+
|
|
240
|
+
| DAG node | Graph document ID |
|
|
241
|
+
|----------|-------------------|
|
|
242
|
+
| `arc42.architecture` | `doc.arc42.architecture` |
|
|
243
|
+
|
|
244
|
+
## Guardrails
|
|
245
|
+
|
|
246
|
+
- Never split the output into multiple files — arc42 is a single document
|
|
247
|
+
- Use seed `doc.arc42.architecture`, not builtin `doc.srs.*` IDs
|
|
248
|
+
- After writing: `npx ai-spector graph validate && npx ai-spector index`
|
|
249
|
+
|
|
250
|
+
## On CLI failure
|
|
251
|
+
|
|
252
|
+
Load [`cli-failures.md`](../ai-spector/references/cli-failures.md).
|
|
253
|
+
```
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"outputPattern": { "type": "string" },
|
|
67
67
|
"perDomain": {
|
|
68
68
|
"type": "string",
|
|
69
|
-
"
|
|
69
|
+
"description": "Domain category for this template document. Builtin values: useCase, feature, apiDetail, screenDetail. Custom packs may use any string."
|
|
70
70
|
},
|
|
71
71
|
"documentId": { "type": "string" },
|
|
72
72
|
"heading": { "type": "string" },
|