skillwiki 0.10.63 → 0.10.64

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.
@@ -8,7 +8,7 @@ import {
8
8
  ok,
9
9
  scanSensitiveContent,
10
10
  scanVault
11
- } from "./chunk-SI6DDQIV.js";
11
+ } from "./chunk-HJ4ALQG6.js";
12
12
 
13
13
  // src/utils/atomic-write.ts
14
14
  import { randomBytes } from "crypto";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  atomicWriteText,
4
4
  buildRootIndexUniverse
5
- } from "./chunk-EFPIN7DQ.js";
5
+ } from "./chunk-BPJ5KWIT.js";
6
6
  import {
7
7
  authorizeRawOperation,
8
8
  buildSourceReferenceIndex,
@@ -22,7 +22,7 @@ import {
22
22
  resolveExistingRegularFileInsideVault,
23
23
  stripFencedBlocks,
24
24
  writeLogEvent
25
- } from "./chunk-Q66UASXZ.js";
25
+ } from "./chunk-OMO45AHI.js";
26
26
  import {
27
27
  ExitCode,
28
28
  FleetManifestSchema,
@@ -41,7 +41,7 @@ import {
41
41
  scanVault,
42
42
  splitFrontmatter,
43
43
  vaultIoConcurrency
44
- } from "./chunk-SI6DDQIV.js";
44
+ } from "./chunk-HJ4ALQG6.js";
45
45
 
46
46
  // src/utils/managed-write-preflight.ts
47
47
  import { existsSync as existsSync11 } from "fs";
@@ -176,6 +176,16 @@ var RawSourceSchema = z.object({
176
176
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: "project and kind are required when work_item is set" });
177
177
  }
178
178
  });
179
+ var PostReleaseVerificationSchema = z.object({
180
+ posture: z.literal("opt-in"),
181
+ triggers: z.array(z.enum([
182
+ "matching-regression-report",
183
+ "explicit-user-request",
184
+ "relevant-code-or-release-change"
185
+ ])).min(1),
186
+ last_proven: isoDate.optional(),
187
+ evidence: z.array(z.string().min(1)).optional()
188
+ }).strict();
179
189
  var WorkItemSchema = z.object({
180
190
  title: z.string().min(1),
181
191
  aliases: z.array(z.string()).optional(),
@@ -190,11 +200,19 @@ var WorkItemSchema = z.object({
190
200
  owner: wikilink.optional(),
191
201
  parent: wikilink.optional(),
192
202
  related: z.array(wikilink).optional(),
193
- sources: z.array(z.string()).optional()
203
+ sources: z.array(z.string()).optional(),
204
+ post_release_verification: PostReleaseVerificationSchema.optional()
194
205
  }).superRefine((v, ctx) => {
195
206
  if (v.status === "completed" && !v.completed) {
196
207
  ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["completed"], message: "required when status is completed" });
197
208
  }
209
+ if (v.post_release_verification && v.status !== "completed") {
210
+ ctx.addIssue({
211
+ code: z.ZodIssueCode.custom,
212
+ path: ["post_release_verification"],
213
+ message: "post-release verification requires status completed"
214
+ });
215
+ }
198
216
  });
199
217
  var CompoundSchema = z.object({
200
218
  title: z.string().min(1),
@@ -3,11 +3,11 @@ import {
3
3
  ROOT_INDEX_SECTION_ORDER,
4
4
  atomicWriteText,
5
5
  buildRootIndexUniverse
6
- } from "./chunk-EFPIN7DQ.js";
6
+ } from "./chunk-BPJ5KWIT.js";
7
7
  import {
8
8
  err,
9
9
  ok
10
- } from "./chunk-SI6DDQIV.js";
10
+ } from "./chunk-HJ4ALQG6.js";
11
11
 
12
12
  // src/utils/index-projection.ts
13
13
  import { readFile } from "fs/promises";
@@ -8,7 +8,7 @@ import {
8
8
  readLogEvents,
9
9
  resolveExistingRegularFileInsideVault,
10
10
  writeLogEvent
11
- } from "./chunk-Q66UASXZ.js";
11
+ } from "./chunk-OMO45AHI.js";
12
12
  import {
13
13
  ExitCode,
14
14
  RawSourceSchema,
@@ -19,7 +19,7 @@ import {
19
19
  scanSensitiveContent,
20
20
  scanVault,
21
21
  splitFrontmatter
22
- } from "./chunk-SI6DDQIV.js";
22
+ } from "./chunk-HJ4ALQG6.js";
23
23
 
24
24
  // src/commands/sources.ts
25
25
  import { readFile as readFile4 } from "fs/promises";
@@ -6,7 +6,7 @@ import {
6
6
  readPage,
7
7
  scanSensitiveContent,
8
8
  splitFrontmatter
9
- } from "./chunk-SI6DDQIV.js";
9
+ } from "./chunk-HJ4ALQG6.js";
10
10
 
11
11
  // src/utils/vault-path-safety.ts
12
12
  import { lstatSync, realpathSync } from "fs";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  renderRootIndex,
8
8
  writeRootIndexProjection
9
- } from "./chunk-MDLROHRP.js";
9
+ } from "./chunk-KFEOMMWK.js";
10
10
  import {
11
11
  CONFIG_KEYS,
12
12
  VAULT_HYGIENE_GENERATED_COMMIT_PATHS,
@@ -40,11 +40,11 @@ import {
40
40
  snapshotterAliasForLocalHost,
41
41
  toUndirectedWeighted,
42
42
  writeDotenv
43
- } from "./chunk-X45H2KXI.js";
43
+ } from "./chunk-CKDF4DWU.js";
44
44
  import {
45
45
  atomicWriteText,
46
46
  prepareTypedPage
47
- } from "./chunk-EFPIN7DQ.js";
47
+ } from "./chunk-BPJ5KWIT.js";
48
48
  import {
49
49
  applySourceCompileClaim,
50
50
  applySourceCompilePublished,
@@ -57,11 +57,11 @@ import {
57
57
  planSourceCompileRelease,
58
58
  planSourceReview,
59
59
  runSourcesPending
60
- } from "./chunk-S663QZQR.js";
60
+ } from "./chunk-NPTIYO2S.js";
61
61
  import {
62
62
  eventPathFor,
63
63
  writeLogEvent
64
- } from "./chunk-Q66UASXZ.js";
64
+ } from "./chunk-OMO45AHI.js";
65
65
  import {
66
66
  CompoundSchema,
67
67
  ExitCode,
@@ -82,7 +82,7 @@ import {
82
82
  scanVault,
83
83
  splitFrontmatter,
84
84
  systemdPropertyFor
85
- } from "./chunk-SI6DDQIV.js";
85
+ } from "./chunk-HJ4ALQG6.js";
86
86
 
87
87
  // src/commands/log-append.ts
88
88
  import { readFile, stat } from "fs/promises";
@@ -6096,7 +6096,7 @@ async function runQuery(input) {
6096
6096
  }
6097
6097
  let pendingSources;
6098
6098
  if (input.includePending) {
6099
- const { runSourcesPending: runSourcesPending2 } = await import("./sources-LP76JPY5.js");
6099
+ const { runSourcesPending: runSourcesPending2 } = await import("./sources-C4LUWNET.js");
6100
6100
  const pending = await runSourcesPending2({
6101
6101
  vault: input.vault,
6102
6102
  match: input.text,
package/dist/cli.js CHANGED
@@ -50,7 +50,7 @@ import {
50
50
  snapshotterHealthChecks,
51
51
  upsertIndexEntry,
52
52
  vectorIndexStatus
53
- } from "./chunk-4JZD2IAC.js";
53
+ } from "./chunk-SNHTWLGF.js";
54
54
  import {
55
55
  normalizeDistTag,
56
56
  readCache,
@@ -63,7 +63,7 @@ import {
63
63
  UNMANAGED_START,
64
64
  renderRootIndex,
65
65
  writeRootIndexProjection
66
- } from "./chunk-MDLROHRP.js";
66
+ } from "./chunk-KFEOMMWK.js";
67
67
  import {
68
68
  FLEET_REL_PATH,
69
69
  REDACTED_MALFORMED_REFERENCE,
@@ -151,12 +151,12 @@ import {
151
151
  supersedeStaleReviewRequiredJournals,
152
152
  taxonomyCommentForPage,
153
153
  writeDotenv
154
- } from "./chunk-X45H2KXI.js";
154
+ } from "./chunk-CKDF4DWU.js";
155
155
  import {
156
156
  assertTargetInsideVault,
157
157
  atomicWriteText,
158
158
  prepareTypedPage
159
- } from "./chunk-EFPIN7DQ.js";
159
+ } from "./chunk-BPJ5KWIT.js";
160
160
  import {
161
161
  applySourceDisposition,
162
162
  decodeSourceActionApproval,
@@ -164,7 +164,7 @@ import {
164
164
  inventorySources,
165
165
  planSourceDisposition,
166
166
  runSourcesPending
167
- } from "./chunk-S663QZQR.js";
167
+ } from "./chunk-NPTIYO2S.js";
168
168
  import {
169
169
  authorizeRawOperation,
170
170
  buildSourceReferenceIndex,
@@ -181,7 +181,7 @@ import {
181
181
  resolveExistingRegularFileInsideVault,
182
182
  validateLogEvent,
183
183
  writeLogEvent
184
- } from "./chunk-Q66UASXZ.js";
184
+ } from "./chunk-OMO45AHI.js";
185
185
  import {
186
186
  ExitCode,
187
187
  MetaSchema,
@@ -202,7 +202,7 @@ import {
202
202
  scanVault,
203
203
  splitFrontmatter,
204
204
  vaultIoConcurrency
205
- } from "./chunk-SI6DDQIV.js";
205
+ } from "./chunk-HJ4ALQG6.js";
206
206
 
207
207
  // src/cli.ts
208
208
  import { join as join42 } from "path";
@@ -3767,7 +3767,7 @@ ${fmRewritten}
3767
3767
  }
3768
3768
  let indexUpdated = false;
3769
3769
  if (!isRaw) {
3770
- const { renderRootIndex: renderRootIndex2, writeRootIndexProjection: writeRootIndexProjection2 } = await import("./index-projection-LUXJDMUG.js");
3770
+ const { renderRootIndex: renderRootIndex2, writeRootIndexProjection: writeRootIndexProjection2 } = await import("./index-projection-J5IV7NH3.js");
3771
3771
  const before = await readFile7(join19(input.vault, "index.md"), "utf8").catch(() => "");
3772
3772
  const fullTarget = relPath.replace(/\.md$/, "");
3773
3773
  const bare = fullTarget.split("/").pop() ?? fullTarget;
@@ -3890,7 +3890,7 @@ async function runRemove(input) {
3890
3890
  if (relPath.endsWith(".md") && !relPath.startsWith("raw/")) {
3891
3891
  const { readFile: readFile22 } = await import("fs/promises");
3892
3892
  const { join: pathJoin } = await import("path");
3893
- const { renderRootIndex: renderRootIndex2, writeRootIndexProjection: writeRootIndexProjection2 } = await import("./index-projection-LUXJDMUG.js");
3893
+ const { renderRootIndex: renderRootIndex2, writeRootIndexProjection: writeRootIndexProjection2 } = await import("./index-projection-J5IV7NH3.js");
3894
3894
  const before = await readFile22(pathJoin(input.vault, "index.md"), "utf8").catch(() => "");
3895
3895
  const fullTarget = relPath.replace(/\.md$/, "");
3896
3896
  const bare = fullTarget.split("/").pop() ?? fullTarget;
@@ -10410,7 +10410,7 @@ async function emitManagedVaultWrite(vault, command, mutate, opts) {
10410
10410
  if (dirty) {
10411
10411
  return emit(dirty, void 0, { postCommit: false });
10412
10412
  }
10413
- const { runManagedWriteTransaction: runManagedWriteTransaction2 } = await import("./managed-write-preflight-GQN7ZW7O.js");
10413
+ const { runManagedWriteTransaction: runManagedWriteTransaction2 } = await import("./managed-write-preflight-2MMVUXD3.js");
10414
10414
  const run = await runManagedWriteTransaction2({
10415
10415
  vault,
10416
10416
  command,
@@ -4,9 +4,9 @@ import {
4
4
  UNMANAGED_START,
5
5
  renderRootIndex,
6
6
  writeRootIndexProjection
7
- } from "./chunk-MDLROHRP.js";
8
- import "./chunk-EFPIN7DQ.js";
9
- import "./chunk-SI6DDQIV.js";
7
+ } from "./chunk-KFEOMMWK.js";
8
+ import "./chunk-BPJ5KWIT.js";
9
+ import "./chunk-HJ4ALQG6.js";
10
10
  export {
11
11
  UNMANAGED_END,
12
12
  UNMANAGED_START,
@@ -6,10 +6,10 @@ import {
6
6
  runManagedWritePeerGate,
7
7
  runManagedWritePreflight,
8
8
  runManagedWriteTransaction
9
- } from "./chunk-X45H2KXI.js";
10
- import "./chunk-EFPIN7DQ.js";
11
- import "./chunk-Q66UASXZ.js";
12
- import "./chunk-SI6DDQIV.js";
9
+ } from "./chunk-CKDF4DWU.js";
10
+ import "./chunk-BPJ5KWIT.js";
11
+ import "./chunk-OMO45AHI.js";
12
+ import "./chunk-HJ4ALQG6.js";
13
13
  export {
14
14
  DEFAULT_MANAGED_WRITE_WAIT_MS,
15
15
  MANAGED_WRITE_POLL_INTERVAL_MS,
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runSkillwikiMcpStdio
4
- } from "./chunk-4JZD2IAC.js";
4
+ } from "./chunk-SNHTWLGF.js";
5
5
  import "./chunk-7I2TPIV5.js";
6
- import "./chunk-MDLROHRP.js";
7
- import "./chunk-X45H2KXI.js";
8
- import "./chunk-EFPIN7DQ.js";
9
- import "./chunk-S663QZQR.js";
10
- import "./chunk-Q66UASXZ.js";
11
- import "./chunk-SI6DDQIV.js";
6
+ import "./chunk-KFEOMMWK.js";
7
+ import "./chunk-CKDF4DWU.js";
8
+ import "./chunk-BPJ5KWIT.js";
9
+ import "./chunk-NPTIYO2S.js";
10
+ import "./chunk-OMO45AHI.js";
11
+ import "./chunk-HJ4ALQG6.js";
12
12
 
13
13
  // src/mcp-entry.ts
14
14
  runSkillwikiMcpStdio().catch((error) => {
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ runSourcesPending
4
+ } from "./chunk-NPTIYO2S.js";
5
+ import "./chunk-OMO45AHI.js";
6
+ import "./chunk-HJ4ALQG6.js";
7
+ export {
8
+ runSourcesPending
9
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.10.63",
3
+ "version": "0.10.64",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "skillwiki": "dist/cli.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.10.63",
3
+ "version": "0.10.64",
4
4
  "skills": "./",
5
5
  "description": "Project-aware Karpathy-style knowledge base for Claude Code: 20 prompt-only skills (wiki-*, proj-*, using-skillwiki) backed by the deterministic `skillwiki` CLI.",
6
6
  "author": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.10.63",
3
+ "version": "0.10.64",
4
4
  "description": "Project-aware Karpathy-style knowledge base for Codex with 20 prompt-only skills backed by the deterministic skillwiki CLI.",
5
5
  "author": {
6
6
  "name": "karlorz",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillwiki/skills",
3
- "version": "0.10.63",
3
+ "version": "0.10.64",
4
4
  "private": true,
5
5
  "files": [
6
6
  "wiki-*",
@@ -49,6 +49,22 @@ When the user asks to "get work of X" or "run work item Y" for review, you are i
49
49
  5. Manage status transitions: `planned` → `in-progress` → `completed` (set `completed:` date) or `abandoned`.
50
50
  6. Append vault `log.md` entry on creation and on each status transition.
51
51
 
52
+ ### Completion and post-release verification
53
+
54
+ - Work-item status represents delivery lifecycle. Mark delivery complete when
55
+ the approved code, required acceptance checks, release/deployment scope, and
56
+ completion evidence are finished.
57
+ - Required acceptance verification remains part of the completion checklist and
58
+ must pass before `status: completed`.
59
+ - Optional verification after delivery uses typed frontmatter:
60
+ `post_release_verification.posture: opt-in`, plus one or more approved
61
+ `triggers` (`matching-regression-report`, `explicit-user-request`, or
62
+ `relevant-code-or-release-change`).
63
+ - Record opt-in post-release checks as prose evidence, not as unchecked completion tasks.
64
+ Completed opt-in work stays out of ordinary active rankings until a trigger
65
+ occurs; a trigger creates new evidence or a follow-up decision rather than
66
+ silently keeping delivered work `in-progress`.
67
+
52
68
  ## Redirect Output
53
69
 
54
70
  After step 3 (output path override), emit redirect paths for the active PRD skill:
@@ -49,6 +49,22 @@ When the user asks to "get work of X" or "run work item Y" for review, you are i
49
49
  5. Manage status transitions: `planned` → `in-progress` → `completed` (set `completed:` date) or `abandoned`.
50
50
  6. Append vault `log.md` entry on creation and on each status transition.
51
51
 
52
+ ### Completion and post-release verification
53
+
54
+ - Work-item status represents delivery lifecycle. Mark delivery complete when
55
+ the approved code, required acceptance checks, release/deployment scope, and
56
+ completion evidence are finished.
57
+ - Required acceptance verification remains part of the completion checklist and
58
+ must pass before `status: completed`.
59
+ - Optional verification after delivery uses typed frontmatter:
60
+ `post_release_verification.posture: opt-in`, plus one or more approved
61
+ `triggers` (`matching-regression-report`, `explicit-user-request`, or
62
+ `relevant-code-or-release-change`).
63
+ - Record opt-in post-release checks as prose evidence, not as unchecked completion tasks.
64
+ Completed opt-in work stays out of ordinary active rankings until a trigger
65
+ occurs; a trigger creates new evidence or a follow-up decision rather than
66
+ silently keeping delivered work `in-progress`.
67
+
52
68
  ## Redirect Output
53
69
 
54
70
  After step 3 (output path override), emit redirect paths for the active PRD skill:
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- runSourcesPending
4
- } from "./chunk-S663QZQR.js";
5
- import "./chunk-Q66UASXZ.js";
6
- import "./chunk-SI6DDQIV.js";
7
- export {
8
- runSourcesPending
9
- };