Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Testing Plan: Holochain Agent Skill v1

Status: Pre-release checklist Target: v1.0.0 release gate

All tests are manual unless marked [auto]. Check each box before cutting a release.


T1 — Agent Skills Open Standard Conformance

Validate that SKILL.md frontmatter meets the Agent Skills Open Standard spec.

head -25 SKILL.md
#TestPass Condition
T1.1name field presentKey exists in frontmatter
T1.2name is lowercaseValue is holochain (no uppercase, no spaces)
T1.3name uses only alphanumeric + hyphensRegex: ^[a-z0-9-]+$
T1.4description field presentKey exists
T1.5description is between 1 and 1024 characterswc -c on the value
T1.6description mentions primary use casesContains: “zome”, “HDK”, “Holochain”
T1.7license field is Apache-2.0Value exactly matches
T1.8compatibility field present and non-emptyKey exists, value not blank
T1.9metadata.author is soushi888Value matches
T1.10metadata.version is presentKey exists, SemVer format
T1.11metadata.holochain-versions references current pinsContains hdk=0.6.1, hdi=0.7.1, holonix ref=main-0.6

T2 — File Integrity

Verify every file referenced in SKILL.md routing tables actually exists.

ls Workflows/*.md
ls *.md
#FileExists?
T2.1Workflows/DesignDataModel.md
T2.2Workflows/Scaffold.md
T2.3Workflows/ImplementZome.md
T2.4Workflows/DesignAccessControl.md
T2.5Workflows/PackageAndDeploy.md
T2.6Architecture.md
T2.7Scaffold.md
T2.8Patterns.md
T2.9AccessControl.md
T2.10CellCloning.md
T2.11ErrorHandling.md
T2.12Testing.md
T2.13TypeScript.md
T2.14Deployment.md
T2.15LICENSE at repo root
T2.16README.md at repo root

T3 — Routing Accuracy

For each Workflow Routing entry in SKILL.md, verify the trigger resolves to the correct file and the file’s content matches the described purpose.

#Trigger phraseExpected fileContent check
T3.1“design data model”Workflows/DesignDataModel.mdContains Step 1 (domains/zome pairs) and Step 2 (entry type definition)
T3.2“new happ”Workflows/Scaffold.mdContains Nix install and hc scaffold happ commands
T3.3“implement zome”Workflows/ImplementZome.mdContains hc scaffold entry-type and integrity/coordinator structure
T3.4“who can call”Workflows/DesignAccessControl.mdContains CapAccess::Unrestricted, CapAccess::Assigned
T3.5“package”Workflows/PackageAndDeploy.mdContains Kangaroo-Electron setup steps

For each Context Files entry in SKILL.md:

#Load-when triggerExpected fileContent check
T3.6coordinator/integrity splitArchitecture.mdContains hdi and hdk crate explanation
T3.7Nix flake setupScaffold.mdContains nix develop and flake.nix
T3.8entry types, CRUDPatterns.mdContains #[hdk_entry_helper] and create_entry()
T3.9cap grantsAccessControl.mdContains CapAccess::Unrestricted and init()
T3.10cell cloningCellCloning.mdContains createCloneCell and clone_limit
T3.11WasmErrorErrorHandling.mdContains WasmError and ExternResult
T3.12Tryorama testsTesting.mdContains dhtSync and two-agent scenario
T3.13holochain-clientTypeScript.mdContains callZome and signal handling
T3.14packaging, KangarooDeployment.mdContains .webhapp and versioning guidance

T4 — Content Coverage

Verify each of the 6 skill domains has substantive (non-stub) content.

#DomainPrimary filePass condition
T4.1ArchitectureArchitecture.md> 100 lines, covers integrity/coordinator split
T4.2DesignWorkflows/DesignDataModel.mdHas at least 4 numbered steps with examples
T4.3ScaffoldScaffold.md + Workflows/Scaffold.mdContains nix develop, hc scaffold happ, Nix flake template
T4.4ImplementPatterns.mdContains CRUD patterns, link types, validation section
T4.5TestTesting.mdContains Tryorama setup, dhtSync, two-agent example
T4.6DeployDeployment.md + Workflows/PackageAndDeploy.mdContains kangaroo-electron, .webhapp bundling, versioning

T5 — Code Example Accuracy

Validate specific API calls against the actual HDK 0.6 API (use the hAppenings or Nondominium codebase as reference).

HDK / HDI API

#Example to validateExpected formFile
T5.1Entry type macro#[hdk_entry_helper] on structPatterns.md
T5.2Entry type enum in integrity#[hdk_entry_types] on enum with #[unit_enum(UnitEntryTypes)]Patterns.md
T5.3Create entrycreate_entry(EntryTypes::MyEntry(entry))Patterns.md
T5.4Get entryget(hash, GetOptions::default()) or must_get_entry(hash)Patterns.md
T5.5Delete linkdelete_link(link_hash, GetOptions::default()) (second arg required in 0.6)Patterns.md
T5.6Link types enum#[hdk_link_types] on enumPatterns.md
T5.7Update chain trackingcreate_link(original_hash, new_hash, LinkTypes::EntryUpdates, ())Patterns.md
T5.8Validation signaturepub fn validate(op: Op) -> ExternResult<ValidateCallbackResult>Patterns.md
T5.9post_commit infallible#[hdk_extern(infallible)] + pub fn post_commit(...)Architecture.md or Patterns.md
T5.10Remote signal cap grantCapAccess::Unrestricted grant created in init()AccessControl.md
T5.11dhtSync calldhtSync([&alice, &bob], &conductor) or equivalent Tryorama APITesting.md
T5.12Scaffold compile checkhc s sandbox generate workdir/Workflows/ImplementZome.md

Version pin consistency [auto]

grep -rn "hdk\s*=\s*\"=" . --include="*.md" --include="*.toml" | grep -v Plans/
grep -rn "hdi\s*=\s*\"=" . --include="*.md" --include="*.toml" | grep -v Plans/
grep -rn "holonix" . --include="*.md" | grep -v Plans/
#CheckExpected valuePass condition
T5.13hdk pin in SKILL.md Quick Reference"=0.6.1"All occurrences match
T5.14hdi pin in SKILL.md Quick Reference"=0.7.1"All occurrences match
T5.15holonix ref in SKILL.md and Scaffold.mdmain-0.6All occurrences match
T5.16No file references hdk = "0.5.*" or olderZero matches
T5.17PackageAndDeploy.md Cargo.toml example pins match currenthdk = "=0.6.1"Matches T5.13

T6 — Installation Tests

Perform each installation method in a clean environment.

Option A — Global copy

cd /tmp
git clone https://github.com/Soushi888/holochain-agent-skill
cp -r holochain-agent-skill ~/.claude/skills/holochain
#TestPass condition
T6.1Directory created~/.claude/skills/holochain/ exists
T6.2SKILL.md present inside~/.claude/skills/holochain/SKILL.md exists
T6.3Workflows/ subdirectory present~/.claude/skills/holochain/Workflows/ exists with 5 files
T6.4All context files presentArchitecture.md, Patterns.md, etc. all copied

Option B — Project-local

cd /tmp/my-test-project
mkdir -p .claude/skills
cp -r /tmp/holochain-agent-skill .claude/skills/holochain
#TestPass condition
T6.5Skill installed at project path.claude/skills/holochain/SKILL.md exists
T6.6Does not affect global ~/.claude/skills/Global directory unchanged
git clone https://github.com/Soushi888/holochain-agent-skill ~/holochain-agent-skill
ln -s ~/holochain-agent-skill ~/.claude/skills/holochain
#TestPass condition
T6.7Symlink created~/.claude/skills/holochain is a symlink
T6.8Symlink resolvesls -la ~/.claude/skills/holochain/SKILL.md returns file
T6.9git pull propagatesPull in ~/holochain-agent-skill, symlink sees updates immediately

T7 — Invocation Tests

Verify the skill loads and responds correctly in Claude Code.

#TestStepsPass condition
T7.1Explicit command invocationType /holochain in Claude CodeSkill loads, greets with Holochain context
T7.2Natural language trigger — workflowType “implement zome for Profile entry type”Workflows/ImplementZome.md guidance appears
T7.3Natural language trigger — context fileType “how do I set up a Tryorama test?”Testing.md content cited
T7.4Natural language trigger — scaffoldType “scaffold a new happ called my-network”Workflows/Scaffold.md steps appear
T7.5Version questionAsk “what version of hdk does this skill target?”Responds with 0.6.1
T7.6Out-of-scope questionAsk a non-Holochain questionSkill does not answer as if it’s Holochain-related

T8 — PAI Independence

Verify the skill works in a clean Claude Code environment with no PAI infrastructure.

#TestStepsPass condition
T8.1No ~/.claude/PAI/ requiredTemporarily rename ~/.claude/PAI/ to ~/.claude/PAI_bak/, invoke skillSkill loads without error
T8.2No voice curl in skill filesgrep -r "localhost:8888" .Zero matches
T8.3No Algorithm routing referencesgrep -r "ALGORITHM|AlgorithmMode|PAI/Algorithm" .Zero matches in skill files
T8.4No PROJECTS.md referencesgrep -r "PROJECTS.md" .Zero matches in skill files
T8.5Restore PAI after testmv ~/.claude/PAI_bak ~/.claude/PAIRestore before next session

T9 — Workflow End-to-End Tests

For each workflow, walk through the steps in Claude Code with a real or simulated project and verify guidance is accurate and complete.

T9.A — DesignDataModel

Trigger: “design data model for a marketplace listing”

#StepPass condition
T9.A.1Step 1: Identify domainsSkill asks or describes how to map business nouns to zome pairs
T9.A.2Step 2: Define entry typesProduces a Rust struct definition with field types
T9.A.3Step 3: Define link typesProduces at least AgentTo*, PathTo*, *Updates link types
T9.A.4Step 4: Discovery strategyExplains Path anchor vs. agent-linked discovery tradeoffs
T9.A.5Step 5: Validation rulesProduces at least one validation rule per entry type
T9.A.6Output completenessProduces a summary table or structured output usable as implementation spec

T9.B — Scaffold

Trigger: “scaffold new happ called community-app”

#StepPass condition
T9.B.1Nix install stepProvides curl Determinate Nix installer command
T9.B.2flake.nix creationProvides template with holonix ref=main-0.6
T9.B.3hc scaffold happ commandCorrect command with app name parameter
T9.B.4First DNA scaffoldhc scaffold dna command shown
T9.B.5First zome pair scaffoldhc scaffold zome for integrity + coordinator
T9.B.6Compile verificationhc s sandbox generate workdir/ step present

T9.C — ImplementZome

Trigger: “implement zome for Profile entry type”

#StepPass condition
T9.C.1Scaffold stephc scaffold entry-type Profile and link-type commands shown
T9.C.2Integrity crateProduces Profile struct with #[hdk_entry_helper], entry type enum
T9.C.3Validation functionProduces validate() function with Op pattern matching
T9.C.4Coordinator — createProduces create_profile() using create_entry()
T9.C.5Coordinator — readProduces get_profile() using get() with GetOptions::default()
T9.C.6Coordinator — updateUses update_entry() and create_link() for update chain
T9.C.7Coordinator — deleteUses delete_entry() and handles link cleanup
T9.C.8Test scaffoldProduces at minimum a two-agent Tryorama test structure

T9.D — DesignAccessControl

Trigger: “design access control for my admin zome”

#StepPass condition
T9.D.1Caller mapping tableProduces table of function → caller type
T9.D.2Unrestricted grantShows init() with CapAccess::Unrestricted for remote signals
T9.D.3Progenitor checkShows dna_info().provenance check for admin-only functions
T9.D.4Assigned grantShows CapAccess::Assigned pattern with agent key
T9.D.5recv_remote_signalShows correct extern signature and cap grant pairing

T9.E — PackageAndDeploy

Trigger: “package my happ for desktop distribution”

#StepPass condition
T9.E.1Version compatibility checkAsks for or checks hdk/hdi versions before proceeding
T9.E.2Kangaroo-Electron setupgit clone command for Kangaroo repo shown
T9.E.3.happ bundle stephc app pack or equivalent command shown
T9.E.4.webhapp bundle stepUI + .happ combined packaging step shown
T9.E.5Versioning guidanceExplains semantic version bump for DNA updates vs UI-only updates
T9.E.6CI/CD noteAt minimum mentions GitHub Actions or manual release process

T10 — Cross-Tool Compatibility

Claude Code (primary)

Covered by T7 and T9 above.

GitHub Copilot

#TestPass condition
T10.1Install to .claude/skills/holochain/ in project rootDirectory exists with SKILL.md
T10.2Copilot agent mode recognizes skillSkill name holochain appears in available skills list
T10.3Basic invocationCopilot responds with Holochain context when asked about zomes

Cursor

#TestPass condition
T10.4Install to .claude/skills/holochain/ in project rootDirectory exists with SKILL.md
T10.5Cursor agent detects skillSkill is listed or referenced in agent context
T10.6Basic invocationCursor responds with Holochain guidance when triggered

Augment Code

#TestPass condition
T10.7Install to .claude/skills/holochain/Directory exists
T10.8Skill loaded by AugmentSkill context is included in agent workspace

OpenAI Codex CLI

#TestPass condition
T10.9Install to .claude/skills/holochain/Directory exists
T10.10Codex reads SKILL.md frontmatterInvocation triggers Holochain-domain responses

Note: T10.2–T10.10 require access to each tool. Mark as N/A if the tool is not installed. T10.1 and T10.4 are always testable.


T11 — Repository Hygiene

#TestCommandPass condition
T11.1LICENSE file is Apache-2.0head -3 LICENSEContains “Apache License, Version 2.0”
T11.2No Plans/ content ships as skillSKILL.md routing table has no reference to Plans/Zero Plans/ entries in routing table
T11.3No docs/ loaded by skillSKILL.md routing table has no reference to docs/Zero docs/ entries in routing table
T11.4No broken markdown linksScan for [text](file.md) links in all filesAll linked files exist
T11.5No TODO / STUB markersgrep -rn "TODO|STUB|PLACEHOLDER" . --include="*.md"Zero matches in non-Plans/ files
T11.6README reflects current install pathgrep "holochain-agent-skill" README.mdAll cp/ln commands use holochain-agent-skill as source
T11.7CLAUDE.md license annotationgrep "Apache" CLAUDE.mdMatches Apache-2.0

Release Gate

All items below must be ✅ before tagging a release.

Spec & Structure (non-negotiable)

  • T1 — All 11 frontmatter checks pass
  • T2 — All 16 files exist
  • T3 — All 14 routing entries resolve correctly
  • T11 — All 7 hygiene checks pass

Content

  • T4 — All 6 domains have substantive content
  • T5.13–T5.17 — Version pins consistent across all files

Code Accuracy (sample — validate at least 6 of 12)

  • T5.1–T5.12 — At least 6 code examples verified against real codebase

Installation

  • T6.1–T6.4 — Option A passes
  • T6.5–T6.6 — Option B passes
  • T6.7–T6.9 — Option C passes

Invocation

  • T7.1–T7.5 — Claude Code invocation tests pass (T7.6 optional)

Workflows (all 5 required)

  • T9.A — DesignDataModel workflow complete
  • T9.B — Scaffold workflow complete
  • T9.C — ImplementZome workflow complete
  • T9.D — DesignAccessControl workflow complete
  • T9.E — PackageAndDeploy workflow complete

Independence

  • T8.1–T8.4 — PAI independence verified

Cross-tool (Claude Code required; others optional for v1)

  • T10.1 — Install path verified for at least one non-Claude-Code tool

Once all release gate items are checked, tag v1.0.0 and publish.