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.
- package/CHANGELOG.md +20 -0
- package/LICENSE +21 -0
- package/README.md +97 -0
- package/index.ts +163 -0
- package/package.json +48 -0
- package/skills/adaptyv/SKILL.md +92 -0
- package/skills/add-community-extension/SKILL.md +85 -0
- package/skills/aeon/SKILL.md +111 -0
- package/skills/ai-slop-cleaner/SKILL.md +118 -0
- package/skills/anndata/SKILL.md +83 -0
- package/skills/arboreto/SKILL.md +107 -0
- package/skills/ask/SKILL.md +55 -0
- package/skills/astropy/SKILL.md +30 -0
- package/skills/async-worker-recovery/SKILL.md +44 -0
- package/skills/autopilot/SKILL.md +63 -0
- package/skills/autoresearch/SKILL.md +64 -0
- package/skills/autoskill/SKILL.md +116 -0
- package/skills/babysit/SKILL.md +43 -0
- package/skills/benchling-integration/SKILL.md +106 -0
- package/skills/bgpt-paper-search/SKILL.md +67 -0
- package/skills/biopython/SKILL.md +29 -0
- package/skills/bioservices/SKILL.md +96 -0
- package/skills/brainstorming/SKILL.md +104 -0
- package/skills/cancel/SKILL.md +85 -0
- package/skills/ccg/SKILL.md +87 -0
- package/skills/celery-pipeline/SKILL.md +30 -0
- package/skills/cellxgene-census/SKILL.md +104 -0
- package/skills/child-pi-spawning/SKILL.md +85 -0
- package/skills/cirq/SKILL.md +113 -0
- package/skills/citation-management/SKILL.md +91 -0
- package/skills/clinical-decision-support/SKILL.md +117 -0
- package/skills/clinical-reports/SKILL.md +118 -0
- package/skills/clinical-trial/SKILL.md +28 -0
- package/skills/cobrapy/SKILL.md +116 -0
- package/skills/configure-notifications/SKILL.md +85 -0
- package/skills/consciousness-council/SKILL.md +120 -0
- package/skills/context-artifact-hygiene/SKILL.md +85 -0
- package/skills/context-mode-ops/SKILL.md +87 -0
- package/skills/dask/SKILL.md +85 -0
- package/skills/database-lookup/SKILL.md +118 -0
- package/skills/datamol/SKILL.md +108 -0
- package/skills/debug/SKILL.md +32 -0
- package/skills/deep-dive/SKILL.md +114 -0
- package/skills/deep-interview/SKILL.md +90 -0
- package/skills/deepchem/SKILL.md +117 -0
- package/skills/deepinit/SKILL.md +100 -0
- package/skills/deeptools/SKILL.md +118 -0
- package/skills/delegation-patterns/SKILL.md +56 -0
- package/skills/depmap/SKILL.md +94 -0
- package/skills/dhdna-profiler/SKILL.md +86 -0
- package/skills/diffdock/SKILL.md +101 -0
- package/skills/dispatching-parallel-agents/SKILL.md +119 -0
- package/skills/dnanexus-integration/SKILL.md +118 -0
- package/skills/do/SKILL.md +48 -0
- package/skills/docker-sandbox/SKILL.md +29 -0
- package/skills/docx/SKILL.md +119 -0
- package/skills/esm/SKILL.md +116 -0
- package/skills/etetoolkit/SKILL.md +103 -0
- package/skills/event-log-tracing/SKILL.md +85 -0
- package/skills/exa-search/SKILL.md +72 -0
- package/skills/executing-plans/SKILL.md +69 -0
- package/skills/exploratory-data-analysis/SKILL.md +118 -0
- package/skills/external-context/SKILL.md +80 -0
- package/skills/fastapi/SKILL.md +30 -0
- package/skills/finishing-a-development-branch/SKILL.md +106 -0
- package/skills/flowio/SKILL.md +114 -0
- package/skills/fluidsim/SKILL.md +108 -0
- package/skills/generate-image/SKILL.md +108 -0
- package/skills/geniml/SKILL.md +117 -0
- package/skills/geomaster/SKILL.md +109 -0
- package/skills/geopandas/SKILL.md +114 -0
- package/skills/get-available-resources/SKILL.md +100 -0
- package/skills/gget/SKILL.md +111 -0
- package/skills/ginkgo-cloud-lab/SKILL.md +52 -0
- package/skills/git-master/SKILL.md +85 -0
- package/skills/glycoengineering/SKILL.md +104 -0
- package/skills/gtars/SKILL.md +104 -0
- package/skills/hackernews-frontpage/SKILL.md +46 -0
- package/skills/histolab/SKILL.md +98 -0
- package/skills/how-it-works/SKILL.md +25 -0
- package/skills/hud/SKILL.md +86 -0
- package/skills/hugging-science/SKILL.md +93 -0
- package/skills/huggingface/SKILL.md +30 -0
- package/skills/hypogenic/SKILL.md +107 -0
- package/skills/hypothesis-generation/SKILL.md +118 -0
- package/skills/imaging-data-commons/SKILL.md +119 -0
- package/skills/infographics/SKILL.md +102 -0
- package/skills/iso-13485-certification/SKILL.md +114 -0
- package/skills/knowledge-agent/SKILL.md +83 -0
- package/skills/labarchive-integration/SKILL.md +98 -0
- package/skills/lamindb/SKILL.md +119 -0
- package/skills/landsat/SKILL.md +29 -0
- package/skills/latchbio-integration/SKILL.md +118 -0
- package/skills/latex-posters/SKILL.md +112 -0
- package/skills/learn-codebase/SKILL.md +24 -0
- package/skills/learner/SKILL.md +118 -0
- package/skills/literature-review/SKILL.md +118 -0
- package/skills/live-agent-lifecycle/SKILL.md +85 -0
- package/skills/mailbox-interactive/SKILL.md +85 -0
- package/skills/make-plan/SKILL.md +59 -0
- package/skills/markdown-mermaid-writing/SKILL.md +118 -0
- package/skills/market-research-reports/SKILL.md +119 -0
- package/skills/markitdown/SKILL.md +111 -0
- package/skills/markitdown-docs/SKILL.md +28 -0
- package/skills/matchms/SKILL.md +91 -0
- package/skills/matlab/SKILL.md +118 -0
- package/skills/matplotlib/SKILL.md +30 -0
- package/skills/mcp-setup/SKILL.md +84 -0
- package/skills/medchem/SKILL.md +109 -0
- package/skills/mem-search/SKILL.md +96 -0
- package/skills/modal/SKILL.md +104 -0
- package/skills/model-routing-context/SKILL.md +85 -0
- package/skills/molecular-dynamics/SKILL.md +116 -0
- package/skills/molfeat/SKILL.md +110 -0
- package/skills/multi-perspective-review/SKILL.md +85 -0
- package/skills/networkx/SKILL.md +111 -0
- package/skills/neurokit2/SKILL.md +114 -0
- package/skills/neuropixels-analysis/SKILL.md +112 -0
- package/skills/nilearn/SKILL.md +29 -0
- package/skills/observability-reliability/SKILL.md +43 -0
- package/skills/omc-doctor/SKILL.md +86 -0
- package/skills/omc-reference/SKILL.md +119 -0
- package/skills/omc-setup/SKILL.md +82 -0
- package/skills/omc-teams/SKILL.md +81 -0
- package/skills/omero-integration/SKILL.md +111 -0
- package/skills/open-notebook/SKILL.md +100 -0
- package/skills/openephys/SKILL.md +28 -0
- package/skills/opentrons-integration/SKILL.md +110 -0
- package/skills/optimize-for-gpu/SKILL.md +119 -0
- package/skills/orchestration/SKILL.md +85 -0
- package/skills/ownership-session-security/SKILL.md +43 -0
- package/skills/paper-lookup/SKILL.md +119 -0
- package/skills/paperzilla/SKILL.md +114 -0
- package/skills/parallel-web/SKILL.md +64 -0
- package/skills/pathfinder/SKILL.md +114 -0
- package/skills/pathml/SKILL.md +98 -0
- package/skills/pdf/SKILL.md +113 -0
- package/skills/peer-review/SKILL.md +119 -0
- package/skills/pennylane/SKILL.md +119 -0
- package/skills/phylogenetics/SKILL.md +102 -0
- package/skills/pi-extension-lifecycle/SKILL.md +41 -0
- package/skills/plan/SKILL.md +66 -0
- package/skills/polars/SKILL.md +114 -0
- package/skills/polars-bio/SKILL.md +84 -0
- package/skills/pptx/SKILL.md +118 -0
- package/skills/pptx-posters/SKILL.md +112 -0
- package/skills/primekg/SKILL.md +97 -0
- package/skills/project-session-manager/SKILL.md +85 -0
- package/skills/protocolsio-integration/SKILL.md +119 -0
- package/skills/pubmed-search/SKILL.md +29 -0
- package/skills/pufferlib/SKILL.md +103 -0
- package/skills/pydeseq2/SKILL.md +106 -0
- package/skills/pydicom/SKILL.md +115 -0
- package/skills/pyhealth/SKILL.md +117 -0
- package/skills/pylabrobot/SKILL.md +100 -0
- package/skills/pymatgen/SKILL.md +28 -0
- package/skills/pymc/SKILL.md +108 -0
- package/skills/pymoo/SKILL.md +90 -0
- package/skills/pyopenms/SKILL.md +119 -0
- package/skills/pysam/SKILL.md +118 -0
- package/skills/pyspark/SKILL.md +30 -0
- package/skills/pytdc/SKILL.md +102 -0
- package/skills/pytorch/SKILL.md +31 -0
- package/skills/pytorch-lightning/SKILL.md +119 -0
- package/skills/pyzotero/SKILL.md +104 -0
- package/skills/qiskit/SKILL.md +119 -0
- package/skills/qutip/SKILL.md +111 -0
- package/skills/ralph/SKILL.md +23 -0
- package/skills/ralplan/SKILL.md +105 -0
- package/skills/rdflib/SKILL.md +29 -0
- package/skills/rdkit/SKILL.md +30 -0
- package/skills/read-only-explorer/SKILL.md +85 -0
- package/skills/receiving-code-review/SKILL.md +103 -0
- package/skills/release/SKILL.md +117 -0
- package/skills/remember/SKILL.md +39 -0
- package/skills/requesting-code-review/SKILL.md +85 -0
- package/skills/requirements-to-task-packet/SKILL.md +65 -0
- package/skills/research-grants/SKILL.md +118 -0
- package/skills/research-lookup/SKILL.md +117 -0
- package/skills/research-reproducibility/SKILL.md +28 -0
- package/skills/resource-discovery-config/SKILL.md +43 -0
- package/skills/rowan/SKILL.md +100 -0
- package/skills/runtime-state-reader/SKILL.md +46 -0
- package/skills/safe-bash/SKILL.md +85 -0
- package/skills/scanpy/SKILL.md +32 -0
- package/skills/scholar-evaluation/SKILL.md +115 -0
- package/skills/scientific-brainstorming/SKILL.md +118 -0
- package/skills/scientific-critical-thinking/SKILL.md +119 -0
- package/skills/scientific-schematics/SKILL.md +116 -0
- package/skills/scientific-slides/SKILL.md +117 -0
- package/skills/scientific-visualization/SKILL.md +109 -0
- package/skills/scientific-writing/SKILL.md +119 -0
- package/skills/scikit-bio/SKILL.md +92 -0
- package/skills/scikit-learn/SKILL.md +99 -0
- package/skills/scikit-survival/SKILL.md +110 -0
- package/skills/sciomc/SKILL.md +86 -0
- package/skills/scvelo/SKILL.md +106 -0
- package/skills/scvi-tools/SKILL.md +114 -0
- package/skills/seaborn/SKILL.md +97 -0
- package/skills/secure-agent-orchestration-review/SKILL.md +47 -0
- package/skills/self-improve/SKILL.md +119 -0
- package/skills/semantic-compression/SKILL.md +62 -0
- package/skills/setup/SKILL.md +42 -0
- package/skills/shap/SKILL.md +103 -0
- package/skills/simpy/SKILL.md +116 -0
- package/skills/skill/SKILL.md +117 -0
- package/skills/skill-search/SKILL.md +67 -0
- package/skills/skillify/SKILL.md +46 -0
- package/skills/smart-explore/SKILL.md +94 -0
- package/skills/sqlite-pandas/SKILL.md +30 -0
- package/skills/stable-baselines3/SKILL.md +86 -0
- package/skills/state-mutation-locking/SKILL.md +44 -0
- package/skills/statistical-analysis/SKILL.md +108 -0
- package/skills/statsmodels/SKILL.md +29 -0
- package/skills/subagent-driven-development/SKILL.md +89 -0
- package/skills/sympy/SKILL.md +115 -0
- package/skills/system-prompts/SKILL.md +116 -0
- package/skills/systematic-debugging/SKILL.md +119 -0
- package/skills/team/SKILL.md +85 -0
- package/skills/test-driven-development/SKILL.md +84 -0
- package/skills/tiledbvcf/SKILL.md +119 -0
- package/skills/timeline-report/SKILL.md +85 -0
- package/skills/timesfm-forecasting/SKILL.md +112 -0
- package/skills/torch-geometric/SKILL.md +118 -0
- package/skills/torchdrug/SKILL.md +118 -0
- package/skills/trace/SKILL.md +118 -0
- package/skills/transformers/SKILL.md +110 -0
- package/skills/treatment-plans/SKILL.md +119 -0
- package/skills/ui-render-performance/SKILL.md +41 -0
- package/skills/ultragoal/SKILL.md +63 -0
- package/skills/ultraqa/SKILL.md +85 -0
- package/skills/ultrawork/SKILL.md +20 -0
- package/skills/umap-learn/SKILL.md +119 -0
- package/skills/usfiscaldata/SKILL.md +118 -0
- package/skills/using-git-worktrees/SKILL.md +112 -0
- package/skills/using-superpowers/SKILL.md +85 -0
- package/skills/using-vetc/SKILL.md +92 -0
- package/skills/vaex/SKILL.md +111 -0
- package/skills/venue-templates/SKILL.md +113 -0
- package/skills/verification-before-completion/SKILL.md +88 -0
- package/skills/verification-before-done/SKILL.md +68 -0
- package/skills/verify/SKILL.md +33 -0
- package/skills/version-bump/SKILL.md +54 -0
- package/skills/vetc-analyze-ba/SKILL.md +117 -0
- package/skills/vetc-analyze-codebase/SKILL.md +118 -0
- package/skills/vetc-api-design/SKILL.md +103 -0
- package/skills/vetc-brainstorming/SKILL.md +116 -0
- package/skills/vetc-change-proposal/SKILL.md +111 -0
- package/skills/vetc-cicd/SKILL.md +113 -0
- package/skills/vetc-continuous-learning/SKILL.md +115 -0
- package/skills/vetc-deep-interview/SKILL.md +103 -0
- package/skills/vetc-docgen/SKILL.md +108 -0
- package/skills/vetc-frontend-patterns/SKILL.md +99 -0
- package/skills/vetc-iterative-retrieval/SKILL.md +110 -0
- package/skills/vetc-java-patterns/SKILL.md +113 -0
- package/skills/vetc-meta-skill-creator/SKILL.md +99 -0
- package/skills/vetc-oracle-patterns/SKILL.md +109 -0
- package/skills/vetc-performance-testing/SKILL.md +104 -0
- package/skills/vetc-pr-response/SKILL.md +106 -0
- package/skills/vetc-ralph/SKILL.md +108 -0
- package/skills/vetc-ralplan/SKILL.md +116 -0
- package/skills/vetc-receiving-review/SKILL.md +106 -0
- package/skills/vetc-reconcile-patterns/SKILL.md +117 -0
- package/skills/vetc-refactoring/SKILL.md +96 -0
- package/skills/vetc-runbook/SKILL.md +118 -0
- package/skills/vetc-sast/SKILL.md +118 -0
- package/skills/vetc-sdlc/SKILL.md +97 -0
- package/skills/vetc-security/SKILL.md +117 -0
- package/skills/vetc-spec-driven/SKILL.md +111 -0
- package/skills/vetc-spec-quality/SKILL.md +117 -0
- package/skills/vetc-systematic-debugging/SKILL.md +74 -0
- package/skills/vetc-tdd/SKILL.md +96 -0
- package/skills/vetc-thinking-pm/SKILL.md +110 -0
- package/skills/vetc-ui-visual-qa/SKILL.md +117 -0
- package/skills/vetc-verify/SKILL.md +101 -0
- package/skills/visual-verdict/SKILL.md +59 -0
- package/skills/what-if-oracle/SKILL.md +87 -0
- package/skills/widget-rendering/SKILL.md +85 -0
- package/skills/wiki/SKILL.md +69 -0
- package/skills/workspace-isolation/SKILL.md +85 -0
- package/skills/worktree-isolation/SKILL.md +85 -0
- package/skills/wowerpoint/SKILL.md +101 -0
- package/skills/writer-memory/SKILL.md +82 -0
- package/skills/writing-plans/SKILL.md +115 -0
- package/skills/writing-skills/SKILL.md +115 -0
- package/skills/xgboost/SKILL.md +29 -0
- package/skills/xgboost-ts/SKILL.md +28 -0
- package/skills/xlsx/SKILL.md +111 -0
- package/skills/zarr-python/SKILL.md +101 -0
- package/src/categories.ts +383 -0
- package/src/format.ts +104 -0
- package/src/indexer.ts +101 -0
- package/src/proactive.ts +51 -0
- package/src/scanner.ts +85 -0
- package/src/search.ts +89 -0
- package/src/strip.ts +29 -0
- package/src/synonyms.ts +83 -0
- package/src/text.ts +118 -0
- package/src/types.ts +64 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ginkgo-cloud-lab
|
|
3
|
+
description: Submit and manage protocols on Ginkgo Bioworks Cloud Lab (cloud.ginkgo.bio), a web-based interface for autonomous lab execution on Reconfigurable Automation Carts (RACs). Use when the user wants to run cell-free protein expression (validation or optimization), generate fluorescent pixel art, or interact with Ginkgo Cloud Lab services. Covers protocol selection, input preparation, pricing, and ordering workflows.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ginkgo Cloud Lab
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Ginkgo Cloud Lab (https://cloud.ginkgo.bio) provides remote access to Ginkgo Bioworks' autonomous lab infrastructure. Protocols are executed on Reconfigurable Automation Carts (RACs) -- modular units with robotic arms, maglev sample transport, and industrial-grade software spanning 70+ instruments.
|
|
11
|
+
|
|
12
|
+
The platform also includes **EstiMate**, an AI agent that accepts human-language protocol descriptions and returns feasibility assessments and pricing for custom workflows beyond the listed protocols.
|
|
13
|
+
|
|
14
|
+
## Available Protocols
|
|
15
|
+
|
|
16
|
+
### 1. Cell Free Protein Expression Validation
|
|
17
|
+
|
|
18
|
+
Rapid go/no-go expression screening using reconstituted E. coli CFPS. Submit a FASTA sequence (up to 1800 bp) and receive expression confirmation, baseline titer (mg/L), and initial purity with virtual gel images.
|
|
19
|
+
|
|
20
|
+
- **Price:** $39/sample | **Turnaround:** 5-10 days | **Status:** Certified
|
|
21
|
+
- **Details:** See (see docs)
|
|
22
|
+
|
|
23
|
+
### 2. Cell Free Protein Expression Optimization
|
|
24
|
+
|
|
25
|
+
DoE-based optimization across up to 24 conditions per protein (lysates, temperatures, chaperones, disulfide enhancers, cofactors). Designed for difficult-to-express and membrane proteins.
|
|
26
|
+
|
|
27
|
+
- **Price:** $199/sample | **Turnaround:** 6-11 days | **Status:** Certified
|
|
28
|
+
- **Details:** See (see docs)
|
|
29
|
+
|
|
30
|
+
### 3. Fluorescent Pixel Art Generation
|
|
31
|
+
|
|
32
|
+
Transform a pixel art image (48x48 to 96x96 px, PNG/SVG) into fluorescent bacterial artwork using up to 11 E. coli strains via acoustic dispensing. Delivered as high-res UV photographs.
|
|
33
|
+
|
|
34
|
+
- **Price:** $25/plate | **Turnaround:** 5-7 days | **Status:** Beta
|
|
35
|
+
- **Details:** See (see docs)
|
|
36
|
+
|
|
37
|
+
## General Ordering Workflow
|
|
38
|
+
|
|
39
|
+
1. Select a protocol at https://cloud.ginkgo.bio/protocols
|
|
40
|
+
2. Configure parameters (number of samples/proteins, replicates, plates)
|
|
41
|
+
3. Upload input files (FASTA for protein protocols, PNG/SVG for pixel art)
|
|
42
|
+
4. Add any special requirements in the Additional Details field
|
|
43
|
+
5. Submit and receive a feasibility report and price quote
|
|
44
|
+
|
|
45
|
+
For protocols not listed above, use the **EstiMate** chat to describe a custom protocol in plain language and receive compatibility assessment and pricing.
|
|
46
|
+
|
|
47
|
+
## Authentication
|
|
48
|
+
|
|
49
|
+
Access Ginkgo Cloud Lab at https://cloud.ginkgo.bio. Account creation or institutional access may be required. Contact Ginkgo at cloud@ginkgo.bio for access questions.
|
|
50
|
+
|
|
51
|
+
## Key Infrastructure
|
|
52
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-master
|
|
3
|
+
description: Commit and release hygiene for safe version-control work. Use when preparing commits, releases, version bumps, publishing, or validating package installation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# git-master
|
|
8
|
+
|
|
9
|
+
Use this skill for commit/release hygiene. This skill covers git workflow from local changes to published releases.
|
|
10
|
+
|
|
11
|
+
## Pre-commit Checklist
|
|
12
|
+
|
|
13
|
+
Before every commit:
|
|
14
|
+
|
|
15
|
+
1. Run `git status --short` — understand what changed
|
|
16
|
+
2. Stage only files related to the current task
|
|
17
|
+
3. Review staged diff with `git diff --staged`
|
|
18
|
+
4. Check for unintended changes (generated files, temp files, secrets)
|
|
19
|
+
5. Ensure tests pass locally before committing
|
|
20
|
+
|
|
21
|
+
## Commit Rules
|
|
22
|
+
|
|
23
|
+
- **Independent commits**: Each commit should be self-contained and revertible. Don't mix unrelated changes.
|
|
24
|
+
- **Concise messages**: Use imperative mood, 50 chars or less for subject. Add body for context.
|
|
25
|
+
- **Format**: `type(scope): subject` where type is `fix`, `feat`, `chore`, `docs`, `test`, `refactor`
|
|
26
|
+
- **Do not include**: secrets, OTPs, local temp files, `node_modules`, `dist/`, `*.log`, `*.tmp`
|
|
27
|
+
- **Do not push/publish** unless explicitly requested
|
|
28
|
+
- **Verify** before staging large generated files (tarballs, build outputs)
|
|
29
|
+
|
|
30
|
+
## Commit Message Format
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
type(scope): short description (50 chars max)
|
|
34
|
+
|
|
35
|
+
Longer description if needed. Explain WHY the change was made,
|
|
36
|
+
not just what changed. Reference issues/PRs if applicable.
|
|
37
|
+
|
|
38
|
+
Refs: #123
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Examples:**
|
|
42
|
+
```
|
|
43
|
+
fix(live-agent): prevent cross-workspace agent access
|
|
44
|
+
feat(widget): add snapshot cache with 500ms TTL
|
|
45
|
+
docs(skills): add event-log-tracing skill
|
|
46
|
+
chore(tests): add integration test for reconcileAllStaleRuns
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Branch Naming
|
|
50
|
+
|
|
51
|
+
| Pattern | Use case | Example |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| `fix/<description>` | Bug fixes | `fix/ghost-run-display` |
|
|
54
|
+
| `feat/<description>` | New features | `feat/skill-templates` |
|
|
55
|
+
| `docs/<description>` | Documentation | `docs/skills-deep-research` |
|
|
56
|
+
| `chore/<description>` | Tooling, CI | `chore/update-ci-node22` |
|
|
57
|
+
| `hotfix/<description>` | Urgent production fixes | `hotfix/secret-leak` |
|
|
58
|
+
|
|
59
|
+
## Rollback Procedures
|
|
60
|
+
|
|
61
|
+
### Revert last commit (safe, keeps history)
|
|
62
|
+
```bash
|
|
63
|
+
git revert HEAD
|
|
64
|
+
git push
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Reset to known-good state (rewrites history)
|
|
68
|
+
```bash
|
|
69
|
+
# Soft: keep changes staged
|
|
70
|
+
git reset --soft HEAD~1
|
|
71
|
+
|
|
72
|
+
# Mixed: keep changes unstaged
|
|
73
|
+
git reset HEAD~1
|
|
74
|
+
|
|
75
|
+
# Hard: discard all changes (DESTRUCTIVE)
|
|
76
|
+
git reset --hard <commit-hash>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Checkout single file from a past commit
|
|
80
|
+
```bash
|
|
81
|
+
git checkout <commit-hash> -- path/to/file
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Recover from a bad reset
|
|
85
|
+
```bash
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: glycoengineering
|
|
3
|
+
description: Analyze and engineer protein glycosylation. Scan sequences for N-glycosylation sequons (N-X-S/T), predict O-glycosylation hotspots, and access curated glycoengineering tools (NetOGlyc, GlycoShield, GlycoWorkbench). For glycoprotein engineering, therapeutic antibody optimization, and vaccine design.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Glycoengineering
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Glycosylation is the most common and complex post-translational modification (PTM) of proteins, affecting over 50% of all human proteins. Glycans regulate protein folding, stability, immune recognition, receptor interactions, and pharmacokinetics of therapeutic proteins. Glycoengineering involves rational modification of glycosylation patterns for improved therapeutic efficacy, stability, or immune evasion.
|
|
11
|
+
|
|
12
|
+
**Two major glycosylation types:**
|
|
13
|
+
- **N-glycosylation**: Attached to asparagine (N) in the sequon N-X-[S/T] where X ≠ Proline; occurs in the ER/Golgi
|
|
14
|
+
- **O-glycosylation**: Attached to serine (S) or threonine (T); no strict consensus motif; primarily GalNAc initiation
|
|
15
|
+
|
|
16
|
+
## When to Use This Skill
|
|
17
|
+
|
|
18
|
+
Use this skill when:
|
|
19
|
+
|
|
20
|
+
- **Antibody engineering**: Optimize Fc glycosylation for enhanced ADCC, CDC, or reduced immunogenicity
|
|
21
|
+
- **Therapeutic protein design**: Identify glycosylation sites that affect half-life, stability, or immunogenicity
|
|
22
|
+
- **Vaccine antigen design**: Engineer glycan shields to focus immune responses on conserved epitopes
|
|
23
|
+
- **Biosimilar characterization**: Compare glycan patterns between reference and biosimilar
|
|
24
|
+
- **Drug target analysis**: Does glycosylation affect target engagement for a receptor?
|
|
25
|
+
- **Protein stability**: N-glycans often stabilize proteins; identify sites for stabilizing mutations
|
|
26
|
+
|
|
27
|
+
## N-Glycosylation Sequon Analysis
|
|
28
|
+
|
|
29
|
+
### Scanning for N-Glycosylation Sites
|
|
30
|
+
|
|
31
|
+
N-glycosylation occurs at the sequon **N-X-[S/T]** where X ≠ Proline.
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
import re
|
|
35
|
+
from typing import List, Tuple
|
|
36
|
+
|
|
37
|
+
def find_n_glycosylation_sequons(sequence: str) -> List[dict]:
|
|
38
|
+
"""
|
|
39
|
+
Scan a protein sequence for canonical N-linked glycosylation sequons.
|
|
40
|
+
Motif: N-X-[S/T], where X ≠ Proline.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
sequence: Single-letter amino acid sequence
|
|
44
|
+
|
|
45
|
+
# Example: IgG1 Fc region
|
|
46
|
+
fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
|
|
47
|
+
print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Mutating N-Glycosylation Sites
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
|
|
54
|
+
"""
|
|
55
|
+
Eliminate an N-glycosylation site by substituting Asn → Gln (conservative).
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
sequence: Protein sequence
|
|
59
|
+
position: 1-based position of the Asn to mutate
|
|
60
|
+
replacement: Amino acid to substitute (default Q = Gln; similar size, not glycosylated)
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
Mutated sequence
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
## O-Glycosylation Analysis
|
|
67
|
+
|
|
68
|
+
### Heuristic O-Glycosylation Hotspot Prediction
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
def predict_o_glycosylation_hotspots(
|
|
72
|
+
sequence: str,
|
|
73
|
+
window: int = 7,
|
|
74
|
+
min_st_fraction: float = 0.4,
|
|
75
|
+
disallow_proline_next: bool = True
|
|
76
|
+
) -> List[dict]:
|
|
77
|
+
"""
|
|
78
|
+
Heuristic O-glycosylation hotspot scoring based on local S/T density.
|
|
79
|
+
Not a substitute for NetOGlyc; use as fast baseline.
|
|
80
|
+
|
|
81
|
+
Rules:
|
|
82
|
+
- O-GalNAc glycosylation clusters on Ser/Thr-rich segments
|
|
83
|
+
|
|
84
|
+
## External Glycoengineering Tools
|
|
85
|
+
|
|
86
|
+
### 1. NetOGlyc 4.0 (O-glycosylation prediction)
|
|
87
|
+
|
|
88
|
+
Web service for high-accuracy O-GalNAc site prediction:
|
|
89
|
+
- **URL**: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
|
|
90
|
+
- **Input**: FASTA protein sequence
|
|
91
|
+
- **Output**: Per-residue O-glycosylation probability scores
|
|
92
|
+
- **Method**: Neural network trained on experimentally verified O-GalNAc sites
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
import requests
|
|
96
|
+
|
|
97
|
+
def submit_netoglycv4(fasta_sequence: str) -> str:
|
|
98
|
+
"""
|
|
99
|
+
Submit sequence to NetOGlyc 4.0 web service.
|
|
100
|
+
Returns the job URL for result retrieval.
|
|
101
|
+
|
|
102
|
+
# Also: NetNGlyc for N-glycosylation prediction
|
|
103
|
+
# URL: https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
|
|
104
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gtars
|
|
3
|
+
description: High-performance toolkit for genomic interval analysis in Rust with Python bindings. Use when working with genomic regions, BED files, coverage tracks, overlap detection, tokenization for ML models, or fragment analysis in computational genomics and machine learning applications.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Gtars: Genomic Tools and Algorithms in Rust
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Gtars is a high-performance Rust toolkit for manipulating, analyzing, and processing genomic interval data. It provides specialized tools for overlap detection, coverage analysis, tokenization for machine learning, and reference sequence management.
|
|
11
|
+
|
|
12
|
+
Use this skill when working with:
|
|
13
|
+
- Genomic interval files (BED format)
|
|
14
|
+
- Overlap detection between genomic regions
|
|
15
|
+
- Coverage track generation (WIG, BigWig)
|
|
16
|
+
- Genomic ML preprocessing and tokenization
|
|
17
|
+
- Fragment analysis in single-cell genomics
|
|
18
|
+
- Reference sequence retrieval and validation
|
|
19
|
+
|
|
20
|
+
### Rust Library
|
|
21
|
+
|
|
22
|
+
Add to Cargo.toml for Rust projects:
|
|
23
|
+
|
|
24
|
+
```toml
|
|
25
|
+
[dependencies]
|
|
26
|
+
gtars = { version = "0.1", features = ["tokenizers", "overlaprs"] }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Core Capabilities
|
|
30
|
+
|
|
31
|
+
Gtars is organized into specialized modules, each focused on specific genomic analysis tasks:
|
|
32
|
+
|
|
33
|
+
### 1. Overlap Detection and IGD Indexing
|
|
34
|
+
|
|
35
|
+
Efficiently detect overlaps between genomic intervals using the Integrated Genome Database (IGD) data structure.
|
|
36
|
+
|
|
37
|
+
**When to use:**
|
|
38
|
+
- Finding overlapping regulatory elements
|
|
39
|
+
- Variant annotation
|
|
40
|
+
- Comparing ChIP-seq peaks
|
|
41
|
+
- Identifying shared genomic features
|
|
42
|
+
|
|
43
|
+
**Quick example:**
|
|
44
|
+
```python
|
|
45
|
+
import gtars
|
|
46
|
+
|
|
47
|
+
# Build IGD index and query overlaps
|
|
48
|
+
igd = gtars.igd.build_index("regions.bed")
|
|
49
|
+
overlaps = igd.query("chr1", 1000, 2000)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
See `(see docs)` for comprehensive overlap detection documentation.
|
|
53
|
+
|
|
54
|
+
### 2. Coverage Track Generation
|
|
55
|
+
|
|
56
|
+
Generate coverage tracks from sequencing data with the uniwig module.
|
|
57
|
+
|
|
58
|
+
**When to use:**
|
|
59
|
+
- ATAC-seq accessibility profiles
|
|
60
|
+
- ChIP-seq coverage visualization
|
|
61
|
+
- RNA-seq read coverage
|
|
62
|
+
- Differential coverage analysis
|
|
63
|
+
|
|
64
|
+
**Quick example:**
|
|
65
|
+
```bash
|
|
66
|
+
# Generate BigWig coverage track
|
|
67
|
+
gtars uniwig generate --input fragments.bed --output coverage.bw --format bigwig
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
See `(see docs)` for detailed coverage analysis workflows.
|
|
71
|
+
|
|
72
|
+
### 3. Genomic Tokenization
|
|
73
|
+
|
|
74
|
+
Convert genomic regions into discrete tokens for machine learning applications, particularly for deep learning models on genomic data.
|
|
75
|
+
|
|
76
|
+
**When to use:**
|
|
77
|
+
- Preprocessing for genomic ML models
|
|
78
|
+
- Integration with geniml library
|
|
79
|
+
- Creating position encodings
|
|
80
|
+
- Training transformer models on genomic sequences
|
|
81
|
+
|
|
82
|
+
**Quick example:**
|
|
83
|
+
```python
|
|
84
|
+
from gtars.tokenizers import TreeTokenizer
|
|
85
|
+
|
|
86
|
+
tokenizer = TreeTokenizer.from_bed_file("training_regions.bed")
|
|
87
|
+
|
|
88
|
+
### 4. Reference Sequence Management
|
|
89
|
+
|
|
90
|
+
Handle reference genome sequences and compute digests following the GA4GH refget protocol.
|
|
91
|
+
|
|
92
|
+
**When to use:**
|
|
93
|
+
- Validating reference genome integrity
|
|
94
|
+
- Extracting specific genomic sequences
|
|
95
|
+
- Computing sequence digests
|
|
96
|
+
- Cross-reference comparisons
|
|
97
|
+
|
|
98
|
+
**Quick example:**
|
|
99
|
+
```python
|
|
100
|
+
# Load reference and extract sequences
|
|
101
|
+
store = gtars.RefgetStore.from_fasta("hg38.fa")
|
|
102
|
+
sequence = store.get_subsequence("chr1", 1000, 2000)
|
|
103
|
+
|
|
104
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hackernews-frontpage
|
|
3
|
+
description: Scrape the Hacker News front page (titles, points, comment counts).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# Hacker News front-page scraper
|
|
8
|
+
|
|
9
|
+
Scrapes the Hacker News (`news.ycombinator.com`) front page and returns the
|
|
10
|
+
top 30 stories as JSON. Each story has its rank, title, link URL, point count,
|
|
11
|
+
and comment count.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
$ $B skill run hackernews-frontpage
|
|
17
|
+
{
|
|
18
|
+
"stories": [
|
|
19
|
+
{ "rank": 1, "title": "...", "url": "...", "points": 412, "comments": 87 },
|
|
20
|
+
...
|
|
21
|
+
],
|
|
22
|
+
"count": 30
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## How it works
|
|
27
|
+
|
|
28
|
+
1. Navigates to `https://news.ycombinator.com` via the daemon.
|
|
29
|
+
2. Reads the page HTML.
|
|
30
|
+
3. Parses each story row (HN's stable `tr.athing` structure) into a typed
|
|
31
|
+
`Story` record.
|
|
32
|
+
4. Emits a single JSON document on stdout.
|
|
33
|
+
|
|
34
|
+
## Why this is the reference skill
|
|
35
|
+
|
|
36
|
+
`hackernews-frontpage` is the smallest interesting browser-skill: no auth,
|
|
37
|
+
stable HTML, deterministic output, file-fixture-friendly. Every Phase 1
|
|
38
|
+
component (SDK, scoped tokens, three-tier lookup, spawn lifecycle) is
|
|
39
|
+
exercised by `$B skill run hackernews-frontpage` and the bundled
|
|
40
|
+
`script.test.ts`.
|
|
41
|
+
|
|
42
|
+
When the HN HTML rotates and our selectors break, the test fails against the
|
|
43
|
+
captured fixture before users notice. That's the point.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: histolab
|
|
3
|
+
description: Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Histolab
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Histolab is a Python library for processing whole slide images (WSI) in digital pathology. It automates tissue detection, extracts informative tiles from gigapixel images, and prepares datasets for deep learning pipelines. The library handles multiple WSI formats, implements sophisticated tissue segmentation, and provides flexible tile extraction strategies.
|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
Basic workflow for extracting tiles from a whole slide image:
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
from histolab.slide import Slide
|
|
18
|
+
from histolab.tiler import RandomTiler
|
|
19
|
+
|
|
20
|
+
# Load slide
|
|
21
|
+
slide = Slide("slide.svs", processed_path="output/")
|
|
22
|
+
|
|
23
|
+
# Configure tiler
|
|
24
|
+
tiler = RandomTiler(
|
|
25
|
+
tile_size=(512, 512),
|
|
26
|
+
n_tiles=100,
|
|
27
|
+
level=0,
|
|
28
|
+
seed=42
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# Preview tile locations
|
|
32
|
+
tiler.locate_tiles(slide, n_tiles=20)
|
|
33
|
+
|
|
34
|
+
# Extract tiles
|
|
35
|
+
tiler.extract(slide)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Core Capabilities
|
|
39
|
+
|
|
40
|
+
### 1. Slide Management
|
|
41
|
+
|
|
42
|
+
Load, inspect, and work with whole slide images in various formats.
|
|
43
|
+
|
|
44
|
+
**Common operations:**
|
|
45
|
+
- Loading WSI files (SVS, TIFF, NDPI, etc.)
|
|
46
|
+
- Accessing slide metadata (dimensions, magnification, properties)
|
|
47
|
+
- Generating thumbnails for visualization
|
|
48
|
+
- Working with pyramidal image structures
|
|
49
|
+
- Extracting regions at specific coordinates
|
|
50
|
+
|
|
51
|
+
**Key classes:** `Slide`
|
|
52
|
+
|
|
53
|
+
**Reference:** `(see docs)` contains comprehensive documentation on:
|
|
54
|
+
- Slide initialization and configuration
|
|
55
|
+
|
|
56
|
+
# Load sample data
|
|
57
|
+
prostate_svs, prostate_path = prostate_tissue()
|
|
58
|
+
|
|
59
|
+
# Initialize slide
|
|
60
|
+
slide = Slide(prostate_path, processed_path="output/")
|
|
61
|
+
|
|
62
|
+
# Inspect properties
|
|
63
|
+
print(f"Dimensions: {slide.dimensions}")
|
|
64
|
+
print(f"Levels: {slide.levels}")
|
|
65
|
+
print(f"Magnification: {slide.properties.get('openslide.objective-power')}")
|
|
66
|
+
|
|
67
|
+
# Save thumbnail
|
|
68
|
+
slide.save_thumbnail()
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 2. Tissue Detection and Masks
|
|
72
|
+
|
|
73
|
+
Automatically identify tissue regions and filter background/artifacts.
|
|
74
|
+
|
|
75
|
+
**Common operations:**
|
|
76
|
+
- Creating binary tissue masks
|
|
77
|
+
- Detecting largest tissue region
|
|
78
|
+
- Excluding background and artifacts
|
|
79
|
+
- Custom tissue segmentation
|
|
80
|
+
- Removing pen annotations
|
|
81
|
+
|
|
82
|
+
**Key classes:** `TissueMask`, `BiggestTissueBoxMask`, `BinaryMask`
|
|
83
|
+
|
|
84
|
+
**Reference:** `(see docs)` contains comprehensive documentation on:
|
|
85
|
+
- TissueMask: Segments all tissue regions using automated filters
|
|
86
|
+
|
|
87
|
+
# Create tissue mask for all tissue regions
|
|
88
|
+
tissue_mask = TissueMask()
|
|
89
|
+
|
|
90
|
+
# Visualize mask on slide
|
|
91
|
+
slide.locate_mask(tissue_mask)
|
|
92
|
+
|
|
93
|
+
# Get mask array
|
|
94
|
+
mask_array = tissue_mask(slide)
|
|
95
|
+
|
|
96
|
+
# Use largest tissue region (default for most extractors)
|
|
97
|
+
biggest_mask = BiggestTissueBoxMask()
|
|
98
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: how-it-works
|
|
3
|
+
description: Explain how claude-mem captures observations, when memory injection kicks in, and where data lives. Use when the user asks "how does claude-mem work?" or "what is this thing doing?".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# How claude-mem works
|
|
7
|
+
|
|
8
|
+
## What it does
|
|
9
|
+
|
|
10
|
+
Every Read, Edit, and Bash that Claude makes turns into a compressed observation. Observations get summarized at session end. Relevant ones get auto-injected into future prompts so the next session starts with context from the last one — no re-explaining the codebase, no re-discovering decisions.
|
|
11
|
+
|
|
12
|
+
## When it kicks in
|
|
13
|
+
|
|
14
|
+
Memory injection starts on your second session in a project.
|
|
15
|
+
|
|
16
|
+
The first session in a fresh project seeds memory; subsequent sessions receive auto-injected context for relevant past work. Run `/learn-codebase` if you want to front-load the entire repo into memory in a single pass (~5 minutes, optional).
|
|
17
|
+
|
|
18
|
+
## Where data lives
|
|
19
|
+
|
|
20
|
+
Everything stays in ~/.claude-mem on this machine.
|
|
21
|
+
|
|
22
|
+
Nothing leaves your machine except calls to whichever AI provider you configured for compression (Claude / OpenRouter / Gemini). The SQLite database, vector index, logs, and settings all live under that directory and are removed cleanly on `npx claude-mem uninstall`.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hud
|
|
3
|
+
description: Configure HUD display options (layout, presets, display elements)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# HUD Skill
|
|
7
|
+
|
|
8
|
+
Configure the OMC HUD (Heads-Up Display) for the statusline.
|
|
9
|
+
|
|
10
|
+
Note: All `~/.claude/...` paths in this guide respect `CLAUDE_CONFIG_DIR` when that environment variable is set.
|
|
11
|
+
|
|
12
|
+
## Quick Commands
|
|
13
|
+
|
|
14
|
+
| Command | Description |
|
|
15
|
+
|---------|-------------|
|
|
16
|
+
| `hud` | Show current HUD status (auto-setup if needed) |
|
|
17
|
+
| `hud setup` | Install/repair HUD statusline |
|
|
18
|
+
| `hud minimal` | Switch to minimal display |
|
|
19
|
+
| `hud focused` | Switch to focused display (default) |
|
|
20
|
+
| `hud full` | Switch to full display |
|
|
21
|
+
| `hud status` | Show detailed HUD status |
|
|
22
|
+
|
|
23
|
+
## Auto-Setup
|
|
24
|
+
|
|
25
|
+
When you run `hud` or `hud setup`, the system will automatically:
|
|
26
|
+
1. Check if `~/.claude/hud/omc-hud.mjs` exists
|
|
27
|
+
2. Check if `statusLine` is configured in `~/.claude/settings.json`
|
|
28
|
+
3. If missing, create the HUD wrapper script and configure settings
|
|
29
|
+
4. Report status and prompt to restart Claude Code if changes were made
|
|
30
|
+
|
|
31
|
+
**IMPORTANT**: If the argument is `setup` OR if the HUD script doesn't exist at `~/.claude/hud/omc-hud.mjs`, you MUST create the HUD files directly using the instructions below.
|
|
32
|
+
|
|
33
|
+
### Setup Instructions (Run These Commands)
|
|
34
|
+
|
|
35
|
+
**Step 1:** Check if setup is needed:
|
|
36
|
+
```bash
|
|
37
|
+
node -e "const p=require('path'),f=require('fs'),d=process.env.CLAUDE_CONFIG_DIR||p.join(require('os').homedir(),'.claude');console.log(f.existsSync(p.join(d,'hud','omc-hud.mjs'))?'EXISTS':'MISSING')"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Step 2:** Verify the plugin is installed:
|
|
41
|
+
```bash
|
|
42
|
+
node -e "const p=require('path'),f=require('fs'),d=process.env.CLAUDE_CONFIG_DIR||p.join(require('os').homedir(),'.claude'),b=p.join(d,'plugins','cache','omc','oh-my-claudecode');try{const v=f.readdirSync(b).filter(x=>/^\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));if(v.length===0){console.log('Plugin not installed - run: /plugin install oh-my-claudecode');process.exit()}const l=v[v.length-1],h=p.join(b,l,'dist','hud','index.js');console.log('Version:',l);console.log(f.existsSync(h)?'READY':'NOT_FOUND - try reinstalling: /plugin install oh-my-claudecode')}catch{console.log('Plugin not installed - run: /plugin install oh-my-claudecode')}"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Step 3:** If omc-hud.mjs is MISSING or argument is `setup`, install the HUD wrapper and its dependency from the canonical template:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
HUD_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hud"
|
|
49
|
+
mkdir -p "$HUD_DIR/lib"
|
|
50
|
+
cp "${CLAUDE_PLUGIN_ROOT}/scripts/lib/hud-wrapper-template.txt" "$HUD_DIR/omc-hud.mjs"
|
|
51
|
+
cp "${CLAUDE_PLUGIN_ROOT}/scripts/lib/config-dir.mjs" "$HUD_DIR/lib/config-dir.mjs"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**IMPORTANT:** Always copy from the canonical template at `scripts/lib/hud-wrapper-template.txt`. Do NOT write the wrapper content inline — the template is the single source of truth and is guarded by drift tests (`src/__tests__/hud-wrapper-template-sync.test.ts`, `src/__tests__/paths-consistency.test.ts`).
|
|
55
|
+
|
|
56
|
+
**Step 4:** Make it executable (Unix only, skip on Windows):
|
|
57
|
+
```bash
|
|
58
|
+
node -e "if(process.platform==='win32'){console.log('Skipped (Windows)')}else{require('fs').chmodSync(require('path').join(process.env.CLAUDE_CONFIG_DIR||require('path').join(require('os').homedir(),'.claude'),'hud','omc-hud.mjs'),0o755);console.log('Done')}"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Step 5:** Update settings.json to use the HUD:
|
|
62
|
+
|
|
63
|
+
Read `${CLAUDE_CONFIG_DIR:-~/.claude}/settings.json`, then update/add the `statusLine` field.
|
|
64
|
+
|
|
65
|
+
**IMPORTANT:** Do not use `~` in the command. On Unix, use `$HOME` to keep the path portable across machines. On Windows, use an absolute path because Windows does not expand `~` in shell commands.
|
|
66
|
+
|
|
67
|
+
If you are on Windows, first determine the correct path:
|
|
68
|
+
```bash
|
|
69
|
+
node -e "const p=require('path').join(require('os').homedir(),'.claude','hud','omc-hud.mjs').split(require('path').sep).join('/');console.log(JSON.stringify(p))"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**IMPORTANT:** The command path MUST use forward slashes on all platforms. Claude Code executes statusLine commands via bash, which interprets backslashes as escape characters and breaks the path.
|
|
73
|
+
|
|
74
|
+
Then set the `statusLine` field. On Unix it should stay portable and look like:
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"statusLine": {
|
|
78
|
+
"type": "command",
|
|
79
|
+
"command": "node ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hud/omc-hud.mjs"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
On Windows the path uses forward slashes (not backslashes):
|
|
85
|
+
|
|
86
|
+
|