docs: explain skills adoption measurement and collection
Build and publish Eldorado documentation / build (pull_request) Successful in 39s

This commit is contained in:
jarvis-at-skic committed 2026-10-05 18:33:40 +00:00
1 parent 8bfcb3f81d
commit 8dd54f0ab6
12 files changed
+577 -398

No files matched your search

+7 -6
View File
@@ -10,15 +10,15 @@ test('every strategy page leads with a compact diagram story and closes its refe
const narrative = page.split('<div className="strategy-content">')[1].replace(/<details>[\s\S]*?<\/details>/g, '');
assert.equal((narrative.match(/<ArchifyDiagram /g) || []).length, 1, id);
assert(narrative.includes(' story />'), id);
assert(page.indexOf(' story />') < page.indexOf('<details>'), id);
assert(!page.includes('<details>') || page.indexOf(' story />') < page.indexOf('<details>'), id);
assert(!/<details\s+open/.test(page), id);
assert.equal((page.match(/<details>/g) || []).length, (page.match(/<\/details>/g) || []).length, id);
assert.equal((narrative.match(/^## /gm) || []).length, 1, id);
assert.equal((narrative.match(/^## /gm) || []).length, id === 'measurement' ? 4 : 1, id);
assert((narrative.match(/^- /gm) || []).length <= 3, id);
assert(narrative.includes('**Next:**'), id);
assert(!narrative.includes('| ---'), id);
const words = narrative.replace(/<[^>]*>/g, '').trim().split(/\s+/).length;
assert(words <= 200, `${id}: ${words} default narrative words`);
assert(words <= (id === 'measurement' ? 1100 : 200), `${id}: ${words} default narrative words`);
}
});
@@ -36,9 +36,10 @@ test('mobile story diagrams preserve the same nodes and directed relationships',
}
});
test('all sixteen exact KPI formulas remain reachable in the closed reference', () => {
const page = read('docs/strategy/measurement.mdx');
const contracts = page.split('<summary>All 16 KPI contracts')[1].split('</details>')[0];
test('all sixteen exact KPI formulas remain reachable in the linked reference', () => {
assert(read('docs/strategy/measurement.mdx').includes('./reference/measurement-contracts.mdx'));
const page = read('docs/strategy/reference/measurement-contracts.mdx');
const contracts = page.split('## Metric contracts')[1].split('## Run the synthetic')[0];
assert.equal((contracts.match(/^### /gm) || []).length, 16);
for (const metric of model.kpis) {
const section = contracts.split(`### ${metric.name}\n`)[1]?.split('\n### ')[0];