From a209eeb0bdf3b0a1183fb2967a5b8f519b0db82a Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Thu, 30 Jul 2026 09:06:27 -0700 Subject: [PATCH] Fix DESIGN.md frontmatter coverage AI assistance: Codex reproduced the issue, implemented the focused fix, and added regression coverage. --- skill/scripts/lib/staleness-deep.mjs | 2 +- tests/doctor.test.mjs | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/skill/scripts/lib/staleness-deep.mjs b/skill/scripts/lib/staleness-deep.mjs index bae03bc98..ffc3987e7 100644 --- a/skill/scripts/lib/staleness-deep.mjs +++ b/skill/scripts/lib/staleness-deep.mjs @@ -126,7 +126,7 @@ export function checkDesignCoverage({ design, designPath, parseDesignMd }) { return []; } const missing = ['colors', 'typography', 'components'] - .filter((section) => !model[section]); + .filter((section) => !model[section] && !model.frontmatter?.[section]); if (!missing.length) return []; return [finding({ id: 'design-md-coverage', diff --git a/tests/doctor.test.mjs b/tests/doctor.test.mjs index 2e120e4c2..b0c55cdd0 100644 --- a/tests/doctor.test.mjs +++ b/tests/doctor.test.mjs @@ -172,6 +172,28 @@ describe('checkDesignCoverage', () => { assert.deepEqual(checkDesignCoverage({ design, designPath: 'DESIGN.md', parseDesignMd }), []); }); + it('counts machine-readable frontmatter as section coverage', () => { + const design = [ + '---', + 'name: X', + 'colors:', + ' ink: "#111111"', + 'typography:', + ' body:', + ' fontFamily: Inter', + 'components:', + ' button:', + ' backgroundColor: "{colors.ink}"', + '---', + '', + '# Design System: X', + '', + 'See the canonical source for prose guidance.', + '', + ].join('\n'); + assert.deepEqual(checkDesignCoverage({ design, designPath: 'DESIGN.md', parseDesignMd }), []); + }); + it('reports nothing without a DESIGN.md', () => { assert.deepEqual(checkDesignCoverage({ design: null, parseDesignMd }), []); });