From arn-spark
Optional customization tool for greenfield projects. This skill should be used when the user says "greenfield init", "arn spark init", "initialize greenfield", "setup greenfield", "greenfield setup", "start greenfield", "configure greenfield", "set up greenfield", "init greenfield", "greenfield configuration", "review greenfield config", "customize greenfield config", "greenfield settings", "Figma setup", "Canva setup", "add Figma", "add Canva", "design tool setup", or wants to customize Arness Spark configuration, add design tool integrations (Figma, Canva), or review current greenfield settings. Arness Spark auto-configures with sensible defaults on first skill invocation — this init is optional. Design tool integration (Figma/Canva) remains available only through this skill.
npx claudepluginhub appsvortex/arness --plugin arn-sparkThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Delivers DB-free sandbox API regression tests for Next.js/Vitest to catch AI blind spots in self-reviewed code changes like API routes and backend logic.
Set up Arness for a greenfield project by configuring output directories for all greenfield artifacts and detecting the project's platform setup. This is optional — Arness Spark auto-configures with sensible defaults on first skill invocation. Use this to customize directories, add design tool integrations (Figma, Canva), or review your current settings.
This skill is lightweight and focused: it configures only what greenfield skills need (artifact directories and platform integration). It does NOT set up code patterns, report templates, plans, or documentation directories — those are handled when the project transitions to the development phase. Design tool integration (Figma/Canva) is only available through this skill — ensure-config does not configure design tools.
The ## Arness section written by this skill is forward-compatible with Arness Code and Arness Infra. When either plugin's ensure-config or init runs later, it detects the existing configuration and adds the remaining fields without disrupting greenfield settings.
Read the project's CLAUDE.md and look for a ## Arness section. If no CLAUDE.md exists, create one at the project root before proceeding.
If the section does not exist:
If the section exists:
## Arness block${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.jsonAskUserQuestion:
## Arness fields relevant to Arness Spark, then exit the skillAsk the user about each output directory. All defaults are under .arness/ to centralize Arness artifacts in one place.
2.1. Vision directory:
"Where should Arness store greenfield vision documents (product concept, architecture vision, style brief, spike results, feature backlog)?"
.arness/vision/arn-spark-discover, /arn-spark-arch-vision, /arn-spark-spike, /arn-spark-style-explore, /arn-spark-feature-extract, /arn-spark-dev-setup2.2. Use cases directory:
"Where should Arness store use case documents?"
.arness/use-cases/arn-spark-use-cases, /arn-spark-use-cases-teams2.3. Prototypes directory:
"Where should Arness store prototype versions and review reports?"
.arness/prototypes/arn-spark-static-prototype, /arn-spark-clickable-prototype2.4. Spikes directory:
"Where should Arness store technical spike POC code?"
.arness/spikes/arn-spark-spike2.5. Visual grounding directory:
"Where should Arness store visual grounding assets (reference images, design mockups, brand assets)?"
.arness/visual-grounding/arn-spark-style-explore, /arn-spark-static-prototype, /arn-spark-clickable-prototypeCreate three subfolders inside the visual grounding directory: references/, designs/, brand/.
2.6. Reports directory:
"Where should Arness store stress test reports and other analysis output?"
.arness/reports/arn-spark-stress-interview, /arn-spark-stress-competitive, /arn-spark-stress-premortem, /arn-spark-stress-prfaq, /arn-spark-concept-reviewAfter creating the Reports directory (mkdir -p <chosen-path>), also create the stress-tests/ subdirectory: mkdir -p <chosen-path>/stress-tests/
For each directory:
mkdir -p <chosen-path>Shared field preservation: If ## Arness already exists and the shared fields (Git, Platform, Issue tracker, Jira site, Jira project) are already present from a prior init (this plugin or another — e.g., arn-code-init or arn-infra-init), skip detection and preserve the existing values — unless the user chose Reconfigure in Step 1. This prevents overwriting values set by another plugin in a monorepo.
Check if the project uses Git, determine the code hosting platform, and identify the issue tracker.
3.1. Git check:
git rev-parse --is-inside-work-tree to check for a git repository/arn-code-ship, /arn-code-review-pr, /arn-code-create-issue, /arn-code-pick-issue) will be unavailable." Record Git: no, Platform: none, Issue tracker: none and proceed to Step 4.3.2. Remote classification:
git remote -v and classify the remote URL:
github.com → candidate: githubbitbucket.org → candidate: bitbucket3.3a. If candidate is github:
gh auth status to check for GitHub CLI authenticationgh auth login, and STOP init (do not continue until resolved)gh label create for each label (the command is idempotent — it will skip labels that already exist):| Label | Color | Description |
|---|---|---|
arness-backlog | d4c5f9 | Deferred items from PRs or postponed features |
arness-feature-issue | 0e8a16 | Feature requests tracked via Arness |
arness-bug-issue | d93f0b | Bug reports tracked via Arness |
arness-priority-high | b60205 | High priority |
arness-priority-medium | fbca04 | Medium priority |
arness-priority-low | c5def5 | Low priority |
arness-rejected | e4e669 | Issue reviewed and rejected as invalid or out of scope |
Read
${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-init/references/platform-labels.mdfor label details and which skills use each label.
3.3b. If candidate is bitbucket:
Run bkt --version to check if the Bitbucket CLI is installed
${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-init/references/bkt-setup.md, then STOP initRun bkt auth status to check authentication
${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-init/references/bkt-setup.md, then STOP initPlatform: bitbucket (confirmed)
Ask (using AskUserQuestion):
Do you use Jira for issue tracking on this project?
- Yes — Verify Atlassian MCP server and select a Jira project
- No — Skip issue tracker integration
${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-init/references/jira-mcp-setup.md, then STOP init${CLAUDE_PLUGIN_ROOT}/skills/arn-spark-init/references/platform-labels.md)/arn-code-create-issue, /arn-code-pick-issue) will be unavailable. PR and code workflow skills still work via bkt."3.4. Design tool integration:
Detect design tool MCP availability, then ask the user's project-level decision.
3.4a. Detection (automatic):
Check if a Figma MCP server is configured:
figma in the project's .mcp.json or attempt to invoke a Figma MCP toolCheck if a Canva MCP server is configured:
canva in the project's .mcp.json or attempt to invoke a Canva MCP tool3.4b. User decision (ask):
Present the detection results, then ask the user what they want to use for THIS project.
Show the detection context first:
Then ask (using AskUserQuestion, multiSelect: true):
Which design tools do you want to use for this project? (Even if an MCP is available, you may not need it for every project.)
- Figma — Pull design data and export screens during style exploration and prototype validation [only show if MCP available]
- Canva — Pull design assets during style exploration [only show if MCP available]
- None — No design tool integration for this project
If the user selects a tool whose MCP is not available, inform them it requires MCP setup and suggest the setup link above.
Record the user's choices:
Downstream skills check these flags — not MCP availability — to decide whether to offer Figma/Canva integration. If the flag is no, the skill does not mention or attempt to use that MCP, even if it's technically available.
3.5. Record results:
Write (or update) the ## Arness section in the project's CLAUDE.md:
## Arness
- **Vision directory:** [chosen-path]
- **Use cases directory:** [chosen-path]
- **Prototypes directory:** [chosen-path]
- **Spikes directory:** [chosen-path]
- **Visual grounding directory:** [chosen-path]
- **Reports directory:** [chosen-path]
- **Git:** yes | no
- **Platform:** github | bitbucket | none
- **Issue tracker:** github | jira | none
- **Jira site:** <site>.atlassian.net
- **Jira project:** <KEY>
- **Figma:** yes | no
- **Canva:** yes | no
Rules:
no.## Arness section in place. Do not duplicate it.Confirm with the user:
[path][path][path][path][path]references/, designs/, brand/[path]stress-tests/## Arness section written to CLAUDE.mdList all created/modified files with their paths.
Next steps:
"Arness Spark is ready. Here is the recommended exploration pipeline:
/arn-spark-discover to shape your product idea into a structured concept/arn-spark-stress-interview, /arn-spark-stress-competitive, /arn-spark-stress-premortem, /arn-spark-stress-prfaq to validate the concept, then /arn-spark-concept-review to apply findings/arn-spark-arch-vision to choose technologies and design the system/arn-spark-use-cases (or /arn-spark-use-cases-teams for expert debate) to specify system behavior/arn-spark-scaffold to create the project skeleton/arn-spark-spike to test critical technical assumptions/arn-spark-visual-sketch to generate visual direction proposals and select a direction/arn-spark-style-explore to translate the visual direction into a complete design system/arn-spark-static-prototype and /arn-spark-clickable-prototype to validate the UI/arn-spark-feature-extract to build the backlogWhen you are ready to transition from exploration to development: if you have the Arness Code plugin installed, run /arn-planning to start the development pipeline. Arness auto-configures code patterns, report templates, plans, and documentation directories on first use."
## Arness config block in the conversation so the user can insert it manually. Suggest checking file permissions.gh auth login or bkt auth login not resolved: Explain the issue and stop init. The user must resolve authentication before proceeding. They can re-run /arn-spark-init after fixing auth.