skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
hedera-dev/hedera-skills354 installs

harness-spec-anatomy

Shared vocabulary for hedera-harness recipes — the files, the v3 defaults, the stages, and the blind/evaluate-checklist rule. Use when authoring or auditing a harness recipe, or when another skill needs the recipe vocabulary.

How do I install this agent skill?

npx skills add https://github.com/hedera-dev/hedera-skills --skill harness-spec-anatomy
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill provides a shared vocabulary, architectural guidelines, and a validation script for Hedera Harness recipes. No security issues or malicious patterns were detected.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Harness Spec Anatomy

Single source of truth for what a hedera-harness recipe is. Action skills (/create-harness-spec, /review-harness-spec) reach here for vocabulary; they own workflow. Use the bold terms from GLOSSARY.md exactly.

Targets hedera-harness schemaVersion 3. Older recipes hard-fail at load. There is no migrate command — rewrite to v3, or regenerate with hedera-harness init and reapply edits.

These skills are for authoring — not for generator runs. Recipes do not list skills. Each run discovers product plugins from hedera-skills (native-services-js, system-contracts, cross-chain, dev-intelligence) and the generator picks what the PRD needs. Keep authoring skills out of that set; they stay Cursor / Claude Code marketplace plugins.

Layout

One layout: .harness/ inside a scaffolded app (from hedera-harness init or Scaffold HBAR). The workspace is the project itself. Paths in the recipe file are relative to the project root.

FileRequired?Default pathConsumed by
Recipe fileYes.harness/spec.yamlHarness CLI
PRDYes.harness/prd.md (or a prd: list)Generator
Static validatorASSERT.harness/validators/static.jsonStatic validator
Command validatorASSERT.harness/validators/yarn.jsonCommand validator
Playwright smokeSMOKE.harness/validators/playwright-smoke.yamlPlaywright stage
Evaluate checklistEVALUATE.harness/eval.json (or an eval: list)EVALUATE validator

Every path above is a default. Omit the key and the harness uses it; name a key only to point somewhere else. Artifacts always land in .harness/runs/, which is not configurable.

Handoff: yarn harness:run or hedera-harness run .harness/spec.yaml.

What the recipe file must carry

Only four things are required:

schemaVersion: 3
name: my-feature
description: What you want the agent to build in this project.

baseline:
  commands:
    - name: install          # required, and used for install fingerprinting
      command: yarn install
    - name: build
      command: yarn next:build

Everything else — prd, validators.*, maxAttempts, agent, constraints, forbiddenFiles, secretScan, requiredFiles — is defaulted or detected. A v3 recipe that sets none of them is complete and correct. Compact bodies and the full commented template: references/spec-files.md.

baseline is not validators.commands. Baseline proves the project was healthy before generation; validators.commands grades it after. A command named install is mandatory in baseline.

Defaults worth knowing

KeyDefault
agentclaude — omit unless the user wants cursor
prd.harness/prd.md; a list delivers ordered increments
evalabsent (EVALUATE off). Scalar grades every slice; list must be 1:1 with prd:
maxAttempts3
constraints.packageManagerdetected from package.json / lockfiles
constraints.forbiddenCommandsevery package manager that is not the one in use
forbiddenFiles / secretScan.env plus one per workspace
requiredFilesempty — the validators are the gate

Unknown keys are ignored with a warning, so a typo degrades rather than crashes. Treat any such warning as a finding.

Stages

Enable in order. Default is ASSERT only, so the first run stays cheap.

StageRecipe file fieldsWhat it checks
ASSERTvalidators.static, validators.commands, requiredFiles, forbiddenFiles, secretScanFiles, JSON/text, secrets, install/lint/build
SMOKEvalidators.playwrightDev server boots; routes HTTP OK; console / forbidden text
EVALUATEeval + validator.enabled: trueAgent grades numbered assertions in the evaluate checklist
CHAINchainValidation (+ EVALUATE)Ephemeral ECDSA test signer; real txs; mirror verify

Full enable order, host prerequisites, and YAML blocks: references/stage-strategy.md.

Cross-file coherence

The v3 defaults removed most path-level coupling. What still must agree:

Keep in syncWhy
Evaluate checklist routes ↔ Playwright routes ↔ PRD deliverable routesThe validator visits what the PRD promised
Every PRD journey ↔ ≥ 1 assertion in the matching checklistUnverified journeys pass silently
Every assertion ↔ a PRD journeyOrphan assertions are scope creep
prd: list ↔ eval: list (when both are lists)Must be 1:1; only the active pair is vendored per increment
forbiddenFiles ↔ static fileAssertions.forbiddenTwo gates, one intent
constraints.packageManager ↔ static assertion on package.jsonOnly if you override the detected value
eval ↔ validator.enabled: trueEither alone is a misconfigured recipe
Assertion executableWithTestSigner ↔ chainValidation.enabledFlagged assertions are inert without CHAIN

templateMetadata.name is the host template identity and may differ from the feature slug in name. That is not a finding.

Blind / evaluate-checklist rule

Keep the run blind. The PRD carries journeys and outcomes; numbered assertions live in the evaluate checklist. See GLOSSARY.md and references/prd-and-journeys.md.

Drift-sensitive loader fields

When the harness renames these, update this skill and its evals in the same change set:

schemaVersion, agent, baseline, prd, eval, validators.static, validators.commands, validators.playwright, validator, chainValidation, constraints, templateMetadata, requiredFiles, forbiddenFiles, secretScan, executableWithTestSigner, maxAttempts.

Removed — presence hard-fails at load: contract, extend, logging, skills, seed, generator.

Mechanical check

bash <path-to>/harness-spec-anatomy/scripts/check-spec.sh <project-root>

Resolve the script path relative to the installed skill. It runs hedera-harness doctor --recipe-only for schema and loader validity, then adds the cross-file coherence checks doctor does not perform. Exit zero means the wiring is clean; non-zero prints one finding per line.

If the harness CLI is unavailable the script still runs its coherence checks and says so — treat that as a partial result, not a pass.

Additional resources

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/hedera-dev/hedera-skills/harness-spec-anatomy">View harness-spec-anatomy on skillZs</a>