Tags: let-sunny/canicode
Tags
chore: release v0.11.0 (#419) Highlights since 0.10.5: - feat(rules): info-collection rule subtype (#410) - feat(analysis): detect analysis scope (page vs component) (#411) - feat(rules): missing-size-constraint scope-aware info-collection redesign (#403/#412) - feat(contracts): separate rule-score and gotcha-annotation channels (#409) - feat(cursor): bundle skills + canicode init --cursor-skills (#407/#416) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(rule): tighten missing-interaction-state probe gate for variant-p… …osition masters (#397) (#398) Live walkthrough on Simple Design System (Community) node 3266-8701 surfaced 6 false-positive `missing-interaction-state` violations on Input Field, Textarea Field, Button Group, and Button — all components whose source DOES carry the flagged variant (Hover, Disabled, Focus). Verified by raw fixture dump. Root cause: `canDetermineVariants` returned true as soon as `defs[componentId]` existed, even when the fetched master had `componentPropertyDefinitions: null` and a name in the variant-position pattern (e.g. `State=Default, Value Type=Placeholder`). The variant axes for these masters live on the parent COMPONENT_SET which the loader does not fetch — the rule was asserting a missing variant from absence of evidence (same false-positive class as #354). Fix: tighten the gate. Treat the master as undeterminable when both: - `componentPropertyDefinitions` is null/undefined (no positive evidence), AND - the master name matches `Word=Word(, Word=Word)*` (clearly a variant position whose axes live on the SET parent we did not fetch). `{}` (vs null) is preserved as positive evidence — empty propDefs IS the API saying "fetched, demonstrably no axes" so the rule still fires there. Also bumps version to 0.10.5 and adds .pnpm-store/ to .gitignore. Tests: +4 covering the two live-fixture shapes plus the empty-propDefs positive-evidence regression guard. Verified end-to-end: re-analyze on the same fixture after the fix surfaces 0 missing-interaction-state violations where v0.10.4 surfaced 6. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore(release): v0.10.4 (#396) 14 commits since v0.10.3 — bug fixes from live walkthrough on Simple Design System (Community), gotcha-survey UX features, and ADR-016 codification of the SKILL.md determinism rule. Bug fixes (v0.10.3 walkthrough): - #363 probeDefinitionWritability walks up to containing COMPONENT for .remote - #374 missing-size-constraint targetProperty returns both bounds - #373 instance-child sibling dedupe routed to source-component dedupe - #372 inconsistent-naming suppressed when rename is a no-op - #365 MCP analyze tool no longer auto-opens browser (opt-in) - #366/#364/#367 README install: long-form npx flags, drop -e FIGMA_TOKEN, pick-one matrix Features: - #368/#369/#370 group + batch survey questions; Strategy B instance-child guard - #371 re-analyze recognises canicode annotations as acknowledgments (half-weight density) ADR-016 (deterministic logic in SKILL.md must live in TS) codification: - #383 computeRoundtripTally - #384 canonical computeDesignKey - #385 upsert-gotcha-section helper + CLI subcommand - #386 applyAutoFix Strategy D loop - #388 ADR-016 codified - #389 grep CI gate (scripts/check-skill-determinism) - #390 PR template checklist + monthly audit reminder workflow Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore(release): v0.10.3 (#362) * chore(release): v0.10.3 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: align package + README copy with roundtrip direction - package.json description: drop "Score your Figma designs" framing, use "Lint Figma designs for AI code-gen and roundtrip the answers back into the file" matching the post-roundtrip identity. - README Step 4: re-analyze checks gotchas were addressed; grade movement is a side-effect (matches #341/#352 wrap-up rubric). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore(release): v0.10.2 (#351) Patch release bundling the v0.10.1 regression follow-up: - #349 / #350 — `canicode init` output now lists the prereqs that come next (Install Figma MCP if missing, Restart Claude Code, Run /canicode-roundtrip) instead of a single ambiguous "Next: canicode analyze" hint. Detects an existing `.mcp.json` Figma entry and skips the install step when it is already present, so the same command prints a 2-step or 3-step checklist depending on environment. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore(release): v0.10.1 (#348) Patch release bundling four onboarding-test follow-ups (#332): - #338 README install line shows `npx canicode init` (was `canicode init`) - #339 Roundtrip Step 0 prechecks Figma MCP availability before burn-in - #340 / ADR-015 gotcha SKILL.md uses workflow-on-top + accumulating per-design sections (no more overwrite) - #341 Step 5 reports issues delta (X resolved / Y annotated / Z remaining), gated on V==0 instead of grade Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore(release): v0.10.0 + wire CLI_INIT telemetry (#337) * feat(telemetry): wire CLI_INIT event in init command The CLI_INIT event name was added in #305 but never emitted from init.ts, so init usage shipped invisible to the dashboards. Surfaced during the #333 J telemetry audit. Properties capture init-flow shape without PII: whether the user opted into skill install, the install target (project vs global), the --force flag, the per-summary counts, and whether the skill step succeeded. No token, no path, no file content. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(release): v0.10.0 Cuts the next public release. Notable changes since v0.9.1: - ADR-012 (#304/#307): annotate-by-default for definition writes; allowDefinitionWrite opt-in - ADR-013 (#313/#314): scope boundary — code generation handed to figma-implement-design; canicode prompt CLI removed - ADR-014 (#319/#321): Claude Code skills bundled in npm and installed via canicode init - canicode-roundtrip orchestration skill (#280, #283, #289, #292) - README repositioned roundtrip-first (#331) - ONBOARDING-TEST.md walkthrough script (#329) - Pre-launch fixes from #333: docs help text (#334), CLI/MCP topic alignment (#335), CLI_INIT telemetry wiring Pushing the v0.10.0 tag triggers GitHub Actions npm publish. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore: bump version to 0.9.1, add README.md to files field (#235) npm web UI was not rendering README due to missing readme field in version metadata. Explicitly include README.md in files array. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>