@etus/seven-skill 0.1.0-beta.3 → 0.1.0-beta.4
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/.agents/skills/seven/SKILL.md +161 -0
- package/.agents/skills/seven/agents/seven_asset_producer.toml +37 -0
- package/.agents/skills/seven/agents/seven_finish_reviewer.toml +33 -0
- package/.agents/skills/seven/agents/seven_manual_edit_applier.toml +43 -0
- package/.agents/skills/seven/reference/adapt.md +34 -0
- package/.agents/skills/seven/reference/animate.md +31 -0
- package/.agents/skills/seven/reference/app-shell.md +152 -0
- package/.agents/skills/seven/reference/audit.md +122 -0
- package/.agents/skills/seven/reference/bolder.md +34 -0
- package/.agents/skills/seven/reference/brand.md +31 -0
- package/.agents/skills/seven/reference/clarify.md +76 -0
- package/.agents/skills/seven/reference/color-and-contrast.md +84 -0
- package/.agents/skills/seven/reference/colorize.md +31 -0
- package/.agents/skills/seven/reference/critique.md +53 -0
- package/.agents/skills/seven/reference/delight.md +30 -0
- package/.agents/skills/seven/reference/distill.md +30 -0
- package/.agents/skills/seven/reference/doctor.md +7 -0
- package/.agents/skills/seven/reference/document.md +36 -0
- package/.agents/skills/seven/reference/evaluations.md +38 -0
- package/.agents/skills/seven/reference/exceptions.md +7 -0
- package/.agents/skills/seven/reference/extract.md +42 -0
- package/.agents/skills/seven/reference/harden.md +36 -0
- package/.agents/skills/seven/reference/hooks.md +11 -0
- package/.agents/skills/seven/reference/init.md +38 -0
- package/.agents/skills/seven/reference/layout.md +33 -0
- package/.agents/skills/seven/reference/live.md +106 -0
- package/.agents/skills/seven/reference/motion-design.md +71 -0
- package/.agents/skills/seven/reference/onboard.md +35 -0
- package/.agents/skills/seven/reference/optimize.md +34 -0
- package/.agents/skills/seven/reference/overdrive.md +32 -0
- package/.agents/skills/seven/reference/polish.md +55 -0
- package/.agents/skills/seven/reference/product.md +43 -0
- package/.agents/skills/seven/reference/quieter.md +31 -0
- package/.agents/skills/seven/reference/routing.md +28 -0
- package/.agents/skills/seven/reference/shape.md +85 -0
- package/.agents/skills/seven/reference/spatial-design.md +60 -0
- package/.agents/skills/seven/reference/typeset.md +28 -0
- package/.agents/skills/seven/reference/typography.md +43 -0
- package/.agents/skills/seven/reference/ux-writing.md +47 -0
- package/.agents/skills/seven/reference/visual-probes.md +36 -0
- package/.agents/skills/seven/scripts/context-signals.mjs +94 -0
- package/.agents/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.agents/skills/seven/scripts/load-context.mjs +93 -0
- package/.agents/skills/seven/scripts/update-check.mjs +120 -0
- package/.claude/agents/seven-asset-producer.md +40 -0
- package/.claude/agents/seven-finish-reviewer.md +36 -0
- package/.claude/agents/seven-manual-edit-applier.md +46 -0
- package/.claude/skills/seven/SKILL.md +127 -130
- package/.claude/skills/seven/reference/adapt.md +34 -0
- package/.claude/skills/seven/reference/animate.md +31 -0
- package/.claude/skills/seven/reference/app-shell.md +100 -18
- package/.claude/skills/seven/reference/audit.md +6 -4
- package/.claude/skills/seven/reference/bolder.md +34 -0
- package/.claude/skills/seven/reference/brand.md +21 -14
- package/.claude/skills/seven/reference/clarify.md +2 -2
- package/.claude/skills/seven/reference/colorize.md +31 -0
- package/.claude/skills/seven/reference/critique.md +53 -0
- package/.claude/skills/seven/reference/delight.md +30 -0
- package/.claude/skills/seven/reference/distill.md +30 -0
- package/.claude/skills/seven/reference/doctor.md +7 -0
- package/.claude/skills/seven/reference/document.md +36 -0
- package/.claude/skills/seven/reference/evaluations.md +38 -0
- package/.claude/skills/seven/reference/exceptions.md +7 -0
- package/.claude/skills/seven/reference/extract.md +42 -0
- package/.claude/skills/seven/reference/harden.md +36 -0
- package/.claude/skills/seven/reference/hooks.md +11 -0
- package/.claude/skills/seven/reference/init.md +38 -0
- package/.claude/skills/seven/reference/layout.md +33 -0
- package/.claude/skills/seven/reference/live.md +106 -0
- package/.claude/skills/seven/reference/motion-design.md +1 -1
- package/.claude/skills/seven/reference/onboard.md +35 -0
- package/.claude/skills/seven/reference/optimize.md +34 -0
- package/.claude/skills/seven/reference/overdrive.md +32 -0
- package/.claude/skills/seven/reference/polish.md +5 -5
- package/.claude/skills/seven/reference/product.md +2 -4
- package/.claude/skills/seven/reference/quieter.md +31 -0
- package/.claude/skills/seven/reference/routing.md +28 -0
- package/.claude/skills/seven/reference/shape.md +5 -5
- package/.claude/skills/seven/reference/spatial-design.md +3 -3
- package/.claude/skills/seven/reference/typeset.md +28 -0
- package/.claude/skills/seven/reference/typography.md +1 -1
- package/.claude/skills/seven/reference/visual-probes.md +36 -0
- package/.claude/skills/seven/scripts/context-signals.mjs +94 -0
- package/.claude/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.claude/skills/seven/scripts/load-context.mjs +68 -59
- package/.claude/skills/seven/scripts/update-check.mjs +120 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +8 -3
- package/.cursor/skills/seven/SKILL.md +161 -0
- package/.cursor/skills/seven/reference/adapt.md +34 -0
- package/.cursor/skills/seven/reference/animate.md +31 -0
- package/.cursor/skills/seven/reference/app-shell.md +152 -0
- package/.cursor/skills/seven/reference/audit.md +122 -0
- package/.cursor/skills/seven/reference/bolder.md +34 -0
- package/.cursor/skills/seven/reference/brand.md +31 -0
- package/.cursor/skills/seven/reference/clarify.md +76 -0
- package/.cursor/skills/seven/reference/color-and-contrast.md +84 -0
- package/.cursor/skills/seven/reference/colorize.md +31 -0
- package/.cursor/skills/seven/reference/critique.md +53 -0
- package/.cursor/skills/seven/reference/delight.md +30 -0
- package/.cursor/skills/seven/reference/distill.md +30 -0
- package/.cursor/skills/seven/reference/doctor.md +7 -0
- package/.cursor/skills/seven/reference/document.md +36 -0
- package/.cursor/skills/seven/reference/evaluations.md +38 -0
- package/.cursor/skills/seven/reference/exceptions.md +7 -0
- package/.cursor/skills/seven/reference/extract.md +42 -0
- package/.cursor/skills/seven/reference/harden.md +36 -0
- package/.cursor/skills/seven/reference/hooks.md +11 -0
- package/.cursor/skills/seven/reference/init.md +38 -0
- package/.cursor/skills/seven/reference/layout.md +33 -0
- package/.cursor/skills/seven/reference/live.md +106 -0
- package/.cursor/skills/seven/reference/motion-design.md +71 -0
- package/.cursor/skills/seven/reference/onboard.md +35 -0
- package/.cursor/skills/seven/reference/optimize.md +34 -0
- package/.cursor/skills/seven/reference/overdrive.md +32 -0
- package/.cursor/skills/seven/reference/polish.md +55 -0
- package/.cursor/skills/seven/reference/product.md +43 -0
- package/.cursor/skills/seven/reference/quieter.md +31 -0
- package/.cursor/skills/seven/reference/routing.md +28 -0
- package/.cursor/skills/seven/reference/shape.md +85 -0
- package/.cursor/skills/seven/reference/spatial-design.md +60 -0
- package/.cursor/skills/seven/reference/typeset.md +28 -0
- package/.cursor/skills/seven/reference/typography.md +43 -0
- package/.cursor/skills/seven/reference/ux-writing.md +47 -0
- package/.cursor/skills/seven/reference/visual-probes.md +36 -0
- package/.cursor/skills/seven/scripts/context-signals.mjs +94 -0
- package/.cursor/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.cursor/skills/seven/scripts/load-context.mjs +93 -0
- package/.cursor/skills/seven/scripts/update-check.mjs +120 -0
- package/.gemini/skills/seven/SKILL.md +160 -0
- package/.gemini/skills/seven/reference/adapt.md +34 -0
- package/.gemini/skills/seven/reference/animate.md +31 -0
- package/.gemini/skills/seven/reference/app-shell.md +152 -0
- package/.gemini/skills/seven/reference/audit.md +122 -0
- package/.gemini/skills/seven/reference/bolder.md +34 -0
- package/.gemini/skills/seven/reference/brand.md +31 -0
- package/.gemini/skills/seven/reference/clarify.md +76 -0
- package/.gemini/skills/seven/reference/color-and-contrast.md +84 -0
- package/.gemini/skills/seven/reference/colorize.md +31 -0
- package/.gemini/skills/seven/reference/critique.md +53 -0
- package/.gemini/skills/seven/reference/delight.md +30 -0
- package/.gemini/skills/seven/reference/distill.md +30 -0
- package/.gemini/skills/seven/reference/doctor.md +7 -0
- package/.gemini/skills/seven/reference/document.md +36 -0
- package/.gemini/skills/seven/reference/evaluations.md +38 -0
- package/.gemini/skills/seven/reference/exceptions.md +7 -0
- package/.gemini/skills/seven/reference/extract.md +42 -0
- package/.gemini/skills/seven/reference/harden.md +36 -0
- package/.gemini/skills/seven/reference/hooks.md +11 -0
- package/.gemini/skills/seven/reference/init.md +38 -0
- package/.gemini/skills/seven/reference/layout.md +33 -0
- package/.gemini/skills/seven/reference/live.md +106 -0
- package/.gemini/skills/seven/reference/motion-design.md +71 -0
- package/.gemini/skills/seven/reference/onboard.md +35 -0
- package/.gemini/skills/seven/reference/optimize.md +34 -0
- package/.gemini/skills/seven/reference/overdrive.md +32 -0
- package/.gemini/skills/seven/reference/polish.md +55 -0
- package/.gemini/skills/seven/reference/product.md +43 -0
- package/.gemini/skills/seven/reference/quieter.md +31 -0
- package/.gemini/skills/seven/reference/routing.md +28 -0
- package/.gemini/skills/seven/reference/shape.md +85 -0
- package/.gemini/skills/seven/reference/spatial-design.md +60 -0
- package/.gemini/skills/seven/reference/typeset.md +28 -0
- package/.gemini/skills/seven/reference/typography.md +43 -0
- package/.gemini/skills/seven/reference/ux-writing.md +47 -0
- package/.gemini/skills/seven/reference/visual-probes.md +36 -0
- package/.gemini/skills/seven/scripts/context-signals.mjs +94 -0
- package/.gemini/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.gemini/skills/seven/scripts/load-context.mjs +93 -0
- package/.gemini/skills/seven/scripts/update-check.mjs +120 -0
- package/.grok/agents/seven-asset-producer.md +40 -0
- package/.grok/agents/seven-finish-reviewer.md +36 -0
- package/.grok/agents/seven-manual-edit-applier.md +46 -0
- package/.grok/skills/seven/SKILL.md +167 -0
- package/.grok/skills/seven/reference/adapt.md +34 -0
- package/.grok/skills/seven/reference/animate.md +31 -0
- package/.grok/skills/seven/reference/app-shell.md +152 -0
- package/.grok/skills/seven/reference/audit.md +122 -0
- package/.grok/skills/seven/reference/bolder.md +34 -0
- package/.grok/skills/seven/reference/brand.md +31 -0
- package/.grok/skills/seven/reference/clarify.md +76 -0
- package/.grok/skills/seven/reference/color-and-contrast.md +84 -0
- package/.grok/skills/seven/reference/colorize.md +31 -0
- package/.grok/skills/seven/reference/critique.md +53 -0
- package/.grok/skills/seven/reference/delight.md +30 -0
- package/.grok/skills/seven/reference/distill.md +30 -0
- package/.grok/skills/seven/reference/doctor.md +7 -0
- package/.grok/skills/seven/reference/document.md +36 -0
- package/.grok/skills/seven/reference/evaluations.md +38 -0
- package/.grok/skills/seven/reference/exceptions.md +7 -0
- package/.grok/skills/seven/reference/extract.md +42 -0
- package/.grok/skills/seven/reference/harden.md +36 -0
- package/.grok/skills/seven/reference/hooks.md +11 -0
- package/.grok/skills/seven/reference/init.md +38 -0
- package/.grok/skills/seven/reference/layout.md +33 -0
- package/.grok/skills/seven/reference/live.md +106 -0
- package/.grok/skills/seven/reference/motion-design.md +71 -0
- package/.grok/skills/seven/reference/onboard.md +35 -0
- package/.grok/skills/seven/reference/optimize.md +34 -0
- package/.grok/skills/seven/reference/overdrive.md +32 -0
- package/.grok/skills/seven/reference/polish.md +55 -0
- package/.grok/skills/seven/reference/product.md +43 -0
- package/.grok/skills/seven/reference/quieter.md +31 -0
- package/.grok/skills/seven/reference/routing.md +28 -0
- package/.grok/skills/seven/reference/shape.md +85 -0
- package/.grok/skills/seven/reference/spatial-design.md +60 -0
- package/.grok/skills/seven/reference/typeset.md +28 -0
- package/.grok/skills/seven/reference/typography.md +43 -0
- package/.grok/skills/seven/reference/ux-writing.md +47 -0
- package/.grok/skills/seven/reference/visual-probes.md +36 -0
- package/.grok/skills/seven/scripts/context-signals.mjs +94 -0
- package/.grok/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.grok/skills/seven/scripts/load-context.mjs +93 -0
- package/.grok/skills/seven/scripts/update-check.mjs +120 -0
- package/.kiro/skills/seven/SKILL.md +161 -0
- package/.kiro/skills/seven/reference/adapt.md +34 -0
- package/.kiro/skills/seven/reference/animate.md +31 -0
- package/.kiro/skills/seven/reference/app-shell.md +152 -0
- package/.kiro/skills/seven/reference/audit.md +122 -0
- package/.kiro/skills/seven/reference/bolder.md +34 -0
- package/.kiro/skills/seven/reference/brand.md +31 -0
- package/.kiro/skills/seven/reference/clarify.md +76 -0
- package/.kiro/skills/seven/reference/color-and-contrast.md +84 -0
- package/.kiro/skills/seven/reference/colorize.md +31 -0
- package/.kiro/skills/seven/reference/critique.md +53 -0
- package/.kiro/skills/seven/reference/delight.md +30 -0
- package/.kiro/skills/seven/reference/distill.md +30 -0
- package/.kiro/skills/seven/reference/doctor.md +7 -0
- package/.kiro/skills/seven/reference/document.md +36 -0
- package/.kiro/skills/seven/reference/evaluations.md +38 -0
- package/.kiro/skills/seven/reference/exceptions.md +7 -0
- package/.kiro/skills/seven/reference/extract.md +42 -0
- package/.kiro/skills/seven/reference/harden.md +36 -0
- package/.kiro/skills/seven/reference/hooks.md +11 -0
- package/.kiro/skills/seven/reference/init.md +38 -0
- package/.kiro/skills/seven/reference/layout.md +33 -0
- package/.kiro/skills/seven/reference/live.md +106 -0
- package/.kiro/skills/seven/reference/motion-design.md +71 -0
- package/.kiro/skills/seven/reference/onboard.md +35 -0
- package/.kiro/skills/seven/reference/optimize.md +34 -0
- package/.kiro/skills/seven/reference/overdrive.md +32 -0
- package/.kiro/skills/seven/reference/polish.md +55 -0
- package/.kiro/skills/seven/reference/product.md +43 -0
- package/.kiro/skills/seven/reference/quieter.md +31 -0
- package/.kiro/skills/seven/reference/routing.md +28 -0
- package/.kiro/skills/seven/reference/shape.md +85 -0
- package/.kiro/skills/seven/reference/spatial-design.md +60 -0
- package/.kiro/skills/seven/reference/typeset.md +28 -0
- package/.kiro/skills/seven/reference/typography.md +43 -0
- package/.kiro/skills/seven/reference/ux-writing.md +47 -0
- package/.kiro/skills/seven/reference/visual-probes.md +36 -0
- package/.kiro/skills/seven/scripts/context-signals.mjs +94 -0
- package/.kiro/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.kiro/skills/seven/scripts/load-context.mjs +93 -0
- package/.kiro/skills/seven/scripts/update-check.mjs +120 -0
- package/.opencode/skills/seven/SKILL.md +167 -0
- package/.opencode/skills/seven/reference/adapt.md +34 -0
- package/.opencode/skills/seven/reference/animate.md +31 -0
- package/.opencode/skills/seven/reference/app-shell.md +152 -0
- package/.opencode/skills/seven/reference/audit.md +122 -0
- package/.opencode/skills/seven/reference/bolder.md +34 -0
- package/.opencode/skills/seven/reference/brand.md +31 -0
- package/.opencode/skills/seven/reference/clarify.md +76 -0
- package/.opencode/skills/seven/reference/color-and-contrast.md +84 -0
- package/.opencode/skills/seven/reference/colorize.md +31 -0
- package/.opencode/skills/seven/reference/critique.md +53 -0
- package/.opencode/skills/seven/reference/delight.md +30 -0
- package/.opencode/skills/seven/reference/distill.md +30 -0
- package/.opencode/skills/seven/reference/doctor.md +7 -0
- package/.opencode/skills/seven/reference/document.md +36 -0
- package/.opencode/skills/seven/reference/evaluations.md +38 -0
- package/.opencode/skills/seven/reference/exceptions.md +7 -0
- package/.opencode/skills/seven/reference/extract.md +42 -0
- package/.opencode/skills/seven/reference/harden.md +36 -0
- package/.opencode/skills/seven/reference/hooks.md +11 -0
- package/.opencode/skills/seven/reference/init.md +38 -0
- package/.opencode/skills/seven/reference/layout.md +33 -0
- package/.opencode/skills/seven/reference/live.md +106 -0
- package/.opencode/skills/seven/reference/motion-design.md +71 -0
- package/.opencode/skills/seven/reference/onboard.md +35 -0
- package/.opencode/skills/seven/reference/optimize.md +34 -0
- package/.opencode/skills/seven/reference/overdrive.md +32 -0
- package/.opencode/skills/seven/reference/polish.md +55 -0
- package/.opencode/skills/seven/reference/product.md +43 -0
- package/.opencode/skills/seven/reference/quieter.md +31 -0
- package/.opencode/skills/seven/reference/routing.md +28 -0
- package/.opencode/skills/seven/reference/shape.md +85 -0
- package/.opencode/skills/seven/reference/spatial-design.md +60 -0
- package/.opencode/skills/seven/reference/typeset.md +28 -0
- package/.opencode/skills/seven/reference/typography.md +43 -0
- package/.opencode/skills/seven/reference/ux-writing.md +47 -0
- package/.opencode/skills/seven/reference/visual-probes.md +36 -0
- package/.opencode/skills/seven/scripts/context-signals.mjs +94 -0
- package/.opencode/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.opencode/skills/seven/scripts/load-context.mjs +93 -0
- package/.opencode/skills/seven/scripts/update-check.mjs +120 -0
- package/.pi/skills/seven/SKILL.md +165 -0
- package/.pi/skills/seven/reference/adapt.md +34 -0
- package/.pi/skills/seven/reference/animate.md +31 -0
- package/.pi/skills/seven/reference/app-shell.md +152 -0
- package/.pi/skills/seven/reference/audit.md +122 -0
- package/.pi/skills/seven/reference/bolder.md +34 -0
- package/.pi/skills/seven/reference/brand.md +31 -0
- package/.pi/skills/seven/reference/clarify.md +76 -0
- package/.pi/skills/seven/reference/color-and-contrast.md +84 -0
- package/.pi/skills/seven/reference/colorize.md +31 -0
- package/.pi/skills/seven/reference/critique.md +53 -0
- package/.pi/skills/seven/reference/delight.md +30 -0
- package/.pi/skills/seven/reference/distill.md +30 -0
- package/.pi/skills/seven/reference/doctor.md +7 -0
- package/.pi/skills/seven/reference/document.md +36 -0
- package/.pi/skills/seven/reference/evaluations.md +38 -0
- package/.pi/skills/seven/reference/exceptions.md +7 -0
- package/.pi/skills/seven/reference/extract.md +42 -0
- package/.pi/skills/seven/reference/harden.md +36 -0
- package/.pi/skills/seven/reference/hooks.md +11 -0
- package/.pi/skills/seven/reference/init.md +38 -0
- package/.pi/skills/seven/reference/layout.md +33 -0
- package/.pi/skills/seven/reference/live.md +106 -0
- package/.pi/skills/seven/reference/motion-design.md +71 -0
- package/.pi/skills/seven/reference/onboard.md +35 -0
- package/.pi/skills/seven/reference/optimize.md +34 -0
- package/.pi/skills/seven/reference/overdrive.md +32 -0
- package/.pi/skills/seven/reference/polish.md +55 -0
- package/.pi/skills/seven/reference/product.md +43 -0
- package/.pi/skills/seven/reference/quieter.md +31 -0
- package/.pi/skills/seven/reference/routing.md +28 -0
- package/.pi/skills/seven/reference/shape.md +85 -0
- package/.pi/skills/seven/reference/spatial-design.md +60 -0
- package/.pi/skills/seven/reference/typeset.md +28 -0
- package/.pi/skills/seven/reference/typography.md +43 -0
- package/.pi/skills/seven/reference/ux-writing.md +47 -0
- package/.pi/skills/seven/reference/visual-probes.md +36 -0
- package/.pi/skills/seven/scripts/context-signals.mjs +94 -0
- package/.pi/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.pi/skills/seven/scripts/load-context.mjs +93 -0
- package/.pi/skills/seven/scripts/update-check.mjs +120 -0
- package/.qoder/skills/seven/SKILL.md +167 -0
- package/.qoder/skills/seven/reference/adapt.md +34 -0
- package/.qoder/skills/seven/reference/animate.md +31 -0
- package/.qoder/skills/seven/reference/app-shell.md +152 -0
- package/.qoder/skills/seven/reference/audit.md +122 -0
- package/.qoder/skills/seven/reference/bolder.md +34 -0
- package/.qoder/skills/seven/reference/brand.md +31 -0
- package/.qoder/skills/seven/reference/clarify.md +76 -0
- package/.qoder/skills/seven/reference/color-and-contrast.md +84 -0
- package/.qoder/skills/seven/reference/colorize.md +31 -0
- package/.qoder/skills/seven/reference/critique.md +53 -0
- package/.qoder/skills/seven/reference/delight.md +30 -0
- package/.qoder/skills/seven/reference/distill.md +30 -0
- package/.qoder/skills/seven/reference/doctor.md +7 -0
- package/.qoder/skills/seven/reference/document.md +36 -0
- package/.qoder/skills/seven/reference/evaluations.md +38 -0
- package/.qoder/skills/seven/reference/exceptions.md +7 -0
- package/.qoder/skills/seven/reference/extract.md +42 -0
- package/.qoder/skills/seven/reference/harden.md +36 -0
- package/.qoder/skills/seven/reference/hooks.md +11 -0
- package/.qoder/skills/seven/reference/init.md +38 -0
- package/.qoder/skills/seven/reference/layout.md +33 -0
- package/.qoder/skills/seven/reference/live.md +106 -0
- package/.qoder/skills/seven/reference/motion-design.md +71 -0
- package/.qoder/skills/seven/reference/onboard.md +35 -0
- package/.qoder/skills/seven/reference/optimize.md +34 -0
- package/.qoder/skills/seven/reference/overdrive.md +32 -0
- package/.qoder/skills/seven/reference/polish.md +55 -0
- package/.qoder/skills/seven/reference/product.md +43 -0
- package/.qoder/skills/seven/reference/quieter.md +31 -0
- package/.qoder/skills/seven/reference/routing.md +28 -0
- package/.qoder/skills/seven/reference/shape.md +85 -0
- package/.qoder/skills/seven/reference/spatial-design.md +60 -0
- package/.qoder/skills/seven/reference/typeset.md +28 -0
- package/.qoder/skills/seven/reference/typography.md +43 -0
- package/.qoder/skills/seven/reference/ux-writing.md +47 -0
- package/.qoder/skills/seven/reference/visual-probes.md +36 -0
- package/.qoder/skills/seven/scripts/context-signals.mjs +94 -0
- package/.qoder/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.qoder/skills/seven/scripts/load-context.mjs +93 -0
- package/.qoder/skills/seven/scripts/update-check.mjs +120 -0
- package/.rovodev/skills/seven/SKILL.md +167 -0
- package/.rovodev/skills/seven/reference/adapt.md +34 -0
- package/.rovodev/skills/seven/reference/animate.md +31 -0
- package/.rovodev/skills/seven/reference/app-shell.md +152 -0
- package/.rovodev/skills/seven/reference/audit.md +122 -0
- package/.rovodev/skills/seven/reference/bolder.md +34 -0
- package/.rovodev/skills/seven/reference/brand.md +31 -0
- package/.rovodev/skills/seven/reference/clarify.md +76 -0
- package/.rovodev/skills/seven/reference/color-and-contrast.md +84 -0
- package/.rovodev/skills/seven/reference/colorize.md +31 -0
- package/.rovodev/skills/seven/reference/critique.md +53 -0
- package/.rovodev/skills/seven/reference/delight.md +30 -0
- package/.rovodev/skills/seven/reference/distill.md +30 -0
- package/.rovodev/skills/seven/reference/doctor.md +7 -0
- package/.rovodev/skills/seven/reference/document.md +36 -0
- package/.rovodev/skills/seven/reference/evaluations.md +38 -0
- package/.rovodev/skills/seven/reference/exceptions.md +7 -0
- package/.rovodev/skills/seven/reference/extract.md +42 -0
- package/.rovodev/skills/seven/reference/harden.md +36 -0
- package/.rovodev/skills/seven/reference/hooks.md +11 -0
- package/.rovodev/skills/seven/reference/init.md +38 -0
- package/.rovodev/skills/seven/reference/layout.md +33 -0
- package/.rovodev/skills/seven/reference/live.md +106 -0
- package/.rovodev/skills/seven/reference/motion-design.md +71 -0
- package/.rovodev/skills/seven/reference/onboard.md +35 -0
- package/.rovodev/skills/seven/reference/optimize.md +34 -0
- package/.rovodev/skills/seven/reference/overdrive.md +32 -0
- package/.rovodev/skills/seven/reference/polish.md +55 -0
- package/.rovodev/skills/seven/reference/product.md +43 -0
- package/.rovodev/skills/seven/reference/quieter.md +31 -0
- package/.rovodev/skills/seven/reference/routing.md +28 -0
- package/.rovodev/skills/seven/reference/shape.md +85 -0
- package/.rovodev/skills/seven/reference/spatial-design.md +60 -0
- package/.rovodev/skills/seven/reference/typeset.md +28 -0
- package/.rovodev/skills/seven/reference/typography.md +43 -0
- package/.rovodev/skills/seven/reference/ux-writing.md +47 -0
- package/.rovodev/skills/seven/reference/visual-probes.md +36 -0
- package/.rovodev/skills/seven/scripts/context-signals.mjs +94 -0
- package/.rovodev/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.rovodev/skills/seven/scripts/load-context.mjs +93 -0
- package/.rovodev/skills/seven/scripts/update-check.mjs +120 -0
- package/.trae/skills/seven/SKILL.md +163 -0
- package/.trae/skills/seven/reference/adapt.md +34 -0
- package/.trae/skills/seven/reference/animate.md +31 -0
- package/.trae/skills/seven/reference/app-shell.md +152 -0
- package/.trae/skills/seven/reference/audit.md +122 -0
- package/.trae/skills/seven/reference/bolder.md +34 -0
- package/.trae/skills/seven/reference/brand.md +31 -0
- package/.trae/skills/seven/reference/clarify.md +76 -0
- package/.trae/skills/seven/reference/color-and-contrast.md +84 -0
- package/.trae/skills/seven/reference/colorize.md +31 -0
- package/.trae/skills/seven/reference/critique.md +53 -0
- package/.trae/skills/seven/reference/delight.md +30 -0
- package/.trae/skills/seven/reference/distill.md +30 -0
- package/.trae/skills/seven/reference/doctor.md +7 -0
- package/.trae/skills/seven/reference/document.md +36 -0
- package/.trae/skills/seven/reference/evaluations.md +38 -0
- package/.trae/skills/seven/reference/exceptions.md +7 -0
- package/.trae/skills/seven/reference/extract.md +42 -0
- package/.trae/skills/seven/reference/harden.md +36 -0
- package/.trae/skills/seven/reference/hooks.md +11 -0
- package/.trae/skills/seven/reference/init.md +38 -0
- package/.trae/skills/seven/reference/layout.md +33 -0
- package/.trae/skills/seven/reference/live.md +106 -0
- package/.trae/skills/seven/reference/motion-design.md +71 -0
- package/.trae/skills/seven/reference/onboard.md +35 -0
- package/.trae/skills/seven/reference/optimize.md +34 -0
- package/.trae/skills/seven/reference/overdrive.md +32 -0
- package/.trae/skills/seven/reference/polish.md +55 -0
- package/.trae/skills/seven/reference/product.md +43 -0
- package/.trae/skills/seven/reference/quieter.md +31 -0
- package/.trae/skills/seven/reference/routing.md +28 -0
- package/.trae/skills/seven/reference/shape.md +85 -0
- package/.trae/skills/seven/reference/spatial-design.md +60 -0
- package/.trae/skills/seven/reference/typeset.md +28 -0
- package/.trae/skills/seven/reference/typography.md +43 -0
- package/.trae/skills/seven/reference/ux-writing.md +47 -0
- package/.trae/skills/seven/reference/visual-probes.md +36 -0
- package/.trae/skills/seven/scripts/context-signals.mjs +94 -0
- package/.trae/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.trae/skills/seven/scripts/load-context.mjs +93 -0
- package/.trae/skills/seven/scripts/update-check.mjs +120 -0
- package/.trae-cn/skills/seven/SKILL.md +163 -0
- package/.trae-cn/skills/seven/reference/adapt.md +34 -0
- package/.trae-cn/skills/seven/reference/animate.md +31 -0
- package/.trae-cn/skills/seven/reference/app-shell.md +152 -0
- package/.trae-cn/skills/seven/reference/audit.md +122 -0
- package/.trae-cn/skills/seven/reference/bolder.md +34 -0
- package/.trae-cn/skills/seven/reference/brand.md +31 -0
- package/.trae-cn/skills/seven/reference/clarify.md +76 -0
- package/.trae-cn/skills/seven/reference/color-and-contrast.md +84 -0
- package/.trae-cn/skills/seven/reference/colorize.md +31 -0
- package/.trae-cn/skills/seven/reference/critique.md +53 -0
- package/.trae-cn/skills/seven/reference/delight.md +30 -0
- package/.trae-cn/skills/seven/reference/distill.md +30 -0
- package/.trae-cn/skills/seven/reference/doctor.md +7 -0
- package/.trae-cn/skills/seven/reference/document.md +36 -0
- package/.trae-cn/skills/seven/reference/evaluations.md +38 -0
- package/.trae-cn/skills/seven/reference/exceptions.md +7 -0
- package/.trae-cn/skills/seven/reference/extract.md +42 -0
- package/.trae-cn/skills/seven/reference/harden.md +36 -0
- package/.trae-cn/skills/seven/reference/hooks.md +11 -0
- package/.trae-cn/skills/seven/reference/init.md +38 -0
- package/.trae-cn/skills/seven/reference/layout.md +33 -0
- package/.trae-cn/skills/seven/reference/live.md +106 -0
- package/.trae-cn/skills/seven/reference/motion-design.md +71 -0
- package/.trae-cn/skills/seven/reference/onboard.md +35 -0
- package/.trae-cn/skills/seven/reference/optimize.md +34 -0
- package/.trae-cn/skills/seven/reference/overdrive.md +32 -0
- package/.trae-cn/skills/seven/reference/polish.md +55 -0
- package/.trae-cn/skills/seven/reference/product.md +43 -0
- package/.trae-cn/skills/seven/reference/quieter.md +31 -0
- package/.trae-cn/skills/seven/reference/routing.md +28 -0
- package/.trae-cn/skills/seven/reference/shape.md +85 -0
- package/.trae-cn/skills/seven/reference/spatial-design.md +60 -0
- package/.trae-cn/skills/seven/reference/typeset.md +28 -0
- package/.trae-cn/skills/seven/reference/typography.md +43 -0
- package/.trae-cn/skills/seven/reference/ux-writing.md +47 -0
- package/.trae-cn/skills/seven/reference/visual-probes.md +36 -0
- package/.trae-cn/skills/seven/scripts/context-signals.mjs +94 -0
- package/.trae-cn/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.trae-cn/skills/seven/scripts/load-context.mjs +93 -0
- package/.trae-cn/skills/seven/scripts/update-check.mjs +120 -0
- package/.vibe/skills/seven/SKILL.md +166 -0
- package/.vibe/skills/seven/reference/adapt.md +34 -0
- package/.vibe/skills/seven/reference/animate.md +31 -0
- package/.vibe/skills/seven/reference/app-shell.md +152 -0
- package/.vibe/skills/seven/reference/audit.md +122 -0
- package/.vibe/skills/seven/reference/bolder.md +34 -0
- package/.vibe/skills/seven/reference/brand.md +31 -0
- package/.vibe/skills/seven/reference/clarify.md +76 -0
- package/.vibe/skills/seven/reference/color-and-contrast.md +84 -0
- package/.vibe/skills/seven/reference/colorize.md +31 -0
- package/.vibe/skills/seven/reference/critique.md +53 -0
- package/.vibe/skills/seven/reference/delight.md +30 -0
- package/.vibe/skills/seven/reference/distill.md +30 -0
- package/.vibe/skills/seven/reference/doctor.md +7 -0
- package/.vibe/skills/seven/reference/document.md +36 -0
- package/.vibe/skills/seven/reference/evaluations.md +38 -0
- package/.vibe/skills/seven/reference/exceptions.md +7 -0
- package/.vibe/skills/seven/reference/extract.md +42 -0
- package/.vibe/skills/seven/reference/harden.md +36 -0
- package/.vibe/skills/seven/reference/hooks.md +11 -0
- package/.vibe/skills/seven/reference/init.md +38 -0
- package/.vibe/skills/seven/reference/layout.md +33 -0
- package/.vibe/skills/seven/reference/live.md +106 -0
- package/.vibe/skills/seven/reference/motion-design.md +71 -0
- package/.vibe/skills/seven/reference/onboard.md +35 -0
- package/.vibe/skills/seven/reference/optimize.md +34 -0
- package/.vibe/skills/seven/reference/overdrive.md +32 -0
- package/.vibe/skills/seven/reference/polish.md +55 -0
- package/.vibe/skills/seven/reference/product.md +43 -0
- package/.vibe/skills/seven/reference/quieter.md +31 -0
- package/.vibe/skills/seven/reference/routing.md +28 -0
- package/.vibe/skills/seven/reference/shape.md +85 -0
- package/.vibe/skills/seven/reference/spatial-design.md +60 -0
- package/.vibe/skills/seven/reference/typeset.md +28 -0
- package/.vibe/skills/seven/reference/typography.md +43 -0
- package/.vibe/skills/seven/reference/ux-writing.md +47 -0
- package/.vibe/skills/seven/reference/visual-probes.md +36 -0
- package/.vibe/skills/seven/scripts/context-signals.mjs +94 -0
- package/.vibe/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.vibe/skills/seven/scripts/load-context.mjs +93 -0
- package/.vibe/skills/seven/scripts/update-check.mjs +120 -0
- package/README.md +51 -90
- package/cli/bin/seven.mjs +0 -0
- package/cli/engine/browser/injected/index.mjs +62 -13
- package/cli/engine/detect-antipatterns-browser.js +4739 -19
- package/cli/engine/detect-antipatterns.mjs +1 -0
- package/cli/engine/engines/browser/detect-url.mjs +366 -3
- package/cli/engine/engines/regex/detect-text.mjs +469 -1
- package/cli/engine/engines/static-html/detect-html.mjs +131 -0
- package/cli/engine/registry/seven-antipatterns.mjs +379 -4
- package/cli/engine/rules/checks.mjs +360 -1
- package/cli/engine/shared/tokens.mjs +19 -0
- package/cli/engine/token-data.generated.mjs +4025 -0
- package/docs/detector-rules.md +277 -38
- package/docs/upstream-parity.json +242 -0
- package/extension/README.md +5 -0
- package/extension/background/service-worker.js +134 -0
- package/extension/content/content-script.js +340 -0
- package/extension/detector/detect.js +7816 -0
- package/extension/devtools/devtools.html +1 -0
- package/extension/devtools/devtools.js +3 -0
- package/extension/devtools/panel.css +66 -0
- package/extension/devtools/panel.html +3 -0
- package/extension/devtools/panel.js +37 -0
- package/extension/manifest.json +22 -0
- package/extension/popup/popup.css +106 -0
- package/extension/popup/popup.html +27 -0
- package/extension/popup/popup.js +74 -0
- package/package.json +19 -8
|
@@ -41,7 +41,7 @@ const ANTIPATTERNS = [
|
|
|
41
41
|
category: 'quality',
|
|
42
42
|
name: 'Raw Tailwind palette color',
|
|
43
43
|
description:
|
|
44
|
-
'A Tailwind default-palette color utility (bg-green-500, text-neutral-900, border-red-200, ring-blue-500). The palette paints a color that bypasses @etus/tokens exactly as a hex literal does. Use a Seven color token
|
|
44
|
+
'A Tailwind default-palette color utility (bg-green-500, text-neutral-900, border-red-200, ring-blue-500). The palette paints a color that bypasses @etus/tokens exactly as a hex literal does. Use a Seven color token through a typed arbitrary-value utility or its semantic equivalent.',
|
|
45
45
|
skillReference: 'reference/color-and-contrast.md',
|
|
46
46
|
},
|
|
47
47
|
{
|
|
@@ -57,7 +57,7 @@ const ANTIPATTERNS = [
|
|
|
57
57
|
category: 'quality',
|
|
58
58
|
name: 'Missing Tailwind v4 length type hint',
|
|
59
59
|
description:
|
|
60
|
-
'A Tailwind v4 text
|
|
60
|
+
'A Tailwind v4 arbitrary text utility backed by a CSS variable that resolves to a length is missing the length type hint. Lightning CSS drops the unhinted value silently.',
|
|
61
61
|
skillReference: 'reference/color-and-contrast.md',
|
|
62
62
|
},
|
|
63
63
|
{
|
|
@@ -65,7 +65,7 @@ const ANTIPATTERNS = [
|
|
|
65
65
|
category: 'quality',
|
|
66
66
|
name: 'leading-none with arbitrary length var',
|
|
67
67
|
description:
|
|
68
|
-
'leading-none combined with
|
|
68
|
+
'leading-none combined with a typed length-variable text utility zeroes line-height in Tailwind v4. Use leading-tight, leading-snug, an explicit line-height, or inline style.',
|
|
69
69
|
skillReference: 'reference/typography.md',
|
|
70
70
|
},
|
|
71
71
|
{
|
|
@@ -92,6 +92,102 @@ const ANTIPATTERNS = [
|
|
|
92
92
|
'Pure #000 or #fff. Seven uses tinted neutrals from the OKLCH ramp; pure black and white read as harsh and unrefined.',
|
|
93
93
|
skillReference: 'reference/color-and-contrast.md',
|
|
94
94
|
},
|
|
95
|
+
{
|
|
96
|
+
id: 'broken-image',
|
|
97
|
+
category: 'quality',
|
|
98
|
+
name: 'Broken or placeholder image',
|
|
99
|
+
description:
|
|
100
|
+
'An image has no usable source, still points to a placeholder, or fails to load at runtime. Use a real asset with dimensions and useful alternative text, provide a fallback, or remove it.',
|
|
101
|
+
skillReference: 'reference/audit.md',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: 'script-error',
|
|
105
|
+
category: 'quality',
|
|
106
|
+
name: 'Uncaught script error',
|
|
107
|
+
description:
|
|
108
|
+
'JavaScript threw while the page loaded. Broken scripts can disable interactions, data, and reveal logic; fix the runtime error before evaluating the interface.',
|
|
109
|
+
skillReference: 'reference/audit.md',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: 'content-hidden-at-rest',
|
|
113
|
+
category: 'quality',
|
|
114
|
+
name: 'Content invisible at rest',
|
|
115
|
+
description:
|
|
116
|
+
'A material share of product content remains at opacity zero or hidden after reveal handlers had an opportunity to run. Content must exist visibly by default and animation may enhance it.',
|
|
117
|
+
skillReference: 'reference/audit.md',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: 'edge-flush-cards',
|
|
121
|
+
category: 'quality',
|
|
122
|
+
name: 'Cards flush against a scroller edge',
|
|
123
|
+
description:
|
|
124
|
+
'A rounded card inside a horizontal scroller loses its inset and is clipped against the viewport edge. Preserve a consistent gutter on both sides.',
|
|
125
|
+
skillReference: 'reference/spatial-design.md',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: 'text-occlusion',
|
|
129
|
+
category: 'quality',
|
|
130
|
+
name: 'Text occluded by another layer',
|
|
131
|
+
description:
|
|
132
|
+
'Readable text is painted under an unrelated opaque element. Reserve layout space for overlapping layers or move the text outside the overlap.',
|
|
133
|
+
skillReference: 'reference/audit.md',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: 'heading-rhythm',
|
|
137
|
+
category: 'quality',
|
|
138
|
+
name: 'Heading bound to the previous block',
|
|
139
|
+
description:
|
|
140
|
+
'A heading has no stronger separation from the previous content than from the content it introduces. Increase the space above while keeping the heading grouped with its section.',
|
|
141
|
+
skillReference: 'reference/typography.md',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: 'text-overflow',
|
|
145
|
+
category: 'quality',
|
|
146
|
+
name: 'Text overflowing its container',
|
|
147
|
+
description:
|
|
148
|
+
'Rendered text exceeds its available box without an intentional scroll region. Let it wrap, constrain it with a supported pattern, or provide an explicit overflow affordance.',
|
|
149
|
+
skillReference: 'reference/audit.md',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: 'clipped-overflow-container',
|
|
153
|
+
category: 'quality',
|
|
154
|
+
name: 'Positioned child clipped by overflow',
|
|
155
|
+
description:
|
|
156
|
+
'An overflow-hidden or clipped container cuts off a positioned non-decorative child such as a menu, tooltip, or popover. Move the layer to a portal or remove the unintended clip.',
|
|
157
|
+
skillReference: 'reference/audit.md',
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
id: 'design-system-font',
|
|
161
|
+
category: 'quality',
|
|
162
|
+
name: 'Font outside Seven',
|
|
163
|
+
description:
|
|
164
|
+
'Rendered or authored UI uses a font outside the exact installed Seven typography catalog. Use Inter for product text and JetBrains Mono for code/data.',
|
|
165
|
+
skillReference: 'reference/typography.md',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: 'design-system-color',
|
|
169
|
+
category: 'quality',
|
|
170
|
+
name: 'Color outside Seven',
|
|
171
|
+
description:
|
|
172
|
+
'A rendered or authored UI color does not resolve to the exact installed Seven color catalog. Use an @etus/tokens CSS variable; do not create a consumer visual palette.',
|
|
173
|
+
skillReference: 'reference/color-and-contrast.md',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: 'design-system-radius',
|
|
177
|
+
category: 'quality',
|
|
178
|
+
name: 'Radius outside Seven',
|
|
179
|
+
description:
|
|
180
|
+
'A rendered or authored radius is outside the exact installed Seven component, surface, and pill scales.',
|
|
181
|
+
skillReference: 'reference/spatial-design.md',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
id: 'design-system-font-size',
|
|
185
|
+
category: 'quality',
|
|
186
|
+
name: 'Font size outside Seven',
|
|
187
|
+
description:
|
|
188
|
+
'A rendered or authored font size is outside the exact installed Seven typography ramp.',
|
|
189
|
+
skillReference: 'reference/typography.md',
|
|
190
|
+
},
|
|
95
191
|
|
|
96
192
|
// ── Inverted / retuned for Seven ─────────────────────────────────────────
|
|
97
193
|
{
|
|
@@ -306,6 +402,178 @@ const ANTIPATTERNS = [
|
|
|
306
402
|
'An em-dash or en-dash in user-facing copy. Seven copy uses a comma, a colon, or a sentence break; the long dash reads as machine-generated prose.',
|
|
307
403
|
skillReference: 'reference/ux-writing.md',
|
|
308
404
|
},
|
|
405
|
+
|
|
406
|
+
// ── Current Impeccable signals, constrained to Seven ────────────────────
|
|
407
|
+
// These rules preserve useful cross-product quality signals from the pinned
|
|
408
|
+
// upstream release. They never authorize a visual value outside Seven.
|
|
409
|
+
{
|
|
410
|
+
id: 'pulsing-dot',
|
|
411
|
+
category: 'slop',
|
|
412
|
+
name: 'Decorative pulsing status dot',
|
|
413
|
+
description:
|
|
414
|
+
'A small round indicator pulses without representing genuinely changing live data. Use the Seven status component in a static state unless the product state is actually live.',
|
|
415
|
+
skillReference: 'reference/motion-design.md',
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
id: 'blinking-cursor',
|
|
419
|
+
category: 'slop',
|
|
420
|
+
name: 'Decorative blinking cursor',
|
|
421
|
+
description:
|
|
422
|
+
'A fake caret or prompt cursor blinks outside an editable control. Real inputs own their caret; decorative typing chrome adds distraction without product meaning.',
|
|
423
|
+
skillReference: 'reference/motion-design.md',
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
id: 'shape-assembled-illustration',
|
|
427
|
+
category: 'slop',
|
|
428
|
+
name: 'Shape-assembled illustration',
|
|
429
|
+
description:
|
|
430
|
+
'A large pictorial inline SVG is assembled from many primitive shapes as placeholder artwork. Use a real approved asset; keep inline SVG for Lucide icons, logos, and data graphics.',
|
|
431
|
+
skillReference: 'reference/brand.md',
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
id: 'radial-halo',
|
|
435
|
+
category: 'slop',
|
|
436
|
+
name: 'Decorative radial halo',
|
|
437
|
+
description:
|
|
438
|
+
'A chromatic radial gradient fades to transparent as a decorative background glow. Seven surfaces use declared solid tokens and intentional imagery, not synthetic glow washes.',
|
|
439
|
+
skillReference: 'reference/color-and-contrast.md',
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
id: 'marquee',
|
|
443
|
+
category: 'slop',
|
|
444
|
+
name: 'Auto-scrolling marquee',
|
|
445
|
+
description:
|
|
446
|
+
'Content scrolls continuously without user control. Let users read at their own pace and reserve motion for state changes or explicit interaction.',
|
|
447
|
+
skillReference: 'reference/motion-design.md',
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
id: 'icon-tile-stack',
|
|
451
|
+
category: 'slop',
|
|
452
|
+
name: 'Icon tile stacked above heading',
|
|
453
|
+
description:
|
|
454
|
+
'A rounded-square icon tile is repeated directly above a heading as generic feature-card scaffolding. Compose Seven icons and text according to the product hierarchy instead.',
|
|
455
|
+
skillReference: 'reference/spatial-design.md',
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
id: 'numbered-section-labels',
|
|
459
|
+
category: 'slop',
|
|
460
|
+
name: 'Tiny numbered section labels',
|
|
461
|
+
description:
|
|
462
|
+
'Several sections repeat tiny numeric labels next to their headings instead of relying on meaningful hierarchy. Use numbered structure only when sequence is product information.',
|
|
463
|
+
skillReference: 'reference/typography.md',
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
id: 'marketing-buzzword',
|
|
467
|
+
category: 'slop',
|
|
468
|
+
name: 'Generic marketing buzzword',
|
|
469
|
+
description:
|
|
470
|
+
'Generic claims such as streamline, empower, world-class, enterprise-grade, and next-generation replace specific product meaning. State the concrete job and outcome in pt-BR.',
|
|
471
|
+
skillReference: 'reference/ux-writing.md',
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
id: 'aphoristic-cadence',
|
|
475
|
+
category: 'slop',
|
|
476
|
+
name: 'Repeated aphoristic copy cadence',
|
|
477
|
+
description:
|
|
478
|
+
'Three or more short contrast constructions such as “Não X. Y.” create generated-copy cadence. Use direct product language and vary sentence structure naturally.',
|
|
479
|
+
skillReference: 'reference/ux-writing.md',
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
id: 'oversized-h1',
|
|
483
|
+
category: 'slop',
|
|
484
|
+
name: 'Oversized long headline',
|
|
485
|
+
description:
|
|
486
|
+
'A long headline uses a display size that consumes most of the first viewport. Shorten the copy or use the appropriate Seven heading step for its length.',
|
|
487
|
+
skillReference: 'reference/typography.md',
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
id: 'extreme-negative-tracking',
|
|
491
|
+
category: 'slop',
|
|
492
|
+
name: 'Crushed letter spacing',
|
|
493
|
+
description:
|
|
494
|
+
'Letter spacing is pulled below -0.075em and damages character recognition. Use the declared Seven tracking and typography tokens.',
|
|
495
|
+
skillReference: 'reference/typography.md',
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
id: 'first-viewport-column-overflow',
|
|
499
|
+
category: 'quality',
|
|
500
|
+
name: 'Unbalanced opening columns',
|
|
501
|
+
description:
|
|
502
|
+
'One column in the opening multi-column region extends far beyond the first viewport while its sibling ends near the fold. Rebalance the composition or let long content flow below it.',
|
|
503
|
+
skillReference: 'reference/spatial-design.md',
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
id: 'undersized-ui-text',
|
|
507
|
+
category: 'quality',
|
|
508
|
+
name: 'Undersized functional text',
|
|
509
|
+
description:
|
|
510
|
+
'Interactive or content-bearing UI text renders below 11px. A token cannot legitimize unreadable functional text; use an appropriate Seven typography step.',
|
|
511
|
+
skillReference: 'reference/typography.md',
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
id: 'repeated-container-text',
|
|
515
|
+
category: 'quality',
|
|
516
|
+
name: 'Repeated text inside one container',
|
|
517
|
+
description:
|
|
518
|
+
'The same meaningful text appears three or more times in distinct positions inside one card or panel. Keep the message in the single slot where it carries the most meaning.',
|
|
519
|
+
skillReference: 'reference/ux-writing.md',
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
id: 'gpt-thin-border-wide-shadow',
|
|
523
|
+
category: 'slop',
|
|
524
|
+
name: 'Hairline border with wide shadow',
|
|
525
|
+
description:
|
|
526
|
+
'A thin edge is paired with a wide diffuse shadow. Seven uses borders for hierarchy and reserves elevation shadows for overlays; do not combine both as card decoration.',
|
|
527
|
+
skillReference: 'reference/spatial-design.md',
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
id: 'repeating-stripes-gradient',
|
|
531
|
+
category: 'slop',
|
|
532
|
+
name: 'Repeating-gradient stripes',
|
|
533
|
+
description:
|
|
534
|
+
'Repeating CSS gradients create decorative stripes without product meaning. Use a declared Seven surface or an approved brand asset.',
|
|
535
|
+
skillReference: 'reference/color-and-contrast.md',
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
id: 'codex-grid-background',
|
|
539
|
+
category: 'slop',
|
|
540
|
+
name: 'Decorative grid-line background',
|
|
541
|
+
description:
|
|
542
|
+
'Two tiled linear gradients draw a decorative grid outside a canvas, map, blueprint, or measurement surface. Use product structure or a Seven surface token instead.',
|
|
543
|
+
skillReference: 'reference/spatial-design.md',
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
id: 'theater-slop-phrase',
|
|
547
|
+
category: 'slop',
|
|
548
|
+
name: 'Theater framing copy',
|
|
549
|
+
description:
|
|
550
|
+
'Copy dismisses a feature or process as “theater” instead of explaining what it does or does not do. Replace the rhetorical framing with a concrete product statement.',
|
|
551
|
+
skillReference: 'reference/ux-writing.md',
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
id: 'image-hover-transform',
|
|
555
|
+
category: 'slop',
|
|
556
|
+
name: 'Decorative image hover transform',
|
|
557
|
+
description:
|
|
558
|
+
'An image scales or rotates on hover without an interaction requirement. Keep imagery stable unless the motion communicates an actual Seven interaction state.',
|
|
559
|
+
skillReference: 'reference/motion-design.md',
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
id: 'sidebar-topbar-shell',
|
|
563
|
+
category: 'quality',
|
|
564
|
+
name: 'Invalid Sidebar + Topbar shell',
|
|
565
|
+
description:
|
|
566
|
+
'A Seven application shell is not the canonical L-shaped composition. Sidebar and SidebarInset must be siblings under one SidebarProvider; the shell Topbar must be the first chrome child inside SidebarInset, remain borderless/shadowless, start at the sidebar edge, expose a visible SidebarTrigger on mobile unless collapsible="none", and collapse mobile chrome without overflowing TopbarLeading.',
|
|
567
|
+
skillReference: 'reference/app-shell.md',
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
id: 'sidebar-rail-behavior',
|
|
571
|
+
category: 'quality',
|
|
572
|
+
name: 'Invalid Sidebar Rail behavior',
|
|
573
|
+
description:
|
|
574
|
+
'A dual Seven Rail is missing the interaction contract. Every SidebarRailButton needs a stable label, navigation links must use asChild instead of nesting interactive elements, the Rail expands as a 64→200px overlay without moving the 216px panel, and the mobile Sheet must expose the full panel independently from desktop collapse.',
|
|
575
|
+
skillReference: 'reference/app-shell.md',
|
|
576
|
+
},
|
|
309
577
|
]
|
|
310
578
|
|
|
311
579
|
/**
|
|
@@ -331,6 +599,8 @@ const TEXT_RULE_IDS = new Set([
|
|
|
331
599
|
|
|
332
600
|
/** Element/page rules the static-html cascade can resolve. */
|
|
333
601
|
const STATIC_HTML_RULE_IDS = new Set([
|
|
602
|
+
'broken-image',
|
|
603
|
+
'clipped-overflow-container',
|
|
334
604
|
'side-stripe-border',
|
|
335
605
|
'gradient-text-decorative',
|
|
336
606
|
'shadows-not-borders',
|
|
@@ -355,6 +625,45 @@ const STATIC_HTML_RULE_IDS = new Set([
|
|
|
355
625
|
'pill-on-button',
|
|
356
626
|
'radius-mixed-scales',
|
|
357
627
|
'non-lucide-icon',
|
|
628
|
+
'pulsing-dot',
|
|
629
|
+
'blinking-cursor',
|
|
630
|
+
'shape-assembled-illustration',
|
|
631
|
+
'radial-halo',
|
|
632
|
+
'marquee',
|
|
633
|
+
'icon-tile-stack',
|
|
634
|
+
'numbered-section-labels',
|
|
635
|
+
'marketing-buzzword',
|
|
636
|
+
'aphoristic-cadence',
|
|
637
|
+
'oversized-h1',
|
|
638
|
+
'extreme-negative-tracking',
|
|
639
|
+
'undersized-ui-text',
|
|
640
|
+
'repeated-container-text',
|
|
641
|
+
'gpt-thin-border-wide-shadow',
|
|
642
|
+
'repeating-stripes-gradient',
|
|
643
|
+
'codex-grid-background',
|
|
644
|
+
'theater-slop-phrase',
|
|
645
|
+
'image-hover-transform',
|
|
646
|
+
'sidebar-topbar-shell',
|
|
647
|
+
'sidebar-rail-behavior',
|
|
648
|
+
])
|
|
649
|
+
|
|
650
|
+
const BROWSER_RUNTIME_RULE_IDS = new Set([
|
|
651
|
+
'broken-image',
|
|
652
|
+
'script-error',
|
|
653
|
+
'content-hidden-at-rest',
|
|
654
|
+
'edge-flush-cards',
|
|
655
|
+
'text-occlusion',
|
|
656
|
+
'heading-rhythm',
|
|
657
|
+
'text-overflow',
|
|
658
|
+
'clipped-overflow-container',
|
|
659
|
+
'design-system-font',
|
|
660
|
+
'design-system-color',
|
|
661
|
+
'design-system-radius',
|
|
662
|
+
'design-system-font-size',
|
|
663
|
+
'first-viewport-column-overflow',
|
|
664
|
+
'undersized-ui-text',
|
|
665
|
+
'repeated-container-text',
|
|
666
|
+
'gpt-thin-border-wide-shadow',
|
|
358
667
|
])
|
|
359
668
|
|
|
360
669
|
const RULE_ENGINE_SUPPORT = {
|
|
@@ -364,7 +673,7 @@ const RULE_ENGINE_SUPPORT = {
|
|
|
364
673
|
'static-html': new Set([...TEXT_RULE_IDS, ...STATIC_HTML_RULE_IDS]),
|
|
365
674
|
// The browser engine extracts rendered markup + stylesheet text and runs
|
|
366
675
|
// the same text + static-html checks against the rendered document.
|
|
367
|
-
browser: new Set([...TEXT_RULE_IDS, ...STATIC_HTML_RULE_IDS]),
|
|
676
|
+
browser: new Set([...TEXT_RULE_IDS, ...STATIC_HTML_RULE_IDS, ...BROWSER_RUNTIME_RULE_IDS]),
|
|
368
677
|
}
|
|
369
678
|
|
|
370
679
|
/**
|
|
@@ -387,6 +696,18 @@ const RULE_EXEMPTIONS = {
|
|
|
387
696
|
'fuchsia-in-ui-chrome': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: [] },
|
|
388
697
|
'pt-pt-vocab': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: [] },
|
|
389
698
|
'pure-black-or-white': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: TOKEN_DEFINITION_PATH_SEGMENTS },
|
|
699
|
+
'broken-image': NO_EXEMPTION,
|
|
700
|
+
'script-error': NO_EXEMPTION,
|
|
701
|
+
'content-hidden-at-rest': NO_EXEMPTION,
|
|
702
|
+
'edge-flush-cards': NO_EXEMPTION,
|
|
703
|
+
'text-occlusion': NO_EXEMPTION,
|
|
704
|
+
'heading-rhythm': NO_EXEMPTION,
|
|
705
|
+
'text-overflow': NO_EXEMPTION,
|
|
706
|
+
'clipped-overflow-container': NO_EXEMPTION,
|
|
707
|
+
'design-system-font': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: [] },
|
|
708
|
+
'design-system-color': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: TOKEN_DEFINITION_PATH_SEGMENTS },
|
|
709
|
+
'design-system-radius': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: TOKEN_DEFINITION_PATH_SEGMENTS },
|
|
710
|
+
'design-system-font-size': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: TOKEN_DEFINITION_PATH_SEGMENTS },
|
|
390
711
|
// Inverted / retuned.
|
|
391
712
|
'side-stripe-border': NO_EXEMPTION,
|
|
392
713
|
'gradient-text-decorative': NO_EXEMPTION,
|
|
@@ -417,6 +738,27 @@ const RULE_EXEMPTIONS = {
|
|
|
417
738
|
// Emoji and the long dash legitimately appear in audit/proposal prose.
|
|
418
739
|
'emoji-in-chrome': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: DOC_PATH_SEGMENTS },
|
|
419
740
|
'forbidden-em-dash': { skipPackages: new Set(), skipPathSegments: [...TOKEN_DEFINITION_PATH_SEGMENTS, ...DOC_PATH_SEGMENTS] },
|
|
741
|
+
'pulsing-dot': NO_EXEMPTION,
|
|
742
|
+
'blinking-cursor': NO_EXEMPTION,
|
|
743
|
+
'shape-assembled-illustration': NO_EXEMPTION,
|
|
744
|
+
'radial-halo': NO_EXEMPTION,
|
|
745
|
+
'marquee': NO_EXEMPTION,
|
|
746
|
+
'icon-tile-stack': NO_EXEMPTION,
|
|
747
|
+
'numbered-section-labels': NO_EXEMPTION,
|
|
748
|
+
'marketing-buzzword': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: DOC_PATH_SEGMENTS },
|
|
749
|
+
'aphoristic-cadence': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: DOC_PATH_SEGMENTS },
|
|
750
|
+
'oversized-h1': NO_EXEMPTION,
|
|
751
|
+
'extreme-negative-tracking': NO_EXEMPTION,
|
|
752
|
+
'first-viewport-column-overflow': NO_EXEMPTION,
|
|
753
|
+
'undersized-ui-text': NO_EXEMPTION,
|
|
754
|
+
'repeated-container-text': NO_EXEMPTION,
|
|
755
|
+
'gpt-thin-border-wide-shadow': NO_EXEMPTION,
|
|
756
|
+
'repeating-stripes-gradient': NO_EXEMPTION,
|
|
757
|
+
'codex-grid-background': NO_EXEMPTION,
|
|
758
|
+
'theater-slop-phrase': { skipPackages: SEVEN_INTERNAL_PACKAGES, skipPathSegments: DOC_PATH_SEGMENTS },
|
|
759
|
+
'image-hover-transform': NO_EXEMPTION,
|
|
760
|
+
'sidebar-topbar-shell': NO_EXEMPTION,
|
|
761
|
+
'sidebar-rail-behavior': NO_EXEMPTION,
|
|
420
762
|
}
|
|
421
763
|
|
|
422
764
|
/**
|
|
@@ -437,6 +779,10 @@ const RULE_GROUNDING = {
|
|
|
437
779
|
'radius-mixed-scales': { grounding: 'token', reason: 'Component and surface radius tiers derived from the radius tokens.' },
|
|
438
780
|
'pill-on-button': { grounding: 'token', reason: 'Pill threshold anchored on the full-radius token.' },
|
|
439
781
|
'bounce-easing': { grounding: 'token', reason: 'Exempts cubic-beziers that match a sanctioned easing token.' },
|
|
782
|
+
'design-system-font': { grounding: 'token', reason: 'Allowed rendered families come from the exact Seven token snapshot.' },
|
|
783
|
+
'design-system-color': { grounding: 'token', reason: 'Allowed rendered colors resolve from the exact Seven color variables.' },
|
|
784
|
+
'design-system-radius': { grounding: 'token', reason: 'Allowed radii come from the exact Seven radius snapshot.' },
|
|
785
|
+
'design-system-font-size': { grounding: 'token', reason: 'Allowed font sizes come from the exact Seven typography snapshot.' },
|
|
440
786
|
// Heuristic — no token defines the rule.
|
|
441
787
|
'missing-color-type-hint': { grounding: 'heuristic', reason: 'Tailwind v4 / Lightning CSS mechanic.' },
|
|
442
788
|
'missing-length-type-hint': { grounding: 'heuristic', reason: 'Tailwind v4 / Lightning CSS mechanic.' },
|
|
@@ -465,6 +811,35 @@ const RULE_GROUNDING = {
|
|
|
465
811
|
'non-lucide-icon': { grounding: 'heuristic', reason: 'SVG attribute shape (24x24 viewBox, 2px stroke).' },
|
|
466
812
|
'emoji-in-chrome': { grounding: 'heuristic', reason: 'Unicode emoji ranges in chrome text.' },
|
|
467
813
|
'forbidden-em-dash': { grounding: 'heuristic', reason: 'Character rule — em-dash / en-dash in copy.' },
|
|
814
|
+
'broken-image': { grounding: 'heuristic', reason: 'Source and browser image loading state.' },
|
|
815
|
+
'script-error': { grounding: 'heuristic', reason: 'Browser pageerror events captured during page load.' },
|
|
816
|
+
'content-hidden-at-rest': { grounding: 'heuristic', reason: 'Rendered-text visibility after a bounded reveal sweep.' },
|
|
817
|
+
'edge-flush-cards': { grounding: 'heuristic', reason: 'Rendered scroller inset and rounded-child geometry.' },
|
|
818
|
+
'text-occlusion': { grounding: 'heuristic', reason: 'Paint-order sampling over rendered text geometry.' },
|
|
819
|
+
'heading-rhythm': { grounding: 'heuristic', reason: 'Rendered space above and below section headings.' },
|
|
820
|
+
'text-overflow': { grounding: 'heuristic', reason: 'Rendered scroll and client geometry for direct text owners.' },
|
|
821
|
+
'clipped-overflow-container': { grounding: 'heuristic', reason: 'Overflow clipping plus positioned-child geometry.' },
|
|
822
|
+
'pulsing-dot': { grounding: 'heuristic', reason: 'Small round element combined with an infinite pulse animation.' },
|
|
823
|
+
'blinking-cursor': { grounding: 'heuristic', reason: 'Blink animation on a caret-like non-editable element.' },
|
|
824
|
+
'shape-assembled-illustration': { grounding: 'heuristic', reason: 'Large pictorial SVG assembled from many primitive shapes.' },
|
|
825
|
+
'radial-halo': { grounding: 'heuristic', reason: 'Chromatic radial-gradient fading to transparent as decoration.' },
|
|
826
|
+
'marquee': { grounding: 'heuristic', reason: 'Legacy marquee or infinite horizontal travel animation.' },
|
|
827
|
+
'icon-tile-stack': { grounding: 'heuristic', reason: 'Repeated rounded icon tile directly preceding a heading.' },
|
|
828
|
+
'numbered-section-labels': { grounding: 'heuristic', reason: 'Repeated tiny numeric labels adjacent to section headings.' },
|
|
829
|
+
'marketing-buzzword': { grounding: 'heuristic', reason: 'Curated generic marketing phrase vocabulary.' },
|
|
830
|
+
'aphoristic-cadence': { grounding: 'heuristic', reason: 'Repeated short contrast sentence construction.' },
|
|
831
|
+
'oversized-h1': { grounding: 'heuristic', reason: 'Headline length combined with rendered or authored display size.' },
|
|
832
|
+
'extreme-negative-tracking': { grounding: 'heuristic', reason: 'Legibility threshold below -0.075em letter spacing.' },
|
|
833
|
+
'first-viewport-column-overflow': { grounding: 'heuristic', reason: 'Rendered opening-column geometry relative to the viewport.' },
|
|
834
|
+
'undersized-ui-text': { grounding: 'heuristic', reason: 'Functional-text readability floor of 11px.' },
|
|
835
|
+
'repeated-container-text': { grounding: 'heuristic', reason: 'Same meaningful text repeated in distinct slots of one container.' },
|
|
836
|
+
'gpt-thin-border-wide-shadow': { grounding: 'heuristic', reason: 'Hairline border combined with a diffuse wide shadow.' },
|
|
837
|
+
'repeating-stripes-gradient': { grounding: 'heuristic', reason: 'Repeating CSS gradient used as surface decoration.' },
|
|
838
|
+
'codex-grid-background': { grounding: 'heuristic', reason: 'Two-axis tiled hairline gradients outside grid-meaningful surfaces.' },
|
|
839
|
+
'theater-slop-phrase': { grounding: 'heuristic', reason: 'Generated-copy phrase pattern using theater as rhetorical dismissal.' },
|
|
840
|
+
'image-hover-transform': { grounding: 'heuristic', reason: 'Scale or rotate transform applied to imagery on hover.' },
|
|
841
|
+
'sidebar-topbar-shell': { grounding: 'heuristic', reason: 'Seven-specific component ancestry, mobile trigger, chrome style, and rendered L-geometry contract.' },
|
|
842
|
+
'sidebar-rail-behavior': { grounding: 'heuristic', reason: 'Seven-specific Rail labels, interactive-element composition, mobile state, and rendered overlay contract.' },
|
|
468
843
|
}
|
|
469
844
|
|
|
470
845
|
export function getRuleGrounding(id) {
|