toga-ai 1.0.985 → 1.0.986

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.
@@ -1,310 +1,307 @@
1
1
  {
2
- "hooks": {
3
- "UserPromptSubmit": [
4
- {
5
- "hooks": [
6
- {
7
- "type": "command",
8
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
9
- "timeout": 3000
10
- }
11
- ]
12
- },
13
- {
14
- "hooks": [
15
- {
16
- "type": "command",
17
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/plain-talk.js\"",
18
- "timeout": 3000
19
- }
20
- ]
21
- },
22
- {
23
- "hooks": [
24
- {
25
- "type": "command",
26
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-files.js\"",
27
- "timeout": 3000
28
- }
29
- ]
30
- }
31
- ],
32
- "PreToolUse": [
33
- {
34
- "matcher": "Bash|PowerShell|Read|Grep|Glob|Edit|Write|MultiEdit|NotebookEdit|Task|Agent|WebFetch|WebSearch|mcp__.*[Cc][Ll][Ii][Cc][Kk][Uu][Pp].*",
35
- "hooks": [
36
- {
37
- "type": "command",
38
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
39
- "timeout": 3000
40
- }
41
- ]
42
- },
43
- {
44
- "matcher": "Bash",
45
- "hooks": [
46
- {
47
- "type": "command",
48
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/block-destructive.js\"",
49
- "timeout": 3000
50
- }
51
- ]
52
- },
53
- {
54
- "matcher": "Write|Edit|MultiEdit",
55
- "hooks": [
56
- {
57
- "type": "command",
58
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/guard-index.js\"",
59
- "timeout": 3000
60
- }
61
- ]
62
- },
63
- {
64
- "matcher": "Write|Edit|MultiEdit",
65
- "hooks": [
66
- {
67
- "type": "command",
68
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/dbchanges2-cluster-isolation.js\"",
69
- "timeout": 3000
70
- }
71
- ]
72
- },
73
- {
74
- "matcher": "Write|Edit|MultiEdit",
75
- "hooks": [
76
- {
77
- "type": "command",
78
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/dbchanges2-record-ids.js\"",
79
- "timeout": 3000
80
- }
81
- ]
82
- },
83
- {
84
- "matcher": "Write|Edit|MultiEdit",
85
- "hooks": [
86
- {
87
- "type": "command",
88
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/sql-file-location.js\"",
89
- "timeout": 3000
90
- }
91
- ]
92
- },
93
- {
94
- "matcher": "Edit|Write|MultiEdit",
95
- "hooks": [
96
- {
97
- "type": "command",
98
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/design-fidelity-reminder.js\"",
99
- "timeout": 3000
100
- }
101
- ]
102
- },
103
- {
104
- "matcher": "Write|Edit",
105
- "hooks": [
106
- {
107
- "type": "command",
108
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/platform-reuse-reminder.js\"",
109
- "timeout": 3000
110
- }
111
- ]
112
- }
113
- ],
114
- "PostToolUseFailure": [
115
- {
116
- "matcher": "mcp__.*[Cc][Ll][Ii][Cc][Kk][Uu][Pp].*",
117
- "hooks": [
118
- {
119
- "type": "command",
120
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
121
- "timeout": 3000
122
- }
123
- ]
124
- }
125
- ],
126
- "PostToolUse": [
127
- {
128
- "matcher": "Bash|PowerShell|mcp__.*[Cc][Ll][Ii][Cc][Kk][Uu][Pp].*",
129
- "hooks": [
130
- {
131
- "type": "command",
132
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
133
- "timeout": 3000
134
- }
135
- ]
136
- },
137
- {
138
- "matcher": "Write|Edit|MultiEdit",
139
- "hooks": [
140
- {
141
- "type": "command",
142
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/post-edit-validate.js\"",
143
- "timeout": 15000
144
- }
145
- ]
146
- },
147
- {
148
- "matcher": "Write|Edit|MultiEdit",
149
- "hooks": [
150
- {
151
- "type": "command",
152
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-php-review.js\"",
153
- "timeout": 3000
154
- }
155
- ]
156
- },
157
- {
158
- "matcher": "Write|Edit|MultiEdit",
159
- "hooks": [
160
- {
161
- "type": "command",
162
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-sql-review.js\"",
163
- "timeout": 3000
164
- }
165
- ]
166
- },
167
- {
168
- "matcher": "Write|Edit|MultiEdit",
169
- "hooks": [
170
- {
171
- "type": "command",
172
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/scope-counter.js\"",
173
- "timeout": 3000
174
- }
175
- ]
176
- },
177
- {
178
- "matcher": "Write|Edit|MultiEdit",
179
- "hooks": [
180
- {
181
- "type": "command",
182
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-frontend-review.js\"",
183
- "timeout": 3000
184
- }
185
- ]
186
- },
187
- {
188
- "matcher": "Write|Edit|MultiEdit",
189
- "hooks": [
190
- {
191
- "type": "command",
192
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/sql-cross-cluster-check.js\"",
193
- "timeout": 3000
194
- }
195
- ]
196
- },
197
- {
198
- "matcher": "Write|Edit|MultiEdit",
199
- "hooks": [
200
- {
201
- "type": "command",
202
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/dbchanges2-file-sprawl.js\"",
203
- "timeout": 3000
204
- }
205
- ]
206
- },
207
- {
208
- "matcher": "Write|Edit|MultiEdit",
209
- "hooks": [
210
- {
211
- "type": "command",
212
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/memory-scope-guard.js\"",
213
- "timeout": 3000
214
- }
215
- ]
216
- },
217
- {
218
- "matcher": "Edit|Write|MultiEdit|NotebookEdit",
219
- "hooks": [
220
- {
221
- "type": "command",
222
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-files.js\"",
223
- "timeout": 3000
224
- }
225
- ]
226
- }
227
- ],
228
- "SessionStart": [
229
- {
230
- "hooks": [
231
- {
232
- "type": "command",
233
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-start.js\"",
234
- "timeout": 5000
235
- }
236
- ]
237
- }
238
- ],
239
- "Stop": [
240
- {
241
- "hooks": [
242
- {
243
- "type": "command",
244
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-end.js\"",
245
- "timeout": 5000
246
- }
247
- ]
248
- },
249
- {
250
- "hooks": [
251
- {
252
- "type": "command",
253
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/evaluate-session.js\"",
254
- "timeout": 5000
255
- }
256
- ]
257
- },
258
- {
259
- "hooks": [
260
- {
261
- "type": "command",
262
- "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-php-lint.js\"",
263
- "timeout": 3000
264
- }
265
- ]
266
- }
267
- ]
268
- },
269
- "permissions": {
270
- "allow": [
271
- "Bash(node .claude/knowledge.js *)",
272
- "Bash(node .claude/hooks/toga/*.js)",
273
- "Bash(node sync-skills.js *)",
274
- "Bash(node scripts/harness.js *)",
275
- "Bash(node scripts/install.js *)",
276
- "Bash(php -l *)",
277
- "Bash(git status)",
278
- "Bash(git diff *)",
279
- "Bash(git log *)",
280
- "Bash(git add *)",
281
- "Bash(git commit *)",
282
- "Bash(git checkout *)",
283
- "Bash(git branch *)",
284
- "Bash(git pull *)",
285
- "Bash(npm *)",
286
- "Bash(npx *)"
287
- ],
288
- "ask": [
289
- "mcp__clickup__clickup_update_task",
290
- "Bash(git push *)"
291
- ],
292
- "deny": [
293
- "mcp__clickup__clickup_delete_task",
294
- "mcp__clickup__clickup_delete_comment",
295
- "mcp__clickup__clickup_create_task",
296
- "mcp__clickup__clickup_execute_operator",
297
- "mcp__clickup__clickup_merge_tasks",
298
- "mcp__clickup__clickup_move_task",
299
- "mcp__claude_ai_ClickUP_for_Dev",
300
- "Bash(git push --force*)",
301
- "Bash(git push -f*)",
302
- "Bash(git push *--force*)",
303
- "Bash(git push * -f*)",
304
- "Bash(git push * +*)"
305
- ]
306
- },
307
- "env": {
308
- "GATEGUARD_BASH_ROUTINE_DISABLED": "1"
309
- }
2
+ "hooks": {
3
+ "UserPromptSubmit": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
9
+ "timeout": 3000
10
+ }
11
+ ]
12
+ },
13
+ {
14
+ "hooks": [
15
+ {
16
+ "type": "command",
17
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/plain-talk.js\"",
18
+ "timeout": 3000
19
+ }
20
+ ]
21
+ },
22
+ {
23
+ "hooks": [
24
+ {
25
+ "type": "command",
26
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-files.js\"",
27
+ "timeout": 3000
28
+ }
29
+ ]
30
+ }
31
+ ],
32
+ "PreToolUse": [
33
+ {
34
+ "matcher": "Bash|PowerShell|Read|Grep|Glob|Edit|Write|MultiEdit|NotebookEdit|Task|Agent|WebFetch|WebSearch|mcp__.*[Cc][Ll][Ii][Cc][Kk][Uu][Pp].*",
35
+ "hooks": [
36
+ {
37
+ "type": "command",
38
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
39
+ "timeout": 3000
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ "matcher": "Bash",
45
+ "hooks": [
46
+ {
47
+ "type": "command",
48
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/block-destructive.js\"",
49
+ "timeout": 3000
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "matcher": "Write|Edit|MultiEdit",
55
+ "hooks": [
56
+ {
57
+ "type": "command",
58
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/guard-index.js\"",
59
+ "timeout": 3000
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "matcher": "Write|Edit|MultiEdit",
65
+ "hooks": [
66
+ {
67
+ "type": "command",
68
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/dbchanges2-cluster-isolation.js\"",
69
+ "timeout": 3000
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "matcher": "Write|Edit|MultiEdit",
75
+ "hooks": [
76
+ {
77
+ "type": "command",
78
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/dbchanges2-record-ids.js\"",
79
+ "timeout": 3000
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "matcher": "Write|Edit|MultiEdit",
85
+ "hooks": [
86
+ {
87
+ "type": "command",
88
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/sql-file-location.js\"",
89
+ "timeout": 3000
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "matcher": "Edit|Write|MultiEdit",
95
+ "hooks": [
96
+ {
97
+ "type": "command",
98
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/design-fidelity-reminder.js\"",
99
+ "timeout": 3000
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ "matcher": "Write|Edit",
105
+ "hooks": [
106
+ {
107
+ "type": "command",
108
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/platform-reuse-reminder.js\"",
109
+ "timeout": 3000
110
+ }
111
+ ]
112
+ }
113
+ ],
114
+ "PostToolUseFailure": [
115
+ {
116
+ "matcher": "mcp__.*[Cc][Ll][Ii][Cc][Kk][Uu][Pp].*",
117
+ "hooks": [
118
+ {
119
+ "type": "command",
120
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
121
+ "timeout": 3000
122
+ }
123
+ ]
124
+ }
125
+ ],
126
+ "PostToolUse": [
127
+ {
128
+ "matcher": "Bash|PowerShell|mcp__.*[Cc][Ll][Ii][Cc][Kk][Uu][Pp].*",
129
+ "hooks": [
130
+ {
131
+ "type": "command",
132
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/start-gate.js\"",
133
+ "timeout": 3000
134
+ }
135
+ ]
136
+ },
137
+ {
138
+ "matcher": "Write|Edit|MultiEdit",
139
+ "hooks": [
140
+ {
141
+ "type": "command",
142
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/post-edit-validate.js\"",
143
+ "timeout": 15000
144
+ }
145
+ ]
146
+ },
147
+ {
148
+ "matcher": "Write|Edit|MultiEdit",
149
+ "hooks": [
150
+ {
151
+ "type": "command",
152
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-php-review.js\"",
153
+ "timeout": 3000
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ "matcher": "Write|Edit|MultiEdit",
159
+ "hooks": [
160
+ {
161
+ "type": "command",
162
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-sql-review.js\"",
163
+ "timeout": 3000
164
+ }
165
+ ]
166
+ },
167
+ {
168
+ "matcher": "Write|Edit|MultiEdit",
169
+ "hooks": [
170
+ {
171
+ "type": "command",
172
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/scope-counter.js\"",
173
+ "timeout": 3000
174
+ }
175
+ ]
176
+ },
177
+ {
178
+ "matcher": "Write|Edit|MultiEdit",
179
+ "hooks": [
180
+ {
181
+ "type": "command",
182
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-frontend-review.js\"",
183
+ "timeout": 3000
184
+ }
185
+ ]
186
+ },
187
+ {
188
+ "matcher": "Write|Edit|MultiEdit",
189
+ "hooks": [
190
+ {
191
+ "type": "command",
192
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/sql-cross-cluster-check.js\"",
193
+ "timeout": 3000
194
+ }
195
+ ]
196
+ },
197
+ {
198
+ "matcher": "Write|Edit|MultiEdit",
199
+ "hooks": [
200
+ {
201
+ "type": "command",
202
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/dbchanges2-file-sprawl.js\"",
203
+ "timeout": 3000
204
+ }
205
+ ]
206
+ },
207
+ {
208
+ "matcher": "Write|Edit|MultiEdit",
209
+ "hooks": [
210
+ {
211
+ "type": "command",
212
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/memory-scope-guard.js\"",
213
+ "timeout": 3000
214
+ }
215
+ ]
216
+ },
217
+ {
218
+ "matcher": "Edit|Write|MultiEdit|NotebookEdit",
219
+ "hooks": [
220
+ {
221
+ "type": "command",
222
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-files.js\"",
223
+ "timeout": 3000
224
+ }
225
+ ]
226
+ }
227
+ ],
228
+ "SessionStart": [
229
+ {
230
+ "hooks": [
231
+ {
232
+ "type": "command",
233
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-start.js\"",
234
+ "timeout": 5000
235
+ }
236
+ ]
237
+ }
238
+ ],
239
+ "Stop": [
240
+ {
241
+ "hooks": [
242
+ {
243
+ "type": "command",
244
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/session-end.js\"",
245
+ "timeout": 5000
246
+ }
247
+ ]
248
+ },
249
+ {
250
+ "hooks": [
251
+ {
252
+ "type": "command",
253
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/evaluate-session.js\"",
254
+ "timeout": 5000
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ "hooks": [
260
+ {
261
+ "type": "command",
262
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/toga/remind-php-lint.js\"",
263
+ "timeout": 3000
264
+ }
265
+ ]
266
+ }
267
+ ]
268
+ },
269
+ "permissions": {
270
+ "allow": [
271
+ "Bash(node .claude/knowledge.js *)",
272
+ "Bash(node .claude/hooks/toga/*.js)",
273
+ "Bash(node sync-skills.js *)",
274
+ "Bash(node scripts/harness.js *)",
275
+ "Bash(node scripts/install.js *)",
276
+ "Bash(php -l *)",
277
+ "Bash(git status)",
278
+ "Bash(git diff *)",
279
+ "Bash(git log *)",
280
+ "Bash(git add *)",
281
+ "Bash(git commit *)",
282
+ "Bash(git checkout *)",
283
+ "Bash(git branch *)",
284
+ "Bash(git pull *)",
285
+ "Bash(npm *)",
286
+ "Bash(npx *)"
287
+ ],
288
+ "ask": ["Bash(git push *)"],
289
+ "deny": [
290
+ "mcp__clickup__clickup_delete_task",
291
+ "mcp__clickup__clickup_delete_comment",
292
+ "mcp__clickup__clickup_create_task",
293
+ "mcp__clickup__clickup_execute_operator",
294
+ "mcp__clickup__clickup_merge_tasks",
295
+ "mcp__clickup__clickup_move_task",
296
+ "mcp__claude_ai_ClickUP_for_Dev",
297
+ "Bash(git push --force*)",
298
+ "Bash(git push -f*)",
299
+ "Bash(git push *--force*)",
300
+ "Bash(git push * -f*)",
301
+ "Bash(git push * +*)"
302
+ ]
303
+ },
304
+ "env": {
305
+ "GATEGUARD_BASH_ROUTINE_DISABLED": "1"
306
+ }
310
307
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.985",
3
+ "version": "1.0.986",
4
4
  "description": "TOGA Technology Team Claude Knowledge System — shared AI coding harness with skills, knowledge base CLI, and project installer for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",
@@ -439,6 +439,7 @@ const RETIRED_TOGA_HOOKS = ['kickoff-gate.js'];
439
439
  const RETIRED_TOGA_PERMISSIONS = { ask: [
440
440
  'mcp__clickup__clickup_create_task_comment',
441
441
  'mcp__clickup__clickup_create_comment',
442
+ 'mcp__clickup__clickup_update_task',
442
443
  ] };
443
444
 
444
445
  function mergeSettings(claudeDir, sourceDir) {
@@ -25,9 +25,10 @@ The hook already checked the id, wrote the session ticket file
25
25
  `node "<TEAM_REPO>/knowledge.js" kickoff-primed`.
26
26
  3. **open** — normal work. ClickUp writes still only go to this ticket, only with
27
27
  `mcp__clickup__clickup_update_task` (fields: Application, Stakeholders, Task Type,
28
- Pseudocode, Has UI Changes, `name`, status `development finished`) and
29
- `mcp__clickup__clickup_create_comment`. The hook blocks every other ClickUp write, and
30
- Claude Code asks the developer before each one. /start writes only the status `to do` -> `in progress` (Step 6b).
28
+ Pseudocode, Has UI Changes, `name`, status `in progress` / `development finished`) and
29
+ `mcp__clickup__clickup_create_comment`. The hook blocks every other ClickUp write. Field
30
+ changes are written only after the developer says yes in chat; status changes need no
31
+ question. /start writes only the status `to do` -> `in progress` (Step 6b).
31
32
 
32
33
  Trailing text is never permission to skip steps. If a block message appears, do the step it
33
34
  names. Do not fight the gate. (Harness work only: `TOGA_START_GATE_DISABLED=1`.)