Skip to content

@directededges/specs-cli v0.33.0

Choose a tag to compare

@nathanacurtis nathanacurtis released this 20 Oct 11:50
· 113 commits to main since this release

Specs is now Spectacular, and the documentation lives at spectacular.systems. Figma shipped a feature of its own called Specs, so the product takes a new name — but nothing you type changes. The command is still specs, and every package keeps its name on npm.

Editing a convention regenerates your specs, not just what was built from them. A convention change used to re-run the analysis and both platform trees against specs written under the old convention, producing a pass that looked clean and emitted from stale input. Declaring a glyphs convention no longer needs a manual specs generate to take effect. Alongside that, a chain now names the steps your workspace has nothing for and why, so three skipped steps of six read as a workspace that has not got there yet rather than a broken run.

Changed

  • The product is Spectacular; the command is still specs. Printed output and scaffolded config comments say Spectacular, and every documentation link now points at spectacular.systems. The old specsplugin.com links redirect, so nothing you have saved breaks. Package names are unchanged — @directededges/specs-cli, @directededges/specs-schema and the rest keep their names permanently, because npm has no rename

  • The bridge names the Figma plugin by role rather than by brand. "Enable the CLI Bridge in the Figma plugin to connect" reads the same whether the plugin is listed as Specs 2 or Spectacular, so the guidance stays correct while the Figma Community listing catches up

  • specs init and specs storybook init print the chain the docs teach, ending at specs run rather than at specs generate, and no longer offering a way of starting Storybook that the setup flow forbids.

  • The role-adoption skills say which page answers which question, so a first sweep reads the two that carry the judgment and fetches precedence only when a role, a states classification and an action land on the same element. The apply step now names conceptsInertInUse as the way to tell a role that could not emit from one that failed to land, and the proposal step's parts checklist covers the slider, progressbar and live-region families.

Fixed

  • Editing a convention now regenerates your specs, not just the reports and the code built from them. scan and generate did not watch config/, so a convention change re-ran the analysis and both platform trees against specs written under the old convention — a pass that looked clean and emitted from stale input. Declaring a glyphs convention needed a manual specs generate to take effect; it no longer does. A convention edit re-derives the manifest from Figma's dev status, the same as new data arriving, so settings.curation.preserveManualSelections applies to it too.

  • specs run and specs build name the steps your workspace has nothing for, and why, so a chain with three of its six steps reads as a workspace that has not got there yet rather than as a broken run: not in this workspace: storybook (no Storybook host scaffolded).

  • analyze keys records in keys.yaml whether it measured anything. Without a naming convention there is nothing to measure names against, so every name passes and zero divergence means "not checked" — indistinguishable in the file from a library that round-trips perfectly. measured and namingConvention now say which, where a reader opening the committed file will see them.

  • specs generate no longer warns that it overwrote files. Overwriting is what it does on every run after the first, and warning about the expected case taught readers to skim the warnings that matter.