@etus/seven-skill 0.1.0-beta.3 → 0.1.0-beta.5
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 +172 -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 +9 -0
- package/.agents/skills/seven/reference/document.md +36 -0
- package/.agents/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.agents/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.agents/skills/seven/scripts/load-context.mjs +111 -0
- package/.agents/skills/seven/scripts/run-seven.mjs +47 -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 +134 -123
- 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 +9 -0
- package/.claude/skills/seven/reference/document.md +36 -0
- package/.claude/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.claude/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.claude/skills/seven/scripts/load-context.mjs +85 -58
- package/.claude/skills/seven/scripts/run-seven.mjs +47 -0
- 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 +172 -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 +9 -0
- package/.cursor/skills/seven/reference/document.md +36 -0
- package/.cursor/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.cursor/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.cursor/skills/seven/scripts/load-context.mjs +111 -0
- package/.cursor/skills/seven/scripts/run-seven.mjs +47 -0
- package/.cursor/skills/seven/scripts/update-check.mjs +120 -0
- package/.gemini/skills/seven/SKILL.md +171 -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 +9 -0
- package/.gemini/skills/seven/reference/document.md +36 -0
- package/.gemini/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.gemini/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.gemini/skills/seven/scripts/load-context.mjs +111 -0
- package/.gemini/skills/seven/scripts/run-seven.mjs +47 -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 +176 -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 +9 -0
- package/.grok/skills/seven/reference/document.md +36 -0
- package/.grok/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.grok/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.grok/skills/seven/scripts/load-context.mjs +111 -0
- package/.grok/skills/seven/scripts/run-seven.mjs +47 -0
- package/.grok/skills/seven/scripts/update-check.mjs +120 -0
- package/.kiro/skills/seven/SKILL.md +172 -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 +9 -0
- package/.kiro/skills/seven/reference/document.md +36 -0
- package/.kiro/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.kiro/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.kiro/skills/seven/scripts/load-context.mjs +111 -0
- package/.kiro/skills/seven/scripts/run-seven.mjs +47 -0
- package/.kiro/skills/seven/scripts/update-check.mjs +120 -0
- package/.opencode/skills/seven/SKILL.md +176 -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 +9 -0
- package/.opencode/skills/seven/reference/document.md +36 -0
- package/.opencode/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.opencode/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.opencode/skills/seven/scripts/load-context.mjs +111 -0
- package/.opencode/skills/seven/scripts/run-seven.mjs +47 -0
- package/.opencode/skills/seven/scripts/update-check.mjs +120 -0
- package/.pi/skills/seven/SKILL.md +174 -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 +9 -0
- package/.pi/skills/seven/reference/document.md +36 -0
- package/.pi/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.pi/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.pi/skills/seven/scripts/load-context.mjs +111 -0
- package/.pi/skills/seven/scripts/run-seven.mjs +47 -0
- package/.pi/skills/seven/scripts/update-check.mjs +120 -0
- package/.qoder/skills/seven/SKILL.md +176 -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 +9 -0
- package/.qoder/skills/seven/reference/document.md +36 -0
- package/.qoder/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.qoder/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.qoder/skills/seven/scripts/load-context.mjs +111 -0
- package/.qoder/skills/seven/scripts/run-seven.mjs +47 -0
- package/.qoder/skills/seven/scripts/update-check.mjs +120 -0
- package/.rovodev/skills/seven/SKILL.md +176 -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 +9 -0
- package/.rovodev/skills/seven/reference/document.md +36 -0
- package/.rovodev/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.rovodev/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.rovodev/skills/seven/scripts/load-context.mjs +111 -0
- package/.rovodev/skills/seven/scripts/run-seven.mjs +47 -0
- package/.rovodev/skills/seven/scripts/update-check.mjs +120 -0
- package/.trae/skills/seven/SKILL.md +174 -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 +9 -0
- package/.trae/skills/seven/reference/document.md +36 -0
- package/.trae/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.trae/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.trae/skills/seven/scripts/load-context.mjs +111 -0
- package/.trae/skills/seven/scripts/run-seven.mjs +47 -0
- package/.trae/skills/seven/scripts/update-check.mjs +120 -0
- package/.trae-cn/skills/seven/SKILL.md +174 -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 +9 -0
- package/.trae-cn/skills/seven/reference/document.md +36 -0
- package/.trae-cn/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.trae-cn/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.trae-cn/skills/seven/scripts/load-context.mjs +111 -0
- package/.trae-cn/skills/seven/scripts/run-seven.mjs +47 -0
- package/.trae-cn/skills/seven/scripts/update-check.mjs +120 -0
- package/.vibe/skills/seven/SKILL.md +175 -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 +9 -0
- package/.vibe/skills/seven/reference/document.md +36 -0
- package/.vibe/skills/seven/reference/evaluations.md +44 -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 +5 -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/setup.md +38 -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 +95 -0
- package/.vibe/skills/seven/scripts/critique-storage.mjs +155 -0
- package/.vibe/skills/seven/scripts/load-context.mjs +111 -0
- package/.vibe/skills/seven/scripts/run-seven.mjs +47 -0
- package/.vibe/skills/seven/scripts/update-check.mjs +120 -0
- package/README.md +53 -88
- 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
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
// ETUS Digital — package-manager-independent Seven CLI runner.
|
|
4
|
+
|
|
5
|
+
import fs from 'node:fs'
|
|
6
|
+
import path from 'node:path'
|
|
7
|
+
import { spawnSync } from 'node:child_process'
|
|
8
|
+
import { createRequire } from 'node:module'
|
|
9
|
+
import { fileURLToPath } from 'node:url'
|
|
10
|
+
|
|
11
|
+
import { findRoot } from './load-context.mjs'
|
|
12
|
+
|
|
13
|
+
export function resolveSevenCli(start = process.cwd()) {
|
|
14
|
+
const root = findRoot(start)
|
|
15
|
+
const require = createRequire(path.join(root, 'package.json'))
|
|
16
|
+
const manifestPath = require.resolve('@etus/seven/package.json')
|
|
17
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'))
|
|
18
|
+
const bin = typeof manifest.bin === 'string' ? manifest.bin : manifest.bin?.seven
|
|
19
|
+
if (!bin) throw new Error(`@etus/seven at ${manifestPath} does not declare the seven binary`)
|
|
20
|
+
return {
|
|
21
|
+
binPath: path.resolve(path.dirname(manifestPath), bin),
|
|
22
|
+
root,
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function runSeven(argv = process.argv.slice(2), start = process.cwd()) {
|
|
27
|
+
if (argv.length === 0) throw new Error('usage: run-seven.mjs <seven-command> [arguments]')
|
|
28
|
+
const { binPath, root } = resolveSevenCli(start)
|
|
29
|
+
const result = spawnSync(process.execPath, [binPath, ...argv], {
|
|
30
|
+
cwd: root,
|
|
31
|
+
env: process.env,
|
|
32
|
+
stdio: 'inherit',
|
|
33
|
+
})
|
|
34
|
+
if (result.error) throw result.error
|
|
35
|
+
return result.status ?? 1
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function isCliEntry() {
|
|
39
|
+
if (!process.argv[1]) return false
|
|
40
|
+
try {
|
|
41
|
+
return fs.realpathSync(fileURLToPath(import.meta.url)) === fs.realpathSync(process.argv[1])
|
|
42
|
+
} catch {
|
|
43
|
+
return false
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (isCliEntry()) process.exitCode = runSeven()
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import fs from 'node:fs'
|
|
5
|
+
import os from 'node:os'
|
|
6
|
+
import path from 'node:path'
|
|
7
|
+
|
|
8
|
+
const DAY_MS = 24 * 60 * 60 * 1000
|
|
9
|
+
const WEEK_MS = 7 * DAY_MS
|
|
10
|
+
|
|
11
|
+
function cachePath(env = process.env) {
|
|
12
|
+
return env.SEVEN_UPDATE_CACHE || path.join(os.homedir(), '.seven', 'update-check.json')
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function readCache(env) {
|
|
16
|
+
try {
|
|
17
|
+
const parsed = JSON.parse(fs.readFileSync(cachePath(env), 'utf8'))
|
|
18
|
+
return parsed && typeof parsed === 'object' ? parsed : {}
|
|
19
|
+
} catch {
|
|
20
|
+
return {}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function writeCache(cache, env) {
|
|
25
|
+
try {
|
|
26
|
+
const destination = cachePath(env)
|
|
27
|
+
fs.mkdirSync(path.dirname(destination), { recursive: true })
|
|
28
|
+
fs.writeFileSync(destination, `${JSON.stringify(cache, null, 2)}\n`)
|
|
29
|
+
} catch {
|
|
30
|
+
// Update discovery is best-effort and must never block the UI workflow.
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function semverParts(value) {
|
|
35
|
+
const match = String(value || '').trim().match(/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/)
|
|
36
|
+
if (!match) return null
|
|
37
|
+
return {
|
|
38
|
+
core: [Number(match[1]), Number(match[2]), Number(match[3])],
|
|
39
|
+
prerelease: match[4] ? match[4].split('.') : [],
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function compareIdentifier(left, right) {
|
|
44
|
+
const leftNumber = /^\d+$/.test(left) ? Number(left) : null
|
|
45
|
+
const rightNumber = /^\d+$/.test(right) ? Number(right) : null
|
|
46
|
+
if (leftNumber != null && rightNumber != null) return Math.sign(leftNumber - rightNumber)
|
|
47
|
+
if (leftNumber != null) return -1
|
|
48
|
+
if (rightNumber != null) return 1
|
|
49
|
+
return left.localeCompare(right)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function compareSemver(left, right) {
|
|
53
|
+
const a = semverParts(left)
|
|
54
|
+
const b = semverParts(right)
|
|
55
|
+
if (!a || !b) return 0
|
|
56
|
+
for (let index = 0; index < 3; index++) {
|
|
57
|
+
if (a.core[index] !== b.core[index]) return Math.sign(a.core[index] - b.core[index])
|
|
58
|
+
}
|
|
59
|
+
if (a.prerelease.length === 0 && b.prerelease.length > 0) return 1
|
|
60
|
+
if (b.prerelease.length === 0 && a.prerelease.length > 0) return -1
|
|
61
|
+
for (let index = 0; index < Math.max(a.prerelease.length, b.prerelease.length); index++) {
|
|
62
|
+
if (a.prerelease[index] == null) return -1
|
|
63
|
+
if (b.prerelease[index] == null) return 1
|
|
64
|
+
const compared = compareIdentifier(a.prerelease[index], b.prerelease[index])
|
|
65
|
+
if (compared !== 0) return compared
|
|
66
|
+
}
|
|
67
|
+
return 0
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
async function fetchLatest(env) {
|
|
71
|
+
const registry = (env.SEVEN_UPDATE_REGISTRY || 'https://registry.npmjs.org').replace(/\/$/, '')
|
|
72
|
+
const controller = new AbortController()
|
|
73
|
+
const timeout = setTimeout(() => controller.abort(), 1500)
|
|
74
|
+
try {
|
|
75
|
+
const response = await fetch(`${registry}/%40etus%2Fseven/latest`, {
|
|
76
|
+
headers: { accept: 'application/json' },
|
|
77
|
+
signal: controller.signal,
|
|
78
|
+
})
|
|
79
|
+
if (!response.ok) return null
|
|
80
|
+
const payload = await response.json()
|
|
81
|
+
return typeof payload?.version === 'string' ? payload.version : null
|
|
82
|
+
} catch {
|
|
83
|
+
return null
|
|
84
|
+
} finally {
|
|
85
|
+
clearTimeout(timeout)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export async function checkForUpdate(currentVersion, { env = process.env, now = Date.now() } = {}) {
|
|
90
|
+
if (!currentVersion || env.SEVEN_NO_UPDATE_CHECK) return null
|
|
91
|
+
const cache = readCache(env)
|
|
92
|
+
const fresh = typeof cache.checkedAt === 'number' && now - cache.checkedAt < DAY_MS
|
|
93
|
+
let latestVersion = fresh ? cache.latestVersion : await fetchLatest(env)
|
|
94
|
+
if (!latestVersion) latestVersion = cache.latestVersion || null
|
|
95
|
+
if (!fresh && latestVersion) {
|
|
96
|
+
cache.checkedAt = now
|
|
97
|
+
cache.latestVersion = latestVersion
|
|
98
|
+
}
|
|
99
|
+
if (!latestVersion) return null
|
|
100
|
+
|
|
101
|
+
const available = compareSemver(latestVersion, currentVersion) > 0
|
|
102
|
+
const notify = available && (
|
|
103
|
+
cache.notifiedVersion !== latestVersion ||
|
|
104
|
+
typeof cache.notifiedAt !== 'number' ||
|
|
105
|
+
now - cache.notifiedAt >= WEEK_MS
|
|
106
|
+
)
|
|
107
|
+
if (notify) {
|
|
108
|
+
cache.notifiedVersion = latestVersion
|
|
109
|
+
cache.notifiedAt = now
|
|
110
|
+
}
|
|
111
|
+
writeCache(cache, env)
|
|
112
|
+
return {
|
|
113
|
+
package: '@etus/seven',
|
|
114
|
+
currentVersion,
|
|
115
|
+
latestVersion,
|
|
116
|
+
available,
|
|
117
|
+
notify,
|
|
118
|
+
command: `pnpm add -D @etus/seven@${latestVersion} && pnpm exec seven update`,
|
|
119
|
+
}
|
|
120
|
+
}
|
package/README.md
CHANGED
|
@@ -1,118 +1,83 @@
|
|
|
1
1
|
# @etus/seven-skill
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Build/runtime interno das skills de UI do Seven, agentes auxiliares, detector determinístico e Seven UI Guardian. Projetos consumidores devem instalar `@etus/seven`, cujo único binário `seven` instala estes artefatos junto com policy, contexto, hooks e enforcement local.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
`@etus/seven-skill` não expõe um segundo binário `seven`.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## O que é publicado
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
9
|
+
- Skills nativas para Claude Code, Codex/Agent Skills, Cursor, Gemini CLI, Grok Build, Kiro, OpenCode, Pi, Qoder, Rovo Dev, Trae, Trae China e Mistral Vibe.
|
|
10
|
+
- Três agentes auxiliares onde o host possui um contrato nativo: asset producer, finish reviewer e manual edit applier.
|
|
11
|
+
- `.claude-plugin/` para compatibilidade com o plugin/marketplace do Claude.
|
|
12
|
+
- `cli/engine/`, com as engines regex, HTML/cascade e navegador usadas por `seven check`.
|
|
13
|
+
- `extension/`, a extensão Manifest V3 Seven UI Guardian, com popup, painel DevTools, marcações de findings e cliente Seven Live.
|
|
14
|
+
- `docs/upstream-parity.json`, matriz executável e versionada contra o Impeccable auditado.
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
GitHub Copilot é a única distribuição upstream deliberadamente recusada: nenhum projeto consumidor recebe ou tem alterado um arquivo `.github/**`.
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
Alguns hosts exigem ativação fora do alcance do npm. `seven init` e `seven doctor` lembram o usuário de habilitar Agent Skills no Cursor/Gemini, aprovar hooks no Codex/Grok e reiniciar Trae quando aplicável. Esses consentimentos não podem ser automatizados com segurança; o pre-commit local continua protegendo arquivos de UI independentemente da ativação do host.
|
|
17
19
|
|
|
18
|
-
##
|
|
20
|
+
## Skill canônica
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
`source/SKILL.md` é a fonte de verdade. Ela roteia 22 workflows de UI aplicáveis — `setup`, `shape`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `clarify`, `adapt`, `optimize`, `overdrive` e `live` — mais `doctor`, `hooks` e `exceptions`. `init` permanece como alias retrocompatível de `setup`.
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
No Claude Code, a invocação explícita é `/seven setup [target]`; o build publica `intent` e `target` como argumentos nomeados e consome `$ARGUMENTS`. No Codex, a sintaxe nativa equivalente é `$seven setup [target]`. Nos demais hosts, o primeiro token seleciona o workflow e o restante do prompt define o alvo.
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
pnpm add -D @etus/seven-skill --workspace
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
For external projects, install the package or point the plugin manifest at the git source:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
pnpm add -D @etus/seven-skill
|
|
32
|
-
claude plugin install @etus/seven-skill
|
|
26
|
+
Comandos determinísticos da skill passam pelo `scripts/run-seven.mjs` instalado em cada host. O runner resolve diretamente o binário do `@etus/seven` local, por isso não depende de um `seven` global nem do gerenciador de pacotes usado pelo projeto.
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
claude plugin install github:etusdigital/seven#path=packages/seven-skill
|
|
36
|
-
```
|
|
28
|
+
Todo workflow de UI deve:
|
|
37
29
|
|
|
38
|
-
|
|
30
|
+
1. resolver o arquivo, app e superfície exatos;
|
|
31
|
+
2. carregar `PRODUCT.md`, `.seven/project.yml`, surface brief e o resumo íntegro do release lock;
|
|
32
|
+
3. validar a instalação com `run-seven.mjs doctor --quick`;
|
|
33
|
+
4. procurar e reutilizar componentes/variantes do registry instalado;
|
|
34
|
+
5. usar somente tokens Seven e voz de produto em português brasileiro;
|
|
35
|
+
6. executar `run-seven.mjs check` em cada arquivo alterado;
|
|
36
|
+
7. reportar evidência e gaps sem inventar contratos.
|
|
39
37
|
|
|
40
|
-
|
|
38
|
+
Contexto de produto pode especializar usuários, jobs, estados, voz e acessibilidade. Não pode substituir cores, tipografia, spacing, radii, motion, variantes ou APIs do Seven. Não existe `DESIGN.md` consumidor com autoridade visual.
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
pnpm --filter @etus/seven-skill exec seven detect packages/ui/src/
|
|
44
|
-
```
|
|
40
|
+
## Detector e enforcement
|
|
45
41
|
|
|
46
|
-
|
|
42
|
+
O catálogo possui 68 regras. Ele inclui as 59 regras determinísticas identificadas no Impeccable atual, classificadas como portadas, adaptadas à autoridade do Seven ou rejeitadas por conflito, além de regras exclusivas de tokens, Tailwind v4, React 19, pt-BR, shell Sidebar + Topbar, comportamento da Rail e boundary consumidor.
|
|
47
43
|
|
|
48
|
-
|
|
49
|
-
| ---------------- | -------------------------------------------------------------------------- |
|
|
50
|
-
| `/seven shape` | Plan UX shape before writing component code |
|
|
51
|
-
| `/seven audit` | Five-dimension scan: a11y, performance, theming, responsive, anti-patterns |
|
|
52
|
-
| `/seven polish` | Final-pass cleanup aligned to Seven tokens and conventions |
|
|
53
|
-
| `/seven clarify` | UX copy in pt-BR: imperative leads, sentence case, no trailing periods |
|
|
44
|
+
O pacote consumidor combina o detector com:
|
|
54
45
|
|
|
55
|
-
|
|
46
|
+
- hooks semânticos nativos em Claude, Codex, Cursor e Grok;
|
|
47
|
+
- pre-commit Git local para mudanças humanas ou feitas fora das ferramentas do agente;
|
|
48
|
+
- checks `--all`, `--changed`, `--staged`, `--file` e URL renderizada;
|
|
49
|
+
- exceções explícitas, baseline que só pode encolher, doctor, pin/unpin e update/uninstall ownership-safe.
|
|
56
50
|
|
|
57
|
-
|
|
51
|
+
O LLM nunca é hard gate. Código determinístico decide routing técnico, integridade e findings; o modelo é usado para julgamento de produto/design.
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
browser). Each rule is `quality` (real design / a11y drift) or `slop` (an
|
|
61
|
-
AI tell, Seven-flavored). The full catalog — every rule with its
|
|
62
|
-
justification, a wrong/right example, and the design reference that grounds
|
|
63
|
-
it — is in [`docs/detector-rules.md`](./docs/detector-rules.md).
|
|
53
|
+
## Seven Live e extensão
|
|
64
54
|
|
|
65
|
-
|
|
66
|
-
build step (`build:tokens`) reads `@etus/tokens` and embeds a token-data
|
|
67
|
-
snapshot, so `hardcoded-color-not-token` names the exact token a literal
|
|
68
|
-
maps to, `non-inter-font` reads the font tokens, `radius-mixed-scales` reads
|
|
69
|
-
the radius scale, and `bounce-easing` knows the sanctioned easing tokens.
|
|
70
|
-
When `@etus/tokens` rebuilds from a Figma sync, regenerate the snapshot. The
|
|
71
|
-
other 27 rules are heuristics — language facts, CSS mechanics, and a11y
|
|
72
|
-
standards no token defines. Each rule's verdict is in `RULE_GROUNDING`.
|
|
55
|
+
`seven live` usa um bridge em `127.0.0.1` com token aleatório, journal local e payload limitado. Seven UI Guardian seleciona o elemento e exibe direções HTML/CSS inertes. Um aceite autoriza uma edição pequena no código React usando contratos instalados; DOM/CSS de preview nunca vira produção automaticamente.
|
|
73
56
|
|
|
74
|
-
|
|
75
|
-
`raw-tailwind-palette-color`, `missing-color-type-hint`,
|
|
76
|
-
`missing-length-type-hint`, `leading-none-with-length-var`,
|
|
77
|
-
`fuchsia-in-ui-chrome`, `pt-pt-vocab`, `pure-black-or-white`); three
|
|
78
|
-
inverted from impeccable (`side-stripe-border`, `gradient-text-decorative`,
|
|
79
|
-
`shadows-not-borders`); seventeen universal design-quality / a11y rules; six
|
|
80
|
-
Seven-specific element rules (`missing-tactile-press`, `pill-on-button`,
|
|
81
|
-
`radius-mixed-scales`, `non-lucide-icon`, `emoji-in-chrome`,
|
|
82
|
-
`forbidden-em-dash`).
|
|
57
|
+
Por segurança do navegador, npm não pode ativar a extensão sem consentimento. `seven extension path` informa o diretório publicado que deve ser carregado uma única vez como extensão sem compactação.
|
|
83
58
|
|
|
84
|
-
|
|
59
|
+
## Build e verificação
|
|
85
60
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
├── source/ # authoring source (not shipped to npm)
|
|
91
|
-
│ ├── SKILL.md # router + shared design laws
|
|
92
|
-
│ ├── reference/ # domain + sub-command references
|
|
93
|
-
│ └── scripts/ # consumer-side runtime scripts (Phase 2)
|
|
94
|
-
├── build/ # multi-harness build pipeline (not shipped)
|
|
95
|
-
├── cli/ # deterministic detector (shipped)
|
|
96
|
-
├── .claude/skills/seven/ # Claude Code build output (shipped, tracked)
|
|
97
|
-
├── .claude-plugin/ # Claude Code plugin wrapper (shipped)
|
|
98
|
-
└── tests/ # unit + fixture tests
|
|
61
|
+
```bash
|
|
62
|
+
pnpm --filter @etus/seven-skill build
|
|
63
|
+
pnpm --filter @etus/seven-skill test
|
|
64
|
+
pnpm --filter @etus/seven-skill typecheck
|
|
99
65
|
```
|
|
100
66
|
|
|
101
|
-
|
|
67
|
+
O build regenera 13 provider trees, agentes, metadados de plugin, snapshot de tokens, browser detector e extensão. Artefatos gerados devem permanecer byte-for-byte derivados de `source/` e `extension-src/`.
|
|
102
68
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
#
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
pnpm --filter @etus/seven-skill exec seven help
|
|
69
|
+
```text
|
|
70
|
+
packages/seven-skill/
|
|
71
|
+
├── source/ # skill, referências, scripts e agentes canônicos
|
|
72
|
+
├── build/ # transformers e geradores
|
|
73
|
+
├── cli/engine/ # detector determinístico
|
|
74
|
+
├── extension-src/ # fonte da extensão
|
|
75
|
+
├── extension/ # build publicável da extensão
|
|
76
|
+
├── .claude/, .agents/, ... # 13 outputs de hosts
|
|
77
|
+
├── docs/ # regras e matriz de paridade
|
|
78
|
+
└── tests/ # contratos, fixtures, build e paridade
|
|
114
79
|
```
|
|
115
80
|
|
|
116
|
-
##
|
|
81
|
+
## Licença
|
|
117
82
|
|
|
118
|
-
Apache-2.0.
|
|
83
|
+
Apache-2.0. A arquitetura adaptada do Impeccable é atribuída em `NOTICE.md` e nos headers relevantes.
|
package/cli/bin/seven.mjs
CHANGED
|
File without changes
|
|
@@ -16,19 +16,60 @@
|
|
|
16
16
|
* dependent drift surfaces — the per-element work the static-html engine does
|
|
17
17
|
* against a resolved cascade, here against the real browser.
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* Inspector overlays and the Live bridge stay in the packaged Seven browser
|
|
20
|
+
* extension. This detector remains UI-agnostic and returns stable selectors
|
|
21
|
+
* so the extension can decorate or focus the matching element.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
;(function sevenInstallBrowserDetector() {
|
|
25
25
|
if (typeof window === 'undefined') return
|
|
26
26
|
|
|
27
|
+
function selectorFor(el) {
|
|
28
|
+
if (!el || el.nodeType !== 1) return ''
|
|
29
|
+
const escape = (value) => {
|
|
30
|
+
if (typeof CSS !== 'undefined' && typeof CSS.escape === 'function') return CSS.escape(value)
|
|
31
|
+
return String(value).replace(/[^a-zA-Z0-9_-]/g, (char) => `\\${char}`)
|
|
32
|
+
}
|
|
33
|
+
if (el.id && document.querySelectorAll(`#${escape(el.id)}`).length === 1) return `#${escape(el.id)}`
|
|
34
|
+
for (const attribute of ['data-testid', 'data-slot']) {
|
|
35
|
+
const value = el.getAttribute?.(attribute)
|
|
36
|
+
if (value) {
|
|
37
|
+
const selector = `[${attribute}="${String(value).replaceAll('"', '\\"')}"]`
|
|
38
|
+
if (document.querySelectorAll(selector).length === 1) return selector
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const parts = []
|
|
42
|
+
let current = el
|
|
43
|
+
while (current && current !== document.documentElement && parts.length < 6) {
|
|
44
|
+
let part = current.tagName.toLowerCase()
|
|
45
|
+
const siblings = current.parentElement
|
|
46
|
+
? [...current.parentElement.children].filter((item) => item.tagName === current.tagName)
|
|
47
|
+
: []
|
|
48
|
+
if (siblings.length > 1) part += `:nth-of-type(${siblings.indexOf(current) + 1})`
|
|
49
|
+
parts.unshift(part)
|
|
50
|
+
const selector = parts.join(' > ')
|
|
51
|
+
if (document.querySelectorAll(selector).length === 1) return selector
|
|
52
|
+
current = current.parentElement
|
|
53
|
+
}
|
|
54
|
+
return parts.join(' > ')
|
|
55
|
+
}
|
|
56
|
+
|
|
27
57
|
function collectFindings() {
|
|
28
58
|
const out = []
|
|
29
|
-
const
|
|
59
|
+
const seen = new Set()
|
|
60
|
+
const push = (arr, element = null) => {
|
|
30
61
|
if (!arr) return
|
|
31
|
-
for (const f of arr)
|
|
62
|
+
for (const f of arr) {
|
|
63
|
+
const normalized = {
|
|
64
|
+
type: f.id,
|
|
65
|
+
detail: f.snippet,
|
|
66
|
+
...(element ? { selector: selectorFor(element), tag: element.tagName?.toLowerCase() || '' } : {}),
|
|
67
|
+
}
|
|
68
|
+
const key = `${normalized.type}|${normalized.selector || ''}|${normalized.detail || ''}`
|
|
69
|
+
if (seen.has(key)) continue
|
|
70
|
+
seen.add(key)
|
|
71
|
+
out.push(normalized)
|
|
72
|
+
}
|
|
32
73
|
}
|
|
33
74
|
|
|
34
75
|
for (const el of document.querySelectorAll('*')) {
|
|
@@ -38,14 +79,14 @@
|
|
|
38
79
|
continue
|
|
39
80
|
}
|
|
40
81
|
try {
|
|
41
|
-
push(checkElementBordersDOM(el))
|
|
42
|
-
push(checkElementColorsDOM(el))
|
|
43
|
-
push(checkElementGlowDOM(el))
|
|
44
|
-
push(checkElementMotionDOM(el))
|
|
45
|
-
push(checkElementTactilePressDOM(el))
|
|
46
|
-
push(checkElementPillOnButtonDOM(el))
|
|
47
|
-
push(checkElementLucideIconDOM(el))
|
|
48
|
-
push(checkElementQualityDOM(el))
|
|
82
|
+
push(checkElementBordersDOM(el), el)
|
|
83
|
+
push(checkElementColorsDOM(el), el)
|
|
84
|
+
push(checkElementGlowDOM(el), el)
|
|
85
|
+
push(checkElementMotionDOM(el), el)
|
|
86
|
+
push(checkElementTactilePressDOM(el), el)
|
|
87
|
+
push(checkElementPillOnButtonDOM(el), el)
|
|
88
|
+
push(checkElementLucideIconDOM(el), el)
|
|
89
|
+
push(checkElementQualityDOM(el), el)
|
|
49
90
|
} catch {
|
|
50
91
|
// A malformed element must not abort the whole scan.
|
|
51
92
|
}
|
|
@@ -64,6 +105,14 @@
|
|
|
64
105
|
/* html-pattern check failed — continue */
|
|
65
106
|
}
|
|
66
107
|
|
|
108
|
+
try {
|
|
109
|
+
// Rendered-text parity for Seven's source checks, including the stricter
|
|
110
|
+
// forbidden-em-dash adaptation of Impeccable's advisory saturation rule.
|
|
111
|
+
push(runChecks(document.documentElement.outerHTML))
|
|
112
|
+
} catch {
|
|
113
|
+
/* rendered-text check failed — continue */
|
|
114
|
+
}
|
|
115
|
+
|
|
67
116
|
return out
|
|
68
117
|
}
|
|
69
118
|
|