@prismer/runtime 2.2.55 → 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 +574 -0
- package/apc/skills/releasing-test/SKILL.md +9 -0
- package/built-in-skills/agent-coordination/SKILL.md +21 -4
- package/built-in-skills/agent-meta/SKILL.md +11 -0
- package/built-in-skills/assets/SKILL.md +1 -1
- package/built-in-skills/canvas-design/SKILL.md +3 -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 +7 -3
- package/built-in-skills/claude-api/SKILL.md +1 -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/SKILL.md +15 -1
- 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 +3 -0
- package/built-in-skills/council-creator/SKILL.md +4 -3
- package/built-in-skills/diagnosing-bugs/SKILL.md +12 -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/doc-coauthoring/SKILL.md +6 -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/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 +6 -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/image-generate/SKILL.md +5 -0
- package/built-in-skills/image-generate/scripts/generate-and-deliver.mjs +24 -3
- 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 +27 -3
- 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 +8 -15
- 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 +20 -0
- package/built-in-skills/office-artifacts/references/RESOURCE-LIMITS.md +44 -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/persona-generator/SKILL.md +9 -9
- package/built-in-skills/pkf-svg/SKILL.md +5 -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 +36 -14
- 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 +1 -1
- 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/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 +7 -1
- package/built-in-skills/role-builder/scripts/author-role.mjs +23 -7
- package/built-in-skills/role-builder/scripts/ingest-role.mjs +15 -117
- package/built-in-skills/role-builder/scripts/instantiate-and-run.mjs +15 -1
- package/built-in-skills/role-builder/scripts/operation-harness.mjs +6 -4
- 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 +20 -1
- 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/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-authoring/SKILL.md → skill-creator/references/skill-authoring/GUIDE.md} +1 -1
- package/built-in-skills/{skill-builder/SKILL.md → skill-creator/references/skill-builder/GUIDE.md} +8 -12
- 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 +30 -7
- 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/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 +2 -2
- package/built-in-skills/tdd/SKILL.md +7 -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/team/SKILL.md +1 -1
- package/built-in-skills/web-artifacts-builder/SKILL.md +3 -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 +9 -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/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 +7017 -3340
- package/dist/cli.js +6631 -2936
- package/dist/index.cjs +7863 -3830
- package/dist/index.d.cts +459 -5
- package/dist/index.d.ts +459 -5
- package/dist/index.js +7106 -3064
- package/package.json +7 -2
- package/plugins/memory/prismer/__init__.py +4 -0
- package/plugins/memory/prismer/tool-schemas.generated.json +8 -0
- package/built-in-skills/skill-builder/scripts/ingest.mjs +0 -265
- package/built-in-skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- /package/built-in-skills/{document-generation/SKILL.md → office-artifacts/references/document-generation/GUIDE.md} +0 -0
- /package/built-in-skills/{skill-authoring/skill.json → skill-creator/references/skill-authoring/draft-contract.json} +0 -0
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
3
|
# Exit on error
|
|
4
|
-
set -
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
PROJECT_NAME="${1:-}"
|
|
7
|
+
if [[ ! "$PROJECT_NAME" =~ ^[a-zA-Z0-9][a-zA-Z0-9_-]*$ ]] || [[ -e "$PROJECT_NAME" ]]; then
|
|
8
|
+
echo 'Usage: init-artifact.sh <new-project-name>; target must not exist' >&2
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
5
11
|
|
|
6
12
|
# Detect Node version
|
|
7
13
|
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
|
|
@@ -14,77 +20,39 @@ if [ "$NODE_VERSION" -lt 18 ]; then
|
|
|
14
20
|
exit 1
|
|
15
21
|
fi
|
|
16
22
|
|
|
17
|
-
|
|
18
|
-
if [ "$NODE_VERSION" -ge 20 ]; then
|
|
19
|
-
VITE_VERSION="latest"
|
|
20
|
-
echo "✅ Using Vite latest (Node 20+)"
|
|
21
|
-
else
|
|
22
|
-
VITE_VERSION="5.4.11"
|
|
23
|
-
echo "✅ Using Vite $VITE_VERSION (Node 18 compatible)"
|
|
24
|
-
fi
|
|
23
|
+
VITE_VERSION="5.4.11"
|
|
25
24
|
|
|
26
25
|
# Detect OS and set sed syntax
|
|
27
26
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
28
|
-
SED_INPLACE=
|
|
27
|
+
SED_INPLACE=(sed -i '')
|
|
29
28
|
else
|
|
30
|
-
SED_INPLACE=
|
|
29
|
+
SED_INPLACE=(sed -i)
|
|
31
30
|
fi
|
|
32
31
|
|
|
33
32
|
# Check if pnpm is installed. Release 201 sandbox image bakes pnpm@9.
|
|
34
|
-
#
|
|
35
|
-
# try corepack as a per-user fallback (no sudo), else fail loudly so the
|
|
36
|
-
# agent surfaces the missing-baseline error rather than installing pnpm
|
|
37
|
-
# at task time and contaminating the workdir.
|
|
33
|
+
# Do not change global Corepack/pnpm state from a project scaffold.
|
|
38
34
|
if ! command -v pnpm &> /dev/null; then
|
|
39
|
-
echo "
|
|
40
|
-
if command -v corepack &> /dev/null; then
|
|
41
|
-
corepack enable
|
|
42
|
-
corepack prepare pnpm@9 --activate
|
|
43
|
-
else
|
|
44
|
-
echo "❌ Error: pnpm is required but neither pnpm nor corepack is available."
|
|
45
|
-
echo " Sandbox image is missing pnpm — rebuild the daemon image with the"
|
|
46
|
-
echo " release 201 baseline (infra/sandbox-image/Dockerfile.daemon)."
|
|
47
|
-
exit 1
|
|
48
|
-
fi
|
|
49
|
-
fi
|
|
50
|
-
|
|
51
|
-
# Check if project name is provided
|
|
52
|
-
if [ -z "$1" ]; then
|
|
53
|
-
echo "❌ Usage: ./create-react-shadcn-complete.sh <project-name>"
|
|
35
|
+
echo "pnpm is required; install it explicitly before running this scaffold." >&2
|
|
54
36
|
exit 1
|
|
55
37
|
fi
|
|
56
38
|
|
|
57
|
-
PROJECT_NAME="$1"
|
|
58
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
59
|
-
COMPONENTS_TARBALL="$SCRIPT_DIR/shadcn-components.tar.gz"
|
|
60
|
-
|
|
61
|
-
# Check if components tarball exists
|
|
62
|
-
if [ ! -f "$COMPONENTS_TARBALL" ]; then
|
|
63
|
-
echo "❌ Error: shadcn-components.tar.gz not found in script directory"
|
|
64
|
-
echo " Expected location: $COMPONENTS_TARBALL"
|
|
65
|
-
exit 1
|
|
66
|
-
fi
|
|
67
39
|
|
|
68
40
|
echo "🚀 Creating new React + Vite project: $PROJECT_NAME"
|
|
69
41
|
|
|
70
|
-
#
|
|
71
|
-
pnpm create
|
|
42
|
+
# Use a fixed template compatible with the declared Node baseline.
|
|
43
|
+
pnpm dlx create-vite@5.5.5 "$PROJECT_NAME" --template react-ts
|
|
72
44
|
|
|
73
45
|
# Navigate into project directory
|
|
74
46
|
cd "$PROJECT_NAME"
|
|
75
47
|
|
|
76
48
|
echo "🧹 Cleaning up Vite template..."
|
|
77
|
-
$SED_INPLACE '/<link rel="icon".*vite\.svg/d' index.html
|
|
78
|
-
$SED_INPLACE 's/<title>.*<\/title>/<title>'"$PROJECT_NAME"'<\/title>/' index.html
|
|
49
|
+
"${SED_INPLACE[@]}" '/<link rel="icon".*vite\.svg/d' index.html
|
|
50
|
+
"${SED_INPLACE[@]}" 's/<title>.*<\/title>/<title>'"$PROJECT_NAME"'<\/title>/' index.html
|
|
79
51
|
|
|
80
52
|
echo "📦 Installing base dependencies..."
|
|
81
53
|
pnpm install
|
|
82
54
|
|
|
83
|
-
|
|
84
|
-
if [ "$NODE_VERSION" -lt 20 ]; then
|
|
85
|
-
echo "📌 Pinning Vite to $VITE_VERSION for Node 18 compatibility..."
|
|
86
|
-
pnpm add -D vite@$VITE_VERSION
|
|
87
|
-
fi
|
|
55
|
+
pnpm add -D "vite@$VITE_VERSION"
|
|
88
56
|
|
|
89
57
|
echo "📦 Installing Tailwind CSS and dependencies..."
|
|
90
58
|
pnpm install -D tailwindcss@3.4.1 postcss autoprefixer @types/node tailwindcss-animate
|
|
@@ -101,7 +69,7 @@ export default {
|
|
|
101
69
|
EOF
|
|
102
70
|
|
|
103
71
|
echo "📝 Configuring Tailwind with shadcn theme..."
|
|
104
|
-
cat > tailwind.config.
|
|
72
|
+
cat > tailwind.config.cjs << 'EOF'
|
|
105
73
|
/** @type {import('tailwindcss').Config} */
|
|
106
74
|
module.exports = {
|
|
107
75
|
darkMode: ["class"],
|
|
@@ -284,10 +252,6 @@ echo "📦 Installing shadcn/ui dependencies..."
|
|
|
284
252
|
pnpm install @radix-ui/react-accordion @radix-ui/react-aspect-ratio @radix-ui/react-avatar @radix-ui/react-checkbox @radix-ui/react-collapsible @radix-ui/react-context-menu @radix-ui/react-dialog @radix-ui/react-dropdown-menu @radix-ui/react-hover-card @radix-ui/react-label @radix-ui/react-menubar @radix-ui/react-navigation-menu @radix-ui/react-popover @radix-ui/react-progress @radix-ui/react-radio-group @radix-ui/react-scroll-area @radix-ui/react-select @radix-ui/react-separator @radix-ui/react-slider @radix-ui/react-slot @radix-ui/react-switch @radix-ui/react-tabs @radix-ui/react-toast @radix-ui/react-toggle @radix-ui/react-toggle-group @radix-ui/react-tooltip
|
|
285
253
|
pnpm install sonner cmdk vaul embla-carousel-react react-day-picker react-resizable-panels date-fns react-hook-form @hookform/resolvers zod
|
|
286
254
|
|
|
287
|
-
# Extract shadcn components from tarball
|
|
288
|
-
echo "📦 Extracting shadcn/ui components..."
|
|
289
|
-
tar -xzf "$COMPONENTS_TARBALL" -C src/
|
|
290
|
-
|
|
291
255
|
# Create components.json for reference
|
|
292
256
|
echo "📝 Creating components.json config..."
|
|
293
257
|
cat > components.json << 'EOF'
|
|
@@ -297,7 +261,7 @@ cat > components.json << 'EOF'
|
|
|
297
261
|
"rsc": false,
|
|
298
262
|
"tsx": true,
|
|
299
263
|
"tailwind": {
|
|
300
|
-
"config": "tailwind.config.
|
|
264
|
+
"config": "tailwind.config.cjs",
|
|
301
265
|
"css": "src/index.css",
|
|
302
266
|
"baseColor": "slate",
|
|
303
267
|
"cssVariables": true,
|
|
@@ -313,6 +277,15 @@ cat > components.json << 'EOF'
|
|
|
313
277
|
}
|
|
314
278
|
EOF
|
|
315
279
|
|
|
280
|
+
mkdir -p src/lib
|
|
281
|
+
cat > src/lib/utils.ts << 'EOF'
|
|
282
|
+
import { clsx, type ClassValue } from "clsx";
|
|
283
|
+
import { twMerge } from "tailwind-merge";
|
|
284
|
+
export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); }
|
|
285
|
+
EOF
|
|
286
|
+
# Fetch the published component registry instead of a nonexistent local archive.
|
|
287
|
+
pnpm dlx shadcn@2.3.0 add --all --yes
|
|
288
|
+
|
|
316
289
|
echo "✅ Setup complete! You can now use Tailwind CSS and shadcn/ui in your project."
|
|
317
290
|
echo ""
|
|
318
291
|
echo "📦 Included components (40+ total):"
|
|
@@ -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,37 @@
|
|
|
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.
|
|
22
|
+
|
|
23
|
+
## Engineering adaptation (2026-09-23)
|
|
24
|
+
|
|
25
|
+
Source: https://github.com/NousResearch/hermes-agent/tree/1a1f4a59e252e1dc0137e7b2e7bcc8b0381d19c4/skills/software-development/dogfood
|
|
26
|
+
|
|
27
|
+
Upstream authors: Teknium (teknium1), Hermes Agent.
|
|
28
|
+
Hermes MIT copyright (c) 2025 Nous Research is preserved in LICENSE.
|
|
29
|
+
All bundled references/templates/scripts remain covered by that notice unless
|
|
30
|
+
an additional license is explicitly supplied. External CLI binaries, services,
|
|
31
|
+
accounts and downloaded assets are not redistributed by this skill and retain
|
|
32
|
+
their own terms. No API keys or third-party runtime packages are bundled.
|
|
33
|
+
|
|
34
|
+
Prismer modifications: unique discovery/ownership mapping where applicable,
|
|
35
|
+
resource-path and authorization corrections, bounded helpers, honest readiness
|
|
36
|
+
and verification states. See docs/bugfix223/implementation-engineering.md in the
|
|
37
|
+
source repository for resource mapping, tests and remaining live acceptance.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: webapp-qa
|
|
3
|
+
scope: common
|
|
4
|
+
description: Perform scoped exploratory QA of a web application, reproduce defects, collect screenshots and console evidence, and deliver a prioritized report.
|
|
5
|
+
license: MIT
|
|
6
|
+
metadata:
|
|
7
|
+
nativeReplaces: [dogfood]
|
|
8
|
+
upstream: Hermes Agent skills/software-development/dogfood at 1a1f4a59e2
|
|
9
|
+
---
|
|
10
|
+
# Web Application QA
|
|
11
|
+
|
|
12
|
+
For the full five-phase exploratory method, read references/dogfood/GUIDE.md;
|
|
13
|
+
its taxonomy and report-template links resolve within this bundle.
|
|
14
|
+
|
|
15
|
+
Use the user-supplied target URL, scope and existing test accounts. Inspect the
|
|
16
|
+
available browser tools or Playwright setup first; never invent browser tool
|
|
17
|
+
names. Without a working browser, report the blocker and limit claims to checks
|
|
18
|
+
actually performed.
|
|
19
|
+
|
|
20
|
+
1. Map the main user journeys, navigation, forms and error/empty states.
|
|
21
|
+
2. Exercise each journey with positive and negative inputs. Inspect console and
|
|
22
|
+
network failures after navigation and significant interactions.
|
|
23
|
+
3. Inspect screenshots at desktop and mobile sizes for clipping, overlap,
|
|
24
|
+
loading failures and keyboard accessibility.
|
|
25
|
+
4. Reproduce each suspected defect. Record URL, exact steps, expected/actual
|
|
26
|
+
behavior, console evidence and screenshot file. Separate application bugs
|
|
27
|
+
from unavailable dependencies or test-environment failures.
|
|
28
|
+
5. Deduplicate, prioritize by user impact, and use references/issue-taxonomy.md
|
|
29
|
+
plus templates/dogfood-report-template.md as report structure.
|
|
30
|
+
6. State tested, untested and blocked areas. Passing HTTP status alone is not a
|
|
31
|
+
passing user journey. Never fill missing evidence with plausible descriptions.
|
|
32
|
+
7. Attach the report and requested evidence as task-bound assets using the
|
|
33
|
+
actual platform delivery contract. Do not invent flags or use MEDIA markers.
|
|
34
|
+
|
|
35
|
+
Use a task-owned local fixture for browser-tool smoke tests before touching a
|
|
36
|
+
live account. Record desktop/mobile viewport, keyboard, console, clipping and
|
|
37
|
+
positive/negative form results independently; a fixture does not certify the
|
|
38
|
+
user's real application.
|
|
39
|
+
|
|
40
|
+
Keep test mutations within the user's authorized scope. Do not submit real
|
|
41
|
+
payments or send external messages as incidental QA actions.
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
|
|
2
|
+
# Dogfood: Systematic Web Application QA Testing
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
This skill guides you through systematic exploratory QA testing of web applications using the browser toolset. You will navigate the application, interact with elements, capture evidence of issues, and produce a structured bug report.
|
|
7
|
+
|
|
8
|
+
## Tool mapping and authorization
|
|
9
|
+
|
|
10
|
+
Resolve actual browser tools from the native browser-use entry or an installed
|
|
11
|
+
Playwright harness. The browser_* calls below are historical pseudocode, not
|
|
12
|
+
registered tool names. Map operations to the exposed schema before executing;
|
|
13
|
+
never invent @eN handles. Preserve the user's live session. Use only authorized
|
|
14
|
+
test mutations; payments, external messages and destructive writes need their
|
|
15
|
+
own explicit scope. Use a unique task-owned output directory.
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- Browser toolset must be available (`browser_navigate`, `browser_snapshot`, `browser_click`, `browser_type`, `browser_vision`, `browser_console`, `browser_scroll`, `browser_back`, `browser_press`)
|
|
20
|
+
- A target URL and testing scope from the user
|
|
21
|
+
|
|
22
|
+
## Inputs
|
|
23
|
+
|
|
24
|
+
The user provides:
|
|
25
|
+
1. **Target URL** — the entry point for testing
|
|
26
|
+
2. **Scope** — what areas/features to focus on (or "full site" for comprehensive testing)
|
|
27
|
+
3. **Output directory** (optional) — where to save screenshots and the report (default: `./dogfood-output`)
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
Follow this 5-phase systematic workflow:
|
|
32
|
+
|
|
33
|
+
### Phase 1: Plan
|
|
34
|
+
|
|
35
|
+
1. Create the output directory structure:
|
|
36
|
+
```
|
|
37
|
+
{output_dir}/
|
|
38
|
+
├── screenshots/ # Evidence screenshots
|
|
39
|
+
└── report.md # Final report (generated in Phase 5)
|
|
40
|
+
```
|
|
41
|
+
2. Identify the testing scope based on user input.
|
|
42
|
+
3. Build a rough sitemap by planning which pages and features to test:
|
|
43
|
+
- Landing/home page
|
|
44
|
+
- Navigation links (header, footer, sidebar)
|
|
45
|
+
- Key user flows (sign up, login, search, checkout, etc.)
|
|
46
|
+
- Forms and interactive elements
|
|
47
|
+
- Edge cases (empty states, error pages, 404s)
|
|
48
|
+
|
|
49
|
+
### Phase 2: Explore
|
|
50
|
+
|
|
51
|
+
For each page or feature in your plan:
|
|
52
|
+
|
|
53
|
+
1. **Navigate** to the page:
|
|
54
|
+
```
|
|
55
|
+
browser_navigate(url="https://example.com/page")
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. **Take a snapshot** to understand the DOM structure:
|
|
59
|
+
```
|
|
60
|
+
browser_snapshot()
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
3. **Check the console** for JavaScript errors:
|
|
64
|
+
```
|
|
65
|
+
browser_console(clear=true)
|
|
66
|
+
```
|
|
67
|
+
Do this after every navigation and after every significant interaction. Silent JS errors are high-value findings.
|
|
68
|
+
|
|
69
|
+
4. **Take an annotated screenshot** to visually assess the page and identify interactive elements:
|
|
70
|
+
```
|
|
71
|
+
browser_vision(question="Describe the page layout, identify any visual issues, broken elements, or accessibility concerns", annotate=true)
|
|
72
|
+
```
|
|
73
|
+
Use only handles returned by the actual browser tool. Re-snapshot after navigation or a stale-handle failure.
|
|
74
|
+
|
|
75
|
+
5. **Test interactive elements** systematically:
|
|
76
|
+
- Click buttons and links: `browser_click(ref="@eN")`
|
|
77
|
+
- Fill forms: `browser_type(ref="@eN", text="test input")`
|
|
78
|
+
- Test keyboard navigation: `browser_press(key="Tab")`, `browser_press(key="Enter")`
|
|
79
|
+
- Scroll through content: `browser_scroll(direction="down")`
|
|
80
|
+
- Test form validation with invalid inputs
|
|
81
|
+
- Test empty submissions
|
|
82
|
+
|
|
83
|
+
6. **After each interaction**, check for:
|
|
84
|
+
- Console errors: `browser_console()`
|
|
85
|
+
- Visual changes: `browser_vision(question="What changed after the interaction?")`
|
|
86
|
+
- Expected vs actual behavior
|
|
87
|
+
|
|
88
|
+
### Phase 3: Collect Evidence
|
|
89
|
+
|
|
90
|
+
For every issue found:
|
|
91
|
+
|
|
92
|
+
1. **Take a screenshot** showing the issue:
|
|
93
|
+
```
|
|
94
|
+
browser_vision(question="Capture and describe the issue visible on this page", annotate=false)
|
|
95
|
+
```
|
|
96
|
+
Save the `screenshot_path` from the response — you will reference it in the report.
|
|
97
|
+
|
|
98
|
+
2. **Record the details**:
|
|
99
|
+
- URL where the issue occurs
|
|
100
|
+
- Steps to reproduce
|
|
101
|
+
- Expected behavior
|
|
102
|
+
- Actual behavior
|
|
103
|
+
- Console errors (if any)
|
|
104
|
+
- Screenshot path
|
|
105
|
+
|
|
106
|
+
3. **Classify the issue** using the issue taxonomy (see `../issue-taxonomy.md`):
|
|
107
|
+
- Severity: Critical / High / Medium / Low
|
|
108
|
+
- Category: Functional / Visual / Accessibility / Console / UX / Content
|
|
109
|
+
|
|
110
|
+
### Phase 4: Categorize
|
|
111
|
+
|
|
112
|
+
1. Review all collected issues.
|
|
113
|
+
2. De-duplicate — merge issues that are the same bug manifesting in different places.
|
|
114
|
+
3. Assign final severity and category to each issue.
|
|
115
|
+
4. Sort by severity (Critical first, then High, Medium, Low).
|
|
116
|
+
5. Count issues by severity and category for the executive summary.
|
|
117
|
+
|
|
118
|
+
### Phase 5: Report
|
|
119
|
+
|
|
120
|
+
Generate the final report using the template at `../../templates/dogfood-report-template.md`.
|
|
121
|
+
|
|
122
|
+
The report must include:
|
|
123
|
+
1. **Executive summary** with total issue count, breakdown by severity, and testing scope
|
|
124
|
+
2. **Per-issue sections** with:
|
|
125
|
+
- Issue number and title
|
|
126
|
+
- Severity and category badges
|
|
127
|
+
- URL where observed
|
|
128
|
+
- Description of the issue
|
|
129
|
+
- Steps to reproduce
|
|
130
|
+
- Expected vs actual behavior
|
|
131
|
+
- Screenshot references (use an attached task asset with its explicit path for inline images)
|
|
132
|
+
- Console errors if relevant
|
|
133
|
+
3. **Summary table** of all issues
|
|
134
|
+
4. **Testing notes** — what was tested, what was not, any blockers
|
|
135
|
+
|
|
136
|
+
Save the report to `{output_dir}/report.md`.
|
|
137
|
+
|
|
138
|
+
## Tools Reference
|
|
139
|
+
|
|
140
|
+
| Tool | Purpose |
|
|
141
|
+
|------|---------|
|
|
142
|
+
| `browser_navigate` | Go to a URL |
|
|
143
|
+
| `browser_snapshot` | Get DOM text snapshot (accessibility tree) |
|
|
144
|
+
| `browser_click` | Click an element by ref (`@eN`) or text |
|
|
145
|
+
| `browser_type` | Type into an input field |
|
|
146
|
+
| `browser_scroll` | Scroll up/down on the page |
|
|
147
|
+
| `browser_back` | Go back in browser history |
|
|
148
|
+
| `browser_press` | Press a keyboard key |
|
|
149
|
+
| `browser_vision` | Screenshot + AI analysis; use `annotate=true` for element labels |
|
|
150
|
+
| `browser_console` | Get JS console output and errors |
|
|
151
|
+
|
|
152
|
+
## Tips
|
|
153
|
+
|
|
154
|
+
- **Always check `browser_console()` after navigating and after significant interactions.** Silent JS errors are among the most valuable findings.
|
|
155
|
+
- **Use `annotate=true` with `browser_vision`** when you need to reason about interactive element positions or when the snapshot refs are unclear.
|
|
156
|
+
- **Test with both valid and invalid inputs** — form validation bugs are common.
|
|
157
|
+
- **Scroll through long pages** — content below the fold may have rendering issues.
|
|
158
|
+
- **Test navigation flows** — click through multi-step processes end-to-end.
|
|
159
|
+
- **Check responsive behavior** at named desktop/mobile viewports, inspect screenshots and horizontal overflow, and test keyboard focus. Record untested breakpoints.
|
|
160
|
+
- **Don't forget edge cases**: empty states, very long text, special characters, rapid clicking.
|
|
161
|
+
- When reporting screenshots to the user, include an attached task asset with its explicit path so they can see the evidence inline.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Issue Taxonomy
|
|
2
|
+
|
|
3
|
+
Use this taxonomy to classify issues found during dogfood QA testing.
|
|
4
|
+
|
|
5
|
+
## Severity Levels
|
|
6
|
+
|
|
7
|
+
### Critical
|
|
8
|
+
The issue makes a core feature completely unusable or causes data loss.
|
|
9
|
+
|
|
10
|
+
**Examples:**
|
|
11
|
+
- Application crashes or shows a blank white page
|
|
12
|
+
- Form submission silently loses user data
|
|
13
|
+
- Authentication is completely broken (can't log in at all)
|
|
14
|
+
- Payment flow fails and charges the user without completing the order
|
|
15
|
+
- Security vulnerability (e.g., XSS, exposed credentials in console)
|
|
16
|
+
|
|
17
|
+
### High
|
|
18
|
+
The issue significantly impairs functionality but a workaround may exist.
|
|
19
|
+
|
|
20
|
+
**Examples:**
|
|
21
|
+
- A key button does nothing when clicked (but refreshing fixes it)
|
|
22
|
+
- Search returns no results for valid queries
|
|
23
|
+
- Form validation rejects valid input
|
|
24
|
+
- Page loads but critical content is missing or garbled
|
|
25
|
+
- Navigation link leads to a 404 or wrong page
|
|
26
|
+
- Uncaught JavaScript exceptions in the console on core pages
|
|
27
|
+
|
|
28
|
+
### Medium
|
|
29
|
+
The issue is noticeable and affects user experience but doesn't block core functionality.
|
|
30
|
+
|
|
31
|
+
**Examples:**
|
|
32
|
+
- Layout is misaligned or overlapping on certain screen sections
|
|
33
|
+
- Images fail to load (broken image icons)
|
|
34
|
+
- Slow performance (visible loading delays > 3 seconds)
|
|
35
|
+
- Form field lacks proper validation feedback (no error message on bad input)
|
|
36
|
+
- Console warnings that suggest deprecated or misconfigured features
|
|
37
|
+
- Inconsistent styling between similar pages
|
|
38
|
+
|
|
39
|
+
### Low
|
|
40
|
+
Minor polish issues that don't affect functionality.
|
|
41
|
+
|
|
42
|
+
**Examples:**
|
|
43
|
+
- Typos or grammatical errors in text content
|
|
44
|
+
- Minor spacing or alignment inconsistencies
|
|
45
|
+
- Placeholder text left in production ("Lorem ipsum")
|
|
46
|
+
- Favicon missing
|
|
47
|
+
- Console info/debug messages that shouldn't be in production
|
|
48
|
+
- Subtle color contrast issues that don't fail WCAG requirements
|
|
49
|
+
|
|
50
|
+
## Categories
|
|
51
|
+
|
|
52
|
+
### Functional
|
|
53
|
+
Issues where features don't work as expected.
|
|
54
|
+
|
|
55
|
+
- Buttons/links that don't respond
|
|
56
|
+
- Forms that don't submit or submit incorrectly
|
|
57
|
+
- Broken user flows (can't complete a multi-step process)
|
|
58
|
+
- Incorrect data displayed
|
|
59
|
+
- Features that work partially
|
|
60
|
+
|
|
61
|
+
### Visual
|
|
62
|
+
Issues with the visual presentation of the page.
|
|
63
|
+
|
|
64
|
+
- Layout problems (overlapping elements, broken grids)
|
|
65
|
+
- Broken images or missing media
|
|
66
|
+
- Styling inconsistencies
|
|
67
|
+
- Responsive design failures
|
|
68
|
+
- Z-index issues (elements hidden behind others)
|
|
69
|
+
- Text overflow or truncation
|
|
70
|
+
|
|
71
|
+
### Accessibility
|
|
72
|
+
Issues that prevent or hinder access for users with disabilities.
|
|
73
|
+
|
|
74
|
+
- Missing alt text on meaningful images
|
|
75
|
+
- Poor color contrast (fails WCAG AA)
|
|
76
|
+
- Elements not reachable via keyboard navigation
|
|
77
|
+
- Missing form labels or ARIA attributes
|
|
78
|
+
- Focus indicators missing or unclear
|
|
79
|
+
- Screen reader incompatible content
|
|
80
|
+
|
|
81
|
+
### Console
|
|
82
|
+
Issues detected through JavaScript console output.
|
|
83
|
+
|
|
84
|
+
- Uncaught exceptions and unhandled promise rejections
|
|
85
|
+
- Failed network requests (4xx, 5xx errors in console)
|
|
86
|
+
- Deprecation warnings
|
|
87
|
+
- CORS errors
|
|
88
|
+
- Mixed content warnings (HTTP resources on HTTPS page)
|
|
89
|
+
- Excessive console.log output left from development
|
|
90
|
+
|
|
91
|
+
### UX (User Experience)
|
|
92
|
+
Issues where functionality works but the experience is poor.
|
|
93
|
+
|
|
94
|
+
- Confusing navigation or information architecture
|
|
95
|
+
- Missing loading indicators (user doesn't know something is happening)
|
|
96
|
+
- No feedback after user actions (e.g., button click with no visible result)
|
|
97
|
+
- Inconsistent interaction patterns
|
|
98
|
+
- Missing confirmation dialogs for destructive actions
|
|
99
|
+
- Poor error messages that don't help the user recover
|
|
100
|
+
|
|
101
|
+
### Content
|
|
102
|
+
Issues with the text, media, or information on the page.
|
|
103
|
+
|
|
104
|
+
- Typos and grammatical errors
|
|
105
|
+
- Placeholder/dummy content in production
|
|
106
|
+
- Outdated information
|
|
107
|
+
- Missing content (empty sections)
|
|
108
|
+
- Broken or dead links to external resources
|
|
109
|
+
- Incorrect or misleading labels
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Dogfood QA Report
|
|
2
|
+
|
|
3
|
+
**Target:** {target_url}
|
|
4
|
+
**Date:** {date}
|
|
5
|
+
**Scope:** {scope_description}
|
|
6
|
+
**Tester:** Hermes Agent (automated exploratory QA)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Executive Summary
|
|
11
|
+
|
|
12
|
+
| Severity | Count |
|
|
13
|
+
|----------|-------|
|
|
14
|
+
| 🔴 Critical | {critical_count} |
|
|
15
|
+
| 🟠 High | {high_count} |
|
|
16
|
+
| 🟡 Medium | {medium_count} |
|
|
17
|
+
| 🔵 Low | {low_count} |
|
|
18
|
+
| **Total** | **{total_count}** |
|
|
19
|
+
|
|
20
|
+
**Overall Assessment:** {one_sentence_assessment}
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Issues
|
|
25
|
+
|
|
26
|
+
<!-- Repeat this section for each issue found, sorted by severity (Critical first) -->
|
|
27
|
+
|
|
28
|
+
### Issue #{issue_number}: {issue_title}
|
|
29
|
+
|
|
30
|
+
| Field | Value |
|
|
31
|
+
|-------|-------|
|
|
32
|
+
| **Severity** | {severity} |
|
|
33
|
+
| **Category** | {category} |
|
|
34
|
+
| **URL** | {url_where_found} |
|
|
35
|
+
|
|
36
|
+
**Description:**
|
|
37
|
+
{detailed_description_of_the_issue}
|
|
38
|
+
|
|
39
|
+
**Steps to Reproduce:**
|
|
40
|
+
1. {step_1}
|
|
41
|
+
2. {step_2}
|
|
42
|
+
3. {step_3}
|
|
43
|
+
|
|
44
|
+
**Expected Behavior:**
|
|
45
|
+
{what_should_happen}
|
|
46
|
+
|
|
47
|
+
**Actual Behavior:**
|
|
48
|
+
{what_actually_happens}
|
|
49
|
+
|
|
50
|
+
**Screenshot:**
|
|
51
|
+
{delivered_screenshot_asset_reference}
|
|
52
|
+
|
|
53
|
+
**Console Errors** (if applicable):
|
|
54
|
+
```
|
|
55
|
+
{console_error_output}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
<!-- End of per-issue section -->
|
|
61
|
+
|
|
62
|
+
## Issues Summary Table
|
|
63
|
+
|
|
64
|
+
| # | Title | Severity | Category | URL |
|
|
65
|
+
|---|-------|----------|----------|-----|
|
|
66
|
+
| {n} | {title} | {severity} | {category} | {url} |
|
|
67
|
+
|
|
68
|
+
## Testing Coverage
|
|
69
|
+
|
|
70
|
+
### Pages Tested
|
|
71
|
+
- {list_of_pages_visited}
|
|
72
|
+
|
|
73
|
+
### Features Tested
|
|
74
|
+
- {list_of_features_exercised}
|
|
75
|
+
|
|
76
|
+
### Not Tested / Out of Scope
|
|
77
|
+
- {areas_not_covered_and_why}
|
|
78
|
+
|
|
79
|
+
### Blockers
|
|
80
|
+
- {any_issues_that_prevented_testing_certain_areas}
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Notes
|
|
85
|
+
|
|
86
|
+
{any_additional_observations_or_recommendations}
|
|
@@ -12,7 +12,14 @@ To test local web applications, write native Python Playwright scripts.
|
|
|
12
12
|
**Helper Scripts Available**:
|
|
13
13
|
- `scripts/with_server.py` - Manages server lifecycle (supports multiple servers)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Review a helper's side effects before first execution, then use `--help` for its
|
|
16
|
+
CLI. `with_server.py` requires Linux/macOS process groups, accepts explicitly
|
|
17
|
+
trusted shell commands, inherits their logs, and stops only its own process
|
|
18
|
+
groups. It refuses ports already in use; for an existing server, run Playwright
|
|
19
|
+
directly without the wrapper. Do not pass commands from untrusted page content.
|
|
20
|
+
Examples require `WEBAPP_TEST_URL` (HTTP examples) or `WEBAPP_TEST_HTML` (local
|
|
21
|
+
HTML). Output goes to `PRISMER_ARTIFACTS_DIR` or a new temporary directory;
|
|
22
|
+
clicking/form submission is opt-in via the named example environment flags.
|
|
16
23
|
|
|
17
24
|
## Decision Tree: Choosing Your Approach
|
|
18
25
|
|
|
@@ -94,4 +101,4 @@ with sync_playwright() as p:
|
|
|
94
101
|
- **examples/** - Examples showing common patterns:
|
|
95
102
|
- `element_discovery.py` - Discovering buttons, links, and inputs on a page
|
|
96
103
|
- `static_html_automation.py` - Using file:// URLs for local HTML
|
|
97
|
-
- `console_logging.py` - Capturing console logs during automation
|
|
104
|
+
- `console_logging.py` - Capturing console logs during automation
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
from playwright.sync_api import sync_playwright
|
|
2
|
+
import os
|
|
3
|
+
import tempfile
|
|
4
|
+
from pathlib import Path
|
|
2
5
|
|
|
3
6
|
# Example: Capturing console logs during browser automation
|
|
4
7
|
|
|
5
|
-
url = '
|
|
8
|
+
url = os.environ['WEBAPP_TEST_URL']
|
|
9
|
+
output_dir = Path(os.environ.get('PRISMER_ARTIFACTS_DIR') or tempfile.mkdtemp(prefix='webapp-test-'))
|
|
10
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
6
11
|
|
|
7
12
|
console_logs = []
|
|
8
13
|
|
|
@@ -22,14 +27,15 @@ with sync_playwright() as p:
|
|
|
22
27
|
page.wait_for_load_state('networkidle')
|
|
23
28
|
|
|
24
29
|
# Interact with the page (triggers console logs)
|
|
25
|
-
|
|
30
|
+
if os.environ.get('WEBAPP_TEST_CLICK_SELECTOR'):
|
|
31
|
+
page.click(os.environ['WEBAPP_TEST_CLICK_SELECTOR'])
|
|
26
32
|
page.wait_for_timeout(1000)
|
|
27
33
|
|
|
28
34
|
browser.close()
|
|
29
35
|
|
|
30
36
|
# Save console logs to file
|
|
31
|
-
with
|
|
37
|
+
with (output_dir / 'console.log').open('w') as f:
|
|
32
38
|
f.write('\n'.join(console_logs))
|
|
33
39
|
|
|
34
40
|
print(f"\nCaptured {len(console_logs)} console messages")
|
|
35
|
-
print(f"Logs saved to: /
|
|
41
|
+
print(f"Logs saved to: {output_dir / 'console.log'}")
|