ima-claude 2.20.0 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -9
- package/dist/cli.js +2 -1
- package/package.json +1 -1
- package/plugins/ima-claude/.claude-plugin/plugin.json +2 -2
- package/plugins/ima-claude/agents/explorer.md +29 -15
- package/plugins/ima-claude/agents/implementer.md +58 -13
- package/plugins/ima-claude/agents/memory.md +19 -19
- package/plugins/ima-claude/agents/reviewer.md +84 -34
- package/plugins/ima-claude/agents/tester.md +59 -16
- package/plugins/ima-claude/agents/wp-developer.md +66 -21
- package/plugins/ima-claude/hooks/bootstrap.sh +42 -44
- package/plugins/ima-claude/hooks/prompt_coach_digest.md +14 -17
- package/plugins/ima-claude/hooks/prompt_coach_system.md +10 -12
- package/plugins/ima-claude/personalities/README.md +17 -6
- package/plugins/ima-claude/personalities/enable-efficient.md +61 -0
- package/plugins/ima-claude/personalities/enable-terse.md +71 -0
- package/plugins/ima-claude/skills/agentic-workflows/SKILL.md +35 -71
- package/plugins/ima-claude/skills/architect/SKILL.md +54 -168
- package/plugins/ima-claude/skills/compound-bridge/SKILL.md +41 -94
- package/plugins/ima-claude/skills/design-to-code/SKILL.md +43 -78
- package/plugins/ima-claude/skills/discourse/SKILL.md +79 -194
- package/plugins/ima-claude/skills/discourse-admin/SKILL.md +41 -103
- package/plugins/ima-claude/skills/docs-organize/SKILL.md +63 -203
- package/plugins/ima-claude/skills/ember-discourse/SKILL.md +90 -200
- package/plugins/ima-claude/skills/espocrm/SKILL.md +14 -23
- package/plugins/ima-claude/skills/espocrm-api/SKILL.md +79 -192
- package/plugins/ima-claude/skills/functional-programmer/SKILL.md +33 -237
- package/plugins/ima-claude/skills/gh-cli/SKILL.md +26 -65
- package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +71 -104
- package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +32 -22
- package/plugins/ima-claude/skills/ima-brand/SKILL.md +18 -23
- package/plugins/ima-claude/skills/ima-copywriting/SKILL.md +68 -179
- package/plugins/ima-claude/skills/ima-doc2pdf/SKILL.md +32 -102
- package/plugins/ima-claude/skills/ima-editorial-scorecard/SKILL.md +38 -63
- package/plugins/ima-claude/skills/ima-editorial-workflow/SKILL.md +69 -114
- package/plugins/ima-claude/skills/ima-email-creator/SKILL.md +16 -22
- package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +21 -37
- package/plugins/ima-claude/skills/ima-git/SKILL.md +81 -0
- package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +39 -120
- package/plugins/ima-claude/skills/jquery/SKILL.md +107 -233
- package/plugins/ima-claude/skills/js-fp/SKILL.md +75 -296
- package/plugins/ima-claude/skills/js-fp-api/SKILL.md +52 -162
- package/plugins/ima-claude/skills/js-fp-react/SKILL.md +47 -270
- package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +55 -209
- package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +59 -204
- package/plugins/ima-claude/skills/livecanvas/SKILL.md +19 -32
- package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +92 -162
- package/plugins/ima-claude/skills/mcp-context7/SKILL.md +32 -64
- package/plugins/ima-claude/skills/mcp-gitea/SKILL.md +98 -188
- package/plugins/ima-claude/skills/mcp-github/SKILL.md +60 -124
- package/plugins/ima-claude/skills/mcp-memory/SKILL.md +1 -177
- package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +58 -115
- package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +32 -87
- package/plugins/ima-claude/skills/mcp-serena/SKILL.md +54 -80
- package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +40 -63
- package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +75 -116
- package/plugins/ima-claude/skills/php-authnet/SKILL.md +32 -65
- package/plugins/ima-claude/skills/php-fp/SKILL.md +50 -129
- package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +25 -73
- package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +103 -463
- package/plugins/ima-claude/skills/playwright/SKILL.md +69 -220
- package/plugins/ima-claude/skills/prompt-starter/SKILL.md +33 -83
- package/plugins/ima-claude/skills/prompt-starter/references/code-review.md +38 -0
- package/plugins/ima-claude/skills/py-fp/SKILL.md +78 -384
- package/plugins/ima-claude/skills/quasar-fp/SKILL.md +54 -255
- package/plugins/ima-claude/skills/quickstart/SKILL.md +7 -11
- package/plugins/ima-claude/skills/rails/SKILL.md +63 -184
- package/plugins/ima-claude/skills/resume-session/SKILL.md +14 -35
- package/plugins/ima-claude/skills/rg/SKILL.md +61 -146
- package/plugins/ima-claude/skills/ruby-fp/SKILL.md +66 -163
- package/plugins/ima-claude/skills/save-session/SKILL.md +10 -39
- package/plugins/ima-claude/skills/scorecard/SKILL.md +42 -40
- package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +42 -71
- package/plugins/ima-claude/skills/skill-creator/SKILL.md +79 -250
- package/plugins/ima-claude/skills/task-master/SKILL.md +11 -31
- package/plugins/ima-claude/skills/task-planner/SKILL.md +44 -153
- package/plugins/ima-claude/skills/task-runner/SKILL.md +61 -143
- package/plugins/ima-claude/skills/unit-testing/SKILL.md +59 -134
- package/plugins/ima-claude/skills/wp-ddev/SKILL.md +38 -120
- package/plugins/ima-claude/skills/wp-local/SKILL.md +26 -108
package/README.md
CHANGED
|
@@ -63,6 +63,31 @@ npx ima-claude install --target claude # Claude Code only (plugin recommend
|
|
|
63
63
|
npx ima-claude detect # Show detected platforms
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
+
**Tip: Install into a single project instead of globally**
|
|
67
|
+
|
|
68
|
+
The installer resolves its target paths via `$HOME` (`~/.claude/...`). Override `$HOME` at invocation time to write skills, agents, hooks, and `settings.json` into the current repo's `./.claude/` instead:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
HOME=$(pwd) npx ima-claude install --target claude
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Produces:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
./.claude/skills/ # project-scoped skills
|
|
78
|
+
./.claude/agents/ # project-scoped agents
|
|
79
|
+
./.claude/hooks/ # Python hook scripts
|
|
80
|
+
./.claude/settings.json # hook configuration (absolute paths)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Claude Code already reads these as project-scoped config, so the skills/hooks load only when you're working inside that repo.
|
|
84
|
+
|
|
85
|
+
Caveats:
|
|
86
|
+
|
|
87
|
+
- The plugin marketplace flow (`/plugin install ima-claude`) remains the recommended path for most users. Use this override only when you want per-repo skill customization without touching your home install.
|
|
88
|
+
- `settings.json` records hook paths as absolute strings resolved at install time — if you rename or move the project, the hook entries break.
|
|
89
|
+
- `HOME=$(pwd)` also redirects npm's cache, so the install may drop a `.npm/` folder in the project root. Add it to `.gitignore` or clean up afterward.
|
|
90
|
+
|
|
66
91
|
**What's different per platform?**
|
|
67
92
|
|
|
68
93
|
| | Claude Code | Junie CLI | Gemini CLI | GitHub Copilot |
|
|
@@ -102,7 +127,7 @@ See [platforms/shared/types.ts](platforms/shared/types.ts) for the interface con
|
|
|
102
127
|
- **IMA Workflow**: Brainstorm → Plan → Implement → Test → Review → Document (habit-driven, not tool-enforced)
|
|
103
128
|
- **Session Management**: MCP-based save/resume via Serena (no file path confusion)
|
|
104
129
|
- **Meta-skills**: Create and analyze skills
|
|
105
|
-
- **Personalities**:
|
|
130
|
+
- **Personalities**: Token-efficient modes (efficient, terse) + themed fun (40K, Templars)
|
|
106
131
|
|
|
107
132
|
## Prerequisites
|
|
108
133
|
|
|
@@ -251,15 +276,21 @@ Named subagents with hard constraints — model, tools, and permissions enforced
|
|
|
251
276
|
|
|
252
277
|
| Agent | Model | Mode | Pre-loaded Skills | Use For |
|
|
253
278
|
|-------|-------|------|-------------------|---------|
|
|
254
|
-
| `ima-claude:explorer` | haiku | read-only |
|
|
255
|
-
| `ima-claude:implementer` | sonnet | full access | `functional-programmer` | Feature dev, bug fixes, refactoring, tests |
|
|
256
|
-
| `ima-claude:reviewer` | sonnet | read-only | `functional-programmer` | Code review, security audit, FP compliance |
|
|
257
|
-
| `ima-claude:tester` | sonnet | full access | `unit-testing`, `functional-programmer` | Test creation, TDD, test running, debugging failures |
|
|
258
|
-
| `ima-claude:wp-developer` | sonnet | full access | `php-fp`, `php-fp-wordpress`, `wp-ddev`, `wp-local`, `ima-forms-expert`, `ima-bootstrap`, `jquery` | WordPress plugins, themes, WP-CLI, forms |
|
|
279
|
+
| `ima-claude:explorer` | haiku | read-only | `mcp-serena` | File discovery, architecture understanding, code search |
|
|
280
|
+
| `ima-claude:implementer` | sonnet | full access | `functional-programmer`, `mcp-serena` | Feature dev, bug fixes, refactoring, tests |
|
|
281
|
+
| `ima-claude:reviewer` | sonnet | read-only | `functional-programmer`, `mcp-serena` | Code review, security audit, FP compliance |
|
|
282
|
+
| `ima-claude:tester` | sonnet | full access | `unit-testing`, `functional-programmer`, `mcp-serena` | Test creation, TDD, test running, debugging failures |
|
|
283
|
+
| `ima-claude:wp-developer` | sonnet | full access | `php-fp`, `php-fp-wordpress`, `wp-ddev`, `wp-local`, `ima-forms-expert`, `ima-bootstrap`, `jquery`, `mcp-serena` | WordPress plugins, themes, WP-CLI, forms |
|
|
259
284
|
| `ima-claude:memory` | sonnet | full access | `mcp-vestige`, `mcp-qdrant`, `mcp-serena` | Memory search, storage, consolidation across Vestige/Qdrant/Serena |
|
|
260
285
|
|
|
261
286
|
Agents are auto-discovered from `plugins/ima-claude/agents/`. No manifest changes needed to add new ones.
|
|
262
287
|
|
|
288
|
+
### Advisor Pattern (v2.25.0+)
|
|
289
|
+
|
|
290
|
+
Executor agents are cheap (Sonnet/Haiku); the parent session is Opus. When an agent hits an out-of-scope fork — scope drift, architectural decision, security-sensitive change outside plan, repeated failure, ambiguous requirement — it returns a structured `ESCALATION: <trigger>` report instead of guessing. The parent (Opus) arbitrates and re-dispatches with guidance. Implements the [Anthropic Advisor Strategy](https://claude.com/blog/the-advisor-strategy): keep execution on cheap models, reserve Opus for the decisions it's actually good at.
|
|
291
|
+
|
|
292
|
+
For in-scope hard reasoning (debugging, trade-offs within plan), agents invoke `mcp-sequential-thinking` and stay on the executor. Two channels, different costs, different jobs.
|
|
293
|
+
|
|
263
294
|
## Available Skills
|
|
264
295
|
|
|
265
296
|
### Foundational Skills
|
|
@@ -305,6 +336,7 @@ Agents are auto-discovered from `plugins/ima-claude/agents/`. No manifest change
|
|
|
305
336
|
| `wp-ddev` | WP-CLI commands for DDEV WordPress environments |
|
|
306
337
|
| `wp-local` | WP-CLI commands for Flywheel Local WP |
|
|
307
338
|
| `jira-checkpoint` | Jira awareness checkpoints for team visibility |
|
|
339
|
+
| `ima-git` | IMA trunk-based git workflow (main/release/tag model, hotfix flow, deploy-gate push cadence, commit atomicity) |
|
|
308
340
|
| `phpunit-wp` | PHPUnit testing for WordPress plugins with FP principles |
|
|
309
341
|
| `rg` | Ripgrep usage patterns |
|
|
310
342
|
| `ima-forms-expert` | WordPress form components (IMA Forms) |
|
|
@@ -388,16 +420,33 @@ See [hooks/README.md](hooks/README.md) for details.
|
|
|
388
420
|
|
|
389
421
|
See [docs/PROMPT_COACH.md](docs/PROMPT_COACH.md) for setup, configuration, and usage.
|
|
390
422
|
|
|
391
|
-
## Personalities
|
|
423
|
+
## Personalities
|
|
424
|
+
|
|
425
|
+
### Functional (Token-Efficient)
|
|
426
|
+
|
|
427
|
+
Communication styles that reduce output tokens. Based on research showing brevity constraints improve model accuracy ([arxiv.org/abs/2604.00025](https://arxiv.org/abs/2604.00025)).
|
|
428
|
+
|
|
429
|
+
| Personality | Style | Target Savings |
|
|
430
|
+
|---|---|---|
|
|
431
|
+
| **enable-efficient** | Precise, no filler, full sentences (Star Trek Data-like) | ~30-40% |
|
|
432
|
+
| **enable-terse** | Blunt fragments, bullets over prose, compressed | ~50-65% |
|
|
433
|
+
|
|
434
|
+
Both include an **auto-clarity rule** — automatically revert to normal English for security warnings, irreversible operations, or user confusion.
|
|
435
|
+
|
|
436
|
+
### Flavor (Themed Fun)
|
|
392
437
|
|
|
393
438
|
Themed response styles that change Claude's tone without affecting expertise:
|
|
394
439
|
|
|
395
|
-
|
|
396
|
-
|
|
440
|
+
| Personality | Style |
|
|
441
|
+
|---|---|
|
|
442
|
+
| **enable-40k** | Warhammer 40K themed code purification |
|
|
443
|
+
| **enable-templars** | Templar crusader themed responses |
|
|
397
444
|
|
|
398
445
|
Usage:
|
|
399
446
|
```
|
|
447
|
+
"Enable terse mode"
|
|
400
448
|
"Enable 40k mode and review this code"
|
|
449
|
+
"Return to normal mode"
|
|
401
450
|
```
|
|
402
451
|
|
|
403
452
|
## Projects (Manual Setup)
|
|
@@ -421,6 +470,22 @@ claude
|
|
|
421
470
|
|
|
422
471
|
See [projects/README.md](projects/README.md) for setup guide and instructions for building your own projects.
|
|
423
472
|
|
|
473
|
+
## Token Efficiency
|
|
474
|
+
|
|
475
|
+
All skills, agents, and instruction files are written for LLM consumption, not human reading. A systematic optimization pass reduced the skill corpus by **35% (~33,700 tokens)** without losing any functionality.
|
|
476
|
+
|
|
477
|
+
| Category | Before | After | Saved |
|
|
478
|
+
|----------|--------|-------|-------|
|
|
479
|
+
| Skills (62) | 70,401 words | 44,990 words | 36% |
|
|
480
|
+
| Agents (6) | 1,726 words | 1,451 words | 16% |
|
|
481
|
+
| Hooks (3) | 1,109 words | 891 words | 20% |
|
|
482
|
+
|
|
483
|
+
The writing convention (`.claude/rules/llm-optimized-writing.md`) ensures all future content follows the same rules: imperatives over explanations, tables over prose, drop filler/hedging/pleasantries, one concept per line.
|
|
484
|
+
|
|
485
|
+
Based on research showing brevity constraints actually improve LLM accuracy: [Brevity Constraints Reverse Performance Hierarchies in Language Models](https://arxiv.org/abs/2604.00025) (March 2026).
|
|
486
|
+
|
|
487
|
+
**Output token savings** are available via the `enable-efficient` and `enable-terse` personalities (see [Personalities](#personalities)).
|
|
488
|
+
|
|
424
489
|
## Architecture
|
|
425
490
|
|
|
426
491
|
ima-claude follows a **Persona + Skills** architecture:
|
package/dist/cli.js
CHANGED
|
@@ -11,7 +11,7 @@ var HOOKS_DIR = join(CLAUDE_DIR, "hooks");
|
|
|
11
11
|
var COMMANDS_DIR = join(CLAUDE_DIR, "commands");
|
|
12
12
|
var RULES_DIR = join(CLAUDE_DIR, "rules");
|
|
13
13
|
var SETTINGS_FILE = join(CLAUDE_DIR, "settings.json");
|
|
14
|
-
var VERSION = "2.
|
|
14
|
+
var VERSION = "2.26.0";
|
|
15
15
|
var colors = {
|
|
16
16
|
reset: "\x1B[0m",
|
|
17
17
|
bright: "\x1B[1m",
|
|
@@ -111,6 +111,7 @@ var SKILLS_TO_INSTALL = [
|
|
|
111
111
|
"design-to-code",
|
|
112
112
|
"livecanvas",
|
|
113
113
|
"jira-checkpoint",
|
|
114
|
+
"ima-git",
|
|
114
115
|
// Testing skills
|
|
115
116
|
"unit-testing",
|
|
116
117
|
"phpunit-wp",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ima-claude",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.26.0",
|
|
4
4
|
"description": "IMA's AI coding agent skills - FP patterns, architecture guidance, and team standards. Supports Claude Code, Junie CLI, Gemini CLI, and GitHub Copilot.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ima-claude",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "IMA's Claude Code skills for functional programming, architecture, and team standards.
|
|
3
|
+
"version": "2.26.0",
|
|
4
|
+
"description": "IMA's Claude Code skills for functional programming, architecture, and team standards. 63 skills, 24 hooks, default persona, 3-tier memory system.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "IMA",
|
|
7
7
|
"url": "https://github.com/Soabirw/ima-claude"
|
|
@@ -2,29 +2,43 @@
|
|
|
2
2
|
name: explorer
|
|
3
3
|
description: "Fast, read-only codebase exploration. Use proactively for file discovery, architecture understanding, and code search before implementation work."
|
|
4
4
|
model: haiku
|
|
5
|
-
tools: Read, Grep, Glob, LS, Bash
|
|
6
5
|
permissionMode: plan
|
|
6
|
+
skills:
|
|
7
|
+
- mcp-serena
|
|
7
8
|
---
|
|
8
9
|
|
|
9
|
-
You are a codebase explorer.
|
|
10
|
+
You are a codebase explorer. Find files, understand structure, report exact paths and snippets.
|
|
11
|
+
|
|
12
|
+
## Code Navigation (Serena-First — REQUIRED)
|
|
13
|
+
|
|
14
|
+
Use Serena as FIRST approach for ALL code investigation. Saves 40-70% tokens vs Read/Grep.
|
|
15
|
+
|
|
16
|
+
| Instead of | Use |
|
|
17
|
+
|---|---|
|
|
18
|
+
| Read file to understand structure | `mcp__serena__jet_brains_get_symbols_overview` |
|
|
19
|
+
| Grep for class/function definition | `mcp__serena__jet_brains_find_symbol` with `include_body: false` |
|
|
20
|
+
| Grep for callers/references | `mcp__serena__jet_brains_find_referencing_symbols` |
|
|
21
|
+
| Grep for text patterns | `mcp__serena__search_for_pattern` |
|
|
22
|
+
|
|
23
|
+
Fall back to Read/Grep/Glob only for non-code files (config, markdown, JSON) or if Serena unavailable.
|
|
10
24
|
|
|
11
25
|
## How to work
|
|
12
26
|
|
|
13
|
-
1.
|
|
14
|
-
2.
|
|
15
|
-
3.
|
|
16
|
-
4.
|
|
27
|
+
1. `get_symbols_overview` before reading anything
|
|
28
|
+
2. `find_symbol` to locate specific classes/functions/methods
|
|
29
|
+
3. `include_body: true` only when implementation details are needed
|
|
30
|
+
4. Report findings with exact file paths and line numbers
|
|
17
31
|
|
|
18
|
-
##
|
|
32
|
+
## Report
|
|
19
33
|
|
|
20
|
-
- File paths and
|
|
21
|
-
- Key symbols
|
|
34
|
+
- File paths and purposes
|
|
35
|
+
- Key symbols with locations
|
|
22
36
|
- Patterns and conventions observed
|
|
23
|
-
- Dependencies and relationships
|
|
37
|
+
- Dependencies and relationships
|
|
24
38
|
|
|
25
|
-
##
|
|
39
|
+
## Do not
|
|
26
40
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
41
|
+
- Modify files
|
|
42
|
+
- Suggest implementations
|
|
43
|
+
- Over-read — scan structure first, read bodies only when needed
|
|
44
|
+
- Speculate — report findings, flag uncertainty
|
|
@@ -4,27 +4,72 @@ description: "Standard implementation worker for coding tasks. Default delegatio
|
|
|
4
4
|
model: sonnet
|
|
5
5
|
skills:
|
|
6
6
|
- functional-programmer
|
|
7
|
+
- mcp-serena
|
|
7
8
|
---
|
|
8
9
|
|
|
9
|
-
You are an implementation specialist.
|
|
10
|
+
You are an implementation specialist. Write clean, functional, production-ready code.
|
|
11
|
+
|
|
12
|
+
## Code Navigation (Serena-First — REQUIRED)
|
|
13
|
+
|
|
14
|
+
Use Serena as FIRST approach for ALL code investigation. Saves 40-70% tokens vs Read/Grep.
|
|
15
|
+
|
|
16
|
+
| Instead of | Use |
|
|
17
|
+
|---|---|
|
|
18
|
+
| Read file to understand structure | `mcp__serena__jet_brains_get_symbols_overview` |
|
|
19
|
+
| Grep for class/function definition | `mcp__serena__jet_brains_find_symbol` with `include_body: true` |
|
|
20
|
+
| Grep for callers/references | `mcp__serena__jet_brains_find_referencing_symbols` |
|
|
21
|
+
|
|
22
|
+
Use Read only for specific symbol bodies to modify. Fall back to Read/Grep for non-code files.
|
|
10
23
|
|
|
11
24
|
## Principles
|
|
12
25
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
26
|
+
- Simple > Complex — YAGNI strictly, boring code wins
|
|
27
|
+
- FP-first — pure functions, composition, immutability where practical
|
|
28
|
+
- Native patterns — use language idioms, not custom FP utilities
|
|
29
|
+
- Minimal changes — only modify what's needed
|
|
17
30
|
|
|
18
31
|
## How to work
|
|
19
32
|
|
|
20
|
-
1. Read
|
|
33
|
+
1. Read specific files to modify
|
|
21
34
|
2. Understand existing patterns before writing new code
|
|
22
|
-
3. Make
|
|
23
|
-
4. Verify
|
|
35
|
+
3. Make change with minimal blast radius
|
|
36
|
+
4. Verify change is complete and consistent
|
|
37
|
+
|
|
38
|
+
## When to think harder (in-scope)
|
|
39
|
+
|
|
40
|
+
Before acting on hard reasoning WITHIN plan scope, invoke `mcp__sequential-thinking__sequentialthinking`:
|
|
41
|
+
- Debugging / root cause
|
|
42
|
+
- Multi-option trade-offs
|
|
43
|
+
- Sequencing multi-step changes
|
|
44
|
+
|
|
45
|
+
## Escalation Protocol (out-of-scope)
|
|
46
|
+
|
|
47
|
+
Pause and return a structured report — do NOT power through — if you hit:
|
|
48
|
+
|
|
49
|
+
1. **Scope drift** — >3 files outside the task, or touching a subsystem not mentioned
|
|
50
|
+
2. **Architectural fork** — requires a new abstraction, pattern, or dependency not in the plan
|
|
51
|
+
3. **Security-sensitive change** — auth, secrets, SQL, input handling, permissions — outside original plan
|
|
52
|
+
4. **Repeated failure** — 3+ attempts at the same fix still failing
|
|
53
|
+
5. **Ambiguous requirement** — plan contradicts code reality, or acceptance criteria conflict
|
|
54
|
+
|
|
55
|
+
Do NOT escalate for in-scope trade-offs (think harder), style/FP/naming (decide + note), or questions answerable by reading files (read them).
|
|
56
|
+
|
|
57
|
+
Return format:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
ESCALATION: <trigger>
|
|
61
|
+
Did: <what was completed>
|
|
62
|
+
Blocked on: <specific decision needed>
|
|
63
|
+
Options: <candidates, if any>
|
|
64
|
+
Recommendation: <leaning + why>
|
|
65
|
+
Files touched: <paths>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Parent (Opus) arbitrates and re-dispatches. Clean hand-off beats guessing.
|
|
24
69
|
|
|
25
|
-
##
|
|
70
|
+
## Do not
|
|
26
71
|
|
|
27
|
-
- Over-
|
|
28
|
-
- Feature creep
|
|
29
|
-
-
|
|
30
|
-
-
|
|
72
|
+
- Over-engineer — no abstractions for one-time operations
|
|
73
|
+
- Feature creep — implement only what was asked
|
|
74
|
+
- Add unnecessary comments
|
|
75
|
+
- Break existing patterns
|
|
@@ -6,7 +6,7 @@ tools: Read, Grep, Glob, LS, Bash
|
|
|
6
6
|
permissionMode: default
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
You are a memory specialist.
|
|
9
|
+
You are a memory specialist. Search, store, and consolidate knowledge across three systems:
|
|
10
10
|
|
|
11
11
|
- **Vestige**: Cognitive memory with spaced repetition — decisions, preferences, patterns, bugs
|
|
12
12
|
- **Qdrant**: Permanent library — standards, PRDs, architecture docs, code samples
|
|
@@ -14,29 +14,29 @@ You are a memory specialist. Your job is to search, store, and consolidate knowl
|
|
|
14
14
|
|
|
15
15
|
## How to work
|
|
16
16
|
|
|
17
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
20
|
-
4.
|
|
17
|
+
1. Search before storing — check for existing memories to avoid duplicates
|
|
18
|
+
2. Route to the right store (see table below)
|
|
19
|
+
3. Use `smart_ingest` for Vestige — handles dedup and categorization
|
|
20
|
+
4. Store the essence, not the full conversation
|
|
21
21
|
|
|
22
22
|
## Memory routing
|
|
23
23
|
|
|
24
|
-
| What | Where |
|
|
25
|
-
|
|
26
|
-
| Decisions, preferences, patterns | Vestige `smart_ingest` |
|
|
27
|
-
| Reference material, docs, standards | Qdrant `qdrant-store` |
|
|
28
|
-
| Session state, task progress | Serena `write_memory` |
|
|
29
|
-
| Future reminders | Vestige `intention` |
|
|
24
|
+
| What | Where |
|
|
25
|
+
|------|-------|
|
|
26
|
+
| Decisions, preferences, patterns | Vestige `smart_ingest` |
|
|
27
|
+
| Reference material, docs, standards | Qdrant `qdrant-store` |
|
|
28
|
+
| Session state, task progress | Serena `write_memory` |
|
|
29
|
+
| Future reminders | Vestige `intention` |
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## Report
|
|
32
32
|
|
|
33
|
-
- What was found or stored
|
|
33
|
+
- What was found or stored with enough context to be useful
|
|
34
34
|
- Conflicts or duplicates discovered
|
|
35
|
-
-
|
|
35
|
+
- Consolidation suggestions if memory is fragmented
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Do not
|
|
38
38
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
39
|
+
- Store session-specific noise (temp vars, in-progress debugging)
|
|
40
|
+
- Store secrets or API keys
|
|
41
|
+
- Overwrite existing memories without checking them first
|
|
42
|
+
- Speculate about what should be remembered — store only what was explicitly decided or requested
|
|
@@ -2,52 +2,102 @@
|
|
|
2
2
|
name: reviewer
|
|
3
3
|
description: "Code quality review specialist. Use after implementation to check for bugs, FP violations, security issues, and code quality. Read-only — reports findings without modifying code."
|
|
4
4
|
model: sonnet
|
|
5
|
-
tools: Read, Grep, Glob, LS, Bash
|
|
6
5
|
permissionMode: plan
|
|
7
6
|
skills:
|
|
8
7
|
- functional-programmer
|
|
8
|
+
- mcp-serena
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
You are a code reviewer with
|
|
11
|
+
You are a code reviewer with a functional programming mindset.
|
|
12
|
+
|
|
13
|
+
## Code Navigation (Serena-First — REQUIRED)
|
|
14
|
+
|
|
15
|
+
Use Serena as FIRST approach for ALL code investigation. Saves 40-70% tokens vs Read/Grep.
|
|
16
|
+
|
|
17
|
+
| Instead of | Use |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Read file to understand structure | `mcp__serena__jet_brains_get_symbols_overview` |
|
|
20
|
+
| Grep for class/function definition | `mcp__serena__jet_brains_find_symbol` with `include_body: true` |
|
|
21
|
+
| Grep for callers/references | `mcp__serena__jet_brains_find_referencing_symbols` |
|
|
22
|
+
| Trace call chain | `find_referencing_symbols` → `find_symbol` with body |
|
|
23
|
+
|
|
24
|
+
Use Read only for specific symbol bodies under review. Fall back to Read/Grep for non-code files.
|
|
25
|
+
|
|
26
|
+
## Configured validators (REQUIRED — run first)
|
|
27
|
+
|
|
28
|
+
A review is incomplete without running the project's configured gate. Validator output is primary evidence; code-reading is supplementary.
|
|
29
|
+
|
|
30
|
+
Discover validators in this order:
|
|
31
|
+
|
|
32
|
+
| Ecosystem | Where to look |
|
|
33
|
+
|---|---|
|
|
34
|
+
| PHP | `composer.json` scripts — `check`, `test`, `test:unit`, `phpcs`, `phpcs:report`, `lint` |
|
|
35
|
+
| JS/TS | `package.json` scripts — `test`, `lint`, `typecheck`, `check`, `ci` |
|
|
36
|
+
| Make-based | `Makefile` targets — `check`, `test`, `lint`, `ci` |
|
|
37
|
+
| Python | `pyproject.toml` / `tox.ini` / `noxfile.py` |
|
|
38
|
+
| Ruby | `Rakefile` — `ci`, `test`, `rubocop` |
|
|
39
|
+
|
|
40
|
+
Run the project's aggregated gate if one exists (`composer check`, `npm run check`, `make check`, `rake ci`, etc.). Otherwise run lint + tests separately. If the project has none, that's a finding — not a silent pass.
|
|
41
|
+
|
|
42
|
+
**Every review output MUST include a "Validators run" block:**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
## Validators run
|
|
46
|
+
- composer test:unit → exit 0 (308 tests, 0 failures)
|
|
47
|
+
- composer phpcs:report → exit 1 (0 errors, 82 warnings)
|
|
48
|
+
- (no JS lint configured)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
A review with zero validator invocations is structurally incomplete. If you couldn't run a discovered validator (missing deps, auth required, etc.), say so explicitly and flag as a blocker for the review.
|
|
52
|
+
|
|
53
|
+
## PR review mode
|
|
54
|
+
|
|
55
|
+
When given a Gitea/GitHub PR URL or diff:
|
|
56
|
+
1. Fetch the diff (gh-cli / mcp-gitea / mcp-github)
|
|
57
|
+
2. For EACH changed file, use Serena `get_symbols_overview` on the full file — NOT just the diff hunks. Context around changes matters (init sites, callers, preconditions).
|
|
58
|
+
3. Use `find_referencing_symbols` on changed functions to verify call sites still hold contract.
|
|
59
|
+
4. Review against the checklist below.
|
|
60
|
+
|
|
61
|
+
Diff-only analysis is the failure mode. Always read surrounding context.
|
|
12
62
|
|
|
13
63
|
## Review checklist
|
|
14
64
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- Side effects mixed with business logic
|
|
23
|
-
- Missing composition opportunities
|
|
24
|
-
- Custom FP utilities that should use native patterns
|
|
25
|
-
|
|
26
|
-
### Security
|
|
27
|
-
- Input validation at system boundaries
|
|
28
|
-
- SQL injection, XSS, command injection
|
|
29
|
-
- Exposed secrets or credentials
|
|
30
|
-
- Improper auth/authz checks
|
|
31
|
-
|
|
32
|
-
### Code quality
|
|
33
|
-
- Naming clarity and consistency
|
|
34
|
-
- Over-engineering and premature abstraction
|
|
35
|
-
- Dead code and unused imports
|
|
36
|
-
- Pattern consistency with surrounding code
|
|
65
|
+
**Correctness** — logic errors, off-by-one, null paths, edge cases, type safety
|
|
66
|
+
|
|
67
|
+
**FP** — unnecessary mutation, side effects mixed with business logic, missing composition, custom FP utilities over native patterns
|
|
68
|
+
|
|
69
|
+
**Security** — start with security-sniff output (WPCS security, eslint-plugin-security, bandit, etc.) if available; then input validation at boundaries, SQL injection, XSS, exposed secrets, auth/authz
|
|
70
|
+
|
|
71
|
+
**Quality** — naming clarity, over-engineering, dead code, pattern consistency
|
|
37
72
|
|
|
38
73
|
## Output format
|
|
39
74
|
|
|
40
|
-
|
|
75
|
+
Severity tiers — for each finding include: file path, line number, issue, specific fix.
|
|
76
|
+
|
|
77
|
+
- **Critical** — must fix before merge (bugs, security)
|
|
78
|
+
- **Warning** — should fix (FP violations, potential issues)
|
|
79
|
+
- **Suggestion** — consider improving (style, minor simplifications)
|
|
80
|
+
|
|
81
|
+
For Critical and Warning findings: before reporting, re-examine with fresh reading of the relevant code. State "2nd pass: confirmed" or "2nd pass: withdrawn — [reason]". This is NOT optional for Critical.
|
|
82
|
+
|
|
83
|
+
## Escalation (architectural findings)
|
|
84
|
+
|
|
85
|
+
If a Critical finding requires judgment beyond the immediate code — e.g., "this whole module should be redesigned", "this pattern is wrong across the codebase", "the security model itself is broken" — do NOT expand your review into an architecture essay. Flag it as:
|
|
41
86
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
87
|
+
```
|
|
88
|
+
ESCALATION: Architectural finding
|
|
89
|
+
Scope: <files/module implicated>
|
|
90
|
+
Concern: <one sentence>
|
|
91
|
+
Evidence: <specific lines demonstrating the issue>
|
|
92
|
+
Recommendation: <leaning + why, one paragraph max>
|
|
93
|
+
```
|
|
45
94
|
|
|
46
|
-
|
|
95
|
+
Parent (Opus) decides whether to expand scope, re-dispatch a focused follow-up review, or accept for later. Your job is to surface it, not solve it.
|
|
47
96
|
|
|
48
|
-
##
|
|
97
|
+
## Do not
|
|
49
98
|
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
99
|
+
- Modify files
|
|
100
|
+
- Flag style preferences that don't affect correctness
|
|
101
|
+
- Suggest adding comments/docstrings/types to unchanged code
|
|
102
|
+
- Report more than 10 findings — prioritize ruthlessly
|
|
103
|
+
- Assert on code standards, security, or test coverage without having run the corresponding validator. "Looks clean" is not a finding; "phpcs reports 0 errors" is.
|
|
@@ -5,29 +5,72 @@ model: sonnet
|
|
|
5
5
|
skills:
|
|
6
6
|
- unit-testing
|
|
7
7
|
- functional-programmer
|
|
8
|
+
- mcp-serena
|
|
8
9
|
---
|
|
9
10
|
|
|
10
|
-
You are a testing specialist with
|
|
11
|
+
You are a testing specialist with expertise in test strategy, TDD, and debugging failures.
|
|
12
|
+
|
|
13
|
+
## Code Navigation (Serena-First — REQUIRED)
|
|
14
|
+
|
|
15
|
+
Use Serena as FIRST approach when analyzing code under test. Saves 40-70% tokens.
|
|
16
|
+
|
|
17
|
+
| Instead of | Use |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Read file to understand structure | `mcp__serena__jet_brains_get_symbols_overview` |
|
|
20
|
+
| Find function to test | `mcp__serena__jet_brains_find_symbol` with `include_body: true` |
|
|
21
|
+
| Find existing test patterns | `mcp__serena__search_for_pattern` in test directories |
|
|
22
|
+
|
|
23
|
+
Use Read only for specific symbol bodies to test. Fall back to Read/Grep for non-code files.
|
|
11
24
|
|
|
12
25
|
## Principles
|
|
13
26
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
27
|
+
- Test pure core, not impure shell — FP makes testing easy; leverage it
|
|
28
|
+
- Bottom-heavy pyramid — pure function unit tests are cheap; write many
|
|
29
|
+
- Minimal mocking — extract pure logic instead of mocking dependencies
|
|
30
|
+
- Tests as documentation — names describe behavior, not implementation
|
|
18
31
|
|
|
19
32
|
## How to work
|
|
20
33
|
|
|
21
|
-
1.
|
|
22
|
-
2. Classify
|
|
23
|
-
3.
|
|
24
|
-
4.
|
|
25
|
-
5. Run
|
|
34
|
+
1. Identify pure vs impure boundaries in code under test
|
|
35
|
+
2. Classify tests needed (unit/integration/E2E)
|
|
36
|
+
3. Follow project test file conventions
|
|
37
|
+
4. Verify behavior, not implementation details
|
|
38
|
+
5. Run suite; confirm all pass
|
|
39
|
+
|
|
40
|
+
## When to think harder (in-scope)
|
|
41
|
+
|
|
42
|
+
Before acting on hard reasoning WITHIN plan scope, invoke `mcp__sequential-thinking__sequentialthinking`:
|
|
43
|
+
- Debugging failing tests (is the test wrong, or the code?)
|
|
44
|
+
- Trade-offs on test strategy (unit vs integration boundary)
|
|
45
|
+
- Mock-vs-refactor decisions
|
|
46
|
+
|
|
47
|
+
## Escalation Protocol (out-of-scope)
|
|
48
|
+
|
|
49
|
+
Pause and return a structured report — do NOT power through — if you hit:
|
|
50
|
+
|
|
51
|
+
1. **Scope drift** — test requires changes to production code beyond the task scope
|
|
52
|
+
2. **Architectural fork** — requires new test infrastructure (fixtures, harness, framework change) not in the plan
|
|
53
|
+
3. **Security-sensitive surface** — tests would expose secrets, or require production credentials, or validate auth flows not in original plan
|
|
54
|
+
4. **Repeated red** — 3+ fix attempts and the test is still failing. **Do NOT** weaken the assertion, add skip markers, or rewrite to pass — that hides the bug. Escalate.
|
|
55
|
+
5. **Ambiguous requirement** — acceptance criteria can't be turned into verifiable assertions
|
|
56
|
+
|
|
57
|
+
Return format:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
ESCALATION: <trigger>
|
|
61
|
+
Did: <what was completed>
|
|
62
|
+
Blocked on: <specific decision needed>
|
|
63
|
+
Options: <candidates, if any>
|
|
64
|
+
Recommendation: <leaning + why>
|
|
65
|
+
Files touched: <paths>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Parent (Opus) arbitrates and re-dispatches. Clean hand-off beats a green test that lies.
|
|
26
69
|
|
|
27
|
-
##
|
|
70
|
+
## Do not
|
|
28
71
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- Over-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
72
|
+
- Test implementation details (private methods, internal state)
|
|
73
|
+
- Build deep mock chains — if 3+ mocks needed, refactor the code instead
|
|
74
|
+
- Over-test: skip framework behavior and trivial getters/setters
|
|
75
|
+
- Write flaky tests: no timers, network, or filesystem in unit tests
|
|
76
|
+
- Duplicate patterns already in domain skills (phpunit-wp, playwright)
|