@ijfw/install 1.6.0 → 1.6.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ijfw/install",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "One-command installer for IJFW -- the AI efficiency layer. One install, every AI coding agent, zero config.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -14,6 +14,7 @@
14
14
  "docs/GUIDE.md",
15
15
  "docs/guide/assets",
16
16
  "templates/aider/**",
17
+ "templates/pi/**",
17
18
  "scripts/pack-hub-extension.js",
18
19
  "scripts/hub-extension/**",
19
20
  "README.md",
@@ -22,7 +23,7 @@
22
23
  ],
23
24
  "scripts": {
24
25
  "build": "node scripts/build.js",
25
- "test": "node --test test.js test/uninstall-completeness.test.mjs test/project-write-guard.test.mjs",
26
+ "test": "node --test test.js test/*.test.mjs",
26
27
  "test:hub-extension": "node --test test/test-pack-hub-extension.js",
27
28
  "test:uninstall-completeness": "node --test test/uninstall-completeness.test.mjs",
28
29
  "preflight": "node dist/ijfw.js preflight",
package/src/install.ps1 CHANGED
@@ -95,7 +95,7 @@ function Invoke-CloneOrPull($target, $branch) {
95
95
  # Self-heal stale origin URLs across host migrations (1.2.9 parity with install.js).
96
96
  # Without this, Windows users on the pre-GitLab origin still 404 on every upgrade.
97
97
  # V155-012: only rewrite ORIGINS THAT MATCH KNOWN STALE PATTERNS. Previously
98
- # this clobbered SSH remotes, forks, and any user-customized origin anyone
98
+ # this clobbered SSH remotes, forks, and any user-customized origin -- anyone
99
99
  # working on the IJFW source itself ended up silently retargeted to upstream.
100
100
  # Port the install.js STALE_PATTERNS allowlist verbatim (case-insensitive).
101
101
  $currentOrigin = ($currentOriginRaw | Out-String).Trim()
@@ -0,0 +1,55 @@
1
+ # IJFW Conventions for Pi
2
+
3
+ <!-- Pi MCP support last verified: 2026-05-28 against https://pi.dev/.
4
+ Pi has no native MCP client (build as extension or skill). When Pi adds
5
+ native MCP, regenerate this file and consider promoting Pi from
6
+ rules-only to full-skill tier in installer/src/install-targets-8-14.js
7
+ and add the MCP wiring path. -->
8
+
9
+ Pi has no native MCP, so IJFW's memory + cross-audit tools aren't available
10
+ inside Pi sessions out of the box. These conventions carry the IJFW spirit
11
+ (disciplined workflow, terse output, no scope creep, no half-shipping) into
12
+ Pi's terminal harness. Pi loads this file at startup from `~/.pi/agent/`,
13
+ parent directories, and the current working directory -- exactly where IJFW
14
+ installs it.
15
+
16
+ ## Workflow
17
+
18
+ - One question at a time. Don't dump multi-step plans before the user signs off.
19
+ - Lead with the answer. No restating the question.
20
+ - For multi-file changes, propose the plan in chat FIRST. Wait for the user "go".
21
+ - Terse output. The diff is the deliverable, not your prose about the diff.
22
+
23
+ ## Code
24
+
25
+ - Match existing style. Don't refactor adjacent code that wasn't asked for.
26
+ - No speculative abstractions. Three similar lines beats a premature helper.
27
+ - No error handling for impossible scenarios. Trust internal code; validate only at system boundaries.
28
+ - Default to writing no comments. Only add when the WHY is non-obvious (a hidden constraint, a subtle invariant, a workaround for a specific bug).
29
+ - Never write multi-paragraph docstrings. One short line max.
30
+
31
+ ## Memory + cross-audit
32
+
33
+ Pi sessions don't see IJFW's persistent memory by default. After significant work:
34
+
35
+ - Run `ijfw cross audit <file>` in a separate terminal to get a Trident review across two model families.
36
+ - Use `ijfw_memory_store` from a Claude/Codex/Gemini session (where MCP is native) to persist decisions Pi makes -- they won't survive otherwise.
37
+ - Or build a Pi extension that bridges to the IJFW MCP memory server (`~/.ijfw/mcp-server/src/server.js`). Pi's extension API supports tool registration; the bridge is the cleanest path to native parity.
38
+
39
+ ## Scope
40
+
41
+ Stay in the lane the user asked for. If you spot adjacent issues, mention them in chat -- don't fix them silently. No drive-by refactors. No backwards-compatibility shims for code that isn't shipped yet.
42
+
43
+ ## DESIGN picker
44
+
45
+ If the user asks for a design contract and no `DESIGN.md` exists in the project root, suggest one of the 12 IJFW curated templates (alphabetical):
46
+
47
+ apple-glass, anthropic, bauhaus, brutalist, calm, dark-mode, document, editorial, glassmorphism, minimal, neo-brutalist, terminal
48
+
49
+ Show 3 options matching the project's vibe; let the user pick. Then write `DESIGN.md` to project root. Every IJFW-connected agent reads the same visual contract -- you keep them consistent.
50
+
51
+ ## Executing actions with care
52
+
53
+ Carefully consider blast radius before destructive ops. Local edits and tests are safe; check with the user before `rm -rf`, force pushes, dropping tables, sending messages, or anything visible to others or hard to reverse.
54
+
55
+ When you hit an obstacle, find the root cause rather than bypassing safety checks (no `--no-verify`, no force-push to main). If you encounter unfamiliar state, investigate before deleting -- it may be the user's in-progress work.