Skip to content

skill: make migrate-design-prototype Atlas-first - #37

Merged
ako merged 1 commit into
mainfrom
docs/migrate-skill-atlas-first
Jul 26, 2026
Merged

skill: make migrate-design-prototype Atlas-first#37
ako merged 1 commit into
mainfrom
docs/migrate-skill-atlas-first

Conversation

@ako

@ako ako commented Jul 26, 2026

Copy link
Copy Markdown
Owner

The migrate-design-prototype skill was custom-SCSS-first: it had you hand-write .ss-* component classes for cards/panels/buttons and demoted design properties to a one-line "if you use it" aside — the exact "reinvent what Atlas gives you for free" pattern atlas-design.md is written to prevent. The two skills also didn't reference each other.

This reframes the migration skill Atlas-first without dropping the (legitimate) custom-SCSS identity layer:

  • Links atlas-design.md as the first related skill ("read first").
  • Atlas-first principle after the golden rule — an explicit preference order: building block → Atlas classes / typed designproperties: (spacing-*, flex-*/align-*, ['Card style': on], ['Background color': 'Brand Primary']) → brand-token retune → custom .ss-* SCSS for identity only (layer 4).
  • Step ② now leads with "check for an Atlas block/class first"; the hand-rolled class is the fallback for shapes Atlas can't express.
  • Widget map: card → Atlas Card / class:'card'; simple row/column → flex utilities (no layoutgrid); layoutgrid/display:grid reserved for real multi-column/fractional layouts.
  • Design-property gotcha upgraded from an aside to a recommendation, noting mxcli check -p validates keys/values (MDL-WIDGET11/12 — see the typed-design-properties PR).

Docs only. scripts/check-skill-mdl.sh passes (179 blocks checked).

🤖 Generated with Claude Code


Generated by Claude Code

@ako
ako force-pushed the docs/migrate-skill-atlas-first branch from b7f91ea to 3c333c7 Compare July 26, 2026 04:43
The migration skill was custom-SCSS-first — it had you hand-write .ss-*
component classes for cards/panels/buttons and demoted design properties to
a one-line aside, the exact "reinvent what Atlas gives you for free" pattern
atlas-design.md is written to prevent. The two skills also didn't link.

Reframe it Atlas-first without dropping the (valid) custom-SCSS identity
layer:
- Link atlas-design.md as the first related skill ("read first").
- Add an Atlas-first principle after the golden rule: prefer building blocks
  → Atlas classes / typed designproperties (spacing-*, flex-*/align-*,
  'Card style': on, …) → brand-token retune → custom .ss-* SCSS for identity
  only (layer 4).
- Step ② now leads with "check for an Atlas block/class first"; custom class
  is the fallback for shapes Atlas can't express.
- Widget map: card → Atlas Card / class:'card'; simple row/column → flex
  utilities (no layoutgrid); layoutgrid/display:grid reserved for real
  multi-column/fractional layouts.
- Design-property gotcha upgraded from "if you use it" to a recommendation,
  noting mxcli check -p validates keys/values (MDL-WIDGET11/12).

Docs only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
@ako
ako force-pushed the docs/migrate-skill-atlas-first branch from 3c333c7 to 41aa3a8 Compare July 26, 2026 05:00
@ako
ako merged commit a57da40 into main Jul 26, 2026
2 of 3 checks passed
ako pushed a commit that referenced this pull request Jul 29, 2026
- #37: write-oql-queries.md RULE 2 said "NEVER use ORDER BY or LIMIT in a view",
  but mxcli's MDL030 *requires* ORDER BY to be paired with a LIMIT (ORDER BY alone
  → CE0174; ORDER BY + LIMIT builds clean). Reworded RULE 2 + the Mistake 8,
  Step 9, and checklist entries to match the tool, and documented UNION/UNION ALL
  as a supported construct (it worked end-to-end but was undocumented).
- #32: MDL001 (nested-loop) reworded — it now distinguishes a key LOOKUP (use
  FIND) from intentional aggregation that must visit every element (correct as
  written), so it stops reading as "your loop is wrong" on report pivots.
- #31: documented that a variable first created inside an if/else arm (including
  by `$Var = call ...`) is scoped to that arm — declare before, assign in each.
- #34: run-local.md notes the Dart Sass `rgba()` comma-list trap (a theme compile
  error fails the build step pre-runtime).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants