npx claudepluginhub caphtech/claude-marketplace --plugin disposable-pluginWant just this skill?
Then install: npx claudepluginhub u/[userId]/[slug]
Generate a disposable prototype (spike) from requirements. Creates isolated branch, generates code, runs lint/test/coverage, and produces unified metrics. Part of H-DGM (Hybrid Disposable Generation Method) cycle. Use when starting a new disposable prototype, rapid exploration, or throwaway implementation.
This skill uses the workspace's default tool permissions.
Disposable Spike — Phase 1: Generate
Generate a disposable prototype from requirements, collect metrics, and prepare for autopsy analysis.
Prerequisites
- Project has language toolchain installed (see references/tool-profiles.yml in disposable-cycle)
- Git repository with clean working tree
.disposable/directory will be created if absent
Procedure
Step 1: Initialize Cycle
- Determine cycle number:
- If
.disposable/history.jsonexists, read last cycle number and increment - Otherwise start at
cycle_1
- If
- Create cycle directory:
.disposable/cycles/cycle_{N}/ - Check
.disposable/.lock— if locked and not expired (60min TTL), abort with message - Write
.disposable/.lockwith PID, timestamp, TTL
Step 2: Detect Language & Tool Profile
- Scan project root for language indicators:
tsconfig.json/package.json→ TypeScriptpubspec.yaml→ DartPackage.swift/*.xcodeproj→ Swiftmix.exs→ ElixirCargo.toml→ Rust
- Load matching tool profile from disposable-cycle references/tool-profiles.yml
- If no match found, ask user to specify language
Step 3: Create Isolated Branch
git checkout -b disposable/cycle_{N} HEAD
Step 4: Generate Prototype
- Read
$ARGUMENTSas requirements specification - Generate implementation code following these constraints:
- Speed over perfection — this code will be thrown away
- Cover the interface surface — focus on API shape and behavior
- Include basic tests — enough for autopsy metrics, not production quality
- No external network calls (per security-policy.md)
- Commit generated code:
git add -A && git commit -m "spike(cycle_{N}): disposable prototype"
Step 5: Collect Metrics
Run tool profile commands in order:
- Lint: Execute lint command from tool profile, capture output
- For non-ESLint formats (dart-analyze-json, swiftlint-json, credo-json, cargo-json): convert to ESLint JSON array format
[{ messages: [{ severity: 1|2, ... }] }]before passing to aggregate - Use the tool profile's
severityMapfor mapping
- For non-ESLint formats (dart-analyze-json, swiftlint-json, credo-json, cargo-json): convert to ESLint JSON array format
- Test: Execute test command (prefer
junitCommandif available), capture JUnit XML output- For Dart (
dart test --reporter=json): usejunitCommandor convert JSON to JUnit XML before passing to aggregate
- For Dart (
- Coverage: Execute coverage command, capture LCOV output
- If tool profile has
tool: null(e.g., Swift coverage): skip--coverageargument in aggregate call
- If tool profile has
Step 6: Aggregate Metrics
node {plugin_root}/scripts/dist/aggregate.mjs \
--lint {tool_profile.lint.outputPath} \
--test {tool_profile.test.outputPath} \
--coverage {tool_profile.coverage.outputPath} \
--cycle cycle_{N} \
--lang {detected_language} \
-o .disposable/cycles/cycle_{N}/spike-complete.json
Note: {tool_profile.*} paths come from the selected tool profile in references/tool-profiles.yml. Do not hardcode paths — each language has different output paths and formats. Omit --lint, --test, or --coverage arguments when the corresponding tool profile has tool: null (e.g., Swift coverage is not yet supported).
Step 7: Mask & Finalize
- Run sensitive data masking:
node {plugin_root}/scripts/dist/mask-sensitive.mjs \ .disposable/cycles/cycle_{N}/spike-complete.json --in-place - Release lock: remove
.disposable/.lock - Report summary to user:
- Cycle ID
- Language detected
- Lint issues (error/warning/info)
- Test results (pass/fail/skip)
- Coverage percentages
- Data completeness flags
Output
.disposable/cycles/cycle_{N}/spike-complete.json— unified metrics (metrics-schema.json)- Generated code on
disposable/cycle_{N}branch - Spike is ready for
/disposable-autopsy
Error Handling
- If lint/test/coverage tool fails: set
dataCompleteness.{source}=false, continue with available data - If git branch creation fails: abort with clean error message
- If lock exists: show lock info (PID, age) and ask user to force-release or wait
Similar Skills
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.