@litfamily/litopencode 1.0.7 → 1.0.9
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 +18 -0
- package/README-Ko-KR.md +314 -31
- package/README.md +312 -29
- package/dist/activation-primary-prompts.d.ts +1 -0
- package/dist/activation-primary-prompts.js +16 -0
- package/dist/activation-probe.js +4 -1
- package/dist/activation-prompt-utils.d.ts +1 -1
- package/dist/activation-routing.d.ts +6 -1
- package/dist/activation-routing.js +174 -16
- package/dist/activation-workflow-prompts.d.ts +1 -1
- package/dist/activation-workflow-prompts.js +18 -17
- package/dist/activation.d.ts +3 -2
- package/dist/activation.js +6 -6
- package/dist/agents/defaults.js +14 -6
- package/dist/cli/command-aliases.js +24 -22
- package/dist/cli/doctor.js +3 -0
- package/dist/cli/install-report.d.ts +1 -0
- package/dist/cli/install-report.js +4 -0
- package/dist/cli/install.js +7 -4
- package/dist/cli/managed-skill-assets.d.ts +1 -1
- package/dist/cli/managed-skill-assets.js +15 -5
- package/dist/cli/motion-runtime.d.ts +6 -0
- package/dist/cli/motion-runtime.js +46 -0
- package/dist/cli/native-skill-install.js +32 -9
- package/dist/cli/native-skill-integrity.js +1 -0
- package/dist/cli/native-skills.d.ts +2 -0
- package/dist/cli/native-skills.js +2 -1
- package/dist/cli/office-dependencies.d.ts +14 -0
- package/dist/cli/office-dependencies.js +24 -0
- package/dist/cli.js +13 -3
- package/dist/commands.d.ts +2 -11
- package/dist/commands.js +9 -17
- package/dist/deliverable-hedge-guard.d.ts +20 -21
- package/dist/deliverable-hedge-guard.js +234 -275
- package/dist/features.d.ts +81 -2
- package/dist/features.js +80 -13
- package/dist/hooks.d.ts +3 -2
- package/dist/hooks.js +4 -4
- package/dist/ignition.d.ts +1 -1
- package/dist/ignition.js +15 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/interface-handoff.d.ts +1 -0
- package/dist/interface-handoff.js +1 -0
- package/dist/motion-image-reads.d.ts +6 -0
- package/dist/motion-image-reads.js +46 -0
- package/dist/server.js +13 -11
- package/dist/skill-renames.d.ts +4 -2
- package/dist/skill-renames.js +12 -4
- package/dist/skills.d.ts +31 -3
- package/dist/skills.js +53 -9
- package/dist/tools.js +4 -4
- package/docs/ab/S11/baseline-desktop.webp +0 -0
- package/docs/ab/S11/baseline-phone.webp +0 -0
- package/docs/ab/S11/lit-desktop.webp +0 -0
- package/docs/ab/S11/lit-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/lit-desktop.webp +0 -0
- package/docs/ab/S3/lit-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/lit-desktop.webp +0 -0
- package/docs/ab/S4/lit-phone.webp +0 -0
- package/docs/ab/S5/lit-slides.webp +0 -0
- package/docs/ab/S7/lit-diagram.webp +0 -0
- package/docs/ab/S8/baseline-slides.webp +0 -0
- package/docs/ab/S8/lit-slides.webp +0 -0
- package/docs/ab/S9/lit-pages.webp +0 -0
- 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-guards.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/doctor-installer.webp +0 -0
- package/docs/assets/skills/durable-litgoal.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-fetch.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-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-typographic-motion.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/lsp.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/rules.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/reference-Ko-KR.md +5 -1
- package/docs/reference.md +6 -2
- package/package.json +1 -1
- package/rules/bundled-rules/lit-humanizer.md +12 -0
- package/skills/autoconference/SKILL.md +1 -1
- package/skills/autoconference/assets/report_template.md +1 -1
- package/skills/autoresearch/references/type-checklists.md +1 -1
- package/skills/browser-drive/SKILL.md +19 -5
- package/skills/browser-drive/scripts/capability-probe.mjs +26 -5
- package/skills/frontend-ui-ux/SKILL.md +10 -15
- package/skills/frontend-ui-ux/data/THIRD-PARTY-NOTICE.txt +10 -0
- package/skills/frontend-ui-ux/references/adaptive-layout.md +3 -11
- package/skills/frontend-ui-ux/references/brand-and-imagery.md +6 -11
- package/skills/frontend-ui-ux/references/complete-contract.md +10 -3
- package/skills/frontend-ui-ux/references/composition.md +1 -7
- package/skills/frontend-ui-ux/references/craft-floor.md +94 -0
- package/skills/frontend-ui-ux/references/creative-directions.md +1 -7
- package/skills/frontend-ui-ux/references/evidence-review.md +2 -12
- package/skills/frontend-ui-ux/references/implementation-platforms.md +1 -4
- package/skills/frontend-ui-ux/references/inclusive-interface.md +1 -3
- package/skills/frontend-ui-ux/references/interaction-motion.md +1 -7
- package/skills/frontend-ui-ux/references/motion-guide.md +125 -0
- package/skills/frontend-ui-ux/references/operating-lanes.md +2 -8
- package/skills/frontend-ui-ux/references/product-direction.md +1 -6
- package/skills/frontend-ui-ux/references/production.md +12 -5
- package/skills/frontend-ui-ux/references/redesign-playbook.md +1 -7
- package/skills/frontend-ui-ux/references/slop-register.md +103 -0
- package/skills/frontend-ui-ux/references/system-foundations.md +1 -8
- package/skills/frontend-ui-ux/references/taste-direction.md +4 -11
- package/skills/frontend-ui-ux/references/visual-language.md +1 -6
- package/skills/frontend-ui-ux/references/visual-reconstruction.md +2 -7
- package/skills/frontend-ui-ux/scripts/probe-page.mjs +326 -0
- package/skills/frontend-ui-ux/scripts/probe-server.mjs +24 -0
- package/skills/frontend-ui-ux/scripts/probe-static.mjs +42 -0
- package/skills/frontend-ui-ux/scripts/probe-thresholds.json +86 -0
- package/skills/frontend-ui-ux/scripts/probe.mjs +183 -0
- package/skills/lit-comprehend/SKILL.md +10 -11
- package/skills/lit-comprehend/references/artifact-template.md +2 -18
- package/skills/lit-comprehend/scripts/verify-explainer.ts +0 -14
- package/skills/lit-diagram-drawer/NOTICE.md +33 -0
- package/skills/lit-diagram-drawer/SKILL.md +101 -0
- package/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
- package/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
- package/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
- package/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
- package/skills/lit-diagram-drawer/assets/fonts/provenance.json +23 -0
- package/skills/lit-diagram-drawer/assets/icons.html +231 -0
- package/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
- package/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
- package/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
- package/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
- package/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
- package/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
- package/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
- package/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
- package/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
- package/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
- package/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
- package/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
- package/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
- package/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
- package/skills/lit-diagram-drawer/references/accessibility.md +37 -0
- package/skills/lit-diagram-drawer/references/export.md +17 -0
- package/skills/lit-diagram-drawer/references/import-drawio.md +13 -0
- package/skills/lit-diagram-drawer/references/import-excalidraw.md +11 -0
- package/skills/lit-diagram-drawer/references/import-mermaid.md +12 -0
- package/skills/lit-diagram-drawer/references/import-schema.md +28 -0
- package/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
- package/skills/lit-diagram-drawer/references/motion.md +29 -0
- package/skills/lit-diagram-drawer/references/office-pptx-docx.md +28 -0
- package/skills/lit-diagram-drawer/references/output-spec.md +48 -0
- package/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
- package/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
- package/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
- package/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
- package/skills/lit-diagram-drawer/references/profiles.md +24 -0
- package/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
- package/skills/lit-diagram-drawer/references/style-guide.md +67 -0
- package/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
- package/skills/lit-diagram-drawer/references/type-bar.md +51 -0
- package/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
- package/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
- package/skills/lit-diagram-drawer/references/type-bump.md +49 -0
- package/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
- package/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
- package/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
- package/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
- package/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
- package/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
- package/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
- package/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
- package/skills/lit-diagram-drawer/references/type-er.md +49 -0
- package/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
- package/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
- package/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
- package/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
- package/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
- package/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
- package/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
- package/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
- package/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
- package/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
- package/skills/lit-diagram-drawer/references/type-journey.md +54 -0
- package/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
- package/skills/lit-diagram-drawer/references/type-layers.md +54 -0
- package/skills/lit-diagram-drawer/references/type-line.md +54 -0
- package/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
- package/skills/lit-diagram-drawer/references/type-loop.md +54 -0
- package/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
- package/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
- package/skills/lit-diagram-drawer/references/type-nested.md +59 -0
- package/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
- package/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
- package/skills/lit-diagram-drawer/references/type-polar.md +67 -0
- package/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
- package/skills/lit-diagram-drawer/references/type-process.md +58 -0
- package/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
- package/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
- package/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
- package/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
- package/skills/lit-diagram-drawer/references/type-radar.md +57 -0
- package/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
- package/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
- package/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
- package/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
- package/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
- package/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
- package/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
- package/skills/lit-diagram-drawer/references/type-state.md +59 -0
- package/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
- package/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
- package/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
- package/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
- package/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
- package/skills/lit-diagram-drawer/references/type-tree.md +54 -0
- package/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
- package/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
- package/skills/lit-diagram-drawer/references/type-venn.md +51 -0
- package/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
- package/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
- package/skills/lit-diagram-drawer/references/verifier-guide.md +59 -0
- package/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
- package/skills/lit-diagram-drawer/scripts/brief-contract.mjs +94 -0
- package/skills/lit-diagram-drawer/scripts/capability-probe.mjs +132 -0
- package/skills/lit-diagram-drawer/scripts/check-visible-text.mjs +15 -0
- package/skills/lit-diagram-drawer/scripts/craft-thresholds.json +15 -0
- package/skills/lit-diagram-drawer/scripts/diagram-metrics.mjs +216 -0
- package/skills/lit-diagram-drawer/scripts/doctor.mjs +8 -0
- package/skills/lit-diagram-drawer/scripts/drawio-extract.mjs +214 -0
- package/skills/lit-diagram-drawer/scripts/excalidraw-extract.mjs +151 -0
- package/skills/lit-diagram-drawer/scripts/export.mjs +133 -0
- package/skills/lit-diagram-drawer/scripts/import-shared.mjs +130 -0
- package/skills/lit-diagram-drawer/scripts/mermaid-extract.mjs +173 -0
- package/skills/lit-diagram-drawer/scripts/office-safety.mjs +120 -0
- package/skills/lit-diagram-drawer/scripts/renderer-safety.mjs +46 -0
- package/skills/lit-diagram-drawer/scripts/test-block-registry.mjs +20 -0
- package/skills/lit-diagram-drawer/scripts/test-brief-contract.mjs +27 -0
- package/skills/lit-diagram-drawer/scripts/test-importers.mjs +119 -0
- package/skills/lit-diagram-drawer/scripts/test-office-safety.mjs +67 -0
- package/skills/lit-diagram-drawer/scripts/test-sequence-verifier.mjs +28 -0
- package/skills/lit-diagram-drawer/scripts/test-visual-quality.mjs +68 -0
- package/skills/lit-diagram-drawer/scripts/verify-all.mjs +74 -0
- package/skills/lit-diagram-drawer/scripts/verify-brief.mjs +47 -0
- package/skills/lit-diagram-drawer/scripts/verify-coverage.mjs +56 -0
- package/skills/lit-diagram-drawer/scripts/verify-diagram.mjs +26 -0
- package/skills/lit-diagram-drawer/scripts/verify-motion.mjs +12 -0
- package/skills/lit-diagram-drawer/scripts/verify-type.mjs +48 -0
- package/skills/lit-diagram-drawer/scripts/visual-quality.mjs +363 -0
- package/skills/lit-docx/LICENSE-MIT.txt +21 -0
- package/skills/lit-docx/SKILL.md +78 -0
- package/skills/lit-docx/references/frontmatter_schema.md +42 -0
- package/skills/lit-docx/references/journal_style_spec.md +17 -0
- package/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
- package/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
- package/skills/lit-docx/references/slop_rules.md +35 -0
- package/skills/lit-docx/requirements.in +5 -0
- package/skills/lit-docx/requirements.lock +289 -0
- package/skills/lit-docx/run.py +64 -0
- package/skills/lit-docx/scripts/clean_markdown.py +95 -0
- package/skills/lit-docx/scripts/convert_md_to_docx.py +1047 -0
- package/skills/lit-docx/scripts/convert_md_to_pdf.py +281 -0
- package/skills/lit-docx/scripts/convert_pdf.py +130 -0
- package/skills/lit-docx/scripts/craft-thresholds.json +11 -0
- package/skills/lit-docx/scripts/craft_docx.py +83 -0
- package/skills/lit-docx/scripts/edit_docx.py +297 -0
- package/skills/lit-docx/scripts/embed_images.py +78 -0
- package/skills/lit-docx/scripts/generate_docx_templates.py +491 -0
- package/skills/lit-docx/scripts/slop_lint.py +485 -0
- package/skills/lit-docx/scripts/visual_audit.py +41 -0
- package/skills/lit-docx/templates/docx/acs.docx +0 -0
- package/skills/lit-docx/templates/docx/elsevier.docx +0 -0
- package/skills/lit-docx/templates/docx/ieee.docx +0 -0
- package/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
- package/skills/lit-docx/templates/docx/nature.docx +0 -0
- package/skills/lit-docx/templates/latex/acs/README.md +5 -0
- package/skills/lit-docx/templates/latex/acs/template.tex +37 -0
- package/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
- package/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
- package/skills/lit-docx/templates/latex/ieee/README.md +5 -0
- package/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
- package/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
- package/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
- package/skills/lit-docx/templates/latex/nature/README.md +5 -0
- package/skills/lit-docx/templates/latex/nature/template.tex +37 -0
- package/skills/lit-docx/templates/registry.yaml +1366 -0
- package/skills/lit-humanizer/NOTICE +160 -0
- package/skills/lit-humanizer/SKILL.md +122 -0
- package/skills/lit-humanizer/assets/always-on-rule.md +9 -0
- package/skills/lit-humanizer/assets/report-skeleton.md +25 -0
- package/skills/lit-humanizer/assets/slide-text-skeleton.md +28 -0
- package/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
- package/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
- package/skills/lit-humanizer/examples/api-reference/after.md +9 -0
- package/skills/lit-humanizer/examples/api-reference/before.md +15 -0
- package/skills/lit-humanizer/examples/changelog/after.md +5 -0
- package/skills/lit-humanizer/examples/changelog/before.md +12 -0
- package/skills/lit-humanizer/examples/code-comments/after.md +10 -0
- package/skills/lit-humanizer/examples/code-comments/before.md +19 -0
- package/skills/lit-humanizer/examples/commit/after.md +5 -0
- package/skills/lit-humanizer/examples/commit/before.md +7 -0
- package/skills/lit-humanizer/examples/data-release/after.md +7 -0
- package/skills/lit-humanizer/examples/data-release/before.md +9 -0
- package/skills/lit-humanizer/examples/english-essay/after.md +5 -0
- package/skills/lit-humanizer/examples/english-essay/before.md +5 -0
- package/skills/lit-humanizer/examples/incident-update/after.md +7 -0
- package/skills/lit-humanizer/examples/incident-update/before.md +7 -0
- package/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
- package/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
- package/skills/lit-humanizer/examples/ko-report/after.md +9 -0
- package/skills/lit-humanizer/examples/ko-report/before.md +13 -0
- package/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
- package/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
- package/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
- package/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
- package/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
- package/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
- package/skills/lit-humanizer/examples/pr/after.md +15 -0
- package/skills/lit-humanizer/examples/pr/before.md +17 -0
- package/skills/lit-humanizer/examples/project-update/after.md +7 -0
- package/skills/lit-humanizer/examples/project-update/before.md +9 -0
- package/skills/lit-humanizer/examples/readme/after.md +12 -0
- package/skills/lit-humanizer/examples/readme/before.md +14 -0
- package/skills/lit-humanizer/examples/report/after.md +13 -0
- package/skills/lit-humanizer/examples/report/before.md +11 -0
- package/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
- package/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
- package/skills/lit-humanizer/examples/slides/after.md +19 -0
- package/skills/lit-humanizer/examples/slides/before.md +19 -0
- package/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
- package/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
- package/skills/lit-humanizer/fixtures/ko-metrics-golden.json +49 -0
- package/skills/lit-humanizer/fixtures/office/minimal.docx +0 -0
- package/skills/lit-humanizer/fixtures/office/minimal.pptx +0 -0
- package/skills/lit-humanizer/fixtures/pos-real.txt +26 -0
- package/skills/lit-humanizer/fixtures/rule-cases.json +306 -0
- package/skills/lit-humanizer/references/code-patterns.md +468 -0
- package/skills/lit-humanizer/references/deliverable-channels.md +111 -0
- package/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
- package/skills/lit-humanizer/references/en-patterns-content.md +243 -0
- package/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
- package/skills/lit-humanizer/references/en-patterns.md +57 -0
- package/skills/lit-humanizer/references/ko-metrics.md +33 -0
- package/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
- package/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
- package/skills/lit-humanizer/references/ko-patterns.md +31 -0
- package/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
- package/skills/lit-humanizer/references/taxonomy.md +153 -0
- package/skills/lit-humanizer/rules.json +884 -0
- package/skills/lit-humanizer/scripts/core.mjs +208 -0
- package/skills/lit-humanizer/scripts/detect.mjs +91 -0
- package/skills/lit-humanizer/scripts/extract_office_text.py +89 -0
- package/skills/lit-humanizer/scripts/guard-scan.mjs +36 -0
- package/skills/lit-humanizer/scripts/ko-metrics.mjs +124 -0
- package/skills/lit-humanizer/scripts/test-fixtures.mjs +54 -0
- package/skills/lit-humanizer/scripts/test-ko-metrics.mjs +27 -0
- package/skills/lit-pptx/FORBIDDEN_TERMS.json +55 -0
- package/skills/lit-pptx/NOTICE.md +3 -0
- package/skills/lit-pptx/SKILL.md +76 -0
- package/skills/lit-pptx/agents/analyst.md +49 -0
- package/skills/lit-pptx/agents/antithesis.md +59 -0
- package/skills/lit-pptx/agents/architect.md +44 -0
- package/skills/lit-pptx/agents/critic.md +42 -0
- package/skills/lit-pptx/agents/synthesizer.md +47 -0
- package/skills/lit-pptx/agents/thesis.md +33 -0
- package/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
- package/skills/lit-pptx/assets/azure/circle-md.png +0 -0
- package/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Black.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Bold.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Light.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Medium.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/A2Z-Regular.otf +0 -0
- package/skills/lit-pptx/fonts/a2z-font/OFL.txt +94 -0
- package/skills/lit-pptx/fonts/a2z-font/SOURCE.md +29 -0
- package/skills/lit-pptx/package-lock.json +747 -0
- package/skills/lit-pptx/package.json +13 -0
- package/skills/lit-pptx/pretendard-font/LICENSE.txt +94 -0
- package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Bold.otf +0 -0
- package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Regular.otf +0 -0
- package/skills/lit-pptx/requirements.in +2 -0
- package/skills/lit-pptx/requirements.lock +285 -0
- package/skills/lit-pptx/run.mjs +71 -0
- package/skills/lit-pptx/scripts/check_ooxml.py +47 -0
- package/skills/lit-pptx/scripts/compile-deck.js +447 -0
- package/skills/lit-pptx/scripts/craft-thresholds.json +26 -0
- package/skills/lit-pptx/scripts/craft_extras.py +224 -0
- package/skills/lit-pptx/scripts/embed_fonts.py +204 -0
- package/skills/lit-pptx/scripts/layout_inventory.py +70 -0
- package/skills/lit-pptx/scripts/learn_template.py +433 -0
- package/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
- package/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
- package/skills/lit-pptx/scripts/lib/font-map.js +79 -0
- package/skills/lit-pptx/scripts/lib/gen-bg.js +85 -0
- package/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +36 -0
- package/skills/lit-pptx/scripts/lib/layout-resolver.js +737 -0
- package/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
- package/skills/lit-pptx/scripts/lib/render-adapter-html.js +364 -0
- package/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +1848 -0
- package/skills/lit-pptx/scripts/lib/slide-ast.js +534 -0
- package/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
- package/skills/lit-pptx/scripts/lib/template-registry.js +355 -0
- package/skills/lit-pptx/scripts/qa_deck.py +773 -0
- package/skills/lit-pptx/scripts/validate_pptx.py +206 -0
- package/skills/lit-pptx/specs/markdown-slide-spec-v1.md +251 -0
- package/skills/lit-pptx/specs/markdown-slide-spec-v2.md +223 -0
- package/skills/lit-pptx/specs/slide-ast-v1.schema.json +229 -0
- package/skills/lit-pptx/specs/slide-ast-v2.schema.json +144 -0
- package/skills/lit-pptx/specs/template-enrollment-contract.md +379 -0
- package/skills/lit-pptx/templates/bauhaus_light.css +4 -0
- package/skills/lit-pptx/templates/boilerplate_professional.css +508 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +454 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +483 -0
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
- package/skills/lit-scientific-visualization/SKILL.md +2 -0
- package/skills/lit-typographic-motion/NOTICE +23 -0
- package/skills/lit-typographic-motion/SKILL.md +77 -0
- package/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +25 -0
- package/skills/lit-typographic-motion/audio-analysis.py +52 -0
- package/skills/lit-typographic-motion/engine/browser.mjs +83 -0
- package/skills/lit-typographic-motion/engine/constants.mjs +177 -0
- package/skills/lit-typographic-motion/engine/contrast.mjs +101 -0
- package/skills/lit-typographic-motion/engine/encode.mjs +46 -0
- package/skills/lit-typographic-motion/engine/flash.mjs +216 -0
- package/skills/lit-typographic-motion/engine/look.mjs +166 -0
- package/skills/lit-typographic-motion/engine/page/common.js +105 -0
- package/skills/lit-typographic-motion/engine/page/engine.js +451 -0
- package/skills/lit-typographic-motion/engine/page/gl.js +213 -0
- package/skills/lit-typographic-motion/engine/page/lines.js +88 -0
- package/skills/lit-typographic-motion/engine/page/passes.js +144 -0
- package/skills/lit-typographic-motion/engine/page/post.js +119 -0
- package/skills/lit-typographic-motion/engine/page/scenes.js +187 -0
- package/skills/lit-typographic-motion/engine/page/type.js +321 -0
- package/skills/lit-typographic-motion/engine/png.mjs +139 -0
- package/skills/lit-typographic-motion/engine/sound.mjs +291 -0
- package/skills/lit-typographic-motion/engine/stage/capture.mjs +133 -0
- package/skills/lit-typographic-motion/engine/stage/clock.js +171 -0
- package/skills/lit-typographic-motion/engine/stage/frame-worker.mjs +47 -0
- package/skills/lit-typographic-motion/engine/stage/gate.mjs +119 -0
- package/skills/lit-typographic-motion/engine/stage/qa-page.js +158 -0
- package/skills/lit-typographic-motion/engine/stage/qa.mjs +208 -0
- package/skills/lit-typographic-motion/engine/stage/render.mjs +418 -0
- package/skills/lit-typographic-motion/engine/stage/scan.mjs +162 -0
- package/skills/lit-typographic-motion/engine/stage/stage-kit.js +310 -0
- package/skills/lit-typographic-motion/engine/stills.mjs +60 -0
- package/skills/lit-typographic-motion/engine/text.mjs +126 -0
- package/skills/lit-typographic-motion/engine/timing.mjs +289 -0
- package/skills/lit-typographic-motion/engine/treatment.mjs +254 -0
- package/skills/lit-typographic-motion/fonts/Archivo-100-400.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-100-700.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-100-900.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-125-400.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-125-700.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-125-900.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-75-400.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-75-700.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-75-900.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Archivo-OFL.txt +93 -0
- package/skills/lit-typographic-motion/fonts/Silkscreen-Bold.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/Silkscreen-OFL.txt +93 -0
- package/skills/lit-typographic-motion/fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/VT323-OFL.txt +93 -0
- package/skills/lit-typographic-motion/fonts/VT323-Regular.ttf +0 -0
- package/skills/lit-typographic-motion/fonts/pins.json +44 -0
- package/skills/lit-typographic-motion/fonts/stroke/CREDITS +52 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSAllure.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSFelix.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSOsmotron.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSReadability.svg +216 -0
- package/skills/lit-typographic-motion/fonts/stroke/EMSTech.svg +217 -0
- package/skills/lit-typographic-motion/fonts/stroke/OFL.txt +85 -0
- package/skills/lit-typographic-motion/gate.mjs +593 -0
- package/skills/lit-typographic-motion/package-lock.json +78 -0
- package/skills/lit-typographic-motion/package.json +11 -0
- package/skills/lit-typographic-motion/probe.mjs +74 -0
- package/skills/lit-typographic-motion/references/authoring.md +110 -0
- package/skills/lit-typographic-motion/references/craft-loop.md +110 -0
- package/skills/lit-typographic-motion/references/runtime.md +88 -0
- package/skills/lit-typographic-motion/references/stage.md +164 -0
- package/skills/lit-typographic-motion/references/style-bibles.md +88 -0
- package/skills/lit-typographic-motion/references/treatment.md +143 -0
- package/skills/lit-typographic-motion/references/type-craft.md +55 -0
- package/skills/lit-typographic-motion/render.mjs +654 -0
- package/skills/lit-typographic-motion/requirements-audio.in +1 -0
- package/skills/lit-typographic-motion/requirements-audio.txt +790 -0
- package/skills/lit-typographic-motion/runtime.mjs +259 -0
- package/skills/lit-typographic-motion/word-timing-models.json +25 -0
- package/skills/litresearch/SKILL.md +41 -12
- package/skills/managed-skill-manifest.json +2367 -63
- package/skills/skill-rename-aliases.json +6 -1
- package/tools/check-pack-payload.mjs +22 -1
- package/tools/check-payload-substance.mjs +2 -2
- package/tools/payload-reference-exemptions.json +4 -0
- package/tools/payload-substance-allowlist.json +2 -3
- package/tools/payload-substance-parity.json +7 -7
- package/tools/version-manifests.json +4 -4
- package/skills/lit-korean/SKILL.md +0 -231
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
# Layout Mapping — BOILERPLATE-PRETENDARD
|
|
2
|
+
# 4:3 canvas, 10 x 7.5 in. Geometry derived from templates/boilerplate_professional.css
|
|
3
|
+
# (960x720px @ 96dpi -> 10x7.5in). Positions in inches.
|
|
4
|
+
# No base PPTX master: slides are built from scratch, so layout_source is "none".
|
|
5
|
+
|
|
6
|
+
layouts:
|
|
7
|
+
cover:
|
|
8
|
+
layout_source: none
|
|
9
|
+
decorations: cover
|
|
10
|
+
variants:
|
|
11
|
+
rule:
|
|
12
|
+
decorations: cover_rule
|
|
13
|
+
regions:
|
|
14
|
+
title:
|
|
15
|
+
x: 0.73
|
|
16
|
+
y: 2.30
|
|
17
|
+
w: 8.54
|
|
18
|
+
h: 1.1
|
|
19
|
+
font_role: cover_title
|
|
20
|
+
valign: middle
|
|
21
|
+
autofit: none
|
|
22
|
+
metadata:
|
|
23
|
+
x: 0.73
|
|
24
|
+
y: 3.50
|
|
25
|
+
w: 8.54
|
|
26
|
+
h: 0.5
|
|
27
|
+
font_role: cover_metadata
|
|
28
|
+
valign: middle
|
|
29
|
+
autofit: resize
|
|
30
|
+
date_line:
|
|
31
|
+
x: 0.73
|
|
32
|
+
y: 4.65
|
|
33
|
+
w: 8.54
|
|
34
|
+
h: 0.4
|
|
35
|
+
font_role: cover_date
|
|
36
|
+
valign: middle
|
|
37
|
+
autofit: none
|
|
38
|
+
band:
|
|
39
|
+
decorations: cover_band
|
|
40
|
+
regions:
|
|
41
|
+
title:
|
|
42
|
+
x: 0.73
|
|
43
|
+
y: 3.35
|
|
44
|
+
w: 8.54
|
|
45
|
+
h: 1.1
|
|
46
|
+
font_role: cover_title
|
|
47
|
+
valign: middle
|
|
48
|
+
autofit: none
|
|
49
|
+
metadata:
|
|
50
|
+
x: 0.73
|
|
51
|
+
y: 4.55
|
|
52
|
+
w: 8.54
|
|
53
|
+
h: 0.5
|
|
54
|
+
font_role: cover_metadata
|
|
55
|
+
valign: middle
|
|
56
|
+
autofit: resize
|
|
57
|
+
date_line:
|
|
58
|
+
x: 0.73
|
|
59
|
+
y: 5.65
|
|
60
|
+
w: 8.54
|
|
61
|
+
h: 0.4
|
|
62
|
+
font_role: cover_date
|
|
63
|
+
valign: middle
|
|
64
|
+
autofit: none
|
|
65
|
+
regions:
|
|
66
|
+
title:
|
|
67
|
+
x: 0.730
|
|
68
|
+
y: 1.950
|
|
69
|
+
w: 8.540
|
|
70
|
+
h: 1.100
|
|
71
|
+
font_role: cover_title
|
|
72
|
+
valign: middle
|
|
73
|
+
autofit: none
|
|
74
|
+
metadata:
|
|
75
|
+
x: 0.730
|
|
76
|
+
y: 3.150
|
|
77
|
+
w: 8.540
|
|
78
|
+
h: 0.500
|
|
79
|
+
font_role: cover_metadata
|
|
80
|
+
valign: middle
|
|
81
|
+
autofit: resize
|
|
82
|
+
date_line:
|
|
83
|
+
x: 0.730
|
|
84
|
+
y: 4.650
|
|
85
|
+
w: 8.540
|
|
86
|
+
h: 0.400
|
|
87
|
+
font_role: cover_date
|
|
88
|
+
valign: middle
|
|
89
|
+
autofit: none
|
|
90
|
+
|
|
91
|
+
content:
|
|
92
|
+
layout_source: none
|
|
93
|
+
decorations: body
|
|
94
|
+
regions:
|
|
95
|
+
title:
|
|
96
|
+
x: 0.270
|
|
97
|
+
y: 0.400
|
|
98
|
+
w: 9.460
|
|
99
|
+
h: 0.560
|
|
100
|
+
font_role: section_title
|
|
101
|
+
valign: middle
|
|
102
|
+
autofit: none
|
|
103
|
+
body:
|
|
104
|
+
x: 0.270
|
|
105
|
+
y: 1.150
|
|
106
|
+
w: 9.460
|
|
107
|
+
font_role: body_text
|
|
108
|
+
autofit: resize
|
|
109
|
+
table:
|
|
110
|
+
x: 0.270
|
|
111
|
+
y: 1.150
|
|
112
|
+
w: 9.460
|
|
113
|
+
font_role_header: table_header
|
|
114
|
+
font_role_data: table_data
|
|
115
|
+
image:
|
|
116
|
+
x: 5.400
|
|
117
|
+
y: 1.300
|
|
118
|
+
w: 4.330
|
|
119
|
+
h: 3.200
|
|
120
|
+
figure_caption:
|
|
121
|
+
x: 5.400
|
|
122
|
+
y: 4.560
|
|
123
|
+
w: 4.330
|
|
124
|
+
h: 0.420
|
|
125
|
+
font_role: figure_caption
|
|
126
|
+
align: center
|
|
127
|
+
table_caption:
|
|
128
|
+
x: 0.270
|
|
129
|
+
y: 5.250
|
|
130
|
+
w: 9.460
|
|
131
|
+
h: 0.420
|
|
132
|
+
font_role: table_caption
|
|
133
|
+
align: center
|
|
134
|
+
|
|
135
|
+
main:
|
|
136
|
+
layout_source: none
|
|
137
|
+
decorations: body
|
|
138
|
+
regions:
|
|
139
|
+
title:
|
|
140
|
+
x: 0.270
|
|
141
|
+
y: 0.400
|
|
142
|
+
w: 9.460
|
|
143
|
+
h: 0.560
|
|
144
|
+
font_role: section_title
|
|
145
|
+
valign: middle
|
|
146
|
+
autofit: none
|
|
147
|
+
body:
|
|
148
|
+
x: 0.270
|
|
149
|
+
y: 1.150
|
|
150
|
+
w: 9.460
|
|
151
|
+
font_role: body_text
|
|
152
|
+
autofit: resize
|
|
153
|
+
main_box:
|
|
154
|
+
x: 0.500
|
|
155
|
+
y: 5.900
|
|
156
|
+
w: 9.000
|
|
157
|
+
h: 0.950
|
|
158
|
+
border:
|
|
159
|
+
width: 1
|
|
160
|
+
kpi_table:
|
|
161
|
+
x: 0.270
|
|
162
|
+
y: 1.150
|
|
163
|
+
w: 9.460
|
|
164
|
+
font_role_header: table_header
|
|
165
|
+
font_role_data: table_data
|
|
166
|
+
image:
|
|
167
|
+
x: 5.400
|
|
168
|
+
y: 1.300
|
|
169
|
+
w: 4.330
|
|
170
|
+
h: 3.200
|
|
171
|
+
figure_caption:
|
|
172
|
+
x: 5.400
|
|
173
|
+
y: 4.560
|
|
174
|
+
w: 4.330
|
|
175
|
+
h: 0.420
|
|
176
|
+
font_role: figure_caption
|
|
177
|
+
align: center
|
|
178
|
+
table_caption:
|
|
179
|
+
x: 0.270
|
|
180
|
+
y: 5.250
|
|
181
|
+
w: 9.460
|
|
182
|
+
h: 0.420
|
|
183
|
+
font_role: table_caption
|
|
184
|
+
align: center
|
|
185
|
+
|
|
186
|
+
summary:
|
|
187
|
+
layout_source: none
|
|
188
|
+
decorations: body
|
|
189
|
+
regions:
|
|
190
|
+
title:
|
|
191
|
+
x: 0.270
|
|
192
|
+
y: 0.400
|
|
193
|
+
w: 7.500
|
|
194
|
+
h: 0.560
|
|
195
|
+
font_role: section_title
|
|
196
|
+
valign: middle
|
|
197
|
+
autofit: shrink
|
|
198
|
+
group_top:
|
|
199
|
+
x: 0.270
|
|
200
|
+
y: 1.150
|
|
201
|
+
w: 4.450
|
|
202
|
+
h: 2.500
|
|
203
|
+
heading_role: section_header
|
|
204
|
+
heading_line_spacing: 1.3
|
|
205
|
+
sub_item_role: numbered_item
|
|
206
|
+
sub_item_line_spacing: 1.3
|
|
207
|
+
autofit: resize
|
|
208
|
+
group_bottom:
|
|
209
|
+
x: 0.270
|
|
210
|
+
y: 3.950
|
|
211
|
+
w: 4.450
|
|
212
|
+
h: 2.500
|
|
213
|
+
heading_role: section_header
|
|
214
|
+
heading_line_spacing: 1.3
|
|
215
|
+
sub_item_role: numbered_item
|
|
216
|
+
sub_item_line_spacing: 1.3
|
|
217
|
+
autofit: resize
|
|
218
|
+
image:
|
|
219
|
+
x: 5.100
|
|
220
|
+
y: 1.150
|
|
221
|
+
w: 4.630
|
|
222
|
+
h: 3.300
|
|
223
|
+
figure_caption:
|
|
224
|
+
x: 5.100
|
|
225
|
+
y: 4.560
|
|
226
|
+
w: 4.630
|
|
227
|
+
h: 0.420
|
|
228
|
+
font_role: figure_caption
|
|
229
|
+
align: center
|
|
230
|
+
table:
|
|
231
|
+
x: 5.100
|
|
232
|
+
y: 5.300
|
|
233
|
+
w: 4.630
|
|
234
|
+
font_role_header: table_header
|
|
235
|
+
font_role_data: table_data
|
|
236
|
+
table_caption:
|
|
237
|
+
x: 5.100
|
|
238
|
+
y: 6.550
|
|
239
|
+
w: 4.630
|
|
240
|
+
h: 0.420
|
|
241
|
+
font_role: table_caption
|
|
242
|
+
align: center
|
|
243
|
+
|
|
244
|
+
closing:
|
|
245
|
+
layout_source: none
|
|
246
|
+
decorations: closing
|
|
247
|
+
regions:
|
|
248
|
+
title:
|
|
249
|
+
x: 0.000
|
|
250
|
+
y: 3.200
|
|
251
|
+
w: 10.000
|
|
252
|
+
h: 0.950
|
|
253
|
+
font_role: closing_title
|
|
254
|
+
align: center
|
|
255
|
+
valign: middle
|
|
256
|
+
autofit: shrink
|
|
257
|
+
|
|
258
|
+
# Minimal, clean decoration: a single ink hairline under the title band on body
|
|
259
|
+
# slides (matches CSS .header-line). Cover/closing stay whitespace-clean.
|
|
260
|
+
decorations:
|
|
261
|
+
cover:
|
|
262
|
+
elements: []
|
|
263
|
+
cover_rule:
|
|
264
|
+
elements:
|
|
265
|
+
- type: line
|
|
266
|
+
x: 0.73
|
|
267
|
+
y: 1.95
|
|
268
|
+
w: 2.2
|
|
269
|
+
color: "#3C3836"
|
|
270
|
+
width: 4
|
|
271
|
+
note: "hairline rule standing in for the cover furniture"
|
|
272
|
+
|
|
273
|
+
cover_band:
|
|
274
|
+
elements:
|
|
275
|
+
- type: rect
|
|
276
|
+
x: 0.0
|
|
277
|
+
y: 0.0
|
|
278
|
+
w: 10.0
|
|
279
|
+
h: 2.6
|
|
280
|
+
fill: "#FBFAF7"
|
|
281
|
+
note: "warm near-white band above the title"
|
|
282
|
+
- type: line
|
|
283
|
+
x: 0.73
|
|
284
|
+
y: 2.6
|
|
285
|
+
w: 10.0
|
|
286
|
+
color: "#CBC2B5"
|
|
287
|
+
width: 1
|
|
288
|
+
|
|
289
|
+
body:
|
|
290
|
+
elements:
|
|
291
|
+
- type: line
|
|
292
|
+
x: 0.270
|
|
293
|
+
y: 1.020
|
|
294
|
+
w: 9.460
|
|
295
|
+
color: "#3C3836"
|
|
296
|
+
width: 1.5
|
|
297
|
+
note: "Title underline hairline (boilerplate .header-line)"
|
|
298
|
+
closing:
|
|
299
|
+
elements: []
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: BOILERPLATE-PRETENDARD
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
label: "Boilerplate Professional (LitOpenCode Sans)"
|
|
4
|
+
description: "Generic professional/technical deck — 4:3 canvas, LitOpenCode Sans typography, white ground, dark charcoal structure, restrained Gruvbox-style accents. Brand-agnostic."
|
|
5
|
+
|
|
6
|
+
# Default body font. LitOpenCode Sans is a single family with real weights, so unlike
|
|
7
|
+
# 에이투지체 (per-weight families) bold:true IS valid here.
|
|
8
|
+
fonts:
|
|
9
|
+
title: "LitOpenCode Sans"
|
|
10
|
+
body: "LitOpenCode Sans"
|
|
11
|
+
light: "LitOpenCode Sans"
|
|
12
|
+
|
|
13
|
+
dimensions:
|
|
14
|
+
width: 10
|
|
15
|
+
height: 7.5
|
|
16
|
+
unit: inches
|
|
17
|
+
format: 4:3
|
|
18
|
+
|
|
19
|
+
palette:
|
|
20
|
+
ink: "#3C3836"
|
|
21
|
+
ink_muted: "#6E6256"
|
|
22
|
+
muted: "#928374"
|
|
23
|
+
line: "#CBC2B5"
|
|
24
|
+
paper: "#FFFFFF"
|
|
25
|
+
paper_warm: "#FBFAF7"
|
|
26
|
+
header_fill: "#FBFAF7"
|
|
27
|
+
accent_red: "#CC241D"
|
|
28
|
+
accent_green: "#98971A"
|
|
29
|
+
accent_green_2: "#689D6A"
|
|
30
|
+
accent_amber: "#D79921"
|
|
31
|
+
accent_yellow: "#FFC000"
|
|
32
|
+
accent_purple: "#B16286"
|
|
33
|
+
source_blue: "#3F6F5B"
|
|
34
|
+
metric: "#3C3836"
|
|
35
|
+
|
|
36
|
+
decoration_assets: {}
|
|
37
|
+
|
|
38
|
+
global_typography:
|
|
39
|
+
char_spacing: -0.5 # PowerPoint "Narrow 0.5pt" (boilerplate default)
|
|
40
|
+
bold_rule: "LitOpenCode Sans is a weighted family — bold:true is allowed (use sparingly for hierarchy)."
|
|
41
|
+
bullet_font: "LitOpenCode Sans"
|
|
42
|
+
bullet_char: "•"
|
|
43
|
+
bullet_color: "3C3836" # ink bullets (boilerplate uses ink, not a green accent)
|
|
44
|
+
section_accent: "3C3836" # section-card / accent treatment uses ink hairlines
|
|
@@ -36,6 +36,8 @@ This file is static documentation for the OpenCode route and `doctor-install` fe
|
|
|
36
36
|
Do not execute commands from this file automatically. Execution begins only after the
|
|
37
37
|
explicit route is selected and the user has requested executable figure work.
|
|
38
38
|
|
|
39
|
+
For conceptual diagrams, select `lit-diagram-drawer`; this skill remains for measured data.
|
|
40
|
+
|
|
39
41
|
Generic words such as `visualization`, `plot`, `figure`, and `scientific visualization`
|
|
40
42
|
are deliberately inert. They can appear in user data, papers, code, or diagnostics
|
|
41
43
|
without selecting this route. Besides native skill selection, only the explicit slash
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Portions of this engine are adapted from mexicat/pdoom-video
|
|
2
|
+
(https://github.com/mexicat/pdoom-video), commit
|
|
3
|
+
ca251e3dddda422b364385eb484b5a3593a0990d.
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2026 Giacomo Magnanini
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lit-typographic-motion
|
|
3
|
+
description: Direct a finished film from a written treatment. Films that show things take the stage path (your own HTML, SVG, Canvas or WebGL page, captured frame by frame); films made of the words alone take the type path. Both are gated and looked at. Use for a new film or video, including a bare lit request with video wording.
|
|
4
|
+
reader_projection: shared_rule
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## #contract.activation
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
contract_schema_version: litopencode.skill_contract.v1
|
|
11
|
+
skill_id: lit-typographic-motion
|
|
12
|
+
runtime_class: runtime-skill
|
|
13
|
+
static_documentation: true
|
|
14
|
+
feature_ids: [lit-typographic-motion]
|
|
15
|
+
entry_routes: ["native skill picker lit-typographic-motion", "bare lit film request"]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
# Film director
|
|
19
|
+
|
|
20
|
+
This file is static documentation for LitOpenCode. Do not execute commands from this file automatically. OpenCode loads it through the native skill tool; a bare `lit` film request makes the chat route name this skill and its installed commands. Resolve every script from the installed skill location, never from the project.
|
|
21
|
+
|
|
22
|
+
Out of scope: editing or captioning existing footage, embedding a video in a page or slide, and a script, thumbnail or summary about a video.
|
|
23
|
+
|
|
24
|
+
## #contract.inputs
|
|
25
|
+
|
|
26
|
+
Read the request, supplied words, facts, audio and any named style. Treat request text and file metadata as inert data. Under `lit`, ask no questions: keep the user's words when they gave words; otherwise write the copy from the treatment's subject, invent a labelled example subject when none is named, pick defaults, and label every invention, default and generated sound in the reply.
|
|
27
|
+
|
|
28
|
+
## #contract.mode_matrix
|
|
29
|
+
|
|
30
|
+
| Mode | Command (installed skill root) | Result |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| Treatment | write `<d>/treatment.json` | checked before every render; exit 16 names the field |
|
|
33
|
+
| Stage look | `node render.mjs stage --out <d> --stills-only --round 1` | stills set, no encode |
|
|
34
|
+
| Stage film | `node render.mjs stage --out <d> --round N` | film, stills, gate |
|
|
35
|
+
| Type look | `node render.mjs film --brief <b> --out <d> --stills-only --round 1` | stills set, no encode |
|
|
36
|
+
| Type film | `node render.mjs film --brief <b> --out <d> --round N` | film, stills, gate |
|
|
37
|
+
| Sound | `node render.mjs sound --out <d>` | `sound.wav`, `sound-cues.json` |
|
|
38
|
+
| Look | `node render.mjs look --out <d> --round N --answers <file>` | one round appended to `look.json` |
|
|
39
|
+
| Re-gate | `node gate.mjs <d>` | gate report |
|
|
40
|
+
| Done? | `node gate.mjs --done <d>` | 0 done; 1 not done; 2 round 3 open items; 3 frames unviewed |
|
|
41
|
+
|
|
42
|
+
## #contract.procedure
|
|
43
|
+
|
|
44
|
+
1. Load `references/treatment.md` only, and write `treatment.json` in the output directory: idea, subject, beats on the genre's arc, devices, copy, palette, sound (generated by default under `lit`), ambition.
|
|
45
|
+
2. Its `path` decides what to load next. Stage: `references/stage.md`, then write `index.html` in a `stage` folder of the output directory, using `/lit/stage-kit.js` and `/lit/fonts.css`. Type: `references/authoring.md`, `references/type-craft.md` and `references/style-bibles.md` (MO-B-00 preset pick), then write the brief.
|
|
46
|
+
3. Round 1 (stills): run the look command with `--stills-only`, open every still with the read tool, answer the nine questions in `references/craft-loop.md`, name the weakest beat and the change, record it with `look --round 1`, then make that change.
|
|
47
|
+
4. Round 2: the full render with `--round 2`. Give the command a timeout of at least 600 s (or add `--detach` and wait for the exit file it names); never shorten the film to save render time. Look again at the poster, the contact sheet, every beat midpoint and every transition strip, and record `look --round 2`. A failed question means another round; stop after round 3.
|
|
48
|
+
5. Run `gate.mjs --done` and reply as `references/craft-loop.md` says.
|
|
49
|
+
|
|
50
|
+
## #contract.runtime
|
|
51
|
+
|
|
52
|
+
The runtime is pre-warmed outside any session with `litopencode motion-runtime install` (fonts and pinned packages into a product cache; `--audio` adds the librosa venv). A render only reads that cache. `litopencode motion-runtime status` and `litopencode doctor` show the probes. Details and every BLOCKED code: `references/runtime.md`.
|
|
53
|
+
|
|
54
|
+
## #contract.outputs
|
|
55
|
+
|
|
56
|
+
`film.mp4` (1920x1080 or 1080x1920, BT.709 tags, sound muxed unless the treatment asks for silence), `preview.webp` or `preview.gif`, `poster.png`, `reduced-motion.png`, `manifest.json`, `gate-report.txt`, `stills/`, `sheet/`, `sound-cues.json` and `look.json`.
|
|
57
|
+
|
|
58
|
+
## #contract.output_channels
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
artifact_genre: client_deliverable
|
|
62
|
+
limitations_channel: reply
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Name a withheld render, a failed rule, a downgrade, an open look item or a BLOCKED state in the reply beside the files. Measurements stay in the output directory.
|
|
66
|
+
|
|
67
|
+
## #contract.evidence
|
|
68
|
+
|
|
69
|
+
The evidence is the treatment, the gate report, the manifest, `look.json` and the stills you opened. Claim completion only when `gate.mjs --done` exits 0.
|
|
70
|
+
|
|
71
|
+
## #contract.hard_stops
|
|
72
|
+
|
|
73
|
+
On BLOCKED exit 10 (Chrome), 11 (WebGL2), 12 (ffmpeg; stills still work), 14 (runtime not pre-warmed) or 15 (font missing or hash mismatch), stop, name the state and its fix command; never install inside the session. Exit 16 (treatment), 17 (stage contract), 18 (stage not deterministic), 19 (network request) and 20 (sound) name the cause to fix. A flash-audit failure withholds the exports in every round.
|
|
74
|
+
|
|
75
|
+
## #contract.anti_patterns
|
|
76
|
+
|
|
77
|
+
Hand-encoded films (a frame loop, a raw ffmpeg graph, a screen recording, a raster flipbook) are not the deliverable. Never answer a failure by shortening the film, removing a beat or the subject, silencing the sound or switching to the type path. Do not restate the request as copy, print file names or internal terms on screen, loop past round 3, or write into the installed skill tree.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
lit-typographic-motion third-party notices
|
|
2
|
+
|
|
3
|
+
Engine: Typographic-motion engine adapted from mexicat/pdoom-video (MIT, Giacomo Magnanini), commit `ca251e3`.
|
|
4
|
+
The full MIT notice for the adapted engine is in NOTICE, next to this file.
|
|
5
|
+
|
|
6
|
+
Fonts bundled in this skill (paths relative to this file):
|
|
7
|
+
- Archivo static instances, fonts/Archivo-{75,100,125}-{400,700,900}.ttf: SIL OFL 1.1, licence at fonts/Archivo-OFL.txt
|
|
8
|
+
- VT323, fonts/VT323-Regular.ttf: SIL OFL 1.1, licence at fonts/VT323-OFL.txt
|
|
9
|
+
- Silkscreen, fonts/Silkscreen-Regular.ttf and fonts/Silkscreen-Bold.ttf: SIL OFL 1.1, licence at fonts/Silkscreen-OFL.txt
|
|
10
|
+
- EMS single-stroke SVG fonts (EMSAllure, EMSFelix, EMSOsmotron, EMSReadability, EMSTech), fonts/stroke/*.svg: SIL OFL 1.1, licence at fonts/stroke/OFL.txt, credits at fonts/stroke/CREDITS
|
|
11
|
+
|
|
12
|
+
Fonts reused by path from the sibling lit-pptx skill:
|
|
13
|
+
- LitOpenCode Sans Regular and Bold, ../lit-pptx/pretendard-font/public/static/LitOpenCodeSans-{Regular,Bold}.otf: SIL OFL 1.1, licence at ../lit-pptx/pretendard-font/LICENSE.txt
|
|
14
|
+
|
|
15
|
+
Fonts fetched at pre-warm (litopencode motion-runtime install) into the motion runtime cache,
|
|
16
|
+
${XDG_CACHE_HOME:-~/.cache}/litopencode/motion-runtime/fonts-<pin hash>/, each verified against fonts/pins.json:
|
|
17
|
+
- Galmuri9, Galmuri9.ttf (unmodified official file): SIL OFL 1.1, licence at Galmuri-OFL.md in that cache directory
|
|
18
|
+
- MesloLGS NF Regular, MesloLGS-NF-Regular.ttf: Apache-2.0 plus the inherited Bitstream Vera and Arev notices, licence files MesloLGS-NF-License.txt, Apache-2.0.txt and Vera-Arev-LICENSE in that cache directory
|
|
19
|
+
- Pretendard Regular (fallback only, fetched when the lit-pptx pair is absent), Pretendard-Regular.otf: SIL OFL 1.1, licence at Pretendard-LICENSE in that cache directory
|
|
20
|
+
|
|
21
|
+
Engine packages installed at pre-warm from package-lock.json into ${XDG_CACHE_HOME:-~/.cache}/litopencode/motion-runtime/node-<lock hash>/node_modules:
|
|
22
|
+
- playwright-core (Apache-2.0), opentype.js (MIT), ws (MIT); each keeps its own licence file inside its package directory.
|
|
23
|
+
|
|
24
|
+
Optional audio tier, installed only by litopencode motion-runtime install --audio from requirements-audio.txt:
|
|
25
|
+
- librosa (ISC) and its hash-pinned dependencies, each under its own licence inside the venv.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Offline beat and envelope analysis of the user's own supplied audio."""
|
|
3
|
+
|
|
4
|
+
import json
|
|
5
|
+
import sys
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
import librosa
|
|
9
|
+
import numpy as np
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def analyse(source: Path) -> dict:
|
|
13
|
+
audio, rate = librosa.load(source, sr=22050, mono=True)
|
|
14
|
+
if audio.size == 0:
|
|
15
|
+
raise ValueError("audio has no decodable samples")
|
|
16
|
+
hop = 512
|
|
17
|
+
onset = librosa.onset.onset_strength(y=audio, sr=rate, hop_length=hop)
|
|
18
|
+
tempo, beat_frames = librosa.beat.beat_track(onset_envelope=onset, sr=rate, hop_length=hop, trim=False)
|
|
19
|
+
beats = librosa.frames_to_time(beat_frames, sr=rate, hop_length=hop).round(6).tolist()
|
|
20
|
+
onset_frames = librosa.onset.onset_detect(onset_envelope=onset, sr=rate, hop_length=hop)
|
|
21
|
+
onsets = librosa.frames_to_time(onset_frames, sr=rate, hop_length=hop).round(6).tolist()
|
|
22
|
+
spectrum = np.abs(librosa.stft(audio, n_fft=2048, hop_length=hop))
|
|
23
|
+
frequencies = librosa.fft_frequencies(sr=rate, n_fft=2048)
|
|
24
|
+
bands = {}
|
|
25
|
+
for name, lower, upper in (("low", 20, 250), ("mid", 250, 2000), ("high", 2000, 10000)):
|
|
26
|
+
selection = (frequencies >= lower) & (frequencies < upper)
|
|
27
|
+
values = spectrum[selection].mean(axis=0) if selection.any() else np.zeros(spectrum.shape[1])
|
|
28
|
+
ceiling = float(np.quantile(values, 0.95)) if values.size else 0.0
|
|
29
|
+
bands[name] = np.clip(values / max(ceiling, 1e-9), 0, 1).round(4).tolist()
|
|
30
|
+
rms = librosa.feature.rms(S=spectrum)[0]
|
|
31
|
+
rms_ceiling = float(np.quantile(rms, 0.95)) if rms.size else 0.0
|
|
32
|
+
bands["rms"] = np.clip(rms / max(rms_ceiling, 1e-9), 0, 1).round(4).tolist()
|
|
33
|
+
return {
|
|
34
|
+
"schemaVersion": 1,
|
|
35
|
+
"source": str(source.resolve()),
|
|
36
|
+
"durationSec": round(len(audio) / rate, 6),
|
|
37
|
+
"bpm": round(float(np.asarray(tempo).reshape(-1)[0]), 4),
|
|
38
|
+
"beatGrid": beats,
|
|
39
|
+
"barsEstimated": beats[::4],
|
|
40
|
+
"onsets": onsets,
|
|
41
|
+
"envelope": {"hopSec": hop / rate, "bands": bands},
|
|
42
|
+
"pulseKinds": ["kick", "snare", "onset"],
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
if __name__ == "__main__":
|
|
47
|
+
if len(sys.argv) != 3:
|
|
48
|
+
raise SystemExit("usage: audio-analysis.py <audio-file> <output-json>")
|
|
49
|
+
result = analyse(Path(sys.argv[1]))
|
|
50
|
+
destination = Path(sys.argv[2])
|
|
51
|
+
destination.parent.mkdir(parents=True, exist_ok=True)
|
|
52
|
+
destination.write_text(json.dumps(result, ensure_ascii=False, separators=(",", ":")) + "\n")
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// Chrome discovery and the MO-A-51 launch ladder. A rung counts only when the page itself obtains a
|
|
2
|
+
// WebGL2 context. Chrome is driven over Playwright's pipe transport, so no control port listens.
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
import { existsSync, mkdirSync, rmSync } from "node:fs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { pathToFileURL } from "node:url";
|
|
7
|
+
import { chromeFlagRungs } from "./constants.mjs";
|
|
8
|
+
|
|
9
|
+
const macChrome = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome";
|
|
10
|
+
|
|
11
|
+
export function which(name, env = process.env) {
|
|
12
|
+
for (const dir of (env.PATH ?? "").split(path.delimiter)) {
|
|
13
|
+
if (!dir) continue;
|
|
14
|
+
const candidate = path.join(dir, name);
|
|
15
|
+
if (existsSync(candidate)) return candidate;
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function findChrome(env = process.env) {
|
|
21
|
+
if (env.CHROME_PATH) return existsSync(env.CHROME_PATH) ? { path: env.CHROME_PATH } : { missing: `CHROME_PATH does not exist: ${env.CHROME_PATH}` };
|
|
22
|
+
if (process.platform === "darwin" && existsSync(macChrome)) return { path: macChrome };
|
|
23
|
+
for (const name of ["google-chrome", "google-chrome-stable", "chromium", "chromium-browser", "chrome"]) {
|
|
24
|
+
const found = which(name, env);
|
|
25
|
+
if (found) return { path: found };
|
|
26
|
+
}
|
|
27
|
+
return { missing: "Chrome/Chromium not found on PATH or at the standard install location" };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function chromeVersion(executable) {
|
|
31
|
+
const result = spawnSync(executable, ["--version"], { encoding: "utf8", timeout: 10000 });
|
|
32
|
+
return result.status === 0 ? result.stdout.trim() : `version unavailable (${(result.stderr || result.error?.message || "").split("\n")[0]})`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export async function loadPlaywright(cacheDir) {
|
|
36
|
+
const entry = path.join(cacheDir, "node_modules", "playwright-core", "index.mjs");
|
|
37
|
+
return (await import(pathToFileURL(entry).href)).chromium;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const probeHtml = "<!doctype html><meta charset=utf-8><title>lit-typographic-motion</title>";
|
|
41
|
+
|
|
42
|
+
// Try each rung in order. Returns { context, page, rung, renderer } or throws a classified error:
|
|
43
|
+
// error.kind = "launch" (no rung launched Chrome) or "webgl" (Chrome ran, WebGL2 never came up).
|
|
44
|
+
export async function launchLadder(chromium, executable, profileRoot, { timeout = 30000, onPage, rungOnly } = {}) {
|
|
45
|
+
let firstLaunchError = "";
|
|
46
|
+
let lastWebglError = "";
|
|
47
|
+
let launched = false;
|
|
48
|
+
for (const rung of chromeFlagRungs().filter((candidate) => !rungOnly || candidate.name === rungOnly)) {
|
|
49
|
+
const profile = path.join(profileRoot, rung.name === "gpu" ? "cg" : "cs");
|
|
50
|
+
rmSync(profile, { recursive: true, force: true });
|
|
51
|
+
mkdirSync(profile, { recursive: true });
|
|
52
|
+
let context;
|
|
53
|
+
try {
|
|
54
|
+
context = await chromium.launchPersistentContext(profile, {
|
|
55
|
+
executablePath: executable, headless: true, args: rung.flags, chromiumSandbox: true, timeout,
|
|
56
|
+
viewport: { width: 1280, height: 720 }, deviceScaleFactor: 1
|
|
57
|
+
});
|
|
58
|
+
launched = true;
|
|
59
|
+
const page = context.pages()[0] ?? await context.newPage();
|
|
60
|
+
await page.setContent(probeHtml);
|
|
61
|
+
const probe = await page.evaluate(() => {
|
|
62
|
+
const gl = document.createElement("canvas").getContext("webgl2");
|
|
63
|
+
if (!gl) return { ok: false, detail: "canvas.getContext('webgl2') returned null" };
|
|
64
|
+
const ext = gl.getExtension("WEBGL_debug_renderer_info");
|
|
65
|
+
return { ok: true, renderer: ext ? gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) : "unknown (debug-info extension unavailable)" };
|
|
66
|
+
});
|
|
67
|
+
if (probe.ok) {
|
|
68
|
+
if (onPage) await onPage(page);
|
|
69
|
+
return { context, page, rung, renderer: probe.renderer, profile };
|
|
70
|
+
}
|
|
71
|
+
lastWebglError = `${rung.name} rung: ${probe.detail}`;
|
|
72
|
+
} catch (error) {
|
|
73
|
+
const line = String(error?.message ?? error).split("\n").find((part) => part.trim()) ?? String(error);
|
|
74
|
+
if (!launched) firstLaunchError ||= line;
|
|
75
|
+
else lastWebglError = `${rung.name} rung: ${line}`;
|
|
76
|
+
}
|
|
77
|
+
await context?.close().catch(() => {});
|
|
78
|
+
rmSync(profile, { recursive: true, force: true });
|
|
79
|
+
}
|
|
80
|
+
const error = new Error(launched ? `no WebGL2 context on any rung (${lastWebglError})` : `Chrome failed to launch headless: ${firstLaunchError}`);
|
|
81
|
+
error.kind = launched ? "webgl" : "launch";
|
|
82
|
+
throw error;
|
|
83
|
+
}
|