@sabaiway/agent-workflow-kit 14.4.2 → 14.4.3

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/CHANGELOG.md CHANGED
@@ -4,6 +4,21 @@ Semantically versioned ([semver](https://semver.org)), newest first. The `versio
4
4
  is the current release. `upgrade` mode reads a project's `docs/ai/.workflow-version` and applies
5
5
  every `migrations/<version>-<slug>.md` newer than it, in semver order.
6
6
 
7
+ ## 14.4.3 — cleanup after the two splits: one false doc pointer, a test title, a list order, comments and whitespace; nothing the kit decides, prints or records changes
8
+
9
+ **Six small review findings from the review-state and core-evidence splits are fixed.** The only shipped doc change is in
10
+ `references/modes/commit-guard.md`: it now says the fingerprint argv lives in `core-evidence-tree.mjs` and that the
11
+ `core-evidence.mjs` facade re-exports it. The earlier text named the facade as its home. Everything else is one
12
+ test title, one list order, comments and whitespace.
13
+
14
+ - **Tests.** In `tools/review-state.test.mjs`, the block that runs `--check` and proves a later ungrounded receipt
15
+ outranks an earlier grounded SHIP no longer carries the name `backendReceiptStatus`. In
16
+ `test/package-content.test.mjs`, `tools/grounding.mjs` sits under the AD-038 pair comment again, and two comments
17
+ use a real em dash instead of the literal `\u2014` escape. The `cleanState` helper in `tools/review-state-judge.test.mjs`
18
+ loses a stray indent, and a blank line before a closing brace in `tools/core-evidence-tree.test.mjs` is gone.
19
+ - **Sources.** The first-line comments of `review-state-build.mjs`, `review-state-flow.mjs` and `review-state-render.mjs`
20
+ use the em dash the other modules use, and `core-evidence-store-read.mjs` loses a doubled blank line.
21
+
7
22
  ## 14.4.2 — `core-evidence.mjs` becomes a facade over six leaves; nothing the tool decides, prints or records changes (AD-150)
8
23
 
9
24
  **The core-evidence writer is now six small modules behind its old entry point.** `tools/core-evidence.mjs` was one
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: agent-workflow-kit
3
3
  description: Deploy or upgrade a portable AI-agent memory-and-workflow system in any project. Use when the user wants to bootstrap `docs/ai/` + an entry-point `AGENTS.md` (+ `CLAUDE.md` alias) + cap/archive/index enforcement in a new or existing repo, set up the Memory Map and session protocols, install the docs-rotation pre-commit hook, or run `/agent-workflow-kit` / `/agent-workflow-kit upgrade`. Triggers on phrases like "set up the memory system", "deploy the AI workflow here", "bootstrap docs/ai", "upgrade the workflow".
4
4
  disable-model-invocation: true
5
5
  metadata:
6
- version: '14.4.2'
6
+ version: '14.4.3'
7
7
  ---
8
8
 
9
9
  # agent-workflow-kit
package/capability.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "schema": 1,
4
4
  "name": "agent-workflow-kit",
5
5
  "kind": "composition-root",
6
- "version": "14.4.2",
6
+ "version": "14.4.3",
7
7
  "provides": [],
8
8
  "roles": {},
9
9
  "detect": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sabaiway/agent-workflow-kit",
3
- "version": "14.4.2",
3
+ "version": "14.4.3",
4
4
  "description": "Portable, cross-agent memory & workflow for AI coding agents — Claude Code, Codex, Cursor, Devin Desktop. One command deploys an AGENTS.md entry point + docs/ai context with cap/archive/index enforcement into any repo.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -24,7 +24,7 @@ Run `node ${CLAUDE_SKILL_DIR}/tools/commit-guard.mjs --check [--cwd <dir>]` —
24
24
 
25
25
  **Boundary — what «the commit captures the tree» means for submodules.** The guard proves the SUPERPROJECT commit captures the SUPERPROJECT working tree. A superproject commit stores a submodule as a gitlink OID and never captures its file content — that content is the submodule's own commit boundary. The dirty-submodule refusal is therefore a best-effort COURTESY beyond the guard's boundary, and its completeness is bounded by what the submodule itself reports: a file held behind a `skip-worktree` / `assume-unchanged` bit in the SUBMODULE's own index is invisible to the submodule's status and so to this refusal. Deepening the nested probe was tried and abandoned — three consecutive review rounds each produced a new way for it to answer wrongly — so the honest contract is the boundary, not a completeness claim. Tracked as its own class.
26
26
 
27
- **Stated residual — the payload flags close the config-blind class.** The fingerprint argv in the ONE node home, `core-evidence.mjs`, carries `--no-textconv --ignore-submodules=none` beside `--no-ext-diff`; both bash twins are parity-pinned to that set for their fingerprint and review-payload diffs, so host textconv and submodule-ignore configuration cannot hide staged bytes. Refusal 2 remains the fail-closed backstop for any DIRTY index whose staged content the payload still cannot see: it names making the change visible to `git diff --cached` and re-running the final gate, without guessing a flag or configuration key.
27
+ **Stated residual — the payload flags close the config-blind class.** The fingerprint argv in the ONE node home, `core-evidence-tree.mjs` (re-exported by the `core-evidence.mjs` facade), carries `--no-textconv --ignore-submodules=none` beside `--no-ext-diff`; both bash twins are parity-pinned to that set for their fingerprint and review-payload diffs, so host textconv and submodule-ignore configuration cannot hide staged bytes. Refusal 2 remains the fail-closed backstop for any DIRTY index whose staged content the payload still cannot see: it names making the change visible to `git diff --cached` and re-running the final gate, without guessing a flag or configuration key.
28
28
 
29
29
  **Human residual (stated, accepted):** `git commit --no-verify` bypasses any pre-commit hook — a self-discipline mechanism, not a security boundary.
30
30
 
@@ -41,7 +41,6 @@ const isNonEmptyString = (v) => typeof v === 'string' && v.length > 0;
41
41
  const HEX64_RE = /^[0-9a-f]{64}$/;
42
42
  const HEX40_RE = /^[0-9a-f]{40}$/;
43
43
 
44
-
45
44
  export const validateEvidenceRecord = (record) => {
46
45
  if (!isPlainObject(record)) return { ok: false, reason: 'record is not an object' };
47
46
  if (record.schema !== EVIDENCE_SCHEMA_VERSION) {
@@ -1,4 +1,4 @@
1
- // review-state-build.mjs - read-only git plumbing and buildState.
1
+ // review-state-build.mjs — read-only git plumbing and buildState.
2
2
 
3
3
  import { lstatSync, readFileSync } from 'node:fs';
4
4
  import { join } from 'node:path';
@@ -1,4 +1,4 @@
1
- // review-state-flow.mjs - plan-adoption coverage and the armed-flow arms.
1
+ // review-state-flow.mjs — plan-adoption coverage and the armed-flow arms.
2
2
 
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { join } from 'node:path';
@@ -1,4 +1,4 @@
1
- // review-state-render.mjs - the human report and the mask advisory line.
1
+ // review-state-render.mjs — the human report and the mask advisory line.
2
2
 
3
3
  import { join, dirname } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';