@codyswann/lisa 1.38.0 → 1.39.1

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.
Files changed (59) hide show
  1. package/all/copy-overwrite/.claude/README.md +11 -5
  2. package/all/copy-overwrite/.claude/agents/agent-architect.md +0 -1
  3. package/all/copy-overwrite/.claude/agents/{architecture-planner.md → architecture-specialist.md} +7 -12
  4. package/all/copy-overwrite/.claude/agents/debug-specialist.md +204 -0
  5. package/all/copy-overwrite/.claude/agents/implementer.md +35 -23
  6. package/all/copy-overwrite/.claude/agents/learner.md +0 -1
  7. package/all/copy-overwrite/.claude/agents/performance-specialist.md +95 -0
  8. package/all/copy-overwrite/.claude/agents/{product-planner.md → product-specialist.md} +19 -14
  9. package/all/copy-overwrite/.claude/agents/{tech-reviewer.md → quality-specialist.md} +9 -11
  10. package/all/copy-overwrite/.claude/agents/{security-planner.md → security-specialist.md} +8 -13
  11. package/all/copy-overwrite/.claude/agents/{test-strategist.md → test-specialist.md} +20 -15
  12. package/all/copy-overwrite/.claude/agents/verification-specialist.md +189 -0
  13. package/all/copy-overwrite/.claude/commands/plan/create.md +1 -1
  14. package/all/copy-overwrite/.claude/commands/plan/execute.md +7 -0
  15. package/all/copy-overwrite/.claude/hooks/README.md +2 -2
  16. package/all/copy-overwrite/.claude/hooks/setup-jira-cli.sh +2 -2
  17. package/all/copy-overwrite/.claude/hooks/sync-tasks.sh +3 -0
  18. package/all/copy-overwrite/.claude/hooks/ticket-sync-reminder.sh +3 -0
  19. package/all/copy-overwrite/.claude/hooks/track-plan-sessions.sh +3 -0
  20. package/all/copy-overwrite/.claude/rules/lisa.md +2 -4
  21. package/all/copy-overwrite/.claude/rules/verfication.md +104 -1
  22. package/all/copy-overwrite/.claude/settings.json +219 -26
  23. package/all/copy-overwrite/.claude/skills/agent-design-best-practices/SKILL.md +219 -0
  24. package/all/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +1 -1
  25. package/all/copy-overwrite/.claude/skills/plan-execute/SKILL.md +89 -0
  26. package/all/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +1 -1
  27. package/all/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +1 -1
  28. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +1 -1
  29. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +1 -1
  30. package/all/copy-overwrite/README.md +6 -2
  31. package/all/deletions.json +19 -1
  32. package/dist/utils/fibonacci.d.ts +30 -22
  33. package/dist/utils/fibonacci.d.ts.map +1 -1
  34. package/dist/utils/fibonacci.js +40 -34
  35. package/dist/utils/fibonacci.js.map +1 -1
  36. package/package.json +1 -1
  37. package/rails/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +1 -1
  38. package/rails/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +1 -1
  39. package/rails/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +1 -1
  40. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +1 -1
  41. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +1 -1
  42. package/typescript/copy-contents/.husky/pre-push +1 -5
  43. package/typescript/copy-overwrite/.claude/settings.json +112 -78
  44. package/typescript/copy-overwrite/.github/workflows/quality.yml +1 -5
  45. package/typescript/deletions.json +2 -1
  46. package/all/copy-overwrite/.claude/REFERENCE.md +0 -519
  47. package/all/copy-overwrite/.claude/agents/codebase-analyzer.md +0 -146
  48. package/all/copy-overwrite/.claude/agents/codebase-locator.md +0 -125
  49. package/all/copy-overwrite/.claude/agents/codebase-pattern-finder.md +0 -237
  50. package/all/copy-overwrite/.claude/agents/consistency-checker.md +0 -58
  51. package/all/copy-overwrite/.claude/agents/product-reviewer.md +0 -47
  52. package/all/copy-overwrite/.claude/agents/spec-analyst.md +0 -41
  53. package/all/copy-overwrite/.claude/agents/test-coverage-agent.md +0 -17
  54. package/all/copy-overwrite/.claude/commands/plan/implement.md +0 -6
  55. package/all/copy-overwrite/.claude/rules/plan-governance.md +0 -96
  56. package/all/copy-overwrite/.claude/rules/plan.md +0 -79
  57. package/all/copy-overwrite/.claude/skills/plan-create/SKILL.md +0 -238
  58. package/all/copy-overwrite/.claude/skills/plan-implement/SKILL.md +0 -114
  59. /package/typescript/copy-overwrite/.claude/hooks/{install_pkgs.sh → install-pkgs.sh} +0 -0
@@ -17,9 +17,9 @@ brew install claude-code
17
17
 
18
18
  > Ask Claude: "I just cloned this repo. Walk me through the full setup including installing dependencies, environment variables, and any other configuration."
19
19
 
20
- ## Step 3: Run the App Locally
20
+ ## Step 3: Build and Test
21
21
 
22
- > Ask Claude: "How do I start the app locally? Walk me through the steps and verify it's running."
22
+ > Ask Claude: "How do I build this package and run the tests?"
23
23
 
24
24
  ## Step 4: Work on a Feature
25
25
 
@@ -56,6 +56,10 @@ Or use utility commands:
56
56
 
57
57
  > Ask Claude: "Increase test coverage for the files I changed."
58
58
 
59
+ ### Publish to npm
60
+
61
+ > Ask Claude: "Walk me through publishing a new version of this package to npm."
62
+
59
63
  ### Deploy
60
64
 
61
65
  > Ask Claude: "Walk me through deploying this project."
@@ -41,6 +41,24 @@
41
41
  ".claude/skills/sonarqube:check",
42
42
  ".claude/skills/sonarqube:fix",
43
43
  ".claude/skills/tasks:load",
44
- ".claude/skills/tasks:sync"
44
+ ".claude/skills/tasks:sync",
45
+ ".claude/REFERENCE.md",
46
+ ".claude/commands/plan/implement.md",
47
+ ".claude/rules/plan-governance.md",
48
+ ".claude/rules/plan.md",
49
+ ".claude/skills/plan-create",
50
+ ".claude/skills/plan-implement",
51
+ ".claude/agents/architecture-planner.md",
52
+ ".claude/agents/codebase-analyzer.md",
53
+ ".claude/agents/codebase-locator.md",
54
+ ".claude/agents/codebase-pattern-finder.md",
55
+ ".claude/agents/consistency-checker.md",
56
+ ".claude/agents/product-planner.md",
57
+ ".claude/agents/product-reviewer.md",
58
+ ".claude/agents/security-planner.md",
59
+ ".claude/agents/spec-analyst.md",
60
+ ".claude/agents/tech-reviewer.md",
61
+ ".claude/agents/test-coverage-agent.md",
62
+ ".claude/agents/test-strategist.md"
45
63
  ]
46
64
  }
@@ -1,31 +1,36 @@
1
1
  /**
2
2
  * @file fibonacci.ts
3
- * @description BigInt Fibonacci utilities built on a lazy infinite generator.
4
- * Every public function delegates to `fibonacciGenerator` so the core
5
- * recurrence relation lives in exactly one place (DRY). BigInt eliminates
6
- * the precision ceiling that Number hits at fibonacci(78).
3
+ * @description Tuple-based Fibonacci utilities powered by an infinite BigInt generator.
4
+ * BigInt avoids the precision ceiling that Number hits at F(78), where values
5
+ * exceed Number.MAX_SAFE_INTEGER. Every public function derives its values from
6
+ * fibonacciGenerator, keeping the recurrence relation in a single place.
7
7
  * @module utils
8
8
  */
9
9
  /**
10
- * Infinite generator that lazily yields the Fibonacci sequence as BigInts
11
- * @yields {bigint} The next Fibonacci number in the sequence (0n, 1n, 1n, 2n, 3n, …)
12
- * @remarks Each call creates an independent iterator with its own state, so
13
- * multiple consumers can advance through the sequence without interference.
10
+ * Infinite generator yielding the Fibonacci sequence as BigInts.
11
+ *
12
+ * Uses a two-element pair to track consecutive values, yielding the leading
13
+ * element on each iteration and advancing the pair forward. Each call returns
14
+ * an independent iterator, so multiple consumers never interfere.
15
+ *
16
+ * @yields The next Fibonacci number (0n, 1n, 1n, 2n, 3n, 5n, …)
14
17
  * @example
15
18
  * ```typescript
16
19
  * const gen = fibonacciGenerator();
17
20
  * gen.next().value; // 0n
18
21
  * gen.next().value; // 1n
19
- * gen.next().value; // 1n
20
22
  * ```
21
23
  */
22
24
  export declare function fibonacciGenerator(): Generator<bigint, never, unknown>;
23
25
  /**
24
- * Returns the nth Fibonacci number as a BigInt
25
- * @param n - Zero-based index into the Fibonacci sequence (must be a non-negative integer)
26
- * @returns The nth Fibonacci number (e.g. fibonacci(5) 5n)
27
- * @throws {RangeError} When n is negative, non-integer, NaN, or Infinity
28
- * @remarks Delegates to `fibonacciGenerator` so the recurrence logic is defined once.
26
+ * Returns the nth Fibonacci number (0-indexed) as a BigInt.
27
+ *
28
+ * Collects n + 1 values from the generator and returns the final element,
29
+ * delegating the recurrence to fibonacciGenerator for DRY.
30
+ *
31
+ * @param n - Zero-based position in the Fibonacci sequence (non-negative integer)
32
+ * @returns The nth Fibonacci number as a BigInt
33
+ * @throws {RangeError} When n is negative, fractional, NaN, or infinite
29
34
  * @example
30
35
  * ```typescript
31
36
  * fibonacci(0); // 0n
@@ -33,19 +38,22 @@ export declare function fibonacciGenerator(): Generator<bigint, never, unknown>;
33
38
  * fibonacci(78); // 8944394323791464n — beyond Number.MAX_SAFE_INTEGER
34
39
  * ```
35
40
  */
36
- export declare function fibonacci(n: number): bigint;
41
+ export declare const fibonacci: (n: number) => bigint;
37
42
  /**
38
- * Returns the first `length` Fibonacci numbers as a readonly BigInt array
39
- * @param length - How many Fibonacci numbers to return (must be a non-negative integer)
40
- * @returns A new array containing the first `length` Fibonacci numbers
41
- * @throws {RangeError} When length is negative, non-integer, NaN, or Infinity
42
- * @remarks Delegates to `fibonacciGenerator` so the recurrence logic is defined once.
43
- * Returns a fresh array on every call — callers can safely mutate the result.
43
+ * Returns the first `length` Fibonacci numbers as a readonly BigInt array.
44
+ *
45
+ * Spreads an empty array of the requested size and maps each slot to the
46
+ * next generator value, delegating the recurrence to fibonacciGenerator for DRY.
47
+ * Returns a fresh array on every call so callers can safely consume the result.
48
+ *
49
+ * @param length - How many Fibonacci numbers to collect (non-negative integer)
50
+ * @returns A new readonly array of the first `length` Fibonacci numbers
51
+ * @throws {RangeError} When length is negative, fractional, NaN, or infinite
44
52
  * @example
45
53
  * ```typescript
46
54
  * fibonacciSequence(0); // []
47
55
  * fibonacciSequence(5); // [0n, 1n, 1n, 2n, 3n]
48
56
  * ```
49
57
  */
50
- export declare function fibonacciSequence(length: number): readonly bigint[];
58
+ export declare const fibonacciSequence: (length: number) => readonly bigint[];
51
59
  //# sourceMappingURL=fibonacci.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fibonacci.d.ts","sourceRoot":"","sources":["../../src/utils/fibonacci.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAiB,kBAAkB,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAUvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CASnE"}
1
+ {"version":3,"file":"fibonacci.d.ts","sourceRoot":"","sources":["../../src/utils/fibonacci.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAiB,kBAAkB,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CASvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,MAAO,MAAM,KAAG,MAYrC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,WAAY,MAAM,KAAG,SAAS,MAAM,EASjE,CAAC"}
@@ -1,40 +1,44 @@
1
1
  /**
2
2
  * @file fibonacci.ts
3
- * @description BigInt Fibonacci utilities built on a lazy infinite generator.
4
- * Every public function delegates to `fibonacciGenerator` so the core
5
- * recurrence relation lives in exactly one place (DRY). BigInt eliminates
6
- * the precision ceiling that Number hits at fibonacci(78).
3
+ * @description Tuple-based Fibonacci utilities powered by an infinite BigInt generator.
4
+ * BigInt avoids the precision ceiling that Number hits at F(78), where values
5
+ * exceed Number.MAX_SAFE_INTEGER. Every public function derives its values from
6
+ * fibonacciGenerator, keeping the recurrence relation in a single place.
7
7
  * @module utils
8
8
  */
9
9
  /**
10
- * Infinite generator that lazily yields the Fibonacci sequence as BigInts
11
- * @yields {bigint} The next Fibonacci number in the sequence (0n, 1n, 1n, 2n, 3n, …)
12
- * @remarks Each call creates an independent iterator with its own state, so
13
- * multiple consumers can advance through the sequence without interference.
10
+ * Infinite generator yielding the Fibonacci sequence as BigInts.
11
+ *
12
+ * Uses a two-element pair to track consecutive values, yielding the leading
13
+ * element on each iteration and advancing the pair forward. Each call returns
14
+ * an independent iterator, so multiple consumers never interfere.
15
+ *
16
+ * @yields The next Fibonacci number (0n, 1n, 1n, 2n, 3n, 5n, …)
14
17
  * @example
15
18
  * ```typescript
16
19
  * const gen = fibonacciGenerator();
17
20
  * gen.next().value; // 0n
18
21
  * gen.next().value; // 1n
19
- * gen.next().value; // 1n
20
22
  * ```
21
23
  */
22
24
  export function* fibonacciGenerator() {
23
- /* eslint-disable functional/no-let -- generator requires mutable state for iterative Fibonacci computation */
24
- let a = 0n;
25
- let b = 1n;
26
- /* eslint-enable functional/no-let -- re-enable after generator state declarations */
27
- while (true) {
28
- yield a;
29
- [a, b] = [b, a + b];
25
+ /* eslint-disable functional/no-let -- generator requires mutable pair to track consecutive Fibonacci values */
26
+ let pair = [0n, 1n];
27
+ /* eslint-enable functional/no-let -- re-enable after generator state declaration */
28
+ for (;;) {
29
+ yield pair[0];
30
+ pair = [pair[1], pair[0] + pair[1]];
30
31
  }
31
32
  }
32
33
  /**
33
- * Returns the nth Fibonacci number as a BigInt
34
- * @param n - Zero-based index into the Fibonacci sequence (must be a non-negative integer)
35
- * @returns The nth Fibonacci number (e.g. fibonacci(5) 5n)
36
- * @throws {RangeError} When n is negative, non-integer, NaN, or Infinity
37
- * @remarks Delegates to `fibonacciGenerator` so the recurrence logic is defined once.
34
+ * Returns the nth Fibonacci number (0-indexed) as a BigInt.
35
+ *
36
+ * Collects n + 1 values from the generator and returns the final element,
37
+ * delegating the recurrence to fibonacciGenerator for DRY.
38
+ *
39
+ * @param n - Zero-based position in the Fibonacci sequence (non-negative integer)
40
+ * @returns The nth Fibonacci number as a BigInt
41
+ * @throws {RangeError} When n is negative, fractional, NaN, or infinite
38
42
  * @example
39
43
  * ```typescript
40
44
  * fibonacci(0); // 0n
@@ -42,32 +46,34 @@ export function* fibonacciGenerator() {
42
46
  * fibonacci(78); // 8944394323791464n — beyond Number.MAX_SAFE_INTEGER
43
47
  * ```
44
48
  */
45
- export function fibonacci(n) {
49
+ export const fibonacci = (n) => {
46
50
  if (!Number.isFinite(n) || !Number.isInteger(n) || n < 0) {
47
51
  throw new RangeError(`Expected a non-negative integer for n, got ${String(n)}`);
48
52
  }
49
53
  const gen = fibonacciGenerator();
50
- Array.from({ length: n }, () => gen.next());
51
- return gen.next().value;
52
- }
54
+ return Array.from({ length: n + 1 }).reduce(() => gen.next().value, 0n);
55
+ };
53
56
  /**
54
- * Returns the first `length` Fibonacci numbers as a readonly BigInt array
55
- * @param length - How many Fibonacci numbers to return (must be a non-negative integer)
56
- * @returns A new array containing the first `length` Fibonacci numbers
57
- * @throws {RangeError} When length is negative, non-integer, NaN, or Infinity
58
- * @remarks Delegates to `fibonacciGenerator` so the recurrence logic is defined once.
59
- * Returns a fresh array on every call — callers can safely mutate the result.
57
+ * Returns the first `length` Fibonacci numbers as a readonly BigInt array.
58
+ *
59
+ * Spreads an empty array of the requested size and maps each slot to the
60
+ * next generator value, delegating the recurrence to fibonacciGenerator for DRY.
61
+ * Returns a fresh array on every call so callers can safely consume the result.
62
+ *
63
+ * @param length - How many Fibonacci numbers to collect (non-negative integer)
64
+ * @returns A new readonly array of the first `length` Fibonacci numbers
65
+ * @throws {RangeError} When length is negative, fractional, NaN, or infinite
60
66
  * @example
61
67
  * ```typescript
62
68
  * fibonacciSequence(0); // []
63
69
  * fibonacciSequence(5); // [0n, 1n, 1n, 2n, 3n]
64
70
  * ```
65
71
  */
66
- export function fibonacciSequence(length) {
72
+ export const fibonacciSequence = (length) => {
67
73
  if (!Number.isFinite(length) || !Number.isInteger(length) || length < 0) {
68
74
  throw new RangeError(`Expected a non-negative integer for length, got ${String(length)}`);
69
75
  }
70
76
  const gen = fibonacciGenerator();
71
- return Array.from({ length }, () => gen.next().value);
72
- }
77
+ return [...Array(length)].map(() => gen.next().value);
78
+ };
73
79
  //# sourceMappingURL=fibonacci.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fibonacci.js","sourceRoot":"","sources":["../../src/utils/fibonacci.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,SAAS,CAAC,CAAC,kBAAkB;IACjC,8GAA8G;IAC9G,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,qFAAqF;IAErF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,CAAC,CAAC;QACR,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,UAAU,CAClB,8CAA8C,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,UAAU,CAClB,mDAAmD,MAAM,CAAC,MAAM,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"fibonacci.js","sourceRoot":"","sources":["../../src/utils/fibonacci.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,SAAS,CAAC,CAAC,kBAAkB;IACjC,+GAA+G;IAC/G,IAAI,IAAI,GAA8B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,oFAAoF;IAEpF,SAAS,CAAC;QACR,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE;IAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,UAAU,CAClB,8CAA8C,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CACzC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EACtB,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAqB,EAAE;IACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,UAAU,CAClB,mDAAmD,MAAM,CAAC,MAAM,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC"}
package/package.json CHANGED
@@ -89,7 +89,7 @@
89
89
  "@isaacs/brace-expansion": "^5.0.1"
90
90
  },
91
91
  "name": "@codyswann/lisa",
92
- "version": "1.38.0",
92
+ "version": "1.39.1",
93
93
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
94
94
  "main": "dist/index.js",
95
95
  "bin": {
@@ -42,4 +42,4 @@ Configuration: .simplecov, update minimum_coverage to $ARGUMENTS%
42
42
  Verification: `bundle exec rspec` -> Expected: SimpleCov reports >= $ARGUMENTS% coverage
43
43
  ```
44
44
 
45
- Invoke `/plan-create` with this brief to create the implementation plan.
45
+ Invoke `/plan-execute` with this brief to create the implementation plan.
@@ -42,4 +42,4 @@ Fix strategies: extract methods, reduce complexity, apply auto-correct where saf
42
42
  Verification: `bundle exec rubocop --format simple 2>&1 | grep -E "($ARGUMENTS)" | wc -l` -> Expected: 0
43
43
  ```
44
44
 
45
- Invoke `/plan-create` with this brief to create the implementation plan.
45
+ Invoke `/plan-execute` with this brief to create the implementation plan.
@@ -45,4 +45,4 @@ Refactoring strategies: extract methods, early returns, extract conditions, use
45
45
  Verification: `bundle exec rubocop --only Metrics/CyclomaticComplexity --format simple 2>&1 | grep "offense" | wc -l` -> Expected: 0
46
46
  ```
47
47
 
48
- Invoke `/plan-create` with this brief to create the implementation plan.
48
+ Invoke `/plan-execute` with this brief to create the implementation plan.
@@ -43,4 +43,4 @@ Refactoring strategies: extract concerns, extract service objects, remove duplic
43
43
  Verification: `bundle exec rubocop --only Metrics/ClassLength,Metrics/ModuleLength --format simple 2>&1 | grep "offense" | wc -l` -> Expected: 0
44
44
  ```
45
45
 
46
- Invoke `/plan-create` with this brief to create the implementation plan.
46
+ Invoke `/plan-execute` with this brief to create the implementation plan.
@@ -43,4 +43,4 @@ Refactoring strategies: extract methods, early returns, extract conditions, use
43
43
  Verification: `bundle exec rubocop --only Metrics/MethodLength --format simple 2>&1 | grep "offense" | wc -l` -> Expected: 0
44
44
  ```
45
45
 
46
- Invoke `/plan-create` with this brief to create the implementation plan.
46
+ Invoke `/plan-execute` with this brief to create the implementation plan.
@@ -85,11 +85,7 @@ elif [ "$PACKAGE_MANAGER" = "bun" ]; then
85
85
  # Parent packages pin ^4.4.1; fix requires major version 5.x (incompatible)
86
86
  # Risk: None - CLI build tool, not a production runtime dependency
87
87
 
88
- # Excluding GHSA-43fc-jf86-j433: axios DoS via __proto__ key in mergeConfig
89
- # Transitive dependency via aws-amplify > @aws-amplify/api-rest > axios
90
- # bun overrides/resolutions cannot reach nested node_modules copies
91
- # Risk: Low - only affects server-side mergeConfig with attacker-controlled input
92
- if ! bun audit --audit-level=high --ignore GHSA-5j98-mcp5-4vw2 --ignore GHSA-8qq5-rm4j-mr97 --ignore GHSA-37qj-frw5-hhjh --ignore GHSA-43fc-jf86-j433; then
88
+ if ! bun audit --audit-level=high --ignore GHSA-5j98-mcp5-4vw2 --ignore GHSA-8qq5-rm4j-mr97 --ignore GHSA-37qj-frw5-hhjh; then
93
89
  echo "⚠️ Security audit failed. Please fix high/critical vulnerabilities before pushing."
94
90
  exit 1
95
91
  fi