skillwiki 0.10.8 → 0.10.9
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/cli.js
CHANGED
|
@@ -2003,15 +2003,15 @@ async function patchFrontmatterStatus(filePath, extraBody) {
|
|
|
2003
2003
|
let text;
|
|
2004
2004
|
try {
|
|
2005
2005
|
text = readFileSync10(filePath, "utf8");
|
|
2006
|
-
} catch {
|
|
2007
|
-
return;
|
|
2006
|
+
} catch (error) {
|
|
2007
|
+
return err("WRITE_FAILED", { path: filePath, stage: "read", message: String(error) });
|
|
2008
2008
|
}
|
|
2009
2009
|
const split = splitFrontmatter(text);
|
|
2010
2010
|
if (!split.ok || !split.data.rawFrontmatter) {
|
|
2011
2011
|
if (extraBody) {
|
|
2012
|
-
|
|
2012
|
+
return atomicWriteText(filePath, extraBody(text));
|
|
2013
2013
|
}
|
|
2014
|
-
return;
|
|
2014
|
+
return ok({ changed: false, existed: true });
|
|
2015
2015
|
}
|
|
2016
2016
|
let fm = split.data.rawFrontmatter;
|
|
2017
2017
|
if (/^status:\s*/m.test(fm)) {
|
|
@@ -2026,13 +2026,13 @@ ${fm}`;
|
|
|
2026
2026
|
}
|
|
2027
2027
|
let body = split.data.body;
|
|
2028
2028
|
if (extraBody) body = extraBody(body);
|
|
2029
|
-
|
|
2029
|
+
return atomicWriteText(filePath, `---
|
|
2030
2030
|
${fm}
|
|
2031
2031
|
---
|
|
2032
2032
|
${body}`);
|
|
2033
2033
|
}
|
|
2034
2034
|
async function setStatusCompleted(filePath) {
|
|
2035
|
-
|
|
2035
|
+
return patchFrontmatterStatus(filePath);
|
|
2036
2036
|
}
|
|
2037
2037
|
async function writeEvidence(workDir, opId, phases) {
|
|
2038
2038
|
const path = join15(workDir, "evidence.md");
|
|
@@ -2050,12 +2050,18 @@ async function writeEvidence(workDir, opId, phases) {
|
|
|
2050
2050
|
`- completed_at: ${(/* @__PURE__ */ new Date()).toISOString()}`,
|
|
2051
2051
|
""
|
|
2052
2052
|
].join("\n");
|
|
2053
|
-
|
|
2053
|
+
return atomicWriteText(path, body);
|
|
2054
2054
|
}
|
|
2055
2055
|
async function markPlanComplete(workDir) {
|
|
2056
2056
|
const planPath = join15(workDir, "plan.md");
|
|
2057
|
-
if (!existsSync4(planPath)) return;
|
|
2058
|
-
|
|
2057
|
+
if (!existsSync4(planPath)) return ok(null);
|
|
2058
|
+
return patchFrontmatterStatus(planPath, (body) => body.replace(/- \[ \]/g, "- [x]"));
|
|
2059
|
+
}
|
|
2060
|
+
function writeFailure(stage, result) {
|
|
2061
|
+
return {
|
|
2062
|
+
exitCode: ExitCode.WRITE_FAILED,
|
|
2063
|
+
result: result.ok ? err("WRITE_FAILED", { stage, message: "unexpected ok" }) : result
|
|
2064
|
+
};
|
|
2059
2065
|
}
|
|
2060
2066
|
async function runWorkComplete(input) {
|
|
2061
2067
|
const workDirResult = resolveWorkDir(input.vault, input.workItem);
|
|
@@ -2134,9 +2140,12 @@ async function runWorkComplete(input) {
|
|
|
2134
2140
|
advance("evidence");
|
|
2135
2141
|
}
|
|
2136
2142
|
if (phaseIndex(phase) <= phaseIndex("evidence")) {
|
|
2137
|
-
await setStatusCompleted(join15(workDir, "spec.md"));
|
|
2138
|
-
|
|
2139
|
-
await
|
|
2143
|
+
const statusWrite = await setStatusCompleted(join15(workDir, "spec.md"));
|
|
2144
|
+
if (!statusWrite.ok) return writeFailure("evidence-spec", statusWrite);
|
|
2145
|
+
const planWrite = await markPlanComplete(workDir);
|
|
2146
|
+
if (!planWrite.ok) return writeFailure("evidence-plan", planWrite);
|
|
2147
|
+
const evidenceWrite = await writeEvidence(workDir, opId, completedPhases);
|
|
2148
|
+
if (!evidenceWrite.ok) return writeFailure("evidence", evidenceWrite);
|
|
2140
2149
|
if (input.failAfter === "evidence") {
|
|
2141
2150
|
throw new Error("simulated failure after evidence");
|
|
2142
2151
|
}
|
|
@@ -2166,7 +2175,8 @@ async function runWorkComplete(input) {
|
|
|
2166
2175
|
}
|
|
2167
2176
|
if (phaseIndex(phase) <= phaseIndex("projection")) {
|
|
2168
2177
|
if (!existsSync4(join15(workDir, "evidence.md"))) {
|
|
2169
|
-
await writeEvidence(workDir, opId, completedPhases);
|
|
2178
|
+
const evidenceWrite = await writeEvidence(workDir, opId, completedPhases);
|
|
2179
|
+
if (!evidenceWrite.ok) return writeFailure("projection-evidence", evidenceWrite);
|
|
2170
2180
|
}
|
|
2171
2181
|
const finalCheck = await runWorkValidate({
|
|
2172
2182
|
vault: input.vault,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillwiki",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.9",
|
|
4
4
|
"skills": "./",
|
|
5
5
|
"description": "Project-aware Karpathy-style knowledge base for Claude Code: 19 prompt-only skills (wiki-*, proj-*, using-skillwiki) backed by the deterministic `skillwiki` CLI.",
|
|
6
6
|
"author": {
|