pi-skill-search 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -5
- package/README.md +35 -30
- package/SPEC.md +1083 -0
- package/install.mjs +47 -0
- package/package.json +50 -46
- package/src/categories.ts +3 -24
- package/src/indexer.ts +1 -7
- package/src/scanner.ts +59 -15
- package/src/search.ts +2 -2
- package/src/types.ts +4 -1
- /package/{skills → data}/adaptyv/SKILL.md +0 -0
- /package/{skills → data}/add-community-extension/SKILL.md +0 -0
- /package/{skills → data}/aeon/SKILL.md +0 -0
- /package/{skills → data}/ai-slop-cleaner/SKILL.md +0 -0
- /package/{skills → data}/anndata/SKILL.md +0 -0
- /package/{skills → data}/arboreto/SKILL.md +0 -0
- /package/{skills → data}/ask/SKILL.md +0 -0
- /package/{skills → data}/astropy/SKILL.md +0 -0
- /package/{skills → data}/async-worker-recovery/SKILL.md +0 -0
- /package/{skills → data}/autopilot/SKILL.md +0 -0
- /package/{skills → data}/autoresearch/SKILL.md +0 -0
- /package/{skills → data}/autoskill/SKILL.md +0 -0
- /package/{skills → data}/babysit/SKILL.md +0 -0
- /package/{skills → data}/benchling-integration/SKILL.md +0 -0
- /package/{skills → data}/bgpt-paper-search/SKILL.md +0 -0
- /package/{skills → data}/biopython/SKILL.md +0 -0
- /package/{skills → data}/bioservices/SKILL.md +0 -0
- /package/{skills → data}/brainstorming/SKILL.md +0 -0
- /package/{skills → data}/cancel/SKILL.md +0 -0
- /package/{skills → data}/ccg/SKILL.md +0 -0
- /package/{skills → data}/celery-pipeline/SKILL.md +0 -0
- /package/{skills → data}/cellxgene-census/SKILL.md +0 -0
- /package/{skills → data}/child-pi-spawning/SKILL.md +0 -0
- /package/{skills → data}/cirq/SKILL.md +0 -0
- /package/{skills → data}/citation-management/SKILL.md +0 -0
- /package/{skills → data}/clinical-decision-support/SKILL.md +0 -0
- /package/{skills → data}/clinical-reports/SKILL.md +0 -0
- /package/{skills → data}/clinical-trial/SKILL.md +0 -0
- /package/{skills → data}/cobrapy/SKILL.md +0 -0
- /package/{skills → data}/configure-notifications/SKILL.md +0 -0
- /package/{skills → data}/consciousness-council/SKILL.md +0 -0
- /package/{skills → data}/context-artifact-hygiene/SKILL.md +0 -0
- /package/{skills → data}/context-mode-ops/SKILL.md +0 -0
- /package/{skills → data}/dask/SKILL.md +0 -0
- /package/{skills → data}/database-lookup/SKILL.md +0 -0
- /package/{skills → data}/datamol/SKILL.md +0 -0
- /package/{skills → data}/debug/SKILL.md +0 -0
- /package/{skills → data}/deep-dive/SKILL.md +0 -0
- /package/{skills → data}/deep-interview/SKILL.md +0 -0
- /package/{skills → data}/deepchem/SKILL.md +0 -0
- /package/{skills → data}/deepinit/SKILL.md +0 -0
- /package/{skills → data}/deeptools/SKILL.md +0 -0
- /package/{skills → data}/delegation-patterns/SKILL.md +0 -0
- /package/{skills → data}/depmap/SKILL.md +0 -0
- /package/{skills → data}/dhdna-profiler/SKILL.md +0 -0
- /package/{skills → data}/diffdock/SKILL.md +0 -0
- /package/{skills → data}/dispatching-parallel-agents/SKILL.md +0 -0
- /package/{skills → data}/dnanexus-integration/SKILL.md +0 -0
- /package/{skills → data}/do/SKILL.md +0 -0
- /package/{skills → data}/docker-sandbox/SKILL.md +0 -0
- /package/{skills → data}/docx/SKILL.md +0 -0
- /package/{skills → data}/esm/SKILL.md +0 -0
- /package/{skills → data}/etetoolkit/SKILL.md +0 -0
- /package/{skills → data}/event-log-tracing/SKILL.md +0 -0
- /package/{skills → data}/exa-search/SKILL.md +0 -0
- /package/{skills → data}/executing-plans/SKILL.md +0 -0
- /package/{skills → data}/exploratory-data-analysis/SKILL.md +0 -0
- /package/{skills → data}/external-context/SKILL.md +0 -0
- /package/{skills → data}/fastapi/SKILL.md +0 -0
- /package/{skills → data}/finishing-a-development-branch/SKILL.md +0 -0
- /package/{skills → data}/flowio/SKILL.md +0 -0
- /package/{skills → data}/fluidsim/SKILL.md +0 -0
- /package/{skills → data}/generate-image/SKILL.md +0 -0
- /package/{skills → data}/geniml/SKILL.md +0 -0
- /package/{skills → data}/geomaster/SKILL.md +0 -0
- /package/{skills → data}/geopandas/SKILL.md +0 -0
- /package/{skills → data}/get-available-resources/SKILL.md +0 -0
- /package/{skills → data}/gget/SKILL.md +0 -0
- /package/{skills → data}/ginkgo-cloud-lab/SKILL.md +0 -0
- /package/{skills → data}/git-master/SKILL.md +0 -0
- /package/{skills → data}/glycoengineering/SKILL.md +0 -0
- /package/{skills → data}/gtars/SKILL.md +0 -0
- /package/{skills → data}/hackernews-frontpage/SKILL.md +0 -0
- /package/{skills → data}/histolab/SKILL.md +0 -0
- /package/{skills → data}/how-it-works/SKILL.md +0 -0
- /package/{skills → data}/hud/SKILL.md +0 -0
- /package/{skills → data}/hugging-science/SKILL.md +0 -0
- /package/{skills → data}/huggingface/SKILL.md +0 -0
- /package/{skills → data}/hypogenic/SKILL.md +0 -0
- /package/{skills → data}/hypothesis-generation/SKILL.md +0 -0
- /package/{skills → data}/imaging-data-commons/SKILL.md +0 -0
- /package/{skills → data}/infographics/SKILL.md +0 -0
- /package/{skills → data}/iso-13485-certification/SKILL.md +0 -0
- /package/{skills → data}/knowledge-agent/SKILL.md +0 -0
- /package/{skills → data}/labarchive-integration/SKILL.md +0 -0
- /package/{skills → data}/lamindb/SKILL.md +0 -0
- /package/{skills → data}/landsat/SKILL.md +0 -0
- /package/{skills → data}/latchbio-integration/SKILL.md +0 -0
- /package/{skills → data}/latex-posters/SKILL.md +0 -0
- /package/{skills → data}/learn-codebase/SKILL.md +0 -0
- /package/{skills → data}/learner/SKILL.md +0 -0
- /package/{skills → data}/literature-review/SKILL.md +0 -0
- /package/{skills → data}/live-agent-lifecycle/SKILL.md +0 -0
- /package/{skills → data}/mailbox-interactive/SKILL.md +0 -0
- /package/{skills → data}/make-plan/SKILL.md +0 -0
- /package/{skills → data}/markdown-mermaid-writing/SKILL.md +0 -0
- /package/{skills → data}/market-research-reports/SKILL.md +0 -0
- /package/{skills → data}/markitdown/SKILL.md +0 -0
- /package/{skills → data}/markitdown-docs/SKILL.md +0 -0
- /package/{skills → data}/matchms/SKILL.md +0 -0
- /package/{skills → data}/matlab/SKILL.md +0 -0
- /package/{skills → data}/matplotlib/SKILL.md +0 -0
- /package/{skills → data}/mcp-setup/SKILL.md +0 -0
- /package/{skills → data}/medchem/SKILL.md +0 -0
- /package/{skills → data}/mem-search/SKILL.md +0 -0
- /package/{skills → data}/modal/SKILL.md +0 -0
- /package/{skills → data}/model-routing-context/SKILL.md +0 -0
- /package/{skills → data}/molecular-dynamics/SKILL.md +0 -0
- /package/{skills → data}/molfeat/SKILL.md +0 -0
- /package/{skills → data}/multi-perspective-review/SKILL.md +0 -0
- /package/{skills → data}/networkx/SKILL.md +0 -0
- /package/{skills → data}/neurokit2/SKILL.md +0 -0
- /package/{skills → data}/neuropixels-analysis/SKILL.md +0 -0
- /package/{skills → data}/nilearn/SKILL.md +0 -0
- /package/{skills → data}/observability-reliability/SKILL.md +0 -0
- /package/{skills → data}/omc-doctor/SKILL.md +0 -0
- /package/{skills → data}/omc-reference/SKILL.md +0 -0
- /package/{skills → data}/omc-setup/SKILL.md +0 -0
- /package/{skills → data}/omc-teams/SKILL.md +0 -0
- /package/{skills → data}/omero-integration/SKILL.md +0 -0
- /package/{skills → data}/open-notebook/SKILL.md +0 -0
- /package/{skills → data}/openephys/SKILL.md +0 -0
- /package/{skills → data}/opentrons-integration/SKILL.md +0 -0
- /package/{skills → data}/optimize-for-gpu/SKILL.md +0 -0
- /package/{skills → data}/orchestration/SKILL.md +0 -0
- /package/{skills → data}/ownership-session-security/SKILL.md +0 -0
- /package/{skills → data}/paper-lookup/SKILL.md +0 -0
- /package/{skills → data}/paperzilla/SKILL.md +0 -0
- /package/{skills → data}/parallel-web/SKILL.md +0 -0
- /package/{skills → data}/pathfinder/SKILL.md +0 -0
- /package/{skills → data}/pathml/SKILL.md +0 -0
- /package/{skills → data}/pdf/SKILL.md +0 -0
- /package/{skills → data}/peer-review/SKILL.md +0 -0
- /package/{skills → data}/pennylane/SKILL.md +0 -0
- /package/{skills → data}/phylogenetics/SKILL.md +0 -0
- /package/{skills → data}/pi-extension-lifecycle/SKILL.md +0 -0
- /package/{skills → data}/plan/SKILL.md +0 -0
- /package/{skills → data}/polars/SKILL.md +0 -0
- /package/{skills → data}/polars-bio/SKILL.md +0 -0
- /package/{skills → data}/pptx/SKILL.md +0 -0
- /package/{skills → data}/pptx-posters/SKILL.md +0 -0
- /package/{skills → data}/primekg/SKILL.md +0 -0
- /package/{skills → data}/project-session-manager/SKILL.md +0 -0
- /package/{skills → data}/protocolsio-integration/SKILL.md +0 -0
- /package/{skills → data}/pubmed-search/SKILL.md +0 -0
- /package/{skills → data}/pufferlib/SKILL.md +0 -0
- /package/{skills → data}/pydeseq2/SKILL.md +0 -0
- /package/{skills → data}/pydicom/SKILL.md +0 -0
- /package/{skills → data}/pyhealth/SKILL.md +0 -0
- /package/{skills → data}/pylabrobot/SKILL.md +0 -0
- /package/{skills → data}/pymatgen/SKILL.md +0 -0
- /package/{skills → data}/pymc/SKILL.md +0 -0
- /package/{skills → data}/pymoo/SKILL.md +0 -0
- /package/{skills → data}/pyopenms/SKILL.md +0 -0
- /package/{skills → data}/pysam/SKILL.md +0 -0
- /package/{skills → data}/pyspark/SKILL.md +0 -0
- /package/{skills → data}/pytdc/SKILL.md +0 -0
- /package/{skills → data}/pytorch/SKILL.md +0 -0
- /package/{skills → data}/pytorch-lightning/SKILL.md +0 -0
- /package/{skills → data}/pyzotero/SKILL.md +0 -0
- /package/{skills → data}/qiskit/SKILL.md +0 -0
- /package/{skills → data}/qutip/SKILL.md +0 -0
- /package/{skills → data}/ralph/SKILL.md +0 -0
- /package/{skills → data}/ralplan/SKILL.md +0 -0
- /package/{skills → data}/rdflib/SKILL.md +0 -0
- /package/{skills → data}/rdkit/SKILL.md +0 -0
- /package/{skills → data}/read-only-explorer/SKILL.md +0 -0
- /package/{skills → data}/receiving-code-review/SKILL.md +0 -0
- /package/{skills → data}/release/SKILL.md +0 -0
- /package/{skills → data}/remember/SKILL.md +0 -0
- /package/{skills → data}/requesting-code-review/SKILL.md +0 -0
- /package/{skills → data}/requirements-to-task-packet/SKILL.md +0 -0
- /package/{skills → data}/research-grants/SKILL.md +0 -0
- /package/{skills → data}/research-lookup/SKILL.md +0 -0
- /package/{skills → data}/research-reproducibility/SKILL.md +0 -0
- /package/{skills → data}/resource-discovery-config/SKILL.md +0 -0
- /package/{skills → data}/rowan/SKILL.md +0 -0
- /package/{skills → data}/runtime-state-reader/SKILL.md +0 -0
- /package/{skills → data}/safe-bash/SKILL.md +0 -0
- /package/{skills → data}/scanpy/SKILL.md +0 -0
- /package/{skills → data}/scholar-evaluation/SKILL.md +0 -0
- /package/{skills → data}/scientific-brainstorming/SKILL.md +0 -0
- /package/{skills → data}/scientific-critical-thinking/SKILL.md +0 -0
- /package/{skills → data}/scientific-schematics/SKILL.md +0 -0
- /package/{skills → data}/scientific-slides/SKILL.md +0 -0
- /package/{skills → data}/scientific-visualization/SKILL.md +0 -0
- /package/{skills → data}/scientific-writing/SKILL.md +0 -0
- /package/{skills → data}/scikit-bio/SKILL.md +0 -0
- /package/{skills → data}/scikit-learn/SKILL.md +0 -0
- /package/{skills → data}/scikit-survival/SKILL.md +0 -0
- /package/{skills → data}/sciomc/SKILL.md +0 -0
- /package/{skills → data}/scvelo/SKILL.md +0 -0
- /package/{skills → data}/scvi-tools/SKILL.md +0 -0
- /package/{skills → data}/seaborn/SKILL.md +0 -0
- /package/{skills → data}/secure-agent-orchestration-review/SKILL.md +0 -0
- /package/{skills → data}/self-improve/SKILL.md +0 -0
- /package/{skills → data}/semantic-compression/SKILL.md +0 -0
- /package/{skills → data}/setup/SKILL.md +0 -0
- /package/{skills → data}/shap/SKILL.md +0 -0
- /package/{skills → data}/simpy/SKILL.md +0 -0
- /package/{skills → data}/skill/SKILL.md +0 -0
- /package/{skills → data}/skill-search/SKILL.md +0 -0
- /package/{skills → data}/skillify/SKILL.md +0 -0
- /package/{skills → data}/smart-explore/SKILL.md +0 -0
- /package/{skills → data}/sqlite-pandas/SKILL.md +0 -0
- /package/{skills → data}/stable-baselines3/SKILL.md +0 -0
- /package/{skills → data}/state-mutation-locking/SKILL.md +0 -0
- /package/{skills → data}/statistical-analysis/SKILL.md +0 -0
- /package/{skills → data}/statsmodels/SKILL.md +0 -0
- /package/{skills → data}/subagent-driven-development/SKILL.md +0 -0
- /package/{skills → data}/sympy/SKILL.md +0 -0
- /package/{skills → data}/system-prompts/SKILL.md +0 -0
- /package/{skills → data}/systematic-debugging/SKILL.md +0 -0
- /package/{skills → data}/team/SKILL.md +0 -0
- /package/{skills → data}/test-driven-development/SKILL.md +0 -0
- /package/{skills → data}/tiledbvcf/SKILL.md +0 -0
- /package/{skills → data}/timeline-report/SKILL.md +0 -0
- /package/{skills → data}/timesfm-forecasting/SKILL.md +0 -0
- /package/{skills → data}/torch-geometric/SKILL.md +0 -0
- /package/{skills → data}/torchdrug/SKILL.md +0 -0
- /package/{skills → data}/trace/SKILL.md +0 -0
- /package/{skills → data}/transformers/SKILL.md +0 -0
- /package/{skills → data}/treatment-plans/SKILL.md +0 -0
- /package/{skills → data}/ui-render-performance/SKILL.md +0 -0
- /package/{skills → data}/ultragoal/SKILL.md +0 -0
- /package/{skills → data}/ultraqa/SKILL.md +0 -0
- /package/{skills → data}/ultrawork/SKILL.md +0 -0
- /package/{skills → data}/umap-learn/SKILL.md +0 -0
- /package/{skills → data}/usfiscaldata/SKILL.md +0 -0
- /package/{skills → data}/using-git-worktrees/SKILL.md +0 -0
- /package/{skills → data}/using-superpowers/SKILL.md +0 -0
- /package/{skills → data}/using-vetc/SKILL.md +0 -0
- /package/{skills → data}/vaex/SKILL.md +0 -0
- /package/{skills → data}/venue-templates/SKILL.md +0 -0
- /package/{skills → data}/verification-before-completion/SKILL.md +0 -0
- /package/{skills → data}/verification-before-done/SKILL.md +0 -0
- /package/{skills → data}/verify/SKILL.md +0 -0
- /package/{skills → data}/version-bump/SKILL.md +0 -0
- /package/{skills → data}/vetc-analyze-ba/SKILL.md +0 -0
- /package/{skills → data}/vetc-analyze-codebase/SKILL.md +0 -0
- /package/{skills → data}/vetc-api-design/SKILL.md +0 -0
- /package/{skills → data}/vetc-brainstorming/SKILL.md +0 -0
- /package/{skills → data}/vetc-change-proposal/SKILL.md +0 -0
- /package/{skills → data}/vetc-cicd/SKILL.md +0 -0
- /package/{skills → data}/vetc-continuous-learning/SKILL.md +0 -0
- /package/{skills → data}/vetc-deep-interview/SKILL.md +0 -0
- /package/{skills → data}/vetc-docgen/SKILL.md +0 -0
- /package/{skills → data}/vetc-frontend-patterns/SKILL.md +0 -0
- /package/{skills → data}/vetc-iterative-retrieval/SKILL.md +0 -0
- /package/{skills → data}/vetc-java-patterns/SKILL.md +0 -0
- /package/{skills → data}/vetc-meta-skill-creator/SKILL.md +0 -0
- /package/{skills → data}/vetc-oracle-patterns/SKILL.md +0 -0
- /package/{skills → data}/vetc-performance-testing/SKILL.md +0 -0
- /package/{skills → data}/vetc-pr-response/SKILL.md +0 -0
- /package/{skills → data}/vetc-ralph/SKILL.md +0 -0
- /package/{skills → data}/vetc-ralplan/SKILL.md +0 -0
- /package/{skills → data}/vetc-receiving-review/SKILL.md +0 -0
- /package/{skills → data}/vetc-reconcile-patterns/SKILL.md +0 -0
- /package/{skills → data}/vetc-refactoring/SKILL.md +0 -0
- /package/{skills → data}/vetc-runbook/SKILL.md +0 -0
- /package/{skills → data}/vetc-sast/SKILL.md +0 -0
- /package/{skills → data}/vetc-sdlc/SKILL.md +0 -0
- /package/{skills → data}/vetc-security/SKILL.md +0 -0
- /package/{skills → data}/vetc-spec-driven/SKILL.md +0 -0
- /package/{skills → data}/vetc-spec-quality/SKILL.md +0 -0
- /package/{skills → data}/vetc-systematic-debugging/SKILL.md +0 -0
- /package/{skills → data}/vetc-tdd/SKILL.md +0 -0
- /package/{skills → data}/vetc-thinking-pm/SKILL.md +0 -0
- /package/{skills → data}/vetc-ui-visual-qa/SKILL.md +0 -0
- /package/{skills → data}/vetc-verify/SKILL.md +0 -0
- /package/{skills → data}/visual-verdict/SKILL.md +0 -0
- /package/{skills → data}/what-if-oracle/SKILL.md +0 -0
- /package/{skills → data}/widget-rendering/SKILL.md +0 -0
- /package/{skills → data}/wiki/SKILL.md +0 -0
- /package/{skills → data}/workspace-isolation/SKILL.md +0 -0
- /package/{skills → data}/worktree-isolation/SKILL.md +0 -0
- /package/{skills → data}/wowerpoint/SKILL.md +0 -0
- /package/{skills → data}/writer-memory/SKILL.md +0 -0
- /package/{skills → data}/writing-plans/SKILL.md +0 -0
- /package/{skills → data}/writing-skills/SKILL.md +0 -0
- /package/{skills → data}/xgboost/SKILL.md +0 -0
- /package/{skills → data}/xgboost-ts/SKILL.md +0 -0
- /package/{skills → data}/xlsx/SKILL.md +0 -0
- /package/{skills → data}/zarr-python/SKILL.md +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.0 (2026-05-23)
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **Packaging conflict**: Renamed `skills/` to `data/` to prevent Pi from discovering and inject-all-ing 284 skills
|
|
7
|
+
- **Install script**: Created `install.mjs` to copy `skill-search` skill to `~/.pi/agent/skills/` (where Pi discovers skills)
|
|
8
|
+
- **Scoring weights**: Changed from +5/+2 to +3/+1 per SPEC §5.1 for better relevance scoring
|
|
9
|
+
- **Unused nameIndex**: Removed from SkillIndex interface and buildIndex() function
|
|
10
|
+
- **EOF newline**: Added missing newline in categories.ts
|
|
11
|
+
- **SPEC §7.4**: Updated documentation to always return `{ systemPrompt }`, never undefined
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Scanner now scans `data/` directory instead of `skills/`
|
|
15
|
+
- Extension registers `skill-search` tool via `before_agent_start` event
|
|
16
|
+
- 284 skills corpus in `data/` (Pi does not discover this directory)
|
|
17
|
+
|
|
3
18
|
## 0.1.0 (2026-05-17)
|
|
4
19
|
|
|
5
20
|
### Added
|
|
@@ -11,10 +26,7 @@
|
|
|
11
26
|
- Strip regex to remove Pi's `<available_skills>` block from system prompt
|
|
12
27
|
- Category summary injection via `before_agent_start` event
|
|
13
28
|
- Proactive suggestion hook for Python package detection (opt-in)
|
|
14
|
-
- **
|
|
15
|
-
- scientific-agent-skills (137), oh-my-claudecode (29), vetc-dev-kit (33)
|
|
16
|
-
- pi-crew (27), superpowers (14), oh-my-pi (2), claude-mem (12)
|
|
17
|
-
- gstack (1), context-mode (1), spec-kit (1)
|
|
29
|
+
- **284 bundled skills** from 10 source repos
|
|
18
30
|
- 14/14 categories, 0 Other
|
|
19
31
|
- 123 tests across 14 test files including search quality benchmarks
|
|
20
|
-
- Biome lint + TypeScript strict mode clean
|
|
32
|
+
- Biome lint + TypeScript strict mode clean
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## Problem
|
|
6
6
|
|
|
7
|
-
Pi injects **all** skill `<available_skills>` descriptions into every agent's system prompt. With 258 skills across 14 categories, that's ~40,000+ tokens wasted per turn — even when the agent never uses any skill.
|
|
7
|
+
Pi injects **all** skill `<available_skills>` descriptions into every agent's system prompt. With 258+ skills across 14 categories, that's ~40,000+ tokens wasted per turn — even when the agent never uses any skill.
|
|
8
8
|
|
|
9
9
|
## Solution
|
|
10
10
|
|
|
@@ -14,12 +14,21 @@ Pi injects **all** skill `<available_skills>` descriptions into every agent's sy
|
|
|
14
14
|
|
|
15
15
|
Result: **~97% token reduction** in skill-related system prompt content.
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Installation
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
# Install
|
|
21
|
-
|
|
20
|
+
# Install from local source
|
|
21
|
+
npx pi install .
|
|
22
|
+
|
|
23
|
+
# Or from npm (when published)
|
|
24
|
+
npm install pi-skill-search
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The `install.mjs` script automatically sets up the `skill-search` skill in `~/.pi/agent/skills/` so Pi can discover it.
|
|
28
|
+
|
|
29
|
+
## Quick Start
|
|
22
30
|
|
|
31
|
+
```bash
|
|
23
32
|
# Run tests
|
|
24
33
|
npm test
|
|
25
34
|
|
|
@@ -31,7 +40,9 @@ npx tsx scripts/build-skills-fixture.ts
|
|
|
31
40
|
|
|
32
41
|
```
|
|
33
42
|
index.ts ← Extension entry (before_agent_start + skill-search tool)
|
|
43
|
+
install.mjs ← Post-install: copy skill-search to ~/.pi/agent/skills/
|
|
34
44
|
src/
|
|
45
|
+
scanner.ts ← findCorpusPath() + scanSkillDirectory()
|
|
35
46
|
types.ts ← PiSkill, SkillEntry, SearchResult, SkillIndex
|
|
36
47
|
text.ts ← Tokenizer (SPEC §5.3)
|
|
37
48
|
synonyms.ts ← Synonym dictionary + expandQuery
|
|
@@ -41,19 +52,22 @@ src/
|
|
|
41
52
|
strip.ts ← Regex strip <available_skills>
|
|
42
53
|
format.ts ← Category summary + result formatting
|
|
43
54
|
proactive.ts ← Python package detection (Phase 10, opt-in)
|
|
55
|
+
data/ ← 284 skills corpus for search (not discovered by Pi)
|
|
44
56
|
test/
|
|
45
57
|
text.test.ts ← 12 tests
|
|
46
58
|
synonyms.test.ts ← 8 tests
|
|
47
59
|
classify.test.ts ← 8 tests
|
|
48
60
|
indexer.test.ts ← 12 tests
|
|
49
61
|
search.test.ts ← 11 tests
|
|
50
|
-
format.test.ts
|
|
62
|
+
format.test.ts ← 12 tests
|
|
51
63
|
strip.test.ts ← 6 tests
|
|
52
64
|
lifecycle.test.ts ← 15 tests
|
|
53
|
-
integration.test.ts ← 8 tests (
|
|
65
|
+
integration.test.ts ← 8 tests (284-skill corpus)
|
|
54
66
|
failure-isolation.test.ts ← 3 tests
|
|
55
67
|
coverage.test.ts ← 3 tests (classifier coverage)
|
|
56
68
|
proactive.test.ts ← 9 tests
|
|
69
|
+
scanner.test.ts ← 7 tests
|
|
70
|
+
search-quality.test.ts ← 10 tests
|
|
57
71
|
```
|
|
58
72
|
|
|
59
73
|
## Tool: `skill-search`
|
|
@@ -61,37 +75,28 @@ test/
|
|
|
61
75
|
| Parameter | Type | Required | Description |
|
|
62
76
|
|-----------|------|----------|-------------|
|
|
63
77
|
| `query` | string | ✅ | Search query (1–500 chars) |
|
|
64
|
-
| `limit` | number | ❌ | Max results (1
|
|
78
|
+
| `limit` | number | ❌ | Max results (1-20, default 5) |
|
|
65
79
|
|
|
66
80
|
Returns formatted skill descriptions with name, description, category, and file path.
|
|
67
81
|
|
|
68
|
-
##
|
|
82
|
+
## How It Works
|
|
69
83
|
|
|
70
|
-
|
|
84
|
+
1. **At session start**: Extension scans `data/` (284 skills) and builds a search index
|
|
85
|
+
2. **On `before_agent_start`**: Strips `<available_skills>` block, injects category summary, registers `skill-search` tool
|
|
86
|
+
3. **On `skill-search` call**: Returns top matching skills with path for `read` tool
|
|
71
87
|
|
|
72
|
-
##
|
|
88
|
+
## Configuration
|
|
73
89
|
|
|
74
|
-
|
|
90
|
+
No configuration needed — the extension auto-indexes skills from `data/` on startup.
|
|
75
91
|
|
|
76
|
-
|
|
77
|
-
|---|---|
|
|
78
|
-
| Cheminformatics & Drug Discovery | rdkit |
|
|
79
|
-
| Bioinformatics & Genomics | scanpy, biopython, huggingface, openephys, rdkit |
|
|
80
|
-
| Machine Learning & AI | pytorch, huggingface, xgboost, xgboost-ts |
|
|
81
|
-
| Clinical & Medical | clinical-trial, pubmed-search |
|
|
82
|
-
| Physics & Quantum | astropy |
|
|
83
|
-
| Databases & Data Sources | sqlite-pandas, fastapi, pyspark, pubmed-search |
|
|
84
|
-
| Data Analysis & Visualization | matplotlib, statsmodels, xgboost-ts, nilearn, pyspark |
|
|
85
|
-
| Scientific Writing & Communication | matplotlib, pubmed-search, research-reproducibility |
|
|
86
|
-
| Geospatial & Remote Sensing | landsat, astropy, matplotlib |
|
|
87
|
-
| Lab Automation & Integration | docker-sandbox, celery-pipeline |
|
|
88
|
-
| Time Series & Forecasting | statsmodels, xgboost-ts, openephys |
|
|
89
|
-
| Materials Science & Engineering | pymatgen |
|
|
90
|
-
| Research Methodology | research-reproducibility, statsmodels |
|
|
91
|
-
| Integration Platforms | rdflib, markitdown-docs, sqlite-pandas |
|
|
92
|
-
| Meta | skill-search (this tool usage guide) |
|
|
92
|
+
## Design Decisions
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
| Decision | Rationale |
|
|
95
|
+
|----------|-----------|
|
|
96
|
+
| Skills in `data/` not `skills/` | Pi would discover them and inject-all again |
|
|
97
|
+
| skill-search in `~/.pi/agent/skills/` | Pi discovers skills here, not in extension dirs |
|
|
98
|
+
| install.mjs for skill setup | pi install doesn't auto-discover extension skills |
|
|
95
99
|
|
|
96
100
|
## License
|
|
97
|
-
|
|
101
|
+
|
|
102
|
+
MIT
|