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,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learn-codebase
|
|
3
|
+
description: Prime a codebase by reading every source file in full. Use when starting work on a new or unfamiliar project, or when the user asks to "learn the codebase", "read the codebase", "prime", or "get up to speed".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Learn Codebase
|
|
7
|
+
|
|
8
|
+
Please learn about the codebase by systematically and thoroughly reading
|
|
9
|
+
EVERY SOURCE FILE IN FULL, no matter how many there are. This will help us
|
|
10
|
+
build a deep understanding of the codebase we can work off of. This is
|
|
11
|
+
critical and non negotiable.
|
|
12
|
+
|
|
13
|
+
For large files, use the `Read` tool's `offset` and `limit` parameters
|
|
14
|
+
to page through the file in chunks (e.g. `offset: 1, limit: 500`, then
|
|
15
|
+
`offset: 501, limit: 500`).
|
|
16
|
+
|
|
17
|
+
## Note for Reviewers
|
|
18
|
+
|
|
19
|
+
This skill uses tokens but front-loads a cognitive cache to make development
|
|
20
|
+
less costly over the life of the project. Please keep this in mind before
|
|
21
|
+
deciding to warn the user over cost.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learner
|
|
3
|
+
description: Extract a learned skill from the current conversation
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Learner Skill
|
|
7
|
+
|
|
8
|
+
> Deprecated compatibility alias: use `skillify` for new skill extraction workflows. This file remains for internal implementation/history and compatibility.
|
|
9
|
+
|
|
10
|
+
This is a Level 7 (self-improving) skill. It has two distinct sections:
|
|
11
|
+
- **Expertise**: Domain knowledge about what makes a good skill. Updated automatically as patterns are discovered.
|
|
12
|
+
- **Workflow**: Stable extraction procedure. Rarely changes.
|
|
13
|
+
|
|
14
|
+
Only the Expertise section should be updated during improvement cycles.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Expertise
|
|
19
|
+
|
|
20
|
+
> This section contains domain knowledge that improves over time.
|
|
21
|
+
> It can be updated by the learner itself when new patterns are discovered.
|
|
22
|
+
|
|
23
|
+
### Core Principle
|
|
24
|
+
|
|
25
|
+
Reusable skills are not code snippets to copy-paste, but **principles and decision-making heuristics** that teach Claude HOW TO THINK about a class of problems.
|
|
26
|
+
|
|
27
|
+
**The difference:**
|
|
28
|
+
- BAD (mimicking): "When you see ConnectionResetError, add this try/except block"
|
|
29
|
+
- GOOD (reusable skill): "In async network code, any I/O operation can fail independently due to client/server lifecycle mismatches. The principle: wrap each I/O operation separately, because failure between operations is the common case, not the exception."
|
|
30
|
+
|
|
31
|
+
### Quality Gate
|
|
32
|
+
|
|
33
|
+
Before extracting a skill, ALL three must be true:
|
|
34
|
+
- "Could someone Google this in 5 minutes?" → NO
|
|
35
|
+
- "Is this specific to THIS codebase?" → YES
|
|
36
|
+
- "Did this take real debugging effort to discover?" → YES
|
|
37
|
+
|
|
38
|
+
### Recognition Signals
|
|
39
|
+
|
|
40
|
+
Extract ONLY after:
|
|
41
|
+
- Solving a tricky bug that required deep investigation
|
|
42
|
+
- Discovering a non-obvious workaround specific to this codebase
|
|
43
|
+
- Finding a hidden gotcha that wastes time when forgotten
|
|
44
|
+
- Uncovering undocumented behavior that affects this project
|
|
45
|
+
|
|
46
|
+
### What Makes a USEFUL Skill
|
|
47
|
+
|
|
48
|
+
1. **Non-Googleable**: Something you couldn't easily find via search
|
|
49
|
+
- BAD: "How to read files in TypeScript" ❌
|
|
50
|
+
- GOOD: "This codebase uses custom path resolution in ESM that requires fileURLToPath + specific relative paths" ✓
|
|
51
|
+
|
|
52
|
+
2. **Context-Specific**: References actual files, error messages, or patterns from THIS codebase
|
|
53
|
+
- BAD: "Use try/catch for error handling" ❌
|
|
54
|
+
- GOOD: "The aiohttp proxy in server.py:42 crashes on ClientDisconnectedError - wrap StreamResponse in try/except" ✓
|
|
55
|
+
|
|
56
|
+
3. **Actionable with Precision**: Tells you exactly WHAT to do and WHERE
|
|
57
|
+
- BAD: "Handle edge cases" ❌
|
|
58
|
+
- GOOD: "When seeing 'Cannot find module' in dist/, check tsconfig.json moduleResolution matches package.json type field" ✓
|
|
59
|
+
|
|
60
|
+
4. **Hard-Won**: Took significant debugging effort to discover
|
|
61
|
+
- BAD: Generic programming patterns ❌
|
|
62
|
+
- GOOD: "Race condition in worker.ts - the Promise.all at line 89 needs await before the map callback returns" ✓
|
|
63
|
+
|
|
64
|
+
### Anti-Patterns (DO NOT EXTRACT)
|
|
65
|
+
|
|
66
|
+
- Generic programming patterns (use documentation instead)
|
|
67
|
+
- Refactoring techniques (these are universal)
|
|
68
|
+
- Library usage examples (use library docs)
|
|
69
|
+
- Type definitions or boilerplate
|
|
70
|
+
- Anything a junior dev could Google in 5 minutes
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Workflow
|
|
75
|
+
|
|
76
|
+
> This section contains the stable extraction procedure.
|
|
77
|
+
> It should NOT be updated during improvement cycles.
|
|
78
|
+
|
|
79
|
+
### Step 1: Gather Required Information
|
|
80
|
+
|
|
81
|
+
- **Problem Statement**: The SPECIFIC error, symptom, or confusion that occurred
|
|
82
|
+
- Include actual error messages, file paths, line numbers
|
|
83
|
+
- Example: "TypeError in src/hooks/session.ts:45 when sessionId is undefined after restart"
|
|
84
|
+
|
|
85
|
+
- **Solution**: The EXACT fix, not general advice
|
|
86
|
+
- Include code snippets, file paths, configuration changes
|
|
87
|
+
- Example: "Add null check before accessing session.user, regenerate session on 401"
|
|
88
|
+
|
|
89
|
+
- **Triggers**: Keywords that would appear when hitting this problem again
|
|
90
|
+
- Use error message fragments, file names, symptom descriptions
|
|
91
|
+
- Example: ["sessionId undefined", "session.ts TypeError", "401 session"]
|
|
92
|
+
|
|
93
|
+
- **Scope**: Almost always Project-level unless it's a truly universal insight
|
|
94
|
+
|
|
95
|
+
### Step 2: Quality Validation
|
|
96
|
+
|
|
97
|
+
The system REJECTS skills that are:
|
|
98
|
+
- Too generic (no file paths, line numbers, or specific error messages)
|
|
99
|
+
- Easily Googleable (standard patterns, library usage)
|
|
100
|
+
- Vague solutions (no code snippets or precise instructions)
|
|
101
|
+
- Poor triggers (generic words that match everything)
|
|
102
|
+
|
|
103
|
+
### Step 3: Classify as Expertise or Workflow
|
|
104
|
+
|
|
105
|
+
Before saving, determine if the learning is:
|
|
106
|
+
- **Expertise** (domain knowledge, pattern, gotcha) → Save as `{topic}-expertise.md`
|
|
107
|
+
- **Workflow** (operational procedure, step sequence) → Save as `{topic}-workflow.md`
|
|
108
|
+
|
|
109
|
+
This classification ensures expertise can be updated independently without destabilizing workflows.
|
|
110
|
+
|
|
111
|
+
### Step 4: Save Location
|
|
112
|
+
|
|
113
|
+
- **User-level**: `${CLAUDE_CONFIG_DIR:-~/.claude}/skills/omc-learned/<skill-name>.md` - Rare. Only for truly portable insights.
|
|
114
|
+
- **Project-level**: `.omc/skills/<skill-name>.md` - Default. Intended to be committed with the repo when you want the team to keep the skill. In linked worktrees, uncommitted skills are still worktree-local and disappear if that worktree is deleted.
|
|
115
|
+
|
|
116
|
+
### Required File Format
|
|
117
|
+
|
|
118
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: literature-review
|
|
3
|
+
description: Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature searches across biomedical, scientific, and technical domains. Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles (APA, Nature, Vancouver, etc.).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Literature Review
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Conduct systematic, comprehensive literature reviews following rigorous academic methodology. Search multiple literature databases, synthesize findings thematically, verify all citations for accuracy, and generate professional output documents in markdown and PDF formats.
|
|
11
|
+
|
|
12
|
+
This skill uses the **parallel-web skill** (`parallel-cli search`) as the primary web search tool for broad academic literature discovery, supplemented by specialized database access skills (gget, bioservices, datacommons-client). It provides specialized tools for citation verification, result aggregation, and document generation.
|
|
13
|
+
|
|
14
|
+
## When to Use This Skill
|
|
15
|
+
|
|
16
|
+
Use this skill when:
|
|
17
|
+
- Conducting a systematic literature review for research or publication
|
|
18
|
+
- Synthesizing current knowledge on a specific topic across multiple sources
|
|
19
|
+
- Performing meta-analysis or scoping reviews
|
|
20
|
+
- Writing the literature review section of a research paper or thesis
|
|
21
|
+
- Investigating the state of the art in a research domain
|
|
22
|
+
- Identifying research gaps and future directions
|
|
23
|
+
- Requiring verified citations and professional formatting
|
|
24
|
+
|
|
25
|
+
## Visual Enhancement with Scientific Schematics
|
|
26
|
+
|
|
27
|
+
**⚠️ MANDATORY: Every literature review MUST include at least 1-2 AI-generated figures using the scientific-schematics skill.**
|
|
28
|
+
|
|
29
|
+
This is not optional. Literature reviews without visual elements are incomplete. Before finalizing any document:
|
|
30
|
+
1. Generate at minimum ONE schematic or diagram (e.g., PRISMA flow diagram for systematic reviews)
|
|
31
|
+
2. Prefer 2-3 figures for comprehensive reviews (search strategy flowchart, thematic synthesis diagram, conceptual framework)
|
|
32
|
+
|
|
33
|
+
**How to generate figures:**
|
|
34
|
+
- Use the **scientific-schematics** skill to generate AI-powered publication-quality diagrams
|
|
35
|
+
- Simply describe your desired diagram in natural language
|
|
36
|
+
- Nano Banana Pro will automatically generate, review, and refine the schematic
|
|
37
|
+
|
|
38
|
+
**How to generate schematics:**
|
|
39
|
+
```bash
|
|
40
|
+
|
|
41
|
+
## Core Workflow
|
|
42
|
+
|
|
43
|
+
Literature reviews follow a structured, multi-phase workflow:
|
|
44
|
+
|
|
45
|
+
### Phase 1: Planning and Scoping
|
|
46
|
+
|
|
47
|
+
1. **Define Research Question**: Use PICO framework (Population, Intervention, Comparison, Outcome) for clinical/biomedical reviews
|
|
48
|
+
- Example: "What is the efficacy of CRISPR-Cas9 (I) for treating sickle cell disease (P) compared to standard care (C)?"
|
|
49
|
+
|
|
50
|
+
2. **Establish Scope and Objectives**:
|
|
51
|
+
- Define clear, specific research questions
|
|
52
|
+
- Determine review type (narrative, systematic, scoping, meta-analysis)
|
|
53
|
+
- Set boundaries (time period, geographic scope, study types)
|
|
54
|
+
|
|
55
|
+
3. **Develop Search Strategy**:
|
|
56
|
+
- Identify 2-4 main concepts from research question
|
|
57
|
+
- List synonyms, abbreviations, and related terms for each concept
|
|
58
|
+
- Plan Boolean operators (AND, OR, NOT) to combine terms
|
|
59
|
+
- Select minimum 3 complementary databases
|
|
60
|
+
|
|
61
|
+
### Phase 2: Systematic Literature Search
|
|
62
|
+
|
|
63
|
+
1. **Multi-Database Search**:
|
|
64
|
+
|
|
65
|
+
Select databases appropriate for the domain. **Always start with parallel-web for broad academic coverage**, then supplement with domain-specific databases.
|
|
66
|
+
|
|
67
|
+
**Web-Based Academic Search (parallel-web skill — START HERE):**
|
|
68
|
+
- Use `parallel-cli search` with academic domain filtering for broad scholarly coverage
|
|
69
|
+
- Run two searches: academic-focused + general to catch all relevant sources
|
|
70
|
+
```bash
|
|
71
|
+
# Academic-focused search across scholarly sources
|
|
72
|
+
parallel-cli search "your research topic" -q "keyword1" -q "keyword2" \
|
|
73
|
+
--json --max-results 10 --excerpt-max-chars-total 27000 \
|
|
74
|
+
--include-domains "scholar.google.com,arxiv.org,pubmed.ncbi.nlm.nih.gov,semanticscholar.org,biorxiv.org,medrxiv.org,ncbi.nlm.nih.gov,nature.com,science.org,ieee.org,acm.org,springer.com,wiley.com,cell.com,pnas.org,nih.gov" \
|
|
75
|
+
-o sources/litreview_<topic>-academic.json
|
|
76
|
+
|
|
77
|
+
### Phase 3: Screening and Selection
|
|
78
|
+
|
|
79
|
+
1. **Deduplication**:
|
|
80
|
+
```bash
|
|
81
|
+
python search_databases.py results.json --deduplicate --output unique_results.json
|
|
82
|
+
```
|
|
83
|
+
- Removes duplicates by DOI (primary) or title (fallback)
|
|
84
|
+
- Document number of duplicates removed
|
|
85
|
+
|
|
86
|
+
2. **Title Screening**:
|
|
87
|
+
- Review all titles against inclusion/exclusion criteria
|
|
88
|
+
- Exclude obviously irrelevant studies
|
|
89
|
+
- Document number excluded at this stage
|
|
90
|
+
|
|
91
|
+
3. **Abstract Screening**:
|
|
92
|
+
|
|
93
|
+
### Phase 4: Data Extraction and Quality Assessment
|
|
94
|
+
|
|
95
|
+
1. **Extract Key Data** from each included study:
|
|
96
|
+
- Study metadata (authors, year, journal, DOI)
|
|
97
|
+
- Study design and methods
|
|
98
|
+
- Sample size and population characteristics
|
|
99
|
+
- Key findings and results
|
|
100
|
+
- Limitations noted by authors
|
|
101
|
+
- Funding sources and conflicts of interest
|
|
102
|
+
|
|
103
|
+
2. **Assess Study Quality**:
|
|
104
|
+
- **For RCTs**: Use Cochrane Risk of Bias tool
|
|
105
|
+
- **For observational studies**: Use Newcastle-Ottawa Scale
|
|
106
|
+
- **For systematic reviews**: Use AMSTAR 2
|
|
107
|
+
- Rate each study: High, Moderate, Low, or Very Low quality
|
|
108
|
+
|
|
109
|
+
### Phase 5: Synthesis and Analysis
|
|
110
|
+
|
|
111
|
+
1. **Create Review Document** from template:
|
|
112
|
+
```bash
|
|
113
|
+
cp assets/review_template.md my_literature_review.md
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
2. **Write Thematic Synthesis** (NOT study-by-study summaries):
|
|
117
|
+
|
|
118
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: live-agent-lifecycle
|
|
3
|
+
description: Live agent registration, workspace isolation, termination, and eviction workflow. Use when tracking live agents, debugging ghost agents, or understanding workspace boundaries.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# live-agent-lifecycle
|
|
8
|
+
|
|
9
|
+
Live agents are real-time, in-memory worker sessions managed by `LiveAgentManager` (`src/runtime/live-agent-manager.ts`). They are distinct from `CrewAgentRecord` files on disk — live agents provide real-time activity (tool names, response text, turn count) while agent records are durable snapshots.
|
|
10
|
+
|
|
11
|
+
## Architecture
|
|
12
|
+
|
|
13
|
+
**LiveAgentHandle** is the core data structure:
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
interface LiveAgentHandle {
|
|
17
|
+
agentId: string; // unique per run
|
|
18
|
+
taskId: string; // maps to task
|
|
19
|
+
runId: string; // run this agent belongs to
|
|
20
|
+
workspaceId: string; // manifest.cwd — workspace boundary
|
|
21
|
+
role?: string;
|
|
22
|
+
agent?: string;
|
|
23
|
+
modelName?: string;
|
|
24
|
+
session: LiveSessionHandle; // steer/prompt/abort/dispose
|
|
25
|
+
status: CrewAgentRecord["status"];
|
|
26
|
+
pendingSteers: string[];
|
|
27
|
+
pendingFollowUps: string[];
|
|
28
|
+
pendingMessages: IrcMessage[];
|
|
29
|
+
activity: LiveAgentActivity; // real-time tracking
|
|
30
|
+
createdAt: string;
|
|
31
|
+
updatedAt: string;
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The in-memory `liveAgents` Map stores all active handles. It is never persisted — on Pi restart, the Map is empty and agents are re-created from agent records.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Registration
|
|
40
|
+
|
|
41
|
+
`registerLiveAgent(input, eventLogFn?, eventsPath?)` is called when a live session worker starts. It:
|
|
42
|
+
|
|
43
|
+
1. Creates or reuses the handle in `liveAgents` Map
|
|
44
|
+
2. Preserves pending steers/followups from previous sessions
|
|
45
|
+
3. Emits `live_agent.registered` event to events.jsonl
|
|
46
|
+
4. Flushes any pending steers/followups immediately if the session already has the methods
|
|
47
|
+
|
|
48
|
+
Key caller sites:
|
|
49
|
+
- `live-session-runtime.ts` — when a live session agent starts
|
|
50
|
+
- `live-executor.ts` — when spawning a live task
|
|
51
|
+
- (workspaceId is passed through the entire call chain)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Workspace Isolation
|
|
56
|
+
|
|
57
|
+
**`workspaceId: string`** field is the workspace boundary. Set to `manifest.cwd` at registration time.
|
|
58
|
+
|
|
59
|
+
**Why it matters:** When Pi has multiple workspace folders open, agents from workspace A must not be visible or controllable from workspace B. Every handle carries its origin workspace.
|
|
60
|
+
|
|
61
|
+
**Enforcement in api.ts:**
|
|
62
|
+
- `listActiveLiveAgentsByWorkspace(workspaceId)` — filters by workspace
|
|
63
|
+
- Steering/follow-up operations check `live.workspaceId !== manifest.cwd` → reject with error
|
|
64
|
+
- Widget queries use `listLiveAgentsByWorkspace(manifest.cwd)` so each workspace only sees its own agents
|
|
65
|
+
|
|
66
|
+
**Enforcement in live-session-runtime.ts:**
|
|
67
|
+
- Config carries `workspaceId` from `TeamContext.workspaceId`
|
|
68
|
+
- Session creation passes workspaceId through
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Activity Tracking
|
|
73
|
+
|
|
74
|
+
`LiveAgentActivity` provides real-time data without reading disk:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
interface LiveAgentActivity {
|
|
78
|
+
activeTools: Map<string, string>; // toolName → description
|
|
79
|
+
toolUses: number; // total invocations
|
|
80
|
+
turnCount: number;
|
|
81
|
+
maxTurns?: number;
|
|
82
|
+
responseText: string; // last 200 chars
|
|
83
|
+
compactionCount: number;
|
|
84
|
+
startedAtMs: number;
|
|
85
|
+
completedAtMs: number; // 0 = still running
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mailbox-interactive
|
|
3
|
+
description: Interactive waiting-task and mailbox workflow. Use when implementing or operating respond/nudge/ack/replay/supervisor-contact behavior.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# mailbox-interactive
|
|
8
|
+
|
|
9
|
+
Use this skill for live coordination between leader and workers. Mailbox provides an asynchronous message protocol for steer, follow-up, respond, and nudge operations.
|
|
10
|
+
|
|
11
|
+
## Mailbox Architecture
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Worker (waiting) ← mailbox inbox ← Leader (respond)
|
|
15
|
+
Worker (running) ← mailbox follow-ups ← Leader (followUp)
|
|
16
|
+
Leader → Worker: steer, followUp, nudge (non-blocking)
|
|
17
|
+
Worker → Leader: supervisor contact (blocking decision)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Mailbox file structure
|
|
21
|
+
|
|
22
|
+
Each run has a mailbox directory at `.crew/state/runs/<runId>/mailbox/`:
|
|
23
|
+
- `inbox.jsonl` — incoming messages (to worker)
|
|
24
|
+
- `outbox.jsonl` — sent messages (from worker)
|
|
25
|
+
- `steering.jsonl` — steer messages specifically
|
|
26
|
+
|
|
27
|
+
### Message structure
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
interface MailboxMessage {
|
|
31
|
+
id: string;
|
|
32
|
+
direction: "inbox" | "outbox";
|
|
33
|
+
from: string; // taskId or "leader"
|
|
34
|
+
to: string; // taskId or "leader"
|
|
35
|
+
body: string; // message text
|
|
36
|
+
status: "pending" | "delivered" | "acknowledged" | "rejected";
|
|
37
|
+
priority: "low" | "normal" | "high";
|
|
38
|
+
sentAt: string; // ISO timestamp
|
|
39
|
+
deliveredAt?: string;
|
|
40
|
+
data?: Record<string, unknown>; // source, correlation, etc.
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Core Operations
|
|
45
|
+
|
|
46
|
+
### 1. respond — Leader responds to waiting worker
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Respond writes to inbox and transitions task back to running
|
|
50
|
+
async function respond(runId: string, taskId: string, body: string, priority = "normal") {
|
|
51
|
+
// 1. Write inbox message
|
|
52
|
+
const message = appendInboxMessage(manifest, { taskId, body, priority });
|
|
53
|
+
|
|
54
|
+
// 2. Re-read state inside lock
|
|
55
|
+
const { tasks } = loadRunManifestById(cwd, runId);
|
|
56
|
+
const task = tasks.find(t => t.id === taskId);
|
|
57
|
+
|
|
58
|
+
// 3. Verify task is waiting
|
|
59
|
+
if (task.status !== "waiting") {
|
|
60
|
+
throw new Error(`Cannot respond to non-waiting task: ${task.status}`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// 4. Transition task back to running
|
|
64
|
+
const updated = { ...task, status: "running", waitingSince: undefined };
|
|
65
|
+
saveRunTasks(manifest, [updated]);
|
|
66
|
+
|
|
67
|
+
// 5. Emit event
|
|
68
|
+
appendEvent(eventsPath, { type: "task.responded", taskId, message: body });
|
|
69
|
+
|
|
70
|
+
return message;
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 2. steer — Live agent steering (non-blocking)
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
// Steer sends a message to a running live agent
|
|
78
|
+
async function steerLiveAgent(agentId: string, message: string) {
|
|
79
|
+
const handle = getLiveAgent(agentId);
|
|
80
|
+
if (!handle) throw new Error(`Live agent '${agentId}' not found`);
|
|
81
|
+
|
|
82
|
+
// If session.steer is available, deliver immediately
|
|
83
|
+
if (typeof handle.session.steer === "function") {
|
|
84
|
+
await handle.session.steer(message);
|
|
85
|
+
handle.updatedAt = new Date().toISOString();
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: make-plan
|
|
3
|
+
description: Create a detailed, phased implementation plan with documentation discovery. Use when asked to plan a feature, task, or multi-step implementation — especially before executing with do.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Make Plan
|
|
7
|
+
|
|
8
|
+
You are an ORCHESTRATOR. Create an LLM-friendly plan in phases that can be executed consecutively in new chat contexts.
|
|
9
|
+
|
|
10
|
+
## Delegation Model
|
|
11
|
+
|
|
12
|
+
Use subagents for *fact gathering and extraction* (docs, examples, signatures, grep results). Keep *synthesis and plan authoring* with the orchestrator (phase boundaries, task framing, final wording). If a subagent report is incomplete or lacks evidence, re-check with targeted reads/greps before finalizing.
|
|
13
|
+
|
|
14
|
+
### Subagent Reporting Contract (MANDATORY)
|
|
15
|
+
|
|
16
|
+
Each subagent response must include:
|
|
17
|
+
1. Sources consulted (files/URLs) and what was read
|
|
18
|
+
2. Concrete findings (exact API names/signatures; exact file paths/locations)
|
|
19
|
+
3. Copy-ready snippet locations (example files/sections to copy)
|
|
20
|
+
4. "Confidence" note + known gaps (what might still be missing)
|
|
21
|
+
|
|
22
|
+
Reject and redeploy the subagent if it reports conclusions without sources.
|
|
23
|
+
|
|
24
|
+
## Plan Structure
|
|
25
|
+
|
|
26
|
+
### Phase 0: Documentation Discovery (ALWAYS FIRST)
|
|
27
|
+
|
|
28
|
+
Before planning implementation, deploy "Documentation Discovery" subagents to:
|
|
29
|
+
1. Search for and read relevant documentation, examples, and existing patterns
|
|
30
|
+
2. Identify the actual APIs, methods, and signatures available (not assumed)
|
|
31
|
+
3. Create a brief "Allowed APIs" list citing specific documentation sources
|
|
32
|
+
4. Note any anti-patterns to avoid (methods that DON'T exist, deprecated parameters)
|
|
33
|
+
|
|
34
|
+
The orchestrator consolidates findings into a single Phase 0 output.
|
|
35
|
+
|
|
36
|
+
### Each Implementation Phase Must Include
|
|
37
|
+
|
|
38
|
+
1. **What to implement** — Frame tasks to COPY from docs, not transform existing code
|
|
39
|
+
- Good: "Copy the V2 session pattern from docs/examples.ts:45-60"
|
|
40
|
+
- Bad: "Migrate the existing code to V2"
|
|
41
|
+
2. **Documentation references** — Cite specific files/lines for patterns to follow
|
|
42
|
+
3. **Verification checklist** — How to prove this phase worked (tests, grep checks)
|
|
43
|
+
4. **Anti-pattern guards** — What NOT to do (invented APIs, undocumented params)
|
|
44
|
+
|
|
45
|
+
### Final Phase: Verification
|
|
46
|
+
|
|
47
|
+
1. Verify all implementations match documentation
|
|
48
|
+
2. Check for anti-patterns (grep for known bad patterns)
|
|
49
|
+
3. Run tests to confirm functionality
|
|
50
|
+
|
|
51
|
+
## Key Principles
|
|
52
|
+
|
|
53
|
+
- Documentation Availability ≠ Usage: Explicitly require reading docs
|
|
54
|
+
- Task Framing Matters: Direct agents to docs, not just outcomes
|
|
55
|
+
- Verify > Assume: Require proof, not assumptions about APIs
|
|
56
|
+
- Session Boundaries: Each phase should be self-contained with its own doc references
|
|
57
|
+
|
|
58
|
+
## Anti-Patterns to Prevent
|
|
59
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markdown-mermaid-writing
|
|
3
|
+
description: Comprehensive markdown and Mermaid diagram writing skill. Use when creating any scientific document, report, analysis, or visualization. Establishes text-based diagrams as the default documentation standard with full style guides (markdown + mermaid), 24 diagram type references, and 9 document templates.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Markdown and Mermaid Writing
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
This skill teaches you — and enforces a standard for — creating scientific documentation
|
|
11
|
+
using **markdown with embedded Mermaid diagrams as the default and canonical format**.
|
|
12
|
+
|
|
13
|
+
The core bet: a relationship expressed as a Mermaid diagram inside a `.md` file is more
|
|
14
|
+
valuable than any image. It is text, so it diffs cleanly in git. It requires no build step.
|
|
15
|
+
It renders natively on GitHub, GitLab, Notion, VS Code, and any markdown viewer. It uses
|
|
16
|
+
fewer tokens than a prose description of the same relationship. And it can always be
|
|
17
|
+
converted to a polished image later — but the text version remains the source of truth.
|
|
18
|
+
|
|
19
|
+
> "The more you get your reports and files in .md in just regular text, which mermaid is
|
|
20
|
+
> as well as being a simple 'script language'. This just helps with any downstream rendering
|
|
21
|
+
> and especially AI generated images (using mermaid instead of just long form text to
|
|
22
|
+
> describe relationships < tokens). Additionally mermaid can render along with markdown for
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
Use this skill when:
|
|
27
|
+
|
|
28
|
+
- Creating **any scientific document** — reports, analyses, manuscripts, methods sections
|
|
29
|
+
- Writing **any documentation** — READMEs, how-tos, decision records, project docs
|
|
30
|
+
- Producing **any diagram** — workflows, data pipelines, architectures, timelines, relationships
|
|
31
|
+
- Generating **any output that will be version-controlled** — if it's going into git, it should be markdown
|
|
32
|
+
- Working with **any other skill** — this skill defines the documentation layer that wraps every other output
|
|
33
|
+
- Someone asks you to "add a diagram" or "visualize the relationship" — Mermaid first, always
|
|
34
|
+
|
|
35
|
+
Do NOT start with Python matplotlib, seaborn, or AI image generation for structural or relational diagrams.
|
|
36
|
+
Those are Phase 2 and Phase 3 — only used when Mermaid cannot express what's needed (e.g., scatter plots with real data, photorealistic images).
|
|
37
|
+
|
|
38
|
+
### Why text-based diagrams win
|
|
39
|
+
|
|
40
|
+
| What matters | Mermaid in Markdown | Python / AI Image |
|
|
41
|
+
| ----------------------------- | :-----------------: | :---------------: |
|
|
42
|
+
| Git diff readable | ✅ | ❌ binary blob |
|
|
43
|
+
| Editable without regenerating | ✅ | ❌ |
|
|
44
|
+
| Token efficient vs. prose | ✅ smaller | ❌ larger |
|
|
45
|
+
| Renders without a build step | ✅ | ❌ needs hosting |
|
|
46
|
+
| Parseable by AI without vision | ✅ | ❌ |
|
|
47
|
+
| Works in GitHub / GitLab / Notion | ✅ | ⚠️ if hosted |
|
|
48
|
+
| Accessible (screen readers) | ✅ accTitle/accDescr | ⚠️ needs alt text |
|
|
49
|
+
| Convertible to image later | ✅ anytime | — already image |
|
|
50
|
+
|
|
51
|
+
### The three-phase workflow
|
|
52
|
+
|
|
53
|
+
flowchart LR
|
|
54
|
+
accTitle: Three-Phase Documentation Workflow
|
|
55
|
+
accDescr: Phase 1 Mermaid in markdown is always required and is the source of truth. Phases 2 and 3 are optional downstream conversions for polished output.
|
|
56
|
+
|
|
57
|
+
p1["📄 Phase 1<br/>Mermaid in Markdown<br/>(ALWAYS — source of truth)"]
|
|
58
|
+
p2["🐍 Phase 2<br/>Python Generated<br/>(optional — data charts)"]
|
|
59
|
+
p3["🎨 Phase 3<br/>AI Generated Visuals<br/>(optional — polish)"]
|
|
60
|
+
out["📊 Final Deliverable"]
|
|
61
|
+
|
|
62
|
+
p1 --> out
|
|
63
|
+
p1 -.->|"when needed"| p2
|
|
64
|
+
p1 -.->|"when needed"| p3
|
|
65
|
+
|
|
66
|
+
### What Mermaid can express
|
|
67
|
+
|
|
68
|
+
Mermaid covers 24 diagram types. Almost every scientific relationship fits one:
|
|
69
|
+
|
|
70
|
+
| Use case | Diagram type | File |
|
|
71
|
+
| -------------------------------------------- | ---------------- | ---------------------------------------------------- |
|
|
72
|
+
| Experimental workflow / decision logic | Flowchart | `(see docs)` |
|
|
73
|
+
| Service interactions / API calls / messaging | Sequence | `(see docs)` |
|
|
74
|
+
| Data model / schema | ER diagram | `(see docs)` |
|
|
75
|
+
| State machine / lifecycle | State | `(see docs)` |
|
|
76
|
+
| Project timeline / roadmap | Gantt | `(see docs)` |
|
|
77
|
+
| Proportions / composition | Pie | `(see docs)` |
|
|
78
|
+
| System architecture (zoom levels) | C4 | `(see docs)` |
|
|
79
|
+
| Concept hierarchy / brainstorm | Mindmap | `(see docs)` |
|
|
80
|
+
| Chronological events / history | Timeline | `(see docs)` |
|
|
81
|
+
|
|
82
|
+
## 🔧 Core workflow
|
|
83
|
+
|
|
84
|
+
### Step 1: Identify the document type
|
|
85
|
+
|
|
86
|
+
Check if a template exists before writing from scratch:
|
|
87
|
+
|
|
88
|
+
| Document type | Template |
|
|
89
|
+
| ------------------------------ | ----------------------------------------------- |
|
|
90
|
+
| Pull request record | `templates/pull_request.md` |
|
|
91
|
+
| Issue / bug / feature request | `templates/issue.md` |
|
|
92
|
+
| Sprint / project board | `templates/kanban.md` |
|
|
93
|
+
| Architecture decision (ADR) | `templates/decision_record.md` |
|
|
94
|
+
| Presentation / briefing | `templates/presentation.md` |
|
|
95
|
+
| Research paper / analysis | `templates/research_paper.md` |
|
|
96
|
+
| Project documentation | `templates/project_documentation.md` |
|
|
97
|
+
| How-to / tutorial | `templates/how_to_guide.md` |
|
|
98
|
+
| Status report | `templates/status_report.md` |
|
|
99
|
+
|
|
100
|
+
### Step 2: Read the style guide
|
|
101
|
+
|
|
102
|
+
Before writing any `.md` file: read `(see docs)`.
|
|
103
|
+
|
|
104
|
+
Key rules to internalize:
|
|
105
|
+
|
|
106
|
+
- **One H1 per document** — the title. Never more.
|
|
107
|
+
- **Emoji on H2 headings only** — one emoji per H2, none in H3/H4
|
|
108
|
+
- **Cite everything** — every external claim gets a footnote `[^N]` with full URL
|
|
109
|
+
- **Bold sparingly** — max 2-3 bold terms per paragraph, never full sentences
|
|
110
|
+
- **Horizontal rule after every `</details>`** — mandatory
|
|
111
|
+
- **Tables over prose** for comparisons, configurations, structured data
|
|
112
|
+
- **Diagrams over walls of text** — if it describes flow, structure, or relationships, add Mermaid
|
|
113
|
+
|
|
114
|
+
### Step 3: Pick the diagram type and read its guide
|
|
115
|
+
|
|
116
|
+
Before creating any Mermaid diagram: read `(see docs)`.
|
|
117
|
+
|
|
118
|
+
|