@jwilger/pi-development-system 0.47.0 → 0.48.0

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": "@jwilger/pi-development-system",
3
- "version": "0.47.0",
3
+ "version": "0.48.0",
4
4
  "description": "A pi extension package representing a seasoned approach to software development using a full AI SDLC.",
5
5
  "keywords": [
6
6
  "pi-package"
@@ -24,6 +24,23 @@ finding from every later reader, so it must carry its reason.
24
24
  clippy; biome recommended-plus; TypeScript `strict`. Loosening a project rule is a
25
25
  recorded decision, not an edit.
26
26
 
27
+ ## No warning stands
28
+
29
+ A warning is an error that has not been triaged yet. Before every commit:
30
+
31
+ - Biome, `tsc`, knip and markdownlint pass with nothing reported (lefthook and CI run them).
32
+ - `lens_diagnostics` (pi-lens) shows no warnings for the files you changed. Run it with
33
+ `mode=full` on those paths after a refresh; a cached finding that looks wrong is a stale
34
+ cache to refresh (touch the file and re-run), never one to wave off.
35
+ - Each finding is fixed, or suppressed on the line above with a reason
36
+ (`// pi-lens-ignore: high-fan-out -- composition root: wiring is its job`).
37
+ - Enable stricter rules by the behaviour they prevent (silent failure, panics, shadowing,
38
+ unreasoned `allow`), not whole categories that contradict each other. Warn while
39
+ working; deny in CI.
40
+ - Vendored code under `src/subagents` is on a ratchet: `test/subagents/nocheck-files.ts`
41
+ lists the files still skipping type checks and may only shrink. A file you touch there
42
+ is made clean and dropped from the list.
43
+
27
44
  ## What the extension does
28
45
 
29
46
  Editing a file so that it adds `#[allow(`, `#[expect(`, `// biome-ignore`,
@@ -44,3 +61,4 @@ departure naming why a bare one is right. Suppressions already in the file are n
44
61
  - [ ] Suppression is one line with a reason of 15+ characters
45
62
  - [ ] `expect` used where available
46
63
  - [ ] No lint rule loosened in project config without a recorded decision
64
+ - [ ] `lens_diagnostics` shows no warnings on the changed files (refreshed, not cached)
@@ -500,7 +500,7 @@ export function diffAgentSettings(base: AgentType, draft: AgentType): AgentSetti
500
500
  const after = draft[key];
501
501
  if (JSON.stringify(before ?? null) === JSON.stringify(after ?? null)) continue;
502
502
  if (after === undefined) override[key] = null as never;
503
- else (override[key] as unknown) = structuredClone(after);
503
+ else Object.assign(override, { [key]: structuredClone(after) });
504
504
  }
505
505
  void CLEARABLE_OVERRIDE_FIELDS;
506
506
  return override;