changelog
Changelog
All notable changes to @aquaring/aqua-cli are documented here. The format
follows Keep a Changelog, and the project
adheres to Semantic Versioning.
[0.5.1] — 2026-07-16
Changed
- Renamed the CLI and package — command
cpdk→aqua-cli; package@aquaringlab/cpdk→@aquaring/aqua-cli; home repo →aquaring/aqua-ai-develop-kit. This is a clean break: every on-disk artifact was renamed (.cpdk.json→.aqua-cli.json, theCLAUDE.mdmarkers<!-- cpdk:start/end -->→<!-- aqua-cli:start/end -->, the.gitignorecomment, and the shell-completion markers/functions). Projects initialized with the oldcpdkare not migrated — run the oldcpdk uninstall, thenaqua-cli init. - Setup docs now install the CLI with
npm install -g @aquaring/aqua-clifollowed byaqua-cli init, instead ofnpx @aquaring/aqua-cli init.
Fixed
- Generated manifest excludes
.DS_Store.
[0.5.0] — 2026-07-16
Added
cpdk updatestaleness warning —updateonly re-applies the payload bundled in the installed CLI, so a stale global install silently kept re-applying an old kit. Before the confirm prompt,updatenow queries the registry for the latest version (npm view, reusing the user's~/.npmrcauth) and, when newer, prints thenpm install -g @aquaringlab/cpdk@latestupgrade hint. Best-effort: offline / unauthenticated / timeout skip the check silently.
Changed
- Skills restructured from flat files to directory format
(
.claude/skills/<name>/SKILL.md) so they can carry supporting files.
[0.4.0] — 2026-07-16
Added
/make-releaseskill (.claude/skills/make-release.md) — the release procedure as an invocable skill: bump inference from Conventional Commits, the local gate, version/changelog/tag choreography, and the GitHub-Packages-via-tag-push publishing model./update-docsskill (.claude/skills/update-docs.md) — keepsREADME.md, the Docusaurus site underwebsite/, andCHANGELOG.mdin sync with code changes: a change→docs mapping table, thesidebars.tsregistration rule, and a mandatory site build before reporting done.
[0.3.0] — 2026-07-15
Added
.claude/agents/html-spec-builder.md— agent-driven spec generation as the PRIMARY WORKFLOW-CORE §2 path: one agent per unit authorsspec.htmldirectly from the Figma MCP data tools (get_design_context+get_metadata) under embedded fidelity rules (values only from data, load-bearing structure preserved, position from coordinates, exporter-trap reversal — e.g. stalegapnext tojustify-betweendeleted). Emits the same spec.html contract the transpiler did (dual[data-breakpoint]subtrees,data-design-width/height,data-node-id/data-name/data-component, CAVEATS header). Gate fix rounds re-dispatch the builder with the gate JSON; trust anchors are unchanged (spec-gate.mjs+ user approval — seedocs/superpowers/specs/2026-07-15-agent-spec-builder-design.md).scripts/figma-asset.mjs— host-validated single-asset downloader from the desktop MCP asset server (the builder's asset path).scripts/spec-batch.mjs— one-command Phase-5 spec batch, now in three modes:--prepare(reference exports only, before the builder wave),--gate(spec-gate existing specs vs the prepared refs),--transpile(the legacy fullfigma-html.mjssequence, kept as the fallback path). Writes a per-unit summary (figma-refs/<N>/spec-batch.json). Skips units already user-approved / implemented / verified unless--force.scripts/page-parity.mjs— one-pass Phase-6 assembly parity: the unit-parity check for every section of the assembled page in a single browser session, from a units JSON (selector +.gaterefs per section).scripts/content-parity.mjs— deterministic DOM-content diff of a built section vs its approved spec.html per breakpoint: missing/altered text lines (line breaks included), dropped repeated items,<img>count deltas — the #662-rebuild defect classes SSIM localizes but doesn't name. Runs besideunit-parity.mjsin the CORE §7 default path;manifest-update.mjsnow also requires its verdict (contentParity, MISMATCH needs acontentWaiver) beforeset-status implemented.scripts/lib/band-elements.mjs— flagged diff bands are now mapped to the DOM elements occupying them (flaggedBandElementsin the gate JSON ofspec-gate.mjs/unit-parity.mjs/page-parity.mjs): per band, thedata-node-id/data-name/class elements intersecting its y-range. A locator for the correction loop — the corrector gets "band 7 =.eventsList(node 5029:7231)" instead of a bare band index + heatmap.
Changed
- Spec generation trust root revised (WORKFLOW-CORE §2, WORKFLOW-PAGE
Phase 5): the
html-spec-builderagent is the primary generator;figma-html.mjs+html-spec-correctornarrow to the documented fallback path (the corrector never touches agent-built specs — their fix rounds re-consult Figma data via the builder).scripts/hooks/gate-html-spec.shdeny message updated; hook logic unchanged. Breaking: a barespec-batch.mjsinvocation (no mode flag) now exits 2 — use--transpilefor the old behavior;spec-batch.jsonrows recorduntranspiledas a single number instead of{pc, sp}. scripts/manifest-update.mjs—set-status <unit> implementedis now evidence-gated likeverified: it refuses unless the unit's-verify.jsonrecords the CORE §7 machine-parity run (unitParity, or aparityWaiver≥30 chars for a waived BLANK/STRUCTURAL; legacy tool records and<unitId>-css.mdunits pass). Closes the hole the #662 rebuild shipped through (8 sections at SSIM 0.20–0.86, zero parity records).scripts/lib/figma-mcp.mjs— transient MCP failures (network error, 429, 5xx) now retry with backoff (1 s / 4 s) before the hard exit.scripts/figma-html.mjs— spec asset downloads run 4-wide instead of serial.WORKFLOW-PAGE.md— Phase 5 spec batch and Phase 6 machine parity now point at the batch scripts; new Pace budgets section (≤1 h agent-time target per page, per-phase targets, fidelity-outranks-pace rule); parallel-first build default — once the spec batch is approved, all fan-out-eligible (page-local) sections dispatch as one subagent wave; inline is the fallback, and the shared-code serialization / serial-verify rules are unchanged.WORKFLOW-CORE.md— §7: SOFT parity verdicts require per-band attribution (unattributed SOFT = STRUCTURAL) and the recordedglobal_ssim ≥ 0.95bar; §8: gate output must be verifiably real tool output (rtk proxy/direct binary re-run on suspicion — the #655 faked-gate incident).
Fixed
- Payload hygiene:
.claude/settings.local.json(user-local permissions) andscripts/__pycache__/(Python bytecode) are now excluded from the copy payload /.cpdk.map.json(they were gitignored but visible to disk walks).
[0.2.0] — 2026-07-11
Added
RULES.md— the project rulebook, extracted fromCLAUDE.md, now shipped alongside theWORKFLOW-*.mdplaybooks and injected into every session via a newscripts/hooks/inject-rules.shSessionStart hook./create-issuecommand — authors component/page issues from the live template..cpdk.map.json— a generated, full listing of every file cpdk ships (directories expanded to individual files), for auditing the scaffold surface without readingsrc/payload.ts. Regenerate withnpm run map(scripts/dev/generate-cpdk-map.mjs, dev-only, excluded from the shipped payload).
Changed
CLAUDE.mdtrimmed to just the Behavioral Guidelines; project-specific doctrine now lives inRULES.md.- Workflow docs: flag PC/SP display divergence as a designer question
(critical rule 6), Phase 6.5 link-URL assignment from
site-map.json(client §10), one-commit-per-session squash policy + pre-commit image cleanup.
[0.1.0] — 2026-07-10
Initial release. Everything below is the first cut of the tool.
Added
cpdk init [--force]— installs the workflow kit into the current project: copies.claude/,scripts/,development-docs/,PROMPT.md, and theWORKFLOW-*.mdplaybooks, runs the file merges, and writes the.cpdk.jsonmanifest.--forceoverwrites existing files and skips the re-init prompt (without it, existing paths are left untouched).cpdk update— re-copies the payload and re-applies every merge idempotently, then bumpscliVersion/installedAtin the manifest.cpdk uninstall [--force]— reverts exactly what was installed, using the manifest: removes copied paths, strips theCLAUDE.mdblock, drops cpdk-added.mcp.jsonservers, removes the placeholder.env.localkey, removes the.gitignoreentry it added, and deletes.cpdk.jsonlast.cpdk completion [shell]— outputs abashorzshcompletion script (shell auto-detected from$SHELLwhen omitted); completes the subcommands and the--forceflag. No runtime dependencies.- Four reversible, idempotent merge engines:
CLAUDE.md— appends the shipped content inside a<!-- cpdk:start -->…<!-- cpdk:end -->marker block; replaces in place on update, never double-appends..mcp.json— mergesmcpServersand tracks the keys it added; uninstall removes only those, and a user's same-named server is preserved..env.local— appendsFIGMA_API_TOKENonly when absent; uninstall removes the line only if the value is still thefigd_replace_meplaceholder, so a real token is never destroyed..gitignore— ensures.env.localis ignored (creates the file if absent), keeping the Figma token out of git; uninstall removes only the entry it added and deletes the file only if it created it and nothing else remains.
.cpdk.jsonmanifest — records the installed version, copied paths, and the exact merge additions, makingupdateanduninstallprecise.- Docusaurus documentation site (
website/) — Intro, Setup, CLI Usage, What gets installed, Using the workflows, Internals, and this changelog.
Notes
- Payload documentation ships under
development-docs/(renamed fromdocs/during development to avoid clashing with the dev-onlydocs/superpowers/artifacts, which are never published). - Single-target by design: Claude Code only, installed as one cohesive kit (no per-component pick-list).