@codyswann/lisa 1.54.13 → 1.54.15
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/.claude-plugin/marketplace.json +0 -6
- package/package.json +2 -2
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +95 -16
- package/plugins/lisa-expo/.claude-plugin/plugin.json +95 -16
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +95 -16
- package/plugins/lisa-rails/.claude-plugin/plugin.json +74 -12
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +95 -16
- package/plugins/src/cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/src/expo/.claude-plugin/plugin.json +1 -1
- package/plugins/src/nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/src/rails/.claude-plugin/plugin.json +1 -1
- package/plugins/src/typescript/.claude-plugin/plugin.json +1 -1
- package/scripts/build-plugins.sh +16 -2
- package/scripts/install-claude-plugins.sh +4 -3
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
},
|
|
6
6
|
"metadata": {
|
|
7
7
|
"description": "Claude Code governance plugins for TypeScript, Expo, NestJS, CDK, and Rails projects",
|
|
8
|
-
"version": "1.0.0",
|
|
9
8
|
"pluginRoot": "./plugins"
|
|
10
9
|
},
|
|
11
10
|
"plugins": [
|
|
@@ -13,35 +12,30 @@
|
|
|
13
12
|
"name": "typescript",
|
|
14
13
|
"source": "./plugins/lisa-typescript",
|
|
15
14
|
"description": "Claude Code governance plugin for TypeScript projects — universal skills, agents, hooks, and rules plus TypeScript-specific tooling",
|
|
16
|
-
"version": "1.0.0",
|
|
17
15
|
"category": "productivity"
|
|
18
16
|
},
|
|
19
17
|
{
|
|
20
18
|
"name": "expo",
|
|
21
19
|
"source": "./plugins/lisa-expo",
|
|
22
20
|
"description": "Claude Code governance plugin for Expo/React Native projects — universal skills plus Expo-specific tooling (Apollo Client, Gluestack, Expo Router, Playwright, Maestro)",
|
|
23
|
-
"version": "1.0.0",
|
|
24
21
|
"category": "productivity"
|
|
25
22
|
},
|
|
26
23
|
{
|
|
27
24
|
"name": "nestjs",
|
|
28
25
|
"source": "./plugins/lisa-nestjs",
|
|
29
26
|
"description": "Claude Code governance plugin for NestJS/GraphQL projects — universal skills plus NestJS-specific tooling (GraphQL, TypeORM, security scanning)",
|
|
30
|
-
"version": "1.0.0",
|
|
31
27
|
"category": "productivity"
|
|
32
28
|
},
|
|
33
29
|
{
|
|
34
30
|
"name": "cdk",
|
|
35
31
|
"source": "./plugins/lisa-cdk",
|
|
36
32
|
"description": "Claude Code governance plugin for AWS CDK projects — universal skills, agents, hooks, and rules plus TypeScript tooling",
|
|
37
|
-
"version": "1.0.0",
|
|
38
33
|
"category": "productivity"
|
|
39
34
|
},
|
|
40
35
|
{
|
|
41
36
|
"name": "rails",
|
|
42
37
|
"source": "./plugins/lisa-rails",
|
|
43
38
|
"description": "Claude Code governance plugin for Ruby on Rails projects — universal skills plus Rails-specific tooling (ActionController, ActionView, ActiveRecord)",
|
|
44
|
-
"version": "1.0.0",
|
|
45
39
|
"category": "productivity"
|
|
46
40
|
}
|
|
47
41
|
]
|
package/package.json
CHANGED
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"axios": ">=1.13.5"
|
|
73
73
|
},
|
|
74
74
|
"name": "@codyswann/lisa",
|
|
75
|
-
"version": "1.54.
|
|
75
|
+
"version": "1.54.15",
|
|
76
76
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
77
77
|
"main": "dist/index.js",
|
|
78
78
|
"exports": {
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"typescript-eslint": "^8.0.0"
|
|
172
172
|
},
|
|
173
173
|
"devDependencies": {
|
|
174
|
-
"@codyswann/lisa": "^1.54.
|
|
174
|
+
"@codyswann/lisa": "^1.54.13"
|
|
175
175
|
},
|
|
176
176
|
"type": "module"
|
|
177
177
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.54.15",
|
|
4
4
|
"description": "Claude Code governance plugin for AWS CDK projects — includes all universal skills, agents, hooks, and rules from Lisa plus TypeScript tooling",
|
|
5
|
-
"author":
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Cody Swann"
|
|
7
|
+
},
|
|
6
8
|
"hooks": {
|
|
7
9
|
"UserPromptSubmit": [
|
|
8
10
|
{
|
|
@@ -37,27 +39,45 @@
|
|
|
37
39
|
{
|
|
38
40
|
"matcher": "Write|Edit",
|
|
39
41
|
"hooks": [
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/format-on-edit.sh"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "command",
|
|
48
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sg-scan-on-edit.sh"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "command",
|
|
52
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/lint-on-edit.sh"
|
|
53
|
+
}
|
|
43
54
|
]
|
|
44
55
|
},
|
|
45
56
|
{
|
|
46
57
|
"matcher": "TaskCreate|TaskUpdate",
|
|
47
58
|
"hooks": [
|
|
48
|
-
{
|
|
59
|
+
{
|
|
60
|
+
"type": "command",
|
|
61
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sync-tasks.sh"
|
|
62
|
+
}
|
|
49
63
|
]
|
|
50
64
|
},
|
|
51
65
|
{
|
|
52
66
|
"matcher": "Task",
|
|
53
67
|
"hooks": [
|
|
54
|
-
{
|
|
68
|
+
{
|
|
69
|
+
"type": "command",
|
|
70
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-task || true"
|
|
71
|
+
}
|
|
55
72
|
]
|
|
56
73
|
},
|
|
57
74
|
{
|
|
58
75
|
"matcher": "TodoWrite",
|
|
59
76
|
"hooks": [
|
|
60
|
-
{
|
|
77
|
+
{
|
|
78
|
+
"type": "command",
|
|
79
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-todo || true"
|
|
80
|
+
}
|
|
61
81
|
]
|
|
62
82
|
}
|
|
63
83
|
],
|
|
@@ -65,22 +85,81 @@
|
|
|
65
85
|
{
|
|
66
86
|
"matcher": "Task",
|
|
67
87
|
"hooks": [
|
|
68
|
-
{
|
|
88
|
+
{
|
|
89
|
+
"type": "command",
|
|
90
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code pre-task || true"
|
|
91
|
+
}
|
|
69
92
|
]
|
|
70
93
|
}
|
|
71
94
|
],
|
|
72
95
|
"Stop": [
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
{
|
|
97
|
+
"matcher": "",
|
|
98
|
+
"hooks": [
|
|
99
|
+
{
|
|
100
|
+
"type": "command",
|
|
101
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/verify-completion.sh"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"matcher": "",
|
|
107
|
+
"hooks": [
|
|
108
|
+
{
|
|
109
|
+
"type": "command",
|
|
110
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/notify-ntfy.sh"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"matcher": "",
|
|
116
|
+
"hooks": [
|
|
117
|
+
{
|
|
118
|
+
"type": "command",
|
|
119
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code stop || true"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
76
123
|
],
|
|
77
124
|
"SessionStart": [
|
|
78
|
-
{
|
|
79
|
-
|
|
80
|
-
|
|
125
|
+
{
|
|
126
|
+
"matcher": "startup",
|
|
127
|
+
"hooks": [
|
|
128
|
+
{
|
|
129
|
+
"type": "command",
|
|
130
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/install-pkgs.sh"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"matcher": "",
|
|
136
|
+
"hooks": [
|
|
137
|
+
{
|
|
138
|
+
"type": "command",
|
|
139
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"matcher": "",
|
|
145
|
+
"hooks": [
|
|
146
|
+
{
|
|
147
|
+
"type": "command",
|
|
148
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-start || true"
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
81
152
|
],
|
|
82
153
|
"SessionEnd": [
|
|
83
|
-
{
|
|
154
|
+
{
|
|
155
|
+
"matcher": "",
|
|
156
|
+
"hooks": [
|
|
157
|
+
{
|
|
158
|
+
"type": "command",
|
|
159
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-end || true"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
84
163
|
]
|
|
85
164
|
}
|
|
86
165
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.54.15",
|
|
4
4
|
"description": "Claude Code governance plugin for Expo/React Native projects — includes all universal skills, agents, hooks, and rules from Lisa plus Expo-specific tooling",
|
|
5
|
-
"author":
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Cody Swann"
|
|
7
|
+
},
|
|
6
8
|
"hooks": {
|
|
7
9
|
"UserPromptSubmit": [
|
|
8
10
|
{
|
|
@@ -37,27 +39,45 @@
|
|
|
37
39
|
{
|
|
38
40
|
"matcher": "Write|Edit",
|
|
39
41
|
"hooks": [
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/format-on-edit.sh"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "command",
|
|
48
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sg-scan-on-edit.sh"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "command",
|
|
52
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/lint-on-edit.sh"
|
|
53
|
+
}
|
|
43
54
|
]
|
|
44
55
|
},
|
|
45
56
|
{
|
|
46
57
|
"matcher": "TaskCreate|TaskUpdate",
|
|
47
58
|
"hooks": [
|
|
48
|
-
{
|
|
59
|
+
{
|
|
60
|
+
"type": "command",
|
|
61
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sync-tasks.sh"
|
|
62
|
+
}
|
|
49
63
|
]
|
|
50
64
|
},
|
|
51
65
|
{
|
|
52
66
|
"matcher": "Task",
|
|
53
67
|
"hooks": [
|
|
54
|
-
{
|
|
68
|
+
{
|
|
69
|
+
"type": "command",
|
|
70
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-task || true"
|
|
71
|
+
}
|
|
55
72
|
]
|
|
56
73
|
},
|
|
57
74
|
{
|
|
58
75
|
"matcher": "TodoWrite",
|
|
59
76
|
"hooks": [
|
|
60
|
-
{
|
|
77
|
+
{
|
|
78
|
+
"type": "command",
|
|
79
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-todo || true"
|
|
80
|
+
}
|
|
61
81
|
]
|
|
62
82
|
}
|
|
63
83
|
],
|
|
@@ -65,22 +85,81 @@
|
|
|
65
85
|
{
|
|
66
86
|
"matcher": "Task",
|
|
67
87
|
"hooks": [
|
|
68
|
-
{
|
|
88
|
+
{
|
|
89
|
+
"type": "command",
|
|
90
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code pre-task || true"
|
|
91
|
+
}
|
|
69
92
|
]
|
|
70
93
|
}
|
|
71
94
|
],
|
|
72
95
|
"Stop": [
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
{
|
|
97
|
+
"matcher": "",
|
|
98
|
+
"hooks": [
|
|
99
|
+
{
|
|
100
|
+
"type": "command",
|
|
101
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/verify-completion.sh"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"matcher": "",
|
|
107
|
+
"hooks": [
|
|
108
|
+
{
|
|
109
|
+
"type": "command",
|
|
110
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/notify-ntfy.sh"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"matcher": "",
|
|
116
|
+
"hooks": [
|
|
117
|
+
{
|
|
118
|
+
"type": "command",
|
|
119
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code stop || true"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
76
123
|
],
|
|
77
124
|
"SessionStart": [
|
|
78
|
-
{
|
|
79
|
-
|
|
80
|
-
|
|
125
|
+
{
|
|
126
|
+
"matcher": "startup",
|
|
127
|
+
"hooks": [
|
|
128
|
+
{
|
|
129
|
+
"type": "command",
|
|
130
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/install-pkgs.sh"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"matcher": "",
|
|
136
|
+
"hooks": [
|
|
137
|
+
{
|
|
138
|
+
"type": "command",
|
|
139
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"matcher": "",
|
|
145
|
+
"hooks": [
|
|
146
|
+
{
|
|
147
|
+
"type": "command",
|
|
148
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-start || true"
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
81
152
|
],
|
|
82
153
|
"SessionEnd": [
|
|
83
|
-
{
|
|
154
|
+
{
|
|
155
|
+
"matcher": "",
|
|
156
|
+
"hooks": [
|
|
157
|
+
{
|
|
158
|
+
"type": "command",
|
|
159
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-end || true"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
84
163
|
]
|
|
85
164
|
}
|
|
86
165
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nestjs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.54.15",
|
|
4
4
|
"description": "Claude Code governance plugin for NestJS/GraphQL projects — includes all universal skills, agents, hooks, and rules from Lisa plus NestJS-specific tooling (GraphQL, TypeORM, security scanning)",
|
|
5
|
-
"author":
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Cody Swann"
|
|
7
|
+
},
|
|
6
8
|
"hooks": {
|
|
7
9
|
"UserPromptSubmit": [
|
|
8
10
|
{
|
|
@@ -37,27 +39,45 @@
|
|
|
37
39
|
{
|
|
38
40
|
"matcher": "Write|Edit",
|
|
39
41
|
"hooks": [
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/format-on-edit.sh"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "command",
|
|
48
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sg-scan-on-edit.sh"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "command",
|
|
52
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/lint-on-edit.sh"
|
|
53
|
+
}
|
|
43
54
|
]
|
|
44
55
|
},
|
|
45
56
|
{
|
|
46
57
|
"matcher": "TaskCreate|TaskUpdate",
|
|
47
58
|
"hooks": [
|
|
48
|
-
{
|
|
59
|
+
{
|
|
60
|
+
"type": "command",
|
|
61
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sync-tasks.sh"
|
|
62
|
+
}
|
|
49
63
|
]
|
|
50
64
|
},
|
|
51
65
|
{
|
|
52
66
|
"matcher": "Task",
|
|
53
67
|
"hooks": [
|
|
54
|
-
{
|
|
68
|
+
{
|
|
69
|
+
"type": "command",
|
|
70
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-task || true"
|
|
71
|
+
}
|
|
55
72
|
]
|
|
56
73
|
},
|
|
57
74
|
{
|
|
58
75
|
"matcher": "TodoWrite",
|
|
59
76
|
"hooks": [
|
|
60
|
-
{
|
|
77
|
+
{
|
|
78
|
+
"type": "command",
|
|
79
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-todo || true"
|
|
80
|
+
}
|
|
61
81
|
]
|
|
62
82
|
}
|
|
63
83
|
],
|
|
@@ -65,22 +85,81 @@
|
|
|
65
85
|
{
|
|
66
86
|
"matcher": "Task",
|
|
67
87
|
"hooks": [
|
|
68
|
-
{
|
|
88
|
+
{
|
|
89
|
+
"type": "command",
|
|
90
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code pre-task || true"
|
|
91
|
+
}
|
|
69
92
|
]
|
|
70
93
|
}
|
|
71
94
|
],
|
|
72
95
|
"Stop": [
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
{
|
|
97
|
+
"matcher": "",
|
|
98
|
+
"hooks": [
|
|
99
|
+
{
|
|
100
|
+
"type": "command",
|
|
101
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/verify-completion.sh"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"matcher": "",
|
|
107
|
+
"hooks": [
|
|
108
|
+
{
|
|
109
|
+
"type": "command",
|
|
110
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/notify-ntfy.sh"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"matcher": "",
|
|
116
|
+
"hooks": [
|
|
117
|
+
{
|
|
118
|
+
"type": "command",
|
|
119
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code stop || true"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
76
123
|
],
|
|
77
124
|
"SessionStart": [
|
|
78
|
-
{
|
|
79
|
-
|
|
80
|
-
|
|
125
|
+
{
|
|
126
|
+
"matcher": "startup",
|
|
127
|
+
"hooks": [
|
|
128
|
+
{
|
|
129
|
+
"type": "command",
|
|
130
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/install-pkgs.sh"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"matcher": "",
|
|
136
|
+
"hooks": [
|
|
137
|
+
{
|
|
138
|
+
"type": "command",
|
|
139
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"matcher": "",
|
|
145
|
+
"hooks": [
|
|
146
|
+
{
|
|
147
|
+
"type": "command",
|
|
148
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-start || true"
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
81
152
|
],
|
|
82
153
|
"SessionEnd": [
|
|
83
|
-
{
|
|
154
|
+
{
|
|
155
|
+
"matcher": "",
|
|
156
|
+
"hooks": [
|
|
157
|
+
{
|
|
158
|
+
"type": "command",
|
|
159
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-end || true"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
84
163
|
]
|
|
85
164
|
}
|
|
86
165
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rails",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.54.15",
|
|
4
4
|
"description": "Claude Code governance plugin for Ruby on Rails projects — includes all universal skills, agents, hooks, and rules from Lisa plus Rails-specific tooling (ActionController, ActionView, ActiveRecord)",
|
|
5
|
-
"author":
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Cody Swann"
|
|
7
|
+
},
|
|
6
8
|
"hooks": {
|
|
7
9
|
"UserPromptSubmit": [
|
|
8
10
|
{
|
|
@@ -37,19 +39,28 @@
|
|
|
37
39
|
{
|
|
38
40
|
"matcher": "TaskCreate|TaskUpdate",
|
|
39
41
|
"hooks": [
|
|
40
|
-
{
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sync-tasks.sh"
|
|
45
|
+
}
|
|
41
46
|
]
|
|
42
47
|
},
|
|
43
48
|
{
|
|
44
49
|
"matcher": "Task",
|
|
45
50
|
"hooks": [
|
|
46
|
-
{
|
|
51
|
+
{
|
|
52
|
+
"type": "command",
|
|
53
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-task || true"
|
|
54
|
+
}
|
|
47
55
|
]
|
|
48
56
|
},
|
|
49
57
|
{
|
|
50
58
|
"matcher": "TodoWrite",
|
|
51
59
|
"hooks": [
|
|
52
|
-
{
|
|
60
|
+
{
|
|
61
|
+
"type": "command",
|
|
62
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-todo || true"
|
|
63
|
+
}
|
|
53
64
|
]
|
|
54
65
|
}
|
|
55
66
|
],
|
|
@@ -57,21 +68,72 @@
|
|
|
57
68
|
{
|
|
58
69
|
"matcher": "Task",
|
|
59
70
|
"hooks": [
|
|
60
|
-
{
|
|
71
|
+
{
|
|
72
|
+
"type": "command",
|
|
73
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code pre-task || true"
|
|
74
|
+
}
|
|
61
75
|
]
|
|
62
76
|
}
|
|
63
77
|
],
|
|
64
78
|
"Stop": [
|
|
65
|
-
{
|
|
66
|
-
|
|
67
|
-
|
|
79
|
+
{
|
|
80
|
+
"matcher": "",
|
|
81
|
+
"hooks": [
|
|
82
|
+
{
|
|
83
|
+
"type": "command",
|
|
84
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/verify-completion.sh"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"matcher": "",
|
|
90
|
+
"hooks": [
|
|
91
|
+
{
|
|
92
|
+
"type": "command",
|
|
93
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/notify-ntfy.sh"
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"matcher": "",
|
|
99
|
+
"hooks": [
|
|
100
|
+
{
|
|
101
|
+
"type": "command",
|
|
102
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code stop || true"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
68
106
|
],
|
|
69
107
|
"SessionStart": [
|
|
70
|
-
{
|
|
71
|
-
|
|
108
|
+
{
|
|
109
|
+
"matcher": "",
|
|
110
|
+
"hooks": [
|
|
111
|
+
{
|
|
112
|
+
"type": "command",
|
|
113
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"matcher": "",
|
|
119
|
+
"hooks": [
|
|
120
|
+
{
|
|
121
|
+
"type": "command",
|
|
122
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-start || true"
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
}
|
|
72
126
|
],
|
|
73
127
|
"SessionEnd": [
|
|
74
|
-
{
|
|
128
|
+
{
|
|
129
|
+
"matcher": "",
|
|
130
|
+
"hooks": [
|
|
131
|
+
{
|
|
132
|
+
"type": "command",
|
|
133
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-end || true"
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
}
|
|
75
137
|
]
|
|
76
138
|
}
|
|
77
139
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typescript",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.54.15",
|
|
4
4
|
"description": "Claude Code governance plugin for TypeScript projects — includes all universal skills, agents, hooks, and rules from Lisa plus TypeScript-specific tooling",
|
|
5
|
-
"author":
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Cody Swann"
|
|
7
|
+
},
|
|
6
8
|
"hooks": {
|
|
7
9
|
"UserPromptSubmit": [
|
|
8
10
|
{
|
|
@@ -37,27 +39,45 @@
|
|
|
37
39
|
{
|
|
38
40
|
"matcher": "Write|Edit",
|
|
39
41
|
"hooks": [
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/format-on-edit.sh"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "command",
|
|
48
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sg-scan-on-edit.sh"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "command",
|
|
52
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/lint-on-edit.sh"
|
|
53
|
+
}
|
|
43
54
|
]
|
|
44
55
|
},
|
|
45
56
|
{
|
|
46
57
|
"matcher": "TaskCreate|TaskUpdate",
|
|
47
58
|
"hooks": [
|
|
48
|
-
{
|
|
59
|
+
{
|
|
60
|
+
"type": "command",
|
|
61
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/sync-tasks.sh"
|
|
62
|
+
}
|
|
49
63
|
]
|
|
50
64
|
},
|
|
51
65
|
{
|
|
52
66
|
"matcher": "Task",
|
|
53
67
|
"hooks": [
|
|
54
|
-
{
|
|
68
|
+
{
|
|
69
|
+
"type": "command",
|
|
70
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-task || true"
|
|
71
|
+
}
|
|
55
72
|
]
|
|
56
73
|
},
|
|
57
74
|
{
|
|
58
75
|
"matcher": "TodoWrite",
|
|
59
76
|
"hooks": [
|
|
60
|
-
{
|
|
77
|
+
{
|
|
78
|
+
"type": "command",
|
|
79
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code post-todo || true"
|
|
80
|
+
}
|
|
61
81
|
]
|
|
62
82
|
}
|
|
63
83
|
],
|
|
@@ -65,22 +85,81 @@
|
|
|
65
85
|
{
|
|
66
86
|
"matcher": "Task",
|
|
67
87
|
"hooks": [
|
|
68
|
-
{
|
|
88
|
+
{
|
|
89
|
+
"type": "command",
|
|
90
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code pre-task || true"
|
|
91
|
+
}
|
|
69
92
|
]
|
|
70
93
|
}
|
|
71
94
|
],
|
|
72
95
|
"Stop": [
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
|
|
96
|
+
{
|
|
97
|
+
"matcher": "",
|
|
98
|
+
"hooks": [
|
|
99
|
+
{
|
|
100
|
+
"type": "command",
|
|
101
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/verify-completion.sh"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"matcher": "",
|
|
107
|
+
"hooks": [
|
|
108
|
+
{
|
|
109
|
+
"type": "command",
|
|
110
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/notify-ntfy.sh"
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"matcher": "",
|
|
116
|
+
"hooks": [
|
|
117
|
+
{
|
|
118
|
+
"type": "command",
|
|
119
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code stop || true"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
76
123
|
],
|
|
77
124
|
"SessionStart": [
|
|
78
|
-
{
|
|
79
|
-
|
|
80
|
-
|
|
125
|
+
{
|
|
126
|
+
"matcher": "startup",
|
|
127
|
+
"hooks": [
|
|
128
|
+
{
|
|
129
|
+
"type": "command",
|
|
130
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/install-pkgs.sh"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"matcher": "",
|
|
136
|
+
"hooks": [
|
|
137
|
+
{
|
|
138
|
+
"type": "command",
|
|
139
|
+
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"matcher": "",
|
|
145
|
+
"hooks": [
|
|
146
|
+
{
|
|
147
|
+
"type": "command",
|
|
148
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-start || true"
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
81
152
|
],
|
|
82
153
|
"SessionEnd": [
|
|
83
|
-
{
|
|
154
|
+
{
|
|
155
|
+
"matcher": "",
|
|
156
|
+
"hooks": [
|
|
157
|
+
{
|
|
158
|
+
"type": "command",
|
|
159
|
+
"command": "command -v entire >/dev/null 2>&1 && entire hooks claude-code session-end || true"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
84
163
|
]
|
|
85
164
|
}
|
|
86
165
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "cdk",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Claude Code governance plugin for AWS CDK projects — includes all universal skills, agents, hooks, and rules from Lisa plus TypeScript tooling",
|
|
5
|
-
"author": "Cody Swann",
|
|
5
|
+
"author": { "name": "Cody Swann" },
|
|
6
6
|
"hooks": {
|
|
7
7
|
"UserPromptSubmit": [
|
|
8
8
|
{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "expo",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Claude Code governance plugin for Expo/React Native projects — includes all universal skills, agents, hooks, and rules from Lisa plus Expo-specific tooling",
|
|
5
|
-
"author": "Cody Swann",
|
|
5
|
+
"author": { "name": "Cody Swann" },
|
|
6
6
|
"hooks": {
|
|
7
7
|
"UserPromptSubmit": [
|
|
8
8
|
{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "nestjs",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Claude Code governance plugin for NestJS/GraphQL projects — includes all universal skills, agents, hooks, and rules from Lisa plus NestJS-specific tooling (GraphQL, TypeORM, security scanning)",
|
|
5
|
-
"author": "Cody Swann",
|
|
5
|
+
"author": { "name": "Cody Swann" },
|
|
6
6
|
"hooks": {
|
|
7
7
|
"UserPromptSubmit": [
|
|
8
8
|
{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "rails",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Claude Code governance plugin for Ruby on Rails projects — includes all universal skills, agents, hooks, and rules from Lisa plus Rails-specific tooling (ActionController, ActionView, ActiveRecord)",
|
|
5
|
-
"author": "Cody Swann",
|
|
5
|
+
"author": { "name": "Cody Swann" },
|
|
6
6
|
"hooks": {
|
|
7
7
|
"UserPromptSubmit": [
|
|
8
8
|
{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "typescript",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Claude Code governance plugin for TypeScript projects — includes all universal skills, agents, hooks, and rules from Lisa plus TypeScript-specific tooling",
|
|
5
|
-
"author": "Cody Swann",
|
|
5
|
+
"author": { "name": "Cody Swann" },
|
|
6
6
|
"hooks": {
|
|
7
7
|
"UserPromptSubmit": [
|
|
8
8
|
{
|
package/scripts/build-plugins.sh
CHANGED
|
@@ -4,11 +4,15 @@
|
|
|
4
4
|
set -euo pipefail
|
|
5
5
|
|
|
6
6
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
|
-
|
|
7
|
+
ROOT_DIR="$SCRIPT_DIR/.."
|
|
8
|
+
PLUGINS_DIR="$ROOT_DIR/plugins"
|
|
8
9
|
SRC_DIR="$PLUGINS_DIR/src"
|
|
9
10
|
BASE_DIR="$SRC_DIR/base"
|
|
10
11
|
STACKS=(typescript expo nestjs cdk rails)
|
|
11
12
|
|
|
13
|
+
# Read version from package.json so plugins stay in sync with Lisa releases
|
|
14
|
+
VERSION=$(node -e "console.log(require('$ROOT_DIR/package.json').version)")
|
|
15
|
+
|
|
12
16
|
for stack in "${STACKS[@]}"; do
|
|
13
17
|
OUT="$PLUGINS_DIR/lisa-$stack"
|
|
14
18
|
rm -rf "$OUT"
|
|
@@ -18,5 +22,15 @@ for stack in "${STACKS[@]}"; do
|
|
|
18
22
|
if [ -d "$STACK_SRC" ]; then
|
|
19
23
|
cp -r "$STACK_SRC/." "$OUT/"
|
|
20
24
|
fi
|
|
21
|
-
|
|
25
|
+
# Inject Lisa version into the built plugin manifest
|
|
26
|
+
MANIFEST="$OUT/.claude-plugin/plugin.json"
|
|
27
|
+
if [ -f "$MANIFEST" ]; then
|
|
28
|
+
node -e "
|
|
29
|
+
const fs = require('fs');
|
|
30
|
+
const m = JSON.parse(fs.readFileSync('$MANIFEST', 'utf8'));
|
|
31
|
+
m.version = '$VERSION';
|
|
32
|
+
fs.writeFileSync('$MANIFEST', JSON.stringify(m, null, 2) + '\n');
|
|
33
|
+
"
|
|
34
|
+
fi
|
|
35
|
+
echo "Built plugins/lisa-$stack (v$VERSION)"
|
|
22
36
|
done
|
|
@@ -43,11 +43,12 @@ PYEOF
|
|
|
43
43
|
fi
|
|
44
44
|
fi
|
|
45
45
|
|
|
46
|
-
#
|
|
46
|
+
# Install plugins only when claude CLI is available
|
|
47
47
|
if ! command -v claude &>/dev/null; then exit 0; fi
|
|
48
48
|
|
|
49
|
-
#
|
|
50
|
-
|
|
49
|
+
# The Lisa marketplace is registered via extraKnownMarketplaces in .claude/settings.json
|
|
50
|
+
# pointing to the GitHub repo (CodySwannGT/lisa). Built plugins are committed to the repo
|
|
51
|
+
# so relative paths in marketplace.json resolve correctly.
|
|
51
52
|
|
|
52
53
|
# Detect which stack plugin to install from .claude/settings.json
|
|
53
54
|
SETTINGS_FILE="$PROJECT_ROOT/.claude/settings.json"
|