new-mixinlisted
Install: claude install-skill selfishprimate/gerillass
# Add a member to the Gerillass library
Eight steps. Two of them fail loudly if you skip them: the manifest suite checks
that a new mixin has metadata and a smoke-test call. The others fail silently,
which is worse. Do all of them, and step 7 in particular: it is a rule in
`CLAUDE.md`, not a suggestion.
## 1. Pick the layer
| Adding | Folder | Naming |
|---|---|---|
| public mixin | `scss/library/` | `kebab-case` |
| helper function | `scss/utilities/` | `camelCase` |
| value list | `scss/lists/` | `$list-of-…`, with `!default` |
| keyed config | `scss/maps/` | `$map-for-…`, with `!default` |
One member per file, and **the filename must match the member name** —
`_border-radius.scss` holds `@mixin border-radius`. This holds for all 56
existing mixins and 23 utilities; do not be the exception.
## 2. Write the file
Start every file with `@charset "UTF-8";`, then a blank line. Two-space indent,
double quotes.
```scss
@charset "UTF-8";
@mixin your-mixin($required, $optional: null) {
// ...
}
```
Declare what the file uses, right after the `@charset` line — see step 4. This
reversed in 2.0.0: library partials used to be forbidden from carrying a `@use`
rule, because a Gulp task concatenated them into one bundle and a `@use` landing
mid-file made Sass reject the whole thing. That generator is gone.
Validate arguments and fail loudly. 48 of the 49 mixins that take arguments do
this, and the message should name what is acceptable:
```scss
@error "The argument must be one