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,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: networkx
|
|
3
|
+
description: Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NetworkX
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
NetworkX is a Python package for creating, manipulating, and analyzing complex networks and graphs. Use this skill when working with network or graph data structures, including social networks, biological networks, transportation systems, citation networks, knowledge graphs, or any system involving relationships between entities.
|
|
11
|
+
|
|
12
|
+
## When to Use This Skill
|
|
13
|
+
|
|
14
|
+
Invoke this skill when tasks involve:
|
|
15
|
+
|
|
16
|
+
- **Creating graphs**: Building network structures from data, adding nodes and edges with attributes
|
|
17
|
+
- **Graph analysis**: Computing centrality measures, finding shortest paths, detecting communities, measuring clustering
|
|
18
|
+
- **Graph algorithms**: Running standard algorithms like Dijkstra's, PageRank, minimum spanning trees, maximum flow
|
|
19
|
+
- **Network generation**: Creating synthetic networks (random, scale-free, small-world models) for testing or simulation
|
|
20
|
+
- **Graph I/O**: Reading from or writing to various formats (edge lists, GraphML, JSON, CSV, adjacency matrices)
|
|
21
|
+
- **Visualization**: Drawing and customizing network visualizations with matplotlib or interactive libraries
|
|
22
|
+
- **Network comparison**: Checking isomorphism, computing graph metrics, analyzing structural properties
|
|
23
|
+
|
|
24
|
+
## Core Capabilities
|
|
25
|
+
|
|
26
|
+
### 1. Graph Creation and Manipulation
|
|
27
|
+
|
|
28
|
+
NetworkX supports four main graph types:
|
|
29
|
+
- **Graph**: Undirected graphs with single edges
|
|
30
|
+
- **DiGraph**: Directed graphs with one-way connections
|
|
31
|
+
- **MultiGraph**: Undirected graphs allowing multiple edges between nodes
|
|
32
|
+
- **MultiDiGraph**: Directed graphs with multiple edges
|
|
33
|
+
|
|
34
|
+
Create graphs by:
|
|
35
|
+
```python
|
|
36
|
+
import networkx as nx
|
|
37
|
+
|
|
38
|
+
# Create empty graph
|
|
39
|
+
G = nx.Graph()
|
|
40
|
+
|
|
41
|
+
# Add nodes (can be any hashable type)
|
|
42
|
+
G.add_node(1)
|
|
43
|
+
G.add_nodes_from([2, 3, 4])
|
|
44
|
+
G.add_node("protein_A", type='enzyme', weight=1.5)
|
|
45
|
+
|
|
46
|
+
# Add edges
|
|
47
|
+
G.add_edge(1, 2)
|
|
48
|
+
G.add_edges_from([(1, 3), (2, 4)])
|
|
49
|
+
G.add_edge(1, 4, weight=0.8, relation='interacts')
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Reference**: See `(see docs)` for comprehensive guidance on creating, modifying, examining, and managing graph structures, including working with attributes and subgraphs.
|
|
53
|
+
|
|
54
|
+
### 2. Graph Algorithms
|
|
55
|
+
|
|
56
|
+
NetworkX provides extensive algorithms for network analysis:
|
|
57
|
+
|
|
58
|
+
**Shortest Paths**:
|
|
59
|
+
```python
|
|
60
|
+
# Find shortest path
|
|
61
|
+
path = nx.shortest_path(G, source=1, target=5)
|
|
62
|
+
length = nx.shortest_path_length(G, source=1, target=5, weight='weight')
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Centrality Measures**:
|
|
66
|
+
```python
|
|
67
|
+
# Degree centrality
|
|
68
|
+
degree_cent = nx.degree_centrality(G)
|
|
69
|
+
|
|
70
|
+
# Betweenness centrality
|
|
71
|
+
betweenness = nx.betweenness_centrality(G)
|
|
72
|
+
|
|
73
|
+
# PageRank
|
|
74
|
+
pagerank = nx.pagerank(G)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Community Detection**:
|
|
78
|
+
```python
|
|
79
|
+
from networkx.algorithms import community
|
|
80
|
+
|
|
81
|
+
# Detect communities
|
|
82
|
+
communities = community.greedy_modularity_communities(G)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Connectivity**:
|
|
86
|
+
```python
|
|
87
|
+
# Check connectivity
|
|
88
|
+
is_connected = nx.is_connected(G)
|
|
89
|
+
|
|
90
|
+
# Find connected components
|
|
91
|
+
components = list(nx.connected_components(G))
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Reference**: See `(see docs)` for detailed documentation on all available algorithms including shortest paths, centrality measures, clustering, community detection, flows, matching, tree algorithms, and graph traversal.
|
|
95
|
+
|
|
96
|
+
### 3. Graph Generators
|
|
97
|
+
|
|
98
|
+
Create synthetic networks for testing, simulation, or modeling:
|
|
99
|
+
|
|
100
|
+
**Classic Graphs**:
|
|
101
|
+
```python
|
|
102
|
+
# Complete graph
|
|
103
|
+
G = nx.complete_graph(n=10)
|
|
104
|
+
|
|
105
|
+
# Cycle graph
|
|
106
|
+
G = nx.cycle_graph(n=20)
|
|
107
|
+
|
|
108
|
+
# Known graphs
|
|
109
|
+
G = nx.karate_club_graph()
|
|
110
|
+
G = nx.petersen_graph()
|
|
111
|
+
```
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: neurokit2
|
|
3
|
+
description: Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NeuroKit2
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
NeuroKit2 is a comprehensive Python toolkit for processing and analyzing physiological signals (biosignals). Use this skill to process cardiovascular, neural, autonomic, respiratory, and muscular signals for psychophysiology research, clinical applications, and human-computer interaction studies.
|
|
11
|
+
|
|
12
|
+
## When to Use This Skill
|
|
13
|
+
|
|
14
|
+
Apply this skill when working with:
|
|
15
|
+
- **Cardiac signals**: ECG, PPG, heart rate variability (HRV), pulse analysis
|
|
16
|
+
- **Brain signals**: EEG frequency bands, microstates, complexity, source localization
|
|
17
|
+
- **Autonomic signals**: Electrodermal activity (EDA/GSR), skin conductance responses (SCR)
|
|
18
|
+
- **Respiratory signals**: Breathing rate, respiratory variability (RRV), volume per time
|
|
19
|
+
- **Muscular signals**: EMG amplitude, muscle activation detection
|
|
20
|
+
- **Eye tracking**: EOG, blink detection and analysis
|
|
21
|
+
- **Multi-modal integration**: Processing multiple physiological signals simultaneously
|
|
22
|
+
- **Complexity analysis**: Entropy measures, fractal dimensions, nonlinear dynamics
|
|
23
|
+
|
|
24
|
+
## Core Capabilities
|
|
25
|
+
|
|
26
|
+
### 1. Cardiac Signal Processing (ECG/PPG)
|
|
27
|
+
|
|
28
|
+
Process electrocardiogram and photoplethysmography signals for cardiovascular analysis. See `(see docs)` for detailed workflows.
|
|
29
|
+
|
|
30
|
+
**Primary workflows:**
|
|
31
|
+
- ECG processing pipeline: cleaning → R-peak detection → delineation → quality assessment
|
|
32
|
+
- HRV analysis across time, frequency, and nonlinear domains
|
|
33
|
+
- PPG pulse analysis and quality assessment
|
|
34
|
+
- ECG-derived respiration extraction
|
|
35
|
+
|
|
36
|
+
**Key functions:**
|
|
37
|
+
```python
|
|
38
|
+
import neurokit2 as nk
|
|
39
|
+
|
|
40
|
+
# Complete ECG processing pipeline
|
|
41
|
+
signals, info = nk.ecg_process(ecg_signal, sampling_rate=1000)
|
|
42
|
+
|
|
43
|
+
# Analyze ECG data (event-related or interval-related)
|
|
44
|
+
analysis = nk.ecg_analyze(signals, sampling_rate=1000)
|
|
45
|
+
|
|
46
|
+
# Comprehensive HRV analysis
|
|
47
|
+
hrv = nk.hrv(peaks, sampling_rate=1000) # Time, frequency, nonlinear domains
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 2. Heart Rate Variability Analysis
|
|
51
|
+
|
|
52
|
+
Compute comprehensive HRV metrics from cardiac signals. See `(see docs)` for all indices and domain-specific analysis.
|
|
53
|
+
|
|
54
|
+
**Supported domains:**
|
|
55
|
+
- **Time domain**: SDNN, RMSSD, pNN50, SDSD, and derived metrics
|
|
56
|
+
- **Frequency domain**: ULF, VLF, LF, HF, VHF power and ratios
|
|
57
|
+
- **Nonlinear domain**: Poincaré plot (SD1/SD2), entropy measures, fractal dimensions
|
|
58
|
+
- **Specialized**: Respiratory sinus arrhythmia (RSA), recurrence quantification analysis (RQA)
|
|
59
|
+
|
|
60
|
+
**Key functions:**
|
|
61
|
+
```python
|
|
62
|
+
# All HRV indices at once
|
|
63
|
+
hrv_indices = nk.hrv(peaks, sampling_rate=1000)
|
|
64
|
+
|
|
65
|
+
# Domain-specific analysis
|
|
66
|
+
hrv_time = nk.hrv_time(peaks)
|
|
67
|
+
hrv_freq = nk.hrv_frequency(peaks, sampling_rate=1000)
|
|
68
|
+
hrv_nonlinear = nk.hrv_nonlinear(peaks, sampling_rate=1000)
|
|
69
|
+
hrv_rsa = nk.hrv_rsa(peaks, rsp_signal, sampling_rate=1000)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 3. Brain Signal Analysis (EEG)
|
|
73
|
+
|
|
74
|
+
Analyze electroencephalography signals for frequency power, complexity, and microstate patterns. See `(see docs)` for detailed workflows and MNE integration.
|
|
75
|
+
|
|
76
|
+
**Primary capabilities:**
|
|
77
|
+
- Frequency band power analysis (Delta, Theta, Alpha, Beta, Gamma)
|
|
78
|
+
- Channel quality assessment and re-referencing
|
|
79
|
+
- Source localization (sLORETA, MNE)
|
|
80
|
+
- Microstate segmentation and transition dynamics
|
|
81
|
+
- Global field power and dissimilarity measures
|
|
82
|
+
|
|
83
|
+
**Key functions:**
|
|
84
|
+
```python
|
|
85
|
+
# Power analysis across frequency bands
|
|
86
|
+
power = nk.eeg_power(eeg_data, sampling_rate=250, channels=['Fz', 'Cz', 'Pz'])
|
|
87
|
+
|
|
88
|
+
# Microstate analysis
|
|
89
|
+
microstates = nk.microstates_segment(eeg_data, n_microstates=4, method='kmod')
|
|
90
|
+
static = nk.microstates_static(microstates)
|
|
91
|
+
dynamic = nk.microstates_dynamic(microstates)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 4. Electrodermal Activity (EDA)
|
|
95
|
+
|
|
96
|
+
Process skin conductance signals for autonomic nervous system assessment. See `(see docs)` for detailed workflows.
|
|
97
|
+
|
|
98
|
+
**Primary workflows:**
|
|
99
|
+
- Signal decomposition into tonic and phasic components
|
|
100
|
+
- Skin conductance response (SCR) detection and analysis
|
|
101
|
+
- Sympathetic nervous system index calculation
|
|
102
|
+
- Autocorrelation and changepoint detection
|
|
103
|
+
|
|
104
|
+
**Key functions:**
|
|
105
|
+
```python
|
|
106
|
+
# Complete EDA processing
|
|
107
|
+
signals, info = nk.eda_process(eda_signal, sampling_rate=100)
|
|
108
|
+
|
|
109
|
+
# Analyze EDA data
|
|
110
|
+
analysis = nk.eda_analyze(signals, sampling_rate=100)
|
|
111
|
+
|
|
112
|
+
# Sympathetic nervous system activity
|
|
113
|
+
sympathetic = nk.eda_sympathetic(signals, sampling_rate=100)
|
|
114
|
+
```
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: neuropixels-analysis
|
|
3
|
+
description: Neuropixels neural recording analysis. Load SpikeGLX/OpenEphys data, preprocess, motion correction, Kilosort4 spike sorting, quality metrics, Allen/IBL curation, AI-assisted visual analysis, for Neuropixels 1.0/2.0 extracellular electrophysiology. Use when working with neural recordings, spike sorting, extracellular electrophysiology, or when the user mentions Neuropixels, SpikeGLX, Open Ephys, Kilosort, quality metrics, or unit curation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Neuropixels Data Analysis
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Comprehensive toolkit for analyzing Neuropixels high-density neural recordings using current best practices from SpikeInterface, Allen Institute, and International Brain Laboratory (IBL). Supports the full workflow from raw data to publication-ready curated units.
|
|
11
|
+
|
|
12
|
+
## When to Use This Skill
|
|
13
|
+
|
|
14
|
+
This skill should be used when:
|
|
15
|
+
- Working with Neuropixels recordings (.ap.bin, .lf.bin, .meta files)
|
|
16
|
+
- Loading data from SpikeGLX, Open Ephys, or NWB formats
|
|
17
|
+
- Preprocessing neural recordings (filtering, CAR, bad channel detection)
|
|
18
|
+
- Detecting and correcting motion/drift in recordings
|
|
19
|
+
- Running spike sorting (Kilosort4, SpykingCircus2, Mountainsort5)
|
|
20
|
+
- Computing quality metrics (SNR, ISI violations, presence ratio)
|
|
21
|
+
- Curating units using Allen/IBL criteria
|
|
22
|
+
- Creating visualizations of neural data
|
|
23
|
+
- Exporting results to Phy or NWB
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### Basic Import and Setup
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
import spikeinterface.full as si
|
|
31
|
+
import neuropixels_analysis as npa
|
|
32
|
+
|
|
33
|
+
# Configure parallel processing
|
|
34
|
+
job_kwargs = dict(n_jobs=-1, chunk_duration='1s', progress_bar=True)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Loading Data
|
|
38
|
+
|
|
39
|
+
```python
|
|
40
|
+
# SpikeGLX (most common)
|
|
41
|
+
recording = si.read_spikeglx('/path/to/data', stream_id='imec0.ap')
|
|
42
|
+
|
|
43
|
+
# Open Ephys (common for many labs)
|
|
44
|
+
recording = si.read_openephys('/path/to/Record_Node_101/')
|
|
45
|
+
|
|
46
|
+
# Check available streams
|
|
47
|
+
streams, ids = si.get_neo_streams('spikeglx', '/path/to/data')
|
|
48
|
+
print(streams) # ['imec0.ap', 'imec0.lf', 'nidq']
|
|
49
|
+
|
|
50
|
+
# For testing with subset of data
|
|
51
|
+
recording = recording.frame_slice(0, int(60 * recording.get_sampling_frequency()))
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Complete Pipeline (One Command)
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
# Run full analysis pipeline
|
|
58
|
+
results = npa.run_pipeline(
|
|
59
|
+
recording,
|
|
60
|
+
output_dir='output/',
|
|
61
|
+
sorter='kilosort4',
|
|
62
|
+
curation_method='allen',
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# Access results
|
|
66
|
+
sorting = results['sorting']
|
|
67
|
+
metrics = results['metrics']
|
|
68
|
+
labels = results['labels']
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Standard Analysis Workflow
|
|
72
|
+
|
|
73
|
+
### 1. Preprocessing
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
# Recommended preprocessing chain
|
|
77
|
+
rec = si.highpass_filter(recording, freq_min=400)
|
|
78
|
+
rec = si.phase_shift(rec) # Required for Neuropixels 1.0
|
|
79
|
+
bad_ids, _ = si.detect_bad_channels(rec)
|
|
80
|
+
rec = rec.remove_channels(bad_ids)
|
|
81
|
+
rec = si.common_reference(rec, operator='median')
|
|
82
|
+
|
|
83
|
+
# Or use our wrapper
|
|
84
|
+
rec = npa.preprocess(recording)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 2. Check and Correct Drift
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
# Check for drift (always do this!)
|
|
91
|
+
motion_info = npa.estimate_motion(rec, preset='kilosort_like')
|
|
92
|
+
npa.plot_drift(rec, motion_info, output='drift_map.png')
|
|
93
|
+
|
|
94
|
+
# Apply correction if needed
|
|
95
|
+
if motion_info['motion'].max() > 10: # microns
|
|
96
|
+
rec = npa.correct_motion(rec, preset='nonrigid_accurate')
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 3. Spike Sorting
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
# Kilosort4 (recommended, requires GPU)
|
|
103
|
+
sorting = si.run_sorter('kilosort4', rec, folder='ks4_output')
|
|
104
|
+
|
|
105
|
+
# CPU alternatives
|
|
106
|
+
sorting = si.run_sorter('tridesclous2', rec, folder='tdc2_output')
|
|
107
|
+
sorting = si.run_sorter('spykingcircus2', rec, folder='sc2_output')
|
|
108
|
+
sorting = si.run_sorter('mountainsort5', rec, folder='ms5_output')
|
|
109
|
+
|
|
110
|
+
# Check available sorters
|
|
111
|
+
print(si.installed_sorters())
|
|
112
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nilearn
|
|
3
|
+
description: Neuroimaging data analysis and brain statistical maps. Use when working with fMRI, structural MRI, brain parcellation, connectivity matrices, or neuroimaging statistical analysis. Trigger on imports of nilearn, nibabel, or mentions of neuroimaging, fMRI, brain, voxel, cortical surface, MNI coordinates.
|
|
4
|
+
---
|
|
5
|
+
# nilearn
|
|
6
|
+
|
|
7
|
+
Use this skill for neuroimaging data analysis.
|
|
8
|
+
|
|
9
|
+
## Core patterns
|
|
10
|
+
|
|
11
|
+
- **Load**: `nilearn.image.load_img('brain.nii.gz')` → `img.get_fdata()`.
|
|
12
|
+
- **Masking**: `NiftiMasker(mask_img='mask.nii.gz', standardize=True).fit_transform(img)`.
|
|
13
|
+
- **Parcellation**: `datasets.fetch_atlas_harvard_oxford()` for brain region labels.
|
|
14
|
+
- **Connectivity**: `ConnectivityMeasure(kind='correlation').fit_extract(timeseries)`.
|
|
15
|
+
- **Plotting**: `plotting.plot_stat_map(stat_img, threshold=3.0)` for activation maps.
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
- Always register images to same space (MNI152) before comparing.
|
|
20
|
+
- Use `NiftiMasker` for extracting voxel signals — handles masking and standardization.
|
|
21
|
+
- Smooth data before GLM analysis: `image.smooth_img(img, fwhm=6)`.
|
|
22
|
+
|
|
23
|
+
## Anti-patterns
|
|
24
|
+
|
|
25
|
+
- Don't compare brain images across subjects without normalization.
|
|
26
|
+
- Don't interpret correlation matrices without multiple comparison correction.
|
|
27
|
+
- Don't load 4D fMRI entirely into float64 — use `dtype='auto'`.
|
|
28
|
+
|
|
29
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: observability-reliability
|
|
3
|
+
description: Metrics, diagnostics, correlation, retry, deadletter, and recovery evidence workflow. Use when adding reliability features or investigating failures.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# observability-reliability
|
|
8
|
+
|
|
9
|
+
Use this skill for reliability and observability work.
|
|
10
|
+
|
|
11
|
+
## Source patterns distilled
|
|
12
|
+
|
|
13
|
+
- `src/observability/*` — metric registry, retention, sinks, exporters, event-to-metric mapping
|
|
14
|
+
- `src/runtime/retry-executor.ts`, `deadletter.ts`, `diagnostic-export.ts`, `recovery-recipes.ts`, `overflow-recovery.ts`, `heartbeat-gradient.ts`
|
|
15
|
+
- `docs/research-phase9-observability-reliability-plan.md`
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
- Metrics should be per-session/per-registry where possible; avoid hidden global singletons.
|
|
20
|
+
- Use low-cardinality labels. Avoid raw task titles, prompts, full file paths, or secrets in metric labels.
|
|
21
|
+
- Redact secrets before writing logs, events, diagnostics, agent output, or exported bundles.
|
|
22
|
+
- Correlate events with runId/taskId and timestamps; include enough context for postmortem without exposing secrets.
|
|
23
|
+
- Retry should record attempts and deadletter on exhaustion; default auto-retry should remain conservative.
|
|
24
|
+
- Diagnostics should be safe to share: include state summary, recent events, metrics snapshot when available, and paths to artifacts.
|
|
25
|
+
- Heartbeat classification should be threshold-based and should ignore terminal tasks/runs.
|
|
26
|
+
- Overflow recovery should track phase progression and terminal states without repeatedly alerting on completed work.
|
|
27
|
+
|
|
28
|
+
## Anti-patterns
|
|
29
|
+
|
|
30
|
+
- High-cardinality Prometheus labels.
|
|
31
|
+
- Emitting duplicate noisy health notifications every render tick.
|
|
32
|
+
- Writing unredacted Authorization/API key/token values into events or artifacts.
|
|
33
|
+
- Treating secondary metrics as primary pass/fail unless catastrophic.
|
|
34
|
+
|
|
35
|
+
## Verification
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
cd pi-crew
|
|
39
|
+
npx tsc --noEmit
|
|
40
|
+
node --experimental-strip-types --test test/unit/metric-registry.test.ts test/unit/event-to-metric.test.ts test/unit/diagnostic-export.test.ts test/unit/retry-executor.test.ts test/unit/deadletter.test.ts
|
|
41
|
+
npm test
|
|
42
|
+
```
|
|
43
|
+
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omc-doctor
|
|
3
|
+
description: Diagnose and fix oh-my-claudecode installation issues
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# Doctor Skill
|
|
8
|
+
|
|
9
|
+
Note: All `~/.claude/...` paths in this guide respect `CLAUDE_CONFIG_DIR` when that environment variable is set.
|
|
10
|
+
|
|
11
|
+
## Task: Run Installation Diagnostics
|
|
12
|
+
|
|
13
|
+
You are the OMC Doctor - diagnose and fix installation issues.
|
|
14
|
+
|
|
15
|
+
### Step 1: Check Plugin Version
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Get installed and latest versions (cross-platform)
|
|
19
|
+
node -e "const p=require('path'),f=require('fs'),h=require('os').homedir(),d=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.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}));console.log('Installed:',v.length?v[v.length-1]:'(none)')}catch{console.log('Installed: (none)')}"
|
|
20
|
+
npm view oh-my-claude-sisyphus version 2>/dev/null || echo "Latest: (unavailable)"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Diagnosis**:
|
|
24
|
+
- If no version installed: CRITICAL - plugin not installed
|
|
25
|
+
- If INSTALLED != LATEST: WARN - outdated plugin
|
|
26
|
+
- If multiple versions exist: WARN - stale cache
|
|
27
|
+
|
|
28
|
+
### Step 2: Check for Legacy Hooks in settings.json
|
|
29
|
+
|
|
30
|
+
Read both `${CLAUDE_CONFIG_DIR:-~/.claude}/settings.json` (profile-level) and `./.claude/settings.json` (project-level) and check if there's a `"hooks"` key with entries like:
|
|
31
|
+
- `bash ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hooks/keyword-detector.sh`
|
|
32
|
+
- `bash ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hooks/persistent-mode.sh`
|
|
33
|
+
- `bash ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hooks/session-start.sh`
|
|
34
|
+
|
|
35
|
+
**Diagnosis**:
|
|
36
|
+
- If found: CRITICAL - legacy hooks causing duplicates
|
|
37
|
+
|
|
38
|
+
### Step 3: Check for Legacy Bash Hook Scripts
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
ls -la "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/hooks/*.sh 2>/dev/null
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Diagnosis**:
|
|
45
|
+
- If `keyword-detector.sh`, `persistent-mode.sh`, `session-start.sh`, or `stop-continuation.sh` exist: WARN - legacy scripts (can cause confusion)
|
|
46
|
+
|
|
47
|
+
### Step 4: Check CLAUDE.md
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Check if CLAUDE.md exists
|
|
51
|
+
ls -la "${CLAUDE_CONFIG_DIR:-$HOME/.claude}"/CLAUDE.md 2>/dev/null
|
|
52
|
+
|
|
53
|
+
# Check for OMC markers (<!-- OMC:START --> is the canonical marker)
|
|
54
|
+
grep -q "<!-- OMC:START -->" "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/CLAUDE.md" 2>/dev/null && echo "Has OMC config" || echo "Missing OMC config in CLAUDE.md"
|
|
55
|
+
|
|
56
|
+
# Check CLAUDE.md (or deterministic companion) version marker and compare with latest installed plugin cache version
|
|
57
|
+
node -e "const p=require('path'),f=require('fs'),h=require('os').homedir(),d=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude');const base=p.join(d,'CLAUDE.md');let baseContent='';try{baseContent=f.readFileSync(base,'utf8')}catch{};let candidates=[base];let referenced='';const importMatch=baseContent.match(/CLAUDE-[^ )]*\\.md/);if(importMatch){referenced=p.join(d,importMatch[0]);candidates.push(referenced)}else{const defaultCompanion=p.join(d,'CLAUDE-omc.md');if(f.existsSync(defaultCompanion))candidates.push(defaultCompanion);try{const others=f.readdirSync(d).filter(n=>/^CLAUDE-.*\\.md$/i.test(n)).sort().map(n=>p.join(d,n));for(const o of others){if(candidates.includes(o)===false)candidates.push(o)}}catch{}};let claudeV='(missing)';let claudeSource='(none)';for(const file of candidates){try{const c=f.readFileSync(file,'utf8');const m=c.match(/<!--\\s*OMC:VERSION:([^\\s]+)\\s*-->/i);if(m){claudeV=m[1];claudeSource=file;break}}catch{}};if(claudeV==='(missing)'&&candidates.length>0){claudeV='(missing marker)';claudeSource='scanned deterministic CLAUDE sources';};let pluginV='(none)';try{const b=p.join(d,'plugins','cache','omc','oh-my-claudecode');const v=f.readdirSync(b).filter(x=>/^\\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));pluginV=v.length?v[v.length-1]:'(none)';}catch{};console.log('CLAUDE.md OMC version:',claudeV);console.log('OMC version source:',claudeSource);console.log('Latest cached plugin version:',pluginV);if(claudeV==='(missing)'||claudeV==='(missing marker)'||pluginV==='(none)'){console.log('VERSION CHECK SKIPPED: missing CLAUDE marker or plugin cache')}else if(claudeV===pluginV){console.log('VERSION MATCH: CLAUDE and plugin cache are aligned')}else{console.log('VERSION DRIFT: CLAUDE.md and plugin versions differ')}"
|
|
58
|
+
|
|
59
|
+
# Check companion files for file-split pattern (e.g. CLAUDE-omc.md)
|
|
60
|
+
find "${CLAUDE_CONFIG_DIR:-$HOME/.claude}" -maxdepth 1 -type f -name 'CLAUDE-*.md' -print 2>/dev/null
|
|
61
|
+
while IFS= read -r f; do
|
|
62
|
+
grep -q "<!-- OMC:START -->" "$f" 2>/dev/null && echo "Has OMC config in companion: $f"
|
|
63
|
+
done < <(find "${CLAUDE_CONFIG_DIR:-$HOME/.claude}" -maxdepth 1 -type f -name 'CLAUDE-*.md' -print 2>/dev/null)
|
|
64
|
+
|
|
65
|
+
# Check if CLAUDE.md references a companion file
|
|
66
|
+
grep -o "CLAUDE-[^ )]*\.md" "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/CLAUDE.md" 2>/dev/null
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Diagnosis**:
|
|
70
|
+
- If CLAUDE.md missing: CRITICAL - CLAUDE.md not configured
|
|
71
|
+
- If `<!-- OMC:START -->` found in CLAUDE.md: OK
|
|
72
|
+
- If `<!-- OMC:START -->` found in a companion file (e.g. `CLAUDE-omc.md`): OK - file-split pattern detected
|
|
73
|
+
- If no OMC markers in CLAUDE.md or any companion file: WARN - outdated CLAUDE.md
|
|
74
|
+
- If `OMC:VERSION` marker is missing from deterministic CLAUDE source scan (base + referenced companion): WARN - cannot verify CLAUDE.md freshness
|
|
75
|
+
- If `CLAUDE.md OMC version` != `Latest cached plugin version`: WARN - version drift detected (run `omc update` or `omc setup`)
|
|
76
|
+
|
|
77
|
+
### Step 5: Check Ralph Ruby Dependency
|
|
78
|
+
|
|
79
|
+
Ralph workflows require Ruby. Check for Ruby explicitly so fresh installations get actionable guidance instead of a later opaque Ralph failure.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
if command -v ruby >/dev/null 2>&1; then
|
|
83
|
+
echo "Ruby for Ralph: $(ruby --version 2>/dev/null | head -1)"
|
|
84
|
+
else
|
|
85
|
+
echo "Ruby for Ralph: MISSING"
|
|
86
|
+
```
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omc-reference
|
|
3
|
+
description: OMC agent catalog, available tools, team pipeline routing, commit protocol, and skills registry. Auto-loads when delegating to agents, using OMC tools, orchestrating teams, making commits, or invoking skills.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OMC Reference
|
|
7
|
+
|
|
8
|
+
Use this built-in reference when you need detailed OMC catalog information that does not need to live in every `CLAUDE.md` session.
|
|
9
|
+
|
|
10
|
+
## Agent Catalog
|
|
11
|
+
|
|
12
|
+
Prefix: `oh-my-claudecode:`. See `agents/*.md` for full prompts.
|
|
13
|
+
|
|
14
|
+
- `explore` (haiku) — fast codebase search and mapping
|
|
15
|
+
- `analyst` (opus) — requirements clarity and hidden constraints
|
|
16
|
+
- `planner` (opus) — sequencing and execution plans
|
|
17
|
+
- `architect` (opus) — system design, boundaries, and long-horizon tradeoffs
|
|
18
|
+
- `debugger` (sonnet) — root-cause analysis and failure diagnosis
|
|
19
|
+
- `executor` (sonnet) — implementation and refactoring
|
|
20
|
+
- `verifier` (sonnet) — completion evidence and validation
|
|
21
|
+
- `tracer` (sonnet) — trace gathering and evidence capture
|
|
22
|
+
- `security-reviewer` (sonnet) — trust boundaries and vulnerabilities
|
|
23
|
+
- `code-reviewer` (opus) — comprehensive code review
|
|
24
|
+
- `test-engineer` (sonnet) — testing strategy and regression coverage
|
|
25
|
+
|
|
26
|
+
## Model Routing
|
|
27
|
+
|
|
28
|
+
- `haiku` — quick lookups, lightweight inspection, narrow docs work
|
|
29
|
+
- `sonnet` — standard implementation, debugging, and review
|
|
30
|
+
- `opus` — architecture, deep analysis, consensus planning, and high-risk review
|
|
31
|
+
|
|
32
|
+
## Tools Reference
|
|
33
|
+
|
|
34
|
+
### External AI / orchestration
|
|
35
|
+
- `/team N:executor "task"`
|
|
36
|
+
- `omc team N:codex|gemini "..."`
|
|
37
|
+
- `omc ask <claude|codex|gemini>`
|
|
38
|
+
- `/ccg`
|
|
39
|
+
|
|
40
|
+
### OMC state
|
|
41
|
+
- `state_read`, `state_write`, `state_clear`, `state_list_active`, `state_get_status`
|
|
42
|
+
|
|
43
|
+
### Team runtime
|
|
44
|
+
- `TeamCreate`, `TeamDelete`, `SendMessage`, `TaskCreate`, `TaskList`, `TaskGet`, `TaskUpdate`
|
|
45
|
+
|
|
46
|
+
### Notepad
|
|
47
|
+
- `notepad_read`, `notepad_write_priority`, `notepad_write_working`, `notepad_write_manual`
|
|
48
|
+
|
|
49
|
+
### Project memory
|
|
50
|
+
- `project_memory_read`, `project_memory_write`, `project_memory_add_note`, `project_memory_add_directive`
|
|
51
|
+
|
|
52
|
+
### Code intelligence
|
|
53
|
+
- LSP: `lsp_hover`, `lsp_goto_definition`, `lsp_find_references`, `lsp_diagnostics`, and related helpers
|
|
54
|
+
- AST: `ast_grep_search`, `ast_grep_replace`
|
|
55
|
+
- Utility: `python_repl`
|
|
56
|
+
|
|
57
|
+
## Skills Registry
|
|
58
|
+
|
|
59
|
+
Invoke built-in workflows via `/oh-my-claudecode:`.
|
|
60
|
+
|
|
61
|
+
### Workflow skills
|
|
62
|
+
- `autopilot` — full autonomous execution from idea to working code
|
|
63
|
+
- `ralph` — persistence loop until completion with verification
|
|
64
|
+
- `ultrawork` — high-throughput parallel execution
|
|
65
|
+
- `visual-verdict` — structured visual QA verdicts
|
|
66
|
+
- `team` — coordinated team orchestration
|
|
67
|
+
- `ccg` — Codex + Gemini + Claude synthesis lane
|
|
68
|
+
- `ultraqa` — QA cycle: test, verify, fix, repeat
|
|
69
|
+
- `omc-plan` — planning workflow and `/plan`-safe alias
|
|
70
|
+
- `ralplan` — consensus planning workflow
|
|
71
|
+
- `sciomc` — science/research workflow
|
|
72
|
+
- `external-context` — external docs/research workflow
|
|
73
|
+
- `deepinit` — hierarchical AGENTS.md generation
|
|
74
|
+
- `deep-interview` — Socratic ambiguity-gated requirements workflow
|
|
75
|
+
- `ai-slop-cleaner` — regression-safe cleanup workflow
|
|
76
|
+
|
|
77
|
+
### Utility skills
|
|
78
|
+
- `ask`, `cancel`, `note`, `skillify`, `learner` (deprecated alias), `omc-setup`, `mcp-setup`, `hud`, `omc-doctor`, `trace`, `release`, `project-session-manager`, `skill`, `writer-memory`, `configure-notifications`
|
|
79
|
+
|
|
80
|
+
### Keyword triggers kept compact in CLAUDE.md
|
|
81
|
+
- `"autopilot"→autopilot`
|
|
82
|
+
- `"ralph"→ralph`
|
|
83
|
+
- `"ulw"→ultrawork`
|
|
84
|
+
- `"ccg"→ccg`
|
|
85
|
+
- `"ralplan"→ralplan`
|
|
86
|
+
- `"deep interview"→deep-interview`
|
|
87
|
+
- `"deslop" / "anti-slop"→ai-slop-cleaner`
|
|
88
|
+
- `"deep-analyze"→analysis mode`
|
|
89
|
+
- `"tdd"→TDD mode`
|
|
90
|
+
- `"deepsearch"→codebase search`
|
|
91
|
+
- `"ultrathink"→deep reasoning`
|
|
92
|
+
- `"cancelomc"→cancel`
|
|
93
|
+
- Team orchestration is explicit via `/team`.
|
|
94
|
+
|
|
95
|
+
## Team Pipeline
|
|
96
|
+
|
|
97
|
+
Stages: `team-plan` → `team-prd` → `team-exec` → `team-verify` → `team-fix` (loop).
|
|
98
|
+
|
|
99
|
+
- Use `team-fix` for bounded remediation loops.
|
|
100
|
+
- `team ralph` links the team pipeline with Ralph-style sequential verification.
|
|
101
|
+
- Prefer team mode when independent parallel lanes justify the coordination overhead.
|
|
102
|
+
|
|
103
|
+
## Commit Protocol
|
|
104
|
+
|
|
105
|
+
Use git trailers to preserve decision context in every commit message.
|
|
106
|
+
|
|
107
|
+
### Format
|
|
108
|
+
- Intent line first: why the change was made
|
|
109
|
+
- Optional body with context and rationale
|
|
110
|
+
- Structured trailers when applicable
|
|
111
|
+
|
|
112
|
+
### Common trailers
|
|
113
|
+
- `Constraint:` active constraint shaping the decision
|
|
114
|
+
- `Rejected:` alternative considered | reason for rejection
|
|
115
|
+
- `Directive:` forward-looking warning or instruction
|
|
116
|
+
- `Confidence:` `high` | `medium` | `low`
|
|
117
|
+
- `Scope-risk:` `narrow` | `moderate` | `broad`
|
|
118
|
+
|
|
119
|
+
|