@metasession.co/devaudit-cli 0.1.33 → 0.1.35
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/index.js +31 -14
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/scripts/upload-evidence.sh +37 -18
- package/sdlc/files/_common/skills/e2e-test-engineer/SKILL.md +20 -3
- package/sdlc/files/_common/skills/e2e-test-engineer/references/evidence-shot-core.ts +62 -0
- package/sdlc/files/_common/skills/e2e-test-engineer/references/evidence.ts +73 -19
- package/sdlc/files/ci/ci.yml.template +54 -5
package/dist/index.js
CHANGED
|
@@ -55,7 +55,7 @@ function emitJsonResult(payload) {
|
|
|
55
55
|
|
|
56
56
|
// package.json
|
|
57
57
|
var package_default = {
|
|
58
|
-
version: "0.1.
|
|
58
|
+
version: "0.1.35"};
|
|
59
59
|
|
|
60
60
|
// src/lib/version.ts
|
|
61
61
|
var CLI_VERSION = package_default.version;
|
|
@@ -1787,26 +1787,37 @@ async function syncSkills(ctx) {
|
|
|
1787
1787
|
}
|
|
1788
1788
|
return { name: "Claude Code skills", filesSynced: count, message: `${count} synced to .claude/skills/` };
|
|
1789
1789
|
}
|
|
1790
|
+
var HELPER_FILES = ["evidence.ts", "evidence-shot-core.ts"];
|
|
1790
1791
|
async function syncEvidenceHelper(ctx) {
|
|
1791
1792
|
if (ctx.stack !== "node") {
|
|
1792
1793
|
return { name: "E2E evidence helper", filesSynced: 0, skipped: true };
|
|
1793
1794
|
}
|
|
1794
|
-
const
|
|
1795
|
+
const srcDir = join(
|
|
1795
1796
|
ctx.installerRoot,
|
|
1796
1797
|
"sdlc",
|
|
1797
1798
|
"files",
|
|
1798
1799
|
"_common",
|
|
1799
1800
|
"skills",
|
|
1800
1801
|
"e2e-test-engineer",
|
|
1801
|
-
"references"
|
|
1802
|
-
"evidence.ts"
|
|
1802
|
+
"references"
|
|
1803
1803
|
);
|
|
1804
|
-
|
|
1805
|
-
|
|
1804
|
+
let copied = 0;
|
|
1805
|
+
const missing = [];
|
|
1806
|
+
for (const fname of HELPER_FILES) {
|
|
1807
|
+
const src = join(srcDir, fname);
|
|
1808
|
+
if (!await exists(src)) {
|
|
1809
|
+
missing.push(fname);
|
|
1810
|
+
continue;
|
|
1811
|
+
}
|
|
1812
|
+
const dst = join(ctx.projectPath, "e2e", "helpers", fname);
|
|
1813
|
+
await copyFile(src, dst);
|
|
1814
|
+
copied += 1;
|
|
1806
1815
|
}
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1816
|
+
if (copied === 0) {
|
|
1817
|
+
return { name: "E2E evidence helper", filesSynced: 0, skipped: true, message: "no sources found" };
|
|
1818
|
+
}
|
|
1819
|
+
const message = missing.length > 0 ? `synced ${copied} to e2e/helpers/ (missing: ${missing.join(", ")})` : `synced to e2e/helpers/ (${HELPER_FILES.join(" + ")})`;
|
|
1820
|
+
return { name: "E2E evidence helper", filesSynced: copied, message };
|
|
1810
1821
|
}
|
|
1811
1822
|
|
|
1812
1823
|
// src/lib/templates.ts
|
|
@@ -1820,14 +1831,20 @@ function substituteTokens(content, tokens) {
|
|
|
1820
1831
|
}
|
|
1821
1832
|
function substituteBlocks(content, blocks) {
|
|
1822
1833
|
if (Object.keys(blocks).length === 0) return content;
|
|
1823
|
-
|
|
1824
|
-
|
|
1834
|
+
const out = [];
|
|
1835
|
+
for (const line of content.split("\n")) {
|
|
1836
|
+
let matched = false;
|
|
1825
1837
|
for (const [key, replacement] of Object.entries(blocks)) {
|
|
1826
1838
|
const needle = `{{${key}}}`;
|
|
1827
|
-
if (line.includes(needle))
|
|
1839
|
+
if (line.includes(needle)) {
|
|
1840
|
+
matched = true;
|
|
1841
|
+
if (replacement.length > 0) out.push(replacement);
|
|
1842
|
+
break;
|
|
1843
|
+
}
|
|
1828
1844
|
}
|
|
1829
|
-
|
|
1830
|
-
}
|
|
1845
|
+
if (!matched) out.push(line);
|
|
1846
|
+
}
|
|
1847
|
+
return out.join("\n");
|
|
1831
1848
|
}
|
|
1832
1849
|
function stripServicesBlock(content) {
|
|
1833
1850
|
const lines = content.split("\n");
|