From Vengineer
Capture architectural decisions as permanent, sequentially-numbered Architecture Decision Records in docs/adr/
npx claudepluginhub dylanliiii/shipyard --plugin VengineerThis skill is limited to using the following tools:
**Purpose**: Generate permanent, sequentially-numbered Architecture Decision Records (ADRs) from completed plans, specs, or inline decision descriptions. ADRs are the long-lived artifact of the planning pipeline — never auto-deleted or overwritten.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Purpose: Generate permanent, sequentially-numbered Architecture Decision Records (ADRs) from completed plans, specs, or inline decision descriptions. ADRs are the long-lived artifact of the planning pipeline — never auto-deleted or overwritten.
$ARGUMENTS
Accepted inputs:
docs/plans/<feature-name>.md — extract decisions from the plandocs/specs/<feature-name>.md — extract decisions from the specWhen input is a plan or spec file, scan for signals of settled architectural decisions:
List each candidate decision (one sentence each) and present via AskUserQuestion:
"Found these decision candidates in [file]. Which would you like to record as ADRs? (select one or more, or all)"
ls docs/adr/ 2>/dev/null | grep -E '^[0-9]{4}-' | sort | tail -1
docs/adr/ is empty or absent: NNNN = 0001Create docs/adr/ if it does not exist.
Load the template from plugins/Vengineer/skills/reference/adr_template.md for structural reference.
Write docs/adr/NNNN-<kebab-case-title>.md with this structure:
---
stage: adr
adr: NNNN
title: <Decision Title>
created: YYYY-MM-DD
status: Accepted
source-plan: <docs/plans/... or omit>
source-spec: <docs/specs/... or omit>
---
# NNNN. <Decision Title>
## Status
Accepted
## Context
[Forces at play — constraints, requirements, competing concerns. 2-4 sentences. Implementation-agnostic.]
## Decision
[The choice made. "We will use X." One clear paragraph.]
## Alternatives Considered
| Option | Why Rejected |
|--------|-------------|
| Option A | [reason] |
## Consequences
### Positive
- [benefit]
### Negative / Trade-offs
- [accepted cost]
## References
- Source plan: [docs/plans/...]
- Source spec: [docs/specs/...]
- Related ADRs: [if any]
Update (or create) docs/adr/README.md:
# Architecture Decision Records
| # | Title | Date | Status |
|---|-------|------|--------|
| [NNNN](NNNN-title.md) | Title | YYYY-MM-DD | Accepted |
Append new rows; never remove existing rows.
Offer via AskUserQuestion: "Add a reference to this ADR in the source plan/spec frontmatter?"
If yes, append to the source file's YAML frontmatter:
adr-refs:
- docs/adr/NNNN-<title>.md
Use AskUserQuestion:
"ADR written at
docs/adr/NNNN-<title>.md. What next?"
Options:
batch-issues — decompose docs/plans/<feature-name>.md into GitHub issuesstatus: Superseded and a supersedes: NNNN field added to the new ADR