Severity: medium — SKILL.md is the agent-facing contract.
skill/SKILL.md:261-281 documents a flat payload: filesProcessed, operationsSucceeded, operationsFailed,
bytesBefore, bytesAfter, bytesSaved, percentReduction, lastRunAt, breakdown.
Actual output (stats.ts:70-83 + db.ts:593-604) is nested:
{ site, url, stats: { siteName, filesTouched, totalOps, succeeded, failed, skipped, bytesSaved, bytesIn, lastRanAt, byOperation }, overview, formats, recent, history }.
Every documented key except site is wrong; bytesSaved exists but at the wrong depth; percentReduction,
bytesAfter and breakdown don't exist at all, and lastRanAt is epoch ms rather than the documented ISO string.
The stats MCP tool and the localpress://stats resource return the same payload verbatim, so an agent following
SKILL.md reads undefined everywhere.
Extracted from a repo audit performed 2026-07 (the audit doc it came from was proposed via an unmerged docs PR).
Severity: medium — SKILL.md is the agent-facing contract.
skill/SKILL.md:261-281documents a flat payload:filesProcessed,operationsSucceeded,operationsFailed,bytesBefore,bytesAfter,bytesSaved,percentReduction,lastRunAt,breakdown.Actual output (
stats.ts:70-83+db.ts:593-604) is nested:{ site, url, stats: { siteName, filesTouched, totalOps, succeeded, failed, skipped, bytesSaved, bytesIn, lastRanAt, byOperation }, overview, formats, recent, history }.Every documented key except
siteis wrong;bytesSavedexists but at the wrong depth;percentReduction,bytesAfterandbreakdowndon't exist at all, andlastRanAtis epoch ms rather than the documented ISO string.The
statsMCP tool and thelocalpress://statsresource return the same payload verbatim, so an agent followingSKILL.md reads
undefinedeverywhere.Extracted from a repo audit performed 2026-07 (the audit doc it came from was proposed via an unmerged docs PR).