@codyswann/lisa 2.116.2 → 2.117.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/dist/codex/hooks-installer.js +60 -16
- package/dist/codex/hooks-installer.js.map +1 -1
- package/dist/codex/scripts/inject-rules.sh +14 -2
- package/package.json +3 -2
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/inject-rules.sh +14 -3
- package/plugins/lisa/rules/eager/base-rules.md +70 -0
- package/plugins/lisa/rules/eager/coding-philosophy.md +27 -0
- package/plugins/lisa/rules/eager/config-resolution.md +28 -0
- package/plugins/lisa/rules/eager/documentation-source-paths.md +13 -0
- package/plugins/lisa/rules/eager/empirical-inquiry.md +22 -0
- package/plugins/lisa/rules/eager/intent-routing.md +18 -0
- package/plugins/lisa/rules/eager/leaf-only-lifecycle.md +39 -0
- package/plugins/lisa/rules/eager/prd-lifecycle-rollup.md +31 -0
- package/plugins/lisa/rules/eager/repo-scope-split.md +39 -0
- package/plugins/lisa/rules/eager/security-audit-handling.md +29 -0
- package/plugins/lisa/rules/eager/usage-accounting.md +28 -0
- package/plugins/lisa/rules/eager/verification.md +21 -0
- package/plugins/lisa/rules/eager/wiki-knowledge-source.md +16 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/inject-rules.sh +14 -3
- package/plugins/src/base/rules/eager/base-rules.md +70 -0
- package/plugins/src/base/rules/eager/coding-philosophy.md +27 -0
- package/plugins/src/base/rules/eager/config-resolution.md +28 -0
- package/plugins/src/base/rules/eager/documentation-source-paths.md +13 -0
- package/plugins/src/base/rules/eager/empirical-inquiry.md +22 -0
- package/plugins/src/base/rules/eager/intent-routing.md +18 -0
- package/plugins/src/base/rules/eager/leaf-only-lifecycle.md +39 -0
- package/plugins/src/base/rules/eager/prd-lifecycle-rollup.md +31 -0
- package/plugins/src/base/rules/eager/repo-scope-split.md +39 -0
- package/plugins/src/base/rules/eager/security-audit-handling.md +29 -0
- package/plugins/src/base/rules/eager/usage-accounting.md +28 -0
- package/plugins/src/base/rules/eager/verification.md +21 -0
- package/plugins/src/base/rules/eager/wiki-knowledge-source.md +16 -0
- package/scripts/check-rules-pairing.sh +91 -0
- /package/plugins/lisa/rules/{base-rules.md → reference/base-rules.md} +0 -0
- /package/plugins/lisa/rules/{coding-philosophy.md → reference/coding-philosophy.md} +0 -0
- /package/plugins/lisa/rules/{config-resolution.md → reference/config-resolution.md} +0 -0
- /package/plugins/lisa/rules/{documentation-source-paths.md → reference/documentation-source-paths.md} +0 -0
- /package/plugins/lisa/rules/{empirical-inquiry.md → reference/empirical-inquiry.md} +0 -0
- /package/plugins/lisa/rules/{intent-routing.md → reference/intent-routing.md} +0 -0
- /package/plugins/lisa/rules/{leaf-only-lifecycle.md → reference/leaf-only-lifecycle.md} +0 -0
- /package/plugins/lisa/rules/{prd-lifecycle-rollup.md → reference/prd-lifecycle-rollup.md} +0 -0
- /package/plugins/lisa/rules/{repo-scope-split.md → reference/repo-scope-split.md} +0 -0
- /package/plugins/lisa/rules/{security-audit-handling.md → reference/security-audit-handling.md} +0 -0
- /package/plugins/lisa/rules/{usage-accounting.md → reference/usage-accounting.md} +0 -0
- /package/plugins/lisa/rules/{verification.md → reference/verification.md} +0 -0
- /package/plugins/lisa/rules/{wiki-knowledge-source.md → reference/wiki-knowledge-source.md} +0 -0
- /package/plugins/src/base/rules/{base-rules.md → reference/base-rules.md} +0 -0
- /package/plugins/src/base/rules/{coding-philosophy.md → reference/coding-philosophy.md} +0 -0
- /package/plugins/src/base/rules/{config-resolution.md → reference/config-resolution.md} +0 -0
- /package/plugins/src/base/rules/{documentation-source-paths.md → reference/documentation-source-paths.md} +0 -0
- /package/plugins/src/base/rules/{empirical-inquiry.md → reference/empirical-inquiry.md} +0 -0
- /package/plugins/src/base/rules/{intent-routing.md → reference/intent-routing.md} +0 -0
- /package/plugins/src/base/rules/{leaf-only-lifecycle.md → reference/leaf-only-lifecycle.md} +0 -0
- /package/plugins/src/base/rules/{prd-lifecycle-rollup.md → reference/prd-lifecycle-rollup.md} +0 -0
- /package/plugins/src/base/rules/{repo-scope-split.md → reference/repo-scope-split.md} +0 -0
- /package/plugins/src/base/rules/{security-audit-handling.md → reference/security-audit-handling.md} +0 -0
- /package/plugins/src/base/rules/{usage-accounting.md → reference/usage-accounting.md} +0 -0
- /package/plugins/src/base/rules/{verification.md → reference/verification.md} +0 -0
- /package/plugins/src/base/rules/{wiki-knowledge-source.md → reference/wiki-knowledge-source.md} +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Fails if any plugin's rules/eager/X.md is missing its rules/reference/X.md
|
|
3
|
+
# pair (or vice versa). The eager/reference split documents the contract that
|
|
4
|
+
# every eager head points at a reference body for the long-form detail; an
|
|
5
|
+
# unpaired file means either a head without a body (broken breadcrumb) or a
|
|
6
|
+
# body without a head (orphaned, never injected).
|
|
7
|
+
#
|
|
8
|
+
# Bootstrap files are exempt: rules/eager/00-bootstrap.md (and any other file
|
|
9
|
+
# matching rules/eager/00-*.md) is allowed to have no reference pair. The
|
|
10
|
+
# leading "00-" prefix marks files that are eager-only by design.
|
|
11
|
+
#
|
|
12
|
+
# Skip rule: a rule may opt out of pairing by listing its basename in
|
|
13
|
+
# rules/.pair-exempt — one filename per line, comments start with `#`. Use
|
|
14
|
+
# sparingly; the default expectation is that every eager file pairs.
|
|
15
|
+
set -euo pipefail
|
|
16
|
+
|
|
17
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
18
|
+
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
19
|
+
cd "$ROOT_DIR"
|
|
20
|
+
|
|
21
|
+
failed=0
|
|
22
|
+
|
|
23
|
+
check_plugin() {
|
|
24
|
+
local rules_dir="$1"
|
|
25
|
+
local eager_dir="$rules_dir/eager"
|
|
26
|
+
local reference_dir="$rules_dir/reference"
|
|
27
|
+
|
|
28
|
+
# Skip plugins that haven't adopted the split yet (no eager/ subdir).
|
|
29
|
+
[ -d "$eager_dir" ] || return 0
|
|
30
|
+
|
|
31
|
+
# Build the opt-out list, if present.
|
|
32
|
+
local exempt_file="$rules_dir/.pair-exempt"
|
|
33
|
+
local exempt_pattern=""
|
|
34
|
+
if [ -f "$exempt_file" ]; then
|
|
35
|
+
exempt_pattern="$(grep -v '^[[:space:]]*#' "$exempt_file" | grep -v '^[[:space:]]*$' || true)"
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# Every eager/X.md (except 00-bootstrap-style files and explicit exemptions)
|
|
39
|
+
# must have a reference/X.md pair.
|
|
40
|
+
while IFS= read -r eager_file; do
|
|
41
|
+
local base
|
|
42
|
+
base="$(basename "$eager_file")"
|
|
43
|
+
# Built-in exemption for bootstrap files.
|
|
44
|
+
case "$base" in
|
|
45
|
+
00-*) continue ;;
|
|
46
|
+
esac
|
|
47
|
+
# User-declared exemptions.
|
|
48
|
+
if [ -n "$exempt_pattern" ] && echo "$exempt_pattern" | grep -qxF "$base"; then
|
|
49
|
+
continue
|
|
50
|
+
fi
|
|
51
|
+
if [ ! -f "$reference_dir/$base" ]; then
|
|
52
|
+
echo "✗ Missing reference body for eager rule: $eager_file" >&2
|
|
53
|
+
echo " Expected: $reference_dir/$base" >&2
|
|
54
|
+
failed=1
|
|
55
|
+
fi
|
|
56
|
+
done < <(find "$eager_dir" -maxdepth 1 -type f -name '*.md' | sort)
|
|
57
|
+
|
|
58
|
+
# Every reference/X.md must have an eager/X.md pair (catch orphans on the
|
|
59
|
+
# other side: a reference body with no breadcrumb pointing to it is dead).
|
|
60
|
+
if [ -d "$reference_dir" ]; then
|
|
61
|
+
while IFS= read -r ref_file; do
|
|
62
|
+
local base
|
|
63
|
+
base="$(basename "$ref_file")"
|
|
64
|
+
if [ -n "$exempt_pattern" ] && echo "$exempt_pattern" | grep -qxF "$base"; then
|
|
65
|
+
continue
|
|
66
|
+
fi
|
|
67
|
+
if [ ! -f "$eager_dir/$base" ]; then
|
|
68
|
+
echo "✗ Orphaned reference body (no eager head): $ref_file" >&2
|
|
69
|
+
echo " Expected: $eager_dir/$base" >&2
|
|
70
|
+
failed=1
|
|
71
|
+
fi
|
|
72
|
+
done < <(find "$reference_dir" -maxdepth 1 -type f -name '*.md' | sort)
|
|
73
|
+
fi
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
# Check every plugins/*/rules and plugins/src/*/rules directory.
|
|
77
|
+
while IFS= read -r rules_dir; do
|
|
78
|
+
check_plugin "$rules_dir"
|
|
79
|
+
done < <(find "$ROOT_DIR/plugins" -type d -name rules | sort)
|
|
80
|
+
|
|
81
|
+
if [ "$failed" -ne 0 ]; then
|
|
82
|
+
echo "" >&2
|
|
83
|
+
echo " Every rules/eager/X.md must have a paired rules/reference/X.md" >&2
|
|
84
|
+
echo " (and vice versa) so the eager head's breadcrumb to the full" >&2
|
|
85
|
+
echo " reference body resolves. To exempt a file, either name it" >&2
|
|
86
|
+
echo " 00-*.md (bootstrap convention) or list its basename in" >&2
|
|
87
|
+
echo " <plugin>/rules/.pair-exempt (one per line)." >&2
|
|
88
|
+
exit 1
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
echo "✓ Every eager rule has its paired reference body (and vice versa)."
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/plugins/lisa/rules/{security-audit-handling.md → reference/security-audit-handling.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/plugins/src/base/rules/{prd-lifecycle-rollup.md → reference/prd-lifecycle-rollup.md}
RENAMED
|
File without changes
|
|
File without changes
|
/package/plugins/src/base/rules/{security-audit-handling.md → reference/security-audit-handling.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/plugins/src/base/rules/{wiki-knowledge-source.md → reference/wiki-knowledge-source.md}
RENAMED
|
File without changes
|