mindsystem-cc 3.3.2 → 3.5.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.
Files changed (28) hide show
  1. package/README.md +65 -1
  2. package/agents/ms-code-simplifier.md +1 -0
  3. package/agents/ms-flutter-reviewer.md +210 -0
  4. package/agents/ms-flutter-simplifier.md +42 -101
  5. package/bin/install.js +8 -0
  6. package/commands/ms/audit-milestone.md +209 -0
  7. package/commands/ms/do-work.md +7 -7
  8. package/commands/ms/execute-phase.md +5 -5
  9. package/commands/ms/research-project.md +10 -4
  10. package/mindsystem/templates/config.json +5 -1
  11. package/mindsystem/workflows/do-work.md +23 -23
  12. package/mindsystem/workflows/execute-phase.md +20 -20
  13. package/mindsystem/workflows/map-codebase.md +12 -6
  14. package/package.json +3 -2
  15. package/skills/flutter-senior-review/AGENTS.md +869 -0
  16. package/skills/flutter-senior-review/SKILL.md +205 -0
  17. package/skills/flutter-senior-review/principles/dependencies-data-not-callbacks.md +75 -0
  18. package/skills/flutter-senior-review/principles/dependencies-provider-tree.md +85 -0
  19. package/skills/flutter-senior-review/principles/dependencies-temporal-coupling.md +97 -0
  20. package/skills/flutter-senior-review/principles/pragmatism-consistent-error-handling.md +130 -0
  21. package/skills/flutter-senior-review/principles/pragmatism-speculative-generality.md +91 -0
  22. package/skills/flutter-senior-review/principles/state-data-clumps.md +64 -0
  23. package/skills/flutter-senior-review/principles/state-invalid-states.md +53 -0
  24. package/skills/flutter-senior-review/principles/state-single-source-of-truth.md +68 -0
  25. package/skills/flutter-senior-review/principles/state-type-hierarchies.md +75 -0
  26. package/skills/flutter-senior-review/principles/structure-composition-over-config.md +105 -0
  27. package/skills/flutter-senior-review/principles/structure-shared-visual-patterns.md +107 -0
  28. package/skills/flutter-senior-review/principles/structure-wrapper-pattern.md +90 -0
@@ -190,6 +190,211 @@ Plus full markdown report with tables for requirements, phases, integration, tec
190
190
 
191
191
  Route by status (see `<offer_next>`).
192
192
 
193
+ ## 8. Code Review (Milestone)
194
+
195
+ Read code review agent from config:
196
+
197
+ ```bash
198
+ CODE_REVIEW=$(cat .planning/config.json 2>/dev/null | jq -r '.code_review.milestone // empty')
199
+ ```
200
+
201
+ **If CODE_REVIEW = "skip":**
202
+ Report: "Milestone code review skipped (config: skip)"
203
+ Proceed to next steps.
204
+
205
+ **If CODE_REVIEW = empty/null:**
206
+ Use default: `CODE_REVIEW="ms-flutter-reviewer"`
207
+
208
+ ### Step 8.1: Get Changed Files
209
+
210
+ ```bash
211
+ # Find first commit in milestone (first phase commit)
212
+ FIRST_PHASE=$(ls -d .planning/phases/*/ | sort -V | head -1 | xargs basename | cut -d- -f1)
213
+ FIRST_COMMIT=$(git log --oneline --grep="(${FIRST_PHASE}-" --format="%H" | tail -1)
214
+
215
+ # Get all implementation files changed since first commit
216
+ CHANGED_FILES=$(git diff --name-only ${FIRST_COMMIT}^..HEAD | grep -E '\.(dart|ts|tsx|js|jsx|swift|kt|py|go|rs)$')
217
+ ```
218
+
219
+ ### Step 8.2: Determine Agent Mode
220
+
221
+ ```bash
222
+ # Read agent mode from frontmatter
223
+ AGENT_MODE=$(grep -A10 '^---' ~/.claude/agents/${CODE_REVIEW}.md | grep 'mode:' | awk '{print $2}')
224
+ ```
225
+
226
+ ---
227
+
228
+ ### Path A: Analysis-Only Reviewers (mode: analyze-only)
229
+
230
+ For agents with `mode: analyze-only` (e.g., `ms-flutter-reviewer`):
231
+
232
+ **A1. Spawn reviewer with read-only tools:**
233
+
234
+ ```
235
+ Task(
236
+ prompt="
237
+ <objective>
238
+ Analyze code from milestone {version} for structural issues.
239
+ Report findings only — do NOT make changes.
240
+ </objective>
241
+
242
+ <scope>
243
+ Files to analyze:
244
+ {CHANGED_FILES}
245
+ </scope>
246
+
247
+ <output>
248
+ Provide findings report with YAML summary block for parsing.
249
+ </output>
250
+ ",
251
+ subagent_type="{CODE_REVIEW}"
252
+ )
253
+ ```
254
+
255
+ **A2. Parse YAML findings from output:**
256
+
257
+ Extract the `code_review:` YAML block from the reviewer's response.
258
+
259
+ **A3. Add findings to MILESTONE-AUDIT.md:**
260
+
261
+ Append to the YAML frontmatter:
262
+
263
+ ```yaml
264
+ code_review:
265
+ agent: {CODE_REVIEW}
266
+ files_analyzed: {N}
267
+ findings_by_impact:
268
+ high: {X}
269
+ medium: {Y}
270
+ low: {Z}
271
+ findings: [...]
272
+
273
+ tech_debt:
274
+ - source: code_review
275
+ items:
276
+ - "{issue}: {description} ({file})"
277
+ ```
278
+
279
+ Add markdown section to report body:
280
+
281
+ ```markdown
282
+ ## Code Review Findings
283
+
284
+ **Agent:** {CODE_REVIEW}
285
+ **Files analyzed:** {N}
286
+
287
+ {Include full findings report from reviewer}
288
+ ```
289
+
290
+ **A4. Present binary decision:**
291
+
292
+ ```markdown
293
+ ## Code Review Complete
294
+
295
+ **Findings:** {total} ({high} high, {medium} medium, {low} low)
296
+
297
+ ### Options
298
+
299
+ **A. Create quality phase** — Add phase to address findings before completing milestone
300
+
301
+ **B. Accept as tech debt** — Document findings, proceed to complete milestone
302
+
303
+ ---
304
+
305
+ Which would you like to do?
306
+ ```
307
+
308
+ Use AskUserQuestion with options A and B.
309
+
310
+ **A5. Handle decision:**
311
+
312
+ **If user chooses "Create quality phase":**
313
+
314
+ 1. Determine next phase number (append at end of current phases)
315
+ 2. Create phase directory: `.planning/phases/{NN}-code-quality/`
316
+ 3. Create `PHASE-FINDINGS.md` with full review findings
317
+ 4. Update ROADMAP.md with new phase:
318
+
319
+ ```markdown
320
+ ### Phase {N}: Code Quality (Generated)
321
+ **Goal:** Address structural improvements from milestone code review
322
+
323
+ **Findings to address:**
324
+ [High impact items from review]
325
+
326
+ Plans:
327
+ - [ ] {N}-01: High impact structural fixes
328
+ ```
329
+
330
+ 5. Report:
331
+ ```markdown
332
+ ## Quality Phase Created
333
+
334
+ **Phase {N}:** `.planning/phases/{NN}-code-quality/`
335
+ **Findings documented:** `PHASE-FINDINGS.md`
336
+
337
+ ---
338
+
339
+ ## ▶ Next Up
340
+
341
+ **Plan the quality phase**
342
+
343
+ `/ms:plan-phase {N}`
344
+
345
+ <sub>`/clear` first → fresh context window</sub>
346
+ ```
347
+
348
+ **If user chooses "Accept as tech debt":**
349
+
350
+ Mark `tech_debt` entries as `status: deferred` in MILESTONE-AUDIT.md and continue to offer_next section.
351
+
352
+ ---
353
+
354
+ ### Path B: Simplifier Agents (default)
355
+
356
+ For agents without `mode: analyze-only` (e.g., `ms-code-simplifier`, `ms-flutter-simplifier`):
357
+
358
+ **B1. Spawn code review agent:**
359
+
360
+ ```
361
+ Task(
362
+ prompt="
363
+ <objective>
364
+ Review code from milestone {version}.
365
+ Focus on architectural patterns, cross-phase consistency, and structural improvements.
366
+ Preserve all functionality. Make changes that improve clarity and maintainability.
367
+ </objective>
368
+
369
+ <scope>
370
+ Files to analyze:
371
+ {CHANGED_FILES}
372
+ </scope>
373
+
374
+ <output>
375
+ After review, run static analysis and tests.
376
+ Report what was improved and verification results.
377
+ </output>
378
+ ",
379
+ subagent_type="{CODE_REVIEW}"
380
+ )
381
+ ```
382
+
383
+ **B2. Commit if changes made:**
384
+
385
+ ```bash
386
+ git add [modified files]
387
+ git commit -m "$(cat <<'EOF'
388
+ refactor(milestone): code review improvements
389
+
390
+ Reviewer: {agent_type}
391
+ Files reviewed: {count}
392
+ EOF
393
+ )"
394
+ ```
395
+
396
+ Report: "Milestone code review complete."
397
+
193
398
  </process>
194
399
 
195
400
  <offer_next>
@@ -314,5 +519,9 @@ See full list in MILESTONE-AUDIT.md. Consider addressing in next milestone.
314
519
  - [ ] Assumptions aggregated by phase
315
520
  - [ ] Integration checker spawned for cross-phase wiring
316
521
  - [ ] v{version}-MILESTONE-AUDIT.md created with assumptions section
522
+ - [ ] Code review completed (or skipped if config says "skip")
523
+ - [ ] If analyze-only reviewer: YAML findings parsed and added to report
524
+ - [ ] If analyze-only reviewer: Binary decision presented (quality phase vs tech debt)
525
+ - [ ] If quality phase chosen: Phase directory created with PHASE-FINDINGS.md
317
526
  - [ ] Results presented with actionable next steps
318
527
  </success_criteria>
@@ -57,16 +57,16 @@ Run verify commands from tasks.
57
57
  Create .planning/adhoc/{timestamp}-{slug}-SUMMARY.md.
58
58
  </step>
59
59
 
60
- <step name="simplify_code">
61
- Read `simplifier` from config.json (default: `ms-code-simplifier`).
60
+ <step name="code_review">
61
+ Read `code_review.adhoc` from config.json (fallback: `code_review.phase`, default: `ms-code-simplifier`).
62
62
  If `"skip"`: proceed to update_state_and_commit.
63
- Spawn simplifier agent with modified files.
64
- Track if simplifications were applied for commit message.
63
+ Spawn code review agent with modified files.
64
+ Track if code review changes were applied for commit message.
65
65
  </step>
66
66
 
67
67
  <step name="update_state_and_commit">
68
68
  Add entry to STATE.md "Recent Adhoc Work" section.
69
- Single git commit with all changes (code + simplifications + PLAN.md + SUMMARY.md + STATE.md).
69
+ Single git commit with all changes (code + code review changes + PLAN.md + SUMMARY.md + STATE.md).
70
70
  </step>
71
71
 
72
72
  <step name="generate_patch">
@@ -95,10 +95,10 @@ Adhoc work is complete when:
95
95
  - [ ] .planning/adhoc/ directory exists
96
96
  - [ ] PLAN.md created with tasks
97
97
  - [ ] All tasks executed and verified
98
- - [ ] Code simplified (or skipped if config says "skip")
98
+ - [ ] Code review completed (or skipped if config says "skip")
99
99
  - [ ] SUMMARY.md created with outcomes
100
100
  - [ ] STATE.md updated with adhoc entry
101
- - [ ] Single git commit with all changes (including simplifications)
101
+ - [ ] Single git commit with all changes (including code review changes)
102
102
  - [ ] Patch file generated OR explicitly skipped with message
103
103
  - [ ] User informed of completion and commit hash
104
104
  </success_criteria>
@@ -61,11 +61,11 @@ Phase: $ARGUMENTS
61
61
  - Collect summaries from all plans
62
62
  - Report phase completion status
63
63
 
64
- 6. **Simplify code (optional)**
65
- - Read `simplifier` from config.json (default: `ms-code-simplifier`)
64
+ 6. **Code review (optional)**
65
+ - Read `code_review.phase` from config.json (default: `ms-code-simplifier`)
66
66
  - If `"skip"`: proceed to step 7
67
- - Spawn simplifier agent with phase file scope
68
- - If changes made: commit as `refactor({phase}): simplify phase code`
67
+ - Spawn code review agent with phase file scope
68
+ - If changes made: commit as `refactor({phase}): code review improvements`
69
69
 
70
70
  7. **Verify phase goal**
71
71
  - Spawn `ms-verifier` subagent with phase directory and goal
@@ -293,7 +293,7 @@ After all plans in phase complete:
293
293
  <success_criteria>
294
294
  - [ ] All incomplete plans in phase executed
295
295
  - [ ] Each plan has SUMMARY.md
296
- - [ ] Code simplified (or skipped if config says "skip")
296
+ - [ ] Code review completed (or skipped if config says "skip")
297
297
  - [ ] Phase goal verified (must_haves checked against codebase)
298
298
  - [ ] VERIFICATION.md created in phase directory
299
299
  - [ ] Patch file generated OR explicitly skipped with message
@@ -299,11 +299,17 @@ Create SUMMARY.md with:
299
299
  - Confidence assessment
300
300
  - Gaps to address
301
301
 
302
- After creating SUMMARY.md, update config.json simplifier with agent name:
302
+ After creating SUMMARY.md, update config.json code_review fields with agent names:
303
303
  1. Read recommended stack from STACK.md
304
- 2. Map to simplifier agent name:
305
- - Flutter/Dart → \"ms-flutter-simplifier\"
306
- - All others → \"ms-code-simplifier\"
304
+ 2. Map to code review agent names:
305
+ - Flutter/Dart:
306
+ - adhoc: \"ms-flutter-simplifier\"
307
+ - phase: \"ms-flutter-simplifier\"
308
+ - milestone: \"ms-flutter-reviewer\"
309
+ - All others:
310
+ - adhoc: \"ms-code-simplifier\"
311
+ - phase: \"ms-code-simplifier\"
312
+ - milestone: (leave as null)
307
313
  3. Update .planning/config.json (create from template if needed)
308
314
 
309
315
  Then commit ALL research files together:
@@ -12,5 +12,9 @@
12
12
  "always_confirm_destructive": true,
13
13
  "always_confirm_external_services": true
14
14
  },
15
- "simplifier": null
15
+ "code_review": {
16
+ "adhoc": null,
17
+ "phase": null,
18
+ "milestone": null
19
+ }
16
20
  }
@@ -217,33 +217,33 @@ Verify the work is complete:
217
217
  Keep verification focused on the specific changes made.
218
218
  </step>
219
219
 
220
- <step name="simplify_code">
221
- Read simplifier from config:
220
+ <step name="code_review">
221
+ Read code review agent from config:
222
222
 
223
223
  ```bash
224
- SIMPLIFIER=$(cat .planning/config.json 2>/dev/null | jq -r '.simplifier // empty')
224
+ CODE_REVIEW=$(cat .planning/config.json 2>/dev/null | jq -r '.code_review.adhoc // .code_review.phase // empty')
225
225
  ```
226
226
 
227
- **If SIMPLIFIER = "skip":**
227
+ **If CODE_REVIEW = "skip":**
228
228
  Skip to create_adhoc_summary.
229
229
 
230
- **If SIMPLIFIER = empty/null:**
231
- Use default: `SIMPLIFIER="ms-code-simplifier"`
230
+ **If CODE_REVIEW = empty/null:**
231
+ Use default: `CODE_REVIEW="ms-code-simplifier"`
232
232
 
233
233
  **Otherwise:**
234
- Use SIMPLIFIER value directly as agent name.
234
+ Use CODE_REVIEW value directly as agent name.
235
235
 
236
236
  1. **Get modified files:**
237
237
  ```bash
238
238
  git diff --name-only HEAD | grep -E '\.(dart|ts|tsx|js|jsx|swift|kt|py|go|rs)$'
239
239
  ```
240
240
 
241
- 2. **Spawn simplifier with adhoc scope:**
241
+ 2. **Spawn code review agent with adhoc scope:**
242
242
  ```
243
243
  Task(
244
244
  prompt="
245
245
  <objective>
246
- Simplify code modified in adhoc work.
246
+ Review code modified in adhoc work.
247
247
  Preserve all functionality. Improve clarity and consistency.
248
248
  </objective>
249
249
 
@@ -253,18 +253,18 @@ Use SIMPLIFIER value directly as agent name.
253
253
  </scope>
254
254
 
255
255
  <output>
256
- After simplifications, run static analysis and tests.
257
- Report what was simplified and verification results.
256
+ After review and simplifications, run static analysis and tests.
257
+ Report what was improved and verification results.
258
258
  </output>
259
259
  ",
260
- subagent_type="{SIMPLIFIER}"
260
+ subagent_type="{CODE_REVIEW}"
261
261
  )
262
262
  ```
263
263
 
264
- 3. **Track simplification changes:**
265
- - If changes made: Set `SIMPLIFICATION_APPLIED=true`
266
- - Simplified files will be included in the adhoc commit
267
- - Note in SUMMARY.md that simplification was applied
264
+ 3. **Track review changes:**
265
+ - If changes made: Set `CODE_REVIEW_APPLIED=true`
266
+ - Reviewed files will be included in the adhoc commit
267
+ - Note in SUMMARY.md that code review was applied
268
268
  </step>
269
269
 
270
270
  <step name="create_adhoc_summary">
@@ -339,9 +339,9 @@ If section doesn't exist, add after "### Pending Todos" section:
339
339
  Single commit for all changes (including simplifications if applied):
340
340
 
341
341
  ```bash
342
- # Add all modified files (code + simplified files)
342
+ # Add all modified files (code + reviewed files)
343
343
  git add [code files modified]
344
- git add [simplified files if SIMPLIFICATION_APPLIED]
344
+ git add [reviewed files if CODE_REVIEW_APPLIED]
345
345
  git add "$plan_file"
346
346
  git add "$summary_file"
347
347
  git add .planning/STATE.md
@@ -351,18 +351,18 @@ git add .planning/STATE.md
351
351
  # fix: bug fix, correction
352
352
  commit_type="fix" # or "feat" based on nature of work
353
353
 
354
- # Include simplification note if applied
355
- if [ "$SIMPLIFICATION_APPLIED" = "true" ]; then
356
- simplification_note="Includes code simplification pass."
354
+ # Include code review note if applied
355
+ if [ "$CODE_REVIEW_APPLIED" = "true" ]; then
356
+ review_note="Includes code review pass."
357
357
  else
358
- simplification_note=""
358
+ review_note=""
359
359
  fi
360
360
 
361
361
  git commit -m "$(cat <<'EOF'
362
362
  ${commit_type}(adhoc): [description]
363
363
 
364
364
  Files: [count] modified
365
- ${simplification_note}
365
+ ${review_note}
366
366
  EOF
367
367
  )"
368
368
 
@@ -341,22 +341,22 @@ After all waves complete, aggregate results:
341
341
  ```
342
342
  </step>
343
343
 
344
- <step name="simplify_code">
345
- Read simplifier agent name from config:
344
+ <step name="code_review">
345
+ Read code review agent name from config:
346
346
 
347
347
  ```bash
348
- SIMPLIFIER=$(cat .planning/config.json 2>/dev/null | jq -r '.simplifier // empty')
348
+ CODE_REVIEW=$(cat .planning/config.json 2>/dev/null | jq -r '.code_review.phase // empty')
349
349
  ```
350
350
 
351
- **If SIMPLIFIER = "skip":**
352
- Report: "Code simplification skipped (config: skip)"
351
+ **If CODE_REVIEW = "skip":**
352
+ Report: "Code review skipped (config: skip)"
353
353
  Proceed to verify_phase_goal.
354
354
 
355
- **If SIMPLIFIER = empty/null:**
356
- Use default: `SIMPLIFIER="ms-code-simplifier"`
355
+ **If CODE_REVIEW = empty/null:**
356
+ Use default: `CODE_REVIEW="ms-code-simplifier"`
357
357
 
358
358
  **Otherwise:**
359
- Use SIMPLIFIER value directly as agent name.
359
+ Use CODE_REVIEW value directly as agent name.
360
360
 
361
361
  1. **Gather changed files:**
362
362
  ```bash
@@ -365,12 +365,12 @@ Use SIMPLIFIER value directly as agent name.
365
365
  CHANGED_FILES=$(git diff --name-only $(echo "$PHASE_COMMITS" | tail -1)^..HEAD | grep -E '\.(dart|ts|tsx|js|jsx|swift|kt|py|go|rs)$')
366
366
  ```
367
367
 
368
- 2. **Spawn simplifier (agent name from config):**
368
+ 2. **Spawn code review agent (from config):**
369
369
  ```
370
370
  Task(
371
371
  prompt="
372
372
  <objective>
373
- Simplify code modified in phase {phase_number}.
373
+ Review code modified in phase {phase_number}.
374
374
  Preserve all functionality. Improve clarity and consistency.
375
375
  </objective>
376
376
 
@@ -380,31 +380,31 @@ Use SIMPLIFIER value directly as agent name.
380
380
  </scope>
381
381
 
382
382
  <output>
383
- After simplifications, run static analysis and tests.
384
- Report what was simplified and verification results.
383
+ After review and simplifications, run static analysis and tests.
384
+ Report what was improved and verification results.
385
385
  </output>
386
386
  ",
387
- subagent_type="{SIMPLIFIER}"
387
+ subagent_type="{CODE_REVIEW}"
388
388
  )
389
389
  ```
390
390
 
391
391
  3. **Handle result:**
392
392
  - If changes made: Stage and commit
393
- - If no changes: Report "No simplifications needed"
393
+ - If no changes: Report "No improvements needed"
394
394
 
395
- 4. **Commit simplifications (if any):**
395
+ 4. **Commit review changes (if any):**
396
396
  ```bash
397
- git add [simplified files]
397
+ git add [modified files]
398
398
  git commit -m "$(cat <<'EOF'
399
- refactor({phase}): simplify phase code
399
+ refactor({phase}): code review improvements
400
400
 
401
- Simplifier: {agent_type}
402
- Files simplified: {count}
401
+ Reviewer: {agent_type}
402
+ Files reviewed: {count}
403
403
  EOF
404
404
  )"
405
405
  ```
406
406
 
407
- Report: "Code simplified. Proceeding to verification."
407
+ Report: "Code review complete. Proceeding to verification."
408
408
  </step>
409
409
 
410
410
  <step name="verify_phase_goal">
@@ -96,13 +96,19 @@ Write these documents to .planning/codebase/:
96
96
  - STACK.md - Languages, runtime, frameworks, dependencies, configuration
97
97
  - INTEGRATIONS.md - External APIs, databases, auth providers, webhooks
98
98
 
99
- After writing STACK.md, update config.json simplifier field with the appropriate agent name:
99
+ After writing STACK.md, update config.json code_review fields with the appropriate agent names:
100
100
  1. Read STACK.md to detect primary framework
101
- 2. Map framework to simplifier agent name:
102
- - Flutter/Dart → "ms-flutter-simplifier"
103
- - All others (React, Next.js, Node, Swift, Kotlin, etc.) → "ms-code-simplifier"
104
- 3. If .planning/config.json exists: update the simplifier field
105
- If not: note the recommended simplifier for later config creation
101
+ 2. Map framework to code review agent names:
102
+ - Flutter/Dart:
103
+ - adhoc: "ms-flutter-simplifier"
104
+ - phase: "ms-flutter-simplifier"
105
+ - milestone: "ms-flutter-reviewer"
106
+ - All others (React, Next.js, Node, Swift, Kotlin, etc.):
107
+ - adhoc: "ms-code-simplifier"
108
+ - phase: "ms-code-simplifier"
109
+ - milestone: (leave as null — runtime defaults to ms-flutter-reviewer)
110
+ 3. If .planning/config.json exists: update all three code_review fields
111
+ If not: note the recommended code review agents for later config creation
106
112
 
107
113
  Explore thoroughly. Write documents directly using templates. Return confirmation only.
108
114
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindsystem-cc",
3
- "version": "3.3.2",
3
+ "version": "3.5.0",
4
4
  "description": "A meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.",
5
5
  "bin": {
6
6
  "mindsystem-cc": "bin/install.js"
@@ -10,7 +10,8 @@
10
10
  "commands",
11
11
  "mindsystem",
12
12
  "agents",
13
- "scripts"
13
+ "scripts",
14
+ "skills"
14
15
  ],
15
16
  "keywords": [
16
17
  "claude",