@litfamily/litclaude 1.0.10 → 1.0.13
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/CHANGELOG.md +36 -0
- package/README.md +436 -45
- package/README_ko-KR.md +403 -17
- package/bin/install-ownership.mjs +155 -18
- package/bin/litclaude-ai.js +91 -9
- package/docs/ab/S11-baseline-desktop.webp +0 -0
- package/docs/ab/S11-baseline-phone.webp +0 -0
- package/docs/ab/S11-litclaude-desktop.webp +0 -0
- package/docs/ab/S11-litclaude-phone.webp +0 -0
- package/docs/ab/S3-baseline-desktop.webp +0 -0
- package/docs/ab/S3-baseline-phone.webp +0 -0
- package/docs/ab/S3-litclaude-desktop.webp +0 -0
- package/docs/ab/S3-litclaude-phone.webp +0 -0
- package/docs/ab/S4-baseline-desktop.webp +0 -0
- package/docs/ab/S4-baseline-phone.webp +0 -0
- package/docs/ab/S4-litclaude-desktop.webp +0 -0
- package/docs/ab/S4-litclaude-phone.webp +0 -0
- package/docs/ab/S5-baseline-pages.webp +0 -0
- package/docs/ab/S5-baseline-slides.webp +0 -0
- package/docs/ab/S5-litclaude-pages.webp +0 -0
- package/docs/ab/S5-litclaude-slides.webp +0 -0
- package/docs/ab/S7-litclaude-diagram.webp +0 -0
- package/docs/ab/S8-baseline-slides.webp +0 -0
- package/docs/ab/S8-litclaude-slides.webp +0 -0
- package/docs/ab/S9-litclaude-pages.webp +0 -0
- package/docs/agents.md +10 -7
- package/docs/assets/cover-motion-still.webp +0 -0
- package/docs/assets/cover-motion.webp +0 -0
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/assets/skills/autoconference.webp +0 -0
- package/docs/assets/skills/automatic-checks.webp +0 -0
- package/docs/assets/skills/autoresearch.webp +0 -0
- package/docs/assets/skills/browser-drive.webp +0 -0
- package/docs/assets/skills/debugging.webp +0 -0
- package/docs/assets/skills/deep-interview.webp +0 -0
- package/docs/assets/skills/frontend-ui-ux.webp +0 -0
- package/docs/assets/skills/lit-burnoff-file.webp +0 -0
- package/docs/assets/skills/lit-burnoff.webp +0 -0
- package/docs/assets/skills/lit-code.webp +0 -0
- package/docs/assets/skills/lit-commit.webp +0 -0
- package/docs/assets/skills/lit-comprehend.webp +0 -0
- package/docs/assets/skills/lit-crucible.webp +0 -0
- package/docs/assets/skills/lit-diagram-drawer.webp +0 -0
- package/docs/assets/skills/lit-docx.webp +0 -0
- package/docs/assets/skills/lit-handoff.webp +0 -0
- package/docs/assets/skills/lit-humanizer.webp +0 -0
- package/docs/assets/skills/lit-init.webp +0 -0
- package/docs/assets/skills/lit-loop.webp +0 -0
- package/docs/assets/skills/lit-plan.webp +0 -0
- package/docs/assets/skills/lit-pptx.webp +0 -0
- package/docs/assets/skills/lit-recap.webp +0 -0
- package/docs/assets/skills/lit-scientific-visualization.webp +0 -0
- package/docs/assets/skills/lit-team.webp +0 -0
- package/docs/assets/skills/lit-typographic-motion.webp +0 -0
- package/docs/assets/skills/litgoal.webp +0 -0
- package/docs/assets/skills/litresearch.webp +0 -0
- package/docs/assets/skills/litwork.webp +0 -0
- package/docs/assets/skills/lsp-setup.webp +0 -0
- package/docs/assets/skills/readme-studio.webp +0 -0
- package/docs/assets/skills/refactor.webp +0 -0
- package/docs/assets/skills/review-work.webp +0 -0
- package/docs/assets/skills/start-work.webp +0 -0
- package/docs/assets/skills/structural-search.webp +0 -0
- package/docs/assets/skills/visual-qa.webp +0 -0
- package/docs/assets/skills/wikify.webp +0 -0
- package/docs/hooks.md +185 -41
- package/docs/migration.md +6 -3
- package/docs/privacy.md +6 -1
- package/package.json +4 -2
- package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
- package/plugins/litclaude/agents/korean-prose-editor.md +1 -0
- package/plugins/litclaude/agents/korean-style-analyzer.md +1 -0
- package/plugins/litclaude/agents/meaning-preservation-auditor.md +1 -0
- package/plugins/litclaude/agents/native-flow-reviewer.md +1 -0
- package/plugins/litclaude/agents/polish-orchestrator.md +1 -0
- package/plugins/litclaude/bin/litclaude-hook.js +347 -35
- package/plugins/litclaude/bin/litclaude-hud.js +29 -1
- package/plugins/litclaude/bin/litclaude-mcp.js +1 -1
- package/plugins/litclaude/bundled-rules/lit-humanizer.md +14 -0
- package/plugins/litclaude/commands/korean-ai-slop-remover.md +2 -2
- package/plugins/litclaude/commands/lit-comprehend.md +11 -11
- package/plugins/litclaude/commands/lit-humanizer.md +75 -0
- package/plugins/litclaude/commands/lit-korean.md +4 -130
- package/plugins/litclaude/commands/litresearch.md +12 -10
- package/plugins/litclaude/hooks/hooks.json +1 -1
- package/plugins/litclaude/lib/canonical-runtime-commitments.mjs +2 -2
- package/plugins/litclaude/lib/canonical-skill-catalog.mjs +5 -1
- package/plugins/litclaude/lib/canonical-skill-resources.mjs +618 -13
- package/plugins/litclaude/lib/deliverable-hedge-guard.mjs +256 -350
- package/plugins/litclaude/lib/hud-accent-palette.mjs +33 -0
- package/plugins/litclaude/lib/interface-mode.mjs +33 -0
- package/plugins/litclaude/lib/interface-probe-gate.mjs +125 -0
- package/plugins/litclaude/lib/jev-skill-hint.mjs +445 -0
- package/plugins/litclaude/lib/motion-render-gate.mjs +164 -0
- package/plugins/litclaude/lib/mutated-file-paths.mjs +32 -1
- package/plugins/litclaude/lib/office-runtime-lock/package-lock.json +745 -0
- package/plugins/litclaude/lib/office-runtime-lock/package.json +12 -0
- package/plugins/litclaude/lib/office-runtime-lock/requirements.lock +15 -0
- package/plugins/litclaude/lib/office-runtime.mjs +255 -0
- package/plugins/litclaude/lib/office_data.py +493 -0
- package/plugins/litclaude/lib/office_runtime_bootstrap.py +61 -0
- package/plugins/litclaude/lib/ooxml_integrity.py +199 -0
- package/plugins/litclaude/lib/rename-aliases.mjs +3 -1
- package/plugins/litclaude/lib/render_pages.py +105 -0
- package/plugins/litclaude/skills/autoconference/SKILL.md +2 -0
- package/plugins/litclaude/skills/browser-drive/SKILL.md +19 -6
- package/plugins/litclaude/skills/browser-drive/scripts/capability-probe.mjs +44 -8
- package/plugins/litclaude/skills/frontend-ui-ux/ATTRIBUTION.md +26 -0
- package/plugins/litclaude/skills/frontend-ui-ux/SKILL.md +50 -16
- package/plugins/litclaude/skills/frontend-ui-ux/examples/phase-3-readme-ab/README.md +9 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/complete-contract.md +32 -6
- package/plugins/litclaude/skills/frontend-ui-ux/references/craft-floor.md +257 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/default-editorial-pixel.json +6 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/interaction-motion.md +34 -88
- package/plugins/litclaude/skills/frontend-ui-ux/references/motion-guide.md +130 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/slop-register.md +150 -0
- package/plugins/litclaude/skills/frontend-ui-ux/references/visual-reconstruction.md +39 -85
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-page.mjs +1534 -0
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-rules.mjs +141 -0
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-server.mjs +57 -0
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-static.mjs +129 -0
- package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe.mjs +316 -0
- package/plugins/litclaude/skills/lit-comprehend/SKILL.md +34 -43
- package/plugins/litclaude/skills/lit-comprehend/references/artifact-template.md +5 -44
- package/plugins/litclaude/skills/lit-comprehend/scripts/verify-explainer.mjs +6 -16
- package/plugins/litclaude/skills/lit-diagram-drawer/NOTICE +33 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/SKILL.md +123 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/fonts/provenance.json +22 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/icons.html +231 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/index.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/accessibility.md +37 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/export.md +29 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/import-drawio.md +21 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/import-excalidraw.md +14 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/import-mermaid.md +18 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/import-schema.md +28 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/motion.md +29 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/office-pptx-docx.md +42 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/output-spec.md +48 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/profiles.md +24 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/style-guide.md +67 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-bar.md +51 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-bump.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-er.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-journey.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-layers.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-line.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-loop.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-nested.md +59 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-polar.md +67 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-process.md +58 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-radar.md +57 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-state.md +59 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-tree.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-venn.md +51 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/references/verifier-guide.md +66 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/brief-contract.mjs +94 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/check-visible-text.mjs +15 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/diagram-metrics.mjs +223 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/doctor.mjs +35 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/drawio-extract.mjs +635 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/excalidraw-extract.mjs +319 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/export.mjs +116 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/mermaid-extract.mjs +438 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/office-safety.mjs +54 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/renderer.mjs +33 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-all.mjs +58 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-brief.mjs +22 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-coverage.mjs +56 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-diagram.mjs +27 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-motion.mjs +12 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-type.mjs +48 -0
- package/plugins/litclaude/skills/lit-diagram-drawer/scripts/visual-quality.mjs +376 -0
- package/plugins/litclaude/skills/lit-docx/NOTICE +33 -0
- package/plugins/litclaude/skills/lit-docx/SKILL.md +170 -0
- package/plugins/litclaude/skills/lit-docx/references/frontmatter_schema.md +42 -0
- package/plugins/litclaude/skills/lit-docx/references/journal_style_spec.md +17 -0
- package/plugins/litclaude/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
- package/plugins/litclaude/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
- package/plugins/litclaude/skills/lit-docx/references/slop_rules.md +35 -0
- package/plugins/litclaude/skills/lit-docx/scripts/clean_markdown.py +95 -0
- package/plugins/litclaude/skills/lit-docx/scripts/convert_md_to_docx.py +1194 -0
- package/plugins/litclaude/skills/lit-docx/scripts/convert_md_to_pdf.py +290 -0
- package/plugins/litclaude/skills/lit-docx/scripts/convert_pdf.py +139 -0
- package/plugins/litclaude/skills/lit-docx/scripts/edit_docx.py +306 -0
- package/plugins/litclaude/skills/lit-docx/scripts/embed_images.py +78 -0
- package/plugins/litclaude/skills/lit-docx/scripts/generate_docx_templates.py +500 -0
- package/plugins/litclaude/skills/lit-docx/scripts/qa_docx.py +177 -0
- package/plugins/litclaude/skills/lit-docx/scripts/slop_lint.py +561 -0
- package/plugins/litclaude/skills/lit-docx/scripts/visual_audit.py +48 -0
- package/plugins/litclaude/skills/lit-docx/templates/docx/acs.docx +0 -0
- package/plugins/litclaude/skills/lit-docx/templates/docx/elsevier.docx +0 -0
- package/plugins/litclaude/skills/lit-docx/templates/docx/ieee.docx +0 -0
- package/plugins/litclaude/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
- package/plugins/litclaude/skills/lit-docx/templates/docx/nature.docx +0 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/acs/README.md +5 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/acs/template.tex +37 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/ieee/README.md +5 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/nature/README.md +5 -0
- package/plugins/litclaude/skills/lit-docx/templates/latex/nature/template.tex +37 -0
- package/plugins/litclaude/skills/lit-docx/templates/registry.yaml +1366 -0
- package/plugins/litclaude/skills/lit-humanizer/NOTICE +160 -0
- package/plugins/litclaude/skills/lit-humanizer/SKILL.md +164 -0
- package/plugins/litclaude/skills/lit-humanizer/assets/always-on-rule.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/assets/report-skeleton.md +25 -0
- package/plugins/litclaude/skills/lit-humanizer/assets/slide-text-skeleton.md +28 -0
- package/plugins/litclaude/skills/lit-humanizer/bench/prompts.md +73 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/api-reference/after.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/api-reference/before.md +15 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/changelog/after.md +5 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/changelog/before.md +12 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/code-comments/after.md +10 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/code-comments/before.md +19 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/commit/after.md +5 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/commit/before.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/data-release/after.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/data-release/before.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/english-essay/after.md +5 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/english-essay/before.md +5 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/incident-update/after.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/incident-update/before.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/ko-report/after.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/ko-report/before.md +13 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/pr/after.md +15 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/pr/before.md +17 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/project-update/after.md +7 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/project-update/before.md +9 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/readme/after.md +12 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/readme/before.md +14 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/report/after.md +13 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/report/before.md +11 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/slides/after.md +19 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/slides/before.md +19 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
- package/plugins/litclaude/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
- package/plugins/litclaude/skills/lit-humanizer/motion-guide.md +123 -0
- package/plugins/litclaude/skills/lit-humanizer/references/code-patterns.md +468 -0
- package/plugins/litclaude/skills/lit-humanizer/references/deliverable-channels.md +111 -0
- package/plugins/litclaude/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
- package/plugins/litclaude/skills/lit-humanizer/references/en-patterns-content.md +243 -0
- package/plugins/litclaude/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
- package/plugins/litclaude/skills/lit-humanizer/references/en-patterns.md +57 -0
- package/plugins/litclaude/skills/lit-humanizer/references/ko-metrics.md +33 -0
- package/plugins/litclaude/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
- package/plugins/litclaude/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
- package/plugins/litclaude/skills/lit-humanizer/references/ko-patterns.md +31 -0
- package/plugins/litclaude/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
- package/plugins/litclaude/skills/lit-humanizer/references/taxonomy.md +153 -0
- package/plugins/litclaude/skills/lit-humanizer/rules.json +884 -0
- package/plugins/litclaude/skills/lit-humanizer/scripts/artifact-text.mjs +38 -0
- package/plugins/litclaude/skills/lit-humanizer/scripts/core.mjs +207 -0
- package/plugins/litclaude/skills/lit-humanizer/scripts/detect.mjs +64 -0
- package/plugins/litclaude/skills/lit-humanizer/scripts/extract_office_text.py +112 -0
- package/plugins/litclaude/skills/lit-humanizer/scripts/ko-metrics.mjs +124 -0
- package/plugins/litclaude/skills/lit-humanizer/scripts/scan-input.mjs +29 -0
- package/plugins/litclaude/skills/lit-loop/SKILL.md +30 -1
- package/plugins/litclaude/skills/lit-plan/SKILL.md +4 -1
- package/plugins/litclaude/skills/lit-pptx/NOTICE +38 -0
- package/plugins/litclaude/skills/lit-pptx/SKILL.md +207 -0
- package/plugins/litclaude/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
- package/plugins/litclaude/skills/lit-pptx/assets/azure/circle-md.png +0 -0
- package/plugins/litclaude/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Black.otf +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Bold.otf +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Light.otf +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Medium.otf +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Regular.otf +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/a2z/OFL.txt +94 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/a2z/SOURCE.md +29 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/pretendard/OFL.txt +94 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/pretendard/Pretendard-Bold.otf +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/pretendard/Pretendard-Regular.otf +0 -0
- package/plugins/litclaude/skills/lit-pptx/fonts/provenance.json +78 -0
- package/plugins/litclaude/skills/lit-pptx/references/agents/analyst.md +49 -0
- package/plugins/litclaude/skills/lit-pptx/references/agents/antithesis.md +59 -0
- package/plugins/litclaude/skills/lit-pptx/references/agents/architect.md +44 -0
- package/plugins/litclaude/skills/lit-pptx/references/agents/critic.md +42 -0
- package/plugins/litclaude/skills/lit-pptx/references/agents/synthesizer.md +47 -0
- package/plugins/litclaude/skills/lit-pptx/references/agents/thesis.md +33 -0
- package/plugins/litclaude/skills/lit-pptx/references/anti-slop-checklist.md +81 -0
- package/plugins/litclaude/skills/lit-pptx/references/authoring-guide.md +173 -0
- package/plugins/litclaude/skills/lit-pptx/references/consensus-protocol.md +125 -0
- package/plugins/litclaude/skills/lit-pptx/references/data-display-cookbook.md +45 -0
- package/plugins/litclaude/skills/lit-pptx/references/design-system-azure.md +58 -0
- package/plugins/litclaude/skills/lit-pptx/references/interview-protocol.md +113 -0
- package/plugins/litclaude/skills/lit-pptx/references/stages/autopilot.md +48 -0
- package/plugins/litclaude/skills/lit-pptx/references/stages/interview.md +52 -0
- package/plugins/litclaude/skills/lit-pptx/references/stages/plan.md +42 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/compile-deck.js +414 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/craft_extras.py +373 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/deck_craft.py +321 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/embed_fonts.py +215 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/forbidden-terms.json +55 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/layout_inventory.py +418 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/learn_template.py +446 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/font-map.js +79 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/gen-bg.js +86 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +37 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/layout-resolver.js +768 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/render-adapter-html.js +356 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +2094 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/runtime-require.js +28 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/slide-ast.js +561 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/lib/template-registry.js +394 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/package.json +4 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/qa_deck.py +766 -0
- package/plugins/litclaude/skills/lit-pptx/scripts/validate_pptx.py +215 -0
- package/plugins/litclaude/skills/lit-pptx/specs/markdown-slide-spec-v1.md +251 -0
- package/plugins/litclaude/skills/lit-pptx/specs/markdown-slide-spec-v2.md +214 -0
- package/plugins/litclaude/skills/lit-pptx/specs/slide-ast-v1.schema.json +229 -0
- package/plugins/litclaude/skills/lit-pptx/specs/slide-ast-v2.schema.json +144 -0
- package/plugins/litclaude/skills/lit-pptx/specs/template-enrollment-contract.md +382 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +454 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +475 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
- package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
- package/plugins/litclaude/skills/lit-scientific-visualization/SKILL.md +1 -0
- package/plugins/litclaude/skills/lit-typographic-motion/SKILL.md +131 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/NOTICE +23 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/THIRD_PARTY_NOTICES +56 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/audio/beat_grid.py +56 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/audio/requirements.lock +1084 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/constants.mjs +211 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/contrast.mjs +90 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/events.mjs +46 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/flash.mjs +211 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/gate-rules.mjs +550 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/presets.mjs +123 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/text.mjs +100 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/timeline.mjs +142 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/util.mjs +167 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/core/voices.mjs +19 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/models/word-timing.json +198 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/analysis.mjs +108 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/brief.mjs +158 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/chrome.mjs +330 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/coverage.mjs +83 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/done.mjs +104 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/encode.mjs +104 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/frame-worker.mjs +36 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/look.mjs +128 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/pipeline.mjs +592 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/png.mjs +112 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/report.mjs +66 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/runtime.mjs +330 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/session.mjs +145 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/sound-cli.mjs +60 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/sound.mjs +641 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-capture.mjs +178 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-gate.mjs +122 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-qa.mjs +295 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-serve.mjs +278 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage.mjs +503 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stills.mjs +100 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/treatment.mjs +343 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/node/ws-server.mjs +132 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/package-lock.json +25 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/package.json +10 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/stage/init.js +288 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/stage/qa.js +157 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/stage/stage-kit.js +701 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/boot.mjs +123 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/engine.mjs +281 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/gl.mjs +319 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/glsl-common.mjs +78 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/index.html +6 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/lines.mjs +112 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/crt.mjs +98 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/dither.mjs +49 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/glitch.mjs +77 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/swiss-grid.mjs +61 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/terminal-ui.mjs +88 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/tidal-gradient.mjs +86 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/post.mjs +165 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scale.mjs +15 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scene.mjs +82 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/end-card.mjs +30 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/index.mjs +16 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/karaoke-line.mjs +47 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/kinetic-list.mjs +45 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/number-counter.mjs +29 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/signature.mjs +73 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/title-slam.mjs +73 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/stroke.mjs +236 -0
- package/plugins/litclaude/skills/lit-typographic-motion/engine/web/type.mjs +180 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w100-400.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w100-700.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w100-900.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w125-400.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w125-700.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w125-900.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w75-400.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w75-700.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w75-900.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/OFL.txt +93 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/manifest.json +437 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/silkscreen/OFL.txt +93 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/silkscreen/Silkscreen-Bold.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/silkscreen/Silkscreen-Regular.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/CREDITS +42 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSAllure.svg +216 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSFelix.svg +216 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSOsmotron.svg +216 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSReadability.svg +216 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSTech.svg +217 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/OFL.txt +91 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/vt323/OFL.txt +93 -0
- package/plugins/litclaude/skills/lit-typographic-motion/fonts/vt323/VT323-Regular.ttf +0 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/brief-schema.md +91 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/craft-loop.md +69 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/engine-contract.md +104 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/look.md +106 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/runtime.md +65 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/sound.md +83 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/stage.md +192 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/style-bibles.md +117 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/treatment.md +114 -0
- package/plugins/litclaude/skills/lit-typographic-motion/references/type-craft.md +79 -0
- package/plugins/litclaude/skills/lit-typographic-motion/scripts/motion-doctor.mjs +78 -0
- package/plugins/litclaude/skills/lit-typographic-motion/scripts/motion-runtime.mjs +67 -0
- package/plugins/litclaude/skills/lit-typographic-motion/scripts/motion.mjs +132 -0
- package/plugins/litclaude/skills/litresearch/SKILL.md +54 -18
- package/scripts/doctor.mjs +5 -0
- package/scripts/postinstall.mjs +1 -0
- package/plugins/litclaude/skills/lit-korean/SKILL.md +0 -327
- /package/plugins/litclaude/skills/{lit-korean/references/fidelity-checklist.md → lit-humanizer/references/litclaude-fidelity-checklist.md} +0 -0
- /package/plugins/litclaude/skills/{lit-korean/references/rewrite-rules.md → lit-humanizer/references/litclaude-rewrite-rules.md} +0 -0
- /package/plugins/litclaude/skills/{lit-korean/references/style-patterns.md → lit-humanizer/references/litclaude-style-patterns.md} +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Sound
|
|
2
|
+
|
|
3
|
+
Every film gets a sound plan in `treatment.json` (`sound: { mode, plan, palette }`), on both render
|
|
4
|
+
paths. The renderer muxes whatever track the plan names, then audits the decoded stream after the
|
|
5
|
+
encode. Nothing here downloads a sample, a model or a library: the bed is synthesized in product
|
|
6
|
+
code, deterministically, from the treatment.
|
|
7
|
+
|
|
8
|
+
## Modes
|
|
9
|
+
|
|
10
|
+
| `sound.mode` | What is muxed | When |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| `generated` | A bed built by the product from the treatment: tempo, pulse, a pad chord progression and the accents the beats ask for | The default under a bare `lit`, on the type path and the stage path alike |
|
|
13
|
+
| `supplied` | The user's own audio file (`sound.file`), padded or trimmed to the film | The user gave a track |
|
|
14
|
+
| `authored` | A WAV the model wrote itself into the stage dir (`sound.file`) | The treatment calls for sound the bed cannot make |
|
|
15
|
+
| `none` | No audio stream | Only when the user asked for silence, or the `channel` plays muted by design |
|
|
16
|
+
|
|
17
|
+
A supplied or authored track is always muxed, whatever the state of the optional audio-analysis
|
|
18
|
+
tier; that tier only adds a beat grid for timing. Say in the reply that a generated bed is
|
|
19
|
+
generated, in plain words ("a generated music bed"), and name any supplied track by its file name.
|
|
20
|
+
Never switch a film to `none` to get past a check: that is a downgrade and the done-check records it.
|
|
21
|
+
|
|
22
|
+
## Palettes
|
|
23
|
+
|
|
24
|
+
`sound.palette` is `{ "timbre": "<timbre>", "key": "<pitch class>", "mode": "<major|minor>", "tempo": <60-160> }`.
|
|
25
|
+
The key is one of the twelve pitch classes (sharps or flats), the mode sets the chord
|
|
26
|
+
progression (major: I–V–vi–IV; minor: i–VI–III–VII, always resolving home on the last chord), and
|
|
27
|
+
the tempo sets the pulse grid in BPM. Pick them for the film, not by habit: two films should not
|
|
28
|
+
sound alike.
|
|
29
|
+
|
|
30
|
+
| Timbre | Character | Pad | Pulse | Accents |
|
|
31
|
+
| --- | --- | --- | --- | --- |
|
|
32
|
+
| `soft-keys` | Warm, close, unhurried | Rounded electric-piano partials, gently detuned, low-passed | A felt kick on every beat | Felt piano strike for cadences; a soft noise-and-thump hit |
|
|
33
|
+
| `glass` | Bright, airy, precise | Bell-like odd partials with an octave shimmer, wide detune | A small tick on every beat and a sub note every bar | Inharmonic bell partials for hits and cadences |
|
|
34
|
+
| `pulse-synth` | Driving, graphic | Filtered saw pad | Eighth-note bass on the chord root under a firm kick | Plucked saw cadence; a noise snap hit; a pitched riser |
|
|
35
|
+
| `felt-strings` | Slow, tender, wide | Bowed-string partials with vibrato | A brushed noise pulse on every beat | A felt strike for cadences; a soft hit |
|
|
36
|
+
|
|
37
|
+
`soft-keys` and `felt-strings` suit reflective or intimate films; `glass` suits clean diagrams,
|
|
38
|
+
precise explainers and cool palettes; `pulse-synth` suits graphic, fast-cut motion pieces.
|
|
39
|
+
|
|
40
|
+
## Cues
|
|
41
|
+
|
|
42
|
+
Accents appear only where a beat's free-text `sound` field asks for one. The words that ask are:
|
|
43
|
+
|
|
44
|
+
- **hit** — hit, impact, cut, stab, accent, 타격, 히트, 컷, 강세. The hit lands on the cut nearest
|
|
45
|
+
the beat's start when one is within 0.5 s, otherwise on the beat's start.
|
|
46
|
+
- **rise** — rise, riser, swell, build, build-up, lift, 상승, 고조, 빌드업. A filtered noise swell
|
|
47
|
+
that ends exactly on the beat's end boundary (the next change) and starts up to 1 s before it.
|
|
48
|
+
- **cadence** — cadence, resolve, resolution, close, ending, final chord, 종지, 마무리, 해결. A struck
|
|
49
|
+
tonic chord at the start of the beat's last 40 %, ringing into the film's end on the last beat.
|
|
50
|
+
|
|
51
|
+
A beat whose `sound` field names none of these gets pad and pulse only. `sound-cues.json` lists
|
|
52
|
+
every cue with `kind`, `t` (seconds), `beatIndex`, `target` (the beat boundary or cut it serves)
|
|
53
|
+
and `delta` (`t − target`), plus the palette, key, tempo, loudness, peak, sample count and the
|
|
54
|
+
bed's sha256. Look question 6 ("does the sound follow the cuts?") is answered from this file: each
|
|
55
|
+
asked-for accent should sit on its cut with a delta within one frame, and every cut the treatment
|
|
56
|
+
marks for sound should have a cue.
|
|
57
|
+
|
|
58
|
+
## Loudness and limits
|
|
59
|
+
|
|
60
|
+
- 48 kHz, 16-bit, stereo WAV of exactly `round(frameCount × 48000 / fps)` samples.
|
|
61
|
+
- Integrated loudness −16 LUFS ± 2, measured in product code per ITU-R BS.1770-4 (K-weighting at
|
|
62
|
+
48 kHz, 400 ms blocks with 75 % overlap, −70 LUFS absolute and −10 LU relative gates). A
|
|
63
|
+
deterministic soft limiter keeps the bed's sample peak at or under −2 dBFS.
|
|
64
|
+
- The pad is audible from the first quarter second, so the bed never opens on silence.
|
|
65
|
+
- The muxed stream is decoded and gated when `mode` is not `none`: a stream is present, its
|
|
66
|
+
duration is within ±0.1 s of the video, and its sample peak is at or under −0.5 dBFS. For a
|
|
67
|
+
generated bed, no stretch below −50 dBFS RMS (50 ms windows) may last longer than 1.5 s in the
|
|
68
|
+
first 3 s; that failure, or a missing stream when sound was planned, is exit 20
|
|
69
|
+
(`SOUND_INVALID`). For a supplied or authored track the head rule only warns.
|
|
70
|
+
- Audio is encoded as AAC at 256 kb/s. A supplied or authored track is padded or trimmed to the
|
|
71
|
+
video's duration with a 50 ms fade; the encode never uses `-shortest`, so the audio can never cut
|
|
72
|
+
the film short.
|
|
73
|
+
|
|
74
|
+
## Commands
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
node "$SKILL_ROOT/scripts/motion.mjs" sound --out <dir>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
reads `<dir>/treatment.json` and writes `<dir>/sound/bed.wav` and `<dir>/sound-cues.json`, so the
|
|
81
|
+
bed can be heard and its cues checked before a render. The render rebuilds the bed itself whenever
|
|
82
|
+
the film's frame count or cut times differ from the ones the bed was built for, so the muxed bed
|
|
83
|
+
always matches the film sample for sample. Two builds from the same treatment give the same bytes.
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Stage path
|
|
2
|
+
|
|
3
|
+
Read this after the treatment sets `path: stage`. On the stage path you author the film as a web
|
|
4
|
+
page and the renderer captures it frame by frame, deterministically, then runs the gate. You draw
|
|
5
|
+
whatever the treatment calls for: the subject, its motion, the type. The kit below gives motion
|
|
6
|
+
primitives only; it has no scenes, objects, layouts or copy, so every picture is yours.
|
|
7
|
+
|
|
8
|
+
## Contract
|
|
9
|
+
|
|
10
|
+
- Write `stage/index.html` inside the run's output directory, plus any local assets it needs:
|
|
11
|
+
SVG, PNG, JPG, WebP, JS, CSS and WAV files beside it. Nothing else is served.
|
|
12
|
+
- The page loads the fonts and the kit from the renderer's own routes:
|
|
13
|
+
`<link rel="stylesheet" href="/lit/fonts.css">` and `<script src="/lit/stage-kit.js"></script>`.
|
|
14
|
+
- The page calls `LitStage.define({ width, height, fps, duration, render })`, or sets
|
|
15
|
+
`window.litStage` to the same object. `render(t)` draws the frame at `t` seconds. The renderer
|
|
16
|
+
calls it once per frame, in order, from 0; the page never runs its own loop.
|
|
17
|
+
- Size is exactly 1920×1080 for `format: 16:9` or 1080×1920 for `format: 9:16`, matching the
|
|
18
|
+
treatment. A capture of any other size stops the run (exit 17).
|
|
19
|
+
- `fps` is 60. Use 30 only when the treatment says so.
|
|
20
|
+
- `duration` must land within ±10 % of `treatment.durationSec`, or the gate fails. Length comes
|
|
21
|
+
from the treatment's arc; do not trim the page to finish sooner.
|
|
22
|
+
- Put the copy in one `COPY` object at the top of `stage/index.html`, so it is easy to edit and
|
|
23
|
+
easy to find. Every `copy.lines` entry appears verbatim there, and the page must show each one:
|
|
24
|
+
the QA replay quotes any line it cannot find on screen (exit 17).
|
|
25
|
+
|
|
26
|
+
A skeleton, with placeholders only:
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<!doctype html>
|
|
30
|
+
<meta charset="utf-8">
|
|
31
|
+
<link rel="stylesheet" href="/lit/fonts.css">
|
|
32
|
+
<script src="/lit/stage-kit.js"></script>
|
|
33
|
+
<style>html, body { margin: 0; width: <width>px; height: <height>px; overflow: hidden; }</style>
|
|
34
|
+
<body>
|
|
35
|
+
<h1 id="line-1"></h1>
|
|
36
|
+
<script>
|
|
37
|
+
const COPY = { line1: "<one copy line>" };
|
|
38
|
+
const { define, text, ease, at } = LitStage;
|
|
39
|
+
const h1 = text(document.getElementById("line-1"));
|
|
40
|
+
h1.textContent = COPY.line1;
|
|
41
|
+
define({ width: <width>, height: <height>, fps: 60, duration: <seconds>, render(t) {
|
|
42
|
+
h1.style.opacity = at(t, <start>, <seconds>, ease.standard);
|
|
43
|
+
} });
|
|
44
|
+
</script>
|
|
45
|
+
</body>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Kit
|
|
49
|
+
|
|
50
|
+
Every primitive is a pure function of its inputs. `LitStage` holds them all.
|
|
51
|
+
|
|
52
|
+
- Eases: `ease.outCubic(p)`, `ease.inOutSine(p)`, `ease.outBack(p)`, `ease.standard(p)`,
|
|
53
|
+
`ease.emphasized(p)`, `ease.decelerate(p)`, `ease.accelerate(p)`; each maps 0..1 to 0..1 with
|
|
54
|
+
exact ends.
|
|
55
|
+
- `cubicBezier(x1, y1, x2, y2)` returns an ease: `const e = cubicBezier(0.2, 0, 0, 1); e(0.5)`.
|
|
56
|
+
- `spring({ stiffness, damping, mass, velocity })` returns an analytic position from 0 to 1:
|
|
57
|
+
`const s = spring({ damping: 14 }); el.style.scale = s(t - <start>);`.
|
|
58
|
+
`spring.settle({ damping: 14 })` returns the seconds it needs to settle within 0.1 %.
|
|
59
|
+
- `kf(t, keys)`: `kf(t, [{ t: 0, v: 0, ease: "outCubic" }, { t: 1.2, v: 240 }])`. Values may be
|
|
60
|
+
numbers, number arrays or colours (`"#rrggbb"`, `"rgb(...)"`); `ease` on a key shapes the segment
|
|
61
|
+
that starts there; outside the keys the ends hold.
|
|
62
|
+
- `stagger(i, each, { from, count })`: `const d = stagger(i, 0.06, { from: "center", count: n });`.
|
|
63
|
+
- `at(t, start, dur, ease)` returns eased local progress, clamped to 0..1.
|
|
64
|
+
- `seq([name, dur, offset?], ...)`: `const tl = seq(["in", 0.6], ["hold", 1.8], ["out", 0.5, -0.2]);`
|
|
65
|
+
then `tl.p("in", t)`, `tl.local("hold", t)`, `tl.active("out", t)`, `tl.seg.out.start`,
|
|
66
|
+
`tl.duration`. A negative offset overlaps the previous step.
|
|
67
|
+
- `rand(seed)` returns a seeded generator: `const r = rand(<seed>); r();`. Also
|
|
68
|
+
`rand.int(<seed>)(1, 6)` and `rand.range(<seed>)(-8, 8)`.
|
|
69
|
+
- `splitText(el, { by })` with `by` = `grapheme`, `word`, `eojeol` or `line` replaces the element's
|
|
70
|
+
text with `<span data-lit-part>` units and returns them:
|
|
71
|
+
`splitText(el, { by: "eojeol" }).forEach((s, i) => { s.style.opacity = at(t, i * 0.08, 0.4); });`.
|
|
72
|
+
Units are inline-block so transforms apply. Given a string it returns the pieces. It never splits
|
|
73
|
+
a Hangul syllable, and `eojeol` keeps each space-separated word whole.
|
|
74
|
+
- `drawPath(pathEl, p)` draws an SVG stroke from 0 to 1: `drawPath(stroke, at(t, 1, 1.4, ease.inOutSine));`.
|
|
75
|
+
- `morph(fromD, toD, { samples })` returns `p => d` for two single-subpath shapes:
|
|
76
|
+
`const m = morph(shapeA, shapeB); pathEl.setAttribute("d", m(at(t, 2, 0.8)));`.
|
|
77
|
+
- `clipRect(el, p, { from })` reveals from `left`, `right`, `top`, `bottom` or `center`;
|
|
78
|
+
`wipe(el, p, { from })` is the same reveal.
|
|
79
|
+
- `clipCircle(el, p, { x, y })` opens an iris from `x`% `y`%.
|
|
80
|
+
- `maskLinear(el, p, { angle, feather })` makes a soft-edged reveal along an angle.
|
|
81
|
+
- `mix(a, b, t, { space })` blends two colours in oklab (default) or sRGB:
|
|
82
|
+
`el.style.background = mix(<colour a>, <colour b>, p);`. `rgba(colour, alpha)` sets alpha.
|
|
83
|
+
- `clamp`, `lerp`, `invLerp`, `remap(x, a, b, c, d)` and `smoothstep(a, b, x)` for arithmetic.
|
|
84
|
+
- `text(el, { decor })` marks a text run; `text({ content, x, y, w, h })` registers canvas text
|
|
85
|
+
(see Text).
|
|
86
|
+
|
|
87
|
+
## Fonts
|
|
88
|
+
|
|
89
|
+
`/lit/fonts.css` declares only the product's verified faces, each with `font-display: block`, so
|
|
90
|
+
no frame is captured with a fallback face. Use these family names exactly:
|
|
91
|
+
|
|
92
|
+
| Family | Weights and widths | Scripts and role |
|
|
93
|
+
| --- | --- | --- |
|
|
94
|
+
| `"Pretendard"` | 400, 700 | Hangul and Latin; body and display |
|
|
95
|
+
| `"Archivo"` | 400, 700, 900 at `font-stretch` 75 %, 100 %, 125 % | Latin display |
|
|
96
|
+
| `"VT323"` | 400 | Latin terminal voice |
|
|
97
|
+
| `"Silkscreen"` | 400, 700 | Latin pixel voice |
|
|
98
|
+
| `"Galmuri9"` | 400 | Hangul and Latin pixel voice |
|
|
99
|
+
| `"MesloLGS NF"` | 400 | Latin monospace |
|
|
100
|
+
|
|
101
|
+
Any other family falls back to a system face. The QA replay reports that, and fails it for copy
|
|
102
|
+
text. Set Korean copy in Pretendard. Never ask for a weight the family does not have (the browser
|
|
103
|
+
would synthesize a fake bold), and never animate tracking or width on Hangul.
|
|
104
|
+
|
|
105
|
+
## Clock
|
|
106
|
+
|
|
107
|
+
The renderer owns time. It steps a virtual clock frame by frame from 0 and captures the frames in
|
|
108
|
+
order. `Date`, `performance.now`, `setTimeout`, `setInterval`, `requestAnimationFrame`,
|
|
109
|
+
`requestIdleCallback`, `document.timeline.currentTime`, CSS animations and transitions, the Web
|
|
110
|
+
Animations API (its `finished` promises included), SVG SMIL and `Math.random` (seeded from the
|
|
111
|
+
treatment) all follow that clock. So CSS keyframes, WAAPI chains and timers are safe to use.
|
|
112
|
+
|
|
113
|
+
Anything outside the clock is not. Never let `performance.timeOrigin`, `crypto.getRandomValues` or
|
|
114
|
+
any other real clock or entropy reach a visible value: a second capture in a fresh browser compares
|
|
115
|
+
sampled frames pixel by pixel, and a difference stops the run (exit 18) naming the frame and the
|
|
116
|
+
region. For variation, use `LitStage.rand(<seed>)`.
|
|
117
|
+
|
|
118
|
+
## Forbidden
|
|
119
|
+
|
|
120
|
+
- Elements `<video>`, `<audio>`, `<iframe>`, `<object>`, `<embed>` and `<frame>`; the APIs
|
|
121
|
+
`new Audio()`, `AudioContext` and `OfflineAudioContext`; `Worker`, `SharedWorker` and service
|
|
122
|
+
workers. Each stops the run with exit 17, naming the element or API. Sound comes from the
|
|
123
|
+
treatment's `sound` plan, never from the page.
|
|
124
|
+
- Network of any kind: `WebSocket`, `WebTransport`, `RTCPeerConnection`, any absolute `http(s)://`
|
|
125
|
+
or protocol-relative (`//…`) URL, and preconnect or prefetch links. Each is exit 19. Everything
|
|
126
|
+
the page uses is local.
|
|
127
|
+
- Third-party libraries: never install, download or copy one into the stage directory. Use the kit
|
|
128
|
+
and your own code.
|
|
129
|
+
- Rasters: at most 24 raster images and 8 MB in total. Ten or more rasters of the same size (a
|
|
130
|
+
flipbook), or any animated GIF, APNG or WebP, is exit 17. Rasters are textures and stills, never a
|
|
131
|
+
frame sequence.
|
|
132
|
+
- Hand-encoded films are not the deliverable: no frame loop encoded by hand, no screen recording,
|
|
133
|
+
no raster flipbook. Every frame passes through the renderer.
|
|
134
|
+
|
|
135
|
+
## Text
|
|
136
|
+
|
|
137
|
+
The QA replay reads DOM text in a separate browser and never touches the master capture.
|
|
138
|
+
|
|
139
|
+
- Mark each copy element with `LitStage.text(el)`, or let its nearest block element carry the run.
|
|
140
|
+
A run is the text of that element, however it is split into spans.
|
|
141
|
+
- Illustrative text inside a drawn subject is decor: `text(el, { decor: true })`. Decor is exempt
|
|
142
|
+
from title-safe and the reading floor, its contrast is a warning only, it may never carry a copy
|
|
143
|
+
line, and it may cover at most 25 % of the visible text area in any sample.
|
|
144
|
+
- Canvas and WebGL text is invisible to the QA unless you register it every frame with
|
|
145
|
+
`LitStage.text({ content, x, y, w, h })`. Unregistered canvas text is reported as not measured.
|
|
146
|
+
- Copy stays inside the central 90 % of the frame, reaches 4.5:1 contrast (3:1 when its font size
|
|
147
|
+
is at least 3 % of the frame's short side), and stays readable for at least its reading floor.
|
|
148
|
+
- Never put the request, the idea, a file name or an internal term on screen as a label.
|
|
149
|
+
|
|
150
|
+
## Unsupported
|
|
151
|
+
|
|
152
|
+
- Morphs between shapes with more than one subpath: `morph` throws
|
|
153
|
+
`morph: multi-subpath paths are unsupported`. Morph each subpath separately, or cross-fade.
|
|
154
|
+
- Anything that reads the real clock or unseeded entropy for a visible value.
|
|
155
|
+
- Video and audio elements, and any page-side sound.
|
|
156
|
+
- No tested effect is non-deterministic on the stage renderer: CSS `filter: blur()`,
|
|
157
|
+
`backdrop-filter`, `mix-blend-mode`, `box-shadow`, SVG `feGaussianBlur` and SMIL, Canvas2D
|
|
158
|
+
`shadowBlur` and a WebGL shader all match a fresh replay pixel for pixel. The renderer rasterizes
|
|
159
|
+
every tile in full on the CPU (SwiftShader, no partial raster). An element whose opacity and
|
|
160
|
+
transform change together can still rasterize one level apart depending on which earlier frames
|
|
161
|
+
were painted and captured, so the determinism replay paints and captures every frame exactly as
|
|
162
|
+
the master does; stills-only frames may differ from the master by that one level. For WebGL, create the context with
|
|
163
|
+
`preserveDrawingBuffer: true`.
|
|
164
|
+
|
|
165
|
+
## Commands
|
|
166
|
+
|
|
167
|
+
`SKILL_ROOT` is the skill's directory; run the installed commands by absolute path.
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
node "$SKILL_ROOT/scripts/motion.mjs" stage --out <dir> --round <N> --stills-only
|
|
171
|
+
node "$SKILL_ROOT/scripts/motion.mjs" stage --out <dir> --round <N>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The first writes the stills set only: every beat midpoint, a −6 / 0 / +6 frame transition strip
|
|
175
|
+
per cut, and a 12-frame contact sheet. Nothing is encoded. The second is the full render: the
|
|
176
|
+
master, the preview, the poster, the reduced-motion still, the determinism re-check, the text QA
|
|
177
|
+
replay, the sound mux and the gate. Give the full render call a timeout of at least 600 s, and
|
|
178
|
+
never shorten the film to save render time.
|
|
179
|
+
|
|
180
|
+
| Exit | Meaning |
|
|
181
|
+
| --- | --- |
|
|
182
|
+
| 10 | No Chrome |
|
|
183
|
+
| 11 | The page asked for WebGL and none is available |
|
|
184
|
+
| 12 | No ffmpeg; the stills and the sheet are still written |
|
|
185
|
+
| 13 | Gate FAIL |
|
|
186
|
+
| 14 | Runtime not pre-warmed |
|
|
187
|
+
| 15 | A font is missing or its hash differs |
|
|
188
|
+
| 16 | Treatment invalid (names the field) |
|
|
189
|
+
| 17 | Stage contract error |
|
|
190
|
+
| 18 | Nondeterministic frame |
|
|
191
|
+
| 19 | Network request |
|
|
192
|
+
| 20 | Sound invalid |
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Style bibles
|
|
2
|
+
|
|
3
|
+
A style bible is the one page that decides how a film looks before any scene is written: the
|
|
4
|
+
palette, the three type voices, the motion vocabulary, the shader passes and their order, the
|
|
5
|
+
layout grid, what to avoid, and what makes this film its own. The engine carries each preset as
|
|
6
|
+
data (`engine/core/presets.mjs`); this page is the reasoning behind that data. Write the film's own
|
|
7
|
+
short bible in the reply when the user asked for a direction; under a bare `lit`, state the preset
|
|
8
|
+
and why in one sentence.
|
|
9
|
+
|
|
10
|
+
## Template
|
|
11
|
+
|
|
12
|
+
| Part | Decide |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| Idea | One sentence: what the film says and the single image it leaves. |
|
|
15
|
+
| Palette | A ground, one type colour, one signal hue, at most one rare accent. Name every colour by role. |
|
|
16
|
+
| Three voices | Display (titles, hooks), body (running text; Hangul body for Korean), machine (data, credits, counters). |
|
|
17
|
+
| Motion tone | Named tokens only: how type lands, how long it holds, how a shot ends. No per-shot curves. |
|
|
18
|
+
| Passes | Which look-library passes run, in which order, and how strongly. |
|
|
19
|
+
| Grid | Columns, gutter, margin, baseline; where the eye enters each shot. |
|
|
20
|
+
| Anti-slop | Three to five things this film must not do. |
|
|
21
|
+
| Originality | What is this brief's own: its metaphor, its rhythm, its one accent moment. |
|
|
22
|
+
|
|
23
|
+
## Auto-pick (MO-B-00)
|
|
24
|
+
|
|
25
|
+
Checked in order, first match wins, whole words only (a Korean keyword must start a token, so it
|
|
26
|
+
never matches the tail of a longer word). An explicit `style` always wins.
|
|
27
|
+
|
|
28
|
+
| The brief mentions | Preset |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| 터미널, CRT, 해커 / terminal, hacker | terminalcore |
|
|
31
|
+
| 물결, 파도, 잔잔한, 흐름 / gradient, wave, tide, calm | tidal |
|
|
32
|
+
| anything else | swiss-signal |
|
|
33
|
+
|
|
34
|
+
System, status and flow are deliberately not keywords: they appear in payment systems, design
|
|
35
|
+
systems and workflows that have nothing to do with a terminal or a tide.
|
|
36
|
+
|
|
37
|
+
## swiss-signal (default)
|
|
38
|
+
|
|
39
|
+
**Palette.** Ink ground `#0C0E13`; bone type `#E9EBE4`; one teal signal `#0F7A82`; one amber
|
|
40
|
+
accent `#D9A441` for a single moment; graphite `#4B5058` for hairlines only. Bone on ink is 16:1.
|
|
41
|
+
Teal on ink is 3.8:1, which clears the 3:1 large-type floor but not 4.5:1, so teal type must be at
|
|
42
|
+
least 32 px (25 px at 700 weight) or a mark, never small text.
|
|
43
|
+
|
|
44
|
+
**Voices.** Display: Archivo in static width steps (75, 100, 125) at 900, stepping width, never
|
|
45
|
+
interpolating; Hangul display in the Pretendard Bold file. Body: Archivo 400 / Pretendard Regular.
|
|
46
|
+
Machine: MesloLGS NF for annotations, credits and figures.
|
|
47
|
+
|
|
48
|
+
**Motion.** `slam`: 180 ms on the deceleration curve cubic-bezier(0.16, 1, 0.3, 1), landing on the
|
|
49
|
+
downbeat, entrance scale never below 0.95. `hold`: 0.6–0.9 s of stillness after a slam. `cut`: a
|
|
50
|
+
hard cut with no easing between shots. No spring, no bounce: print is precise, not playful.
|
|
51
|
+
|
|
52
|
+
**Passes.** swiss-grid (hairline rules that make the grid visible) then dither (Bayer 4x4 at about
|
|
53
|
+
0.3 strength, an engraved-print texture). Grain, vignette and a little chromatic aberration come
|
|
54
|
+
from the post chain. No bloom: glow on bone type reads as cheap.
|
|
55
|
+
|
|
56
|
+
**Grid.** 12 columns, 24 px gutter, 96 px margin, 8 px baseline. Asymmetric: type sits on the left
|
|
57
|
+
column edge, annotations beside the headline rather than stacked under it, generous empty space.
|
|
58
|
+
|
|
59
|
+
**Anti-slop.** Centered fade-ins as the only move; one ease for everything; glitch without a beat
|
|
60
|
+
reason; any second hue; bloom; a hold so long it reads as a stall.
|
|
61
|
+
|
|
62
|
+
**Originality.** Borrow the pattern (one ground, one signal, one rare accent), never a known
|
|
63
|
+
film's colours. Each shot gets this brief's own metaphor.
|
|
64
|
+
|
|
65
|
+
## terminalcore
|
|
66
|
+
|
|
67
|
+
**Palette.** Navy ground `#05070A`; panel `#0C1116` for window chrome; one signal hue per film,
|
|
68
|
+
phosphor green `#39FF6A` (default) or electric blue `#2FB6FF`, never both; status grey `#7C8B93`.
|
|
69
|
+
Green on navy is 15:1 and grey on navy 5.7:1 on a flat ground. The crt vignette and scanlines
|
|
70
|
+
darken the window corners below 4.5:1 for grey, so the chrome label and the readout there are set in
|
|
71
|
+
the signal hue; grey stays on strokes and on text nearer the centre.
|
|
72
|
+
|
|
73
|
+
**Voices.** Display: Galmuri9 for Hangul (pixel type at whole multiples of its 9 px grid, at least
|
|
74
|
+
36 px) with VT323 for Latin. Machine: MesloLGS NF for readouts. Chrome labels: Silkscreen. Galmuri
|
|
75
|
+
and VT323 never share a status line cell for cell.
|
|
76
|
+
|
|
77
|
+
**Motion.** `type-in`: characters appear at the terminal's rate (22 per second), linear, with no
|
|
78
|
+
easing, because a terminal does not ease. `boot-flicker`: the first 250 ms of a shot flicker at the
|
|
79
|
+
capped CRT amplitude, counted as one event. Hard cuts on downbeats. Nothing overshoots.
|
|
80
|
+
|
|
81
|
+
**Passes.** terminal-ui (window chrome, meters, readout) then crt (scanlines, curvature, capped
|
|
82
|
+
flicker) then dither (Bayer 4x4, 2 px cells) then glitch (rare, at most 0.5 hits per second, each hit
|
|
83
|
+
one band for two frames). This is the only preset with four passes, so the per-shot event budget
|
|
84
|
+
(two events in any second) is the real limit.
|
|
85
|
+
|
|
86
|
+
**Grid.** One thin-bordered window on a flat field, no depth or shadow; text aligned to the
|
|
87
|
+
character grid so it never drifts against the chrome.
|
|
88
|
+
|
|
89
|
+
**Anti-slop.** Falling code rain; purple-cyan neon haze; glitch running continuously; two signal
|
|
90
|
+
hues; pixel type too small to read.
|
|
91
|
+
|
|
92
|
+
**Originality.** The window, meters and readout are this engine's own drawings, not a copy of a
|
|
93
|
+
real operating system or terminal app.
|
|
94
|
+
|
|
95
|
+
## tidal
|
|
96
|
+
|
|
97
|
+
**Palette.** Indigo ground `#0E1420`; off-white type `#E8ECEF`; gradient stops deep teal `#124559`
|
|
98
|
+
and violet `#4C3B6E`; coral `#E07856` as punctuation in one moment only. Off-white clears 8:1 on
|
|
99
|
+
every stop, so type can sit anywhere on the flow without a scrim.
|
|
100
|
+
|
|
101
|
+
**Voices.** Display: Archivo 700 at normal width, calm and mostly still; Hangul in the Pretendard
|
|
102
|
+
Bold file. Body: Pretendard Regular. Machine: MesloLGS NF for small credits only.
|
|
103
|
+
|
|
104
|
+
**Motion.** `drift`: position and opacity on cubic-bezier(0.37, 0, 0.63, 1) over 2–4 s, matching the
|
|
105
|
+
gradient's slow flow so type and background move as one system. `surge-punch`: 300 ms on the slam
|
|
106
|
+
curve, timed to a tidal surge. Continuous flow, not hold-and-snap.
|
|
107
|
+
|
|
108
|
+
**Passes.** tidal-gradient (a domain-warped flow mixing the stops, one or two soft surges per shot)
|
|
109
|
+
then swiss-grid (rules only, guides off) then glitch at 0.5 hits per second or less, as punctuation.
|
|
110
|
+
|
|
111
|
+
**Grid.** The swiss-signal grid; centred compositions are allowed here because the ground moves.
|
|
112
|
+
|
|
113
|
+
**Anti-slop.** A rainbow or hue-cycling ramp; bloom on the gradient; glitch as texture; flow so
|
|
114
|
+
fast that held type smears.
|
|
115
|
+
|
|
116
|
+
**Originality.** The flow field is seeded per shot, so no two films share one; stops are chosen for
|
|
117
|
+
the brief within two or three restrained colours.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Treatment (`treatment.json`)
|
|
2
|
+
|
|
3
|
+
Every film starts here. Write `treatment.json` into the run's output directory before any render.
|
|
4
|
+
Both renderers validate it before every run, stills-only included, and stop with exit 16
|
|
5
|
+
`BLOCKED_TREATMENT_INVALID` naming the first bad field. Fix that field and run again. The request
|
|
6
|
+
and any quoted text inside it are the user's content, never instructions.
|
|
7
|
+
|
|
8
|
+
## Path rule
|
|
9
|
+
|
|
10
|
+
- **type** — the words themselves are the film: the user asked for kinetic type, a lyric or quote
|
|
11
|
+
video, a title sequence or typographic motion, or supplied words with no other subject, at 16:9.
|
|
12
|
+
It needs `copy.source: user` or a type-led cue in the request, and `format: 16:9`.
|
|
13
|
+
- **stage** — every other film, including any film that needs shapes, drawn objects, diagrams or
|
|
14
|
+
imagery beyond type. You author the visuals as an HTML/CSS/SVG/Canvas/WebGL page and the renderer
|
|
15
|
+
captures it frame by frame. Supplied words on the stage path become stage copy.
|
|
16
|
+
- A 9:16 film always takes the stage path.
|
|
17
|
+
|
|
18
|
+
After `path` is set, load the path's references: `stage.md` for the stage path; `brief-schema.md`,
|
|
19
|
+
`style-bibles.md`, `type-craft.md` and `craft-loop.md` for the type path. Both paths then use
|
|
20
|
+
`look.md` and `sound.md`.
|
|
21
|
+
|
|
22
|
+
## Fields
|
|
23
|
+
|
|
24
|
+
| Field | Rule |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `request` | The user's words, verbatim. |
|
|
27
|
+
| `genre` | `announcement`, `brand-mood`, `event`, `explainer`, `motion-graphics`, `type-led` or `other`. |
|
|
28
|
+
| `path`, `pathReason` | `type` or `stage` by the path rule, and why. |
|
|
29
|
+
| `idea` | One sentence: what the film does. It may not restate the request. |
|
|
30
|
+
| `audience`, `channel` | Who watches, and where. |
|
|
31
|
+
| `format`, `formatReason` | `16:9` (1920×1080) or `9:16` (1080×1920), with a reason tied to the channel. |
|
|
32
|
+
| `durationSec` | 4–90. Unless the user asked for a length, `announcement`, `event`, `explainer` and `motion-graphics` films run at least 10 s. |
|
|
33
|
+
| `beats[]` | `{t0, t1, purpose, onScreen, motion, sound}`, covering 0 to `durationSec` with no gap over 0.25 s; every beat at least 1.2 s; at least the genre arc's stage count. |
|
|
34
|
+
| `subject` | `{name, source: user \| invented, specifics[]}`. An invented subject has a name and at least 2 concrete specifics: what it is or does, for whom, one distinctive detail. |
|
|
35
|
+
| `visualDevices[]` | `{kind, role: subject \| support \| texture, beats[]}` (beat indices). Kinds: `illustration`, `diagram`, `chart`, `icon`, `shape`, `path`, `mask`, `depth3d`, `particles`, `grid`, `gradient`, `photo-texture`. Stage path: at least one `subject` device on screen for half the film or more, and at least 2 distinct kinds that are not `grid`, `gradient`, `particles` or `photo-texture` (those are always `texture`). |
|
|
36
|
+
| `typePlan` | `{faces[], hierarchy, maxWordsOnScreen, index?}`. Faces: `Pretendard`, `Archivo`, `VT323`, `Silkscreen`, `Galmuri9`, `MesloLGS NF`. `index: true` only when the film should show a running shot index. |
|
|
37
|
+
| `palette[]` | 3–6 `{color, role}` entries. |
|
|
38
|
+
| `sound` | `{mode, plan, palette}`. `generated` is the default under bare `lit` on both paths; `supplied` and `authored` add `file`; `none` only when the user asked for silence or the channel plays muted by design. See `sound.md`. |
|
|
39
|
+
| `copy` | `{source: user \| invented, lines[]}`. With `user`, every line must be found in the request. With `invented`, write it from `subject.specifics`; no line may restate the request. |
|
|
40
|
+
| `inventions[]` | Every invented part: the subject's name, its specifics, the copy. Required whenever the subject or the copy is invented. |
|
|
41
|
+
| `ambition` | 1–2 sentences, in craft terms, on what would make this film excellent. |
|
|
42
|
+
| `seed` | Optional integer; the renderer seeds `Math.random` from it (default: a hash of the request). |
|
|
43
|
+
| `fps`, `posterBeat` | Optional: `30` instead of the default 60 (stage path); the beat whose midpoint is the poster (default the middle beat). |
|
|
44
|
+
|
|
45
|
+
Comparisons normalize text first: NFC, lowercase, no whitespace or punctuation. Quoted spans are
|
|
46
|
+
removed from the request before `idea` and invented copy are compared with it; a shared run of
|
|
47
|
+
min(10, half the normalized request) characters counts as a restatement.
|
|
48
|
+
|
|
49
|
+
## Example (placeholders only)
|
|
50
|
+
|
|
51
|
+
The values below show the shape. They are placeholders, the validator rejects them, and a
|
|
52
|
+
treatment whose free text matches this example's for half or more of its values exits 16 with
|
|
53
|
+
`copiedExample`. Write this film's own treatment.
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"request": "<the user's words, verbatim>",
|
|
58
|
+
"genre": "<one genre>",
|
|
59
|
+
"path": "<type or stage>",
|
|
60
|
+
"pathReason": "<why this path>",
|
|
61
|
+
"idea": "<one sentence on what the film does>",
|
|
62
|
+
"audience": "<who watches>",
|
|
63
|
+
"channel": "<where it plays>",
|
|
64
|
+
"format": "<16:9 or 9:16>",
|
|
65
|
+
"formatReason": "<why, from the channel>",
|
|
66
|
+
"durationSec": "<4-90>",
|
|
67
|
+
"beats": [
|
|
68
|
+
{ "t0": "<start s>", "t1": "<end s>", "purpose": "<this beat's job in the arc>", "onScreen": "<what is drawn and written>", "motion": "<how it moves and cuts>", "sound": "<what the sound does here>" }
|
|
69
|
+
],
|
|
70
|
+
"subject": { "name": "<subject name>", "source": "<user or invented>", "specifics": ["<what it is or does>", "<one distinctive detail>"] },
|
|
71
|
+
"visualDevices": [{ "kind": "<device kind>", "role": "<subject, support or texture>", "beats": ["<beat index>"] }],
|
|
72
|
+
"typePlan": { "faces": ["<face>"], "hierarchy": "<type hierarchy>", "maxWordsOnScreen": "<n>" },
|
|
73
|
+
"palette": [{ "color": "<#hex>", "role": "<colour role>" }],
|
|
74
|
+
"sound": { "mode": "<mode>", "plan": "<sound plan>", "palette": { "timbre": "<timbre>", "key": "<key>", "mode": "<major or minor>", "tempo": "<bpm>" } },
|
|
75
|
+
"copy": { "source": "<user or invented>", "lines": ["<one copy line>"] },
|
|
76
|
+
"inventions": ["<every invented part>"],
|
|
77
|
+
"ambition": "<what would make this excellent, in craft terms>"
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Genre arcs
|
|
82
|
+
|
|
83
|
+
Length comes from the arc. Each stage is at least one beat.
|
|
84
|
+
|
|
85
|
+
- **announcement:** hook → context → key moment → details → close.
|
|
86
|
+
- **brand-mood:** motif → variation → peak → resolve.
|
|
87
|
+
- **event:** hook → what, when, where → highlight → close.
|
|
88
|
+
- **explainer:** question → steps → result → recap.
|
|
89
|
+
- **motion-graphics:** opening motif → set piece → set piece → peak → resolve.
|
|
90
|
+
- **type-led:** one breath per line, with emphasis and pause.
|
|
91
|
+
- **other:** at least three beats with a clear turn.
|
|
92
|
+
|
|
93
|
+
## Invention
|
|
94
|
+
|
|
95
|
+
Keep the user's own words when they supplied words, and never rewrite their meaning. When the
|
|
96
|
+
request names no specific subject, words or facts, invent a concrete example subject and write the
|
|
97
|
+
copy from its specifics, never from the request's wording. List every invention in `inventions[]`;
|
|
98
|
+
the reply labels each one as an invented example.
|
|
99
|
+
|
|
100
|
+
## Craft
|
|
101
|
+
|
|
102
|
+
Show the subject; do not only name it. With the sound muted and every word hidden, the drawn subject
|
|
103
|
+
alone should still suggest what the film is about.
|
|
104
|
+
|
|
105
|
+
Aim for professional motion-design craft in every film: varied transitions (match cuts, masks,
|
|
106
|
+
morphs), rhythm locked to the sound, layered depth, clear hierarchy, deliberate easing. Every beat
|
|
107
|
+
shows something new. Length comes from the arc; never shorten the film or merge beats to pass a
|
|
108
|
+
check.
|
|
109
|
+
|
|
110
|
+
A beat's `onScreen` is a plan the look rounds check against the pixels, so write what a viewer will
|
|
111
|
+
see, not a mood. A beat's `sound` field is where accents are asked for: a hit on a cut, a rise into
|
|
112
|
+
a change, a closing cadence. Never downgrade to pass: shortening the film, dropping a beat or the
|
|
113
|
+
subject device, switching the sound to `none` or the path from stage to type is recorded by the
|
|
114
|
+
done-check and has to be said in the reply.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Type craft for Korean and Latin in motion
|
|
2
|
+
|
|
3
|
+
Rules the type kit enforces and the gate checks. Where the kit enforces a rule by construction the
|
|
4
|
+
gate still measures it from the log, so a custom scene cannot quietly break it.
|
|
5
|
+
|
|
6
|
+
## Script runs (MO-FT-04)
|
|
7
|
+
|
|
8
|
+
A string is split into script runs before layout. Digits, punctuation and spaces are not a script:
|
|
9
|
+
they join the run beside them, the left one when they sit between two scripts, the right one before
|
|
10
|
+
the first letter. "2026년" is one Hangul run; "LIT팀" is a Latin run and a Hangul run split exactly
|
|
11
|
+
at the script boundary. Each run gets its voice's font for that script.
|
|
12
|
+
|
|
13
|
+
- Latin runs may track and step width (Archivo 75 / 100 / 125).
|
|
14
|
+
- Hangul runs are forced to tracking 0 and width 100, even inside a mixed line whose Latin run is
|
|
15
|
+
animating. Emphasis on Hangul is weight only, and only between the two files lit-pptx already
|
|
16
|
+
ships (Pretendard Regular 400 and Bold 700). Nothing is synthesized: no fake bold, no horizontal
|
|
17
|
+
scale, no condensed Hangul (MO-A-33).
|
|
18
|
+
|
|
19
|
+
## Line breaks and reveals (MO-A-13, MO-FT-05)
|
|
20
|
+
|
|
21
|
+
Korean breaks only at whitespace between eojeol (a word with its attached particles). A karaoke
|
|
22
|
+
reveal step is one eojeol; a list reveal step is one whole item. The engine wraps lines by eojeol
|
|
23
|
+
and shrinks the size until a block fits, rather than breaking inside a word.
|
|
24
|
+
|
|
25
|
+
## Kerning and split words (MO-A-32)
|
|
26
|
+
|
|
27
|
+
A word drawn in pieces (a colour split, a letter-by-letter reveal) places piece i at the kerned
|
|
28
|
+
position of glyph i in the whole run (`glyphX`), never at the width of the text before it, which
|
|
29
|
+
drops the kerning pair at the split and shows as a hairline gap.
|
|
30
|
+
|
|
31
|
+
## Punctuation (MO-A-34)
|
|
32
|
+
|
|
33
|
+
Display text goes through `smart()`: `...` to an ellipsis, straight quotes to curly, leading
|
|
34
|
+
elisions (’cause, ’90s) to an apostrophe. The machine voice and the terminal look keep typewriter
|
|
35
|
+
punctuation through `plain()`, because they show typed input.
|
|
36
|
+
|
|
37
|
+
## No outline, no halo (MO-A-35)
|
|
38
|
+
|
|
39
|
+
Never stroke glyph outlines or add a halo to make type legible. Fix legibility with the palette,
|
|
40
|
+
size or weight. The kit has no outline API; the single-stroke plotter fonts are strokes by design
|
|
41
|
+
and are the one exception.
|
|
42
|
+
|
|
43
|
+
## Sizes and weights at 1080p (MO-FT-07)
|
|
44
|
+
|
|
45
|
+
- Pretendard Regular for held type up to about 32 px cap height; slams and large kinetic type use
|
|
46
|
+
Bold, because thin strokes break up under motion blur from the sub-frame samples.
|
|
47
|
+
- Galmuri9 only at whole multiples of its 9 px grid and at least 36 px (4x).
|
|
48
|
+
- VT323 and Galmuri never share a readout cell for cell; give each its own line.
|
|
49
|
+
- Contrast floors are by rendered font size: at least 32 px (or 25 px at weight 700) is large and
|
|
50
|
+
needs 3:1; anything smaller needs 4.5:1 (MO-C-06).
|
|
51
|
+
|
|
52
|
+
## Tracking (MO-C-25)
|
|
53
|
+
|
|
54
|
+
Display type may tighten to -0.04 em and no further. The machine voice and small type never go
|
|
55
|
+
negative: a monospace grid with negative tracking fights itself.
|
|
56
|
+
|
|
57
|
+
## Multi-line blocks (MO-C-26, MO-C-27)
|
|
58
|
+
|
|
59
|
+
A block of two or more lines keeps a line height of at least 1.5 (Latin) or 1.6 (Korean). A
|
|
60
|
+
paragraph card of running Latin text keeps 60–75 characters per line; a Korean card gets an
|
|
61
|
+
advisory 30–45 characters.
|
|
62
|
+
|
|
63
|
+
## Reading time (MO-C-07, MO-C-08)
|
|
64
|
+
|
|
65
|
+
One floor function for every unit:
|
|
66
|
+
|
|
67
|
+
- line or scene with text: `max(1.0 if any Hangul else 0.9, 0.2 x Hangul syllables + Latin words / 3.3)`
|
|
68
|
+
and no more than 17 Latin characters per second;
|
|
69
|
+
- a word shown alone: `max(0.5, 0.2 x H + W / 3.3)`;
|
|
70
|
+
- a reveal step inside a line that stays up: 0.35 s.
|
|
71
|
+
|
|
72
|
+
The engine generates holds at 1.25 x the floor, so its own timeline always clears the gate; a
|
|
73
|
+
4-eojeol line with 14 syllables floors at 2.8 s and gets 3.5 s before beat snapping.
|
|
74
|
+
|
|
75
|
+
## Glyph coverage (MO-D-04)
|
|
76
|
+
|
|
77
|
+
Before the first frame every character is looked up in the cmap of the font its run resolves to.
|
|
78
|
+
A missing glyph stops the render with the font and character named; change the text or the style.
|
|
79
|
+
The stroke fonts cover Latin only.
|