@ericrisco/rsc 3.1.3 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/manifest.json +43 -69
- package/package.json +6 -1
- package/scripts/design-upstream.js +92 -0
- package/scripts/doctor.js +0 -24
- package/scripts/lib/default-skill-floor.js +5 -1
- package/scripts/lib/domains.js +2 -2
- package/scripts/lib/recommend.js +1 -3
- package/scripts/lib/retired-skills.js +7 -1
- package/skills/ai-media/SKILL.md +2 -2
- package/skills/design/IMPECCABLE-LICENSE.txt +191 -0
- package/skills/design/SKILL.md +79 -328
- package/skills/design/THIRD_PARTY.md +26 -0
- package/skills/design/engine/LICENSE +21 -0
- package/skills/design/engine/RUN.md +515 -0
- package/skills/design/engine/UPSTREAM.json +4 -0
- package/skills/design/engine/assets/app.css +216 -0
- package/skills/design/engine/assets/base.css +105 -0
- package/skills/design/engine/assets/base.js +37 -0
- package/skills/design/engine/assets/charts.js +617 -0
- package/skills/design/engine/assets/scenes/stage.css +28 -0
- package/skills/design/engine/assets/scenes/stage.js +133 -0
- package/skills/design/engine/library/app.json +1327 -0
- package/skills/design/engine/library/directions.json +1078 -0
- package/skills/design/engine/library/heroes.json +1086 -0
- package/skills/design/engine/library/motions.json +92 -0
- package/skills/design/engine/library/palettes.json +1485 -0
- package/skills/design/engine/library/photos.json +7240 -0
- package/skills/design/engine/library/sections.json +4429 -0
- package/skills/design/engine/library/sites.json +8350 -0
- package/skills/design/engine/library/type.json +2024 -0
- package/skills/design/engine/references/app-screens.md +1199 -0
- package/skills/design/engine/references/colour.md +141 -0
- package/skills/design/engine/references/copy.md +177 -0
- package/skills/design/engine/references/critique.md +182 -0
- package/skills/design/engine/references/imagery.md +791 -0
- package/skills/design/engine/references/layout.md +292 -0
- package/skills/design/engine/references/motion.md +980 -0
- package/skills/design/engine/references/research.md +356 -0
- package/skills/design/engine/references/scenes.md +174 -0
- package/skills/design/engine/references/tells.md +115 -0
- package/skills/design/engine/references/type.md +170 -0
- package/skills/design/engine/scripts/assets.mjs +865 -0
- package/skills/design/engine/scripts/draw.mjs +584 -0
- package/skills/design/engine/scripts/inspect.mjs +303 -0
- package/skills/design/engine/scripts/lib/app-draw.mjs +203 -0
- package/skills/design/engine/scripts/lib/cdp.mjs +248 -0
- package/skills/design/engine/scripts/lib/probe.mjs +909 -0
- package/skills/design/engine/scripts/lib/rules.mjs +243 -0
- package/skills/design/engine/scripts/lint.mjs +119 -0
- package/skills/design/engine/scripts/scenes.mjs +124 -0
- package/skills/design/evals/cases.yaml +35 -46
- package/skills/design/references/design-md.md +49 -0
- package/skills/design/references/finish-review.md +46 -0
- package/skills/design/references/modes.md +51 -0
- package/skills/expo/SKILL.md +3 -4
- package/skills/marketing/references/landing-copy.md +2 -2
- package/skills/react/SKILL.md +2 -2
- package/skills/react-native/SKILL.md +3 -3
- package/skills/scroll-film/SKILL.md +220 -0
- package/skills/scroll-film/assets/page-template.html +128 -0
- package/skills/scroll-film/assets/scrub-engine.js +352 -0
- package/skills/scroll-film/evals/README.md +26 -0
- package/skills/scroll-film/evals/cases.yaml +81 -0
- package/skills/scroll-film/references/chain.md +218 -0
- package/skills/scroll-film/references/engine.md +132 -0
- package/skills/scroll-film/scripts/verify.sh +158 -0
- package/skills/swift-ios/SKILL.md +1 -1
- package/skills/ui-engineering/SKILL.md +3 -4
- package/skills/ui-engineering/evals/cases.yaml +2 -2
- package/skills/variant-explorer/SKILL.md +4 -4
- package/skills/variant-explorer/evals/cases.yaml +1 -1
- package/targets/clone-bootstrap.mjs +1 -1
- package/scripts/lib/design-identity.js +0 -117
- package/scripts/lib/starting-point.js +0 -314
- package/skills/design/evals/README.md +0 -53
- package/skills/design/references/ai-tells.md +0 -75
- package/skills/design/references/brand-grounding.md +0 -197
- package/skills/design/references/copywriting-frameworks.md +0 -138
- package/skills/design/references/design-systems.md +0 -49
- package/skills/design/references/inspiration-sources.md +0 -96
- package/skills/design/references/landing-anatomy-and-cro.md +0 -202
- package/skills/design/references/motion-and-interaction.md +0 -228
- package/skills/design/references/research-method.md +0 -154
- package/skills/design/references/signature-and-craft.md +0 -148
- package/skills/design/references/starting-point.md +0 -75
- package/skills/design/references/trends-2026.md +0 -80
- package/skills/design/references/visual-system.md +0 -237
- package/skills/design/scripts/verify.sh +0 -357
- package/skills/design-dna/PROMPT.md +0 -211
- package/skills/design-dna/SKILL.md +0 -162
- package/skills/design-dna/design-dna.schema.json +0 -230
- package/skills/design-dna/evals/README.md +0 -64
- package/skills/design-dna/evals/cases.yaml +0 -68
- package/skills/design-dna/references/method.md +0 -436
- package/skills/design-dna/scripts/emit.py +0 -164
- package/skills/design-dna/templates/PROMPT.md.tmpl +0 -42
- package/skills/design-dna/templates/SKILL.md.tmpl +0 -42
- package/skills/design-dna/templates/check.py.tmpl +0 -143
- package/skills/design-loop/SKILL.md +0 -160
- package/skills/design-loop/evals/README.md +0 -56
- package/skills/design-loop/evals/cases.yaml +0 -60
- package/skills/motion-craft/SKILL.md +0 -125
- package/skills/motion-craft/evals/cases.yaml +0 -38
- package/skills/motion-craft/scripts/verify.sh +0 -75
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
# verify.sh — the never-animate list of `motion-craft`, made mechanical.
|
|
4
|
-
#
|
|
5
|
-
# The SKILL.md declares rules as binding ("never animate layout", "never
|
|
6
|
-
# `transition: all`"). A rule declared binding without a mechanism that checks it
|
|
7
|
-
# is a decorative gate: it buys the feeling of safety without the safety. So each
|
|
8
|
-
# hard rule in the skill body has a row here, and each row has a fixture in
|
|
9
|
-
# tests/motion-craft-rules.test.js that watches it FAIL and then PASS.
|
|
10
|
-
#
|
|
11
|
-
# Static and network-free. Everything WARNS by default; --strict makes findings
|
|
12
|
-
# fatal, which is what CI should use.
|
|
13
|
-
set -u
|
|
14
|
-
TARGET="${1:-.}"
|
|
15
|
-
STRICT=0
|
|
16
|
-
[ "${2:-}" = "--strict" ] && STRICT=1
|
|
17
|
-
[ "${1:-}" = "--strict" ] && { STRICT=1; TARGET="."; }
|
|
18
|
-
|
|
19
|
-
warn_count=0
|
|
20
|
-
warn() { printf ' ⚠ %s\n' "$1"; warn_count=$((warn_count + 1)); }
|
|
21
|
-
ok() { printf ' ✓ %s\n' "$1"; }
|
|
22
|
-
|
|
23
|
-
# id <TAB> grep -E pattern <TAB> message
|
|
24
|
-
# One row per hard rule in SKILL.md §"What must never animate". Adding a rule to
|
|
25
|
-
# the prose without adding it here is what the test suite refuses to allow.
|
|
26
|
-
#
|
|
27
|
-
# Fields are TAB-separated on purpose: the patterns are extended regexes and are
|
|
28
|
-
# full of `|`, so a pipe delimiter silently truncated every pattern at its first
|
|
29
|
-
# alternation and only the one rule without alternation ever fired.
|
|
30
|
-
rules() {
|
|
31
|
-
printf '%b\n' \
|
|
32
|
-
"transition-all\ttransition:[[:space:]]*all\t\`transition: all\` animates layout by accident — list the exact properties" \
|
|
33
|
-
"layout-anim\ttransition:[^;]*(width|height|top:|left:|right:|bottom:|margin|padding)\tanimating layout properties forces reflow every frame — use transform and opacity" \
|
|
34
|
-
"linear-move\t(transition|animation):[^;]*(transform|translate|scale)[^;]*linear\tlinear easing on positional movement reads as mechanical — nothing physical starts at full speed" \
|
|
35
|
-
"long-duration\t(transition|animation):[^;]*[^0-9]([5-9][0-9][0-9]|[0-9][0-9][0-9][0-9])ms\tover 400ms stops being a transition and becomes a wait"
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
files=$(find "$TARGET" \( -name node_modules -o -name .git -o -name dist -o -name build -o -name .next \) -prune -o \
|
|
39
|
-
\( -name '*.css' -o -name '*.scss' -o -name '*.tsx' -o -name '*.jsx' -o -name '*.ts' -o -name '*.js' -o -name '*.vue' -o -name '*.svelte' \) -print 2>/dev/null)
|
|
40
|
-
|
|
41
|
-
echo "motion-craft — never-animate checks"
|
|
42
|
-
if [ -z "$files" ]; then
|
|
43
|
-
echo " (no style or component files found under $TARGET)"
|
|
44
|
-
exit 0
|
|
45
|
-
fi
|
|
46
|
-
|
|
47
|
-
while IFS=$'\t' read -r id pattern message; do
|
|
48
|
-
[ -z "$id" ] && continue
|
|
49
|
-
hits=$(printf '%s\n' "$files" | xargs grep -lEi -- "$pattern" 2>/dev/null | head -5)
|
|
50
|
-
if [ -n "$hits" ]; then
|
|
51
|
-
warn "$id: $message"
|
|
52
|
-
printf ' %s\n' $hits
|
|
53
|
-
else
|
|
54
|
-
ok "$id"
|
|
55
|
-
fi
|
|
56
|
-
done <<< "$(rules)"
|
|
57
|
-
|
|
58
|
-
# reduced-motion is a finishing condition, not an edge case: if anything animates
|
|
59
|
-
# at all, the project must say what it does for people who asked for less motion.
|
|
60
|
-
if printf '%s\n' "$files" | xargs grep -lEi -- '(transition|animation|@keyframes)' >/dev/null 2>&1; then
|
|
61
|
-
if printf '%s\n' "$files" | xargs grep -lEi -- 'prefers-reduced-motion' >/dev/null 2>&1; then
|
|
62
|
-
ok "reduced-motion: honoured somewhere"
|
|
63
|
-
else
|
|
64
|
-
warn "reduced-motion: this project animates and never mentions prefers-reduced-motion — unchecked means unfinished"
|
|
65
|
-
fi
|
|
66
|
-
fi
|
|
67
|
-
|
|
68
|
-
echo
|
|
69
|
-
if [ "$warn_count" -gt 0 ]; then
|
|
70
|
-
echo "$warn_count finding(s)."
|
|
71
|
-
[ "$STRICT" -eq 1 ] && exit 1
|
|
72
|
-
else
|
|
73
|
-
echo "No findings."
|
|
74
|
-
fi
|
|
75
|
-
exit 0
|