@prismer/runtime 2.0.8 → 2.2.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/CHANGELOG.md +4004 -0
  2. package/README.md +34 -12
  3. package/apc/skills/FIELD-DICTIONARY.md +111 -0
  4. package/apc/skills/bug-reproduce/SKILL.md +150 -0
  5. package/apc/skills/bug-reproduce/skill.json +96 -0
  6. package/apc/skills/code-review/SKILL.md +198 -0
  7. package/apc/skills/code-review/skill.json +124 -0
  8. package/apc/skills/design-review/SKILL.md +122 -0
  9. package/apc/skills/design-review/skill.json +88 -0
  10. package/apc/skills/doc-sync/SKILL.md +168 -0
  11. package/apc/skills/doc-sync/skill.json +81 -0
  12. package/apc/skills/env-doctor/SKILL.md +194 -0
  13. package/apc/skills/env-doctor/skill.json +209 -0
  14. package/apc/skills/git-ops/SKILL.md +189 -0
  15. package/apc/skills/git-ops/skill.json +94 -0
  16. package/apc/skills/impact-trace/SKILL.md +168 -0
  17. package/apc/skills/impact-trace/skill.json +104 -0
  18. package/apc/skills/observability/SKILL.md +195 -0
  19. package/apc/skills/observability/skill.json +116 -0
  20. package/apc/skills/release-db-config-sync/SKILL.md +186 -0
  21. package/apc/skills/release-db-config-sync/skill.json +109 -0
  22. package/apc/skills/release-ota-promote/SKILL.md +195 -0
  23. package/apc/skills/release-ota-promote/skill.json +176 -0
  24. package/apc/skills/release-preflight/SKILL.md +174 -0
  25. package/apc/skills/release-preflight/skill.json +175 -0
  26. package/apc/skills/release-rollback/SKILL.md +214 -0
  27. package/apc/skills/release-rollback/skill.json +230 -0
  28. package/apc/skills/release-tag/SKILL.md +194 -0
  29. package/apc/skills/release-tag/skill.json +94 -0
  30. package/apc/skills/releasing-prod/SKILL.md +49 -0
  31. package/apc/skills/releasing-test/SKILL.md +144 -0
  32. package/apc/skills/sdk-release/SKILL.md +200 -0
  33. package/apc/skills/spec-intake/SKILL.md +169 -0
  34. package/apc/skills/spec-intake/skill.json +93 -0
  35. package/apc/skills/test-result-feedback/SKILL.md +239 -0
  36. package/apc/skills/test-result-feedback/skill.json +193 -0
  37. package/apc/skills/test-runner/SKILL.md +169 -0
  38. package/apc/skills/test-runner/skill.json +103 -0
  39. package/apc/skills/ui-align/SKILL.md +209 -0
  40. package/apc/skills/ui-align/skill.json +114 -0
  41. package/apc/skills/ui-canvas/SKILL.md +148 -0
  42. package/apc/skills/ui-canvas/skill.json +127 -0
  43. package/built-in-skills/agent-coordination/SKILL.md +77 -38
  44. package/built-in-skills/agent-meta/SKILL.md +12 -0
  45. package/built-in-skills/assets/SKILL.md +9 -7
  46. package/built-in-skills/browser-use/SKILL.md +93 -0
  47. package/built-in-skills/canvas-design/SKILL.md +4 -3
  48. package/built-in-skills/canvas-design/canvas-fonts/IBMPlexSerif-OFL.txt +93 -0
  49. package/built-in-skills/canvas-design/canvas-fonts/InstrumentSerif-OFL.txt +93 -0
  50. package/built-in-skills/canvas-design/canvas-fonts/LICENSE-SOURCES.md +16 -0
  51. package/built-in-skills/claim-agent-ownership/SKILL.md +10 -5
  52. package/built-in-skills/claude-api/SKILL.md +2 -1
  53. package/built-in-skills/claude-api/python/claude-api/README.md +2 -2
  54. package/built-in-skills/claude-api/python/claude-api/tool-use.md +9 -5
  55. package/built-in-skills/claude-api/python/managed-agents/README.md +11 -1
  56. package/built-in-skills/claude-api/shared/error-codes.md +4 -4
  57. package/built-in-skills/claude-api/shared/managed-agents-client-patterns.md +4 -2
  58. package/built-in-skills/claude-api/shared/managed-agents-core.md +1 -2
  59. package/built-in-skills/claude-api/shared/managed-agents-events.md +41 -22
  60. package/built-in-skills/claude-api/shared/managed-agents-multiagent.md +5 -3
  61. package/built-in-skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +1 -1
  62. package/built-in-skills/claude-api/shared/managed-agents-tools.md +2 -3
  63. package/built-in-skills/claude-api/shared/model-migration.md +3 -3
  64. package/built-in-skills/claude-api/shared/models.md +1 -1
  65. package/built-in-skills/claude-api/typescript/claude-api/batches.md +1 -1
  66. package/built-in-skills/claude-api/typescript/claude-api/files-api.md +3 -1
  67. package/built-in-skills/claude-api/typescript/claude-api/tool-use.md +8 -2
  68. package/built-in-skills/claude-api/typescript/managed-agents/README.md +8 -2
  69. package/built-in-skills/codebase-design/DEEPENING.md +37 -0
  70. package/built-in-skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  71. package/built-in-skills/codebase-design/LICENSE +21 -0
  72. package/built-in-skills/codebase-design/SKILL.md +130 -0
  73. package/built-in-skills/codebase-design/references/requesting-code-review/GUIDE.md +291 -0
  74. package/built-in-skills/codebase-design/references/requesting-code-review/LICENSE +21 -0
  75. package/built-in-skills/codebase-design/references/requesting-code-review/LICENSE.superpowers +21 -0
  76. package/built-in-skills/codebase-design/references/requesting-code-review/NOTICE.md +37 -0
  77. package/built-in-skills/codebase-design/references/sdlc-review/GUIDE.md +130 -0
  78. package/built-in-skills/codebase-design/references/sdlc-review/LICENSE +21 -0
  79. package/built-in-skills/codebase-design/references/sdlc-review/NOTICE.md +17 -0
  80. package/built-in-skills/codebase-design/references/simplify-code/GUIDE.md +269 -0
  81. package/built-in-skills/codebase-design/references/simplify-code/LICENSE +21 -0
  82. package/built-in-skills/codebase-design/references/simplify-code/NOTICE.md +37 -0
  83. package/built-in-skills/competitor-intelligence/LICENSE +21 -0
  84. package/built-in-skills/competitor-intelligence/NOTICE.md +6 -0
  85. package/built-in-skills/competitor-intelligence/SKILL.md +125 -0
  86. package/built-in-skills/competitor-intelligence/scripts/watch_state.py +160 -0
  87. package/built-in-skills/conversation-compaction/SKILL.md +117 -0
  88. package/built-in-skills/council-creator/SKILL.md +427 -0
  89. package/built-in-skills/diagnosing-bugs/LICENSE +21 -0
  90. package/built-in-skills/diagnosing-bugs/SKILL.md +148 -0
  91. package/built-in-skills/diagnosing-bugs/references/desktop-dom/GUIDE.md +64 -0
  92. package/built-in-skills/diagnosing-bugs/references/desktop-dom/LICENSE +21 -0
  93. package/built-in-skills/diagnosing-bugs/references/desktop-dom/NOTICE.md +17 -0
  94. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/GUIDE.md +410 -0
  95. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/LICENSE +21 -0
  96. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/LICENSE.superpowers +21 -0
  97. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/NOTICE.md +37 -0
  98. package/built-in-skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  99. package/built-in-skills/doc-coauthoring/SKILL.md +7 -0
  100. package/built-in-skills/doc-coauthoring/references/humanizer/GUIDE.md +647 -0
  101. package/built-in-skills/doc-coauthoring/references/humanizer/LICENSE +21 -0
  102. package/built-in-skills/doc-coauthoring/references/humanizer/LICENSE.hermes +21 -0
  103. package/built-in-skills/doc-coauthoring/references/humanizer/PROVENANCE.md +7 -0
  104. package/built-in-skills/document-actions/LICENSE +21 -0
  105. package/built-in-skills/document-actions/NOTICE.md +21 -0
  106. package/built-in-skills/document-actions/SKILL.md +46 -0
  107. package/built-in-skills/domain-modeling/ADR-FORMAT.md +47 -0
  108. package/built-in-skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  109. package/built-in-skills/domain-modeling/LICENSE +21 -0
  110. package/built-in-skills/domain-modeling/SKILL.md +76 -0
  111. package/built-in-skills/evidence-citations/LICENSE +21 -0
  112. package/built-in-skills/evidence-citations/NOTICE.md +21 -0
  113. package/built-in-skills/evidence-citations/SKILL.md +46 -0
  114. package/built-in-skills/evidence-citations/references/citation-formats.md +68 -0
  115. package/built-in-skills/evidence-citations/references/grounding-rationale.md +64 -0
  116. package/built-in-skills/evidence-citations/scripts/sources.py +720 -0
  117. package/built-in-skills/frontend-design/SKILL.md +7 -0
  118. package/built-in-skills/frontend-design/references/claude-design/GUIDE.md +650 -0
  119. package/built-in-skills/frontend-design/references/claude-design/LICENSE +21 -0
  120. package/built-in-skills/frontend-design/references/claude-design/LICENSE.hermes +21 -0
  121. package/built-in-skills/frontend-design/references/claude-design/PROVENANCE.md +7 -0
  122. package/built-in-skills/human-approval/SKILL.md +17 -2
  123. package/built-in-skills/image-generate/SKILL.md +107 -301
  124. package/built-in-skills/image-generate/scripts/generate-and-deliver.mjs +310 -0
  125. package/built-in-skills/ingest/SKILL.md +13 -45
  126. package/built-in-skills/internal-comms/SKILL.md +1 -0
  127. package/built-in-skills/liteparse/SKILL.md +130 -110
  128. package/built-in-skills/mcp-builder/SKILL.md +1 -0
  129. package/built-in-skills/mcp-builder/reference/evaluation.md +11 -2
  130. package/built-in-skills/mcp-builder/reference/node_mcp_server.md +34 -5
  131. package/built-in-skills/mcp-builder/reference/python_mcp_server.md +6 -2
  132. package/built-in-skills/mcp-builder/scripts/connections.py +1 -1
  133. package/built-in-skills/mcp-builder/scripts/evaluation.py +52 -34
  134. package/built-in-skills/mcp-builder/scripts/requirements.txt +2 -2
  135. package/built-in-skills/meeting-actions/LICENSE +21 -0
  136. package/built-in-skills/meeting-actions/NOTICE.md +21 -0
  137. package/built-in-skills/meeting-actions/SKILL.md +48 -0
  138. package/built-in-skills/memory/SKILL.md +444 -55
  139. package/built-in-skills/memory/references/llm-wiki/GUIDE.md +468 -0
  140. package/built-in-skills/memory/references/llm-wiki/LICENSE +21 -0
  141. package/built-in-skills/memory/references/llm-wiki/NOTICE.md +4 -0
  142. package/built-in-skills/memory/references/llm-wiki/scripts/lint_wiki.py +84 -0
  143. package/built-in-skills/memory/references/llm-wiki/scripts/requirements.txt +1 -0
  144. package/built-in-skills/memory/references/llm-wiki/templates/SCHEMA.md +19 -0
  145. package/built-in-skills/memory/references/llm-wiki/templates/index.md +9 -0
  146. package/built-in-skills/memory/references/llm-wiki/templates/log.md +4 -0
  147. package/built-in-skills/memory-dream/SKILL.md +332 -0
  148. package/built-in-skills/memory-import/SKILL.md +51 -0
  149. package/built-in-skills/office-artifacts/NOTICE.md +15 -0
  150. package/built-in-skills/office-artifacts/SKILL.md +37 -4
  151. package/built-in-skills/office-artifacts/references/RESOURCE-LIMITS.md +44 -0
  152. package/built-in-skills/office-artifacts/references/document-generation/GUIDE.md +105 -0
  153. package/built-in-skills/office-artifacts/references/docx/GUIDE.md +196 -0
  154. package/built-in-skills/office-artifacts/references/docx/LICENSE +21 -0
  155. package/built-in-skills/office-artifacts/references/docx/NOTICE.md +21 -0
  156. package/built-in-skills/office-artifacts/references/docx/references/revisions-and-comments.md +88 -0
  157. package/built-in-skills/office-artifacts/references/docx/scripts/docx_comments.py +292 -0
  158. package/built-in-skills/office-artifacts/references/docx/scripts/docx_common.py +93 -0
  159. package/built-in-skills/office-artifacts/references/docx/scripts/docx_create.py +177 -0
  160. package/built-in-skills/office-artifacts/references/docx/scripts/docx_edit.py +250 -0
  161. package/built-in-skills/office-artifacts/references/docx/scripts/docx_read.py +169 -0
  162. package/built-in-skills/office-artifacts/references/docx/scripts/docx_revisions.py +149 -0
  163. package/built-in-skills/office-artifacts/references/docx/scripts/docx_template.py +70 -0
  164. package/built-in-skills/office-artifacts/references/docx/scripts/docx_validate.py +155 -0
  165. package/built-in-skills/office-artifacts/references/docx/tests/test_docx_skill.py +525 -0
  166. package/built-in-skills/office-artifacts/references/pdf/GUIDE.md +125 -0
  167. package/built-in-skills/office-artifacts/references/pdf/LICENSE +21 -0
  168. package/built-in-skills/office-artifacts/references/pdf/NOTICE.md +21 -0
  169. package/built-in-skills/office-artifacts/references/pdf/references/forms.md +99 -0
  170. package/built-in-skills/office-artifacts/references/pdf/references/nano-pdf-editing.md +40 -0
  171. package/built-in-skills/office-artifacts/references/pdf/references/ocr-extraction.md +165 -0
  172. package/built-in-skills/office-artifacts/references/pdf/scripts/_raster.py +87 -0
  173. package/built-in-skills/office-artifacts/references/pdf/scripts/extract_marker.py +95 -0
  174. package/built-in-skills/office-artifacts/references/pdf/scripts/extract_pymupdf.py +107 -0
  175. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_create.py +153 -0
  176. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_fill_form.py +97 -0
  177. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_form_layout.py +168 -0
  178. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_make_form.py +145 -0
  179. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_merge.py +50 -0
  180. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_meta.py +123 -0
  181. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_page_image.py +101 -0
  182. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_read.py +153 -0
  183. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_secure.py +71 -0
  184. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_split.py +86 -0
  185. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_stamp.py +145 -0
  186. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_watermark.py +51 -0
  187. package/built-in-skills/office-artifacts/references/pdf/tests/test_pdf_skill.py +414 -0
  188. package/built-in-skills/office-artifacts/references/powerpoint/GUIDE.md +220 -0
  189. package/built-in-skills/office-artifacts/references/powerpoint/LICENSE +21 -0
  190. package/built-in-skills/office-artifacts/references/powerpoint/NOTICE.md +21 -0
  191. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_create.py +214 -0
  192. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_edit.py +442 -0
  193. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_from_template.py +88 -0
  194. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_read.py +131 -0
  195. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_render.py +104 -0
  196. package/built-in-skills/office-artifacts/references/powerpoint/tests/test_powerpoint_skill.py +478 -0
  197. package/built-in-skills/office-artifacts/references/xlsx/GUIDE.md +196 -0
  198. package/built-in-skills/office-artifacts/references/xlsx/LICENSE +21 -0
  199. package/built-in-skills/office-artifacts/references/xlsx/NOTICE.md +21 -0
  200. package/built-in-skills/office-artifacts/references/xlsx/references/restructuring.md +74 -0
  201. package/built-in-skills/office-artifacts/references/xlsx/scripts/csv_to_xlsx.py +108 -0
  202. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_create.py +259 -0
  203. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_edit.py +269 -0
  204. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_read.py +160 -0
  205. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_recalc.py +111 -0
  206. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_restructure.py +418 -0
  207. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_to_csv.py +69 -0
  208. package/built-in-skills/office-artifacts/references/xlsx/tests/test_xlsx_skill.py +542 -0
  209. package/built-in-skills/office-artifacts/tests/test_resource_regressions.py +272 -0
  210. package/built-in-skills/okr/SKILL.md +154 -0
  211. package/built-in-skills/persona/SKILL.md +81 -0
  212. package/built-in-skills/persona-generator/SKILL.md +296 -0
  213. package/built-in-skills/pkf-svg/SKILL.md +258 -0
  214. package/built-in-skills/pkf-svg/references/architecture-diagram/GUIDE.md +148 -0
  215. package/built-in-skills/pkf-svg/references/architecture-diagram/LICENSE +21 -0
  216. package/built-in-skills/pkf-svg/references/architecture-diagram/LICENSE.hermes +21 -0
  217. package/built-in-skills/pkf-svg/references/architecture-diagram/PROVENANCE.md +7 -0
  218. package/built-in-skills/pkf-svg/references/architecture-diagram/templates/template.html +345 -0
  219. package/built-in-skills/pkf-writing/SKILL.md +258 -0
  220. package/built-in-skills/prismer-airtable/LICENSE +21 -0
  221. package/built-in-skills/prismer-airtable/NOTICE.md +11 -0
  222. package/built-in-skills/prismer-airtable/SKILL.md +248 -0
  223. package/built-in-skills/prismer-airtable/scripts/airtable_client.py +76 -0
  224. package/built-in-skills/prismer-apple-notes/LICENSE +21 -0
  225. package/built-in-skills/prismer-apple-notes/NOTICE.md +17 -0
  226. package/built-in-skills/prismer-apple-notes/SKILL.md +118 -0
  227. package/built-in-skills/prismer-apple-notes/scripts/readiness.py +47 -0
  228. package/built-in-skills/prismer-apple-reminders/LICENSE +21 -0
  229. package/built-in-skills/prismer-apple-reminders/NOTICE.md +17 -0
  230. package/built-in-skills/prismer-apple-reminders/SKILL.md +155 -0
  231. package/built-in-skills/prismer-apple-reminders/scripts/readiness.py +47 -0
  232. package/built-in-skills/prismer-ascii-video/LICENSE +21 -0
  233. package/built-in-skills/prismer-ascii-video/LICENSE.hermes +21 -0
  234. package/built-in-skills/prismer-ascii-video/PROVENANCE.md +7 -0
  235. package/built-in-skills/prismer-ascii-video/README.md +290 -0
  236. package/built-in-skills/prismer-ascii-video/SKILL.md +252 -0
  237. package/built-in-skills/prismer-ascii-video/provenance/category-DESCRIPTION.md +3 -0
  238. package/built-in-skills/prismer-ascii-video/references/architecture.md +807 -0
  239. package/built-in-skills/prismer-ascii-video/references/composition.md +900 -0
  240. package/built-in-skills/prismer-ascii-video/references/effects.md +1877 -0
  241. package/built-in-skills/prismer-ascii-video/references/inputs.md +693 -0
  242. package/built-in-skills/prismer-ascii-video/references/optimization.md +688 -0
  243. package/built-in-skills/prismer-ascii-video/references/scenes.md +1018 -0
  244. package/built-in-skills/prismer-ascii-video/references/shaders.md +1408 -0
  245. package/built-in-skills/prismer-ascii-video/references/troubleshooting.md +360 -0
  246. package/built-in-skills/prismer-baoyu-infographic/LICENSE +21 -0
  247. package/built-in-skills/prismer-baoyu-infographic/LICENSE.hermes +21 -0
  248. package/built-in-skills/prismer-baoyu-infographic/LICENSE.origin +21 -0
  249. package/built-in-skills/prismer-baoyu-infographic/PORT_NOTES.md +37 -0
  250. package/built-in-skills/prismer-baoyu-infographic/PROVENANCE.md +7 -0
  251. package/built-in-skills/prismer-baoyu-infographic/SKILL.md +240 -0
  252. package/built-in-skills/prismer-baoyu-infographic/references/analysis-framework.md +182 -0
  253. package/built-in-skills/prismer-baoyu-infographic/references/base-prompt.md +43 -0
  254. package/built-in-skills/prismer-baoyu-infographic/references/layouts/bento-grid.md +41 -0
  255. package/built-in-skills/prismer-baoyu-infographic/references/layouts/binary-comparison.md +48 -0
  256. package/built-in-skills/prismer-baoyu-infographic/references/layouts/bridge.md +41 -0
  257. package/built-in-skills/prismer-baoyu-infographic/references/layouts/circular-flow.md +41 -0
  258. package/built-in-skills/prismer-baoyu-infographic/references/layouts/comic-strip.md +41 -0
  259. package/built-in-skills/prismer-baoyu-infographic/references/layouts/comparison-matrix.md +41 -0
  260. package/built-in-skills/prismer-baoyu-infographic/references/layouts/dashboard.md +41 -0
  261. package/built-in-skills/prismer-baoyu-infographic/references/layouts/dense-modules.md +72 -0
  262. package/built-in-skills/prismer-baoyu-infographic/references/layouts/funnel.md +41 -0
  263. package/built-in-skills/prismer-baoyu-infographic/references/layouts/hierarchical-layers.md +48 -0
  264. package/built-in-skills/prismer-baoyu-infographic/references/layouts/hub-spoke.md +41 -0
  265. package/built-in-skills/prismer-baoyu-infographic/references/layouts/iceberg.md +41 -0
  266. package/built-in-skills/prismer-baoyu-infographic/references/layouts/isometric-map.md +41 -0
  267. package/built-in-skills/prismer-baoyu-infographic/references/layouts/jigsaw.md +41 -0
  268. package/built-in-skills/prismer-baoyu-infographic/references/layouts/linear-progression.md +48 -0
  269. package/built-in-skills/prismer-baoyu-infographic/references/layouts/periodic-table.md +41 -0
  270. package/built-in-skills/prismer-baoyu-infographic/references/layouts/story-mountain.md +41 -0
  271. package/built-in-skills/prismer-baoyu-infographic/references/layouts/structural-breakdown.md +48 -0
  272. package/built-in-skills/prismer-baoyu-infographic/references/layouts/tree-branching.md +41 -0
  273. package/built-in-skills/prismer-baoyu-infographic/references/layouts/venn-diagram.md +41 -0
  274. package/built-in-skills/prismer-baoyu-infographic/references/layouts/winding-roadmap.md +41 -0
  275. package/built-in-skills/prismer-baoyu-infographic/references/structured-content-template.md +244 -0
  276. package/built-in-skills/prismer-baoyu-infographic/references/styles/aged-academia.md +36 -0
  277. package/built-in-skills/prismer-baoyu-infographic/references/styles/bold-graphic.md +36 -0
  278. package/built-in-skills/prismer-baoyu-infographic/references/styles/chalkboard.md +61 -0
  279. package/built-in-skills/prismer-baoyu-infographic/references/styles/claymation.md +29 -0
  280. package/built-in-skills/prismer-baoyu-infographic/references/styles/corporate-memphis.md +29 -0
  281. package/built-in-skills/prismer-baoyu-infographic/references/styles/craft-handmade.md +44 -0
  282. package/built-in-skills/prismer-baoyu-infographic/references/styles/cyberpunk-neon.md +29 -0
  283. package/built-in-skills/prismer-baoyu-infographic/references/styles/hand-drawn-edu.md +63 -0
  284. package/built-in-skills/prismer-baoyu-infographic/references/styles/ikea-manual.md +29 -0
  285. package/built-in-skills/prismer-baoyu-infographic/references/styles/kawaii.md +29 -0
  286. package/built-in-skills/prismer-baoyu-infographic/references/styles/knolling.md +29 -0
  287. package/built-in-skills/prismer-baoyu-infographic/references/styles/lego-brick.md +29 -0
  288. package/built-in-skills/prismer-baoyu-infographic/references/styles/morandi-journal.md +60 -0
  289. package/built-in-skills/prismer-baoyu-infographic/references/styles/origami.md +29 -0
  290. package/built-in-skills/prismer-baoyu-infographic/references/styles/pixel-art.md +29 -0
  291. package/built-in-skills/prismer-baoyu-infographic/references/styles/pop-laboratory.md +48 -0
  292. package/built-in-skills/prismer-baoyu-infographic/references/styles/retro-pop-grid.md +47 -0
  293. package/built-in-skills/prismer-baoyu-infographic/references/styles/storybook-watercolor.md +29 -0
  294. package/built-in-skills/prismer-baoyu-infographic/references/styles/subway-map.md +29 -0
  295. package/built-in-skills/prismer-baoyu-infographic/references/styles/technical-schematic.md +36 -0
  296. package/built-in-skills/prismer-baoyu-infographic/references/styles/ui-wireframe.md +29 -0
  297. package/built-in-skills/prismer-blocked-page-recovery/LICENSE +21 -0
  298. package/built-in-skills/prismer-blocked-page-recovery/NOTICE.md +17 -0
  299. package/built-in-skills/prismer-blocked-page-recovery/SKILL.md +158 -0
  300. package/built-in-skills/prismer-blocked-page-recovery/scripts/recover_page.py +311 -0
  301. package/built-in-skills/prismer-box/LICENSE +21 -0
  302. package/built-in-skills/prismer-box/NOTICE.md +11 -0
  303. package/built-in-skills/prismer-box/SKILL.md +147 -0
  304. package/built-in-skills/prismer-box/references/bulk-operations.md +43 -0
  305. package/built-in-skills/prismer-box/references/cli-guide.md +133 -0
  306. package/built-in-skills/prismer-box/references/content-workflows.md +86 -0
  307. package/built-in-skills/prismer-box/references/hubs.md +77 -0
  308. package/built-in-skills/prismer-box/references/oauth-setup.md +92 -0
  309. package/built-in-skills/prismer-box/references/rest-api.md +37 -0
  310. package/built-in-skills/prismer-box/references/sdk-development.md +85 -0
  311. package/built-in-skills/prismer-box/references/search-and-ai.md +147 -0
  312. package/built-in-skills/prismer-box/references/troubleshooting.md +33 -0
  313. package/built-in-skills/prismer-box/references/webhooks-and-events.md +43 -0
  314. package/built-in-skills/prismer-codebase-inspection/LICENSE +21 -0
  315. package/built-in-skills/prismer-codebase-inspection/NOTICE.md +17 -0
  316. package/built-in-skills/prismer-codebase-inspection/SKILL.md +141 -0
  317. package/built-in-skills/prismer-computer-use/LICENSE +21 -0
  318. package/built-in-skills/prismer-computer-use/NOTICE.md +17 -0
  319. package/built-in-skills/prismer-computer-use/SKILL.md +372 -0
  320. package/built-in-skills/prismer-design-md/LICENSE +21 -0
  321. package/built-in-skills/prismer-design-md/LICENSE.hermes +21 -0
  322. package/built-in-skills/prismer-design-md/PROVENANCE.md +7 -0
  323. package/built-in-skills/prismer-design-md/SKILL.md +227 -0
  324. package/built-in-skills/prismer-design-md/templates/starter.md +99 -0
  325. package/built-in-skills/prismer-email-inbox-triage/LICENSE +21 -0
  326. package/built-in-skills/prismer-email-inbox-triage/NOTICE.md +11 -0
  327. package/built-in-skills/prismer-email-inbox-triage/SKILL.md +116 -0
  328. package/built-in-skills/prismer-findmy/LICENSE +21 -0
  329. package/built-in-skills/prismer-findmy/NOTICE.md +17 -0
  330. package/built-in-skills/prismer-findmy/SKILL.md +150 -0
  331. package/built-in-skills/prismer-findmy/scripts/readiness.py +47 -0
  332. package/built-in-skills/prismer-gif-search/LICENSE +21 -0
  333. package/built-in-skills/prismer-gif-search/LICENSE.hermes +21 -0
  334. package/built-in-skills/prismer-gif-search/PROVENANCE.md +7 -0
  335. package/built-in-skills/prismer-gif-search/SKILL.md +97 -0
  336. package/built-in-skills/prismer-gif-search/scripts/tenor.py +81 -0
  337. package/built-in-skills/prismer-github/LICENSE +21 -0
  338. package/built-in-skills/prismer-github/NOTICE.md +17 -0
  339. package/built-in-skills/prismer-github/SKILL.md +74 -0
  340. package/built-in-skills/prismer-github/references/auth.md +91 -0
  341. package/built-in-skills/prismer-github/references/ci-troubleshooting.md +193 -0
  342. package/built-in-skills/prismer-github/references/code-review.md +465 -0
  343. package/built-in-skills/prismer-github/references/conventional-commits.md +81 -0
  344. package/built-in-skills/prismer-github/references/github-api-cheatsheet.md +177 -0
  345. package/built-in-skills/prismer-github/references/issue-to-pr.md +74 -0
  346. package/built-in-skills/prismer-github/references/issues.md +336 -0
  347. package/built-in-skills/prismer-github/references/pr-workflow.md +346 -0
  348. package/built-in-skills/prismer-github/references/repo-management.md +484 -0
  349. package/built-in-skills/prismer-github/references/review-output-template.md +84 -0
  350. package/built-in-skills/prismer-github/scripts/ensure-gh.py +132 -0
  351. package/built-in-skills/prismer-github/scripts/gh-env.sh +25 -0
  352. package/built-in-skills/prismer-github/scripts/git-credential-token.py +68 -0
  353. package/built-in-skills/prismer-github/scripts/github-api.py +71 -0
  354. package/built-in-skills/prismer-github/scripts/github-context.py +28 -0
  355. package/built-in-skills/prismer-github/templates/bug-report.md +35 -0
  356. package/built-in-skills/prismer-github/templates/feature-request.md +31 -0
  357. package/built-in-skills/prismer-github/templates/pr-body-bugfix.md +35 -0
  358. package/built-in-skills/prismer-github/templates/pr-body-feature.md +33 -0
  359. package/built-in-skills/prismer-google-workspace/LICENSE +21 -0
  360. package/built-in-skills/prismer-google-workspace/NOTICE.md +11 -0
  361. package/built-in-skills/prismer-google-workspace/SKILL.md +369 -0
  362. package/built-in-skills/prismer-google-workspace/references/daily-brief.md +65 -0
  363. package/built-in-skills/prismer-google-workspace/references/gmail-search-syntax.md +63 -0
  364. package/built-in-skills/prismer-google-workspace/scripts/_hermes_home.py +17 -0
  365. package/built-in-skills/prismer-google-workspace/scripts/_private_state.py +39 -0
  366. package/built-in-skills/prismer-google-workspace/scripts/google_api.py +1339 -0
  367. package/built-in-skills/prismer-google-workspace/scripts/gws_bridge.py +121 -0
  368. package/built-in-skills/prismer-google-workspace/scripts/setup.py +563 -0
  369. package/built-in-skills/prismer-google-workspace/tests/test_productivity_regressions.py +214 -0
  370. package/built-in-skills/prismer-hermes-agent/LICENSE +21 -0
  371. package/built-in-skills/prismer-hermes-agent/NOTICE.md +17 -0
  372. package/built-in-skills/prismer-hermes-agent/SKILL.md +247 -0
  373. package/built-in-skills/prismer-hermes-agent/references/background-systems.md +108 -0
  374. package/built-in-skills/prismer-hermes-agent/references/cli-reference.md +158 -0
  375. package/built-in-skills/prismer-hermes-agent/references/configuration.md +96 -0
  376. package/built-in-skills/prismer-hermes-agent/references/contributor-guide.md +151 -0
  377. package/built-in-skills/prismer-hermes-agent/references/delegate-task-concurrency-diagnosis.md +47 -0
  378. package/built-in-skills/prismer-hermes-agent/references/desktop-plugins.md +215 -0
  379. package/built-in-skills/prismer-hermes-agent/references/native-mcp.md +351 -0
  380. package/built-in-skills/prismer-hermes-agent/references/petdex.md +82 -0
  381. package/built-in-skills/prismer-hermes-agent/references/portal-auth-for-third-party-apps.md +135 -0
  382. package/built-in-skills/prismer-hermes-agent/references/project-context-files.md +55 -0
  383. package/built-in-skills/prismer-hermes-agent/references/providers-and-models.md +81 -0
  384. package/built-in-skills/prismer-hermes-agent/references/security-privacy.md +73 -0
  385. package/built-in-skills/prismer-hermes-agent/references/slash-commands.md +119 -0
  386. package/built-in-skills/prismer-hermes-agent/references/themes.md +134 -0
  387. package/built-in-skills/prismer-hermes-agent/references/troubleshooting.md +87 -0
  388. package/built-in-skills/prismer-hermes-agent/references/tui-widgets.md +144 -0
  389. package/built-in-skills/prismer-hermes-agent/references/webhooks.md +219 -0
  390. package/built-in-skills/prismer-hermes-agent/references/windows-quirks.md +64 -0
  391. package/built-in-skills/prismer-hermes-agent/templates/clock.mjs +51 -0
  392. package/built-in-skills/prismer-hermes-agent/templates/plugin.js +97 -0
  393. package/built-in-skills/prismer-hermes-agent/templates/skin.yaml +49 -0
  394. package/built-in-skills/prismer-himalaya/LICENSE +21 -0
  395. package/built-in-skills/prismer-himalaya/NOTICE.md +11 -0
  396. package/built-in-skills/prismer-himalaya/SKILL.md +340 -0
  397. package/built-in-skills/prismer-himalaya/references/configuration.md +227 -0
  398. package/built-in-skills/prismer-himalaya/references/message-composition.md +206 -0
  399. package/built-in-skills/prismer-himalaya/scripts/compose_draft.py +48 -0
  400. package/built-in-skills/prismer-im-collab/SKILL.md +27 -7
  401. package/built-in-skills/prismer-imessage/LICENSE +21 -0
  402. package/built-in-skills/prismer-imessage/NOTICE.md +17 -0
  403. package/built-in-skills/prismer-imessage/SKILL.md +128 -0
  404. package/built-in-skills/prismer-imessage/scripts/readiness.py +47 -0
  405. package/built-in-skills/prismer-manim-video/LICENSE +21 -0
  406. package/built-in-skills/prismer-manim-video/LICENSE.hermes +21 -0
  407. package/built-in-skills/prismer-manim-video/PROVENANCE.md +7 -0
  408. package/built-in-skills/prismer-manim-video/README.md +23 -0
  409. package/built-in-skills/prismer-manim-video/SKILL.md +279 -0
  410. package/built-in-skills/prismer-manim-video/references/animation-design-thinking.md +161 -0
  411. package/built-in-skills/prismer-manim-video/references/animations.md +282 -0
  412. package/built-in-skills/prismer-manim-video/references/camera-and-3d.md +135 -0
  413. package/built-in-skills/prismer-manim-video/references/decorations.md +202 -0
  414. package/built-in-skills/prismer-manim-video/references/equations.md +216 -0
  415. package/built-in-skills/prismer-manim-video/references/graphs-and-data.md +163 -0
  416. package/built-in-skills/prismer-manim-video/references/mobjects.md +333 -0
  417. package/built-in-skills/prismer-manim-video/references/paper-explainer.md +255 -0
  418. package/built-in-skills/prismer-manim-video/references/production-quality.md +190 -0
  419. package/built-in-skills/prismer-manim-video/references/rendering.md +187 -0
  420. package/built-in-skills/prismer-manim-video/references/scene-planning.md +118 -0
  421. package/built-in-skills/prismer-manim-video/references/troubleshooting.md +135 -0
  422. package/built-in-skills/prismer-manim-video/references/updaters-and-trackers.md +260 -0
  423. package/built-in-skills/prismer-manim-video/references/visual-design.md +124 -0
  424. package/built-in-skills/prismer-manim-video/scripts/setup.sh +15 -0
  425. package/built-in-skills/prismer-maps/LICENSE +21 -0
  426. package/built-in-skills/prismer-maps/NOTICE.md +11 -0
  427. package/built-in-skills/prismer-maps/SKILL.md +240 -0
  428. package/built-in-skills/prismer-maps/scripts/maps_client.py +1324 -0
  429. package/built-in-skills/prismer-node-inspect-debugger/LICENSE +21 -0
  430. package/built-in-skills/prismer-node-inspect-debugger/NOTICE.md +17 -0
  431. package/built-in-skills/prismer-node-inspect-debugger/SKILL.md +347 -0
  432. package/built-in-skills/prismer-notion/LICENSE +21 -0
  433. package/built-in-skills/prismer-notion/NOTICE.md +11 -0
  434. package/built-in-skills/prismer-notion/SKILL.md +495 -0
  435. package/built-in-skills/prismer-notion/references/block-types.md +112 -0
  436. package/built-in-skills/prismer-obsidian/LICENSE +21 -0
  437. package/built-in-skills/prismer-obsidian/LICENSE.hermes +21 -0
  438. package/built-in-skills/prismer-obsidian/PROVENANCE.md +7 -0
  439. package/built-in-skills/prismer-obsidian/SKILL.md +80 -0
  440. package/built-in-skills/prismer-obsidian/provenance/category-DESCRIPTION.md +3 -0
  441. package/built-in-skills/prismer-obsidian/scripts/write_note.py +84 -0
  442. package/built-in-skills/prismer-p5js/LICENSE +21 -0
  443. package/built-in-skills/prismer-p5js/LICENSE.hermes +21 -0
  444. package/built-in-skills/prismer-p5js/PROVENANCE.md +7 -0
  445. package/built-in-skills/prismer-p5js/README.md +64 -0
  446. package/built-in-skills/prismer-p5js/SKILL.md +574 -0
  447. package/built-in-skills/prismer-p5js/references/animation.md +439 -0
  448. package/built-in-skills/prismer-p5js/references/color-systems.md +355 -0
  449. package/built-in-skills/prismer-p5js/references/core-api.md +410 -0
  450. package/built-in-skills/prismer-p5js/references/export-pipeline.md +534 -0
  451. package/built-in-skills/prismer-p5js/references/interaction.md +398 -0
  452. package/built-in-skills/prismer-p5js/references/shapes-and-geometry.md +300 -0
  453. package/built-in-skills/prismer-p5js/references/troubleshooting.md +532 -0
  454. package/built-in-skills/prismer-p5js/references/typography.md +302 -0
  455. package/built-in-skills/prismer-p5js/references/visual-effects.md +905 -0
  456. package/built-in-skills/prismer-p5js/references/webgl-and-3d.md +423 -0
  457. package/built-in-skills/prismer-p5js/scripts/export-frames.js +91 -0
  458. package/built-in-skills/prismer-p5js/scripts/render.sh +113 -0
  459. package/built-in-skills/prismer-p5js/scripts/serve.sh +25 -0
  460. package/built-in-skills/prismer-p5js/scripts/setup.sh +87 -0
  461. package/built-in-skills/prismer-p5js/templates/viewer.html +401 -0
  462. package/built-in-skills/prismer-popular-web-designs/LICENSE +21 -0
  463. package/built-in-skills/prismer-popular-web-designs/LICENSE.hermes +21 -0
  464. package/built-in-skills/prismer-popular-web-designs/LICENSE.origin +21 -0
  465. package/built-in-skills/prismer-popular-web-designs/PROVENANCE.md +7 -0
  466. package/built-in-skills/prismer-popular-web-designs/SKILL.md +218 -0
  467. package/built-in-skills/prismer-popular-web-designs/templates/airbnb.md +259 -0
  468. package/built-in-skills/prismer-popular-web-designs/templates/airtable.md +102 -0
  469. package/built-in-skills/prismer-popular-web-designs/templates/apple.md +326 -0
  470. package/built-in-skills/prismer-popular-web-designs/templates/bmw.md +193 -0
  471. package/built-in-skills/prismer-popular-web-designs/templates/cal.md +272 -0
  472. package/built-in-skills/prismer-popular-web-designs/templates/claude.md +325 -0
  473. package/built-in-skills/prismer-popular-web-designs/templates/clay.md +317 -0
  474. package/built-in-skills/prismer-popular-web-designs/templates/clickhouse.md +294 -0
  475. package/built-in-skills/prismer-popular-web-designs/templates/cohere.md +279 -0
  476. package/built-in-skills/prismer-popular-web-designs/templates/coinbase.md +142 -0
  477. package/built-in-skills/prismer-popular-web-designs/templates/composio.md +320 -0
  478. package/built-in-skills/prismer-popular-web-designs/templates/cursor.md +322 -0
  479. package/built-in-skills/prismer-popular-web-designs/templates/elevenlabs.md +278 -0
  480. package/built-in-skills/prismer-popular-web-designs/templates/expo.md +294 -0
  481. package/built-in-skills/prismer-popular-web-designs/templates/figma.md +233 -0
  482. package/built-in-skills/prismer-popular-web-designs/templates/framer.md +259 -0
  483. package/built-in-skills/prismer-popular-web-designs/templates/hashicorp.md +291 -0
  484. package/built-in-skills/prismer-popular-web-designs/templates/ibm.md +345 -0
  485. package/built-in-skills/prismer-popular-web-designs/templates/intercom.md +159 -0
  486. package/built-in-skills/prismer-popular-web-designs/templates/kraken.md +138 -0
  487. package/built-in-skills/prismer-popular-web-designs/templates/linear.app.md +380 -0
  488. package/built-in-skills/prismer-popular-web-designs/templates/lovable.md +311 -0
  489. package/built-in-skills/prismer-popular-web-designs/templates/minimax.md +270 -0
  490. package/built-in-skills/prismer-popular-web-designs/templates/mintlify.md +339 -0
  491. package/built-in-skills/prismer-popular-web-designs/templates/miro.md +121 -0
  492. package/built-in-skills/prismer-popular-web-designs/templates/mistral.ai.md +274 -0
  493. package/built-in-skills/prismer-popular-web-designs/templates/mongodb.md +279 -0
  494. package/built-in-skills/prismer-popular-web-designs/templates/notion.md +322 -0
  495. package/built-in-skills/prismer-popular-web-designs/templates/nvidia.md +306 -0
  496. package/built-in-skills/prismer-popular-web-designs/templates/ollama.md +280 -0
  497. package/built-in-skills/prismer-popular-web-designs/templates/opencode.ai.md +294 -0
  498. package/built-in-skills/prismer-popular-web-designs/templates/pinterest.md +243 -0
  499. package/built-in-skills/prismer-popular-web-designs/templates/posthog.md +269 -0
  500. package/built-in-skills/prismer-popular-web-designs/templates/raycast.md +281 -0
  501. package/built-in-skills/prismer-popular-web-designs/templates/replicate.md +274 -0
  502. package/built-in-skills/prismer-popular-web-designs/templates/resend.md +316 -0
  503. package/built-in-skills/prismer-popular-web-designs/templates/revolut.md +198 -0
  504. package/built-in-skills/prismer-popular-web-designs/templates/runwayml.md +257 -0
  505. package/built-in-skills/prismer-popular-web-designs/templates/sanity.md +370 -0
  506. package/built-in-skills/prismer-popular-web-designs/templates/sentry.md +275 -0
  507. package/built-in-skills/prismer-popular-web-designs/templates/spacex.md +207 -0
  508. package/built-in-skills/prismer-popular-web-designs/templates/spotify.md +259 -0
  509. package/built-in-skills/prismer-popular-web-designs/templates/stripe.md +335 -0
  510. package/built-in-skills/prismer-popular-web-designs/templates/supabase.md +268 -0
  511. package/built-in-skills/prismer-popular-web-designs/templates/superhuman.md +265 -0
  512. package/built-in-skills/prismer-popular-web-designs/templates/together.ai.md +276 -0
  513. package/built-in-skills/prismer-popular-web-designs/templates/uber.md +308 -0
  514. package/built-in-skills/prismer-popular-web-designs/templates/vercel.md +323 -0
  515. package/built-in-skills/prismer-popular-web-designs/templates/voltagent.md +336 -0
  516. package/built-in-skills/prismer-popular-web-designs/templates/warp.md +266 -0
  517. package/built-in-skills/prismer-popular-web-designs/templates/webflow.md +105 -0
  518. package/built-in-skills/prismer-popular-web-designs/templates/wise.md +186 -0
  519. package/built-in-skills/prismer-popular-web-designs/templates/x.ai.md +270 -0
  520. package/built-in-skills/prismer-popular-web-designs/templates/zapier.md +341 -0
  521. package/built-in-skills/prismer-product-price-monitor/LICENSE +21 -0
  522. package/built-in-skills/prismer-product-price-monitor/NOTICE.md +11 -0
  523. package/built-in-skills/prismer-product-price-monitor/SKILL.md +97 -0
  524. package/built-in-skills/prismer-product-price-monitor/scripts/watch_state.py +116 -0
  525. package/built-in-skills/prismer-python-debugpy/LICENSE +21 -0
  526. package/built-in-skills/prismer-python-debugpy/NOTICE.md +17 -0
  527. package/built-in-skills/prismer-python-debugpy/SKILL.md +377 -0
  528. package/built-in-skills/prismer-python-debugpy/scripts/dap_client.py +68 -0
  529. package/built-in-skills/prismer-songsee/LICENSE +21 -0
  530. package/built-in-skills/prismer-songsee/LICENSE.hermes +21 -0
  531. package/built-in-skills/prismer-songsee/PROVENANCE.md +7 -0
  532. package/built-in-skills/prismer-songsee/SKILL.md +91 -0
  533. package/built-in-skills/prismer-songwriting-and-ai-music/LICENSE +21 -0
  534. package/built-in-skills/prismer-songwriting-and-ai-music/LICENSE.hermes +21 -0
  535. package/built-in-skills/prismer-songwriting-and-ai-music/PROVENANCE.md +7 -0
  536. package/built-in-skills/prismer-songwriting-and-ai-music/SKILL.md +317 -0
  537. package/built-in-skills/prismer-spike/LICENSE +21 -0
  538. package/built-in-skills/prismer-spike/LICENSE.gsd +21 -0
  539. package/built-in-skills/prismer-spike/NOTICE.md +17 -0
  540. package/built-in-skills/prismer-spike/SKILL.md +212 -0
  541. package/built-in-skills/prismer-teams-meeting-pipeline/LICENSE +21 -0
  542. package/built-in-skills/prismer-teams-meeting-pipeline/NOTICE.md +11 -0
  543. package/built-in-skills/prismer-teams-meeting-pipeline/SKILL.md +156 -0
  544. package/built-in-skills/prismer-xurl/LICENSE +21 -0
  545. package/built-in-skills/prismer-xurl/LICENSE.hermes +21 -0
  546. package/built-in-skills/prismer-xurl/PROVENANCE.md +7 -0
  547. package/built-in-skills/prismer-xurl/SKILL.md +444 -0
  548. package/built-in-skills/prismer-xurl/provenance/category-DESCRIPTION.md +3 -0
  549. package/built-in-skills/prismer-youtube-content/LICENSE +21 -0
  550. package/built-in-skills/prismer-youtube-content/LICENSE.hermes +21 -0
  551. package/built-in-skills/prismer-youtube-content/PROVENANCE.md +7 -0
  552. package/built-in-skills/prismer-youtube-content/SKILL.md +86 -0
  553. package/built-in-skills/prismer-youtube-content/provenance/category-DESCRIPTION.md +3 -0
  554. package/built-in-skills/prismer-youtube-content/references/output-formats.md +56 -0
  555. package/built-in-skills/prismer-youtube-content/scripts/fetch_transcript.py +146 -0
  556. package/built-in-skills/proactivity/SKILL.md +84 -0
  557. package/built-in-skills/remotion/SKILL.md +431 -0
  558. package/built-in-skills/research-arxiv/LICENSE +21 -0
  559. package/built-in-skills/research-arxiv/NOTICE.md +4 -0
  560. package/built-in-skills/research-arxiv/SKILL.md +263 -0
  561. package/built-in-skills/research-arxiv/scripts/search_arxiv.py +111 -0
  562. package/built-in-skills/role-builder/SKILL.md +209 -0
  563. package/built-in-skills/role-builder/scripts/author-role.mjs +350 -0
  564. package/built-in-skills/role-builder/scripts/ingest-role.mjs +121 -0
  565. package/built-in-skills/role-builder/scripts/instantiate-and-run.mjs +304 -0
  566. package/built-in-skills/role-builder/scripts/operation-harness.mjs +269 -0
  567. package/built-in-skills/skill-creator/LICENSE.prismer +21 -0
  568. package/built-in-skills/skill-creator/NOTICE.md +18 -0
  569. package/built-in-skills/skill-creator/SKILL.md +182 -421
  570. package/built-in-skills/skill-creator/eval-viewer/generate_review.py +20 -31
  571. package/built-in-skills/skill-creator/eval-viewer/viewer.html +35 -23
  572. package/built-in-skills/skill-creator/references/external-library-import.md +110 -0
  573. package/built-in-skills/skill-creator/references/hermes-agent-skill-authoring/GUIDE.md +220 -0
  574. package/built-in-skills/skill-creator/references/hermes-agent-skill-authoring/LICENSE +21 -0
  575. package/built-in-skills/skill-creator/references/skill-authoring/GUIDE.md +134 -0
  576. package/built-in-skills/{skill-authoring/skill.json → skill-creator/references/skill-authoring/draft-contract.json} +3 -3
  577. package/built-in-skills/skill-creator/references/skill-builder/GUIDE.md +167 -0
  578. package/built-in-skills/skill-creator/references/skill-builder/scripts/ingest.mjs +93 -0
  579. package/built-in-skills/skill-creator/scripts/aggregate_benchmark.py +3 -2
  580. package/built-in-skills/skill-creator/scripts/import-library.mjs +498 -0
  581. package/built-in-skills/skill-creator/scripts/improve_description.py +14 -16
  582. package/built-in-skills/skill-creator/scripts/package_skill.py +16 -9
  583. package/built-in-skills/skill-creator/scripts/quick_validate.py +22 -5
  584. package/built-in-skills/skill-creator/scripts/run_eval.py +63 -144
  585. package/built-in-skills/skill-creator/scripts/run_loop.py +24 -16
  586. package/built-in-skills/slack-gif-creator/SKILL.md +20 -0
  587. package/built-in-skills/slack-gif-creator/core/gif_builder.py +13 -2
  588. package/built-in-skills/slack-gif-creator/core/validators.py +17 -7
  589. package/built-in-skills/tasks/SKILL.md +39 -24
  590. package/built-in-skills/tdd/LICENSE +21 -0
  591. package/built-in-skills/tdd/SKILL.md +117 -0
  592. package/built-in-skills/tdd/mocking.md +59 -0
  593. package/built-in-skills/tdd/refactoring.md +10 -0
  594. package/built-in-skills/tdd/references/test-driven-development/GUIDE.md +356 -0
  595. package/built-in-skills/tdd/references/test-driven-development/LICENSE +21 -0
  596. package/built-in-skills/tdd/references/test-driven-development/LICENSE.superpowers +21 -0
  597. package/built-in-skills/tdd/references/test-driven-development/NOTICE.md +37 -0
  598. package/built-in-skills/tdd/tests.md +61 -0
  599. package/built-in-skills/team/SKILL.md +3 -2
  600. package/built-in-skills/web-artifacts-builder/SKILL.md +4 -3
  601. package/built-in-skills/web-artifacts-builder/scripts/bundle-artifact.sh +9 -7
  602. package/built-in-skills/web-artifacts-builder/scripts/init-artifact.sh +28 -55
  603. package/built-in-skills/webapp-qa/LICENSE +21 -0
  604. package/built-in-skills/webapp-qa/NOTICE.md +37 -0
  605. package/built-in-skills/webapp-qa/SKILL.md +41 -0
  606. package/built-in-skills/webapp-qa/references/dogfood/GUIDE.md +161 -0
  607. package/built-in-skills/webapp-qa/references/issue-taxonomy.md +109 -0
  608. package/built-in-skills/webapp-qa/templates/dogfood-report-template.md +86 -0
  609. package/built-in-skills/webapp-testing/SKILL.md +10 -2
  610. package/built-in-skills/webapp-testing/examples/console_logging.py +10 -4
  611. package/built-in-skills/webapp-testing/examples/element_discovery.py +11 -4
  612. package/built-in-skills/webapp-testing/examples/static_html_automation.py +14 -9
  613. package/built-in-skills/webapp-testing/scripts/with_server.py +34 -10
  614. package/built-in-skills/wechat-pay/SKILL.md +59 -0
  615. package/built-in-skills/weekly-review/LICENSE +21 -0
  616. package/built-in-skills/weekly-review/NOTICE.md +21 -0
  617. package/built-in-skills/weekly-review/SKILL.md +49 -0
  618. package/components/eaas-pi-components.manifest.json +37 -0
  619. package/dist/cli.cjs +75799 -20210
  620. package/dist/cli.js +75900 -20248
  621. package/dist/index.cjs +76159 -20082
  622. package/dist/index.d.cts +4766 -766
  623. package/dist/index.d.ts +4766 -766
  624. package/dist/index.js +76040 -19960
  625. package/package.json +42 -6
  626. package/plugins/memory/prismer/__init__.py +1215 -0
  627. package/plugins/memory/prismer/plugin.yaml +8 -0
  628. package/plugins/memory/prismer/tool-schemas.generated.json +257 -0
  629. package/plugins/tools/prismer-recall/__init__.py +282 -0
  630. package/plugins/tools/prismer-recall/plugin.yaml +15 -0
  631. package/built-in-skills/memory-curation/SKILL.md +0 -135
  632. package/built-in-skills/skill-authoring/SKILL.md +0 -124
  633. package/built-in-skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
@@ -0,0 +1,484 @@
1
+ # GitHub Repository Management
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
+ Create, clone, fork, configure, and manage GitHub repositories. Each section shows `gh` first, then the `git` + `curl` fallback.
14
+
15
+ ## Prerequisites
16
+
17
+ Repository creation defaults below are private. Public publication needs explicit
18
+ intent. A secret gist is unlisted, not access-controlled; never put secrets in it.
19
+
20
+ - Authenticated with GitHub (see `auth.md` reference)
21
+
22
+ ### Setup
23
+
24
+ ```bash
25
+ # Resolve SKILL_ROOT from the installed prismer-github entry, not cwd.
26
+ source "$SKILL_ROOT/scripts/gh-env.sh"
27
+ AUTH="$GH_AUTH_METHOD"
28
+ OWNER="$GH_OWNER"
29
+ REPO="$GH_REPO"
30
+ OWNER_REPO="$GH_OWNER_REPO"
31
+ # token-unverified needs a successful API identity check before remote work.
32
+ ```
33
+
34
+ If you're inside a repo already:
35
+
36
+ ```bash
37
+ source "$SKILL_ROOT/scripts/gh-env.sh"
38
+ OWNER="$GH_OWNER"; REPO="$GH_REPO"
39
+ ```
40
+
41
+ ---
42
+
43
+ ## 1. Cloning Repositories
44
+
45
+ Cloning is pure `git` — works identically either way:
46
+
47
+ ```bash
48
+ # Clone via HTTPS (works with credential helper or token-embedded URL)
49
+ git clone https://github.com/owner/repo-name.git
50
+
51
+ # Clone into a specific directory
52
+ git clone https://github.com/owner/repo-name.git ./my-local-dir
53
+
54
+ # Shallow clone (faster for large repos)
55
+ git clone --depth 1 https://github.com/owner/repo-name.git
56
+
57
+ # Clone a specific branch
58
+ git clone --branch develop https://github.com/owner/repo-name.git
59
+
60
+ # Clone via SSH (if SSH is configured)
61
+ git clone git@github.com:owner/repo-name.git
62
+ ```
63
+
64
+ **With gh (shorthand):**
65
+
66
+ ```bash
67
+ gh repo clone owner/repo-name
68
+ gh repo clone owner/repo-name -- --depth 1
69
+ ```
70
+
71
+ ## 2. Creating Repositories
72
+
73
+ **With gh:**
74
+
75
+ ```bash
76
+ # Create a public repo and clone it
77
+ gh repo create my-new-project --private --clone
78
+
79
+ # Private, with description and license
80
+ gh repo create my-new-project --private --description "A useful tool" --license MIT --clone
81
+
82
+ # Under an organization
83
+ gh repo create my-org/my-new-project --private --clone
84
+
85
+ # From existing local directory
86
+ cd /path/to/existing/project
87
+ gh repo create my-project --source . --private --push
88
+ ```
89
+
90
+ **With git + curl:**
91
+
92
+ ```bash
93
+ # Create the remote repo via API
94
+ curl --fail-with-body -sS --max-time 30 -X POST \
95
+ -H "Authorization: token $GITHUB_TOKEN" \
96
+ https://api.github.com/user/repos \
97
+ -d '{
98
+ "name": "my-new-project",
99
+ "description": "A useful tool",
100
+ "private": true,
101
+ "auto_init": true,
102
+ "license_template": "mit"
103
+ }'
104
+
105
+ # Clone it
106
+ git clone https://github.com/$GH_USER/my-new-project.git
107
+ cd my-new-project
108
+
109
+ # -- OR -- push an existing local directory to the new repo
110
+ cd /path/to/existing/project
111
+ git init
112
+ git add -- <explicit-task-owned-files>
113
+ git commit -m "Initial commit"
114
+ git remote add origin https://github.com/$GH_USER/my-new-project.git
115
+ git push -u origin main
116
+ ```
117
+
118
+ To create under an organization:
119
+
120
+ ```bash
121
+ curl --fail-with-body -sS --max-time 30 -X POST \
122
+ -H "Authorization: token $GITHUB_TOKEN" \
123
+ https://api.github.com/orgs/my-org/repos \
124
+ -d '{"name": "my-new-project", "private": true}'
125
+ ```
126
+
127
+ ### From a Template
128
+
129
+ **With gh:**
130
+
131
+ ```bash
132
+ gh repo create my-new-app --template owner/template-repo --private --clone
133
+ ```
134
+
135
+ **With curl:**
136
+
137
+ ```bash
138
+ curl --fail-with-body -sS --max-time 30 -X POST \
139
+ -H "Authorization: token $GITHUB_TOKEN" \
140
+ https://api.github.com/repos/owner/template-repo/generate \
141
+ -d '{"owner": "'"$GH_USER"'", "name": "my-new-app", "private": true}'
142
+ ```
143
+
144
+ ## 3. Forking Repositories
145
+
146
+ **With gh:**
147
+
148
+ ```bash
149
+ gh repo fork owner/repo-name --clone
150
+ ```
151
+
152
+ **With git + curl:**
153
+
154
+ ```bash
155
+ # Create the fork via API
156
+ curl --fail-with-body -sS --max-time 30 -X POST \
157
+ -H "Authorization: token $GITHUB_TOKEN" \
158
+ https://api.github.com/repos/owner/repo-name/forks
159
+
160
+ # Wait a moment for GitHub to create it, then clone
161
+ sleep 3
162
+ git clone https://github.com/$GH_USER/repo-name.git
163
+ cd repo-name
164
+
165
+ # Add the original repo as "upstream" remote
166
+ git remote add upstream https://github.com/owner/repo-name.git
167
+ ```
168
+
169
+ ### Keeping a Fork in Sync
170
+
171
+ ```bash
172
+ # Pure git — works everywhere
173
+ git fetch upstream
174
+ # Return to the recorded original branch only when the worktree permits; do not auto-switch.
175
+ git merge upstream/main
176
+ git push origin main
177
+ ```
178
+
179
+ **With gh (shortcut):**
180
+
181
+ ```bash
182
+ gh repo sync $GH_USER/repo-name
183
+ ```
184
+
185
+ ## 4. Repository Information
186
+
187
+ **With gh:**
188
+
189
+ ```bash
190
+ gh repo view owner/repo-name
191
+ gh repo list --limit 20
192
+ gh search repos "machine learning" --language python --sort stars
193
+ ```
194
+
195
+ **With curl:**
196
+
197
+ ```bash
198
+ # View repo details
199
+ python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO \
200
+ | python -c "
201
+ import sys, json
202
+ r = json.load(sys.stdin)
203
+ print(f\"Name: {r['full_name']}\")
204
+ print(f\"Description: {r['description']}\")
205
+ print(f\"Stars: {r['stargazers_count']} Forks: {r['forks_count']}\")
206
+ print(f\"Default branch: {r['default_branch']}\")
207
+ print(f\"Language: {r['language']}\")"
208
+
209
+ # List your repos
210
+ python3 "$SKILL_ROOT/scripts/github-api.py" "https://api.github.com/user/repos?per_page=20&sort=updated" \
211
+ | python -c "
212
+ import sys, json
213
+ for r in json.load(sys.stdin):
214
+ vis = 'private' if r['private'] else 'public'
215
+ print(f\" {r['full_name']:40} {vis:8} {r.get('language', ''):10} ★{r['stargazers_count']}\")"
216
+
217
+ # Search repos
218
+ curl --fail-with-body -sS --max-time 30 \
219
+ "https://api.github.com/search/repositories?q=machine+learning+language:python&sort=stars&per_page=10" \
220
+ | python -c "
221
+ import sys, json
222
+ for r in json.load(sys.stdin)['items']:
223
+ print(f\" {r['full_name']:40} ★{r['stargazers_count']:6} {r['description'][:60] if r['description'] else ''}\")"
224
+ ```
225
+
226
+ ## 5. Repository Settings
227
+
228
+ **With gh:**
229
+
230
+ ```bash
231
+ gh repo edit --description "Updated description" --visibility public
232
+ gh repo edit --enable-wiki=false --enable-issues=true
233
+ gh repo edit --default-branch main
234
+ gh repo edit --add-topic "machine-learning,python"
235
+ gh repo edit --enable-auto-merge
236
+ ```
237
+
238
+ **With curl:**
239
+
240
+ ```bash
241
+ curl --fail-with-body -sS --max-time 30 -X PATCH \
242
+ -H "Authorization: token $GITHUB_TOKEN" \
243
+ https://api.github.com/repos/$OWNER/$REPO \
244
+ -d '{
245
+ "description": "Updated description",
246
+ "has_wiki": false,
247
+ "has_issues": true,
248
+ "allow_auto_merge": true
249
+ }'
250
+
251
+ # Update topics
252
+ curl --fail-with-body -sS --max-time 30 -X PUT \
253
+ -H "Authorization: token $GITHUB_TOKEN" \
254
+ -H "Accept: application/vnd.github.mercy-preview+json" \
255
+ https://api.github.com/repos/$OWNER/$REPO/topics \
256
+ -d '{"names": ["machine-learning", "python", "automation"]}'
257
+ ```
258
+
259
+ ## 6. Branch Protection
260
+
261
+ ```bash
262
+ # View current protection
263
+ python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/branches/main/protection
264
+
265
+ # Set up branch protection
266
+ curl --fail-with-body -sS --max-time 30 -X PUT \
267
+ -H "Authorization: token $GITHUB_TOKEN" \
268
+ https://api.github.com/repos/$OWNER/$REPO/branches/main/protection \
269
+ -d '{
270
+ "required_status_checks": {
271
+ "strict": true,
272
+ "contexts": ["ci/test", "ci/lint"]
273
+ },
274
+ "enforce_admins": false,
275
+ "required_pull_request_reviews": {
276
+ "required_approving_review_count": 1
277
+ },
278
+ "restrictions": null
279
+ }'
280
+ ```
281
+
282
+ ## 7. Secrets Management (GitHub Actions)
283
+
284
+ **With gh:**
285
+
286
+ ```bash
287
+ gh secret set API_KEY --body "your-secret-value"
288
+ gh secret set SSH_KEY < ~/.ssh/id_rsa
289
+ gh secret list
290
+ gh secret delete API_KEY
291
+ ```
292
+
293
+ **With curl:**
294
+
295
+ Secrets require encryption with the repo's public key — more involved via API:
296
+
297
+ ```bash
298
+ # Get the repo's public key for encrypting secrets
299
+ python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/actions/secrets/public-key
300
+
301
+ # Encrypt and set (requires Python with PyNaCl)
302
+ python -c "
303
+ from base64 import b64encode
304
+ from nacl import encoding, public
305
+ import json, sys
306
+
307
+ # Get the public key
308
+ key_id = '<key_id_from_above>'
309
+ public_key = '<base64_key_from_above>'
310
+
311
+ # Encrypt
312
+ sealed = public.SealedBox(
313
+ public.PublicKey(public_key.encode('utf-8'), encoding.Base64Encoder)
314
+ ).encrypt('your-secret-value'.encode('utf-8'))
315
+ print(json.dumps({
316
+ 'encrypted_value': b64encode(sealed).decode('utf-8'),
317
+ 'key_id': key_id
318
+ }))"
319
+
320
+ # Then PUT the encrypted secret
321
+ curl --fail-with-body -sS --max-time 30 -X PUT \
322
+ -H "Authorization: token $GITHUB_TOKEN" \
323
+ https://api.github.com/repos/$OWNER/$REPO/actions/secrets/API_KEY \
324
+ -d '<output from python script above>'
325
+
326
+ # List secrets (names only, values hidden)
327
+ python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/actions/secrets \
328
+ | python -c "
329
+ import sys, json
330
+ for s in json.load(sys.stdin)['secrets']:
331
+ print(f\" {s['name']:30} updated: {s['updated_at']}\")"
332
+ ```
333
+
334
+ Note: For secrets, `gh secret set` is dramatically simpler. If setting secrets is needed and `gh` isn't available, recommend installing it for just that operation.
335
+
336
+ ## 8. Releases
337
+
338
+ **With gh:**
339
+
340
+ ```bash
341
+ gh release create v1.0.0 --title "v1.0.0" --generate-notes
342
+ gh release create v2.0.0-rc1 --draft --prerelease --generate-notes
343
+ gh release create v1.0.0 ./dist/binary --title "v1.0.0" --notes "Release notes"
344
+ gh release list
345
+ gh release download v1.0.0 --dir ./downloads
346
+ ```
347
+
348
+ **With curl:**
349
+
350
+ ```bash
351
+ # Create a release
352
+ curl --fail-with-body -sS --max-time 30 -X POST \
353
+ -H "Authorization: token $GITHUB_TOKEN" \
354
+ https://api.github.com/repos/$OWNER/$REPO/releases \
355
+ -d '{
356
+ "tag_name": "v1.0.0",
357
+ "name": "v1.0.0",
358
+ "body": "## Changelog\n- Feature A\n- Bug fix B",
359
+ "draft": false,
360
+ "prerelease": false,
361
+ "generate_release_notes": true
362
+ }'
363
+
364
+ # List releases
365
+ python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/releases \
366
+ | python -c "
367
+ import sys, json
368
+ for r in json.load(sys.stdin):
369
+ tag = r.get('tag_name', 'no tag')
370
+ print(f\" {tag:15} {r['name']:30} {'draft' if r['draft'] else 'published'}\")"
371
+
372
+ # Upload a release asset (binary file)
373
+ RELEASE_ID=<id_from_create_response>
374
+ curl --fail-with-body -sS --max-time 30 -X POST \
375
+ -H "Authorization: token $GITHUB_TOKEN" \
376
+ -H "Content-Type: application/octet-stream" \
377
+ "https://uploads.github.com/repos/$OWNER/$REPO/releases/$RELEASE_ID/assets?name=binary-amd64" \
378
+ --data-binary @./dist/binary-amd64
379
+ ```
380
+
381
+ ## 9. GitHub Actions Workflows
382
+
383
+ **With gh:**
384
+
385
+ ```bash
386
+ gh workflow list
387
+ gh run list --limit 10
388
+ gh run view <RUN_ID>
389
+ gh run view <RUN_ID> --log-failed
390
+ gh run rerun <RUN_ID>
391
+ gh run rerun <RUN_ID> --failed
392
+ gh workflow run ci.yml --ref main
393
+ gh workflow run deploy.yml -f environment=staging
394
+ ```
395
+
396
+ **With curl:**
397
+
398
+ ```bash
399
+ # List workflows
400
+ python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/repos/$OWNER/$REPO/actions/workflows \
401
+ | python -c "
402
+ import sys, json
403
+ for w in json.load(sys.stdin)['workflows']:
404
+ print(f\" {w['id']:10} {w['name']:30} {w['state']}\")"
405
+
406
+ # List recent runs
407
+ python3 "$SKILL_ROOT/scripts/github-api.py" "https://api.github.com/repos/$OWNER/$REPO/actions/runs?per_page=10" \
408
+ | python -c "
409
+ import sys, json
410
+ for r in json.load(sys.stdin)['workflow_runs']:
411
+ print(f\" Run {r['id']} {r['name']:30} {r['conclusion'] or r['status']}\")"
412
+
413
+ # Download failed run logs
414
+ RUN_ID=<run_id>
415
+ curl --fail-with-body -sS --max-time 30 -L \
416
+ -H "Authorization: token $GITHUB_TOKEN" \
417
+ https://api.github.com/repos/$OWNER/$REPO/actions/runs/$RUN_ID/logs \
418
+ -o ~/.hermes/cache/scratch/ci-logs.zip
419
+ cd ~/.hermes/cache/scratch && unzip -o ci-logs.zip -d ci-logs
420
+
421
+ # Re-run a failed workflow
422
+ curl --fail-with-body -sS --max-time 30 -X POST \
423
+ -H "Authorization: token $GITHUB_TOKEN" \
424
+ https://api.github.com/repos/$OWNER/$REPO/actions/runs/$RUN_ID/rerun
425
+
426
+ # Re-run only failed jobs
427
+ curl --fail-with-body -sS --max-time 30 -X POST \
428
+ -H "Authorization: token $GITHUB_TOKEN" \
429
+ https://api.github.com/repos/$OWNER/$REPO/actions/runs/$RUN_ID/rerun-failed-jobs
430
+
431
+ # Trigger a workflow manually (workflow_dispatch)
432
+ WORKFLOW_ID=<workflow_id_or_filename>
433
+ curl --fail-with-body -sS --max-time 30 -X POST \
434
+ -H "Authorization: token $GITHUB_TOKEN" \
435
+ https://api.github.com/repos/$OWNER/$REPO/actions/workflows/$WORKFLOW_ID/dispatches \
436
+ -d '{"ref": "main", "inputs": {"environment": "staging"}}'
437
+ ```
438
+
439
+ ## 10. Gists
440
+
441
+ **With gh:**
442
+
443
+ ```bash
444
+ gh gist create script.py --desc "Useful script"
445
+ gh gist list
446
+ ```
447
+
448
+ **With curl:**
449
+
450
+ ```bash
451
+ # Create a gist
452
+ curl --fail-with-body -sS --max-time 30 -X POST \
453
+ -H "Authorization: token $GITHUB_TOKEN" \
454
+ https://api.github.com/gists \
455
+ -d '{
456
+ "description": "Useful script",
457
+ "public": false,
458
+ "files": {
459
+ "script.py": {"content": "print(\"hello\")"}
460
+ }
461
+ }'
462
+
463
+ # List your gists
464
+ python3 "$SKILL_ROOT/scripts/github-api.py" https://api.github.com/gists \
465
+ | python -c "
466
+ import sys, json
467
+ for g in json.load(sys.stdin):
468
+ files = ', '.join(g['files'].keys())
469
+ print(f\" {g['id']} {g['description'] or '(no desc)':40} {files}\")"
470
+ ```
471
+
472
+ ## Quick Reference Table
473
+
474
+ | Action | gh | git + curl |
475
+ |--------|-----|-----------|
476
+ | Clone | `gh repo clone o/r` | `git clone https://github.com/o/r.git` |
477
+ | Create repo | `gh repo create name --private` | `curl POST /user/repos` |
478
+ | Fork | `gh repo fork o/r --clone` | `curl POST /repos/o/r/forks` + `git clone` |
479
+ | Repo info | `gh repo view o/r` | `curl GET /repos/o/r` |
480
+ | Edit settings | `gh repo edit --...` | `curl PATCH /repos/o/r` |
481
+ | Create release | `gh release create v1.0` | `curl POST /repos/o/r/releases` |
482
+ | List workflows | `gh workflow list` | `curl GET /repos/o/r/actions/workflows` |
483
+ | Rerun CI | `gh run rerun ID` | `curl POST /repos/o/r/actions/runs/ID/rerun` |
484
+ | Set secret | `gh secret set KEY` | `curl PUT /repos/o/r/actions/secrets/KEY` (+ encryption) |
@@ -0,0 +1,84 @@
1
+ # Review Output Template
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
+ Use this as the structure for PR review summary comments. Copy and fill in the sections.
14
+
15
+ ## For PR Summary Comment
16
+
17
+ ```markdown
18
+ ## Code Review Summary
19
+
20
+ **Verdict: [Approved ✅ | Changes Requested 🔴 | Reviewed 💬]** ([N] issues, [N] suggestions)
21
+
22
+ **PR:** #[number] — [title]
23
+ **Author:** @[username]
24
+ **Files changed:** [N] (+[additions] -[deletions])
25
+
26
+ ### 🔴 Critical
27
+ <!-- Issues that MUST be fixed before merge -->
28
+ - **file.py:line** — [description]. Suggestion: [fix].
29
+
30
+ ### ⚠️ Warnings
31
+ <!-- Issues that SHOULD be fixed, but not strictly blocking -->
32
+ - **file.py:line** — [description].
33
+
34
+ ### 💡 Suggestions
35
+ <!-- Non-blocking improvements, style preferences, future considerations -->
36
+ - **file.py:line** — [description].
37
+
38
+ ### ✅ Looks Good
39
+ <!-- Call out things done well — positive reinforcement -->
40
+ - [aspect that was done well]
41
+
42
+ ---
43
+ *Reviewed by Hermes Agent*
44
+ ```
45
+
46
+ ## Severity Guide
47
+
48
+ | Level | Icon | When to use | Blocks merge? |
49
+ |-------|------|-------------|---------------|
50
+ | Critical | 🔴 | Security vulnerabilities, data loss risk, crashes, broken core functionality | Yes |
51
+ | Warning | ⚠️ | Bugs in non-critical paths, missing error handling, missing tests for new code | Usually yes |
52
+ | Suggestion | 💡 | Style improvements, refactoring ideas, performance hints, documentation gaps | No |
53
+ | Looks Good | ✅ | Clean patterns, good test coverage, clear naming, smart design decisions | N/A |
54
+
55
+ ## Verdict Decision
56
+
57
+ - **Approved ✅** — Zero critical/warning items. Only suggestions or all clear.
58
+ - **Changes Requested 🔴** — Any critical or warning item exists.
59
+ - **Reviewed 💬** — Observations only (draft PRs, uncertain findings, informational).
60
+
61
+ ## For Inline Comments
62
+
63
+ Prefix inline comments with the severity icon so they're scannable:
64
+
65
+ ```
66
+ 🔴 **Critical:** User input passed directly to SQL query — use parameterized queries to prevent injection.
67
+ ```
68
+
69
+ ```
70
+ ⚠️ **Warning:** This error is silently swallowed. At minimum, log it.
71
+ ```
72
+
73
+ ```
74
+ 💡 **Suggestion:** This could be simplified with a dict comprehension:
75
+ `{k: v for k, v in items if v is not None}`
76
+ ```
77
+
78
+ ```
79
+ ✅ **Nice:** Good use of context manager here — ensures cleanup on exceptions.
80
+ ```
81
+
82
+ ## For Local (Pre-Push) Review
83
+
84
+ When reviewing locally before push, use the same structure but present it as a message to the user instead of a PR comment. Skip the PR metadata header and just start with the severity sections.
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env python3
2
+ """Install missing gh; verify version and authentication independently."""
3
+ import argparse
4
+ import hashlib
5
+ import io
6
+ import json
7
+ import os
8
+ from pathlib import Path
9
+ import platform
10
+ import re
11
+ import shutil
12
+ import subprocess
13
+ import tarfile
14
+ import stat
15
+ import zipfile
16
+ import urllib.request
17
+
18
+
19
+ def run_command(argv):
20
+ try:
21
+ return subprocess.run(argv, capture_output=True, text=True, timeout=600, check=False)
22
+ except (OSError, subprocess.TimeoutExpired):
23
+ return subprocess.CompletedProcess(argv, 1, '', 'unavailable or timed out')
24
+
25
+
26
+ def download(url, limit):
27
+ with urllib.request.urlopen(url, timeout=30) as response:
28
+ data = response.read(limit + 1)
29
+ if len(data) > limit:
30
+ raise ValueError('download exceeds limit')
31
+ return data
32
+
33
+
34
+ def install_binary(system, fetch=download):
35
+ """Official release plus SHA256; extract only one regular executable."""
36
+ arch = {'x86_64': 'amd64', 'amd64': 'amd64', 'aarch64': 'arm64', 'arm64': 'arm64'}.get(platform.machine().lower())
37
+ if system not in ('Linux', 'Darwin') or not arch:
38
+ raise ValueError('unsupported host architecture')
39
+ release = json.loads(fetch('https://api.github.com/repos/cli/cli/releases/latest', 2_000_000))
40
+ tag = release.get('tag_name', '') if isinstance(release, dict) else ''
41
+ if not re.fullmatch(r'v2\.\d+\.\d+', tag):
42
+ raise ValueError('unrecognized stable release')
43
+ version = tag[1:]
44
+ stem = f"gh_{version}_{'linux' if system == 'Linux' else 'macOS'}_{arch}"
45
+ name = stem + ('.tar.gz' if system == 'Linux' else '.zip')
46
+ base = f'https://github.com/cli/cli/releases/download/{tag}/'
47
+ sums = fetch(base + f'gh_{version}_checksums.txt', 200_000).decode('ascii')
48
+ expected = [line.split()[0] for line in sums.splitlines() if len(line.split()) == 2 and line.split()[1] == name]
49
+ if len(expected) != 1 or not re.fullmatch('[0-9a-fA-F]{64}', expected[0]):
50
+ raise ValueError('missing release checksum')
51
+ archive = fetch(base + name, 50_000_000)
52
+ if hashlib.sha256(archive).hexdigest() != expected[0].lower():
53
+ raise ValueError('checksum mismatch')
54
+ if system == 'Darwin':
55
+ with zipfile.ZipFile(io.BytesIO(archive)) as zipped:
56
+ members = [m for m in zipped.infolist() if m.filename == stem + '/bin/gh']
57
+ if (len(members) != 1 or members[0].is_dir() or
58
+ stat.S_ISLNK(members[0].external_attr >> 16) or members[0].file_size > 100_000_000):
59
+ raise ValueError('unexpected executable entry')
60
+ data = zipped.read(members[0])
61
+ else:
62
+ with tarfile.open(fileobj=io.BytesIO(archive), mode='r:gz') as tar:
63
+ members = [m for m in tar.getmembers() if m.name == stem + '/bin/gh']
64
+ if len(members) != 1 or not members[0].isfile() or members[0].size > 100_000_000:
65
+ raise ValueError('unexpected executable entry')
66
+ data = tar.extractfile(members[0]).read(100_000_001)
67
+ target = Path.home() / '.local' / 'bin' / 'gh'
68
+ target.parent.mkdir(parents=True, exist_ok=True)
69
+ with target.open('xb') as handle:
70
+ handle.write(data)
71
+ target.chmod(0o755)
72
+ return str(target)
73
+
74
+
75
+ def ensure(run=run_command, binary_installer=install_binary, check_only=False, host='github.com'):
76
+ if not re.fullmatch(r'[A-Za-z0-9](?:[A-Za-z0-9.-]*[A-Za-z0-9])?', host):
77
+ return {'state': 'invalid-host', 'installed': False, 'authenticated': False}
78
+ executable = find_gh()
79
+ result = {'state': 'missing', 'installed': False, 'authenticated': False, 'host': host}
80
+ if not executable:
81
+ if check_only:
82
+ return result
83
+ system = platform.system()
84
+ brew = shutil.which('brew') if system in ('Darwin', 'Linux') else None
85
+ winget = shutil.which('winget') if system == 'Windows' else None
86
+ command = ([brew, 'install', 'gh'] if brew else
87
+ [winget, 'install', '--id', 'GitHub.cli', '--exact', '--source', 'winget', '--silent', '--disable-interactivity'] if winget else None)
88
+ try:
89
+ if command:
90
+ if run(command).returncode:
91
+ return {**result, 'state': 'install-failed'}
92
+ executable = find_gh() or 'gh'
93
+ else:
94
+ executable = binary_installer(system)
95
+ except (OSError, ValueError, KeyError, tarfile.TarError, zipfile.BadZipFile):
96
+ return {**result, 'state': 'install-failed'}
97
+ version = run([executable, '--version'])
98
+ match = re.search(r'^gh version (\d+)\.(\d+)\.(\d+)\b', version.stdout, re.MULTILINE)
99
+ if version.returncode or not match or int(match[1]) < 2:
100
+ return {**result, 'state': 'version-check-failed', 'executable': executable}
101
+ result.update(installed=True, executable=executable, version=match[0])
102
+ auth = run([executable, 'auth', 'status', '--hostname', host])
103
+ result.update(authenticated=auth.returncode == 0,
104
+ state='ready-for-repository-check' if auth.returncode == 0 else 'authentication-required')
105
+ return result
106
+
107
+
108
+ def find_gh():
109
+ found = shutil.which('gh')
110
+ if found:
111
+ return found
112
+ candidates = [Path.home() / '.local/bin/gh']
113
+ if platform.system() == 'Windows':
114
+ if os.environ.get('ProgramFiles'):
115
+ candidates.append(Path(os.environ['ProgramFiles']) / 'GitHub CLI/gh.exe')
116
+ if os.environ.get('LOCALAPPDATA'):
117
+ candidates.append(Path(os.environ['LOCALAPPDATA']) / 'Microsoft/WinGet/Links/gh.exe')
118
+ return next((str(p) for p in candidates if p.is_file()), None)
119
+
120
+
121
+ def main():
122
+ parser = argparse.ArgumentParser(description=__doc__)
123
+ parser.add_argument('--check-only', action='store_true')
124
+ parser.add_argument('--host', default='github.com')
125
+ args = parser.parse_args()
126
+ result = ensure(check_only=args.check_only, host=args.host)
127
+ print(json.dumps(result))
128
+ return 0 if result['authenticated'] else 1
129
+
130
+
131
+ if __name__ == '__main__':
132
+ raise SystemExit(main())