feat(skills): anchored-connector rule + source-traceable visuals doctrine (#3354)

* feat(skills): anchored-connector rule + source-traceable visuals doctrine

Two advisory rules absorbed from a community-skill comparison study
(4-cell sandbox replay vs geekjourneyx/hyperframes-motion-director;
ideas only — no upstream text, the repo is AGPL-3.0):

- Connector lines earn their place: any beam/rail/scan/underline must
  name both anchors and its job (reveal/route/validate) or be cut.
  Lands in motion-principles (composition) + svg-path-draw (constraints).
- Visuals point back to the source: when a video derives from concrete
  material, each frame's key visual should trace to a specific source
  line — real filenames/numbers over stock props. Lands as story-spine
  rule 4; the four SKILL.md index lines that enumerate story-spine's
  rules are synced.

Both are self-checks, not hard gates. lint:skills + skill-mirror green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(skills): regen stale manifest + add emphasize to connector job list

Review 4975048154 follow-ups:
- skills-manifest.json was hashed mid-commit before oxfmt renormalized
  the four SKILL.md tables (lefthook pre-commit runs format and
  skills-manifest in parallel — they raced). Regenerated at head;
  second regen is a no-op.
- The connector rule's job list read literally would cut lines this
  same doctrine prescribes (dividers, hairlines, underline_sweep):
  emphasis was a missing job, not a forbidden one. Added 'emphasize'
  to both motion-principles and svg-path-draw.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
WaterrrForever
2026-08-20 14:21:31 +08:00
committed by GitHub
co-authored by Claude Fable 5
parent f0e637375f
commit a6a9e2f89e
8 changed files with 88 additions and 80 deletions
@@ -115,6 +115,7 @@ Ease families are discrete choices: **stroke draws** use `power2.out` (a hand li
- **Dasharray/dashoffset = the measured `getTotalLength()`**, set at setup; requires the SVG in the DOM (inline SVG is fine; a loaded `<image>` SVG is not).
- **Complex paths**: if `getTotalLength()` looks wrong, overestimate slightly (`len * 1.05`) — too large is invisible at animation start; too small clips the end.
- **Stagger multi-path draws at ~7080%** of the previous segment's duration.
- **A drawn line must land on something.** When the path is a connector (rail, beam, underline, callout) rather than a shape, both endpoints must sit on real elements and the draw must do a job — reveal, route, validate, or emphasize. A stroke that only decorates empty space reads as filler; attach it or cut it.
## See also