@codyswann/lisa 2.8.10 → 2.9.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.
- package/dist/core/lisa.d.ts +64 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +112 -31
- package/dist/core/lisa.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +37 -1
- package/plugins/lisa/hooks/enforce-team-first.sh +169 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/.claude-plugin/plugin.json +20 -1
- package/plugins/src/base/hooks/enforce-team-first.sh +169 -0
package/dist/core/lisa.d.ts
CHANGED
|
@@ -35,6 +35,21 @@ export declare class Lisa {
|
|
|
35
35
|
* causing ENOENT races for any concurrent linter/file-watcher).
|
|
36
36
|
*/
|
|
37
37
|
private pendingDeletions;
|
|
38
|
+
/**
|
|
39
|
+
* Maps each relative path shipped by any type's `create-only/` tree to the
|
|
40
|
+
* single type that "owns" it (most-specific wins). Computed once before
|
|
41
|
+
* strategies run; consulted while processing `create-only` to suppress
|
|
42
|
+
* parent-type sources for paths that a child type also ships.
|
|
43
|
+
*
|
|
44
|
+
* Motivating case: CDK projects detect as both `typescript` and `cdk`.
|
|
45
|
+
* Both ship `.github/workflows/ci.yml` under their `create-only/` trees.
|
|
46
|
+
* Without this map, typescript's bun-mode ci.yml runs first and creates
|
|
47
|
+
* the file; cdk's npm-mode + determine_environment ci.yml then sees the
|
|
48
|
+
* file already exists and is silently skipped — producing a CDK project
|
|
49
|
+
* wired to use bun, which fails immediately in CI because CDK projects
|
|
50
|
+
* have `engines.bun = "please-use-npm"` and only a `package-lock.json`.
|
|
51
|
+
*/
|
|
52
|
+
private createOnlyOwnership;
|
|
38
53
|
private readonly separator;
|
|
39
54
|
private readonly lisaignoreSuffix;
|
|
40
55
|
/**
|
|
@@ -72,6 +87,30 @@ export declare class Lisa {
|
|
|
72
87
|
* @returns Promise that resolves once pending deletions have been collected
|
|
73
88
|
*/
|
|
74
89
|
private loadPendingDeletions;
|
|
90
|
+
/**
|
|
91
|
+
* Pre-compute, for every relative path shipped by any type's `create-only/`
|
|
92
|
+
* directory, which single type "owns" it. The owner is the most-specific
|
|
93
|
+
* detected type — i.e., the last entry in [all, ...detectedTypes] (already
|
|
94
|
+
* canonically ordered parent-before-child by `expandAndOrderTypes`).
|
|
95
|
+
*
|
|
96
|
+
* Why this is needed: the `create-only` strategy intentionally does nothing
|
|
97
|
+
* when the destination file already exists. Combined with the per-type
|
|
98
|
+
* outer loop in `processConfigurations`, that means the *first* type to
|
|
99
|
+
* ship a `create-only/<path>` creates the file and every later type's
|
|
100
|
+
* version is silently skipped. For paths that overlap between a parent
|
|
101
|
+
* stack (typescript) and a child stack (cdk/expo/nestjs/npm-package), this
|
|
102
|
+
* lets the parent win — the exact opposite of the rest of Lisa's
|
|
103
|
+
* "child overrides parent" semantics. See `copy-overwrite` for comparison:
|
|
104
|
+
* because it always overwrites, the per-type ordering naturally lets
|
|
105
|
+
* children win. `create-only` needs explicit help.
|
|
106
|
+
*
|
|
107
|
+
* The fix: the orchestrator pre-computes this ownership map and, while
|
|
108
|
+
* processing `create-only`, skips any source whose owning type isn't the
|
|
109
|
+
* current one. The result is that exactly one source wins per path — the
|
|
110
|
+
* most-specific detected type.
|
|
111
|
+
* @returns Promise that resolves once ownership has been resolved
|
|
112
|
+
*/
|
|
113
|
+
private loadCreateOnlyOwnership;
|
|
75
114
|
/**
|
|
76
115
|
* Read the set of paths a single type's deletions.json will delete,
|
|
77
116
|
* filtered by the type's `keep` list. Returns an empty array when the file
|
|
@@ -202,8 +241,33 @@ export declare class Lisa {
|
|
|
202
241
|
* @param strategy Strategy to apply
|
|
203
242
|
* @param strategy.name Strategy name
|
|
204
243
|
* @param strategy.apply Apply function
|
|
244
|
+
* @param currentType Project type (e.g. "all", "typescript", "cdk") supplying these files
|
|
205
245
|
*/
|
|
206
246
|
private processDirectory;
|
|
247
|
+
/**
|
|
248
|
+
* Decide whether a candidate source file should be passed to its strategy.
|
|
249
|
+
* Centralizes three independent skip rules that all need to short-circuit
|
|
250
|
+
* before a strategy ever sees the file:
|
|
251
|
+
*
|
|
252
|
+
* 1. `.lisaignore` patterns from the destination project
|
|
253
|
+
* 2. Pending deletions from any detected type's `deletions.json`
|
|
254
|
+
* (avoids the create-then-delete ENOENT race)
|
|
255
|
+
* 3. Create-only ownership conflicts (parent stack ships a path that a
|
|
256
|
+
* child stack also ships under create-only — child wins)
|
|
257
|
+
* @param relativePath - Path relative to the strategy's source directory
|
|
258
|
+
* @param strategyName - Name of the strategy that would apply the file
|
|
259
|
+
* @param currentType - Project type currently being processed
|
|
260
|
+
* @returns True if the strategy should apply the file, false to skip
|
|
261
|
+
*/
|
|
262
|
+
private shouldProcessFile;
|
|
263
|
+
/**
|
|
264
|
+
* Emit a "would skip"/"skipped" log line in a single place so all the skip
|
|
265
|
+
* branches in `shouldProcessFile` stay symmetric.
|
|
266
|
+
* @param dryReason - Reason text for dry-run mode
|
|
267
|
+
* @param relativePath - Path being skipped
|
|
268
|
+
* @param applyMessage - Message to log when not in dry-run mode
|
|
269
|
+
*/
|
|
270
|
+
private logSkip;
|
|
207
271
|
/**
|
|
208
272
|
* Handle overwrite prompt for conflicting files
|
|
209
273
|
* @param relativePath Relative path of the file
|
package/dist/core/lisa.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa.d.ts","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,iBAAiB,EAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAwB,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAc9D,OAAO,KAAK,EAIV,UAAU,EACV,UAAU,EAGX,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;CAC/C;AAED;;GAEG;AACH,qBAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"lisa.d.ts","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"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"}
|
package/dist/core/lisa.js
CHANGED
|
@@ -34,6 +34,21 @@ export class Lisa {
|
|
|
34
34
|
* causing ENOENT races for any concurrent linter/file-watcher).
|
|
35
35
|
*/
|
|
36
36
|
pendingDeletions = new Set();
|
|
37
|
+
/**
|
|
38
|
+
* Maps each relative path shipped by any type's `create-only/` tree to the
|
|
39
|
+
* single type that "owns" it (most-specific wins). Computed once before
|
|
40
|
+
* strategies run; consulted while processing `create-only` to suppress
|
|
41
|
+
* parent-type sources for paths that a child type also ships.
|
|
42
|
+
*
|
|
43
|
+
* Motivating case: CDK projects detect as both `typescript` and `cdk`.
|
|
44
|
+
* Both ship `.github/workflows/ci.yml` under their `create-only/` trees.
|
|
45
|
+
* Without this map, typescript's bun-mode ci.yml runs first and creates
|
|
46
|
+
* the file; cdk's npm-mode + determine_environment ci.yml then sees the
|
|
47
|
+
* file already exists and is silently skipped — producing a CDK project
|
|
48
|
+
* wired to use bun, which fails immediately in CI because CDK projects
|
|
49
|
+
* have `engines.bun = "please-use-npm"` and only a `package-lock.json`.
|
|
50
|
+
*/
|
|
51
|
+
createOnlyOwnership = new Map();
|
|
37
52
|
separator = "========================================";
|
|
38
53
|
lisaignoreSuffix = "(.lisaignore)";
|
|
39
54
|
/**
|
|
@@ -114,6 +129,45 @@ export class Lisa {
|
|
|
114
129
|
}
|
|
115
130
|
this.pendingDeletions = pending;
|
|
116
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Pre-compute, for every relative path shipped by any type's `create-only/`
|
|
134
|
+
* directory, which single type "owns" it. The owner is the most-specific
|
|
135
|
+
* detected type — i.e., the last entry in [all, ...detectedTypes] (already
|
|
136
|
+
* canonically ordered parent-before-child by `expandAndOrderTypes`).
|
|
137
|
+
*
|
|
138
|
+
* Why this is needed: the `create-only` strategy intentionally does nothing
|
|
139
|
+
* when the destination file already exists. Combined with the per-type
|
|
140
|
+
* outer loop in `processConfigurations`, that means the *first* type to
|
|
141
|
+
* ship a `create-only/<path>` creates the file and every later type's
|
|
142
|
+
* version is silently skipped. For paths that overlap between a parent
|
|
143
|
+
* stack (typescript) and a child stack (cdk/expo/nestjs/npm-package), this
|
|
144
|
+
* lets the parent win — the exact opposite of the rest of Lisa's
|
|
145
|
+
* "child overrides parent" semantics. See `copy-overwrite` for comparison:
|
|
146
|
+
* because it always overwrites, the per-type ordering naturally lets
|
|
147
|
+
* children win. `create-only` needs explicit help.
|
|
148
|
+
*
|
|
149
|
+
* The fix: the orchestrator pre-computes this ownership map and, while
|
|
150
|
+
* processing `create-only`, skips any source whose owning type isn't the
|
|
151
|
+
* current one. The result is that exactly one source wins per path — the
|
|
152
|
+
* most-specific detected type.
|
|
153
|
+
* @returns Promise that resolves once ownership has been resolved
|
|
154
|
+
*/
|
|
155
|
+
async loadCreateOnlyOwnership() {
|
|
156
|
+
const ownership = new Map();
|
|
157
|
+
for (const type of ["all", ...this.detectedTypes]) {
|
|
158
|
+
const createOnlyDir = path.join(this.config.lisaDir, type, "create-only");
|
|
159
|
+
if (!(await fse.pathExists(createOnlyDir))) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const files = await listFilesRecursive(createOnlyDir);
|
|
163
|
+
for (const file of files) {
|
|
164
|
+
const relativePath = path.relative(createOnlyDir, file);
|
|
165
|
+
// Later types overwrite earlier ones, so child wins over parent.
|
|
166
|
+
ownership.set(relativePath, type);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
this.createOnlyOwnership = ownership;
|
|
170
|
+
}
|
|
117
171
|
/**
|
|
118
172
|
* Read the set of paths a single type's deletions.json will delete,
|
|
119
173
|
* filtered by the type's `keep` list. Returns an empty array when the file
|
|
@@ -397,6 +451,7 @@ export class Lisa {
|
|
|
397
451
|
await this.initServices();
|
|
398
452
|
await this.detectTypes();
|
|
399
453
|
await this.loadPendingDeletions();
|
|
454
|
+
await this.loadCreateOnlyOwnership();
|
|
400
455
|
await this.runMigrationsBeforeStrategies();
|
|
401
456
|
const prePackageJsonHash = hashFile(path.join(this.config.destDir, "package.json"));
|
|
402
457
|
await this.processConfigurations();
|
|
@@ -536,7 +591,7 @@ export class Lisa {
|
|
|
536
591
|
const srcDir = path.join(this.config.lisaDir, type, strategy);
|
|
537
592
|
if (await fse.pathExists(srcDir)) {
|
|
538
593
|
logger.info(`Processing ${type}/${strategy}...`);
|
|
539
|
-
await this.processDirectory(srcDir, strategyRegistry.get(strategy));
|
|
594
|
+
await this.processDirectory(srcDir, strategyRegistry.get(strategy), type);
|
|
540
595
|
}
|
|
541
596
|
}
|
|
542
597
|
}
|
|
@@ -546,38 +601,11 @@ export class Lisa {
|
|
|
546
601
|
* @param strategy Strategy to apply
|
|
547
602
|
* @param strategy.name Strategy name
|
|
548
603
|
* @param strategy.apply Apply function
|
|
604
|
+
* @param currentType Project type (e.g. "all", "typescript", "cdk") supplying these files
|
|
549
605
|
*/
|
|
550
|
-
async processDirectory(srcDir, strategy) {
|
|
551
|
-
const { logger } = this.deps;
|
|
606
|
+
async processDirectory(srcDir, strategy, currentType) {
|
|
552
607
|
const allFiles = await listFilesRecursive(srcDir);
|
|
553
|
-
|
|
554
|
-
// Pending-deletion filtering prevents the create-then-delete churn (and
|
|
555
|
-
// associated ENOENT races) when a parent type ships a file the child type
|
|
556
|
-
// removes, e.g., CDK removes typescript's jest.* files.
|
|
557
|
-
const files = allFiles.filter(srcFile => {
|
|
558
|
-
const relativePath = path.relative(srcDir, srcFile);
|
|
559
|
-
if (this.ignorePatterns.shouldIgnore(relativePath)) {
|
|
560
|
-
this.counters.ignored++;
|
|
561
|
-
if (this.config.dryRun) {
|
|
562
|
-
logger.dry(`Would skip (ignored): ${relativePath}`);
|
|
563
|
-
}
|
|
564
|
-
else {
|
|
565
|
-
logger.info(`Ignored: ${relativePath}`);
|
|
566
|
-
}
|
|
567
|
-
return false;
|
|
568
|
-
}
|
|
569
|
-
if (this.pendingDeletions.has(relativePath)) {
|
|
570
|
-
this.counters.skipped++;
|
|
571
|
-
if (this.config.dryRun) {
|
|
572
|
-
logger.dry(`Would skip (pending deletion by detected type): ${relativePath}`);
|
|
573
|
-
}
|
|
574
|
-
else {
|
|
575
|
-
logger.info(`Skipped (pending deletion): ${relativePath}`);
|
|
576
|
-
}
|
|
577
|
-
return false;
|
|
578
|
-
}
|
|
579
|
-
return true;
|
|
580
|
-
});
|
|
608
|
+
const files = allFiles.filter(srcFile => this.shouldProcessFile(path.relative(srcDir, srcFile), strategy.name, currentType));
|
|
581
609
|
const context = {
|
|
582
610
|
config: this.config,
|
|
583
611
|
backupFile: async (absolutePath) => {
|
|
@@ -596,6 +624,59 @@ export class Lisa {
|
|
|
596
624
|
this.logResult(result);
|
|
597
625
|
}
|
|
598
626
|
}
|
|
627
|
+
/**
|
|
628
|
+
* Decide whether a candidate source file should be passed to its strategy.
|
|
629
|
+
* Centralizes three independent skip rules that all need to short-circuit
|
|
630
|
+
* before a strategy ever sees the file:
|
|
631
|
+
*
|
|
632
|
+
* 1. `.lisaignore` patterns from the destination project
|
|
633
|
+
* 2. Pending deletions from any detected type's `deletions.json`
|
|
634
|
+
* (avoids the create-then-delete ENOENT race)
|
|
635
|
+
* 3. Create-only ownership conflicts (parent stack ships a path that a
|
|
636
|
+
* child stack also ships under create-only — child wins)
|
|
637
|
+
* @param relativePath - Path relative to the strategy's source directory
|
|
638
|
+
* @param strategyName - Name of the strategy that would apply the file
|
|
639
|
+
* @param currentType - Project type currently being processed
|
|
640
|
+
* @returns True if the strategy should apply the file, false to skip
|
|
641
|
+
*/
|
|
642
|
+
shouldProcessFile(relativePath, strategyName, currentType) {
|
|
643
|
+
if (this.ignorePatterns.shouldIgnore(relativePath)) {
|
|
644
|
+
this.counters.ignored++;
|
|
645
|
+
this.logSkip(`ignored`, relativePath, "Ignored");
|
|
646
|
+
return false;
|
|
647
|
+
}
|
|
648
|
+
if (this.pendingDeletions.has(relativePath)) {
|
|
649
|
+
this.counters.skipped++;
|
|
650
|
+
this.logSkip("pending deletion by detected type", relativePath, "Skipped (pending deletion)");
|
|
651
|
+
return false;
|
|
652
|
+
}
|
|
653
|
+
if (strategyName === "create-only") {
|
|
654
|
+
const owner = this.createOnlyOwnership.get(relativePath);
|
|
655
|
+
if (owner !== undefined && owner !== currentType) {
|
|
656
|
+
this.counters.skipped++;
|
|
657
|
+
const reason = `overridden by ${owner}/create-only`;
|
|
658
|
+
this.logSkip(reason, relativePath, `Skipped (${reason})`);
|
|
659
|
+
return false;
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
return true;
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Emit a "would skip"/"skipped" log line in a single place so all the skip
|
|
666
|
+
* branches in `shouldProcessFile` stay symmetric.
|
|
667
|
+
* @param dryReason - Reason text for dry-run mode
|
|
668
|
+
* @param relativePath - Path being skipped
|
|
669
|
+
* @param applyMessage - Message to log when not in dry-run mode
|
|
670
|
+
*/
|
|
671
|
+
logSkip(dryReason, relativePath, applyMessage) {
|
|
672
|
+
const { logger } = this.deps;
|
|
673
|
+
if (this.config.dryRun) {
|
|
674
|
+
logger.dry(`Would skip (${dryReason}): ${relativePath}`);
|
|
675
|
+
}
|
|
676
|
+
else {
|
|
677
|
+
logger.info(`${applyMessage}: ${relativePath}`);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
599
680
|
/**
|
|
600
681
|
* Handle overwrite prompt for conflicting files
|
|
601
682
|
* @param relativePath Relative path of the file
|
package/dist/core/lisa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa.js","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lisa.js","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"lodash": ">=4.18.1"
|
|
80
80
|
},
|
|
81
81
|
"name": "@codyswann/lisa",
|
|
82
|
-
"version": "2.
|
|
82
|
+
"version": "2.9.1",
|
|
83
83
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
84
84
|
"main": "dist/index.js",
|
|
85
85
|
"exports": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.1",
|
|
4
4
|
"description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -15,6 +15,15 @@
|
|
|
15
15
|
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code user-prompt-submit || true"
|
|
16
16
|
}
|
|
17
17
|
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"matcher": "",
|
|
21
|
+
"hooks": [
|
|
22
|
+
{
|
|
23
|
+
"type": "command",
|
|
24
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
18
27
|
}
|
|
19
28
|
],
|
|
20
29
|
"PostToolUse": [
|
|
@@ -35,6 +44,15 @@
|
|
|
35
44
|
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-todo || true"
|
|
36
45
|
}
|
|
37
46
|
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"matcher": "TeamCreate",
|
|
50
|
+
"hooks": [
|
|
51
|
+
{
|
|
52
|
+
"type": "command",
|
|
53
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
38
56
|
}
|
|
39
57
|
],
|
|
40
58
|
"PreToolUse": [
|
|
@@ -55,6 +73,15 @@
|
|
|
55
73
|
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/block-no-verify.sh"
|
|
56
74
|
}
|
|
57
75
|
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"matcher": "",
|
|
79
|
+
"hooks": [
|
|
80
|
+
{
|
|
81
|
+
"type": "command",
|
|
82
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh"
|
|
83
|
+
}
|
|
84
|
+
]
|
|
58
85
|
}
|
|
59
86
|
],
|
|
60
87
|
"Stop": [
|
|
@@ -133,6 +160,15 @@
|
|
|
133
160
|
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/inject-flow-context.sh"
|
|
134
161
|
}
|
|
135
162
|
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"matcher": "",
|
|
166
|
+
"hooks": [
|
|
167
|
+
{
|
|
168
|
+
"type": "command",
|
|
169
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh"
|
|
170
|
+
}
|
|
171
|
+
]
|
|
136
172
|
}
|
|
137
173
|
],
|
|
138
174
|
"SessionEnd": [
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Enforces team-first orchestration for lifecycle skills.
|
|
3
|
+
#
|
|
4
|
+
# Triggered on four hook events:
|
|
5
|
+
# - UserPromptSubmit : detects /lisa:research|plan|implement|intake in the
|
|
6
|
+
# raw prompt and arms enforcement for the session
|
|
7
|
+
# - PreToolUse : detects the same skills via a `Skill` tool call,
|
|
8
|
+
# arms enforcement, and blocks bypass tool calls
|
|
9
|
+
# until ToolSearch+TeamCreate have fired
|
|
10
|
+
# - PostToolUse : on a successful TeamCreate, marks the session as
|
|
11
|
+
# team-created (lifts enforcement)
|
|
12
|
+
# - SubagentStart : marks the new subagent session as a teammate so
|
|
13
|
+
# it is exempt — teammates inherit the lead's team
|
|
14
|
+
# and must never call TeamCreate (double-create
|
|
15
|
+
# is rejected by the harness)
|
|
16
|
+
#
|
|
17
|
+
# Per-session state lives under "$STATE_DIR" as flag files keyed by
|
|
18
|
+
# session_id. Stale state (>24h) is cleaned on each invocation.
|
|
19
|
+
#
|
|
20
|
+
# Fail-open: any unexpected jq parse failure or missing field exits 0
|
|
21
|
+
# rather than blocking. A broken hook must never brick a session.
|
|
22
|
+
|
|
23
|
+
set -uo pipefail
|
|
24
|
+
|
|
25
|
+
INPUT=$(cat 2>/dev/null || true)
|
|
26
|
+
if [ -z "$INPUT" ]; then
|
|
27
|
+
exit 0
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
HOOK_EVENT=$(printf '%s' "$INPUT" | jq -r '.hook_event_name // empty' 2>/dev/null || true)
|
|
31
|
+
SESSION_ID=$(printf '%s' "$INPUT" | jq -r '.session_id // empty' 2>/dev/null || true)
|
|
32
|
+
|
|
33
|
+
if [ -z "$SESSION_ID" ]; then
|
|
34
|
+
exit 0
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
STATE_DIR="${TMPDIR:-/tmp}/lisa-team-enforce"
|
|
38
|
+
mkdir -p "$STATE_DIR" 2>/dev/null || exit 0
|
|
39
|
+
|
|
40
|
+
SUBAGENT_FLAG="${STATE_DIR}/${SESSION_ID}.subagent"
|
|
41
|
+
SKILL_FLAG="${STATE_DIR}/${SESSION_ID}.skill"
|
|
42
|
+
TEAM_FLAG="${STATE_DIR}/${SESSION_ID}.team"
|
|
43
|
+
|
|
44
|
+
# Best-effort cleanup of stale state files. Errors are ignored.
|
|
45
|
+
find "$STATE_DIR" -maxdepth 1 -type f -mmin +1440 -delete 2>/dev/null || true
|
|
46
|
+
|
|
47
|
+
is_lifecycle_skill() {
|
|
48
|
+
case "$1" in
|
|
49
|
+
lisa:research|lisa:plan|lisa:implement|lisa:intake) return 0 ;;
|
|
50
|
+
*) return 1 ;;
|
|
51
|
+
esac
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
case "$HOOK_EVENT" in
|
|
55
|
+
SubagentStart)
|
|
56
|
+
touch "$SUBAGENT_FLAG" 2>/dev/null || true
|
|
57
|
+
exit 0
|
|
58
|
+
;;
|
|
59
|
+
|
|
60
|
+
UserPromptSubmit)
|
|
61
|
+
PROMPT=$(printf '%s' "$INPUT" | jq -r '.prompt // empty' 2>/dev/null || true)
|
|
62
|
+
if [ -n "$PROMPT" ]; then
|
|
63
|
+
# Match a slash command at the start of the prompt (allow optional whitespace).
|
|
64
|
+
LEADING=$(printf '%s' "$PROMPT" | sed -n '1p' | sed -E 's/^[[:space:]]*//')
|
|
65
|
+
case "$LEADING" in
|
|
66
|
+
/lisa:research*|/lisa:plan*|/lisa:implement*|/lisa:intake*)
|
|
67
|
+
# Strip leading slash and any args after the first whitespace.
|
|
68
|
+
SKILL_NAME=$(printf '%s' "$LEADING" | sed -E 's|^/||; s/[[:space:]].*$//')
|
|
69
|
+
printf '%s\n' "$SKILL_NAME" >"$SKILL_FLAG" 2>/dev/null || true
|
|
70
|
+
;;
|
|
71
|
+
esac
|
|
72
|
+
fi
|
|
73
|
+
exit 0
|
|
74
|
+
;;
|
|
75
|
+
|
|
76
|
+
PostToolUse)
|
|
77
|
+
TOOL_NAME=$(printf '%s' "$INPUT" | jq -r '.tool_name // empty' 2>/dev/null || true)
|
|
78
|
+
if [ "$TOOL_NAME" = "TeamCreate" ]; then
|
|
79
|
+
ERROR=$(printf '%s' "$INPUT" | jq -r '.tool_response.error // empty' 2>/dev/null || true)
|
|
80
|
+
IS_ERROR=$(printf '%s' "$INPUT" | jq -r '.tool_response.is_error // empty' 2>/dev/null || true)
|
|
81
|
+
if [ -z "$ERROR" ] && [ "$IS_ERROR" != "true" ]; then
|
|
82
|
+
touch "$TEAM_FLAG" 2>/dev/null || true
|
|
83
|
+
fi
|
|
84
|
+
fi
|
|
85
|
+
exit 0
|
|
86
|
+
;;
|
|
87
|
+
|
|
88
|
+
PreToolUse)
|
|
89
|
+
: # fall through
|
|
90
|
+
;;
|
|
91
|
+
|
|
92
|
+
*)
|
|
93
|
+
exit 0
|
|
94
|
+
;;
|
|
95
|
+
esac
|
|
96
|
+
|
|
97
|
+
# --- PreToolUse enforcement path ---
|
|
98
|
+
|
|
99
|
+
# Teammates inherit the team; never enforce on subagent sessions.
|
|
100
|
+
if [ -f "$SUBAGENT_FLAG" ]; then
|
|
101
|
+
exit 0
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
TOOL_NAME=$(printf '%s' "$INPUT" | jq -r '.tool_name // empty' 2>/dev/null || true)
|
|
105
|
+
if [ -z "$TOOL_NAME" ]; then
|
|
106
|
+
exit 0
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Detect lifecycle skill invocation via the Skill tool.
|
|
110
|
+
if [ "$TOOL_NAME" = "Skill" ]; then
|
|
111
|
+
SKILL_NAME=$(printf '%s' "$INPUT" | jq -r '.tool_input.skill // empty' 2>/dev/null || true)
|
|
112
|
+
if is_lifecycle_skill "$SKILL_NAME"; then
|
|
113
|
+
printf '%s\n' "$SKILL_NAME" >"$SKILL_FLAG" 2>/dev/null || true
|
|
114
|
+
# The skill load itself is allowed; enforcement begins on the next call.
|
|
115
|
+
exit 0
|
|
116
|
+
fi
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
# No lifecycle skill armed — nothing to enforce.
|
|
120
|
+
if [ ! -f "$SKILL_FLAG" ]; then
|
|
121
|
+
exit 0
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
# Team has been created — enforcement complete.
|
|
125
|
+
if [ -f "$TEAM_FLAG" ]; then
|
|
126
|
+
exit 0
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
# These two are the path forward; never block them.
|
|
130
|
+
case "$TOOL_NAME" in
|
|
131
|
+
ToolSearch|TeamCreate)
|
|
132
|
+
exit 0
|
|
133
|
+
;;
|
|
134
|
+
esac
|
|
135
|
+
|
|
136
|
+
# Determine whether this tool is a bypass path. Anything not in this set
|
|
137
|
+
# is allowed (e.g. TodoWrite, AskUserQuestion, ExitPlanMode) so we don't
|
|
138
|
+
# over-block.
|
|
139
|
+
should_block=0
|
|
140
|
+
case "$TOOL_NAME" in
|
|
141
|
+
Task|TaskCreate|TaskGet|TaskList|TaskOutput|TaskStop|TaskUpdate)
|
|
142
|
+
should_block=1 ;;
|
|
143
|
+
Skill|Read|Write|Edit|MultiEdit|NotebookEdit|Bash|Grep|Glob|WebSearch|WebFetch)
|
|
144
|
+
should_block=1 ;;
|
|
145
|
+
mcp__*)
|
|
146
|
+
should_block=1 ;;
|
|
147
|
+
esac
|
|
148
|
+
|
|
149
|
+
if [ "$should_block" -eq 0 ]; then
|
|
150
|
+
exit 0
|
|
151
|
+
fi
|
|
152
|
+
|
|
153
|
+
ACTIVE_SKILL=$(cat "$SKILL_FLAG" 2>/dev/null || echo "lisa:???")
|
|
154
|
+
cat >&2 <<EOF
|
|
155
|
+
Blocked: this session invoked /${ACTIVE_SKILL}, which is an agent-team flow.
|
|
156
|
+
Before any other tool call, you must:
|
|
157
|
+
|
|
158
|
+
1. ToolSearch with query: "select:TeamCreate" (load the deferred schema)
|
|
159
|
+
2. TeamCreate (actually create the team)
|
|
160
|
+
|
|
161
|
+
The current attempt to call \`${TOOL_NAME}\` is a team-bypass path. Reading
|
|
162
|
+
the ticket, exploring the code, fetching context — those are tasks for the
|
|
163
|
+
team you are about to create, not for the lead session before the team
|
|
164
|
+
exists.
|
|
165
|
+
|
|
166
|
+
Re-read the orchestration preamble in /${ACTIVE_SKILL} and start with
|
|
167
|
+
ToolSearch.
|
|
168
|
+
EOF
|
|
169
|
+
exit 2
|
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code user-prompt-submit || true"
|
|
14
14
|
}
|
|
15
15
|
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"matcher": "",
|
|
19
|
+
"hooks": [
|
|
20
|
+
{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh" }
|
|
21
|
+
]
|
|
16
22
|
}
|
|
17
23
|
],
|
|
18
24
|
"PostToolUse": [
|
|
@@ -27,6 +33,12 @@
|
|
|
27
33
|
"hooks": [
|
|
28
34
|
{ "type": "command", "command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-todo || true" }
|
|
29
35
|
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"matcher": "TeamCreate",
|
|
39
|
+
"hooks": [
|
|
40
|
+
{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh" }
|
|
41
|
+
]
|
|
30
42
|
}
|
|
31
43
|
],
|
|
32
44
|
"PreToolUse": [
|
|
@@ -41,6 +53,12 @@
|
|
|
41
53
|
"hooks": [
|
|
42
54
|
{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/block-no-verify.sh" }
|
|
43
55
|
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"matcher": "",
|
|
59
|
+
"hooks": [
|
|
60
|
+
{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh" }
|
|
61
|
+
]
|
|
44
62
|
}
|
|
45
63
|
],
|
|
46
64
|
"Stop": [
|
|
@@ -55,7 +73,8 @@
|
|
|
55
73
|
],
|
|
56
74
|
"SubagentStart": [
|
|
57
75
|
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/inject-rules.sh" }] },
|
|
58
|
-
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/inject-flow-context.sh" }] }
|
|
76
|
+
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/inject-flow-context.sh" }] },
|
|
77
|
+
{ "matcher": "", "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/hooks/enforce-team-first.sh" }] }
|
|
59
78
|
],
|
|
60
79
|
"SessionEnd": [
|
|
61
80
|
{ "matcher": "", "hooks": [{ "type": "command", "command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-end || true" }] }
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Enforces team-first orchestration for lifecycle skills.
|
|
3
|
+
#
|
|
4
|
+
# Triggered on four hook events:
|
|
5
|
+
# - UserPromptSubmit : detects /lisa:research|plan|implement|intake in the
|
|
6
|
+
# raw prompt and arms enforcement for the session
|
|
7
|
+
# - PreToolUse : detects the same skills via a `Skill` tool call,
|
|
8
|
+
# arms enforcement, and blocks bypass tool calls
|
|
9
|
+
# until ToolSearch+TeamCreate have fired
|
|
10
|
+
# - PostToolUse : on a successful TeamCreate, marks the session as
|
|
11
|
+
# team-created (lifts enforcement)
|
|
12
|
+
# - SubagentStart : marks the new subagent session as a teammate so
|
|
13
|
+
# it is exempt — teammates inherit the lead's team
|
|
14
|
+
# and must never call TeamCreate (double-create
|
|
15
|
+
# is rejected by the harness)
|
|
16
|
+
#
|
|
17
|
+
# Per-session state lives under "$STATE_DIR" as flag files keyed by
|
|
18
|
+
# session_id. Stale state (>24h) is cleaned on each invocation.
|
|
19
|
+
#
|
|
20
|
+
# Fail-open: any unexpected jq parse failure or missing field exits 0
|
|
21
|
+
# rather than blocking. A broken hook must never brick a session.
|
|
22
|
+
|
|
23
|
+
set -uo pipefail
|
|
24
|
+
|
|
25
|
+
INPUT=$(cat 2>/dev/null || true)
|
|
26
|
+
if [ -z "$INPUT" ]; then
|
|
27
|
+
exit 0
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
HOOK_EVENT=$(printf '%s' "$INPUT" | jq -r '.hook_event_name // empty' 2>/dev/null || true)
|
|
31
|
+
SESSION_ID=$(printf '%s' "$INPUT" | jq -r '.session_id // empty' 2>/dev/null || true)
|
|
32
|
+
|
|
33
|
+
if [ -z "$SESSION_ID" ]; then
|
|
34
|
+
exit 0
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
STATE_DIR="${TMPDIR:-/tmp}/lisa-team-enforce"
|
|
38
|
+
mkdir -p "$STATE_DIR" 2>/dev/null || exit 0
|
|
39
|
+
|
|
40
|
+
SUBAGENT_FLAG="${STATE_DIR}/${SESSION_ID}.subagent"
|
|
41
|
+
SKILL_FLAG="${STATE_DIR}/${SESSION_ID}.skill"
|
|
42
|
+
TEAM_FLAG="${STATE_DIR}/${SESSION_ID}.team"
|
|
43
|
+
|
|
44
|
+
# Best-effort cleanup of stale state files. Errors are ignored.
|
|
45
|
+
find "$STATE_DIR" -maxdepth 1 -type f -mmin +1440 -delete 2>/dev/null || true
|
|
46
|
+
|
|
47
|
+
is_lifecycle_skill() {
|
|
48
|
+
case "$1" in
|
|
49
|
+
lisa:research|lisa:plan|lisa:implement|lisa:intake) return 0 ;;
|
|
50
|
+
*) return 1 ;;
|
|
51
|
+
esac
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
case "$HOOK_EVENT" in
|
|
55
|
+
SubagentStart)
|
|
56
|
+
touch "$SUBAGENT_FLAG" 2>/dev/null || true
|
|
57
|
+
exit 0
|
|
58
|
+
;;
|
|
59
|
+
|
|
60
|
+
UserPromptSubmit)
|
|
61
|
+
PROMPT=$(printf '%s' "$INPUT" | jq -r '.prompt // empty' 2>/dev/null || true)
|
|
62
|
+
if [ -n "$PROMPT" ]; then
|
|
63
|
+
# Match a slash command at the start of the prompt (allow optional whitespace).
|
|
64
|
+
LEADING=$(printf '%s' "$PROMPT" | sed -n '1p' | sed -E 's/^[[:space:]]*//')
|
|
65
|
+
case "$LEADING" in
|
|
66
|
+
/lisa:research*|/lisa:plan*|/lisa:implement*|/lisa:intake*)
|
|
67
|
+
# Strip leading slash and any args after the first whitespace.
|
|
68
|
+
SKILL_NAME=$(printf '%s' "$LEADING" | sed -E 's|^/||; s/[[:space:]].*$//')
|
|
69
|
+
printf '%s\n' "$SKILL_NAME" >"$SKILL_FLAG" 2>/dev/null || true
|
|
70
|
+
;;
|
|
71
|
+
esac
|
|
72
|
+
fi
|
|
73
|
+
exit 0
|
|
74
|
+
;;
|
|
75
|
+
|
|
76
|
+
PostToolUse)
|
|
77
|
+
TOOL_NAME=$(printf '%s' "$INPUT" | jq -r '.tool_name // empty' 2>/dev/null || true)
|
|
78
|
+
if [ "$TOOL_NAME" = "TeamCreate" ]; then
|
|
79
|
+
ERROR=$(printf '%s' "$INPUT" | jq -r '.tool_response.error // empty' 2>/dev/null || true)
|
|
80
|
+
IS_ERROR=$(printf '%s' "$INPUT" | jq -r '.tool_response.is_error // empty' 2>/dev/null || true)
|
|
81
|
+
if [ -z "$ERROR" ] && [ "$IS_ERROR" != "true" ]; then
|
|
82
|
+
touch "$TEAM_FLAG" 2>/dev/null || true
|
|
83
|
+
fi
|
|
84
|
+
fi
|
|
85
|
+
exit 0
|
|
86
|
+
;;
|
|
87
|
+
|
|
88
|
+
PreToolUse)
|
|
89
|
+
: # fall through
|
|
90
|
+
;;
|
|
91
|
+
|
|
92
|
+
*)
|
|
93
|
+
exit 0
|
|
94
|
+
;;
|
|
95
|
+
esac
|
|
96
|
+
|
|
97
|
+
# --- PreToolUse enforcement path ---
|
|
98
|
+
|
|
99
|
+
# Teammates inherit the team; never enforce on subagent sessions.
|
|
100
|
+
if [ -f "$SUBAGENT_FLAG" ]; then
|
|
101
|
+
exit 0
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
TOOL_NAME=$(printf '%s' "$INPUT" | jq -r '.tool_name // empty' 2>/dev/null || true)
|
|
105
|
+
if [ -z "$TOOL_NAME" ]; then
|
|
106
|
+
exit 0
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Detect lifecycle skill invocation via the Skill tool.
|
|
110
|
+
if [ "$TOOL_NAME" = "Skill" ]; then
|
|
111
|
+
SKILL_NAME=$(printf '%s' "$INPUT" | jq -r '.tool_input.skill // empty' 2>/dev/null || true)
|
|
112
|
+
if is_lifecycle_skill "$SKILL_NAME"; then
|
|
113
|
+
printf '%s\n' "$SKILL_NAME" >"$SKILL_FLAG" 2>/dev/null || true
|
|
114
|
+
# The skill load itself is allowed; enforcement begins on the next call.
|
|
115
|
+
exit 0
|
|
116
|
+
fi
|
|
117
|
+
fi
|
|
118
|
+
|
|
119
|
+
# No lifecycle skill armed — nothing to enforce.
|
|
120
|
+
if [ ! -f "$SKILL_FLAG" ]; then
|
|
121
|
+
exit 0
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
# Team has been created — enforcement complete.
|
|
125
|
+
if [ -f "$TEAM_FLAG" ]; then
|
|
126
|
+
exit 0
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
# These two are the path forward; never block them.
|
|
130
|
+
case "$TOOL_NAME" in
|
|
131
|
+
ToolSearch|TeamCreate)
|
|
132
|
+
exit 0
|
|
133
|
+
;;
|
|
134
|
+
esac
|
|
135
|
+
|
|
136
|
+
# Determine whether this tool is a bypass path. Anything not in this set
|
|
137
|
+
# is allowed (e.g. TodoWrite, AskUserQuestion, ExitPlanMode) so we don't
|
|
138
|
+
# over-block.
|
|
139
|
+
should_block=0
|
|
140
|
+
case "$TOOL_NAME" in
|
|
141
|
+
Task|TaskCreate|TaskGet|TaskList|TaskOutput|TaskStop|TaskUpdate)
|
|
142
|
+
should_block=1 ;;
|
|
143
|
+
Skill|Read|Write|Edit|MultiEdit|NotebookEdit|Bash|Grep|Glob|WebSearch|WebFetch)
|
|
144
|
+
should_block=1 ;;
|
|
145
|
+
mcp__*)
|
|
146
|
+
should_block=1 ;;
|
|
147
|
+
esac
|
|
148
|
+
|
|
149
|
+
if [ "$should_block" -eq 0 ]; then
|
|
150
|
+
exit 0
|
|
151
|
+
fi
|
|
152
|
+
|
|
153
|
+
ACTIVE_SKILL=$(cat "$SKILL_FLAG" 2>/dev/null || echo "lisa:???")
|
|
154
|
+
cat >&2 <<EOF
|
|
155
|
+
Blocked: this session invoked /${ACTIVE_SKILL}, which is an agent-team flow.
|
|
156
|
+
Before any other tool call, you must:
|
|
157
|
+
|
|
158
|
+
1. ToolSearch with query: "select:TeamCreate" (load the deferred schema)
|
|
159
|
+
2. TeamCreate (actually create the team)
|
|
160
|
+
|
|
161
|
+
The current attempt to call \`${TOOL_NAME}\` is a team-bypass path. Reading
|
|
162
|
+
the ticket, exploring the code, fetching context — those are tasks for the
|
|
163
|
+
team you are about to create, not for the lead session before the team
|
|
164
|
+
exists.
|
|
165
|
+
|
|
166
|
+
Re-read the orchestration preamble in /${ACTIVE_SKILL} and start with
|
|
167
|
+
ToolSearch.
|
|
168
|
+
EOF
|
|
169
|
+
exit 2
|