@prismer/runtime 2.0.8 → 2.2.63
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 +4004 -0
- package/README.md +34 -12
- package/apc/skills/FIELD-DICTIONARY.md +111 -0
- package/apc/skills/bug-reproduce/SKILL.md +150 -0
- package/apc/skills/bug-reproduce/skill.json +96 -0
- package/apc/skills/code-review/SKILL.md +198 -0
- package/apc/skills/code-review/skill.json +124 -0
- package/apc/skills/design-review/SKILL.md +122 -0
- package/apc/skills/design-review/skill.json +88 -0
- package/apc/skills/doc-sync/SKILL.md +168 -0
- package/apc/skills/doc-sync/skill.json +81 -0
- package/apc/skills/env-doctor/SKILL.md +194 -0
- package/apc/skills/env-doctor/skill.json +209 -0
- package/apc/skills/git-ops/SKILL.md +189 -0
- package/apc/skills/git-ops/skill.json +94 -0
- package/apc/skills/impact-trace/SKILL.md +168 -0
- package/apc/skills/impact-trace/skill.json +104 -0
- package/apc/skills/observability/SKILL.md +195 -0
- package/apc/skills/observability/skill.json +116 -0
- package/apc/skills/release-db-config-sync/SKILL.md +186 -0
- package/apc/skills/release-db-config-sync/skill.json +109 -0
- package/apc/skills/release-ota-promote/SKILL.md +195 -0
- package/apc/skills/release-ota-promote/skill.json +176 -0
- package/apc/skills/release-preflight/SKILL.md +174 -0
- package/apc/skills/release-preflight/skill.json +175 -0
- package/apc/skills/release-rollback/SKILL.md +214 -0
- package/apc/skills/release-rollback/skill.json +230 -0
- package/apc/skills/release-tag/SKILL.md +194 -0
- package/apc/skills/release-tag/skill.json +94 -0
- package/apc/skills/releasing-prod/SKILL.md +49 -0
- package/apc/skills/releasing-test/SKILL.md +144 -0
- package/apc/skills/sdk-release/SKILL.md +200 -0
- package/apc/skills/spec-intake/SKILL.md +169 -0
- package/apc/skills/spec-intake/skill.json +93 -0
- package/apc/skills/test-result-feedback/SKILL.md +239 -0
- package/apc/skills/test-result-feedback/skill.json +193 -0
- package/apc/skills/test-runner/SKILL.md +169 -0
- package/apc/skills/test-runner/skill.json +103 -0
- package/apc/skills/ui-align/SKILL.md +209 -0
- package/apc/skills/ui-align/skill.json +114 -0
- package/apc/skills/ui-canvas/SKILL.md +148 -0
- package/apc/skills/ui-canvas/skill.json +127 -0
- package/built-in-skills/agent-coordination/SKILL.md +77 -38
- package/built-in-skills/agent-meta/SKILL.md +12 -0
- package/built-in-skills/assets/SKILL.md +9 -7
- package/built-in-skills/browser-use/SKILL.md +93 -0
- package/built-in-skills/canvas-design/SKILL.md +4 -3
- package/built-in-skills/canvas-design/canvas-fonts/IBMPlexSerif-OFL.txt +93 -0
- package/built-in-skills/canvas-design/canvas-fonts/InstrumentSerif-OFL.txt +93 -0
- package/built-in-skills/canvas-design/canvas-fonts/LICENSE-SOURCES.md +16 -0
- package/built-in-skills/claim-agent-ownership/SKILL.md +10 -5
- package/built-in-skills/claude-api/SKILL.md +2 -1
- package/built-in-skills/claude-api/python/claude-api/README.md +2 -2
- package/built-in-skills/claude-api/python/claude-api/tool-use.md +9 -5
- package/built-in-skills/claude-api/python/managed-agents/README.md +11 -1
- package/built-in-skills/claude-api/shared/error-codes.md +4 -4
- package/built-in-skills/claude-api/shared/managed-agents-client-patterns.md +4 -2
- package/built-in-skills/claude-api/shared/managed-agents-core.md +1 -2
- package/built-in-skills/claude-api/shared/managed-agents-events.md +41 -22
- package/built-in-skills/claude-api/shared/managed-agents-multiagent.md +5 -3
- package/built-in-skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +1 -1
- package/built-in-skills/claude-api/shared/managed-agents-tools.md +2 -3
- package/built-in-skills/claude-api/shared/model-migration.md +3 -3
- package/built-in-skills/claude-api/shared/models.md +1 -1
- package/built-in-skills/claude-api/typescript/claude-api/batches.md +1 -1
- package/built-in-skills/claude-api/typescript/claude-api/files-api.md +3 -1
- package/built-in-skills/claude-api/typescript/claude-api/tool-use.md +8 -2
- package/built-in-skills/claude-api/typescript/managed-agents/README.md +8 -2
- package/built-in-skills/codebase-design/DEEPENING.md +37 -0
- package/built-in-skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/built-in-skills/codebase-design/LICENSE +21 -0
- package/built-in-skills/codebase-design/SKILL.md +130 -0
- package/built-in-skills/codebase-design/references/requesting-code-review/GUIDE.md +291 -0
- package/built-in-skills/codebase-design/references/requesting-code-review/LICENSE +21 -0
- package/built-in-skills/codebase-design/references/requesting-code-review/LICENSE.superpowers +21 -0
- package/built-in-skills/codebase-design/references/requesting-code-review/NOTICE.md +37 -0
- package/built-in-skills/codebase-design/references/sdlc-review/GUIDE.md +130 -0
- package/built-in-skills/codebase-design/references/sdlc-review/LICENSE +21 -0
- package/built-in-skills/codebase-design/references/sdlc-review/NOTICE.md +17 -0
- package/built-in-skills/codebase-design/references/simplify-code/GUIDE.md +269 -0
- package/built-in-skills/codebase-design/references/simplify-code/LICENSE +21 -0
- package/built-in-skills/codebase-design/references/simplify-code/NOTICE.md +37 -0
- package/built-in-skills/competitor-intelligence/LICENSE +21 -0
- package/built-in-skills/competitor-intelligence/NOTICE.md +6 -0
- package/built-in-skills/competitor-intelligence/SKILL.md +125 -0
- package/built-in-skills/competitor-intelligence/scripts/watch_state.py +160 -0
- package/built-in-skills/conversation-compaction/SKILL.md +117 -0
- package/built-in-skills/council-creator/SKILL.md +427 -0
- package/built-in-skills/diagnosing-bugs/LICENSE +21 -0
- package/built-in-skills/diagnosing-bugs/SKILL.md +148 -0
- package/built-in-skills/diagnosing-bugs/references/desktop-dom/GUIDE.md +64 -0
- package/built-in-skills/diagnosing-bugs/references/desktop-dom/LICENSE +21 -0
- package/built-in-skills/diagnosing-bugs/references/desktop-dom/NOTICE.md +17 -0
- package/built-in-skills/diagnosing-bugs/references/systematic-debugging/GUIDE.md +410 -0
- package/built-in-skills/diagnosing-bugs/references/systematic-debugging/LICENSE +21 -0
- package/built-in-skills/diagnosing-bugs/references/systematic-debugging/LICENSE.superpowers +21 -0
- package/built-in-skills/diagnosing-bugs/references/systematic-debugging/NOTICE.md +37 -0
- package/built-in-skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
- package/built-in-skills/doc-coauthoring/SKILL.md +7 -0
- package/built-in-skills/doc-coauthoring/references/humanizer/GUIDE.md +647 -0
- package/built-in-skills/doc-coauthoring/references/humanizer/LICENSE +21 -0
- package/built-in-skills/doc-coauthoring/references/humanizer/LICENSE.hermes +21 -0
- package/built-in-skills/doc-coauthoring/references/humanizer/PROVENANCE.md +7 -0
- package/built-in-skills/document-actions/LICENSE +21 -0
- package/built-in-skills/document-actions/NOTICE.md +21 -0
- package/built-in-skills/document-actions/SKILL.md +46 -0
- package/built-in-skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/built-in-skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/built-in-skills/domain-modeling/LICENSE +21 -0
- package/built-in-skills/domain-modeling/SKILL.md +76 -0
- package/built-in-skills/evidence-citations/LICENSE +21 -0
- package/built-in-skills/evidence-citations/NOTICE.md +21 -0
- package/built-in-skills/evidence-citations/SKILL.md +46 -0
- package/built-in-skills/evidence-citations/references/citation-formats.md +68 -0
- package/built-in-skills/evidence-citations/references/grounding-rationale.md +64 -0
- package/built-in-skills/evidence-citations/scripts/sources.py +720 -0
- package/built-in-skills/frontend-design/SKILL.md +7 -0
- package/built-in-skills/frontend-design/references/claude-design/GUIDE.md +650 -0
- package/built-in-skills/frontend-design/references/claude-design/LICENSE +21 -0
- package/built-in-skills/frontend-design/references/claude-design/LICENSE.hermes +21 -0
- package/built-in-skills/frontend-design/references/claude-design/PROVENANCE.md +7 -0
- package/built-in-skills/human-approval/SKILL.md +17 -2
- package/built-in-skills/image-generate/SKILL.md +107 -301
- package/built-in-skills/image-generate/scripts/generate-and-deliver.mjs +310 -0
- package/built-in-skills/ingest/SKILL.md +13 -45
- package/built-in-skills/internal-comms/SKILL.md +1 -0
- package/built-in-skills/liteparse/SKILL.md +130 -110
- package/built-in-skills/mcp-builder/SKILL.md +1 -0
- package/built-in-skills/mcp-builder/reference/evaluation.md +11 -2
- package/built-in-skills/mcp-builder/reference/node_mcp_server.md +34 -5
- package/built-in-skills/mcp-builder/reference/python_mcp_server.md +6 -2
- package/built-in-skills/mcp-builder/scripts/connections.py +1 -1
- package/built-in-skills/mcp-builder/scripts/evaluation.py +52 -34
- package/built-in-skills/mcp-builder/scripts/requirements.txt +2 -2
- package/built-in-skills/meeting-actions/LICENSE +21 -0
- package/built-in-skills/meeting-actions/NOTICE.md +21 -0
- package/built-in-skills/meeting-actions/SKILL.md +48 -0
- package/built-in-skills/memory/SKILL.md +444 -55
- package/built-in-skills/memory/references/llm-wiki/GUIDE.md +468 -0
- package/built-in-skills/memory/references/llm-wiki/LICENSE +21 -0
- package/built-in-skills/memory/references/llm-wiki/NOTICE.md +4 -0
- package/built-in-skills/memory/references/llm-wiki/scripts/lint_wiki.py +84 -0
- package/built-in-skills/memory/references/llm-wiki/scripts/requirements.txt +1 -0
- package/built-in-skills/memory/references/llm-wiki/templates/SCHEMA.md +19 -0
- package/built-in-skills/memory/references/llm-wiki/templates/index.md +9 -0
- package/built-in-skills/memory/references/llm-wiki/templates/log.md +4 -0
- package/built-in-skills/memory-dream/SKILL.md +332 -0
- package/built-in-skills/memory-import/SKILL.md +51 -0
- package/built-in-skills/office-artifacts/NOTICE.md +15 -0
- package/built-in-skills/office-artifacts/SKILL.md +37 -4
- package/built-in-skills/office-artifacts/references/RESOURCE-LIMITS.md +44 -0
- package/built-in-skills/office-artifacts/references/document-generation/GUIDE.md +105 -0
- package/built-in-skills/office-artifacts/references/docx/GUIDE.md +196 -0
- package/built-in-skills/office-artifacts/references/docx/LICENSE +21 -0
- package/built-in-skills/office-artifacts/references/docx/NOTICE.md +21 -0
- package/built-in-skills/office-artifacts/references/docx/references/revisions-and-comments.md +88 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_comments.py +292 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_common.py +93 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_create.py +177 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_edit.py +250 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_read.py +169 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_revisions.py +149 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_template.py +70 -0
- package/built-in-skills/office-artifacts/references/docx/scripts/docx_validate.py +155 -0
- package/built-in-skills/office-artifacts/references/docx/tests/test_docx_skill.py +525 -0
- package/built-in-skills/office-artifacts/references/pdf/GUIDE.md +125 -0
- package/built-in-skills/office-artifacts/references/pdf/LICENSE +21 -0
- package/built-in-skills/office-artifacts/references/pdf/NOTICE.md +21 -0
- package/built-in-skills/office-artifacts/references/pdf/references/forms.md +99 -0
- package/built-in-skills/office-artifacts/references/pdf/references/nano-pdf-editing.md +40 -0
- package/built-in-skills/office-artifacts/references/pdf/references/ocr-extraction.md +165 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/_raster.py +87 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/extract_marker.py +95 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/extract_pymupdf.py +107 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_create.py +153 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_fill_form.py +97 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_form_layout.py +168 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_make_form.py +145 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_merge.py +50 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_meta.py +123 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_page_image.py +101 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_read.py +153 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_secure.py +71 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_split.py +86 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_stamp.py +145 -0
- package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_watermark.py +51 -0
- package/built-in-skills/office-artifacts/references/pdf/tests/test_pdf_skill.py +414 -0
- package/built-in-skills/office-artifacts/references/powerpoint/GUIDE.md +220 -0
- package/built-in-skills/office-artifacts/references/powerpoint/LICENSE +21 -0
- package/built-in-skills/office-artifacts/references/powerpoint/NOTICE.md +21 -0
- package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_create.py +214 -0
- package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_edit.py +442 -0
- package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_from_template.py +88 -0
- package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_read.py +131 -0
- package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_render.py +104 -0
- package/built-in-skills/office-artifacts/references/powerpoint/tests/test_powerpoint_skill.py +478 -0
- package/built-in-skills/office-artifacts/references/xlsx/GUIDE.md +196 -0
- package/built-in-skills/office-artifacts/references/xlsx/LICENSE +21 -0
- package/built-in-skills/office-artifacts/references/xlsx/NOTICE.md +21 -0
- package/built-in-skills/office-artifacts/references/xlsx/references/restructuring.md +74 -0
- package/built-in-skills/office-artifacts/references/xlsx/scripts/csv_to_xlsx.py +108 -0
- package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_create.py +259 -0
- package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_edit.py +269 -0
- package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_read.py +160 -0
- package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_recalc.py +111 -0
- package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_restructure.py +418 -0
- package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_to_csv.py +69 -0
- package/built-in-skills/office-artifacts/references/xlsx/tests/test_xlsx_skill.py +542 -0
- package/built-in-skills/office-artifacts/tests/test_resource_regressions.py +272 -0
- package/built-in-skills/okr/SKILL.md +154 -0
- package/built-in-skills/persona/SKILL.md +81 -0
- package/built-in-skills/persona-generator/SKILL.md +296 -0
- package/built-in-skills/pkf-svg/SKILL.md +258 -0
- package/built-in-skills/pkf-svg/references/architecture-diagram/GUIDE.md +148 -0
- package/built-in-skills/pkf-svg/references/architecture-diagram/LICENSE +21 -0
- package/built-in-skills/pkf-svg/references/architecture-diagram/LICENSE.hermes +21 -0
- package/built-in-skills/pkf-svg/references/architecture-diagram/PROVENANCE.md +7 -0
- package/built-in-skills/pkf-svg/references/architecture-diagram/templates/template.html +345 -0
- package/built-in-skills/pkf-writing/SKILL.md +258 -0
- package/built-in-skills/prismer-airtable/LICENSE +21 -0
- package/built-in-skills/prismer-airtable/NOTICE.md +11 -0
- package/built-in-skills/prismer-airtable/SKILL.md +248 -0
- package/built-in-skills/prismer-airtable/scripts/airtable_client.py +76 -0
- package/built-in-skills/prismer-apple-notes/LICENSE +21 -0
- package/built-in-skills/prismer-apple-notes/NOTICE.md +17 -0
- package/built-in-skills/prismer-apple-notes/SKILL.md +118 -0
- package/built-in-skills/prismer-apple-notes/scripts/readiness.py +47 -0
- package/built-in-skills/prismer-apple-reminders/LICENSE +21 -0
- package/built-in-skills/prismer-apple-reminders/NOTICE.md +17 -0
- package/built-in-skills/prismer-apple-reminders/SKILL.md +155 -0
- package/built-in-skills/prismer-apple-reminders/scripts/readiness.py +47 -0
- package/built-in-skills/prismer-ascii-video/LICENSE +21 -0
- package/built-in-skills/prismer-ascii-video/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-ascii-video/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-ascii-video/README.md +290 -0
- package/built-in-skills/prismer-ascii-video/SKILL.md +252 -0
- package/built-in-skills/prismer-ascii-video/provenance/category-DESCRIPTION.md +3 -0
- package/built-in-skills/prismer-ascii-video/references/architecture.md +807 -0
- package/built-in-skills/prismer-ascii-video/references/composition.md +900 -0
- package/built-in-skills/prismer-ascii-video/references/effects.md +1877 -0
- package/built-in-skills/prismer-ascii-video/references/inputs.md +693 -0
- package/built-in-skills/prismer-ascii-video/references/optimization.md +688 -0
- package/built-in-skills/prismer-ascii-video/references/scenes.md +1018 -0
- package/built-in-skills/prismer-ascii-video/references/shaders.md +1408 -0
- package/built-in-skills/prismer-ascii-video/references/troubleshooting.md +360 -0
- package/built-in-skills/prismer-baoyu-infographic/LICENSE +21 -0
- package/built-in-skills/prismer-baoyu-infographic/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-baoyu-infographic/LICENSE.origin +21 -0
- package/built-in-skills/prismer-baoyu-infographic/PORT_NOTES.md +37 -0
- package/built-in-skills/prismer-baoyu-infographic/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-baoyu-infographic/SKILL.md +240 -0
- package/built-in-skills/prismer-baoyu-infographic/references/analysis-framework.md +182 -0
- package/built-in-skills/prismer-baoyu-infographic/references/base-prompt.md +43 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/bento-grid.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/binary-comparison.md +48 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/bridge.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/circular-flow.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/comic-strip.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/comparison-matrix.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/dashboard.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/dense-modules.md +72 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/funnel.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/hierarchical-layers.md +48 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/hub-spoke.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/iceberg.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/isometric-map.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/jigsaw.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/linear-progression.md +48 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/periodic-table.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/story-mountain.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/structural-breakdown.md +48 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/tree-branching.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/venn-diagram.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/layouts/winding-roadmap.md +41 -0
- package/built-in-skills/prismer-baoyu-infographic/references/structured-content-template.md +244 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/aged-academia.md +36 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/bold-graphic.md +36 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/chalkboard.md +61 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/claymation.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/corporate-memphis.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/craft-handmade.md +44 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/cyberpunk-neon.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/hand-drawn-edu.md +63 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/ikea-manual.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/kawaii.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/knolling.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/lego-brick.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/morandi-journal.md +60 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/origami.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/pixel-art.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/pop-laboratory.md +48 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/retro-pop-grid.md +47 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/storybook-watercolor.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/subway-map.md +29 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/technical-schematic.md +36 -0
- package/built-in-skills/prismer-baoyu-infographic/references/styles/ui-wireframe.md +29 -0
- package/built-in-skills/prismer-blocked-page-recovery/LICENSE +21 -0
- package/built-in-skills/prismer-blocked-page-recovery/NOTICE.md +17 -0
- package/built-in-skills/prismer-blocked-page-recovery/SKILL.md +158 -0
- package/built-in-skills/prismer-blocked-page-recovery/scripts/recover_page.py +311 -0
- package/built-in-skills/prismer-box/LICENSE +21 -0
- package/built-in-skills/prismer-box/NOTICE.md +11 -0
- package/built-in-skills/prismer-box/SKILL.md +147 -0
- package/built-in-skills/prismer-box/references/bulk-operations.md +43 -0
- package/built-in-skills/prismer-box/references/cli-guide.md +133 -0
- package/built-in-skills/prismer-box/references/content-workflows.md +86 -0
- package/built-in-skills/prismer-box/references/hubs.md +77 -0
- package/built-in-skills/prismer-box/references/oauth-setup.md +92 -0
- package/built-in-skills/prismer-box/references/rest-api.md +37 -0
- package/built-in-skills/prismer-box/references/sdk-development.md +85 -0
- package/built-in-skills/prismer-box/references/search-and-ai.md +147 -0
- package/built-in-skills/prismer-box/references/troubleshooting.md +33 -0
- package/built-in-skills/prismer-box/references/webhooks-and-events.md +43 -0
- package/built-in-skills/prismer-codebase-inspection/LICENSE +21 -0
- package/built-in-skills/prismer-codebase-inspection/NOTICE.md +17 -0
- package/built-in-skills/prismer-codebase-inspection/SKILL.md +141 -0
- package/built-in-skills/prismer-computer-use/LICENSE +21 -0
- package/built-in-skills/prismer-computer-use/NOTICE.md +17 -0
- package/built-in-skills/prismer-computer-use/SKILL.md +372 -0
- package/built-in-skills/prismer-design-md/LICENSE +21 -0
- package/built-in-skills/prismer-design-md/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-design-md/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-design-md/SKILL.md +227 -0
- package/built-in-skills/prismer-design-md/templates/starter.md +99 -0
- package/built-in-skills/prismer-email-inbox-triage/LICENSE +21 -0
- package/built-in-skills/prismer-email-inbox-triage/NOTICE.md +11 -0
- package/built-in-skills/prismer-email-inbox-triage/SKILL.md +116 -0
- package/built-in-skills/prismer-findmy/LICENSE +21 -0
- package/built-in-skills/prismer-findmy/NOTICE.md +17 -0
- package/built-in-skills/prismer-findmy/SKILL.md +150 -0
- package/built-in-skills/prismer-findmy/scripts/readiness.py +47 -0
- package/built-in-skills/prismer-gif-search/LICENSE +21 -0
- package/built-in-skills/prismer-gif-search/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-gif-search/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-gif-search/SKILL.md +97 -0
- package/built-in-skills/prismer-gif-search/scripts/tenor.py +81 -0
- package/built-in-skills/prismer-github/LICENSE +21 -0
- package/built-in-skills/prismer-github/NOTICE.md +17 -0
- package/built-in-skills/prismer-github/SKILL.md +74 -0
- package/built-in-skills/prismer-github/references/auth.md +91 -0
- package/built-in-skills/prismer-github/references/ci-troubleshooting.md +193 -0
- package/built-in-skills/prismer-github/references/code-review.md +465 -0
- package/built-in-skills/prismer-github/references/conventional-commits.md +81 -0
- package/built-in-skills/prismer-github/references/github-api-cheatsheet.md +177 -0
- package/built-in-skills/prismer-github/references/issue-to-pr.md +74 -0
- package/built-in-skills/prismer-github/references/issues.md +336 -0
- package/built-in-skills/prismer-github/references/pr-workflow.md +346 -0
- package/built-in-skills/prismer-github/references/repo-management.md +484 -0
- package/built-in-skills/prismer-github/references/review-output-template.md +84 -0
- package/built-in-skills/prismer-github/scripts/ensure-gh.py +132 -0
- package/built-in-skills/prismer-github/scripts/gh-env.sh +25 -0
- package/built-in-skills/prismer-github/scripts/git-credential-token.py +68 -0
- package/built-in-skills/prismer-github/scripts/github-api.py +71 -0
- package/built-in-skills/prismer-github/scripts/github-context.py +28 -0
- package/built-in-skills/prismer-github/templates/bug-report.md +35 -0
- package/built-in-skills/prismer-github/templates/feature-request.md +31 -0
- package/built-in-skills/prismer-github/templates/pr-body-bugfix.md +35 -0
- package/built-in-skills/prismer-github/templates/pr-body-feature.md +33 -0
- package/built-in-skills/prismer-google-workspace/LICENSE +21 -0
- package/built-in-skills/prismer-google-workspace/NOTICE.md +11 -0
- package/built-in-skills/prismer-google-workspace/SKILL.md +369 -0
- package/built-in-skills/prismer-google-workspace/references/daily-brief.md +65 -0
- package/built-in-skills/prismer-google-workspace/references/gmail-search-syntax.md +63 -0
- package/built-in-skills/prismer-google-workspace/scripts/_hermes_home.py +17 -0
- package/built-in-skills/prismer-google-workspace/scripts/_private_state.py +39 -0
- package/built-in-skills/prismer-google-workspace/scripts/google_api.py +1339 -0
- package/built-in-skills/prismer-google-workspace/scripts/gws_bridge.py +121 -0
- package/built-in-skills/prismer-google-workspace/scripts/setup.py +563 -0
- package/built-in-skills/prismer-google-workspace/tests/test_productivity_regressions.py +214 -0
- package/built-in-skills/prismer-hermes-agent/LICENSE +21 -0
- package/built-in-skills/prismer-hermes-agent/NOTICE.md +17 -0
- package/built-in-skills/prismer-hermes-agent/SKILL.md +247 -0
- package/built-in-skills/prismer-hermes-agent/references/background-systems.md +108 -0
- package/built-in-skills/prismer-hermes-agent/references/cli-reference.md +158 -0
- package/built-in-skills/prismer-hermes-agent/references/configuration.md +96 -0
- package/built-in-skills/prismer-hermes-agent/references/contributor-guide.md +151 -0
- package/built-in-skills/prismer-hermes-agent/references/delegate-task-concurrency-diagnosis.md +47 -0
- package/built-in-skills/prismer-hermes-agent/references/desktop-plugins.md +215 -0
- package/built-in-skills/prismer-hermes-agent/references/native-mcp.md +351 -0
- package/built-in-skills/prismer-hermes-agent/references/petdex.md +82 -0
- package/built-in-skills/prismer-hermes-agent/references/portal-auth-for-third-party-apps.md +135 -0
- package/built-in-skills/prismer-hermes-agent/references/project-context-files.md +55 -0
- package/built-in-skills/prismer-hermes-agent/references/providers-and-models.md +81 -0
- package/built-in-skills/prismer-hermes-agent/references/security-privacy.md +73 -0
- package/built-in-skills/prismer-hermes-agent/references/slash-commands.md +119 -0
- package/built-in-skills/prismer-hermes-agent/references/themes.md +134 -0
- package/built-in-skills/prismer-hermes-agent/references/troubleshooting.md +87 -0
- package/built-in-skills/prismer-hermes-agent/references/tui-widgets.md +144 -0
- package/built-in-skills/prismer-hermes-agent/references/webhooks.md +219 -0
- package/built-in-skills/prismer-hermes-agent/references/windows-quirks.md +64 -0
- package/built-in-skills/prismer-hermes-agent/templates/clock.mjs +51 -0
- package/built-in-skills/prismer-hermes-agent/templates/plugin.js +97 -0
- package/built-in-skills/prismer-hermes-agent/templates/skin.yaml +49 -0
- package/built-in-skills/prismer-himalaya/LICENSE +21 -0
- package/built-in-skills/prismer-himalaya/NOTICE.md +11 -0
- package/built-in-skills/prismer-himalaya/SKILL.md +340 -0
- package/built-in-skills/prismer-himalaya/references/configuration.md +227 -0
- package/built-in-skills/prismer-himalaya/references/message-composition.md +206 -0
- package/built-in-skills/prismer-himalaya/scripts/compose_draft.py +48 -0
- package/built-in-skills/prismer-im-collab/SKILL.md +27 -7
- package/built-in-skills/prismer-imessage/LICENSE +21 -0
- package/built-in-skills/prismer-imessage/NOTICE.md +17 -0
- package/built-in-skills/prismer-imessage/SKILL.md +128 -0
- package/built-in-skills/prismer-imessage/scripts/readiness.py +47 -0
- package/built-in-skills/prismer-manim-video/LICENSE +21 -0
- package/built-in-skills/prismer-manim-video/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-manim-video/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-manim-video/README.md +23 -0
- package/built-in-skills/prismer-manim-video/SKILL.md +279 -0
- package/built-in-skills/prismer-manim-video/references/animation-design-thinking.md +161 -0
- package/built-in-skills/prismer-manim-video/references/animations.md +282 -0
- package/built-in-skills/prismer-manim-video/references/camera-and-3d.md +135 -0
- package/built-in-skills/prismer-manim-video/references/decorations.md +202 -0
- package/built-in-skills/prismer-manim-video/references/equations.md +216 -0
- package/built-in-skills/prismer-manim-video/references/graphs-and-data.md +163 -0
- package/built-in-skills/prismer-manim-video/references/mobjects.md +333 -0
- package/built-in-skills/prismer-manim-video/references/paper-explainer.md +255 -0
- package/built-in-skills/prismer-manim-video/references/production-quality.md +190 -0
- package/built-in-skills/prismer-manim-video/references/rendering.md +187 -0
- package/built-in-skills/prismer-manim-video/references/scene-planning.md +118 -0
- package/built-in-skills/prismer-manim-video/references/troubleshooting.md +135 -0
- package/built-in-skills/prismer-manim-video/references/updaters-and-trackers.md +260 -0
- package/built-in-skills/prismer-manim-video/references/visual-design.md +124 -0
- package/built-in-skills/prismer-manim-video/scripts/setup.sh +15 -0
- package/built-in-skills/prismer-maps/LICENSE +21 -0
- package/built-in-skills/prismer-maps/NOTICE.md +11 -0
- package/built-in-skills/prismer-maps/SKILL.md +240 -0
- package/built-in-skills/prismer-maps/scripts/maps_client.py +1324 -0
- package/built-in-skills/prismer-node-inspect-debugger/LICENSE +21 -0
- package/built-in-skills/prismer-node-inspect-debugger/NOTICE.md +17 -0
- package/built-in-skills/prismer-node-inspect-debugger/SKILL.md +347 -0
- package/built-in-skills/prismer-notion/LICENSE +21 -0
- package/built-in-skills/prismer-notion/NOTICE.md +11 -0
- package/built-in-skills/prismer-notion/SKILL.md +495 -0
- package/built-in-skills/prismer-notion/references/block-types.md +112 -0
- package/built-in-skills/prismer-obsidian/LICENSE +21 -0
- package/built-in-skills/prismer-obsidian/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-obsidian/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-obsidian/SKILL.md +80 -0
- package/built-in-skills/prismer-obsidian/provenance/category-DESCRIPTION.md +3 -0
- package/built-in-skills/prismer-obsidian/scripts/write_note.py +84 -0
- package/built-in-skills/prismer-p5js/LICENSE +21 -0
- package/built-in-skills/prismer-p5js/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-p5js/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-p5js/README.md +64 -0
- package/built-in-skills/prismer-p5js/SKILL.md +574 -0
- package/built-in-skills/prismer-p5js/references/animation.md +439 -0
- package/built-in-skills/prismer-p5js/references/color-systems.md +355 -0
- package/built-in-skills/prismer-p5js/references/core-api.md +410 -0
- package/built-in-skills/prismer-p5js/references/export-pipeline.md +534 -0
- package/built-in-skills/prismer-p5js/references/interaction.md +398 -0
- package/built-in-skills/prismer-p5js/references/shapes-and-geometry.md +300 -0
- package/built-in-skills/prismer-p5js/references/troubleshooting.md +532 -0
- package/built-in-skills/prismer-p5js/references/typography.md +302 -0
- package/built-in-skills/prismer-p5js/references/visual-effects.md +905 -0
- package/built-in-skills/prismer-p5js/references/webgl-and-3d.md +423 -0
- package/built-in-skills/prismer-p5js/scripts/export-frames.js +91 -0
- package/built-in-skills/prismer-p5js/scripts/render.sh +113 -0
- package/built-in-skills/prismer-p5js/scripts/serve.sh +25 -0
- package/built-in-skills/prismer-p5js/scripts/setup.sh +87 -0
- package/built-in-skills/prismer-p5js/templates/viewer.html +401 -0
- package/built-in-skills/prismer-popular-web-designs/LICENSE +21 -0
- package/built-in-skills/prismer-popular-web-designs/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-popular-web-designs/LICENSE.origin +21 -0
- package/built-in-skills/prismer-popular-web-designs/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-popular-web-designs/SKILL.md +218 -0
- package/built-in-skills/prismer-popular-web-designs/templates/airbnb.md +259 -0
- package/built-in-skills/prismer-popular-web-designs/templates/airtable.md +102 -0
- package/built-in-skills/prismer-popular-web-designs/templates/apple.md +326 -0
- package/built-in-skills/prismer-popular-web-designs/templates/bmw.md +193 -0
- package/built-in-skills/prismer-popular-web-designs/templates/cal.md +272 -0
- package/built-in-skills/prismer-popular-web-designs/templates/claude.md +325 -0
- package/built-in-skills/prismer-popular-web-designs/templates/clay.md +317 -0
- package/built-in-skills/prismer-popular-web-designs/templates/clickhouse.md +294 -0
- package/built-in-skills/prismer-popular-web-designs/templates/cohere.md +279 -0
- package/built-in-skills/prismer-popular-web-designs/templates/coinbase.md +142 -0
- package/built-in-skills/prismer-popular-web-designs/templates/composio.md +320 -0
- package/built-in-skills/prismer-popular-web-designs/templates/cursor.md +322 -0
- package/built-in-skills/prismer-popular-web-designs/templates/elevenlabs.md +278 -0
- package/built-in-skills/prismer-popular-web-designs/templates/expo.md +294 -0
- package/built-in-skills/prismer-popular-web-designs/templates/figma.md +233 -0
- package/built-in-skills/prismer-popular-web-designs/templates/framer.md +259 -0
- package/built-in-skills/prismer-popular-web-designs/templates/hashicorp.md +291 -0
- package/built-in-skills/prismer-popular-web-designs/templates/ibm.md +345 -0
- package/built-in-skills/prismer-popular-web-designs/templates/intercom.md +159 -0
- package/built-in-skills/prismer-popular-web-designs/templates/kraken.md +138 -0
- package/built-in-skills/prismer-popular-web-designs/templates/linear.app.md +380 -0
- package/built-in-skills/prismer-popular-web-designs/templates/lovable.md +311 -0
- package/built-in-skills/prismer-popular-web-designs/templates/minimax.md +270 -0
- package/built-in-skills/prismer-popular-web-designs/templates/mintlify.md +339 -0
- package/built-in-skills/prismer-popular-web-designs/templates/miro.md +121 -0
- package/built-in-skills/prismer-popular-web-designs/templates/mistral.ai.md +274 -0
- package/built-in-skills/prismer-popular-web-designs/templates/mongodb.md +279 -0
- package/built-in-skills/prismer-popular-web-designs/templates/notion.md +322 -0
- package/built-in-skills/prismer-popular-web-designs/templates/nvidia.md +306 -0
- package/built-in-skills/prismer-popular-web-designs/templates/ollama.md +280 -0
- package/built-in-skills/prismer-popular-web-designs/templates/opencode.ai.md +294 -0
- package/built-in-skills/prismer-popular-web-designs/templates/pinterest.md +243 -0
- package/built-in-skills/prismer-popular-web-designs/templates/posthog.md +269 -0
- package/built-in-skills/prismer-popular-web-designs/templates/raycast.md +281 -0
- package/built-in-skills/prismer-popular-web-designs/templates/replicate.md +274 -0
- package/built-in-skills/prismer-popular-web-designs/templates/resend.md +316 -0
- package/built-in-skills/prismer-popular-web-designs/templates/revolut.md +198 -0
- package/built-in-skills/prismer-popular-web-designs/templates/runwayml.md +257 -0
- package/built-in-skills/prismer-popular-web-designs/templates/sanity.md +370 -0
- package/built-in-skills/prismer-popular-web-designs/templates/sentry.md +275 -0
- package/built-in-skills/prismer-popular-web-designs/templates/spacex.md +207 -0
- package/built-in-skills/prismer-popular-web-designs/templates/spotify.md +259 -0
- package/built-in-skills/prismer-popular-web-designs/templates/stripe.md +335 -0
- package/built-in-skills/prismer-popular-web-designs/templates/supabase.md +268 -0
- package/built-in-skills/prismer-popular-web-designs/templates/superhuman.md +265 -0
- package/built-in-skills/prismer-popular-web-designs/templates/together.ai.md +276 -0
- package/built-in-skills/prismer-popular-web-designs/templates/uber.md +308 -0
- package/built-in-skills/prismer-popular-web-designs/templates/vercel.md +323 -0
- package/built-in-skills/prismer-popular-web-designs/templates/voltagent.md +336 -0
- package/built-in-skills/prismer-popular-web-designs/templates/warp.md +266 -0
- package/built-in-skills/prismer-popular-web-designs/templates/webflow.md +105 -0
- package/built-in-skills/prismer-popular-web-designs/templates/wise.md +186 -0
- package/built-in-skills/prismer-popular-web-designs/templates/x.ai.md +270 -0
- package/built-in-skills/prismer-popular-web-designs/templates/zapier.md +341 -0
- package/built-in-skills/prismer-product-price-monitor/LICENSE +21 -0
- package/built-in-skills/prismer-product-price-monitor/NOTICE.md +11 -0
- package/built-in-skills/prismer-product-price-monitor/SKILL.md +97 -0
- package/built-in-skills/prismer-product-price-monitor/scripts/watch_state.py +116 -0
- package/built-in-skills/prismer-python-debugpy/LICENSE +21 -0
- package/built-in-skills/prismer-python-debugpy/NOTICE.md +17 -0
- package/built-in-skills/prismer-python-debugpy/SKILL.md +377 -0
- package/built-in-skills/prismer-python-debugpy/scripts/dap_client.py +68 -0
- package/built-in-skills/prismer-songsee/LICENSE +21 -0
- package/built-in-skills/prismer-songsee/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-songsee/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-songsee/SKILL.md +91 -0
- package/built-in-skills/prismer-songwriting-and-ai-music/LICENSE +21 -0
- package/built-in-skills/prismer-songwriting-and-ai-music/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-songwriting-and-ai-music/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-songwriting-and-ai-music/SKILL.md +317 -0
- package/built-in-skills/prismer-spike/LICENSE +21 -0
- package/built-in-skills/prismer-spike/LICENSE.gsd +21 -0
- package/built-in-skills/prismer-spike/NOTICE.md +17 -0
- package/built-in-skills/prismer-spike/SKILL.md +212 -0
- package/built-in-skills/prismer-teams-meeting-pipeline/LICENSE +21 -0
- package/built-in-skills/prismer-teams-meeting-pipeline/NOTICE.md +11 -0
- package/built-in-skills/prismer-teams-meeting-pipeline/SKILL.md +156 -0
- package/built-in-skills/prismer-xurl/LICENSE +21 -0
- package/built-in-skills/prismer-xurl/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-xurl/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-xurl/SKILL.md +444 -0
- package/built-in-skills/prismer-xurl/provenance/category-DESCRIPTION.md +3 -0
- package/built-in-skills/prismer-youtube-content/LICENSE +21 -0
- package/built-in-skills/prismer-youtube-content/LICENSE.hermes +21 -0
- package/built-in-skills/prismer-youtube-content/PROVENANCE.md +7 -0
- package/built-in-skills/prismer-youtube-content/SKILL.md +86 -0
- package/built-in-skills/prismer-youtube-content/provenance/category-DESCRIPTION.md +3 -0
- package/built-in-skills/prismer-youtube-content/references/output-formats.md +56 -0
- package/built-in-skills/prismer-youtube-content/scripts/fetch_transcript.py +146 -0
- package/built-in-skills/proactivity/SKILL.md +84 -0
- package/built-in-skills/remotion/SKILL.md +431 -0
- package/built-in-skills/research-arxiv/LICENSE +21 -0
- package/built-in-skills/research-arxiv/NOTICE.md +4 -0
- package/built-in-skills/research-arxiv/SKILL.md +263 -0
- package/built-in-skills/research-arxiv/scripts/search_arxiv.py +111 -0
- package/built-in-skills/role-builder/SKILL.md +209 -0
- package/built-in-skills/role-builder/scripts/author-role.mjs +350 -0
- package/built-in-skills/role-builder/scripts/ingest-role.mjs +121 -0
- package/built-in-skills/role-builder/scripts/instantiate-and-run.mjs +304 -0
- package/built-in-skills/role-builder/scripts/operation-harness.mjs +269 -0
- package/built-in-skills/skill-creator/LICENSE.prismer +21 -0
- package/built-in-skills/skill-creator/NOTICE.md +18 -0
- package/built-in-skills/skill-creator/SKILL.md +182 -421
- package/built-in-skills/skill-creator/eval-viewer/generate_review.py +20 -31
- package/built-in-skills/skill-creator/eval-viewer/viewer.html +35 -23
- package/built-in-skills/skill-creator/references/external-library-import.md +110 -0
- package/built-in-skills/skill-creator/references/hermes-agent-skill-authoring/GUIDE.md +220 -0
- package/built-in-skills/skill-creator/references/hermes-agent-skill-authoring/LICENSE +21 -0
- package/built-in-skills/skill-creator/references/skill-authoring/GUIDE.md +134 -0
- package/built-in-skills/{skill-authoring/skill.json → skill-creator/references/skill-authoring/draft-contract.json} +3 -3
- package/built-in-skills/skill-creator/references/skill-builder/GUIDE.md +167 -0
- package/built-in-skills/skill-creator/references/skill-builder/scripts/ingest.mjs +93 -0
- package/built-in-skills/skill-creator/scripts/aggregate_benchmark.py +3 -2
- package/built-in-skills/skill-creator/scripts/import-library.mjs +498 -0
- package/built-in-skills/skill-creator/scripts/improve_description.py +14 -16
- package/built-in-skills/skill-creator/scripts/package_skill.py +16 -9
- package/built-in-skills/skill-creator/scripts/quick_validate.py +22 -5
- package/built-in-skills/skill-creator/scripts/run_eval.py +63 -144
- package/built-in-skills/skill-creator/scripts/run_loop.py +24 -16
- package/built-in-skills/slack-gif-creator/SKILL.md +20 -0
- package/built-in-skills/slack-gif-creator/core/gif_builder.py +13 -2
- package/built-in-skills/slack-gif-creator/core/validators.py +17 -7
- package/built-in-skills/tasks/SKILL.md +39 -24
- package/built-in-skills/tdd/LICENSE +21 -0
- package/built-in-skills/tdd/SKILL.md +117 -0
- package/built-in-skills/tdd/mocking.md +59 -0
- package/built-in-skills/tdd/refactoring.md +10 -0
- package/built-in-skills/tdd/references/test-driven-development/GUIDE.md +356 -0
- package/built-in-skills/tdd/references/test-driven-development/LICENSE +21 -0
- package/built-in-skills/tdd/references/test-driven-development/LICENSE.superpowers +21 -0
- package/built-in-skills/tdd/references/test-driven-development/NOTICE.md +37 -0
- package/built-in-skills/tdd/tests.md +61 -0
- package/built-in-skills/team/SKILL.md +3 -2
- package/built-in-skills/web-artifacts-builder/SKILL.md +4 -3
- package/built-in-skills/web-artifacts-builder/scripts/bundle-artifact.sh +9 -7
- package/built-in-skills/web-artifacts-builder/scripts/init-artifact.sh +28 -55
- package/built-in-skills/webapp-qa/LICENSE +21 -0
- package/built-in-skills/webapp-qa/NOTICE.md +37 -0
- package/built-in-skills/webapp-qa/SKILL.md +41 -0
- package/built-in-skills/webapp-qa/references/dogfood/GUIDE.md +161 -0
- package/built-in-skills/webapp-qa/references/issue-taxonomy.md +109 -0
- package/built-in-skills/webapp-qa/templates/dogfood-report-template.md +86 -0
- package/built-in-skills/webapp-testing/SKILL.md +10 -2
- package/built-in-skills/webapp-testing/examples/console_logging.py +10 -4
- package/built-in-skills/webapp-testing/examples/element_discovery.py +11 -4
- package/built-in-skills/webapp-testing/examples/static_html_automation.py +14 -9
- package/built-in-skills/webapp-testing/scripts/with_server.py +34 -10
- package/built-in-skills/wechat-pay/SKILL.md +59 -0
- package/built-in-skills/weekly-review/LICENSE +21 -0
- package/built-in-skills/weekly-review/NOTICE.md +21 -0
- package/built-in-skills/weekly-review/SKILL.md +49 -0
- package/components/eaas-pi-components.manifest.json +37 -0
- package/dist/cli.cjs +75799 -20210
- package/dist/cli.js +75900 -20248
- package/dist/index.cjs +76159 -20082
- package/dist/index.d.cts +4766 -766
- package/dist/index.d.ts +4766 -766
- package/dist/index.js +76040 -19960
- package/package.json +42 -6
- package/plugins/memory/prismer/__init__.py +1215 -0
- package/plugins/memory/prismer/plugin.yaml +8 -0
- package/plugins/memory/prismer/tool-schemas.generated.json +257 -0
- package/plugins/tools/prismer-recall/__init__.py +282 -0
- package/plugins/tools/prismer-recall/plugin.yaml +15 -0
- package/built-in-skills/memory-curation/SKILL.md +0 -135
- package/built-in-skills/skill-authoring/SKILL.md +0 -124
- package/built-in-skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Scene Planning Reference
|
|
2
|
+
|
|
3
|
+
## Narrative Arc Structures
|
|
4
|
+
|
|
5
|
+
### Discovery Arc (most common)
|
|
6
|
+
1. Hook -- pose a question or surprising result
|
|
7
|
+
2. Intuition -- build visual understanding
|
|
8
|
+
3. Formalize -- introduce the equation/algorithm
|
|
9
|
+
4. Reveal -- the "aha moment"
|
|
10
|
+
5. Extend -- implications or generalizations
|
|
11
|
+
|
|
12
|
+
### Problem-Solution Arc
|
|
13
|
+
1. Problem -- what's broken
|
|
14
|
+
2. Failed attempt -- obvious approach fails
|
|
15
|
+
3. Key insight -- the idea that works
|
|
16
|
+
4. Solution -- implement it
|
|
17
|
+
5. Result -- show improvement
|
|
18
|
+
|
|
19
|
+
### Comparison Arc
|
|
20
|
+
1. Setup -- introduce two approaches
|
|
21
|
+
2. Approach A -- how it works
|
|
22
|
+
3. Approach B -- how it works
|
|
23
|
+
4. Contrast -- differences
|
|
24
|
+
5. Verdict -- which is better
|
|
25
|
+
|
|
26
|
+
### Build-Up Arc (architecture/systems)
|
|
27
|
+
1. Component A -- first piece
|
|
28
|
+
2. Component B -- second piece
|
|
29
|
+
3. Connection -- how they interact
|
|
30
|
+
4. Scale -- add more pieces
|
|
31
|
+
5. Full picture -- zoom out
|
|
32
|
+
|
|
33
|
+
## Scene Transitions
|
|
34
|
+
|
|
35
|
+
### Clean Break (default)
|
|
36
|
+
```python
|
|
37
|
+
self.play(FadeOut(Group(*self.mobjects)), run_time=0.5)
|
|
38
|
+
self.wait(0.3)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Carry-Forward
|
|
42
|
+
Keep one element, fade the rest. Next scene starts with it still on screen.
|
|
43
|
+
|
|
44
|
+
### Transform Bridge
|
|
45
|
+
End scene with a shape, start next scene by transforming it.
|
|
46
|
+
|
|
47
|
+
## Cross-Scene Consistency
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
# Shared constants at file top
|
|
51
|
+
BG = "#1C1C1C"
|
|
52
|
+
PRIMARY = "#58C4DD"
|
|
53
|
+
SECONDARY = "#83C167"
|
|
54
|
+
ACCENT = "#FFFF00"
|
|
55
|
+
TITLE_SIZE = 48
|
|
56
|
+
BODY_SIZE = 30
|
|
57
|
+
LABEL_SIZE = 24
|
|
58
|
+
FAST = 0.8; NORMAL = 1.5; SLOW = 2.5
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Scene Checklist
|
|
62
|
+
|
|
63
|
+
- [ ] Background color set
|
|
64
|
+
- [ ] Subcaptions on every animation
|
|
65
|
+
- [ ] `self.wait()` after every reveal
|
|
66
|
+
- [ ] Text buff >= 0.5 for edge positioning
|
|
67
|
+
- [ ] No text overlap
|
|
68
|
+
- [ ] Color constants used (not hardcoded)
|
|
69
|
+
- [ ] Opacity layering applied
|
|
70
|
+
- [ ] Clean exit at scene end
|
|
71
|
+
- [ ] No more than 5-6 elements visible at once
|
|
72
|
+
|
|
73
|
+
## Duration Estimation
|
|
74
|
+
|
|
75
|
+
| Content | Duration |
|
|
76
|
+
|---------|----------|
|
|
77
|
+
| Title card | 3-5s |
|
|
78
|
+
| Concept introduction | 10-20s |
|
|
79
|
+
| Equation reveal | 15-25s |
|
|
80
|
+
| Algorithm step | 5-10s |
|
|
81
|
+
| Data comparison | 10-15s |
|
|
82
|
+
| "Aha moment" | 15-30s |
|
|
83
|
+
| Conclusion | 5-10s |
|
|
84
|
+
|
|
85
|
+
## Planning Template
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
# [Video Title]
|
|
89
|
+
|
|
90
|
+
## Overview
|
|
91
|
+
- **Topic**: [Core concept]
|
|
92
|
+
- **Hook**: [Opening question]
|
|
93
|
+
- **Aha moment**: [Key insight]
|
|
94
|
+
- **Target audience**: [Prerequisites]
|
|
95
|
+
- **Length**: [seconds/minutes]
|
|
96
|
+
- **Resolution**: 480p (draft) / 1080p (final)
|
|
97
|
+
|
|
98
|
+
## Color Palette
|
|
99
|
+
- Background: #1C1C1C
|
|
100
|
+
- Primary: #58C4DD -- [purpose]
|
|
101
|
+
- Secondary: #83C167 -- [purpose]
|
|
102
|
+
- Accent: #FFFF00 -- [purpose]
|
|
103
|
+
|
|
104
|
+
## Arc: [Discovery / Problem-Solution / Comparison / Build-Up]
|
|
105
|
+
|
|
106
|
+
## Scene 1: [Name] (~Ns)
|
|
107
|
+
**Purpose**: [one sentence]
|
|
108
|
+
**Layout**: [FULL_CENTER / LEFT_RIGHT / GRID / PROGRESSIVE]
|
|
109
|
+
|
|
110
|
+
### Visual elements
|
|
111
|
+
- [Mobject: type, position, color]
|
|
112
|
+
|
|
113
|
+
### Animation sequence
|
|
114
|
+
1. [Animation] -- [what it reveals] (~Ns)
|
|
115
|
+
|
|
116
|
+
### Subtitle
|
|
117
|
+
"[text]"
|
|
118
|
+
```
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
## LaTeX Errors
|
|
4
|
+
|
|
5
|
+
**Missing raw string** (the #1 error):
|
|
6
|
+
```python
|
|
7
|
+
# WRONG: MathTex("\\frac{1}{2}") -- \\f is form-feed
|
|
8
|
+
# RIGHT: MathTex(r"\frac{1}{2}")
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Unbalanced braces**: `MathTex(r"\frac{1}{2")` -- missing closing brace.
|
|
12
|
+
|
|
13
|
+
**LaTeX not installed**: `which pdflatex` -- install texlive-full or mactex.
|
|
14
|
+
|
|
15
|
+
**Missing package**: Add to preamble:
|
|
16
|
+
```python
|
|
17
|
+
tex_template = TexTemplate()
|
|
18
|
+
tex_template.add_to_preamble(r"\usepackage{mathrsfs}")
|
|
19
|
+
MathTex(r"\mathscr{L}", tex_template=tex_template)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## VGroup TypeError
|
|
23
|
+
|
|
24
|
+
**Error:** `TypeError: Only values of type VMobject can be added as submobjects of VGroup`
|
|
25
|
+
|
|
26
|
+
**Cause:** `Text()` objects are `Mobject`, not `VMobject`. Mixing `Text` with shapes in a `VGroup` fails on Manim CE v0.20+.
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
# WRONG: Text is not a VMobject
|
|
30
|
+
group = VGroup(circle, Text("Label"))
|
|
31
|
+
|
|
32
|
+
# RIGHT: use Group for mixed types
|
|
33
|
+
group = Group(circle, Text("Label"))
|
|
34
|
+
|
|
35
|
+
# RIGHT: VGroup is fine for shapes-only
|
|
36
|
+
shapes = VGroup(circle, square, arrow)
|
|
37
|
+
|
|
38
|
+
# RIGHT: MathTex IS a VMobject — VGroup works
|
|
39
|
+
equations = VGroup(MathTex(r"a"), MathTex(r"b"))
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Rule:** If the group contains any `Text()`, use `Group`. If it's all shapes or all `MathTex`, `VGroup` is fine.
|
|
43
|
+
|
|
44
|
+
**FadeOut everything:** Always use `Group(*self.mobjects)`, not `VGroup(*self.mobjects)`:
|
|
45
|
+
```python
|
|
46
|
+
self.play(FadeOut(Group(*self.mobjects))) # safe for mixed types
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Group save_state() / restore() Not Supported
|
|
50
|
+
|
|
51
|
+
**Error:** `NotImplementedError: Please override in a child class.`
|
|
52
|
+
|
|
53
|
+
**Cause:** `Group.save_state()` and `Group.restore()` are not implemented in Manim CE v0.20+. Only `VGroup` and individual `Mobject` subclasses support save/restore.
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
# WRONG: Group doesn't support save_state
|
|
57
|
+
group = Group(circle, Text("label"))
|
|
58
|
+
group.save_state() # NotImplementedError!
|
|
59
|
+
|
|
60
|
+
# RIGHT: use FadeIn with shift/scale instead of save_state/restore
|
|
61
|
+
self.play(FadeIn(group, shift=UP * 0.3, scale=0.8))
|
|
62
|
+
|
|
63
|
+
# RIGHT: or save/restore on individual VMobjects
|
|
64
|
+
circle.save_state()
|
|
65
|
+
self.play(circle.animate.shift(RIGHT))
|
|
66
|
+
self.play(Restore(circle))
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## letter_spacing Is Not a Valid Parameter
|
|
70
|
+
|
|
71
|
+
**Error:** `TypeError: Mobject.__init__() got an unexpected keyword argument 'letter_spacing'`
|
|
72
|
+
|
|
73
|
+
**Cause:** `Text()` does not accept `letter_spacing`. Manim uses Pango for text rendering and does not expose kerning controls on `Text()`.
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
# WRONG
|
|
77
|
+
Text("HERMES", letter_spacing=6)
|
|
78
|
+
|
|
79
|
+
# RIGHT: use MarkupText with Pango attributes for spacing control
|
|
80
|
+
MarkupText('<span letter_spacing="6000">HERMES</span>', font_size=18)
|
|
81
|
+
# Note: Pango letter_spacing is in 1/1024 of a point
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Animation Errors
|
|
85
|
+
|
|
86
|
+
**Invisible animation** -- mobject never added:
|
|
87
|
+
```python
|
|
88
|
+
# WRONG: circle = Circle(); self.play(circle.animate.set_color(RED))
|
|
89
|
+
# RIGHT: self.play(Create(circle)); self.play(circle.animate.set_color(RED))
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Transform confusion** -- after Transform(A, B), A is on screen, B is not. Use ReplacementTransform if you want B.
|
|
93
|
+
|
|
94
|
+
**Duplicate animation** -- same mobject twice in one play():
|
|
95
|
+
```python
|
|
96
|
+
# WRONG: self.play(c.animate.shift(RIGHT), c.animate.set_color(RED))
|
|
97
|
+
# RIGHT: self.play(c.animate.shift(RIGHT).set_color(RED))
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Updater fights animation**:
|
|
101
|
+
```python
|
|
102
|
+
mob.suspend_updating()
|
|
103
|
+
self.play(mob.animate.shift(RIGHT))
|
|
104
|
+
mob.resume_updating()
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Rendering Issues
|
|
108
|
+
|
|
109
|
+
**Blurry output**: Using -ql (480p). Switch to -qm/-qh for final.
|
|
110
|
+
|
|
111
|
+
**Slow render**: Use -ql during development. Reduce Surface resolution. Shorter self.wait().
|
|
112
|
+
|
|
113
|
+
**Stale output**: `manim -ql --disable_caching script.py Scene`
|
|
114
|
+
|
|
115
|
+
**ffmpeg concat fails**: All clips must match resolution/FPS/codec.
|
|
116
|
+
|
|
117
|
+
## Common Mistakes
|
|
118
|
+
|
|
119
|
+
**Text clips at edge**: `buff >= 0.5` for `.to_edge()`
|
|
120
|
+
|
|
121
|
+
**Overlapping text**: Use `ReplacementTransform(old, new)`, not `Write(new)` on top.
|
|
122
|
+
|
|
123
|
+
**Too crowded**: Max 5-6 elements visible. Split into scenes or use opacity layering.
|
|
124
|
+
|
|
125
|
+
**No breathing room**: `self.wait(1.5)` minimum after reveals, `self.wait(2.0)` for key moments.
|
|
126
|
+
|
|
127
|
+
**Missing background color**: Set `self.camera.background_color = BG` in every scene.
|
|
128
|
+
|
|
129
|
+
## Debugging Strategy
|
|
130
|
+
|
|
131
|
+
1. Render a still: `manim -ql -s script.py Scene` -- instant layout check
|
|
132
|
+
2. Isolate the broken scene -- render only that one
|
|
133
|
+
3. Replace `self.play()` with `self.add()` to see final state instantly
|
|
134
|
+
4. Print positions: `print(mob.get_center())`
|
|
135
|
+
5. Clear cache: delete `media/` directory
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# Updaters and Value Trackers
|
|
2
|
+
|
|
3
|
+
## The problem updaters solve
|
|
4
|
+
|
|
5
|
+
Normal animations are discrete: `self.play()` goes from state A to state B. But what if you need continuous relationships — a label that always hovers above a moving dot, or a line that always connects two points?
|
|
6
|
+
|
|
7
|
+
Without updaters, you'd manually reposition every dependent object before every `self.play()`. Five animations that move a dot means five manual repositioning calls for the label. Miss one and it freezes in the wrong spot.
|
|
8
|
+
|
|
9
|
+
Updaters let you declare a relationship ONCE. Manim calls the updater function EVERY FRAME (15-60 fps depending on quality) to enforce that relationship, no matter what else is happening.
|
|
10
|
+
|
|
11
|
+
## ValueTracker: an invisible steering wheel
|
|
12
|
+
|
|
13
|
+
A ValueTracker is an invisible Mobject that holds a single float. It never appears on screen. It exists so you can ANIMATE it while other objects REACT to its value.
|
|
14
|
+
|
|
15
|
+
Think of it as a slider: drag the slider from 0 to 5, and every object wired to it responds in real time.
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
tracker = ValueTracker(0) # invisible, stores 0.0
|
|
19
|
+
tracker.get_value() # read: 0.0
|
|
20
|
+
tracker.set_value(5) # write: jump to 5.0 instantly
|
|
21
|
+
tracker.animate.set_value(5) # animate: smoothly interpolate to 5.0
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### The three-step pattern
|
|
25
|
+
|
|
26
|
+
Every ValueTracker usage follows this:
|
|
27
|
+
|
|
28
|
+
1. **Create the tracker** (the invisible slider)
|
|
29
|
+
2. **Create visible objects that READ the tracker** via updaters
|
|
30
|
+
3. **Animate the tracker** — all dependents update automatically
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
# Step 1: Create tracker
|
|
34
|
+
x_tracker = ValueTracker(1)
|
|
35
|
+
|
|
36
|
+
# Step 2: Create dependent objects
|
|
37
|
+
dot = always_redraw(lambda: Dot(axes.c2p(x_tracker.get_value(), 0), color=YELLOW))
|
|
38
|
+
v_line = always_redraw(lambda: axes.get_vertical_line(
|
|
39
|
+
axes.c2p(x_tracker.get_value(), func(x_tracker.get_value())), color=BLUE
|
|
40
|
+
))
|
|
41
|
+
label = always_redraw(lambda: DecimalNumber(x_tracker.get_value(), font_size=24)
|
|
42
|
+
.next_to(dot, UP))
|
|
43
|
+
|
|
44
|
+
self.add(dot, v_line, label)
|
|
45
|
+
|
|
46
|
+
# Step 3: Animate the tracker — everything follows
|
|
47
|
+
self.play(x_tracker.animate.set_value(5), run_time=3)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Types of updaters
|
|
51
|
+
|
|
52
|
+
### Lambda updater (most common)
|
|
53
|
+
|
|
54
|
+
Runs a function every frame, passing the mobject itself:
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
# Label always stays above the dot
|
|
58
|
+
label.add_updater(lambda m: m.next_to(dot, UP, buff=0.2))
|
|
59
|
+
|
|
60
|
+
# Line always connects two points
|
|
61
|
+
line.add_updater(lambda m: m.put_start_and_end_on(
|
|
62
|
+
point_a.get_center(), point_b.get_center()
|
|
63
|
+
))
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Time-based updater (with dt)
|
|
67
|
+
|
|
68
|
+
The second argument `dt` is the time since the last frame (~0.017s at 60fps):
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
# Continuous rotation
|
|
72
|
+
square.add_updater(lambda m, dt: m.rotate(0.5 * dt))
|
|
73
|
+
|
|
74
|
+
# Continuous rightward drift
|
|
75
|
+
dot.add_updater(lambda m, dt: m.shift(RIGHT * 0.3 * dt))
|
|
76
|
+
|
|
77
|
+
# Oscillation
|
|
78
|
+
dot.add_updater(lambda m, dt: m.move_to(
|
|
79
|
+
axes.c2p(m.get_center()[0], np.sin(self.time))
|
|
80
|
+
))
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Use `dt` updaters for physics simulations, continuous motion, and time-dependent effects.
|
|
84
|
+
|
|
85
|
+
### always_redraw: full rebuild every frame
|
|
86
|
+
|
|
87
|
+
Creates a new mobject from scratch each frame. More expensive than `add_updater` but handles cases where the mobject's structure changes (not just position/color):
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
# Brace that follows a resizing square
|
|
91
|
+
brace = always_redraw(lambda: Brace(square, UP))
|
|
92
|
+
|
|
93
|
+
# Area under curve that updates as function changes
|
|
94
|
+
area = always_redraw(lambda: axes.get_area(
|
|
95
|
+
graph, x_range=[0, x_tracker.get_value()], color=BLUE, opacity=0.3
|
|
96
|
+
))
|
|
97
|
+
|
|
98
|
+
# Label that reconstructs its text
|
|
99
|
+
counter = always_redraw(lambda: Text(
|
|
100
|
+
f"n = {int(x_tracker.get_value())}", font_size=24, font="Menlo"
|
|
101
|
+
).to_corner(UR))
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**When to use which:**
|
|
105
|
+
- `add_updater` — position, color, opacity changes (cheap, preferred)
|
|
106
|
+
- `always_redraw` — when the shape/structure itself changes (expensive, use sparingly)
|
|
107
|
+
|
|
108
|
+
## DecimalNumber: showing live values
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
# Counter that tracks a ValueTracker
|
|
112
|
+
tracker = ValueTracker(0)
|
|
113
|
+
number = DecimalNumber(0, font_size=48, num_decimal_places=1, color=PRIMARY)
|
|
114
|
+
number.add_updater(lambda m: m.set_value(tracker.get_value()))
|
|
115
|
+
number.add_updater(lambda m: m.next_to(dot, RIGHT, buff=0.3))
|
|
116
|
+
|
|
117
|
+
self.add(number)
|
|
118
|
+
self.play(tracker.animate.set_value(100), run_time=3)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Variable: the labeled version
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
var = Variable(0, Text("x", font_size=24, font="Menlo"), num_decimal_places=2)
|
|
125
|
+
self.add(var)
|
|
126
|
+
self.play(var.tracker.animate.set_value(PI), run_time=2)
|
|
127
|
+
# Displays: x = 3.14
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Removing updaters
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
# Remove all updaters
|
|
134
|
+
mobject.clear_updaters()
|
|
135
|
+
|
|
136
|
+
# Suspend temporarily (during an animation that would fight the updater)
|
|
137
|
+
mobject.suspend_updating()
|
|
138
|
+
self.play(mobject.animate.shift(RIGHT))
|
|
139
|
+
mobject.resume_updating()
|
|
140
|
+
|
|
141
|
+
# Remove specific updater (if you stored a reference)
|
|
142
|
+
def my_updater(m):
|
|
143
|
+
m.next_to(dot, UP)
|
|
144
|
+
label.add_updater(my_updater)
|
|
145
|
+
# ... later ...
|
|
146
|
+
label.remove_updater(my_updater)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Animation-based updaters
|
|
150
|
+
|
|
151
|
+
### UpdateFromFunc / UpdateFromAlphaFunc
|
|
152
|
+
|
|
153
|
+
These are ANIMATIONS (passed to `self.play`), not persistent updaters:
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
# Call a function on each frame of the animation
|
|
157
|
+
self.play(UpdateFromFunc(mobject, lambda m: m.next_to(moving_target, UP)), run_time=3)
|
|
158
|
+
|
|
159
|
+
# With alpha (0 to 1) — useful for custom interpolation
|
|
160
|
+
self.play(UpdateFromAlphaFunc(circle, lambda m, a: m.set_fill(opacity=a)), run_time=2)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### turn_animation_into_updater
|
|
164
|
+
|
|
165
|
+
Convert a one-shot animation into a continuous updater:
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
from manim import turn_animation_into_updater
|
|
169
|
+
|
|
170
|
+
# This would normally play once — now it loops forever
|
|
171
|
+
turn_animation_into_updater(Rotating(gear, rate=PI/4))
|
|
172
|
+
self.add(gear)
|
|
173
|
+
self.wait(5) # gear rotates for 5 seconds
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Practical patterns
|
|
177
|
+
|
|
178
|
+
### Pattern 1: Dot tracing a function
|
|
179
|
+
|
|
180
|
+
```python
|
|
181
|
+
tracker = ValueTracker(0)
|
|
182
|
+
graph = axes.plot(np.sin, x_range=[0, 2*PI], color=PRIMARY)
|
|
183
|
+
dot = always_redraw(lambda: Dot(
|
|
184
|
+
axes.c2p(tracker.get_value(), np.sin(tracker.get_value())),
|
|
185
|
+
color=YELLOW
|
|
186
|
+
))
|
|
187
|
+
tangent = always_redraw(lambda: axes.get_secant_slope_group(
|
|
188
|
+
x=tracker.get_value(), graph=graph, dx=0.01,
|
|
189
|
+
secant_line_color=HIGHLIGHT, secant_line_length=3
|
|
190
|
+
))
|
|
191
|
+
|
|
192
|
+
self.add(graph, dot, tangent)
|
|
193
|
+
self.play(tracker.animate.set_value(2*PI), run_time=6, rate_func=linear)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Pattern 2: Live area under curve
|
|
197
|
+
|
|
198
|
+
```python
|
|
199
|
+
tracker = ValueTracker(0.5)
|
|
200
|
+
area = always_redraw(lambda: axes.get_area(
|
|
201
|
+
graph, x_range=[0, tracker.get_value()],
|
|
202
|
+
color=PRIMARY, opacity=0.3
|
|
203
|
+
))
|
|
204
|
+
area_label = always_redraw(lambda: DecimalNumber(
|
|
205
|
+
# Numerical integration
|
|
206
|
+
sum(func(x) * 0.01 for x in np.arange(0, tracker.get_value(), 0.01)),
|
|
207
|
+
font_size=24
|
|
208
|
+
).next_to(axes, RIGHT))
|
|
209
|
+
|
|
210
|
+
self.add(area, area_label)
|
|
211
|
+
self.play(tracker.animate.set_value(4), run_time=5)
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Pattern 3: Connected diagram
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
# Nodes that can be moved, with edges that auto-follow
|
|
218
|
+
node_a = Dot(LEFT * 2, color=PRIMARY)
|
|
219
|
+
node_b = Dot(RIGHT * 2, color=SECONDARY)
|
|
220
|
+
edge = Line().add_updater(lambda m: m.put_start_and_end_on(
|
|
221
|
+
node_a.get_center(), node_b.get_center()
|
|
222
|
+
))
|
|
223
|
+
label = Text("edge", font_size=18, font="Menlo").add_updater(
|
|
224
|
+
lambda m: m.move_to(edge.get_center() + UP * 0.3)
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
self.add(node_a, node_b, edge, label)
|
|
228
|
+
self.play(node_a.animate.shift(UP * 2), run_time=2)
|
|
229
|
+
self.play(node_b.animate.shift(DOWN + RIGHT), run_time=2)
|
|
230
|
+
# Edge and label follow automatically
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Pattern 4: Parameter exploration
|
|
234
|
+
|
|
235
|
+
```python
|
|
236
|
+
# Explore how a parameter changes a curve
|
|
237
|
+
a_tracker = ValueTracker(1)
|
|
238
|
+
curve = always_redraw(lambda: axes.plot(
|
|
239
|
+
lambda x: a_tracker.get_value() * np.sin(x),
|
|
240
|
+
x_range=[0, 2*PI], color=PRIMARY
|
|
241
|
+
))
|
|
242
|
+
param_label = always_redraw(lambda: Text(
|
|
243
|
+
f"a = {a_tracker.get_value():.1f}", font_size=24, font="Menlo"
|
|
244
|
+
).to_corner(UR))
|
|
245
|
+
|
|
246
|
+
self.add(curve, param_label)
|
|
247
|
+
self.play(a_tracker.animate.set_value(3), run_time=3)
|
|
248
|
+
self.play(a_tracker.animate.set_value(0.5), run_time=2)
|
|
249
|
+
self.play(a_tracker.animate.set_value(1), run_time=1)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Common mistakes
|
|
253
|
+
|
|
254
|
+
1. **Updater fights animation:** If a mobject has an updater that sets its position, and you try to animate it elsewhere, the updater wins every frame. Suspend updating first.
|
|
255
|
+
|
|
256
|
+
2. **always_redraw for simple moves:** If you only need to reposition, use `add_updater`. `always_redraw` reconstructs the entire mobject every frame — expensive and unnecessary for position tracking.
|
|
257
|
+
|
|
258
|
+
3. **Forgetting to add to scene:** Updaters only run on mobjects that are in the scene. `always_redraw` creates the mobject but you still need `self.add()`.
|
|
259
|
+
|
|
260
|
+
4. **Updater creates new mobjects without cleanup:** If your updater creates Text objects every frame, they accumulate. Use `always_redraw` (which handles cleanup) or update properties in-place.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Visual Design Principles
|
|
2
|
+
|
|
3
|
+
## 12 Core Principles
|
|
4
|
+
|
|
5
|
+
1. **Geometry Before Algebra** — Show the shape first, the equation second.
|
|
6
|
+
2. **Opacity Layering** — PRIMARY=1.0, CONTEXT=0.4, GRID=0.15. Direct attention through brightness.
|
|
7
|
+
3. **One New Idea Per Scene** — Each scene introduces exactly one concept.
|
|
8
|
+
4. **Spatial Consistency** — Same concept occupies the same screen region throughout.
|
|
9
|
+
5. **Color = Meaning** — Assign colors to concepts, not mobjects. If velocity is blue, it stays blue.
|
|
10
|
+
6. **Progressive Disclosure** — Show simplest version first, add complexity incrementally.
|
|
11
|
+
7. **Transform, Don't Replace** — Use Transform/ReplacementTransform to show connections.
|
|
12
|
+
8. **Breathing Room** — `self.wait(1.5)` minimum after showing something new.
|
|
13
|
+
9. **Visual Weight Balance** — Don't cluster everything on one side.
|
|
14
|
+
10. **Consistent Motion Vocabulary** — Pick a small set of animation types and reuse them.
|
|
15
|
+
11. **Dark Background, Light Content** — #1C1C1C to #2D2B55 backgrounds maximize contrast.
|
|
16
|
+
12. **Intentional Empty Space** — Leave at least 15% of the frame empty.
|
|
17
|
+
|
|
18
|
+
## Layout Templates
|
|
19
|
+
|
|
20
|
+
### FULL_CENTER
|
|
21
|
+
One main element centered, title above, note below.
|
|
22
|
+
Best for: single equations, single diagrams, title cards.
|
|
23
|
+
|
|
24
|
+
### LEFT_RIGHT
|
|
25
|
+
Two elements side by side at x=-3.5 and x=3.5.
|
|
26
|
+
Best for: equation + visual, before/after, comparison.
|
|
27
|
+
|
|
28
|
+
### TOP_BOTTOM
|
|
29
|
+
Main element at y=1.5, supporting content at y=-1.5.
|
|
30
|
+
Best for: concept + examples, theorem + cases.
|
|
31
|
+
|
|
32
|
+
### GRID
|
|
33
|
+
Multiple elements via `arrange_in_grid()`.
|
|
34
|
+
Best for: comparison matrices, multi-step processes.
|
|
35
|
+
|
|
36
|
+
### PROGRESSIVE
|
|
37
|
+
Elements appear one at a time, arranged DOWN with aligned_edge=LEFT.
|
|
38
|
+
Best for: algorithms, proofs, step-by-step processes.
|
|
39
|
+
|
|
40
|
+
### ANNOTATED_DIAGRAM
|
|
41
|
+
Central diagram with floating labels connected by arrows.
|
|
42
|
+
Best for: architecture diagrams, annotated figures.
|
|
43
|
+
|
|
44
|
+
## Color Palettes
|
|
45
|
+
|
|
46
|
+
### Classic 3B1B
|
|
47
|
+
```python
|
|
48
|
+
BG="#1C1C1C"; PRIMARY=BLUE; SECONDARY=GREEN; ACCENT=YELLOW; HIGHLIGHT=RED
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Warm Academic
|
|
52
|
+
```python
|
|
53
|
+
BG="#2D2B55"; PRIMARY="#FF6B6B"; SECONDARY="#FFD93D"; ACCENT="#6BCB77"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Neon Tech
|
|
57
|
+
```python
|
|
58
|
+
BG="#0A0A0A"; PRIMARY="#00F5FF"; SECONDARY="#FF00FF"; ACCENT="#39FF14"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Font Selection
|
|
62
|
+
|
|
63
|
+
**Use monospace fonts for all text.** Manim's Pango text renderer produces broken kerning with proportional fonts (Helvetica, Inter, SF Pro, Arial) at all sizes and resolutions. Characters overlap and spacing is inconsistent. This is a fundamental Pango limitation, not a Manim bug.
|
|
64
|
+
|
|
65
|
+
Monospace fonts have fixed character widths — zero kerning issues by design.
|
|
66
|
+
|
|
67
|
+
### Recommended Fonts
|
|
68
|
+
|
|
69
|
+
| Use case | Font | Fallback |
|
|
70
|
+
|----------|------|----------|
|
|
71
|
+
| **All text (default)** | `"Menlo"` | `"Courier New"`, `"DejaVu Sans Mono"` |
|
|
72
|
+
| Code, labels | `"JetBrains Mono"`, `"SF Mono"` | `"Menlo"` |
|
|
73
|
+
| Math | Use `MathTex` (renders via LaTeX, not Pango) | — |
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
MONO = "Menlo" # define once at top of file
|
|
77
|
+
|
|
78
|
+
title = Text("Fourier Series", font_size=48, color=PRIMARY, weight=BOLD, font=MONO)
|
|
79
|
+
label = Text("n=1: (4/pi) sin(x)", font_size=20, color=BLUE, font=MONO)
|
|
80
|
+
note = Text("Convergence at discontinuities", font_size=18, color=DIM, font=MONO)
|
|
81
|
+
|
|
82
|
+
# Math — always use MathTex, not Text
|
|
83
|
+
equation = MathTex(r"\nabla L = \frac{\partial L}{\partial w}")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### When Proportional Fonts Are Acceptable
|
|
87
|
+
|
|
88
|
+
Large title text (font_size >= 48) with short strings (1-3 words) can use proportional fonts without visible kerning issues. For anything else — labels, descriptions, multi-word text, small sizes — use monospace.
|
|
89
|
+
|
|
90
|
+
### Font Availability
|
|
91
|
+
|
|
92
|
+
- **macOS**: Menlo (pre-installed), SF Mono
|
|
93
|
+
- **Linux**: DejaVu Sans Mono (pre-installed), Liberation Mono
|
|
94
|
+
- **Cross-platform**: JetBrains Mono (install from jetbrains.com)
|
|
95
|
+
|
|
96
|
+
`"Menlo"` is the safest default — pre-installed on macOS, and Linux systems fall back to DejaVu Sans Mono.
|
|
97
|
+
|
|
98
|
+
### Fine-Grained Text Control
|
|
99
|
+
|
|
100
|
+
`Text()` does not support `letter_spacing` or kerning parameters. For fine control, use `MarkupText` with Pango attributes:
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
# Letter spacing (Pango units: 1/1024 of a point)
|
|
104
|
+
MarkupText('<span letter_spacing="6000">HERMES</span>', font_size=18, font="Menlo")
|
|
105
|
+
|
|
106
|
+
# Bold specific words
|
|
107
|
+
MarkupText('This is <b>important</b>', font_size=24, font="Menlo")
|
|
108
|
+
|
|
109
|
+
# Color specific words
|
|
110
|
+
MarkupText('Red <span foreground="#FF6B6B">warning</span>', font_size=24, font="Menlo")
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Minimum Font Size
|
|
114
|
+
|
|
115
|
+
`font_size=18` is the minimum for readable text at any resolution. Below 18, characters become blurry at `-ql` and barely readable even at `-qh`.
|
|
116
|
+
|
|
117
|
+
## Visual Hierarchy Checklist
|
|
118
|
+
|
|
119
|
+
For every frame:
|
|
120
|
+
1. What is the ONE thing to look at? (brightest/largest)
|
|
121
|
+
2. What is context? (dimmed to 0.3-0.4)
|
|
122
|
+
3. What is structural? (dimmed to 0.15)
|
|
123
|
+
4. Enough empty space? (>15%)
|
|
124
|
+
5. All text readable at phone size?
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
G="\033[0;32m"; R="\033[0;31m"; N="\033[0m"
|
|
4
|
+
ok() { echo -e " ${G}+${N} $1"; }
|
|
5
|
+
fail() { echo -e " ${R}x${N} $1"; }
|
|
6
|
+
echo ""; echo "Manim Video Skill — Setup Check"; echo ""
|
|
7
|
+
errors=0
|
|
8
|
+
command -v python3 &>/dev/null && ok "Python $(python3 --version 2>&1 | awk '{print $2}')" || { fail "Python 3 not found"; errors=$((errors+1)); }
|
|
9
|
+
python3 -c "import manim" 2>/dev/null && ok "Manim $(manim --version 2>&1 | head -1)" || { fail "Manim not installed: pip install manim"; errors=$((errors+1)); }
|
|
10
|
+
command -v pdflatex &>/dev/null && ok "LaTeX (pdflatex)" || { fail "LaTeX not found (macOS: brew install --cask mactex-no-gui)"; errors=$((errors+1)); }
|
|
11
|
+
command -v ffmpeg &>/dev/null && ok "ffmpeg" || { fail "ffmpeg not found"; errors=$((errors+1)); }
|
|
12
|
+
echo ""
|
|
13
|
+
[ $errors -eq 0 ] && echo -e "${G}All prerequisites satisfied.${N}" || echo -e "${R}$errors prerequisite(s) missing.${N}"
|
|
14
|
+
echo ""
|
|
15
|
+
if [ "$errors" -ne 0 ]; then exit 1; fi
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Nous Research
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Source and modifications
|
|
2
|
+
|
|
3
|
+
Derived from Hermes Agent skills/productivity/maps, commit
|
|
4
|
+
1a1f4a59e252e1dc0137e7b2e7bcc8b0381d19c4. Upstream authors remain credited
|
|
5
|
+
in SKILL.md. The MIT license is included in LICENSE.
|
|
6
|
+
|
|
7
|
+
Prismer adaptation: unique slug/native replacement, scoped execution and
|
|
8
|
+
authorization, corrected resource/API instructions and local safety helpers.
|
|
9
|
+
See docs/bugfix223/implementation-productivity.md in the source repository
|
|
10
|
+
for offline evidence and untested live integrations. Dependencies and service
|
|
11
|
+
data retain their own licenses; this notice does not relicense them.
|