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.
Files changed (80) hide show
  1. package/README.md +74 -9
  2. package/dist/cli.js +2 -1
  3. package/package.json +1 -1
  4. package/plugins/ima-claude/.claude-plugin/plugin.json +2 -2
  5. package/plugins/ima-claude/agents/explorer.md +29 -15
  6. package/plugins/ima-claude/agents/implementer.md +58 -13
  7. package/plugins/ima-claude/agents/memory.md +19 -19
  8. package/plugins/ima-claude/agents/reviewer.md +84 -34
  9. package/plugins/ima-claude/agents/tester.md +59 -16
  10. package/plugins/ima-claude/agents/wp-developer.md +66 -21
  11. package/plugins/ima-claude/hooks/bootstrap.sh +42 -44
  12. package/plugins/ima-claude/hooks/prompt_coach_digest.md +14 -17
  13. package/plugins/ima-claude/hooks/prompt_coach_system.md +10 -12
  14. package/plugins/ima-claude/personalities/README.md +17 -6
  15. package/plugins/ima-claude/personalities/enable-efficient.md +61 -0
  16. package/plugins/ima-claude/personalities/enable-terse.md +71 -0
  17. package/plugins/ima-claude/skills/agentic-workflows/SKILL.md +35 -71
  18. package/plugins/ima-claude/skills/architect/SKILL.md +54 -168
  19. package/plugins/ima-claude/skills/compound-bridge/SKILL.md +41 -94
  20. package/plugins/ima-claude/skills/design-to-code/SKILL.md +43 -78
  21. package/plugins/ima-claude/skills/discourse/SKILL.md +79 -194
  22. package/plugins/ima-claude/skills/discourse-admin/SKILL.md +41 -103
  23. package/plugins/ima-claude/skills/docs-organize/SKILL.md +63 -203
  24. package/plugins/ima-claude/skills/ember-discourse/SKILL.md +90 -200
  25. package/plugins/ima-claude/skills/espocrm/SKILL.md +14 -23
  26. package/plugins/ima-claude/skills/espocrm-api/SKILL.md +79 -192
  27. package/plugins/ima-claude/skills/functional-programmer/SKILL.md +33 -237
  28. package/plugins/ima-claude/skills/gh-cli/SKILL.md +26 -65
  29. package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +71 -104
  30. package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +32 -22
  31. package/plugins/ima-claude/skills/ima-brand/SKILL.md +18 -23
  32. package/plugins/ima-claude/skills/ima-copywriting/SKILL.md +68 -179
  33. package/plugins/ima-claude/skills/ima-doc2pdf/SKILL.md +32 -102
  34. package/plugins/ima-claude/skills/ima-editorial-scorecard/SKILL.md +38 -63
  35. package/plugins/ima-claude/skills/ima-editorial-workflow/SKILL.md +69 -114
  36. package/plugins/ima-claude/skills/ima-email-creator/SKILL.md +16 -22
  37. package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +21 -37
  38. package/plugins/ima-claude/skills/ima-git/SKILL.md +81 -0
  39. package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +39 -120
  40. package/plugins/ima-claude/skills/jquery/SKILL.md +107 -233
  41. package/plugins/ima-claude/skills/js-fp/SKILL.md +75 -296
  42. package/plugins/ima-claude/skills/js-fp-api/SKILL.md +52 -162
  43. package/plugins/ima-claude/skills/js-fp-react/SKILL.md +47 -270
  44. package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +55 -209
  45. package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +59 -204
  46. package/plugins/ima-claude/skills/livecanvas/SKILL.md +19 -32
  47. package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +92 -162
  48. package/plugins/ima-claude/skills/mcp-context7/SKILL.md +32 -64
  49. package/plugins/ima-claude/skills/mcp-gitea/SKILL.md +98 -188
  50. package/plugins/ima-claude/skills/mcp-github/SKILL.md +60 -124
  51. package/plugins/ima-claude/skills/mcp-memory/SKILL.md +1 -177
  52. package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +58 -115
  53. package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +32 -87
  54. package/plugins/ima-claude/skills/mcp-serena/SKILL.md +54 -80
  55. package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +40 -63
  56. package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +75 -116
  57. package/plugins/ima-claude/skills/php-authnet/SKILL.md +32 -65
  58. package/plugins/ima-claude/skills/php-fp/SKILL.md +50 -129
  59. package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +25 -73
  60. package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +103 -463
  61. package/plugins/ima-claude/skills/playwright/SKILL.md +69 -220
  62. package/plugins/ima-claude/skills/prompt-starter/SKILL.md +33 -83
  63. package/plugins/ima-claude/skills/prompt-starter/references/code-review.md +38 -0
  64. package/plugins/ima-claude/skills/py-fp/SKILL.md +78 -384
  65. package/plugins/ima-claude/skills/quasar-fp/SKILL.md +54 -255
  66. package/plugins/ima-claude/skills/quickstart/SKILL.md +7 -11
  67. package/plugins/ima-claude/skills/rails/SKILL.md +63 -184
  68. package/plugins/ima-claude/skills/resume-session/SKILL.md +14 -35
  69. package/plugins/ima-claude/skills/rg/SKILL.md +61 -146
  70. package/plugins/ima-claude/skills/ruby-fp/SKILL.md +66 -163
  71. package/plugins/ima-claude/skills/save-session/SKILL.md +10 -39
  72. package/plugins/ima-claude/skills/scorecard/SKILL.md +42 -40
  73. package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +42 -71
  74. package/plugins/ima-claude/skills/skill-creator/SKILL.md +79 -250
  75. package/plugins/ima-claude/skills/task-master/SKILL.md +11 -31
  76. package/plugins/ima-claude/skills/task-planner/SKILL.md +44 -153
  77. package/plugins/ima-claude/skills/task-runner/SKILL.md +61 -143
  78. package/plugins/ima-claude/skills/unit-testing/SKILL.md +59 -134
  79. package/plugins/ima-claude/skills/wp-ddev/SKILL.md +38 -120
  80. package/plugins/ima-claude/skills/wp-local/SKILL.md +26 -108
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: "ima-git"
3
+ description: "IMA git workflow. Trunk-based development with release branches: main = dev trunk, release/* = release candidate branches, v* tags = production releases. Covers branch promotion, hotfix flow, push cadence for deploy-gate verification, commit atomicity. Use when: creating branches, opening PRs, cutting releases or tags, writing hotfixes, or asked about git workflow, branching strategy, trunk-based development, release process, or when a deploy gate fails because commits weren't pushed."
4
+ ---
5
+
6
+ # IMA Git Workflow
7
+
8
+ **Strategy:** Trunk-based development with release branches.
9
+
10
+ ## Branch model
11
+
12
+ | Branch / tag | Role | Source | Deploys to |
13
+ |---|---|---|---|
14
+ | `main` | Dev trunk — latest integrated work | All new work lands here first | Dev environment |
15
+ | `release/<name>` | Release candidate | Fast-forwarded from `main` when ready | Staging environment |
16
+ | `v<version>` (tags) | Production release | Tag cut from a release branch at promotion | Production environment |
17
+ | `hotfix/<name>` | Emergency production fix | Branched off the production tag | Merged back to `main` + new tag cut |
18
+
19
+ ## Core rules
20
+
21
+ 1. **Commits originate on `main`.** Not on release branches. Feature work, bug fixes, refactors — all start on the trunk.
22
+ 2. **Release branches only fast-forward from `main`.** Never merge sideways; never commit directly to a release branch.
23
+ 3. **Hotfixes branch off the production tag**, not main. After the fix lands, cut a new tag and merge the hotfix back into `main`.
24
+ 4. **Tags are immutable.** Rolling back to a prior production state means deploying the prior tag — not force-pushing or retagging.
25
+
26
+ ## Deploy-gate verification cadence
27
+
28
+ Deploy tools (e.g., `trn-deploy` at `/home/eric/IMA/dev/sites/trn/deploy/`) **clone fresh from the remote** — they do not read the local filesystem. Unpushed commits are invisible to the gate.
29
+
30
+ **To verify a change:** push to `main` first, then invoke the dry-run.
31
+
32
+ Between commits in a multi-commit sequence:
33
+
34
+ 1. Commit locally
35
+ 2. `git push origin main`
36
+ 3. Run `./deploy dev --dry-run`
37
+ 4. Confirm exit 0 in `log.jsonl` before the next commit
38
+
39
+ ## Commit atomicity
40
+
41
+ - **Security fixes: separate commits** from test-only changes and mechanical sweeps. A security change should land in a reviewable, revertable commit of its own.
42
+ - One commit per logical change class. Don't batch "fix XSS + rename variable + reformat whitespace" into one diff.
43
+ - Pure tests-only changes never mix with production code changes in the same commit.
44
+
45
+ ## Commit messages
46
+
47
+ - Use a HEREDOC to pass multi-line messages: `git commit -m "$(cat <<'EOF' ... EOF)"`.
48
+ - Single-quoted `EOF` marker (`<<'EOF'`) prevents shell expansion — required to keep `$_POST`, `$_GET`, `$variable` etc. unescaped.
49
+ - A message with literal `\$_POST` in the body is a shell-escape artifact — amend before pushing, or treat it as a signal the HEREDOC was wrong.
50
+
51
+ ## Deploy tool exit codes
52
+
53
+ Shared convention across IMA deploy tools:
54
+
55
+ | Code | Meaning |
56
+ |---|---|
57
+ | 0 | Success |
58
+ | 1 | Generic failure |
59
+ | 2 | Validation / config error |
60
+ | 3 | Pre-flight failure (tests, lint, clean-state check) |
61
+ | 4 | Remote push failure (WPEngine or similar) |
62
+
63
+ The authoritative record is the tool's `log.jsonl`: `tail -1 log.jsonl` shows the last run's sha, exitCode, duration. The shell's `$?` may be masked by a pipe (`| tail`), so trust the log over stdout exit.
64
+
65
+ ## Gitea / GitHub
66
+
67
+ - IMA internal repos live on Gitea: `ssh://git@gitea.theflccc.org:2222/IMA/<repo>.git`
68
+ - Some are mirrored to GitHub for FOSS / public presence.
69
+ - Use `mcp-gitea` for internal repo operations, `mcp-github` or `gh-cli` for public.
70
+
71
+ ## When the deploy gate fails
72
+
73
+ 1. Check `log.jsonl` for the exit code. Don't guess from terminal output.
74
+ 2. Exit 3 = pre-flight. Look at the pipeline stage that failed — tests, lint, clean-state, composer check.
75
+ 3. Reproduce locally with the project's configured validators (`composer check`, `npm run check`, `make check`, etc.) before touching code.
76
+ 4. If a pre-flight failure is tests, invoke the source-quality triage pattern: categorize each failure as test rot, code bug, or design question **before** changing anything.
77
+
78
+ ## Reference
79
+
80
+ - Qdrant `ima-knowledge` → article "IMA Git Workflow & Pre-flight Deploy Gate" for full detail on the gate architecture and the source-quality triage playbook.
81
+ - Project-specific deploy specifics live in the project's Serena memory (typically named `project-workflow` or similar).
@@ -12,167 +12,86 @@ description: >-
12
12
 
13
13
  # Jira Checkpoint - Team Visibility Layer
14
14
 
15
- **"Work gets done. Does the team know?"**
16
-
17
- Claude Code makes us 3-5x faster. Jira becomes the bottleneck — not the work, but remembering to update it. This skill adds lightweight checkpoints so team visibility stays current without breaking flow.
18
-
19
- ## Responsibility Separation
20
-
21
15
  ```
22
16
  task-master = "How do I organize my work?" (execution, tactical)
23
17
  jira-checkpoint = "Does the team know?" (visibility, strategic)
24
18
  mcp-atlassian = "How do I talk to Jira's API?" (implementation, reference)
25
19
  ```
26
20
 
27
- **No overlap.** task-master owns TaskList, decomposition, and delegation. jira-checkpoint owns the question "should we sync with Jira?" mcp-atlassian owns the API mechanics. Each skill stays in its lane.
21
+ Each skill stays in its lane. jira-checkpoint never touches TaskList, decomposition, or delegation.
28
22
 
29
23
  ## The Three Checkpoints
30
24
 
31
- ### 1. Before Work (Planning)
32
-
33
- **When:** User starts significant work — "let's implement", "build the", "fix the", "work on FNR-".
25
+ ### 1. Before Work
34
26
 
35
- **Action:** Ask one question:
27
+ **Trigger**: User starts significant work — "let's implement", "build the", "fix the", "work on FNR-".
36
28
 
37
- > "Should I search Jira (FNR project) for related stories before we start?"
38
-
39
- **Decision tree:**
29
+ Ask: `"Should I search Jira (FNR project) for related stories before we start?"`
40
30
 
41
31
  ```
42
- Is this significant work (feature, fix, refactor)?
32
+ Significant work (feature, bug fix, multi-file refactor)?
43
33
  ├── YES → Ask about Jira search
44
- User says yes → searchJiraIssuesUsingJql with FNR project
45
- User says skip → Proceed, no Jira
46
- └── NO (trivial utility, config tweak, typo fix) → Stay silent
34
+ │ yes → searchJiraIssuesUsingJql (FNR project)
35
+ │ skip → proceed
36
+ └── NO (utility function, config tweak, lint fix) → stay silent
47
37
  ```
48
38
 
49
- **What counts as "significant":**
50
- - New feature or component
51
- - Bug fix with user impact
52
- - Refactor touching multiple files
53
- - Anything that would reasonably be a Jira story
54
-
55
- **What stays silent:**
56
- - Adding a utility function
57
- - Config file tweaks
58
- - Formatting/linting fixes
59
- - Internal refactors with no external impact
60
-
61
- ### 2. During Work (Context)
62
-
63
- **When:** User references a Jira issue key (e.g., `FNR-123`).
39
+ ### 2. During Work
64
40
 
65
- **Action:** Auto-fetch the issue details and surface relevant context:
41
+ **Trigger**: User mentions an issue key (e.g., `FNR-123`).
66
42
 
43
+ Auto-fetch and surface:
67
44
  ```
68
45
  Detected FNR-123. Fetching story context...
69
-
70
- "As a user, I want to reset my password via email"
71
- Acceptance criteria: [list]
72
- → Status: In Progress | Assignee: Eric
46
+ → Summary
47
+ Acceptance criteria
48
+ Status | Assignee
73
49
  ```
74
50
 
75
- **Implementation:** Use `getJiraIssue` with fields: `summary,description,status,assignee,customfield_10016` (acceptance criteria). See mcp-atlassian skill for field filtering patterns.
76
-
77
- **Decision tree:**
78
-
79
- ```
80
- Did user mention an issue key (FNR-NNN)?
81
- ├── YES → Auto-fetch, surface summary + acceptance criteria
82
- │ Already fetched this session? → Skip (don't re-fetch)
83
- └── NO → Stay silent
84
- ```
85
-
86
- ### 3. After Work (Sync)
87
-
88
- **When:** Work completes and a Jira story was referenced or discovered during the session.
51
+ Use `getJiraIssue` with fields: `summary,description,status,assignee,customfield_10016`. Don't re-fetch if already retrieved this session.
89
52
 
90
- **Action:** Ask one question:
53
+ ### 3. After Work
91
54
 
92
- > "We referenced FNR-123 during this work. Want to update its status or add a progress comment?"
55
+ **Trigger**: Work wraps up AND a Jira story was referenced (user says "done"/"finished"/"ship it", commit created, PR ready).
93
56
 
94
- **Decision tree:**
57
+ Ask: `"We referenced FNR-123 during this work. Want to update its status or add a progress comment?"`
95
58
 
96
59
  ```
97
- Is work wrapping up AND was a Jira story involved?
60
+ Work wrapping up AND Jira story was involved?
98
61
  ├── YES → Ask about status update / comment
99
- User says yes → Use transitionJiraIssue or addCommentToJiraIssue
100
- User says skip → Done, no update
101
- └── NO story involved → Stay silent
62
+ │ yes → transitionJiraIssue or addCommentToJiraIssue
63
+ │ skip → done
64
+ └── NO story involved → stay silent
102
65
  ```
103
66
 
104
- **What "wrapping up" looks like:**
105
- - User says "done", "finished", "that's it", "ship it"
106
- - Commit created for the feature/fix
107
- - PR created or ready
67
+ ## Key Tools
108
68
 
109
- ## Integration Points
69
+ | Tool | Checkpoint |
70
+ |------|-----------|
71
+ | `searchJiraIssuesUsingJql` | Before Work |
72
+ | `getJiraIssue` | During Work |
73
+ | `transitionJiraIssue` | After Work |
74
+ | `addCommentToJiraIssue` | After Work |
75
+ | `getAccessibleAtlassianResources` | Required bootstrap (cloudId) |
110
76
 
111
- ### mcp-atlassian (API Reference)
77
+ See `mcp-atlassian` for field filtering patterns and JQL.
112
78
 
113
- All Jira operations use tools from mcp-atlassian. Do NOT duplicate API docs here — refer to that skill for:
114
- - Tool catalog and parameters
115
- - Token-saving field filtering
116
- - JQL query patterns
117
- - Comment and transition workflows
79
+ ## Project Config
118
80
 
119
- **Key tools used by checkpoints:**
120
- - `searchJiraIssuesUsingJql` — Before Work search
121
- - `getJiraIssue` — During Work context fetch
122
- - `transitionJiraIssue` — After Work status update
123
- - `addCommentToJiraIssue` — After Work progress comment
124
- - `getAccessibleAtlassianResources` — Required bootstrap (cloudId)
125
-
126
- ### task-master (No Overlap)
127
-
128
- task-master manages TaskList items and work decomposition. jira-checkpoint never:
129
- - Creates or modifies TaskList items
130
- - Changes task decomposition strategy
131
- - Interferes with delegation patterns
132
-
133
- They complement: task-master breaks work down, jira-checkpoint ensures Jira reflects it.
134
-
135
- ### Vestige (Learning Preferences)
136
-
137
- Store user checkpoint preferences via Vestige:
81
+ **Default project**: `FNR`
138
82
 
139
83
  ```
140
- User says "skip Jira" repeatedly smart_ingest preference: "User prefers minimal Jira checkpoints"
141
- User always updates after work → smart_ingest preference: "User wants post-work Jira sync prompts"
142
- User never wants before-work → smart_ingest preference: "Skip before-work Jira checkpoint"
84
+ JQL: project = FNR AND summary ~ "keyword" ORDER BY updated DESC
143
85
  ```
144
86
 
145
- Check Vestige at session start for stored Jira checkpoint preferences.
146
-
147
87
  ## User Control
148
88
 
149
- **Every checkpoint is a question, never a mandate.**
150
-
151
- - User can always say "skip Jira", "not now", "no Jira today"
152
- - Preferences accumulate in Vestige — skill adapts over time
153
- - No checkpoint ever blocks work from proceeding
154
- - If user seems annoyed by prompts, reduce frequency and store preference
155
-
156
- ## Project Configuration
157
-
158
- **Default project key:** `FNR`
159
-
160
- When searching Jira without a specific issue key, scope to the FNR project:
89
+ Every checkpoint is a question, never a mandate. Store preferences via Vestige `smart_ingest`:
161
90
 
162
91
  ```
163
- JQL: project = FNR AND summary ~ "keyword" ORDER BY updated DESC
92
+ "skip Jira" repeatedly → "User prefers minimal Jira checkpoints"
93
+ always updates after work → "User wants post-work Jira sync prompts"
94
+ never wants before-work prompt → "Skip before-work Jira checkpoint"
164
95
  ```
165
96
 
166
- ## Experimental Status
167
-
168
- This skill is built for vetting. Expected evolution:
169
-
170
- 1. **v1 (now):** Three manual checkpoints with questions
171
- 2. **v2 (after feedback):** Adjusted trigger sensitivity based on usage patterns
172
- 3. **v3 (if valuable):** Deeper task-master integration (auto-suggest Jira links for TaskList items)
173
-
174
- **Feedback signals to watch:**
175
- - How often does the user accept vs skip checkpoints?
176
- - Are before-work searches actually useful?
177
- - Does after-work sync feel natural or forced?
178
- - Is the FNR project scope too narrow?
97
+ Check Vestige at session start for stored preferences.