@fro.bot/systematic 2.0.1 → 2.0.3

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 (57) hide show
  1. package/agents/design/figma-design-sync.md +1 -1
  2. package/agents/document-review/coherence-reviewer.md +40 -0
  3. package/agents/document-review/design-lens-reviewer.md +46 -0
  4. package/agents/document-review/feasibility-reviewer.md +42 -0
  5. package/agents/document-review/product-lens-reviewer.md +50 -0
  6. package/agents/document-review/scope-guardian-reviewer.md +54 -0
  7. package/agents/document-review/security-lens-reviewer.md +38 -0
  8. package/agents/research/best-practices-researcher.md +2 -1
  9. package/agents/research/git-history-analyzer.md +1 -1
  10. package/agents/research/repo-research-analyst.md +164 -9
  11. package/agents/review/api-contract-reviewer.md +49 -0
  12. package/agents/review/correctness-reviewer.md +49 -0
  13. package/agents/review/data-migrations-reviewer.md +53 -0
  14. package/agents/review/maintainability-reviewer.md +49 -0
  15. package/agents/review/pattern-recognition-specialist.md +2 -1
  16. package/agents/review/performance-reviewer.md +51 -0
  17. package/agents/review/reliability-reviewer.md +49 -0
  18. package/agents/review/schema-drift-detector.md +12 -10
  19. package/agents/review/security-reviewer.md +51 -0
  20. package/agents/review/testing-reviewer.md +48 -0
  21. package/agents/workflow/pr-comment-resolver.md +1 -1
  22. package/agents/workflow/spec-flow-analyzer.md +60 -89
  23. package/dist/index.js +3 -3
  24. package/package.json +1 -1
  25. package/skills/agent-browser/SKILL.md +69 -48
  26. package/skills/ce-brainstorm/SKILL.md +2 -1
  27. package/skills/ce-compound/SKILL.md +26 -1
  28. package/skills/ce-compound-refresh/SKILL.md +11 -1
  29. package/skills/ce-ideate/SKILL.md +2 -1
  30. package/skills/ce-plan/SKILL.md +424 -414
  31. package/skills/ce-review/SKILL.md +12 -13
  32. package/skills/ce-review-beta/SKILL.md +506 -0
  33. package/skills/ce-review-beta/references/diff-scope.md +31 -0
  34. package/skills/ce-review-beta/references/findings-schema.json +128 -0
  35. package/skills/ce-review-beta/references/persona-catalog.md +50 -0
  36. package/skills/ce-review-beta/references/review-output-template.md +115 -0
  37. package/skills/ce-review-beta/references/subagent-template.md +56 -0
  38. package/skills/ce-work/SKILL.md +14 -6
  39. package/skills/ce-work-beta/SKILL.md +14 -8
  40. package/skills/claude-permissions-optimizer/SKILL.md +15 -14
  41. package/skills/deepen-plan/SKILL.md +348 -483
  42. package/skills/document-review/SKILL.md +160 -52
  43. package/skills/feature-video/SKILL.md +209 -178
  44. package/skills/file-todos/SKILL.md +72 -94
  45. package/skills/frontend-design/SKILL.md +243 -27
  46. package/skills/git-worktree/SKILL.md +37 -28
  47. package/skills/lfg/SKILL.md +7 -7
  48. package/skills/reproduce-bug/SKILL.md +154 -60
  49. package/skills/resolve-pr-parallel/SKILL.md +19 -12
  50. package/skills/resolve-todo-parallel/SKILL.md +9 -6
  51. package/skills/setup/SKILL.md +33 -56
  52. package/skills/slfg/SKILL.md +5 -5
  53. package/skills/test-browser/SKILL.md +69 -145
  54. package/skills/test-xcode/SKILL.md +61 -183
  55. package/skills/triage/SKILL.md +10 -10
  56. package/skills/ce-plan-beta/SKILL.md +0 -571
  57. package/skills/deepen-plan-beta/SKILL.md +0 -323
@@ -5,167 +5,81 @@ argument-hint: '[scheme name or ''current'' to use default]'
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
8
- # Xcode Test Command
8
+ # Xcode Test Skill
9
9
 
10
- <command_purpose>Build, install, and test iOS apps on the simulator using XcodeBuildMCP. Captures screenshots, logs, and verifies app behavior.</command_purpose>
11
-
12
- ## Introduction
13
-
14
- <role>iOS QA Engineer specializing in simulator-based testing</role>
15
-
16
- This command tests iOS/macOS apps by:
17
- - Building for simulator
18
- - Installing and launching the app
19
- - Taking screenshots of key screens
20
- - Capturing console logs for errors
21
- - Supporting human verification for external flows
10
+ Build, install, and test iOS apps on the simulator using XcodeBuildMCP. Captures screenshots, logs, and verifies app behavior.
22
11
 
23
12
  ## Prerequisites
24
13
 
25
- <requirements>
26
14
  - Xcode installed with command-line tools
27
- - XcodeBuildMCP server connected
15
+ - XcodeBuildMCP MCP server connected
28
16
  - Valid Xcode project or workspace
29
17
  - At least one iOS Simulator available
30
- </requirements>
31
18
 
32
- ## Main Tasks
19
+ ## Workflow
33
20
 
34
- ### 0. Verify XcodeBuildMCP is Installed
21
+ ### 0. Verify XcodeBuildMCP is Available
35
22
 
36
- <check_mcp_installed>
23
+ Check that the XcodeBuildMCP MCP server is connected by calling its `list_simulators` tool.
37
24
 
38
- **First, check if XcodeBuildMCP tools are available.**
25
+ MCP tool names vary by platform:
26
+ - OpenCode: `mcp__xcodebuildmcp__list_simulators`
27
+ - Other platforms: use the equivalent MCP tool call for the `XcodeBuildMCP` server's `list_simulators` method
39
28
 
40
- Try calling:
41
- ```
42
- mcp__xcodebuildmcp__list_simulators({})
43
- ```
29
+ If the tool is not found or errors, inform the user they need to add the XcodeBuildMCP MCP server:
44
30
 
45
- **If the tool is not found or errors:**
46
-
47
- Tell the user:
48
- ```markdown
49
- **XcodeBuildMCP not installed**
31
+ ```
32
+ XcodeBuildMCP not installed
50
33
 
51
- Please install the XcodeBuildMCP server first:
34
+ Install via Homebrew:
35
+ brew tap getsentry/xcodebuildmcp && brew install xcodebuildmcp
52
36
 
53
- \`\`\`bash
54
- claude mcp add XcodeBuildMCP -- npx xcodebuildmcp@latest
55
- \`\`\`
37
+ Or via npx (no global install needed):
38
+ npx -y xcodebuildmcp@latest mcp
56
39
 
57
- Then restart OpenCode and run `/xcode-test` again.
40
+ Then add "XcodeBuildMCP" as an MCP server in your agent configuration
41
+ and restart your agent.
58
42
  ```
59
43
 
60
- **Do NOT proceed** until XcodeBuildMCP is confirmed working.
61
-
62
- </check_mcp_installed>
44
+ Do NOT proceed until XcodeBuildMCP is confirmed working.
63
45
 
64
46
  ### 1. Discover Project and Scheme
65
47
 
66
- <discover_project>
48
+ Call XcodeBuildMCP's `discover_projs` tool to find available projects, then `list_schemes` with the project path to get available schemes.
67
49
 
68
- **Find available projects:**
69
- ```
70
- mcp__xcodebuildmcp__discover_projs({})
71
- ```
72
-
73
- **List schemes for the project:**
74
- ```
75
- mcp__xcodebuildmcp__list_schemes({ project_path: "/path/to/Project.xcodeproj" })
76
- ```
77
-
78
- **If argument provided:**
79
- - Use the specified scheme name
80
- - Or "current" to use the default/last-used scheme
81
-
82
- </discover_project>
50
+ If an argument was provided, use that scheme name. If "current", use the default/last-used scheme.
83
51
 
84
52
  ### 2. Boot Simulator
85
53
 
86
- <boot_simulator>
54
+ Call `list_simulators` to find available simulators. Boot the preferred simulator (iPhone 15 Pro recommended) using `boot_simulator` with the simulator's UUID.
87
55
 
88
- **List available simulators:**
89
- ```
90
- mcp__xcodebuildmcp__list_simulators({})
91
- ```
92
-
93
- **Boot preferred simulator (iPhone 15 Pro recommended):**
94
- ```
95
- mcp__xcodebuildmcp__boot_simulator({ simulator_id: "[uuid]" })
96
- ```
97
-
98
- **Wait for simulator to be ready:**
99
- Check simulator state before proceeding with installation.
100
-
101
- </boot_simulator>
56
+ Wait for the simulator to be ready before proceeding.
102
57
 
103
58
  ### 3. Build the App
104
59
 
105
- <build_app>
106
-
107
- **Build for iOS Simulator:**
108
- ```
109
- mcp__xcodebuildmcp__build_ios_sim_app({
110
- project_path: "/path/to/Project.xcodeproj",
111
- scheme: "[scheme_name]"
112
- })
113
- ```
60
+ Call `build_ios_sim_app` with the project path and scheme name.
114
61
 
115
- **Handle build failures:**
62
+ **On failure:**
116
63
  - Capture build errors
117
- - Create P1 todo for each build error
64
+ - Create a P1 todo for each build error
118
65
  - Report to user with specific error details
119
66
 
120
67
  **On success:**
121
68
  - Note the built app path for installation
122
- - Proceed to installation step
123
-
124
- </build_app>
69
+ - Proceed to step 4
125
70
 
126
71
  ### 4. Install and Launch
127
72
 
128
- <install_launch>
129
-
130
- **Install app on simulator:**
131
- ```
132
- mcp__xcodebuildmcp__install_app_on_simulator({
133
- app_path: "/path/to/built/App.app",
134
- simulator_id: "[uuid]"
135
- })
136
- ```
137
-
138
- **Launch the app:**
139
- ```
140
- mcp__xcodebuildmcp__launch_app_on_simulator({
141
- bundle_id: "[app.bundle.id]",
142
- simulator_id: "[uuid]"
143
- })
144
- ```
145
-
146
- **Start capturing logs:**
147
- ```
148
- mcp__xcodebuildmcp__capture_sim_logs({
149
- simulator_id: "[uuid]",
150
- bundle_id: "[app.bundle.id]"
151
- })
152
- ```
153
-
154
- </install_launch>
73
+ 1. Call `install_app_on_simulator` with the built app path and simulator UUID
74
+ 2. Call `launch_app_on_simulator` with the bundle ID and simulator UUID
75
+ 3. Call `capture_sim_logs` with the simulator UUID and bundle ID to start log capture
155
76
 
156
77
  ### 5. Test Key Screens
157
78
 
158
- <test_screens>
159
-
160
79
  For each key screen in the app:
161
80
 
162
81
  **Take screenshot:**
163
- ```
164
- mcp__xcodebuildmcp__take_screenshot({
165
- simulator_id: "[uuid]",
166
- filename: "screen-[name].png"
167
- })
168
- ```
82
+ Call `take_screenshot` with the simulator UUID and a descriptive filename (e.g., `screen-home.png`).
169
83
 
170
84
  **Review screenshot for:**
171
85
  - UI elements rendered correctly
@@ -174,23 +88,15 @@ mcp__xcodebuildmcp__take_screenshot({
174
88
  - Layout looks correct
175
89
 
176
90
  **Check logs for errors:**
177
- ```
178
- mcp__xcodebuildmcp__get_sim_logs({ simulator_id: "[uuid]" })
179
- ```
180
-
181
- Look for:
91
+ Call `get_sim_logs` with the simulator UUID. Look for:
182
92
  - Crashes
183
93
  - Exceptions
184
94
  - Error-level log messages
185
95
  - Failed network requests
186
96
 
187
- </test_screens>
188
-
189
97
  ### 6. Human Verification (When Required)
190
98
 
191
- <human_verification>
192
-
193
- Pause for human input when testing touches:
99
+ Pause for human input when testing touches flows that require device interaction.
194
100
 
195
101
  | Flow Type | What to Ask |
196
102
  |-----------|-------------|
@@ -200,9 +106,10 @@ Pause for human input when testing touches:
200
106
  | Camera/Photos | "Grant permissions and verify camera works" |
201
107
  | Location | "Allow location access and verify map updates" |
202
108
 
203
- Use question:
204
- ```markdown
205
- **Human Verification Needed**
109
+ Ask the user (using the platform's question tool — e.g., `question` in OpenCode, `request_user_input` in Codex, `ask_user` in Gemini — or present numbered options and wait):
110
+
111
+ ```
112
+ Human Verification Needed
206
113
 
207
114
  This test requires [flow type]. Please:
208
115
  1. [Action to take on simulator]
@@ -213,12 +120,8 @@ Did it work correctly?
213
120
  2. No - describe the issue
214
121
  ```
215
122
 
216
- </human_verification>
217
-
218
123
  ### 7. Handle Failures
219
124
 
220
- <failure_handling>
221
-
222
125
  When a test fails:
223
126
 
224
127
  1. **Document the failure:**
@@ -226,60 +129,52 @@ When a test fails:
226
129
  - Capture console logs
227
130
  - Note reproduction steps
228
131
 
229
- 2. **Ask user how to proceed:**
230
- ```markdown
231
- **Test Failed: [screen/feature]**
132
+ 2. **Ask the user how to proceed:**
133
+
134
+ ```
135
+ Test Failed: [screen/feature]
232
136
 
233
137
  Issue: [description]
234
138
  Logs: [relevant error messages]
235
139
 
236
140
  How to proceed?
237
141
  1. Fix now - I'll help debug and fix
238
- 2. Create todo - Add to todos/ for later
142
+ 2. Create todo - Add a todo for later (using the file-todos skill)
239
143
  3. Skip - Continue testing other screens
240
144
  ```
241
145
 
242
- 3. **If "Fix now":**
243
- - Investigate the issue in code
244
- - Propose a fix
245
- - Rebuild and retest
246
-
247
- 4. **If "Create todo":**
248
- - Create `{id}-pending-p1-xcode-{description}.md`
249
- - Continue testing
250
-
251
- </failure_handling>
146
+ 3. **If "Fix now":** investigate, propose a fix, rebuild and retest
147
+ 4. **If "Create todo":** load the `file-todos` skill and create a todo with priority p1 and description `xcode-{description}`, continue
148
+ 5. **If "Skip":** log as skipped, continue
252
149
 
253
150
  ### 8. Test Summary
254
151
 
255
- <test_summary>
256
-
257
- After all tests complete, present summary:
152
+ After all tests complete, present a summary:
258
153
 
259
154
  ```markdown
260
- ## 📱 Xcode Test Results
155
+ ## Xcode Test Results
261
156
 
262
157
  **Project:** [project name]
263
158
  **Scheme:** [scheme name]
264
159
  **Simulator:** [simulator name]
265
160
 
266
- ### Build: Success / Failed
161
+ ### Build: Success / Failed
267
162
 
268
163
  ### Screens Tested: [count]
269
164
 
270
165
  | Screen | Status | Notes |
271
166
  |--------|--------|-------|
272
- | Launch | Pass | |
273
- | Home | Pass | |
274
- | Settings | Fail | Crash on tap |
275
- | Profile | ⏭️ Skip | Requires login |
167
+ | Launch | Pass | |
168
+ | Home | Pass | |
169
+ | Settings | Fail | Crash on tap |
170
+ | Profile | Skip | Requires login |
276
171
 
277
172
  ### Console Errors: [count]
278
173
  - [List any errors found]
279
174
 
280
175
  ### Human Verifications: [count]
281
- - Sign in with Apple: Confirmed
282
- - Push notifications: Confirmed
176
+ - Sign in with Apple: Confirmed
177
+ - Push notifications: Confirmed
283
178
 
284
179
  ### Failures: [count]
285
180
  - Settings screen - crash on navigation
@@ -290,44 +185,27 @@ After all tests complete, present summary:
290
185
  ### Result: [PASS / FAIL / PARTIAL]
291
186
  ```
292
187
 
293
- </test_summary>
294
-
295
188
  ### 9. Cleanup
296
189
 
297
- <cleanup>
298
-
299
190
  After testing:
300
191
 
301
- **Stop log capture:**
302
- ```
303
- mcp__xcodebuildmcp__stop_log_capture({ simulator_id: "[uuid]" })
304
- ```
305
-
306
- **Optionally shut down simulator:**
307
- ```
308
- mcp__xcodebuildmcp__shutdown_simulator({ simulator_id: "[uuid]" })
309
- ```
310
-
311
- </cleanup>
192
+ 1. Call `stop_log_capture` with the simulator UUID
193
+ 2. Optionally call `shutdown_simulator` with the simulator UUID
312
194
 
313
195
  ## Quick Usage Examples
314
196
 
315
197
  ```bash
316
198
  # Test with default scheme
317
- /xcode-test
199
+ /test-xcode
318
200
 
319
201
  # Test specific scheme
320
- /xcode-test MyApp-Debug
202
+ /test-xcode MyApp-Debug
321
203
 
322
204
  # Test after making changes
323
- /xcode-test current
205
+ /test-xcode current
324
206
  ```
325
207
 
326
- ## Integration with /systematic:ce-review
327
-
328
- When reviewing PRs that touch iOS code, the `/systematic:ce-review` command can spawn this as a subagent:
208
+ ## Integration with ce:review
329
209
 
330
- ```
331
- Task general-purpose("Run /xcode-test for scheme [name]. Build, install on simulator, test key screens, check for crashes.")
332
- ```
210
+ When reviewing PRs that touch iOS code, the `ce:review` workflow can spawn an agent to run this skill, build on the simulator, test key screens, and check for crashes.
333
211
 
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
  ---
7
7
 
8
8
  - First set the /model to Haiku
9
- - Then read all pending todos in the todos/ directory
9
+ - Then read all pending todos from `.context/systematic/todos/` and legacy `todos/` directories
10
10
 
11
11
  Present all findings, decisions, or issues here one by one for triage. The goal is to go through each item and decide whether to add it to the CLI todo system.
12
12
 
@@ -149,7 +149,7 @@ Do you want to add this to the todo list?
149
149
 
150
150
  **When user says "next":**
151
151
 
152
- - **Delete the todo file** - Remove it from todos/ directory since it's not relevant
152
+ - **Delete the todo file** - Remove it from its current location since it's not relevant
153
153
  - Skip to the next item
154
154
  - Track skipped items for summary
155
155
 
@@ -182,29 +182,29 @@ After all items processed:
182
182
 
183
183
  ### Skipped Items (Deleted):
184
184
 
185
- - Item #5: [reason] - Removed from todos/
186
- - Item #12: [reason] - Removed from todos/
185
+ - Item #5: [reason] - Removed
186
+ - Item #12: [reason] - Removed
187
187
 
188
188
  ### Summary of Changes Made:
189
189
 
190
190
  During triage, the following status updates occurred:
191
191
 
192
192
  - **Pending → Ready:** Filenames and frontmatter updated to reflect approved status
193
- - **Deleted:** Todo files for skipped findings removed from todos/ directory
193
+ - **Deleted:** Todo files for skipped findings removed
194
194
  - Each approved file now has `status: ready` in YAML frontmatter
195
195
 
196
196
  ### Next Steps:
197
197
 
198
198
  1. View approved todos ready for work:
199
199
  ```bash
200
- ls todos/*-ready-*.md
200
+ ls .context/systematic/todos/*-ready-*.md todos/*-ready-*.md 2>/dev/null
201
201
  ```
202
202
  ````
203
203
 
204
204
  2. Start work on approved items:
205
205
 
206
206
  ```bash
207
- /resolve_todo_parallel # Work on multiple approved items efficiently
207
+ /resolve-todo-parallel # Work on multiple approved items efficiently
208
208
  ```
209
209
 
210
210
  3. Or pick individual items to work on
@@ -272,7 +272,7 @@ Do you want to add this to the todo list?
272
272
  4. Confirm: "✅ Approved: `{filename}` (Issue #{issue_id}) - Status: **ready**"
273
273
 
274
274
  **When "next" is selected:**
275
- 1. Delete the todo file from todos/ directory
275
+ 1. Delete the todo file from its current location
276
276
  2. Skip to next item
277
277
  3. No file remains in the system
278
278
 
@@ -297,7 +297,7 @@ Progress: 3/10 completed | Estimated time: ~2 minutes remaining
297
297
  - ✅ Update todo files (rename, frontmatter, work log)
298
298
  - ❌ Do NOT implement fixes or write code
299
299
  - ❌ Do NOT add detailed implementation details
300
- - ❌ That's for /resolve_todo_parallel phase
300
+ - ❌ That's for /resolve-todo-parallel phase
301
301
  ```
302
302
 
303
303
  When done give these options
@@ -305,7 +305,7 @@ When done give these options
305
305
  ```markdown
306
306
  What would you like to do next?
307
307
 
308
- 1. run /resolve_todo_parallel to resolve the todos
308
+ 1. run /resolve-todo-parallel to resolve the todos
309
309
  2. commit the todos
310
310
  3. nothing, go chill
311
311
  ```