pi-skill-search 0.1.0

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 (299) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +97 -0
  4. package/index.ts +163 -0
  5. package/package.json +48 -0
  6. package/skills/adaptyv/SKILL.md +92 -0
  7. package/skills/add-community-extension/SKILL.md +85 -0
  8. package/skills/aeon/SKILL.md +111 -0
  9. package/skills/ai-slop-cleaner/SKILL.md +118 -0
  10. package/skills/anndata/SKILL.md +83 -0
  11. package/skills/arboreto/SKILL.md +107 -0
  12. package/skills/ask/SKILL.md +55 -0
  13. package/skills/astropy/SKILL.md +30 -0
  14. package/skills/async-worker-recovery/SKILL.md +44 -0
  15. package/skills/autopilot/SKILL.md +63 -0
  16. package/skills/autoresearch/SKILL.md +64 -0
  17. package/skills/autoskill/SKILL.md +116 -0
  18. package/skills/babysit/SKILL.md +43 -0
  19. package/skills/benchling-integration/SKILL.md +106 -0
  20. package/skills/bgpt-paper-search/SKILL.md +67 -0
  21. package/skills/biopython/SKILL.md +29 -0
  22. package/skills/bioservices/SKILL.md +96 -0
  23. package/skills/brainstorming/SKILL.md +104 -0
  24. package/skills/cancel/SKILL.md +85 -0
  25. package/skills/ccg/SKILL.md +87 -0
  26. package/skills/celery-pipeline/SKILL.md +30 -0
  27. package/skills/cellxgene-census/SKILL.md +104 -0
  28. package/skills/child-pi-spawning/SKILL.md +85 -0
  29. package/skills/cirq/SKILL.md +113 -0
  30. package/skills/citation-management/SKILL.md +91 -0
  31. package/skills/clinical-decision-support/SKILL.md +117 -0
  32. package/skills/clinical-reports/SKILL.md +118 -0
  33. package/skills/clinical-trial/SKILL.md +28 -0
  34. package/skills/cobrapy/SKILL.md +116 -0
  35. package/skills/configure-notifications/SKILL.md +85 -0
  36. package/skills/consciousness-council/SKILL.md +120 -0
  37. package/skills/context-artifact-hygiene/SKILL.md +85 -0
  38. package/skills/context-mode-ops/SKILL.md +87 -0
  39. package/skills/dask/SKILL.md +85 -0
  40. package/skills/database-lookup/SKILL.md +118 -0
  41. package/skills/datamol/SKILL.md +108 -0
  42. package/skills/debug/SKILL.md +32 -0
  43. package/skills/deep-dive/SKILL.md +114 -0
  44. package/skills/deep-interview/SKILL.md +90 -0
  45. package/skills/deepchem/SKILL.md +117 -0
  46. package/skills/deepinit/SKILL.md +100 -0
  47. package/skills/deeptools/SKILL.md +118 -0
  48. package/skills/delegation-patterns/SKILL.md +56 -0
  49. package/skills/depmap/SKILL.md +94 -0
  50. package/skills/dhdna-profiler/SKILL.md +86 -0
  51. package/skills/diffdock/SKILL.md +101 -0
  52. package/skills/dispatching-parallel-agents/SKILL.md +119 -0
  53. package/skills/dnanexus-integration/SKILL.md +118 -0
  54. package/skills/do/SKILL.md +48 -0
  55. package/skills/docker-sandbox/SKILL.md +29 -0
  56. package/skills/docx/SKILL.md +119 -0
  57. package/skills/esm/SKILL.md +116 -0
  58. package/skills/etetoolkit/SKILL.md +103 -0
  59. package/skills/event-log-tracing/SKILL.md +85 -0
  60. package/skills/exa-search/SKILL.md +72 -0
  61. package/skills/executing-plans/SKILL.md +69 -0
  62. package/skills/exploratory-data-analysis/SKILL.md +118 -0
  63. package/skills/external-context/SKILL.md +80 -0
  64. package/skills/fastapi/SKILL.md +30 -0
  65. package/skills/finishing-a-development-branch/SKILL.md +106 -0
  66. package/skills/flowio/SKILL.md +114 -0
  67. package/skills/fluidsim/SKILL.md +108 -0
  68. package/skills/generate-image/SKILL.md +108 -0
  69. package/skills/geniml/SKILL.md +117 -0
  70. package/skills/geomaster/SKILL.md +109 -0
  71. package/skills/geopandas/SKILL.md +114 -0
  72. package/skills/get-available-resources/SKILL.md +100 -0
  73. package/skills/gget/SKILL.md +111 -0
  74. package/skills/ginkgo-cloud-lab/SKILL.md +52 -0
  75. package/skills/git-master/SKILL.md +85 -0
  76. package/skills/glycoengineering/SKILL.md +104 -0
  77. package/skills/gtars/SKILL.md +104 -0
  78. package/skills/hackernews-frontpage/SKILL.md +46 -0
  79. package/skills/histolab/SKILL.md +98 -0
  80. package/skills/how-it-works/SKILL.md +25 -0
  81. package/skills/hud/SKILL.md +86 -0
  82. package/skills/hugging-science/SKILL.md +93 -0
  83. package/skills/huggingface/SKILL.md +30 -0
  84. package/skills/hypogenic/SKILL.md +107 -0
  85. package/skills/hypothesis-generation/SKILL.md +118 -0
  86. package/skills/imaging-data-commons/SKILL.md +119 -0
  87. package/skills/infographics/SKILL.md +102 -0
  88. package/skills/iso-13485-certification/SKILL.md +114 -0
  89. package/skills/knowledge-agent/SKILL.md +83 -0
  90. package/skills/labarchive-integration/SKILL.md +98 -0
  91. package/skills/lamindb/SKILL.md +119 -0
  92. package/skills/landsat/SKILL.md +29 -0
  93. package/skills/latchbio-integration/SKILL.md +118 -0
  94. package/skills/latex-posters/SKILL.md +112 -0
  95. package/skills/learn-codebase/SKILL.md +24 -0
  96. package/skills/learner/SKILL.md +118 -0
  97. package/skills/literature-review/SKILL.md +118 -0
  98. package/skills/live-agent-lifecycle/SKILL.md +85 -0
  99. package/skills/mailbox-interactive/SKILL.md +85 -0
  100. package/skills/make-plan/SKILL.md +59 -0
  101. package/skills/markdown-mermaid-writing/SKILL.md +118 -0
  102. package/skills/market-research-reports/SKILL.md +119 -0
  103. package/skills/markitdown/SKILL.md +111 -0
  104. package/skills/markitdown-docs/SKILL.md +28 -0
  105. package/skills/matchms/SKILL.md +91 -0
  106. package/skills/matlab/SKILL.md +118 -0
  107. package/skills/matplotlib/SKILL.md +30 -0
  108. package/skills/mcp-setup/SKILL.md +84 -0
  109. package/skills/medchem/SKILL.md +109 -0
  110. package/skills/mem-search/SKILL.md +96 -0
  111. package/skills/modal/SKILL.md +104 -0
  112. package/skills/model-routing-context/SKILL.md +85 -0
  113. package/skills/molecular-dynamics/SKILL.md +116 -0
  114. package/skills/molfeat/SKILL.md +110 -0
  115. package/skills/multi-perspective-review/SKILL.md +85 -0
  116. package/skills/networkx/SKILL.md +111 -0
  117. package/skills/neurokit2/SKILL.md +114 -0
  118. package/skills/neuropixels-analysis/SKILL.md +112 -0
  119. package/skills/nilearn/SKILL.md +29 -0
  120. package/skills/observability-reliability/SKILL.md +43 -0
  121. package/skills/omc-doctor/SKILL.md +86 -0
  122. package/skills/omc-reference/SKILL.md +119 -0
  123. package/skills/omc-setup/SKILL.md +82 -0
  124. package/skills/omc-teams/SKILL.md +81 -0
  125. package/skills/omero-integration/SKILL.md +111 -0
  126. package/skills/open-notebook/SKILL.md +100 -0
  127. package/skills/openephys/SKILL.md +28 -0
  128. package/skills/opentrons-integration/SKILL.md +110 -0
  129. package/skills/optimize-for-gpu/SKILL.md +119 -0
  130. package/skills/orchestration/SKILL.md +85 -0
  131. package/skills/ownership-session-security/SKILL.md +43 -0
  132. package/skills/paper-lookup/SKILL.md +119 -0
  133. package/skills/paperzilla/SKILL.md +114 -0
  134. package/skills/parallel-web/SKILL.md +64 -0
  135. package/skills/pathfinder/SKILL.md +114 -0
  136. package/skills/pathml/SKILL.md +98 -0
  137. package/skills/pdf/SKILL.md +113 -0
  138. package/skills/peer-review/SKILL.md +119 -0
  139. package/skills/pennylane/SKILL.md +119 -0
  140. package/skills/phylogenetics/SKILL.md +102 -0
  141. package/skills/pi-extension-lifecycle/SKILL.md +41 -0
  142. package/skills/plan/SKILL.md +66 -0
  143. package/skills/polars/SKILL.md +114 -0
  144. package/skills/polars-bio/SKILL.md +84 -0
  145. package/skills/pptx/SKILL.md +118 -0
  146. package/skills/pptx-posters/SKILL.md +112 -0
  147. package/skills/primekg/SKILL.md +97 -0
  148. package/skills/project-session-manager/SKILL.md +85 -0
  149. package/skills/protocolsio-integration/SKILL.md +119 -0
  150. package/skills/pubmed-search/SKILL.md +29 -0
  151. package/skills/pufferlib/SKILL.md +103 -0
  152. package/skills/pydeseq2/SKILL.md +106 -0
  153. package/skills/pydicom/SKILL.md +115 -0
  154. package/skills/pyhealth/SKILL.md +117 -0
  155. package/skills/pylabrobot/SKILL.md +100 -0
  156. package/skills/pymatgen/SKILL.md +28 -0
  157. package/skills/pymc/SKILL.md +108 -0
  158. package/skills/pymoo/SKILL.md +90 -0
  159. package/skills/pyopenms/SKILL.md +119 -0
  160. package/skills/pysam/SKILL.md +118 -0
  161. package/skills/pyspark/SKILL.md +30 -0
  162. package/skills/pytdc/SKILL.md +102 -0
  163. package/skills/pytorch/SKILL.md +31 -0
  164. package/skills/pytorch-lightning/SKILL.md +119 -0
  165. package/skills/pyzotero/SKILL.md +104 -0
  166. package/skills/qiskit/SKILL.md +119 -0
  167. package/skills/qutip/SKILL.md +111 -0
  168. package/skills/ralph/SKILL.md +23 -0
  169. package/skills/ralplan/SKILL.md +105 -0
  170. package/skills/rdflib/SKILL.md +29 -0
  171. package/skills/rdkit/SKILL.md +30 -0
  172. package/skills/read-only-explorer/SKILL.md +85 -0
  173. package/skills/receiving-code-review/SKILL.md +103 -0
  174. package/skills/release/SKILL.md +117 -0
  175. package/skills/remember/SKILL.md +39 -0
  176. package/skills/requesting-code-review/SKILL.md +85 -0
  177. package/skills/requirements-to-task-packet/SKILL.md +65 -0
  178. package/skills/research-grants/SKILL.md +118 -0
  179. package/skills/research-lookup/SKILL.md +117 -0
  180. package/skills/research-reproducibility/SKILL.md +28 -0
  181. package/skills/resource-discovery-config/SKILL.md +43 -0
  182. package/skills/rowan/SKILL.md +100 -0
  183. package/skills/runtime-state-reader/SKILL.md +46 -0
  184. package/skills/safe-bash/SKILL.md +85 -0
  185. package/skills/scanpy/SKILL.md +32 -0
  186. package/skills/scholar-evaluation/SKILL.md +115 -0
  187. package/skills/scientific-brainstorming/SKILL.md +118 -0
  188. package/skills/scientific-critical-thinking/SKILL.md +119 -0
  189. package/skills/scientific-schematics/SKILL.md +116 -0
  190. package/skills/scientific-slides/SKILL.md +117 -0
  191. package/skills/scientific-visualization/SKILL.md +109 -0
  192. package/skills/scientific-writing/SKILL.md +119 -0
  193. package/skills/scikit-bio/SKILL.md +92 -0
  194. package/skills/scikit-learn/SKILL.md +99 -0
  195. package/skills/scikit-survival/SKILL.md +110 -0
  196. package/skills/sciomc/SKILL.md +86 -0
  197. package/skills/scvelo/SKILL.md +106 -0
  198. package/skills/scvi-tools/SKILL.md +114 -0
  199. package/skills/seaborn/SKILL.md +97 -0
  200. package/skills/secure-agent-orchestration-review/SKILL.md +47 -0
  201. package/skills/self-improve/SKILL.md +119 -0
  202. package/skills/semantic-compression/SKILL.md +62 -0
  203. package/skills/setup/SKILL.md +42 -0
  204. package/skills/shap/SKILL.md +103 -0
  205. package/skills/simpy/SKILL.md +116 -0
  206. package/skills/skill/SKILL.md +117 -0
  207. package/skills/skill-search/SKILL.md +67 -0
  208. package/skills/skillify/SKILL.md +46 -0
  209. package/skills/smart-explore/SKILL.md +94 -0
  210. package/skills/sqlite-pandas/SKILL.md +30 -0
  211. package/skills/stable-baselines3/SKILL.md +86 -0
  212. package/skills/state-mutation-locking/SKILL.md +44 -0
  213. package/skills/statistical-analysis/SKILL.md +108 -0
  214. package/skills/statsmodels/SKILL.md +29 -0
  215. package/skills/subagent-driven-development/SKILL.md +89 -0
  216. package/skills/sympy/SKILL.md +115 -0
  217. package/skills/system-prompts/SKILL.md +116 -0
  218. package/skills/systematic-debugging/SKILL.md +119 -0
  219. package/skills/team/SKILL.md +85 -0
  220. package/skills/test-driven-development/SKILL.md +84 -0
  221. package/skills/tiledbvcf/SKILL.md +119 -0
  222. package/skills/timeline-report/SKILL.md +85 -0
  223. package/skills/timesfm-forecasting/SKILL.md +112 -0
  224. package/skills/torch-geometric/SKILL.md +118 -0
  225. package/skills/torchdrug/SKILL.md +118 -0
  226. package/skills/trace/SKILL.md +118 -0
  227. package/skills/transformers/SKILL.md +110 -0
  228. package/skills/treatment-plans/SKILL.md +119 -0
  229. package/skills/ui-render-performance/SKILL.md +41 -0
  230. package/skills/ultragoal/SKILL.md +63 -0
  231. package/skills/ultraqa/SKILL.md +85 -0
  232. package/skills/ultrawork/SKILL.md +20 -0
  233. package/skills/umap-learn/SKILL.md +119 -0
  234. package/skills/usfiscaldata/SKILL.md +118 -0
  235. package/skills/using-git-worktrees/SKILL.md +112 -0
  236. package/skills/using-superpowers/SKILL.md +85 -0
  237. package/skills/using-vetc/SKILL.md +92 -0
  238. package/skills/vaex/SKILL.md +111 -0
  239. package/skills/venue-templates/SKILL.md +113 -0
  240. package/skills/verification-before-completion/SKILL.md +88 -0
  241. package/skills/verification-before-done/SKILL.md +68 -0
  242. package/skills/verify/SKILL.md +33 -0
  243. package/skills/version-bump/SKILL.md +54 -0
  244. package/skills/vetc-analyze-ba/SKILL.md +117 -0
  245. package/skills/vetc-analyze-codebase/SKILL.md +118 -0
  246. package/skills/vetc-api-design/SKILL.md +103 -0
  247. package/skills/vetc-brainstorming/SKILL.md +116 -0
  248. package/skills/vetc-change-proposal/SKILL.md +111 -0
  249. package/skills/vetc-cicd/SKILL.md +113 -0
  250. package/skills/vetc-continuous-learning/SKILL.md +115 -0
  251. package/skills/vetc-deep-interview/SKILL.md +103 -0
  252. package/skills/vetc-docgen/SKILL.md +108 -0
  253. package/skills/vetc-frontend-patterns/SKILL.md +99 -0
  254. package/skills/vetc-iterative-retrieval/SKILL.md +110 -0
  255. package/skills/vetc-java-patterns/SKILL.md +113 -0
  256. package/skills/vetc-meta-skill-creator/SKILL.md +99 -0
  257. package/skills/vetc-oracle-patterns/SKILL.md +109 -0
  258. package/skills/vetc-performance-testing/SKILL.md +104 -0
  259. package/skills/vetc-pr-response/SKILL.md +106 -0
  260. package/skills/vetc-ralph/SKILL.md +108 -0
  261. package/skills/vetc-ralplan/SKILL.md +116 -0
  262. package/skills/vetc-receiving-review/SKILL.md +106 -0
  263. package/skills/vetc-reconcile-patterns/SKILL.md +117 -0
  264. package/skills/vetc-refactoring/SKILL.md +96 -0
  265. package/skills/vetc-runbook/SKILL.md +118 -0
  266. package/skills/vetc-sast/SKILL.md +118 -0
  267. package/skills/vetc-sdlc/SKILL.md +97 -0
  268. package/skills/vetc-security/SKILL.md +117 -0
  269. package/skills/vetc-spec-driven/SKILL.md +111 -0
  270. package/skills/vetc-spec-quality/SKILL.md +117 -0
  271. package/skills/vetc-systematic-debugging/SKILL.md +74 -0
  272. package/skills/vetc-tdd/SKILL.md +96 -0
  273. package/skills/vetc-thinking-pm/SKILL.md +110 -0
  274. package/skills/vetc-ui-visual-qa/SKILL.md +117 -0
  275. package/skills/vetc-verify/SKILL.md +101 -0
  276. package/skills/visual-verdict/SKILL.md +59 -0
  277. package/skills/what-if-oracle/SKILL.md +87 -0
  278. package/skills/widget-rendering/SKILL.md +85 -0
  279. package/skills/wiki/SKILL.md +69 -0
  280. package/skills/workspace-isolation/SKILL.md +85 -0
  281. package/skills/worktree-isolation/SKILL.md +85 -0
  282. package/skills/wowerpoint/SKILL.md +101 -0
  283. package/skills/writer-memory/SKILL.md +82 -0
  284. package/skills/writing-plans/SKILL.md +115 -0
  285. package/skills/writing-skills/SKILL.md +115 -0
  286. package/skills/xgboost/SKILL.md +29 -0
  287. package/skills/xgboost-ts/SKILL.md +28 -0
  288. package/skills/xlsx/SKILL.md +111 -0
  289. package/skills/zarr-python/SKILL.md +101 -0
  290. package/src/categories.ts +383 -0
  291. package/src/format.ts +104 -0
  292. package/src/indexer.ts +101 -0
  293. package/src/proactive.ts +51 -0
  294. package/src/scanner.ts +85 -0
  295. package/src/search.ts +89 -0
  296. package/src/strip.ts +29 -0
  297. package/src/synonyms.ts +83 -0
  298. package/src/text.ts +118 -0
  299. package/src/types.ts +64 -0
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: exa-search
3
+ description: "Web toolkit powered by Exa, tuned for scientific and technical content. Use this skill when the user needs to search the web or fetch/extract URL content. Covers: web search (semantic lookups, research, current info — with optional research-paper category and academic domain filtering) and URL extraction (fetching pages, articles, academic PDFs in batch). Use this skill for web-related tasks when the user wants high-quality search or scholarly filtering via category=research paper. Triggers on requests to search, look up, fetch a page, or extract an article."
4
+ ---
5
+
6
+ # Exa Web Toolkit
7
+
8
+ A skill for web-powered research tasks backed by [Exa](https://exa.ai): web search and URL extraction. Exa's index combines high-quality keyword and semantic retrieval, which makes it well-suited to scientific, technical, and conceptual queries.
9
+
10
+ ## Routing — pick the right capability
11
+
12
+ Read the user's request and match it to one of the capabilities below. Read the corresponding reference file for detailed instructions before running commands.
13
+
14
+ | User wants to... | Capability | Where |
15
+ |---|---|---|
16
+ | Look something up, research a topic, find current info | **Web Search** | `(see docs)` |
17
+ | Fetch content from a specific URL (webpage, article, PDF) | **Web Extract** | `(see docs)` |
18
+ | Install or authenticate | **Setup** | Below |
19
+
20
+ ### Decision guide
21
+
22
+ - **Default to Web Search** for topic lookups, research questions, or "what is X?" queries. When the topic is scientific or technical, pass `--category "research paper"` to bias toward scholarly sources, and/or an academic `--include-domains` allowlist. See `(see docs)` for the two-pass academic strategy.
23
+ - **Use Web Extract** when the user provides a URL or asks you to read/fetch a specific page. Prefer this over the built-in WebFetch for batch extraction (multiple URLs in one call) and for academic PDFs.
24
+
25
+ ### Academic source priority
26
+
27
+ For technical or scientific queries, prefer academic and scientific sources:
28
+ - Peer-reviewed journal articles and conference proceedings over blog posts or news
29
+ - Preprints (arXiv, bioRxiv, medRxiv) when peer-reviewed versions aren't available
30
+ - Institutional and government sources (NIH, WHO, NASA, NIST) over commercial sites
31
+ - Primary research over secondary summaries
32
+
33
+ Two levers to steer Exa toward scholarly content:
34
+ 1. `--category "research paper"` biases retrieval toward scholarly sources.
35
+ 2. `--include-domains` with a scholarly allowlist (arxiv.org, nature.com, pubmed.ncbi.nlm.nih.gov, etc.) restricts the domain pool.
36
+
37
+ Combine both for strictly academic results. See `(see docs)` for the full pattern.
38
+
39
+ When citing academic sources, include author names and publication year where available (e.g., [Smith et al., 2025](url)) in addition to the standard citation format. If a DOI is present, prefer the DOI link.
40
+
41
+ ---
42
+
43
+ ### Authentication
44
+
45
+ All commands read the API key from the `EXA_API_KEY` environment variable. Get your Exa API key at [dashboard.exa.ai/api-keys](https://dashboard.exa.ai/api-keys).
46
+
47
+ First, check if a `.env` file exists in the project root and contains `EXA_API_KEY`. If so, load it:
48
+
49
+ ```bash
50
+ dotenv -f .env run -- uv run --with exa-py python "$SKILL_PATH/scripts/exa_search.py" "your query"
51
+ ```
52
+
53
+ If `dotenv` isn't available, install it: `pip install python-dotenv[cli]` or `uv pip install python-dotenv[cli]`.
54
+
55
+ If there's no `.env`, export the key for the session:
56
+
57
+ ```bash
58
+
59
+ ### Tracking header
60
+
61
+ Every script in this skill sets the `x-exa-integration` request header to `k-dense-ai--scientific-agent-skills` so Exa can attribute usage from the K-Dense AI scientific-agent-skills repo to this integration. Do not remove or rename this header when adapting the scripts.
62
+
63
+ ---
64
+
65
+ ## Files in this skill
66
+
67
+ - `SKILL.md` — this file (routing and setup)
68
+ - `(see docs)` — detailed web search reference with academic strategy
69
+ - `(see docs)` — URL content extraction reference
70
+ - `scripts/exa_search.py` — CLI wrapper around `client.search_and_contents`
71
+ - `scripts/exa_extract.py` — CLI wrapper around `client.get_contents`
72
+ ```
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: executing-plans
3
+ description: Use when you have a written implementation plan to execute in a separate session with review checkpoints
4
+ ---
5
+
6
+ # Executing Plans
7
+
8
+ ## Overview
9
+
10
+ Load plan, review critically, execute all tasks, report when complete.
11
+
12
+ **Announce at start:** "I'm using the executing-plans skill to implement this plan."
13
+
14
+ **Note:** Tell your human partner that Superpowers works much better with access to subagents. The quality of its work will be significantly higher if run on a platform with subagent support (such as Claude Code or Codex). If subagents are available, use superpowers:subagent-driven-development instead of this skill.
15
+
16
+ ## The Process
17
+
18
+ ### Step 1: Load and Review Plan
19
+ 1. Read plan file
20
+ 2. Review critically - identify any questions or concerns about the plan
21
+ 3. If concerns: Raise them with your human partner before starting
22
+ 4. If no concerns: Create TodoWrite and proceed
23
+
24
+ ### Step 2: Execute Tasks
25
+
26
+ For each task:
27
+ 1. Mark as in_progress
28
+ 2. Follow each step exactly (plan has bite-sized steps)
29
+ 3. Run verifications as specified
30
+ 4. Mark as completed
31
+
32
+ ### Step 3: Complete Development
33
+
34
+ After all tasks complete and verified:
35
+ - Announce: "I'm using the finishing-a-development-branch skill to complete this work."
36
+ - **REQUIRED SUB-SKILL:** Use superpowers:finishing-a-development-branch
37
+ - Follow that skill to verify tests, present options, execute choice
38
+
39
+ ## When to Stop and Ask for Help
40
+
41
+ **STOP executing immediately when:**
42
+ - Hit a blocker (missing dependency, test fails, instruction unclear)
43
+ - Plan has critical gaps preventing starting
44
+ - You don't understand an instruction
45
+ - Verification fails repeatedly
46
+
47
+ **Ask for clarification rather than guessing.**
48
+
49
+ ## When to Revisit Earlier Steps
50
+
51
+ **Return to Review (Step 1) when:**
52
+ - Partner updates the plan based on your feedback
53
+ - Fundamental approach needs rethinking
54
+
55
+ **Don't force through blockers** - stop and ask.
56
+
57
+ ## Remember
58
+ - Review plan critically first
59
+ - Follow plan steps exactly
60
+ - Don't skip verifications
61
+ - Reference skills when plan says to
62
+ - Stop when blocked, don't guess
63
+ - Never start implementation on main/master branch without explicit user consent
64
+
65
+ ## Integration
66
+
67
+ **Required workflow skills:**
68
+ - **superpowers:using-git-worktrees** - Ensures isolated workspace (creates one or verifies existing)
69
+
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: exploratory-data-analysis
3
+ description: Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats. This skill should be used when analyzing any scientific data file to understand its structure, content, quality, and characteristics. Automatically detects file type and generates detailed markdown reports with format-specific analysis, quality metrics, and downstream analysis recommendations. Covers chemistry, bioinformatics, microscopy, spectroscopy, proteomics, metabolomics, and general scientific data formats.
4
+ ---
5
+
6
+ # Exploratory Data Analysis
7
+
8
+ ## Overview
9
+
10
+ Perform comprehensive exploratory data analysis (EDA) on scientific data files across multiple domains. This skill provides automated file type detection, format-specific analysis, data quality assessment, and generates detailed markdown reports suitable for documentation and downstream analysis planning.
11
+
12
+ **Key Capabilities:**
13
+ - Automatic detection and analysis of 200+ scientific file formats
14
+ - Comprehensive format-specific metadata extraction
15
+ - Data quality and integrity assessment
16
+ - Statistical summaries and distributions
17
+ - Visualization recommendations
18
+ - Downstream analysis suggestions
19
+ - Markdown report generation
20
+
21
+ ## When to Use This Skill
22
+
23
+ Use this skill when:
24
+ - User provides a path to a scientific data file for analysis
25
+ - User asks to "explore", "analyze", or "summarize" a data file
26
+ - User wants to understand the structure and content of scientific data
27
+ - User needs a comprehensive report of a dataset before analysis
28
+ - User wants to assess data quality or completeness
29
+ - User asks what type of analysis is appropriate for a file
30
+
31
+ ## Supported File Categories
32
+
33
+ The skill has comprehensive coverage of scientific file formats organized into six major categories:
34
+
35
+ ## Workflow
36
+
37
+ ### Step 1: File Type Detection
38
+
39
+ When a user provides a file path, first identify the file type:
40
+
41
+ 1. Extract the file extension
42
+ 2. Look up the extension in the appropriate reference file
43
+ 3. Identify the file category and format description
44
+ 4. Load format-specific information
45
+
46
+ **Example:**
47
+ ```
48
+ User: "Analyze data.fastq"
49
+ → Extension: .fastq
50
+ → Category: bioinformatics_genomics
51
+ → Format: FASTQ Format (sequence data with quality scores)
52
+ → Reference: (see docs)
53
+ ```
54
+
55
+ ### Step 3: Perform Data Analysis
56
+
57
+ Use the `scripts/eda_analyzer.py` script OR implement custom analysis:
58
+
59
+ **Option A: Use the analyzer script**
60
+ ```python
61
+ # The script automatically:
62
+ # 1. Detects file type
63
+ # 4. Generates markdown report
64
+
65
+ python scripts/eda_analyzer.py <filepath> [output.md]
66
+
67
+ **Option B: Custom analysis in the conversation**
68
+ Based on the format information from the reference file, perform appropriate analysis:
69
+
70
+ For tabular data (CSV, TSV, Excel):
71
+ - Load with pandas
72
+ - Check dimensions, data types
73
+ - Analyze missing values
74
+ - Calculate summary statistics
75
+ - Identify outliers
76
+ - Check for duplicates
77
+
78
+ ### Step 4: Generate Comprehensive Report
79
+
80
+ Create a markdown report with the following sections:
81
+
82
+ #### Required Sections:
83
+ 1. **Title and Metadata**
84
+ - Filename and timestamp
85
+ - File size and location
86
+
87
+ 2. **Basic Information**
88
+ - File properties
89
+ - Format identification
90
+
91
+ 3. **File Type Details**
92
+ - Format description from reference
93
+
94
+ ### Step 5: Save Report
95
+
96
+ Save the markdown report with a descriptive filename:
97
+ - Pattern: `{original_filename}_eda_report.md`
98
+ - Example: `experiment_data.fastq` → `experiment_data_eda_report.md`
99
+
100
+ ### Reference File Structure
101
+
102
+ Each format entry includes:
103
+ - **Description:** What the format is
104
+ - **Typical Data:** What it contains
105
+ - **Use Cases:** Common applications
106
+ - **Python Libraries:** How to read it (with code examples)
107
+ - **EDA Approach:** Specific analyses to perform
108
+
109
+ **Example lookup:**
110
+ ```markdown
111
+ ### .pdb - Protein Data Bank
112
+ **Description:** Standard format for 3D structures of biological macromolecules
113
+ **Typical Data:** Atomic coordinates, residue information, secondary structure
114
+ **Use Cases:** Protein structure analysis, molecular visualization, docking
115
+ **Python Libraries:**
116
+ - `Biopython`: `Bio.PDB`
117
+
118
+
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: external-context
3
+ description: Invoke parallel document-specialist agents for external web searches and documentation lookup
4
+ ---
5
+
6
+ # External Context Skill
7
+
8
+ Fetch external documentation, references, and context for a query. Decomposes into 2-5 facets and spawns parallel document-specialist Claude agents.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ external-context <topic or question>
14
+ ```
15
+
16
+ ### Examples
17
+
18
+ ```
19
+ external-context What are the best practices for JWT token rotation in Node.js?
20
+ external-context Compare Prisma vs Drizzle ORM for PostgreSQL
21
+ external-context Latest React Server Components patterns and conventions
22
+ ```
23
+
24
+ ## Protocol
25
+
26
+ ### Step 1: Facet Decomposition
27
+
28
+ Given a query, decompose into 2-5 independent search facets:
29
+
30
+ ```markdown
31
+ ## Search Decomposition
32
+
33
+ **Query:** <original query>
34
+
35
+ ### Facet 1: <facet-name>
36
+ - **Search focus:** What to search for
37
+ - **Sources:** Official docs, GitHub, blogs, etc.
38
+
39
+ ### Facet 2: <facet-name>
40
+ ...
41
+ ```
42
+
43
+ ### Step 2: Parallel Agent Invocation
44
+
45
+ Fire independent facets in parallel via Task tool:
46
+
47
+ ```
48
+ Task(subagent_type="oh-my-claudecode:document-specialist", model="sonnet", prompt="Search for: <facet 1 description>. Use WebSearch and WebFetch to find official documentation and examples. Cite all sources with URLs.")
49
+
50
+ Task(subagent_type="oh-my-claudecode:document-specialist", model="sonnet", prompt="Search for: <facet 2 description>. Use WebSearch and WebFetch to find official documentation and examples. Cite all sources with URLs.")
51
+ ```
52
+
53
+ Maximum 5 parallel document-specialist agents.
54
+
55
+ ### Step 3: Synthesis Output Format
56
+
57
+ Present synthesized results in this format:
58
+
59
+ ```markdown
60
+ ## External Context: <query>
61
+
62
+ ### Key Findings
63
+ 1. **<finding>** - Source: [title](url)
64
+ 2. **<finding>** - Source: [title](url)
65
+
66
+ ### Detailed Results
67
+
68
+ #### Facet 1:
69
+ <aggregated findings with citations>
70
+
71
+ #### Facet 2:
72
+ <aggregated findings with citations>
73
+
74
+ ### Sources
75
+ - [Source 1](url)
76
+ - [Source 2](url)
77
+ ```
78
+
79
+ ## Configuration
80
+
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: fastapi
3
+ description: REST API development framework for scientific web services. Use when building HTTP endpoints, serving ML models as APIs, handling file uploads, or creating microservices. Trigger on imports of fastapi, uvicorn, or mentions of API endpoint, REST service, web server, model serving.
4
+ ---
5
+ # fastapi
6
+
7
+ Use this skill for building scientific web APIs and microservices.
8
+
9
+ ## Core patterns
10
+
11
+ - **App**: `app = FastAPI(title="My API", version="1.0")`.
12
+ - **Route**: `@app.post("/predict")` with type-annotated parameters.
13
+ - **Request model**: `class PredictionRequest(BaseModel):` with Pydantic validation.
14
+ - **File upload**: `UploadFile` parameter for multipart data.
15
+ - **Run**: `uvicorn.run(app, host="0.0.0.0", port=8000)`.
16
+
17
+ ## Rules
18
+
19
+ - Always define response models with `response_model=PredictionResponse`.
20
+ - Use `HTTPException(status_code=404, detail="Not found")` for error handling.
21
+ - Add CORS middleware when serving frontend: `CORSMiddleware(allow_origins=["*"])`.
22
+ - Use `BackgroundTasks` for long-running operations.
23
+
24
+ ## Anti-patterns
25
+
26
+ - Don't block the event loop — use `async def` with `await` for I/O.
27
+ - Don't load ML models inside route handlers — load at startup with `@app.on_event("startup")`.
28
+ - Don't return raw dicts — use Pydantic response models for documentation.
29
+
30
+
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: finishing-a-development-branch
3
+ description: Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
4
+ ---
5
+
6
+ # Finishing a Development Branch
7
+
8
+ ## Overview
9
+
10
+ Guide completion of development work by presenting clear options and handling chosen workflow.
11
+
12
+ **Core principle:** Verify tests → Detect environment → Present options → Execute choice → Clean up.
13
+
14
+ **Announce at start:** "I'm using the finishing-a-development-branch skill to complete this work."
15
+
16
+ ## The Process
17
+
18
+ ### Step 1: Verify Tests
19
+
20
+ **Before presenting options, verify tests pass:**
21
+
22
+ ```bash
23
+ # Run project's test suite
24
+ npm test / cargo test / pytest / go test ./...
25
+ ```
26
+
27
+ **If tests fail:**
28
+ ```
29
+ Tests failing (<N> failures). Must fix before completing:
30
+
31
+ [Show failures]
32
+
33
+ Cannot proceed with merge/PR until tests pass.
34
+ ```
35
+
36
+ Stop. Don't proceed to Step 2.
37
+
38
+ **If tests pass:** Continue to Step 2.
39
+
40
+ ### Step 2: Detect Environment
41
+
42
+ **Determine workspace state before presenting options:**
43
+
44
+ ```bash
45
+ GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
46
+ GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
47
+ ```
48
+
49
+ This determines which menu to show and how cleanup works:
50
+
51
+ | State | Menu | Cleanup |
52
+ |-------|------|---------|
53
+ | `GIT_DIR == GIT_COMMON` (normal repo) | Standard 4 options | No worktree to clean up |
54
+ | `GIT_DIR != GIT_COMMON`, named branch | Standard 4 options | Provenance-based (see Step 6) |
55
+ | `GIT_DIR != GIT_COMMON`, detached HEAD | Reduced 3 options (no merge) | No cleanup (externally managed) |
56
+
57
+ ### Step 3: Determine Base Branch
58
+
59
+ ```bash
60
+ # Try common base branches
61
+ git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
62
+ ```
63
+
64
+ Or ask: "This branch split from main - is that correct?"
65
+
66
+ ### Step 4: Present Options
67
+
68
+ **Normal repo and named-branch worktree — present exactly these 4 options:**
69
+
70
+ ```
71
+ Implementation complete. What would you like to do?
72
+
73
+ 1. Merge back to <base-branch> locally
74
+ 2. Push and create a Pull Request
75
+ 3. Keep the branch as-is (I'll handle it later)
76
+ 4. Discard this work
77
+
78
+ Which option?
79
+ ```
80
+
81
+
82
+ ### Step 5: Execute Choice
83
+
84
+ #### Option 1: Merge Locally
85
+
86
+ ```bash
87
+ # Get main repo root for CWD safety
88
+ MAIN_ROOT=$(git -C "$(git rev-parse --git-common-dir)/.." rev-parse --show-toplevel)
89
+ cd "$MAIN_ROOT"
90
+
91
+ # Merge first — verify success before removing anything
92
+ git checkout <base-branch>
93
+ git pull
94
+ git merge <feature-branch>
95
+
96
+ # Verify tests on merged result
97
+ <test command>
98
+
99
+ # Only after merge succeeds: cleanup worktree (Step 6), then delete branch
100
+ ```
101
+
102
+ Then: Cleanup worktree (Step 6), then delete branch:
103
+
104
+ ```bash
105
+ git branch -d <feature-branch>
106
+ ```
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: flowio
3
+ description: Parse FCS (Flow Cytometry Standard) files v2.0-3.1. Extract events as NumPy arrays, read metadata/channels, convert to CSV/DataFrame, for flow cytometry data preprocessing.
4
+ ---
5
+
6
+ # FlowIO: Flow Cytometry Standard File Handler
7
+
8
+ ## Overview
9
+
10
+ FlowIO is a lightweight Python library for reading and writing Flow Cytometry Standard (FCS) files. Parse FCS metadata, extract event data, and create new FCS files with minimal dependencies. The library supports FCS versions 2.0, 3.0, and 3.1, making it ideal for backend services, data pipelines, and basic cytometry file operations.
11
+
12
+ ## When to Use This Skill
13
+
14
+ This skill should be used when:
15
+
16
+ - FCS files requiring parsing or metadata extraction
17
+ - Flow cytometry data needing conversion to NumPy arrays
18
+ - Event data requiring export to FCS format
19
+ - Multi-dataset FCS files needing separation
20
+ - Channel information extraction (scatter, fluorescence, time)
21
+ - Cytometry file validation or inspection
22
+ - Pre-processing workflows before advanced analysis
23
+
24
+ **Related Tools:** For advanced flow cytometry analysis including compensation, gating, and FlowJo/GatingML support, recommend FlowKit library as a companion to FlowIO.
25
+
26
+ ## Quick Start
27
+
28
+ ### Basic File Reading
29
+
30
+ ```python
31
+ from flowio import FlowData
32
+
33
+ # Read FCS file
34
+ flow_data = FlowData('experiment.fcs')
35
+
36
+ # Get event data as NumPy array
37
+ events = flow_data.as_array() # Shape: (events, channels)
38
+ ```
39
+
40
+ ### Creating FCS Files
41
+
42
+ ```python
43
+ import numpy as np
44
+ from flowio import create_fcs
45
+
46
+ # Prepare data
47
+ data = np.array([[100, 200, 50], [150, 180, 60]]) # 2 events, 3 channels
48
+ channels = ['FSC-A', 'SSC-A', 'FL1-A']
49
+
50
+ # Create FCS file
51
+ create_fcs('output.fcs', data, channels)
52
+ ```
53
+
54
+ ## Core Workflows
55
+
56
+ ### Reading and Parsing FCS Files
57
+
58
+ The FlowData class provides the primary interface for reading FCS files.
59
+
60
+ **Standard Reading:**
61
+
62
+ ```python
63
+ from flowio import FlowData
64
+
65
+ # Basic reading
66
+ flow = FlowData('sample.fcs')
67
+
68
+ # Access attributes
69
+ version = flow.version # '3.0', '3.1', etc.
70
+ event_count = flow.event_count # Number of events
71
+ channel_count = flow.channel_count # Number of channels
72
+ pnn_labels = flow.pnn_labels # Short channel names
73
+ pns_labels = flow.pns_labels # Descriptive stain names
74
+
75
+ # Get event data
76
+ events = flow.as_array() # Preprocessed (gain, log scaling applied)
77
+ raw_events = flow.as_array(preprocess=False) # Raw data
78
+ ```
79
+
80
+ **Memory-Efficient Metadata Reading:**
81
+
82
+ When only metadata is needed (no event data):
83
+
84
+ ```python
85
+ # Only parse TEXT segment, skip DATA and ANALYSIS
86
+ flow = FlowData('sample.fcs', only_text=True)
87
+
88
+ # Access metadata
89
+ metadata = flow.text # Dictionary of TEXT segment keywords
90
+ print(metadata.get('$DATE')) # Acquisition date
91
+ print(metadata.get('$CYT')) # Instrument name
92
+ ```
93
+
94
+ **Handling Problematic Files:**
95
+
96
+ Some FCS files have offset discrepancies or errors:
97
+
98
+ ```python
99
+ # Ignore offset discrepancies between HEADER and TEXT sections
100
+ flow = FlowData('problematic.fcs', ignore_offset_discrepancy=True)
101
+
102
+ # Use HEADER offsets instead of TEXT offsets
103
+ flow = FlowData('problematic.fcs', use_header_offsets=True)
104
+
105
+ # Ignore offset errors entirely
106
+ flow = FlowData('problematic.fcs', ignore_offset_error=True)
107
+ ```
108
+
109
+ **Excluding Null Channels:**
110
+
111
+ ```python
112
+ # Exclude specific channels during parsing
113
+ flow = FlowData('sample.fcs', null_channel_list=['Time', 'Null'])
114
+ ```
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: fluidsim
3
+ description: Framework for computational fluid dynamics simulations using Python. Use when running fluid dynamics simulations including Navier-Stokes equations (2D/3D), shallow water equations, stratified flows, or when analyzing turbulence, vortex dynamics, or geophysical flows. Provides pseudospectral methods with FFT, HPC support, and comprehensive output analysis.
4
+ ---
5
+
6
+ # FluidSim
7
+
8
+ ## Overview
9
+
10
+ FluidSim is an object-oriented Python framework for high-performance computational fluid dynamics (CFD) simulations. It provides solvers for periodic-domain equations using pseudospectral methods with FFT, delivering performance comparable to Fortran/C++ while maintaining Python's ease of use.
11
+
12
+ **Key strengths**:
13
+ - Multiple solvers: 2D/3D Navier-Stokes, shallow water, stratified flows
14
+ - High performance: Pythran/Transonic compilation, MPI parallelization
15
+ - Complete workflow: Parameter configuration, simulation execution, output analysis
16
+ - Interactive analysis: Python-based post-processing and visualization
17
+
18
+ ## Core Capabilities
19
+
20
+ # With FFT support (required for most solvers)
21
+ uv pip install "fluidsim[fft]"
22
+
23
+ # With MPI for parallel computing
24
+ uv pip install "fluidsim[fft,mpi]"
25
+ ```
26
+
27
+ Set environment variables for output directories (optional):
28
+
29
+ ```bash
30
+ export FLUIDSIM_PATH=/path/to/simulation/outputs
31
+ export FLUIDDYN_PATH_SCRATCH=/path/to/working/directory
32
+ ```
33
+
34
+ No API keys or authentication required.
35
+
36
+ See `(see docs)` for complete installation instructions and environment configuration.
37
+
38
+ ### 2. Running Simulations
39
+
40
+ Standard workflow consists of five steps:
41
+
42
+ **Step 1**: Import solver
43
+ ```python
44
+ from fluidsim.solvers.ns2d.solver import Simul
45
+ ```
46
+
47
+ **Step 2**: Create and configure parameters
48
+ ```python
49
+ params = Simul.create_default_params()
50
+ params.oper.nx = params.oper.ny = 256
51
+ params.oper.Lx = params.oper.Ly = 2 * 3.14159
52
+ params.nu_2 = 1e-3
53
+
54
+ ### 3. Available Solvers
55
+
56
+ Choose solver based on physical problem:
57
+
58
+ **2D Navier-Stokes** (`ns2d`): 2D turbulence, vortex dynamics
59
+ ```python
60
+ from fluidsim.solvers.ns2d.solver import Simul
61
+ ```
62
+
63
+ **3D Navier-Stokes** (`ns3d`): 3D turbulence, realistic flows
64
+ ```python
65
+ from fluidsim.solvers.ns3d.solver import Simul
66
+ ```
67
+
68
+ **Stratified flows** (`ns2d.strat`, `ns3d.strat`): Oceanic/atmospheric flows
69
+
70
+ ### 4. Parameter Configuration
71
+
72
+ Parameters are organized hierarchically and accessed via dot notation:
73
+
74
+ **Domain and resolution**:
75
+ ```python
76
+ params.oper.nx = 256 # grid points
77
+ params.oper.Lx = 2 * pi # domain size
78
+ ```
79
+
80
+ **Physical parameters**:
81
+ ```python
82
+ params.nu_2 = 1e-3 # viscosity
83
+ params.nu_4 = 0 # hyperviscosity (optional)
84
+ ```
85
+
86
+ ### 5. Output and Analysis
87
+
88
+ FluidSim produces multiple output types automatically saved during simulation:
89
+
90
+ **Physical fields**: Velocity, vorticity in HDF5 format
91
+ ```python
92
+ sim.output.phys_fields.plot("vorticity")
93
+ sim.output.phys_fields.plot("vx")
94
+ ```
95
+
96
+ **Spatial means**: Time series of volume-averaged quantities
97
+ ```python
98
+ sim.output.spatial_means.plot()
99
+ ```
100
+
101
+ ### 6. Advanced Features
102
+
103
+ **Custom forcing**: Maintain turbulence or drive specific dynamics
104
+ ```python
105
+ params.forcing.enable = True
106
+ params.forcing.type = "tcrandom" # time-correlated random forcing
107
+ params.forcing.forcing_rate = 1.0
108
+ ```