@wipcomputer/wip-ldm-os 0.4.85-alpha.19 → 0.4.85-alpha.20

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/README.md CHANGED
@@ -22,7 +22,18 @@ Open your AI and paste this:
22
22
  ```
23
23
  Read https://wip.computer/install/wip-ldm-os.txt
24
24
 
25
- Check if LDM OS is already installed. If it is, run ldm install --dry-run and show me what I have and what's new.
25
+ Use the install document and live local checks as the source of truth. Do not search memory or prior notes for this install.
26
+
27
+ Check if LDM OS is installed (`which ldm && ldm --version`). Branch.
28
+
29
+ If installed: run `ldm status` and show me the version table and what's new for each component. Then ask:
30
+ - Do you have questions?
31
+ - Want to see a dry run?
32
+
33
+ If yes to dry run, run `ldm install --dry-run`.
34
+
35
+ If I say install, run:
36
+ `npm install -g @wipcomputer/wip-ldm-os@latest && ldm install && ldm doctor`
26
37
 
27
38
  If not, walk me through setup and explain:
28
39
 
@@ -35,7 +46,14 @@ Then ask:
35
46
  - Do you have questions?
36
47
  - Want to see a dry run?
37
48
 
38
- If I say yes: Install the CLI first (npm install -g @wipcomputer/wip-ldm-os) and then run ldm install --dry-run.
49
+ If yes to dry run, install the CLI first:
50
+ `npm install -g @wipcomputer/wip-ldm-os`
51
+
52
+ Then run:
53
+ `ldm init --dry-run`
54
+
55
+ If I say install, run:
56
+ `ldm init`
39
57
 
40
58
  Show me exactly what will change. Don't install anything until I say "install".
41
59
  ```
package/SKILL.md CHANGED
@@ -27,6 +27,12 @@ metadata:
27
27
 
28
28
  # LDM OS
29
29
 
30
+ ## Source of truth
31
+
32
+ Use this install document and live local checks as the source of truth. Do not search memory or prior notes for this install.
33
+
34
+ Do not run GitHub release commands during the install-state flow. Do not run `gh release list` or `gh release view` unless the user explicitly asks for release notes. Install-state answers should come from local commands, `ldm status`, and npm package metadata.
35
+
30
36
  ## Step 1: Check if installed
31
37
 
32
38
  ```bash
@@ -62,12 +68,9 @@ Always a table. Every component with an update gets its own row.
62
68
 
63
69
  **Do NOT skip this step.**
64
70
 
65
- ```bash
66
- gh release list --repo wipcomputer/<repo-name> --limit 5 --json tagName,name --jq '.[]'
67
- gh release view <tag> --repo wipcomputer/<repo-name> --json body --jq .body
68
- ```
71
+ Use the output of `ldm status`, installed package metadata, and npm metadata. Do not use GitHub release commands here.
69
72
 
70
- Translate release notes to user language. Every bullet answers "what changed for ME?"
73
+ Translate available update information to user language. Every bullet answers "what changed for ME?" If the status output does not include enough detail for a component, say that clearly and do not invent release notes.
71
74
 
72
75
  Good: "Your AIs now explain what LDM OS actually does when you ask them to install it"
73
76
  Bad: "Restored rich product content to SKILL.md"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-ldm-os",
3
- "version": "0.4.85-alpha.19",
3
+ "version": "0.4.85-alpha.20",
4
4
  "type": "module",
5
5
  "description": "LDM OS: identity, memory, and sovereignty infrastructure for AI agents",
6
6
  "engines": {
@@ -18,9 +18,10 @@
18
18
  "scripts": {
19
19
  "build:bridge": "cd src/bridge && npm install && npx tsup core.ts mcp-server.ts cli.ts openclaw.ts --format esm --dts --clean --outDir ../../dist/bridge",
20
20
  "build": "npm run build:bridge",
21
- "prepublishOnly": "npm run build:bridge && npm run validate:bin-manifest",
21
+ "prepublishOnly": "npm run build:bridge && npm run validate:bin-manifest && npm run test:install-prompt-policy",
22
22
  "validate:bin-manifest": "node scripts/validate-bin-manifest.mjs",
23
23
  "test:skill-frontmatter": "node scripts/test-skill-frontmatter.mjs",
24
+ "test:install-prompt-policy": "node scripts/test-install-prompt-policy.mjs",
24
25
  "test:installer-update-tracks": "node scripts/test-installer-update-tracks.mjs",
25
26
  "test:installer-hook-toolname": "node scripts/test-installer-hook-toolname.mjs",
26
27
  "test:installer-target-self-update": "node scripts/test-installer-target-self-update.mjs",
@@ -0,0 +1,60 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ const repoRoot = fileURLToPath(new URL("..", import.meta.url));
6
+
7
+ const files = [
8
+ "README.md",
9
+ "SKILL.md",
10
+ "shared/templates/install-prompt.md",
11
+ ];
12
+
13
+ const contents = Object.fromEntries(
14
+ files.map((file) => [file, readFileSync(join(repoRoot, file), "utf8")]),
15
+ );
16
+
17
+ const failures = [];
18
+
19
+ for (const file of ["README.md", "shared/templates/install-prompt.md"]) {
20
+ const text = contents[file];
21
+ for (const phrase of [
22
+ "Use the install document and live local checks as the source of truth. Do not search memory or prior notes for this install.",
23
+ "If installed: run `ldm status`",
24
+ "If yes to dry run, run `ldm install --dry-run`.",
25
+ "`npm install -g @wipcomputer/wip-ldm-os@latest && ldm install && ldm doctor`",
26
+ "Then run:\n`ldm init --dry-run`",
27
+ "If I say install, run:\n`ldm init`",
28
+ ]) {
29
+ if (!text.includes(phrase)) {
30
+ failures.push(`${file} missing install prompt phrase: ${phrase}`);
31
+ }
32
+ }
33
+ if (text.includes("If it is, run ldm install --dry-run")) {
34
+ failures.push(`${file} still tells installed users to start with ldm install --dry-run`);
35
+ }
36
+ }
37
+
38
+ const skill = contents["SKILL.md"];
39
+ for (const phrase of [
40
+ "Do not run GitHub release commands during the install-state flow.",
41
+ "Do not run `gh release list` or `gh release view` unless the user explicitly asks for release notes.",
42
+ "Use the output of `ldm status`, installed package metadata, and npm metadata.",
43
+ "Do not use GitHub release commands here.",
44
+ ]) {
45
+ if (!skill.includes(phrase)) {
46
+ failures.push(`SKILL.md missing install policy phrase: ${phrase}`);
47
+ }
48
+ }
49
+
50
+ if (/gh release (list|view) --repo/.test(skill)) {
51
+ failures.push("SKILL.md still includes concrete gh release commands in the install flow");
52
+ }
53
+
54
+ if (failures.length > 0) {
55
+ console.error("install prompt policy checks failed:");
56
+ for (const failure of failures) console.error(` - ${failure}`);
57
+ process.exit(1);
58
+ }
59
+
60
+ console.log("install-prompt-policy: LDM OS prompt and install doc agree");
@@ -6,7 +6,18 @@ Open your AI and paste this:
6
6
 
7
7
  Read https://wip.computer/install/wip-ldm-os.txt
8
8
 
9
- Check if LDM OS is already installed. If it is, run ldm install --dry-run and show me what I have and what's new.
9
+ Use the install document and live local checks as the source of truth. Do not search memory or prior notes for this install.
10
+
11
+ Check if LDM OS is installed (`which ldm && ldm --version`). Branch.
12
+
13
+ If installed: run `ldm status` and show me the version table and what's new for each component. Then ask:
14
+ - Do you have questions?
15
+ - Want to see a dry run?
16
+
17
+ If yes to dry run, run `ldm install --dry-run`.
18
+
19
+ If I say install, run:
20
+ `npm install -g @wipcomputer/wip-ldm-os@latest && ldm install && ldm doctor`
10
21
 
11
22
  If not, walk me through setup and explain:
12
23
 
@@ -19,7 +30,14 @@ Then ask:
19
30
  - Do you have questions?
20
31
  - Want to see a dry run?
21
32
 
22
- If I say yes: Install the CLI first (npm install -g @wipcomputer/wip-ldm-os) and then run ldm install --dry-run.
33
+ If yes to dry run, install the CLI first:
34
+ `npm install -g @wipcomputer/wip-ldm-os`
35
+
36
+ Then run:
37
+ `ldm init --dry-run`
38
+
39
+ If I say install, run:
40
+ `ldm init`
23
41
 
24
42
  Show me exactly what will change. Don't install anything until I say "install".
25
43