Merge branch 'main' into main
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env node
|
||||
// The OpenClaw skill package (.openclaw/skills/) is generated from skills/ by
|
||||
// scripts/build-openclaw-skills.js. These tests fail if the committed copies are
|
||||
// stale (ruleset drift) or if a description breaks OpenClaw's one-line <160 rule.
|
||||
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('fs');
|
||||
const { NAMES, render, outPath, sourceBody, DESCRIPTIONS } = require('../scripts/build-openclaw-skills');
|
||||
|
||||
for (const name of NAMES) {
|
||||
test(`${name}: committed OpenClaw skill matches the generator`, () => {
|
||||
const onDisk = fs.readFileSync(outPath(name), 'utf8').replace(/\r\n/g, '\n');
|
||||
assert.equal(onDisk, render(name), 'stale — run: node scripts/build-openclaw-skills.js');
|
||||
});
|
||||
|
||||
test(`${name}: body is the canonical skills/${name} body, verbatim`, () => {
|
||||
const onDisk = fs.readFileSync(outPath(name), 'utf8').replace(/\r\n/g, '\n');
|
||||
assert.ok(onDisk.endsWith(sourceBody(name)), 'body drifted from skills/' + name);
|
||||
});
|
||||
|
||||
test(`${name}: description is one line under 160 chars`, () => {
|
||||
const d = DESCRIPTIONS[name];
|
||||
assert.ok(d.length <= 160 && !d.includes('\n'), 'description too long or multiline');
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user