- TypeScript 54.3%
- Shell 34.8%
- JavaScript 10.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| skills | ||
| README.md | ||
my-claude-skills
A collection of personal Claude Code and PI coding agent skills for FPGA/firmware development, Git workflows, scientific computing, teaching, and note-taking.
Installation
Claude Code
Symlink the skills/ directory so Claude Code discovers all skills automatically:
ln -s /path/to/this/repo/skills ~/.claude/skills
PI Coding Agent
Symlink for host usage:
ln -sf /path/to/this/repo/skills ~/.pi/agent/skills
For Docker (pi-sandbox), the directory is mounted automatically via PI_SKILLS_DIR:
# Add to .zshrc / .bashrc:
export PI_SKILLS_DIR=~/Documents/10-repos/11-gitRepo/my-skills/skills
No plugin registration, marketplace, or per-skill install needed.
Structure
skills/
├── emacs-mathcad/
│ └── SKILL.md
├── feynman-teacher/
│ ├── SKILL.md
│ └── references/
│ └── feynman-principles.md
├── fpga-tdd/
│ ├── SKILL.md
│ └── references/
│ ├── ghdl-workflow.md
│ ├── recipe.md
│ ├── tdd-by-module-type.md
│ └── uvvm-patterns.md
├── fw-systems-engineering/
│ ├── SKILL.md
│ └── references/
│ ├── golden-question-examples.md
│ ├── icd-templates.md
│ └── vhdl-tripwire-patterns.md
├── git-workflow/
│ └── SKILL.md
├── obsidian-vault/
│ └── SKILL.md
├── octave-script/
│ └── SKILL.md
├── vhdl-testbench-patterns/
│ └── SKILL.md
├── vhdl-two-process/
│ ├── SKILL.md
│ └── references/
│ └── recipe.md
├── xilinx-dev-env/
│ └── SKILL.md
└── zettelkasten-extractor/
└── SKILL.md
Skills
vhdl-two-process
Generates structured, synthesisable VHDL code following the Gaisler two-process design method.
Use when writing, scaffolding, or refactoring VHDL entities. Enforces exactly two processes per entity (comb and regs), record-based ports/registers, REG_RESET constant, and package-first design. references/recipe.md decides what goes into reg_type and the port records.
fpga-tdd
Applies test-driven development to VHDL blocks, with the two-process method and UVVM.
Use when writing the testbench before the RTL. The empty two-process skeleton is the RED stub, make test (the mk/ framework) is the only runner, and mutants prove the tests that pass for free. references/recipe.md is the step-by-step loop with the exact commands.
vhdl-testbench-patterns
Reusable patterns for self-checking VHDL testbenches targeting GHDL (--std=08).
Use when writing any VHDL testbench. Provides scaffold (clock/reset/sim_end), AXI-Lite write/read helpers, AXI-Stream frame streaming from hex files, tolerance-based fixed-point checkers, and pass/fail reporting. Companion to vhdl-two-process.
fw-systems-engineering
Applies systems engineering discipline to firmware and FPGA/VHDL design workflows.
Use when designing HW/SW interfaces (ICDs, register maps), writing defensive testbenches (tripwire monitors), handling bad-weather simulation, or arbitrating between software requests and hardware constraints. Five-step workflow: Golden Question → ICD → Tripwire → Bad weather → Contract escalation.
feynman-teacher
Teaches and explains complex topics using Richard Feynman's teaching methodology.
Use when explaining, teaching, or simplifying any concept. Four-phase method: Hook → Core Idea → Mental Model → Stress-Test. Adapts to audience level, strips jargon, uses concrete analogies.
obsidian-vault
Required for every Obsidian vault interaction, including read-only searches, note creation and editing, MOC links, daily notes, decision records, attachments, Bases, and sync checks.
Uses Pi-native file tools and reads vault-local rules before operating. Covers dDocs placement, duplicate prevention, safe targeted edits, link verification, and the distinction between a local write and verified phone sync. Combine with zettelkasten-extractor for source extraction and paulos-writing-style for prose.
Reload skills or start a new Pi session after installation. Use /skill:obsidian-vault to load it explicitly; automatic selection is model-driven.
zettelkasten-extractor
Extracts atomic Zettelkasten notes from source material (articles, books, PDFs, highlights, transcripts).
Use when processing documents into structured notes. Produces atomic literature notes in markdown, generates a Map of Content, outputs Obsidian-compatible format ([[wiki-links]], #tags, YAML frontmatter).
git-workflow
Executes standard Git operations with predefined user defaults.
Use for creating branches, committing, pushing/pulling, resolving conflicts, or managing repositories with consistent conventions.
octave-script
Writes, extends, or debugs GNU Octave .m simulation scripts for the FPP (Fringe Projection Profilometry) repository.
Use when creating new Octave scripts, adding processing methods, porting existing scripts, or fixing Octave compatibility issues.
xilinx-dev-env
Manages the Xilinx Vivado/Vitis AI Docker development environment on Arch Linux.
Use when launching Vivado GUI, running batch TCL scripts, opening a CLI shell, installing tools, or working with the containerized FPGA dev environment.
emacs-mathcad
Generates Mathcad-style executable Org-mode calculation sheets for hardware, firmware, and power-electronics engineering.
Use when asked for a sizing note, design worksheet, or reproducible calculation document in Emacs. Produces LaTeX-free Org files where inputs cascade through silent code blocks and results are woven into prose via inline evaluation. Three engine paths: Python + pint (default, unit-safe), Emacs Calc (zero-dependency scratch), or Octave (matrix/DSP).
org-ppt
Builds PowerPoint-style slide decks as Org files for the org-ppt Emacs export backend, then exports and verifies them headless.
Use when asked for a presentation, slides or a talk. Writes one claim per slide with speaker notes, and scripts/deck.ts exports the self-contained .html, probes every slide for clipped content, takes screenshots and prints the PDF handout. Package location and default header live in the skill's config.yaml.
pr
Writes a pull-request body that is fast to review: Summary, Evidence, Merge Danger.
Use when writing a PR description. The Summary picks the smallest visual that makes the change clear (pseudocode, call tree, file tree, Mermaid, diff), Evidence shows before and after, and Merge Danger states whether the change is a one-way or two-way door and its blast radius. The visuals menu comes from Dex Horthy's show-me skill; attribution is in CREDITS.md.
code-review
Read-only code review for Pi of PRs, branch diffs, staged or local changes, reporting only high-confidence bugs and explicit repository-rule violations.
Use when asked for a code review or pre-merge review in Pi. Runs five independent lenses (repository guidance, obvious bugs, git history, prior review feedback, comments and contracts), sends each candidate to a validator that tries to disprove it, and reports P0 to P3 findings at confidence 80 or above. It never edits, builds or posts without confirmation. Adapted from Anthropic's Apache-2.0 code-review plugin; references/upstream.md pins the source commit and lists the changes. scripts/validate.mjs checks the artifact and Pi's loader. Pi only: no ~/.claude/skills link, because Claude Code ships its own code-review skill.
cloudflare-home-access
Publishes a service on this machine at a public hostname through the Cloudflare Tunnel, behind a Cloudflare Access login, running 24/7.
Use when exposing a local web service to the phone or the outside the way monitor, interpreter and jarvis are. Covers the loopback-only listener, a systemd user unit with lingering, the origin-side Access token check (references/access-jwt.ts), the ingress rule and DNS route, and the Access application made in the dashboard through the Interceptor test profile. scripts/check-host checks each host anonymously and confirms the audience tag. Machine facts live in config.yaml.
Shared rules
skills/_shared/ holds rules that span multiple skills. It contains no
SKILL.md, so it is never loaded as a skill on its own — the skills that the
rule binds link to it.
mk-build-framework.md— every project with hand-written C, C++ or VHDL builds throughmakefile_project_templateembedded as a git submodule atmk/. Bound intofpga-vhdl-design,vhdl-two-process,vhdl-testbench-patterns,fw-systems-engineering,xilinx-dev-envandaltera-dev-env.
Adding a new skill
- Create a directory under
skills/with aSKILL.mdfile (YAML frontmatter:nameanddescription). - The symlink makes it available immediately — no registration step needed.