| name | holochain |
| description | Holochain hApp development assistant covering coordinator/integrity zome architecture, Rust HDK/HDI patterns, entry/link types, CRUD, validation, cross-zome calls, Sweettest testing, TypeScript client integration, and Nix dev environments. USE WHEN writing zome code, designing DHT data models, scaffolding a new project, testing hApps, debugging HDK issues, implementing entry types or links, cap grants, access control, cell cloning, deploying or packaging hApps, or working on any Holochain project.
|
| license | Apache-2.0 |
| compatibility | Requires Nix dev environment (holonix ref=main-0.6). Rust toolchain managed by Nix — no separate rustup install needed. Network access required for hc scaffold and nix flake updates.
|
| metadata | {"author":"soushi888","version":"0.2.0","holochain-versions":"hdk=0.6.1, hdi=0.7.1, holonix ref=main-0.6"} |
Holochain Development Skill
Expert assistant for Holochain hApp development. Covers the full development spiral: architecture, design, scaffolding, implementation, testing, and deployment.
Proactive Invocation Rule
Always invoke this skill in the PLAN phase when the task touches a Holochain project. Do not wait to be asked explicitly.
Trigger conditions — any of these means the skill should be loaded before coding begins:
- Working directory is a Holochain project (contains
workdir/*.happ or dnas/*/zomes/)
- Task involves
.rs files inside zomes/coordinator/ or zomes/integrity/
- Task involves entry types, link types, cross-DNA calls, or zome functions
- Task involves a PR on a Holochain project
When proactively invoked: load Architecture.md + Patterns.md, run the ReviewZome checklist against any files being modified, surface issues before implementation begins.
Workflow Routing
| Workflow | Trigger | File |
|---|
| ReviewZome | review zome, audit zome, check implementation, validate patterns, before implementing, PR review, code review on zome | Workflows/ReviewZome.md |
| DesignDataModel | design data model, model entries, what entries, what links, DHT schema | Workflows/DesignDataModel.md |
| Scaffold | scaffold, new happ, new project, setup environment, init project, Holonix, nix develop, hc scaffold | Workflows/Scaffold.md |
| ManualScaffold | create project files, scaffold without CLI, manual scaffold, AI creates files, no hc scaffold, scaffold in session | Workflows/ManualScaffold.md |
| ImplementZome | implement zome, create zome, scaffold zome, write zome | Workflows/ImplementZome.md |
| DesignAccessControl | design access control, who can call, cap grant design | Workflows/DesignAccessControl.md |
| PackageAndDeploy | deploy, package, distribute, kangaroo, installer, desktop app, webhapp | Workflows/PackageAndDeploy.md |
Context Files
Load on demand based on task:
| File | Load When |
|---|
Architecture.md | Coordinator/integrity split, DNA structure, Cargo workspace, Nix, dna_info, network_seed, private entries, multi-DNA (multiple roles, bridge call, OtherRole) |
Progenitor.md | Progenitor pattern, DnaProperties struct, check_if_progenitor, bootstrap mode, coordinator guard, integrity enforcement (Moss pattern), auto-registration in create_user, deploy-time injection (dna.yaml / Sweettest / Kangaroo / Moss) |
Scaffold.md | New project setup, Holonix installation, Nix flake, hc CLI, hc scaffold commands, adding a new domain to existing project |
Patterns.md | Entry types, link types, CRUD, cross-zome calls, validation, HDK 0.6 API (GetStrategy, LinkQuery, Local vs Network), must_get, signals (remote signal, init cap grant) |
AccessControl.md | Cap grants, capability system, cap claim, recv_remote_signal setup, admin-only access |
CellCloning.md | Cell cloning, partitioned data, clone roles, createCloneCell, clone_limit |
ErrorHandling.md | Error types, WasmError, ExternResult patterns, thiserror |
Testing.md | Four-layer strategy, Sweettest (Rust-native), E2E Playwright + AdminWebsocket, Wind-Tunnel performance |
WindTunnel.md | Performance/load testing with wind-tunnel: ScenarioDefinitionBuilder, call_zome, ReportMetric, multi-agent roles, DHT sync lag measurement, InfluxDB metrics pipeline |
TypeScript.md | holochain-client setup, callZome, signals, SvelteKit integration |
Deployment.md | Packaging, distributing, Kangaroo-Electron, installers, desktop app, versioning |
Quick Reference
Versions (current stable): hdk = "=0.6.1" hdi = "=0.7.1" holonix ref=main-0.6
Dev commands: nix develop | hc s sandbox generate workdir/ | bun run test
Scaffold: hc scaffold entry-type MyEntry | hc scaffold link-type AgentToMyEntry
Common Pitfalls Checklist
Run this against any zome code being written or reviewed. Each item is a class of bug that has burned projects before.
Entry Schema Evolution
Cross-DNA Calls
Validation Rules
HDK 0.6 API
Shared Utility Patterns (project-specific)
Examples
Example 1: Design a new entry type for a marketplace listing
User: "I need to model a Listing entry with status transitions"
→ Loads Patterns.md (entry types, status enum, link types)
→ Designs ListingStatus enum (Active/Archived/Deleted)
→ Defines link types (AgentToListing, PathToListing, ListingUpdates)
→ Implements soft-delete via status field update, not entry deletion
Example 2: Debug a cross-agent test that fails intermittently
User: "My Sweettest passes alone but fails when another agent reads the entry"
→ Loads Testing.md
→ Identifies missing await_consistency call before cross-agent read
→ Adds await_consistency_60s([&alice, &bob]).await after Alice's create, before Bob's get
→ Test passes reliably
Example 3: Scaffold a new hApp from scratch
User: "Start a new Holochain project for a community coordination app"
→ Loads Scaffold.md + Workflows/Scaffold.md
→ If hc scaffold CLI is available: guides nix flake setup → hc scaffold happ → entry types
→ If no CLI (AI coding session): invokes Workflows/ManualScaffold.md → writes identical structure
→ Both paths produce the same standard hc scaffold architecture
→ Verifies compilation with hc s sandbox generate workdir/
Example 4: Implement CRUD for a new zome
User: "Implement a full resource zome with create, read, update, delete"
→ Loads Architecture.md + Patterns.md
→ Invokes Workflows/ImplementZome.md
→ Creates integrity crate (entry struct, link enum, validation)
→ Creates coordinator crate (create/read/update/delete functions)
→ Writes Sweettest tests at foundation + integration layers