/arn-spark-prototype-lock
This skill should be used when the user says "prototype lock", "lock prototype", "arn prototype lock", "freeze prototype", "preserve prototype", "snapshot prototype", "protect prototype", "archive prototype", "save the prototype", "don't overwrite the prototype", "lock the
$ npx -y skills add AppsVortex/arness --skill arn-spark-prototype-lock --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/arn-spark-prototype-lock
Context preview
The summary Claude sees to decide when to auto-load this skill.
This skill should be used when the user says "prototype lock", "lock prototype", "arn prototype lock", "freeze prototype", "preserve prototype", "snapshot prototype", "protect prototype", "archive prototype", "save the prototype", "don't overwrite the prototype", "lock the
SKILL.md
arn-spark-prototype-lock.SKILL.mdname: arn-spark-prototype-lock
description: >-
This skill should be used when the user says "prototype lock", "lock prototype",
"arn prototype lock", "freeze prototype", "preserve prototype",
"snapshot prototype", "protect prototype", "archive prototype",
"save the prototype", "don't overwrite the prototype",
"lock the design", "freeze the design",
or wants to create a frozen snapshot of the validated prototype before
development begins, preventing production code from overwriting the
validated reference artifact.
version: 1.0.0
Arness Prototype Lock
Create a frozen, independently servable snapshot of the validated prototype before development code begins to modify shared source files. The primary artifacts are a **frozen prototype copy**, **CLAUDE.md guardrail rules** that prevent agents from modifying prototype files, an optional **PreToolUse hook** for enforcement, and a **git tag** marking the prototype completion point.
This skill addresses the problem: once development starts, production code overwrites prototype components because they share the same source files. The locked copy preserves the validated design reference for visual comparison and rollback.
Prerequisites
Read the project's `CLAUDE.md` for a `## Arness` section. If no `## Arness` section exists or Arness Spark fields are missing, inform the user: "Arness Spark is not configured for this project yet. Run `/arn-brainstorming` to get started — it will set everything up automatically." Do not proceed without it.
Extract:
- **Prototypes directory** (default: `.arness/prototypes`)
- **Vision directory** (default: `.arness/vision`)
- **Git** (yes/no)
- **Platform** (github/bitbucket/none)
Check for prototype validation evidence: 1. Check for `[prototypes-dir]/clickable/final-report.md` -- if found, read it. Extract the latest version number and judge verdict. 2. Check for `[prototypes-dir]/static/final-report.md` -- same. 3. Check for `[prototypes-dir]/criteria.md`
**If no prototype validation evidence found:** Inform the user: "No prototype validation results found. This skill works best after `/arn-spark-clickable-prototype` or `/arn-spark-static-prototype` has validated a prototype. You can still lock any existing prototype files. What prototype source should I preserve?"
**If validation found but judge verdict was FAIL:** Warn the user: "The latest prototype version (v[N]) received a FAIL verdict from the judge. Are you sure you want to lock this version, or would you prefer to run more validation cycles first?"
Check for architecture vision to detect the stack: 1. Read `architecture-vision.md` from the Vision directory 2. Extract: UI framework (Svelte/SvelteKit, React/Next.js, Vue/Nuxt, etc.), application framework (Tauri, Electron, plain web), package manager
Workflow
Step 1: Inventory Prototype Artifacts
Scan the prototypes directory structure. Build an inventory:
"I found the following prototype artifacts:
**Clickable prototype:**
- Latest version: v[N] (Judge: [PASS/FAIL])
- App source: [prototypes-dir]/clickable/v[N]/app/ ([X] files, [Y] KB)
- Journey screenshots: [prototypes-dir]/clickable/v[N]/journeys/ ([Z] files)
- Showcase: [prototypes-dir]/clickable/v[N]/showcase/ ([W] files)
- Review/judge reports: [list]
**Static prototype:**
- Latest version: v[M] (Judge: [PASS/FAIL])
- Showcase: [prototypes-dir]/static/v[M]/showcase/ ([A] files)
- Review/judge reports: [list]
**Shared:**
- Criteria: [prototypes-dir]/criteria.md
**Total size:** [calculated total]
Which version should I lock? (Default: latest passing version)"
Wait for user to confirm or specify a different version before proceeding. Do not continue until the user responds.
Step 2: Detect Stack and Plan Copy Strategy
Read the prototype app directory and detect the framework:
- Check for `package.json` -- read for framework indicators (svelte, react, vue, next, nuxt, sveltekit)
- Check for `Cargo.toml` if Tauri
- Check for build configuration files (vite.config, next.config, svelte.config, etc.)
Determine copy strategy based on stack:
| Framework | Copy Strategy | Validation | |-----------|--------------|------------| | SvelteKit | Copy full app directory, exclude node_modules. Include package.json, lockfile, svelte.config, vite.config, tailwind.config, src/, static/ | `cd [dest] && [pm] install && [pm] run build` | | Next.js | Copy full app directory, exclude node_modules and .next/. Include package.json, lockfile, next.config, tsconfig, src/, public/ | `cd [dest] && [pm] install && [pm] run build` | | Vue/Nuxt | Copy full app directory, exclude node_modules and .nuxt/. Include package.json, lockfile, nuxt.config, src/ | `cd [dest] && [pm] install && [pm] run build` | | Plain HTML/CSS/JS | Copy all files directly | Open index.html in browser or serve with `npx serve` | | Tauri | Copy the webview source (follows its own framework row above). Copy src-tauri/ config only if relevant to the UI snapshot | Framework-specific build (webview only) |
Present the plan:
"**Stack detected:** [framework]
**Copy plan:**
- Source: [prototypes-dir]/clickable/v[N]/app/
- Destination: [prototypes-dir]/locked/clickable-v[N]/
- Strategy: [framework-specific description]
- Excludes: node_modules/, build output dirs (.svelte-kit/, .next/, dist/)
- Includes: lockfile (package-lock.json/pnpm-lock.yaml/yarn.lock/bun.lockb), all config, all source
Also copying:
- Validation evidence (review reports, judge reports, screenshots, showcase)
- Criteria document
Proceed?"
Wait for user confirmation.
Step 3: Execute Copy
1. Create destination directory: `[prototypes-dir]/locked/clickable-v[N]/` 2. Copy the prototype app source using `cp -r` with exclusion of `node_modules/` and framework build output directories 3. Copy validation evidence:
- Journey screenshots from the locked version
- Showcase screenshots
- Review and judge reports for the locked version
- The `final-report.md` for each prototype ty
Read more
name: arn-spark-prototype-lock description: >- This skill should be used when the user says "prototype lock", "lock prototype", "arn prototype lock", "freeze prototype", "preserve prototype", "snapshot prototype", "protect prototype", "archive prototype", "save the prototype", "don't overwrite the prototype", "lock the design", "freeze the design", or wants to create a frozen snapshot of the validated prototype before development begins, preventing production code from overwriting the validated reference artifact. version: 1.0.0
Arness Prototype Lock
Create a frozen, independently servable snapshot of the validated prototype before development code begins to modify shared source files. The primary artifacts are a **frozen prototype copy**, **CLAUDE.md guardrail rules** that prevent agents from modifying prototype files, an optional **PreToolUse hook** for enforcement, and a **git tag** marking the prototype completion point.
This skill addresses the problem: once development starts, production code overwrites prototype components because they share the same source files. The locked copy preserves the validated design reference for visual comparison and rollback.
Prerequisites
Read the project's `CLAUDE.md` for a `## Arness` section. If no `## Arness` section exists or Arness Spark fields are missing, inform the user: "Arness Spark is not configured for this project yet. Run `/arn-brainstorming` to get started — it will set everything up automatically." Do not proceed without it.
Extract:
- **Prototypes directory** (default: `.arness/prototypes`)
- **Vision directory** (default: `.arness/vision`)
- **Git** (yes/no)
- **Platform** (github/bitbucket/none)
Check for prototype validation evidence: 1. Check for `[prototypes-dir]/clickable/final-report.md` -- if found, read it. Extract the latest version number and judge verdict. 2. Check for `[prototypes-dir]/static/final-report.md` -- same. 3. Check for `[prototypes-dir]/criteria.md`
**If no prototype validation evidence found:** Inform the user: "No prototype validation results found. This skill works best after `/arn-spark-clickable-prototype` or `/arn-spark-static-prototype` has validated a prototype. You can still lock any existing prototype files. What prototype source should I preserve?"
**If validation found but judge verdict was FAIL:** Warn the user: "The latest prototype version (v[N]) received a FAIL verdict from the judge. Are you sure you want to lock this version, or would you prefer to run more validation cycles first?"
Check for architecture vision to detect the stack: 1. Read `architecture-vision.md` from the Vision directory 2. Extract: UI framework (Svelte/SvelteKit, React/Next.js, Vue/Nuxt, etc.), application framework (Tauri, Electron, plain web), package manager
Workflow
Step 1: Inventory Prototype Artifacts
Scan the prototypes directory structure. Build an inventory:
"I found the following prototype artifacts:
**Clickable prototype:**
- Latest version: v[N] (Judge: [PASS/FAIL])
- App source: [prototypes-dir]/clickable/v[N]/app/ ([X] files, [Y] KB)
- Journey screenshots: [prototypes-dir]/clickable/v[N]/journeys/ ([Z] files)
- Showcase: [prototypes-dir]/clickable/v[N]/showcase/ ([W] files)
- Review/judge reports: [list]
**Static prototype:**
- Latest version: v[M] (Judge: [PASS/FAIL])
- Showcase: [prototypes-dir]/static/v[M]/showcase/ ([A] files)
- Review/judge reports: [list]
**Shared:**
- Criteria: [prototypes-dir]/criteria.md
**Total size:** [calculated total]
Which version should I lock? (Default: latest passing version)"
Wait for user to confirm or specify a different version before proceeding. Do not continue until the user responds.
Step 2: Detect Stack and Plan Copy Strategy
Read the prototype app directory and detect the framework:
- Check for `package.json` -- read for framework indicators (svelte, react, vue, next, nuxt, sveltekit)
- Check for `Cargo.toml` if Tauri
- Check for build configuration files (vite.config, next.config, svelte.config, etc.)
Determine copy strategy based on stack:
| Framework | Copy Strategy | Validation | |-----------|--------------|------------| | SvelteKit | Copy full app directory, exclude node_modules. Include package.json, lockfile, svelte.config, vite.config, tailwind.config, src/, static/ | `cd [dest] && [pm] install && [pm] run build` | | Next.js | Copy full app directory, exclude node_modules and .next/. Include package.json, lockfile, next.config, tsconfig, src/, public/ | `cd [dest] && [pm] install && [pm] run build` | | Vue/Nuxt | Copy full app directory, exclude node_modules and .nuxt/. Include package.json, lockfile, nuxt.config, src/ | `cd [dest] && [pm] install && [pm] run build` | | Plain HTML/CSS/JS | Copy all files directly | Open index.html in browser or serve with `npx serve` | | Tauri | Copy the webview source (follows its own framework row above). Copy src-tauri/ config only if relevant to the UI snapshot | Framework-specific build (webview only) |
Present the plan:
"**Stack detected:** [framework]
**Copy plan:**
- Source: [prototypes-dir]/clickable/v[N]/app/
- Destination: [prototypes-dir]/locked/clickable-v[N]/
- Strategy: [framework-specific description]
- Excludes: node_modules/, build output dirs (.svelte-kit/, .next/, dist/)
- Includes: lockfile (package-lock.json/pnpm-lock.yaml/yarn.lock/bun.lockb), all config, all source
Also copying:
- Validation evidence (review reports, judge reports, screenshots, showcase)
- Criteria document
Proceed?"
Wait for user confirmation.
Step 3: Execute Copy
1. Create destination directory: `[prototypes-dir]/locked/clickable-v[N]/` 2. Copy the prototype app source using `cp -r` with exclusion of `node_modules/` and framework build output directories 3. Copy validation evidence:
- Journey screenshots from the locked version
- Showcase screenshots
- Review and judge reports for the locked version
- The `final-report.md` for each prototype ty
Showing the first part of this file.
Arness — H not required. Structured AI workflows for Claude Code. From first idea to production deploy. Seven entry commands. That's all you need to remember.
Repo: AppsVortex/arness
Other skills on arness.
- /arn-assessing
This skill should be used when the user says "assessing", "arness assessing", "assess", "assess codebase", "technical review", "codebase assessment", "find improvements", "what should I improve", "tech debt review", "pattern compliance check", "codebase health check",
Open skill - /arn-code-assess
This skill should be used when the user says "arness code assess", "arn-code-assess", "assess codebase", "technical review", "codebase assessment", "find improvements", "what should I improve", "tech debt review", "tech debt audit", "pattern compliance check", "codebase health
Open skill - /arn-code-batch-cve-fix
This skill should be used when the user says "fix CVEs", "patch vulnerabilities", "apply security patches", "resolve security advisories", "batch CVE fix", "patch dependencies", "fix security findings", "remediate CVEs", "apply CVE fixes", "batch fix vulnerabilities", "resolve
Open skill - /arn-code-batch-cve-scan
This skill should be used when the user says "scan for CVEs", "CVE scan", "check for vulnerabilities", "find vulnerabilities", "check security advisories", "dependabot triage", "dependabot scan", "scan dependencies for security issues", "audit dependencies", "vulnerability
Open skill - /arn-code-batch-implement
This skill should be used when the user says "batch implement", "implement all", "batch execution", "implement all features", "parallel implement", "implement in parallel", "arness batch implement", "arn-code-batch-implement", "run batch implementation", "implement everything",
Open skill - /arn-code-batch-merge
This skill should be used when the user says "batch merge", "merge batch", "arness batch merge", "arn-code-batch-merge", "merge all PRs", "merge batch PRs", "merge the batch", "merge implemented features", "batch merge PRs", "merge open PRs", "merge all feature PRs", "combine
Open skill

