@prismer/runtime 2.2.55 → 2.2.64
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 +7079 -3327
- package/dist/cli.js +6706 -2936
- package/dist/index.cjs +7930 -3822
- package/dist/index.d.cts +484 -5
- package/dist/index.d.ts +484 -5
- package/dist/index.js +7181 -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
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
# GitHub Code Review
|
|
2
|
+
|
|
3
|
+
> Prismer scope: read auth.md first. All mutations below are examples for an
|
|
4
|
+
> explicitly authorized target/action, never an automatic checklist. Preserve the
|
|
5
|
+
> current dirty tree and long-lived branch; resolve the actual base branch and
|
|
6
|
+
> do not switch, commit, push, publish, merge, delete branches or send reviews
|
|
7
|
+
> unless requested. Use structured JSON for dynamic payloads, not shell string
|
|
8
|
+
> interpolation. Public visibility requires explicit intent. Collection reads
|
|
9
|
+
> must use scripts/github-api.py (complete Link pagination) or gh api --paginate;
|
|
10
|
+
> porcelain list limits and single-page curl output are not a complete inventory.
|
|
11
|
+
> Run shell pipelines with pipefail, record each exit status, and read back writes.
|
|
12
|
+
|
|
13
|
+
Perform code reviews on local changes before pushing, or review open PRs on GitHub. Most of this skill uses plain `git` — the `gh`/`curl` split only matters for PR-level interactions.
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
- Authenticated with GitHub (see `auth.md` reference)
|
|
18
|
+
- Inside a git repository
|
|
19
|
+
|
|
20
|
+
### Setup (for PR interactions)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Resolve SKILL_ROOT from the installed prismer-github entry, not cwd.
|
|
24
|
+
source "$SKILL_ROOT/scripts/gh-env.sh"
|
|
25
|
+
AUTH="$GH_AUTH_METHOD"
|
|
26
|
+
OWNER="$GH_OWNER"
|
|
27
|
+
REPO="$GH_REPO"
|
|
28
|
+
OWNER_REPO="$GH_OWNER_REPO"
|
|
29
|
+
# token-unverified needs a successful API identity check before remote work.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 1. Reviewing Local Changes (Pre-Push)
|
|
35
|
+
|
|
36
|
+
This is pure `git` — works everywhere, no API needed.
|
|
37
|
+
|
|
38
|
+
### Get the Diff
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Staged changes (what would be committed)
|
|
42
|
+
git diff --staged
|
|
43
|
+
|
|
44
|
+
# All changes vs main (what a PR would contain)
|
|
45
|
+
git diff main...HEAD
|
|
46
|
+
|
|
47
|
+
# File names only
|
|
48
|
+
git diff main...HEAD --name-only
|
|
49
|
+
|
|
50
|
+
# Stat summary (insertions/deletions per file)
|
|
51
|
+
git diff main...HEAD --stat
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Review Strategy
|
|
55
|
+
|
|
56
|
+
1. **Get the big picture first:**
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git diff main...HEAD --stat
|
|
60
|
+
git log main..HEAD --oneline
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
2. **Review file by file** — use `read_file` on changed files for full context, and the diff to see what changed:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git diff main...HEAD -- src/auth/login.py
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
3. **Check for common issues:**
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Debug statements, TODOs, console.logs left behind
|
|
73
|
+
git diff main...HEAD | grep -n "print(\|console\.log\|TODO\|FIXME\|HACK\|XXX\|debugger"
|
|
74
|
+
|
|
75
|
+
# Large files accidentally staged
|
|
76
|
+
git diff main...HEAD --stat | sort -t'|' -k2 -rn | head -10
|
|
77
|
+
|
|
78
|
+
# Secrets or credential patterns
|
|
79
|
+
git diff main...HEAD | grep -in "password\|secret\|api_key\|token.*=\|private_key"
|
|
80
|
+
|
|
81
|
+
# Merge conflict markers
|
|
82
|
+
git diff main...HEAD | grep -n "<<<<<<\|>>>>>>\|======="
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
4. **Present structured feedback** to the user.
|
|
86
|
+
|
|
87
|
+
### Review Output Format
|
|
88
|
+
|
|
89
|
+
When reviewing local changes, present findings in this structure:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
## Code Review Summary
|
|
93
|
+
|
|
94
|
+
### Critical
|
|
95
|
+
- **src/auth.py:45** — SQL injection: user input passed directly to query.
|
|
96
|
+
Suggestion: Use parameterized queries.
|
|
97
|
+
|
|
98
|
+
### Warnings
|
|
99
|
+
- **src/models/user.py:23** — Password stored in plaintext. Use bcrypt or argon2.
|
|
100
|
+
- **src/api/routes.py:112** — No rate limiting on login endpoint.
|
|
101
|
+
|
|
102
|
+
### Suggestions
|
|
103
|
+
- **src/utils/helpers.py:8** — Duplicates logic in `src/core/utils.py:34`. Consolidate.
|
|
104
|
+
- **tests/test_auth.py** — Missing edge case: expired token test.
|
|
105
|
+
|
|
106
|
+
### Looks Good
|
|
107
|
+
- Clean separation of concerns in the middleware layer
|
|
108
|
+
- Good test coverage for the happy path
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 2. Reviewing a Pull Request on GitHub
|
|
114
|
+
|
|
115
|
+
### View PR Details
|
|
116
|
+
|
|
117
|
+
**With gh:**
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
gh pr view 123
|
|
121
|
+
gh pr diff 123
|
|
122
|
+
gh pr diff 123 --name-only
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**With git + curl:**
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
PR_NUMBER=123
|
|
129
|
+
|
|
130
|
+
# Get PR details
|
|
131
|
+
python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/pulls/$PR_NUMBER \
|
|
132
|
+
| python -c "
|
|
133
|
+
import sys, json
|
|
134
|
+
pr = json.load(sys.stdin)
|
|
135
|
+
print(f\"Title: {pr['title']}\")
|
|
136
|
+
print(f\"Author: {pr['user']['login']}\")
|
|
137
|
+
print(f\"Branch: {pr['head']['ref']} -> {pr['base']['ref']}\")
|
|
138
|
+
print(f\"State: {pr['state']}\")
|
|
139
|
+
print(f\"Body:\n{pr['body']}\")"
|
|
140
|
+
|
|
141
|
+
# List changed files
|
|
142
|
+
python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/pulls/$PR_NUMBER/files \
|
|
143
|
+
| python -c "
|
|
144
|
+
import sys, json
|
|
145
|
+
for f in json.load(sys.stdin):
|
|
146
|
+
print(f\"{f['status']:10} +{f['additions']:-4} -{f['deletions']:-4} {f['filename']}\")"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Check Out PR Locally for Full Review
|
|
150
|
+
|
|
151
|
+
This works with plain `git` — no `gh` needed:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Fetch the PR branch and check it out
|
|
155
|
+
git fetch origin pull/123/head:pr-123
|
|
156
|
+
git checkout pr-123
|
|
157
|
+
|
|
158
|
+
# Now you can use read_file, search_files, run tests, etc.
|
|
159
|
+
|
|
160
|
+
# View diff against the base branch
|
|
161
|
+
git diff main...pr-123
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**With gh (shortcut):**
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
gh pr checkout 123
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Leave Comments on a PR
|
|
171
|
+
|
|
172
|
+
**General PR comment — with gh:**
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
gh pr comment 123 --body "Overall looks good, a few suggestions below."
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**General PR comment — with curl:**
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
curl --fail-with-body -sS --max-time 30 -X POST \
|
|
182
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
183
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/$PR_NUMBER/comments \
|
|
184
|
+
-d '{"body": "Overall looks good, a few suggestions below."}'
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Leave Inline Review Comments
|
|
188
|
+
|
|
189
|
+
**Single inline comment — with gh (via API):**
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
HEAD_SHA=$(gh pr view 123 --json headRefOid --jq '.headRefOid')
|
|
193
|
+
|
|
194
|
+
gh api repos/$OWNER/$REPO/pulls/123/comments \
|
|
195
|
+
--method POST \
|
|
196
|
+
-f body="This could be simplified with a list comprehension." \
|
|
197
|
+
-f path="src/auth/login.py" \
|
|
198
|
+
-f commit_id="$HEAD_SHA" \
|
|
199
|
+
-F line=45 \
|
|
200
|
+
-f side="RIGHT"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Single inline comment — with curl:**
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Get the head commit SHA
|
|
207
|
+
HEAD_SHA=$(python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/pulls/$PR_NUMBER \
|
|
208
|
+
| python -c "import sys,json; print(json.load(sys.stdin)['head']['sha'])")
|
|
209
|
+
|
|
210
|
+
curl --fail-with-body -sS --max-time 30 -X POST \
|
|
211
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
212
|
+
https://api.github.com/repos/$OWNER/$REPO/pulls/$PR_NUMBER/comments \
|
|
213
|
+
-d "{
|
|
214
|
+
\"body\": \"This could be simplified with a list comprehension.\",
|
|
215
|
+
\"path\": \"src/auth/login.py\",
|
|
216
|
+
\"commit_id\": \"$HEAD_SHA\",
|
|
217
|
+
\"line\": 45,
|
|
218
|
+
\"side\": \"RIGHT\"
|
|
219
|
+
}"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Submit a Formal Review (Approve / Request Changes)
|
|
223
|
+
|
|
224
|
+
**With gh:**
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
gh pr review 123 --approve --body "LGTM!"
|
|
228
|
+
gh pr review 123 --request-changes --body "See inline comments."
|
|
229
|
+
gh pr review 123 --comment --body "Some suggestions, nothing blocking."
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**With curl — multi-comment review submitted atomically:**
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
HEAD_SHA=$(python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/pulls/$PR_NUMBER \
|
|
236
|
+
| python -c "import sys,json; print(json.load(sys.stdin)['head']['sha'])")
|
|
237
|
+
|
|
238
|
+
curl --fail-with-body -sS --max-time 30 -X POST \
|
|
239
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
240
|
+
https://api.github.com/repos/$OWNER/$REPO/pulls/$PR_NUMBER/reviews \
|
|
241
|
+
-d "{
|
|
242
|
+
\"commit_id\": \"$HEAD_SHA\",
|
|
243
|
+
\"event\": \"COMMENT\",
|
|
244
|
+
\"body\": \"Code review from Hermes Agent\",
|
|
245
|
+
\"comments\": [
|
|
246
|
+
{\"path\": \"src/auth.py\", \"line\": 45, \"body\": \"Use parameterized queries to prevent SQL injection.\"},
|
|
247
|
+
{\"path\": \"src/models/user.py\", \"line\": 23, \"body\": \"Hash passwords with bcrypt before storing.\"},
|
|
248
|
+
{\"path\": \"tests/test_auth.py\", \"line\": 1, \"body\": \"Add test for expired token edge case.\"}
|
|
249
|
+
]
|
|
250
|
+
}"
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Event values: `"APPROVE"`, `"REQUEST_CHANGES"`, `"COMMENT"`
|
|
254
|
+
|
|
255
|
+
The `line` field refers to the line number in the *new* version of the file. For deleted lines, use `"side": "LEFT"`.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 3. Review Checklist
|
|
260
|
+
|
|
261
|
+
When performing a code review (local or PR), systematically check:
|
|
262
|
+
|
|
263
|
+
### Correctness
|
|
264
|
+
- Does the code do what it claims?
|
|
265
|
+
- Edge cases handled (empty inputs, nulls, large data, concurrent access)?
|
|
266
|
+
- Error paths handled gracefully?
|
|
267
|
+
|
|
268
|
+
### Security
|
|
269
|
+
- No hardcoded secrets, credentials, or API keys
|
|
270
|
+
- Input validation on user-facing inputs
|
|
271
|
+
- No SQL injection, XSS, or path traversal
|
|
272
|
+
- Auth/authz checks where needed
|
|
273
|
+
|
|
274
|
+
### Code Quality
|
|
275
|
+
- Clear naming (variables, functions, classes)
|
|
276
|
+
- No unnecessary complexity or premature abstraction
|
|
277
|
+
- DRY — no duplicated logic that should be extracted
|
|
278
|
+
- Functions are focused (single responsibility)
|
|
279
|
+
|
|
280
|
+
### Testing
|
|
281
|
+
- New code paths tested?
|
|
282
|
+
- Happy path and error cases covered?
|
|
283
|
+
- Tests readable and maintainable?
|
|
284
|
+
|
|
285
|
+
### Performance
|
|
286
|
+
- No N+1 queries or unnecessary loops
|
|
287
|
+
- Appropriate caching where beneficial
|
|
288
|
+
- No blocking operations in async code paths
|
|
289
|
+
|
|
290
|
+
### Documentation
|
|
291
|
+
- Public APIs documented
|
|
292
|
+
- Non-obvious logic has comments explaining "why"
|
|
293
|
+
- README updated if behavior changed
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## 4. Pre-Push Review Workflow
|
|
298
|
+
|
|
299
|
+
When the user asks you to "review the code" or "check before pushing":
|
|
300
|
+
|
|
301
|
+
1. `git diff main...HEAD --stat` — see scope of changes
|
|
302
|
+
2. `git diff main...HEAD` — read the full diff
|
|
303
|
+
3. For each changed file, use `read_file` if you need more context
|
|
304
|
+
4. Apply the checklist above
|
|
305
|
+
5. Present findings in the structured format (Critical / Warnings / Suggestions / Looks Good)
|
|
306
|
+
6. If critical issues found, offer to fix them before the user pushes
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## 5. PR Review Workflow (End-to-End)
|
|
311
|
+
|
|
312
|
+
When the user asks you to "review PR #N", "look at this PR", or gives you a PR URL, follow this recipe:
|
|
313
|
+
|
|
314
|
+
### Step 1: Set up environment
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
# Resolve SKILL_ROOT from the installed prismer-github entry, not cwd.
|
|
318
|
+
source "$SKILL_ROOT/scripts/gh-env.sh"
|
|
319
|
+
AUTH="$GH_AUTH_METHOD"
|
|
320
|
+
OWNER="$GH_OWNER"
|
|
321
|
+
REPO="$GH_REPO"
|
|
322
|
+
OWNER_REPO="$GH_OWNER_REPO"
|
|
323
|
+
# token-unverified needs a successful API identity check before remote work.
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Step 2: Gather PR context
|
|
327
|
+
|
|
328
|
+
Get the PR metadata, description, and list of changed files to understand scope before diving into code.
|
|
329
|
+
|
|
330
|
+
**With gh:**
|
|
331
|
+
```bash
|
|
332
|
+
gh pr view 123
|
|
333
|
+
gh pr diff 123 --name-only
|
|
334
|
+
gh pr checks 123
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**With curl:**
|
|
338
|
+
```bash
|
|
339
|
+
PR_NUMBER=123
|
|
340
|
+
|
|
341
|
+
# PR details (title, author, description, branch)
|
|
342
|
+
curl --fail-with-body -sS --max-time 30 -H "Authorization: token $GITHUB_TOKEN" \
|
|
343
|
+
https://api.github.com/repos/$GH_OWNER/$GH_REPO/pulls/$PR_NUMBER
|
|
344
|
+
|
|
345
|
+
# Changed files with line counts
|
|
346
|
+
curl --fail-with-body -sS --max-time 30 -H "Authorization: token $GITHUB_TOKEN" \
|
|
347
|
+
https://api.github.com/repos/$GH_OWNER/$GH_REPO/pulls/$PR_NUMBER/files
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Step 3: Check out the PR locally
|
|
351
|
+
|
|
352
|
+
This gives you full access to `read_file`, `search_files`, and the ability to run tests.
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
git fetch origin pull/$PR_NUMBER/head:pr-$PR_NUMBER
|
|
356
|
+
git checkout pr-$PR_NUMBER
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Step 4: Read the diff and understand changes
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
# Full diff against the base branch
|
|
363
|
+
git diff main...HEAD
|
|
364
|
+
|
|
365
|
+
# Or file-by-file for large PRs
|
|
366
|
+
git diff main...HEAD --name-only
|
|
367
|
+
# Then for each file:
|
|
368
|
+
git diff main...HEAD -- path/to/file.py
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
For each changed file, use `read_file` to see full context around the changes — diffs alone can miss issues visible only with surrounding code.
|
|
372
|
+
|
|
373
|
+
### Step 5: Run automated checks locally (if applicable)
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
# Run tests if there's a test suite
|
|
377
|
+
python -m pytest
|
|
378
|
+
# or: npm test, cargo test, go test ./..., etc.
|
|
379
|
+
|
|
380
|
+
# Run linter if configured
|
|
381
|
+
ruff check . 2>&1 | head -30
|
|
382
|
+
# or: eslint, clippy, etc.
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### Step 6: Apply the review checklist (Section 3)
|
|
386
|
+
|
|
387
|
+
Go through each category: Correctness, Security, Code Quality, Testing, Performance, Documentation.
|
|
388
|
+
|
|
389
|
+
### Step 7: Post the review to GitHub
|
|
390
|
+
|
|
391
|
+
Collect your findings and submit them as a formal review with inline comments.
|
|
392
|
+
|
|
393
|
+
**With gh:**
|
|
394
|
+
```bash
|
|
395
|
+
# If no issues — approve
|
|
396
|
+
gh pr review $PR_NUMBER --approve --body "Reviewed by Hermes Agent. Code looks clean — good test coverage, no security concerns."
|
|
397
|
+
|
|
398
|
+
# If issues found — request changes with inline comments
|
|
399
|
+
gh pr review $PR_NUMBER --request-changes --body "Found a few issues — see inline comments."
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
**With curl — atomic review with multiple inline comments:**
|
|
403
|
+
```bash
|
|
404
|
+
HEAD_SHA=$(curl --fail-with-body -sS --max-time 30 -H "Authorization: token $GITHUB_TOKEN" \
|
|
405
|
+
https://api.github.com/repos/$GH_OWNER/$GH_REPO/pulls/$PR_NUMBER \
|
|
406
|
+
| python -c "import sys,json; print(json.load(sys.stdin)['head']['sha'])")
|
|
407
|
+
|
|
408
|
+
# Build the review JSON — event is APPROVE, REQUEST_CHANGES, or COMMENT
|
|
409
|
+
curl --fail-with-body -sS --max-time 30 -X POST \
|
|
410
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
411
|
+
https://api.github.com/repos/$GH_OWNER/$GH_REPO/pulls/$PR_NUMBER/reviews \
|
|
412
|
+
-d "{
|
|
413
|
+
\"commit_id\": \"$HEAD_SHA\",
|
|
414
|
+
\"event\": \"REQUEST_CHANGES\",
|
|
415
|
+
\"body\": \"## Hermes Agent Review\n\nFound 2 issues, 1 suggestion. See inline comments.\",
|
|
416
|
+
\"comments\": [
|
|
417
|
+
{\"path\": \"src/auth.py\", \"line\": 45, \"body\": \"🔴 **Critical:** User input passed directly to SQL query — use parameterized queries.\"},
|
|
418
|
+
{\"path\": \"src/models.py\", \"line\": 23, \"body\": \"⚠️ **Warning:** Password stored without hashing.\"},
|
|
419
|
+
{\"path\": \"src/utils.py\", \"line\": 8, \"body\": \"💡 **Suggestion:** This duplicates logic in core/utils.py:34.\"}
|
|
420
|
+
]
|
|
421
|
+
}"
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Step 8: Also post a summary comment
|
|
425
|
+
|
|
426
|
+
In addition to inline comments, leave a top-level summary so the PR author gets the full picture at a glance. Use the review output format from `references/review-output-template.md`.
|
|
427
|
+
|
|
428
|
+
**With gh:**
|
|
429
|
+
```bash
|
|
430
|
+
gh pr comment $PR_NUMBER --body "$(cat <<'EOF'
|
|
431
|
+
## Code Review Summary
|
|
432
|
+
|
|
433
|
+
**Verdict: Changes Requested** (2 issues, 1 suggestion)
|
|
434
|
+
|
|
435
|
+
### 🔴 Critical
|
|
436
|
+
- **src/auth.py:45** — SQL injection vulnerability
|
|
437
|
+
|
|
438
|
+
### ⚠️ Warnings
|
|
439
|
+
- **src/models.py:23** — Plaintext password storage
|
|
440
|
+
|
|
441
|
+
### 💡 Suggestions
|
|
442
|
+
- **src/utils.py:8** — Duplicated logic, consider consolidating
|
|
443
|
+
|
|
444
|
+
### ✅ Looks Good
|
|
445
|
+
- Clean API design
|
|
446
|
+
- Good error handling in the middleware layer
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
*Reviewed by Hermes Agent*
|
|
450
|
+
EOF
|
|
451
|
+
)"
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
### Step 9: Clean up
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
# Return to the recorded original branch only when the worktree permits; do not auto-switch.
|
|
458
|
+
# Branch deletion is a separate explicitly authorized operation.
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Decision: Approve vs Request Changes vs Comment
|
|
462
|
+
|
|
463
|
+
- **Approve** — no critical or warning-level issues, only minor suggestions or all clear
|
|
464
|
+
- **Request Changes** — any critical or warning-level issue that should be fixed before merge
|
|
465
|
+
- **Comment** — observations and suggestions, but nothing blocking (use when you're unsure or the PR is a draft)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Conventional Commits Quick Reference
|
|
2
|
+
|
|
3
|
+
> Prismer scope: read auth.md first. All mutations below are examples for an
|
|
4
|
+
> explicitly authorized target/action, never an automatic checklist. Preserve the
|
|
5
|
+
> current dirty tree and long-lived branch; resolve the actual base branch and
|
|
6
|
+
> do not switch, commit, push, publish, merge, delete branches or send reviews
|
|
7
|
+
> unless requested. Use structured JSON for dynamic payloads, not shell string
|
|
8
|
+
> interpolation. Public visibility requires explicit intent. Collection reads
|
|
9
|
+
> must use scripts/github-api.py (complete Link pagination) or gh api --paginate;
|
|
10
|
+
> porcelain list limits and single-page curl output are not a complete inventory.
|
|
11
|
+
> Run shell pipelines with pipefail, record each exit status, and read back writes.
|
|
12
|
+
|
|
13
|
+
Format: `type(scope): description`
|
|
14
|
+
|
|
15
|
+
## Types
|
|
16
|
+
|
|
17
|
+
| Type | When to use | Example |
|
|
18
|
+
|------|------------|---------|
|
|
19
|
+
| `feat` | New feature or capability | `feat(auth): add OAuth2 login flow` |
|
|
20
|
+
| `fix` | Bug fix | `fix(api): handle null response from /users endpoint` |
|
|
21
|
+
| `refactor` | Code restructuring, no behavior change | `refactor(db): extract query builder into separate module` |
|
|
22
|
+
| `docs` | Documentation only | `docs: update API usage examples in README` |
|
|
23
|
+
| `test` | Adding or updating tests | `test(auth): add integration tests for token refresh` |
|
|
24
|
+
| `ci` | CI/CD configuration | `ci: add Python 3.12 to test matrix` |
|
|
25
|
+
| `chore` | Maintenance, dependencies, tooling | `chore: upgrade pytest to 8.x` |
|
|
26
|
+
| `perf` | Performance improvement | `perf(search): add index on users.email column` |
|
|
27
|
+
| `style` | Formatting, whitespace, semicolons | `style: run black formatter on src/` |
|
|
28
|
+
| `build` | Build system or external deps | `build: switch from setuptools to hatch` |
|
|
29
|
+
| `revert` | Reverts a previous commit | `revert: revert "feat(auth): add OAuth2 login flow"` |
|
|
30
|
+
|
|
31
|
+
## Scope (optional)
|
|
32
|
+
|
|
33
|
+
Short identifier for the area of the codebase: `auth`, `api`, `db`, `ui`, `cli`, etc.
|
|
34
|
+
|
|
35
|
+
## Breaking Changes
|
|
36
|
+
|
|
37
|
+
Add `!` after type or `BREAKING CHANGE:` in footer:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
feat(api)!: change authentication to use bearer tokens
|
|
41
|
+
|
|
42
|
+
BREAKING CHANGE: API endpoints now require Bearer token instead of API key header.
|
|
43
|
+
Migration guide: https://docs.example.com/migrate-auth
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Multi-line Body
|
|
47
|
+
|
|
48
|
+
Wrap at 72 characters. Use bullet points for multiple changes:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
feat(auth): add JWT-based user authentication
|
|
52
|
+
|
|
53
|
+
- Add login/register endpoints with input validation
|
|
54
|
+
- Add User model with argon2 password hashing
|
|
55
|
+
- Add auth middleware for protected routes
|
|
56
|
+
- Add token refresh endpoint with rotation
|
|
57
|
+
|
|
58
|
+
Closes #42
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Linking Issues
|
|
62
|
+
|
|
63
|
+
In the commit body or footer:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Closes #42 ← closes the issue when merged
|
|
67
|
+
Fixes #42 ← same effect
|
|
68
|
+
Refs #42 ← references without closing
|
|
69
|
+
Co-authored-by: Name <email>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Quick Decision Guide
|
|
73
|
+
|
|
74
|
+
- Added something new? → `feat`
|
|
75
|
+
- Something was broken and you fixed it? → `fix`
|
|
76
|
+
- Changed how code is organized but not what it does? → `refactor`
|
|
77
|
+
- Only touched tests? → `test`
|
|
78
|
+
- Only touched docs? → `docs`
|
|
79
|
+
- Updated CI/CD pipelines? → `ci`
|
|
80
|
+
- Updated dependencies or tooling? → `chore`
|
|
81
|
+
- Made something faster? → `perf`
|