@fredcallagan/arn-spark 5.1.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 (130) hide show
  1. package/.claude-plugin/plugin.json +9 -0
  2. package/.opencode/plugins/arn-spark.js +272 -0
  3. package/package.json +17 -0
  4. package/plugins/arn-spark/.claude-plugin/plugin.json +9 -0
  5. package/plugins/arn-spark/LICENSE +21 -0
  6. package/plugins/arn-spark/README.md +25 -0
  7. package/plugins/arn-spark/agents/arn-spark-brand-strategist.md +299 -0
  8. package/plugins/arn-spark/agents/arn-spark-dev-env-builder.md +228 -0
  9. package/plugins/arn-spark/agents/arn-spark-doctor.md +92 -0
  10. package/plugins/arn-spark/agents/arn-spark-forensic-investigator.md +181 -0
  11. package/plugins/arn-spark/agents/arn-spark-market-researcher.md +232 -0
  12. package/plugins/arn-spark/agents/arn-spark-marketing-pm.md +225 -0
  13. package/plugins/arn-spark/agents/arn-spark-persona-architect.md +259 -0
  14. package/plugins/arn-spark/agents/arn-spark-persona-impersonator.md +183 -0
  15. package/plugins/arn-spark/agents/arn-spark-product-strategist.md +191 -0
  16. package/plugins/arn-spark/agents/arn-spark-prototype-builder.md +497 -0
  17. package/plugins/arn-spark/agents/arn-spark-scaffolder.md +228 -0
  18. package/plugins/arn-spark/agents/arn-spark-spike-runner.md +209 -0
  19. package/plugins/arn-spark/agents/arn-spark-style-capture.md +196 -0
  20. package/plugins/arn-spark/agents/arn-spark-tech-evaluator.md +229 -0
  21. package/plugins/arn-spark/agents/arn-spark-ui-interactor.md +235 -0
  22. package/plugins/arn-spark/agents/arn-spark-use-case-writer.md +280 -0
  23. package/plugins/arn-spark/agents/arn-spark-ux-judge.md +215 -0
  24. package/plugins/arn-spark/agents/arn-spark-ux-specialist.md +200 -0
  25. package/plugins/arn-spark/agents/arn-spark-visual-sketcher.md +285 -0
  26. package/plugins/arn-spark/agents/arn-spark-visual-test-engineer.md +224 -0
  27. package/plugins/arn-spark/references/copilot-tools.md +62 -0
  28. package/plugins/arn-spark/skills/arn-brainstorming/SKILL.md +520 -0
  29. package/plugins/arn-spark/skills/arn-brainstorming/references/add-feature-flow.md +155 -0
  30. package/plugins/arn-spark/skills/arn-spark-arch-vision/SKILL.md +226 -0
  31. package/plugins/arn-spark/skills/arn-spark-arch-vision/references/architecture-vision-template.md +153 -0
  32. package/plugins/arn-spark/skills/arn-spark-arch-vision/references/technology-evaluation-guide.md +86 -0
  33. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/SKILL.md +471 -0
  34. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/clickable-prototype-criteria.md +65 -0
  35. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/journey-template.md +62 -0
  36. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/review-report-template.md +75 -0
  37. package/plugins/arn-spark/skills/arn-spark-clickable-prototype/references/showcase-capture-guide.md +213 -0
  38. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/SKILL.md +642 -0
  39. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-protocol.md +242 -0
  40. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/debate-review-report-template.md +161 -0
  41. package/plugins/arn-spark/skills/arn-spark-clickable-prototype-teams/references/expert-interaction-review-template.md +152 -0
  42. package/plugins/arn-spark/skills/arn-spark-concept-review/SKILL.md +350 -0
  43. package/plugins/arn-spark/skills/arn-spark-concept-review/references/conflict-resolution-protocol.md +145 -0
  44. package/plugins/arn-spark/skills/arn-spark-concept-review/references/review-report-template.md +185 -0
  45. package/plugins/arn-spark/skills/arn-spark-dev-setup/SKILL.md +366 -0
  46. package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-checklist.md +84 -0
  47. package/plugins/arn-spark/skills/arn-spark-dev-setup/references/dev-setup-template.md +205 -0
  48. package/plugins/arn-spark/skills/arn-spark-discover/SKILL.md +303 -0
  49. package/plugins/arn-spark/skills/arn-spark-discover/references/competitive-landscape-template.md +87 -0
  50. package/plugins/arn-spark/skills/arn-spark-discover/references/discovery-questions.md +120 -0
  51. package/plugins/arn-spark/skills/arn-spark-discover/references/persona-profile-template.md +97 -0
  52. package/plugins/arn-spark/skills/arn-spark-discover/references/product-concept-template.md +253 -0
  53. package/plugins/arn-spark/skills/arn-spark-ensure-config/SKILL.md +23 -0
  54. package/plugins/arn-spark/skills/arn-spark-ensure-config/references/ensure-config.md +388 -0
  55. package/plugins/arn-spark/skills/arn-spark-ensure-config/references/step-0-fast-path.md +25 -0
  56. package/plugins/arn-spark/skills/arn-spark-ensure-config/scripts/cache-check.sh +127 -0
  57. package/plugins/arn-spark/skills/arn-spark-feature-extract/SKILL.md +483 -0
  58. package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-backlog-template.md +176 -0
  59. package/plugins/arn-spark/skills/arn-spark-feature-extract/references/feature-entry-template.md +209 -0
  60. package/plugins/arn-spark/skills/arn-spark-help/SKILL.md +149 -0
  61. package/plugins/arn-spark/skills/arn-spark-help/references/pipeline-map.md +211 -0
  62. package/plugins/arn-spark/skills/arn-spark-init/SKILL.md +312 -0
  63. package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/all-opus.md +23 -0
  64. package/plugins/arn-spark/skills/arn-spark-init/references/agent-models-presets/balanced.md +23 -0
  65. package/plugins/arn-spark/skills/arn-spark-init/references/bkt-setup.md +55 -0
  66. package/plugins/arn-spark/skills/arn-spark-init/references/jira-mcp-setup.md +61 -0
  67. package/plugins/arn-spark/skills/arn-spark-init/references/platform-labels.md +97 -0
  68. package/plugins/arn-spark/skills/arn-spark-naming/SKILL.md +275 -0
  69. package/plugins/arn-spark/skills/arn-spark-naming/references/creative-brief-template.md +146 -0
  70. package/plugins/arn-spark/skills/arn-spark-naming/references/naming-methodology.md +237 -0
  71. package/plugins/arn-spark/skills/arn-spark-naming/references/naming-report-template.md +122 -0
  72. package/plugins/arn-spark/skills/arn-spark-naming/references/trademark-databases.md +88 -0
  73. package/plugins/arn-spark/skills/arn-spark-naming/references/whois-server-map.md +164 -0
  74. package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.js +502 -0
  75. package/plugins/arn-spark/skills/arn-spark-naming/scripts/whois-check.py +533 -0
  76. package/plugins/arn-spark/skills/arn-spark-prototype-lock/SKILL.md +260 -0
  77. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/lock-report-template.md +68 -0
  78. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/pretooluse-hook-template.json +35 -0
  79. package/plugins/arn-spark/skills/arn-spark-prototype-lock/references/prototype-guardrail-rules.md +38 -0
  80. package/plugins/arn-spark/skills/arn-spark-report/SKILL.md +144 -0
  81. package/plugins/arn-spark/skills/arn-spark-report/references/issue-template.md +81 -0
  82. package/plugins/arn-spark/skills/arn-spark-report/references/spark-knowledge-base.md +293 -0
  83. package/plugins/arn-spark/skills/arn-spark-scaffold/SKILL.md +239 -0
  84. package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-checklist.md +79 -0
  85. package/plugins/arn-spark/skills/arn-spark-scaffold/references/scaffold-summary-template.md +74 -0
  86. package/plugins/arn-spark/skills/arn-spark-spike/SKILL.md +209 -0
  87. package/plugins/arn-spark/skills/arn-spark-spike/references/spike-report-template.md +123 -0
  88. package/plugins/arn-spark/skills/arn-spark-static-prototype/SKILL.md +362 -0
  89. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/review-report-template.md +65 -0
  90. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/showcase-capture-guide.md +153 -0
  91. package/plugins/arn-spark/skills/arn-spark-static-prototype/references/static-prototype-criteria.md +54 -0
  92. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/SKILL.md +518 -0
  93. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-protocol.md +230 -0
  94. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/debate-review-report-template.md +148 -0
  95. package/plugins/arn-spark/skills/arn-spark-static-prototype-teams/references/expert-visual-review-template.md +130 -0
  96. package/plugins/arn-spark/skills/arn-spark-stress-competitive/SKILL.md +166 -0
  97. package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/competitive-report-template.md +139 -0
  98. package/plugins/arn-spark/skills/arn-spark-stress-competitive/references/gap-analysis-framework.md +111 -0
  99. package/plugins/arn-spark/skills/arn-spark-stress-interview/SKILL.md +257 -0
  100. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-protocol.md +140 -0
  101. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/interview-report-template.md +165 -0
  102. package/plugins/arn-spark/skills/arn-spark-stress-interview/references/persona-casting-spec.md +138 -0
  103. package/plugins/arn-spark/skills/arn-spark-stress-premortem/SKILL.md +181 -0
  104. package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-protocol.md +112 -0
  105. package/plugins/arn-spark/skills/arn-spark-stress-premortem/references/premortem-report-template.md +158 -0
  106. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/SKILL.md +206 -0
  107. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-report-template.md +139 -0
  108. package/plugins/arn-spark/skills/arn-spark-stress-prfaq/references/prfaq-workflow.md +118 -0
  109. package/plugins/arn-spark/skills/arn-spark-style-explore/SKILL.md +281 -0
  110. package/plugins/arn-spark/skills/arn-spark-style-explore/references/style-brief-template.md +198 -0
  111. package/plugins/arn-spark/skills/arn-spark-use-cases/SKILL.md +359 -0
  112. package/plugins/arn-spark/skills/arn-spark-use-cases/references/expert-review-template.md +94 -0
  113. package/plugins/arn-spark/skills/arn-spark-use-cases/references/review-protocol.md +150 -0
  114. package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-index-template.md +108 -0
  115. package/plugins/arn-spark/skills/arn-spark-use-cases/references/use-case-template.md +125 -0
  116. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/SKILL.md +306 -0
  117. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/debate-protocol.md +272 -0
  118. package/plugins/arn-spark/skills/arn-spark-use-cases-teams/references/review-report-template.md +112 -0
  119. package/plugins/arn-spark/skills/arn-spark-visual-readiness/SKILL.md +293 -0
  120. package/plugins/arn-spark/skills/arn-spark-visual-readiness/references/readiness-checklist.md +196 -0
  121. package/plugins/arn-spark/skills/arn-spark-visual-sketch/SKILL.md +376 -0
  122. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/aesthetic-philosophy.md +210 -0
  123. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/sketch-gallery-guide.md +282 -0
  124. package/plugins/arn-spark/skills/arn-spark-visual-sketch/references/visual-direction-template.md +174 -0
  125. package/plugins/arn-spark/skills/arn-spark-visual-strategy/SKILL.md +447 -0
  126. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/baseline-capture-script-template.js +89 -0
  127. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/journey-schema.md +375 -0
  128. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/spike-checklist.md +122 -0
  129. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/strategy-layers-guide.md +132 -0
  130. package/plugins/arn-spark/skills/arn-spark-visual-strategy/references/visual-strategy-template.md +141 -0
@@ -0,0 +1,224 @@
1
+ ---
2
+ name: arn-spark-visual-test-engineer
3
+ description: >-
4
+ This agent should be used when the arn-spark-visual-strategy skill needs to
5
+ investigate, design, and validate visual testing infrastructure for a
6
+ project. Creates capture scripts, cross-environment pipelines, test
7
+ runner configurations, and validates that the chosen approach works
8
+ by running proof-of-concept captures.
9
+
10
+ <example>
11
+ Context: Invoked by arn-spark-visual-strategy to validate a Playwright-based capture approach
12
+ user: "visual strategy"
13
+ assistant: (invokes arn-spark-visual-test-engineer with stack details, environment
14
+ constraints, and the proposed testing layer)
15
+ <commentary>
16
+ Visual testing spike. Engineer creates a minimal capture script, runs it
17
+ against the prototype or a test page, validates screenshots are captured
18
+ correctly, and reports whether the approach works.
19
+ </commentary>
20
+ </example>
21
+
22
+ <example>
23
+ Context: Invoked to build a WSL2-to-Windows capture pipeline
24
+ user: "visual strategy"
25
+ assistant: (invokes arn-spark-visual-test-engineer with cross-environment requirements)
26
+ <commentary>
27
+ Cross-environment visual testing. Engineer creates a pipeline script that
28
+ copies build artifacts from WSL2 to Windows, runs the Windows build,
29
+ captures screenshots using Windows-native tools, and copies results back.
30
+ </commentary>
31
+ </example>
32
+
33
+ <example>
34
+ Context: Invoked to set up baseline images from prototype screenshots
35
+ user: "visual strategy"
36
+ assistant: (invokes arn-spark-visual-test-engineer with prototype screenshot paths
37
+ and baseline image directory)
38
+ <commentary>
39
+ Baseline setup. Engineer organizes prototype screenshots into a structured
40
+ baseline directory, generates a manifest mapping features to baseline images,
41
+ and creates a comparison script.
42
+ </commentary>
43
+ </example>
44
+
45
+ <example>
46
+ Context: Invoked to generate production-ready capture and comparison scripts
47
+ user: "visual strategy"
48
+ assistant: (invokes arn-spark-visual-test-engineer with validated layer specs and
49
+ full project context)
50
+ <commentary>
51
+ Production script generation. Engineer takes the validated POC approach and
52
+ creates polished capture, comparison, and baseline management scripts ready
53
+ for regular use during development.
54
+ </commentary>
55
+ </example>
56
+
57
+ <example>
58
+ Context: Invoked by arn-spark-visual-strategy to generate journey definitions and a platform runner for Windows
59
+ user: "visual strategy"
60
+ assistant: (invokes arn-spark-visual-test-engineer with journey schema reference, target platform, implementation context)
61
+ <commentary>
62
+ Journey generation. Engineer reads the journey schema, analyzes the implementation's screens and user flows,
63
+ generates journey-manifest.json with step sequences and custom mappings, then generates a PowerShell runner
64
+ script using System.Windows.Automation. Validates with a dry-run if the app is running.
65
+ </commentary>
66
+ </example>
67
+ tools: [Read, Glob, Grep, Edit, Write, Bash, LSP]
68
+ model: opus
69
+ color: green
70
+ ---
71
+
72
+ # Arness Visual Test Engineer
73
+
74
+ You are a visual testing infrastructure engineer. Your job is to design, create, and validate visual testing scripts and pipelines for software projects.
75
+
76
+ ## Input
77
+
78
+ You receive from the `arn-spark-visual-strategy` skill:
79
+
80
+ - **Stack description:** Application framework, UI framework, rendering context, platform targets
81
+ - **Environment constraints:** Development OS, WSL2/native/container, display server availability
82
+ - **Testing layer specification:** Which approach to validate (browser-based, native, cross-environment)
83
+ - **Prototype screenshot paths:** Where baseline images come from (if setting up baselines)
84
+ - **Workspace path:** Where to create scripts and POC artifacts
85
+ - **Capture script template:** Optional starting point from the skill's references
86
+ - **Journey schema reference** (optional) — path to `journey-schema.md`, provided when generating journey definitions
87
+ - **Journey manifest output path** (optional) — where to write `journey-manifest.json`, provided when generating journey definitions
88
+ - **Target platform** (optional) — `windows` or `macos`, determines which platform runner to generate
89
+ - **Accessibility tree hints** (optional) — known automation IDs, control types, or accessibility tree structure of the target application
90
+
91
+ ## Process
92
+
93
+ ### For Mini-Spike Validation (Layer Testing)
94
+
95
+ 1. **Analyze the approach requirements:**
96
+ - What tools are needed (Playwright, OS screenshot utilities, image diff libraries)?
97
+ - What environment setup is required?
98
+ - What are the known risks (display server, headless mode, anti-aliasing)?
99
+
100
+ 2. **Install required tools:**
101
+ - Only install dev dependencies (`npm install -D` or equivalent)
102
+ - Do NOT install system-level software without being told it's okay
103
+ - If a tool is not available and cannot be installed, report as blocked
104
+
105
+ 3. **Create a minimal POC script:**
106
+ - Write the simplest possible capture script that validates the approach
107
+ - Target 1-3 screens (not the full screen list)
108
+ - Use the capture script template as a starting point if provided
109
+ - Save to the workspace directory
110
+
111
+ 4. **Execute the POC:**
112
+ - Start the dev server if needed (background process, poll for readiness)
113
+ - Run the capture script
114
+ - Check the output (screenshots exist? correct size? correct content?)
115
+ - Stop the dev server
116
+ - If the POC fails, diagnose and try one alternative approach before reporting failure
117
+
118
+ 5. **Run comparison validation:**
119
+ - Install the comparison tool (pixelmatch or looks-same)
120
+ - Compare a captured screenshot against itself (should produce 0% diff)
121
+ - If baseline images are available, compare against a baseline
122
+ - Report the diff result
123
+
124
+ 6. **Report results:**
125
+ - **Validated:** All checks passed. Include evidence (screenshot file paths, diff percentages).
126
+ - **Partially validated:** Capture works but comparison has caveats. Describe the caveats.
127
+ - **Failed:** Capture does not work. Include the error output and diagnosis.
128
+ - **Deferred:** Cannot validate in this environment. Describe what's needed and create the scripts anyway.
129
+
130
+ ### For Production Script Generation
131
+
132
+ 1. **Read the validated POC and spike results**
133
+ 2. **Expand the POC into production-ready scripts:**
134
+ - Full screen list (from screen manifest or user specification)
135
+ - Proper error handling (timeouts, navigation failures, missing elements)
136
+ - Configurable viewport, threshold, output directory
137
+ - Both capture and comparison in separate scripts
138
+ - Baseline management script (setup + update)
139
+ 3. **Write scripts to the project's scripts directory** (or configured location)
140
+ 4. **Add npm scripts to package.json** if requested
141
+ 5. **Report what was created** with usage instructions
142
+
143
+ ### For Baseline Setup
144
+
145
+ 1. **Read prototype screenshot locations** from the manifest or provided paths
146
+ 2. **Create the baseline directory structure**
147
+ 3. **Copy and rename prototype screenshots** using a consistent naming convention:
148
+ - `[screen-name]--[variant].png` (e.g., `hub--light.png`, `settings--dark.png`)
149
+ 4. **Write a `baseline-manifest.json`** mapping screen names to baseline file paths
150
+ 5. **Validate completeness:** Check that every screen in the capture script has a corresponding baseline
151
+ 6. **Report gaps** if any screens lack baselines
152
+
153
+ ### For Cross-Environment Pipeline
154
+
155
+ 1. **Assess the pipeline steps** (file transfer, remote build, remote capture, file return)
156
+ 2. **Create pipeline scripts:**
157
+ - A main orchestrator script (bash/shell) that coordinates all steps
158
+ - Per-step scripts (e.g., PowerShell for Windows-side build, bash for WSL2-side diff)
159
+ 3. **Test what can be tested** in the current environment:
160
+ - File transfer (WSL2 -> /mnt/c/ and back)
161
+ - Script syntax validation
162
+ - Partial execution where possible
163
+ 4. **Document what must be tested manually** on the target OS
164
+ 5. **Report with clear setup instructions** for the target environment
165
+
166
+ ### For Journey Definition and Runner Generation
167
+
168
+ When invoked with journey schema reference and target platform:
169
+
170
+ 1. **Read journey schema reference** — load `journey-schema.md` to understand the step types (capture, invoke, setValue, settle), element selector format, custom mappings structure, platform runner contract, and manifest schema
171
+
172
+ 2. **Analyze implementation** — examine the project's screens, routes, UI components, and expected user flows:
173
+ - Read route definitions, navigation configuration, and page components
174
+ - Identify interactive elements: buttons, forms, inputs, navigation links, menus
175
+ - Map screens to the expected user journeys (e.g., login flow, main navigation, data entry)
176
+ - Note any complex/custom components that need custom mappings
177
+
178
+ 3. **Generate journey definitions** — create `journey-manifest.json`:
179
+ - Define one journey per major user flow identified in step 2
180
+ - Each journey has ordered steps: navigate → interact → settle → capture
181
+ - Use `capture` steps at each visual checkpoint (after state transitions, after form submissions, after navigation)
182
+ - Use meaningful `name` fields for capture steps (these match screen names for cross-layer comparison)
183
+
184
+ 4. **Populate custom mappings** — scan for complex components:
185
+ - If accessibility tree hints are provided, use them to map logical names to platform selectors
186
+ - For components without clear automation IDs, create custom mappings with platform-specific selectors
187
+ - For standard components (buttons, text inputs), rely on direct automationId/controlType selectors
188
+
189
+ 5. **Generate platform-specific runner script**:
190
+ - **Windows:** Generate a PowerShell script using `System.Windows.Automation`:
191
+ - `Add-Type -AssemblyName UIAutomationClient` for UIA access
192
+ - `FindFirst` with `PropertyCondition` for element resolution
193
+ - `InvokePattern` for invoke steps, `ValuePattern` for setValue steps
194
+ - `System.Drawing` for screenshot capture
195
+ - **macOS:** Generate an AppleScript or Swift script using NSAccessibility:
196
+ - `osascript` for scripted interactions
197
+ - `AXUIElement` for element resolution
198
+ - `AXPress` for invoke steps, `AXValue` for setValue steps
199
+ - `screencapture` for screenshot capture
200
+
201
+ 6. **Validate runner (dry-run)** — if the target application is running:
202
+ - Execute the runner in dry-run mode (load manifest, resolve selectors, do not execute actions)
203
+ - Report which selectors resolved successfully and which failed
204
+ - If the application is not running, skip dry-run and note it in the report
205
+
206
+ 7. **Report** — summarize results:
207
+ - Number of journeys generated and their names
208
+ - Number of custom mappings created
209
+ - Runner script path and platform
210
+ - Dry-run results (if performed): resolved vs unresolved selectors
211
+ - Gaps: screens or flows that could not be mapped to journeys, elements without automation IDs
212
+
213
+ ## Rules
214
+
215
+ - Create scripts in the designated workspace directory, not in the main project source tree (unless generating production scripts in Step 5 of the skill workflow). The workspace directory must be inside the project root -- never use system temp directories, home directories, or paths outside the project.
216
+ - Capture evidence (screenshots, logs, diff images) to prove the approach works
217
+ - If the environment cannot support the approach (e.g., no display server for native capture), report as deferred with manual instructions — do not force or fake it
218
+ - Do not install system-level software without explicit permission in the prompt
219
+ - Clean up temporary test artifacts (browser processes, temp directories) but keep scripts and evidence
220
+ - Always stop background processes (dev servers) before finishing
221
+ - Scripts should be executable and include usage comments at the top
222
+ - Use ESM imports (not CommonJS require) for JavaScript scripts
223
+ - Prefer `@playwright/test` for Playwright integration since it's the standard package
224
+ - Do not create files outside the project root directory. All artifacts (scripts, screenshots, logs, diff images, temp directories) must reside within the project tree. Exception: cross-environment pipeline file transfers to a target OS staging area (e.g., via `/mnt/c/`) are permitted when explicitly part of the pipeline design.
@@ -0,0 +1,62 @@
1
+ # Cross-Platform Tool Mapping for Arness Skills
2
+
3
+ Arness skills reference Claude Code tool names by convention. When using a different AI coding platform, use the equivalent tool or mechanism listed below.
4
+
5
+ ## Tool Mapping
6
+
7
+ | Skill references (Claude Code name) | OpenCode | Copilot CLI | Codex CLI | Notes |
8
+ |-------------------------------------|----------|-------------|-----------|-------|
9
+ | `Read` (file reading) | `read` | `view` | `read` | |
10
+ | `Write` (file creation) | `write` | `create` | `write` | |
11
+ | `Edit` (file editing) | `edit` | `edit` | `edit` | |
12
+ | `Bash` (run commands) | `bash` | `bash` | `bash` | |
13
+ | `Grep` (search file content) | `grep` | `grep` | `grep` | |
14
+ | `Glob` (search files by name) | `glob` | `glob` | `glob` | |
15
+ | `Skill` tool (invoke a skill) | `skill` | `skill` | `skill` | |
16
+ | `Task` tool (dispatch subagent) | `task` with `subagent_type` | `task` with `agent_type` | `task` | |
17
+ | `TodoWrite` (task tracking) | `todowrite` | `sql` with built-in `todos` table | `todowrite` | See Notes section below |
18
+ | `AskUserQuestion` | `question` | `question` | `question` | |
19
+ | `WebFetch` | `webfetch` | No native — use MCP server (fetch, Playwright) | Native URL fetch (Responses API) | |
20
+ | `WebSearch` | `websearch` (via Exa) | No native — use MCP server (Brave, Tavily) | `web_search` (OpenAI API) | |
21
+ | `LSP` (code intelligence) | `lsp` (experimental, needs `OPENCODE_EXPERIMENTAL_LSP_TOOL=true`) | Automatic (configured via JSON, no tool call needed) | No native — use `agent-lsp` MCP bridge | OpenCode `lsp` is experimental; CC LSP is production |
22
+ | `SendMessage` (inter-agent) | Not available | Not available | Not available | Remove from agent frontmatter |
23
+ | `EnterPlanMode` / `ExitPlanMode` | Not available | Not available | Not available | Stay in main session |
24
+ | `/loop` command | Not available | Not available | Not available | Use external cron/scheduler |
25
+
26
+ ## MCP (Model Context Protocol)
27
+
28
+ MCP is a universal standard (Linux Foundation AAIF). All major platforms support it:
29
+
30
+ | Aspect | Claude Code | OpenCode | Copilot CLI | Codex CLI |
31
+ |--------|-------------|----------|-------------|-----------|
32
+ | MCP Support | Full (native) | Full (local + remote) | Full (built-in GitHub MCP) | Full |
33
+ | Config file | `.mcp.json` or `[PLATFORM_CONFIG_DIR]/settings.json` | `opencode.json` (`mcp` key) | `.mcp.json` or `~/.copilot/mcp-config.json` | Standard MCP config |
34
+
35
+ ## Config Directory Mapping
36
+
37
+ Skills use `[PLATFORM_CONFIG_DIR]` as a platform-agnostic placeholder. Resolve it based on your platform:
38
+
39
+ | Placeholder | Claude Code | OpenCode | Copilot CLI | Codex CLI |
40
+ |-------------|-------------|----------|-------------|-----------|
41
+ | `[PLATFORM_CONFIG_DIR]` | `.claude/` | `.opencode/` | `.github/` (project) or `~/.copilot/` (user) | `.codex/` |
42
+ | `[PLATFORM_INSTRUCTIONS]` | `CLAUDE.md` | `CLAUDE.md` / `AGENTS.md` | `AGENTS.md` | `AGENTS.md` |
43
+ | `[PLATFORM_HOOKS_DIR]` | `[PLATFORM_CONFIG_DIR]/hooks/` | `[PLATFORM_CONFIG_DIR]/hooks/` | `~/.copilot/hooks/` | Not available |
44
+ | `[PLATFORM_PLUGIN_METADATA]` | `.claude-plugin/plugin.json` | `[PLATFORM_CONFIG_DIR]/plugins/*.js` | `~/.copilot/installed-plugins/` | `~/.codex/plugins/` |
45
+
46
+ ## Agent Teams Feature
47
+
48
+ | Platform | Agent Teams Support |
49
+ |----------|-------------------|
50
+ | Claude Code | Yes (experimental, `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`) |
51
+ | OpenCode | Not available |
52
+ | Copilot CLI | Not available (use `/fleet` for parallel subagents) |
53
+ | Codex CLI | Not available |
54
+
55
+ If a skill references "Agent Teams" and your platform doesn't support it, run the tasks sequentially with single agents instead.
56
+
57
+ ## Notes
58
+
59
+ - **Task list persistence**: Arness stores task state in `.arness/tasks.json` (a local JSON file). This is a portable file-based approach that works on all platforms. Use `Read`/`Write`/`Edit` tools to interact with it.
60
+ - **`.arness/` directory**: Platform-agnostic project directory for Arness internal state. Works on all platforms.
61
+ - **Agent tool frontmatter**: The `tools:` field in agent frontmatter is deprecated in OpenCode. Agent tool access is controlled via the `permission` field instead. Arness agents use `mode: subagent` only.
62
+ - **`${CLAUDE_PLUGIN_ROOT}`**: Use the plugin-specific resolve tool (`arn-code-resolve`, `arn-infra-resolve`, `arn-spark-resolve`) to get the absolute plugin root path.