agentleFS
michaelnealemichaelneale/mesh-llm/.agents/skills/release-validation/SKILL.md

release-validation

Skill3.8k starsChanged 20 days agoApache-2.0View on GitHub

Use this skill when validating a MeshLLM release candidate or current HEAD against the last GitHub release, assembling the canonical feature/fix/modification inventory, testing locally built release bundles on user-approved real hosts and private meshes, deciding release readiness, or producing a formal evidence-backed release-validation report.

We split this skill into the rules it gives an agent

16 rules. About 0 are common, 9 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈9

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read references/evidence-and-gates.md in full before planning or executing validation.

    line 21
  2. Distinctive:

    If host selection, access, or cost authority is missing, complete the read-only inventory and test plan, then stop before remote build or …

    line 40
  3. Distinctive:

    Read each applicable skill completely before acting:

    line 45
  4. Very specific:

    Before collecting inventory, resolve the candidate SHA and previous-release tag commit and derive each release base from its merge-base …

    line 71
  5. Distinctive:

    Use all of these sources, not release notes or commit subjects alone:

    line 95
  6. Very specific:

    Create one atomic ledger row per externally meaningful claim.

    line 104
  7. Very specific:

    Use risk to order work: provenance and packaging first, startup/readiness next, then APIs/logs/UI/inference, feature claims, …

    line 127
  8. Very specific:

    Use just; never invoke ad hoc Cargo builds as release evidence.

    line 138
  9. Distinctive:

    Use the Windows/platform-specific recipes where the Justfile requires them.

    line 147
  10. Very specific:

    Use at least two user-approved real hosts when available.

    line 157
  11. Distinctive:

    Create a private mesh on one candidate bundle, join the other candidate bundle with its invite token, and wait for explicit readiness …

    line 159
  12. Very specific:

    Write release-validation-report.md from the bundled template and store raw evidence beside it.

    line 199
  13. Very specific:

    Use SSH aliases supplied by the user or documented in context/COMPUTERS.md.

    line 213
  14. Distinctive:

    Do not expose invite tokens, API keys, owner keys, release signing material, private paths, or unredacted logs in the report.

    line 215
  15. Distinctive:

    Do not fix discovered product defects during validation unless the user separately authorizes implementation.

    line 217
  16. Distinctive:

    Do not dispatch/cancel CI, publish artifacts, push commits/tags, create a release, or mutate GitHub configuration without explicit …

    line 220

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Release Validation

New release inventory and evidence automation follows ../manage-ci/SKILL.md: no new Python tooling, including skill-local helpers. Use typed tools/xtask commands behind thin Just recipes. The raw inventory owner is cargo xtool release inventory. On Unix, use the positional Just façade just release-inventory; it preserves argument boundaries. On Windows, use the portable native command directly until a Windows Just façade is qualified. The inventory collects read-only evidence; it does not validate a product or classify release claims.

Validate the candidate as a product, not merely as source code. Every claimed change must have a disposition and direct evidence. Do not publish a release, push a tag, alter production, or use a host the user did not put in scope.

Read references/evidence-and-gates.md in full before planning or executing validation. Copy assets/release-validation-report-template.md for the final report; do not weaken or omit its required tables.

Required Inputs

Resolve these before remote execution:

  • candidate ref, defaulting to the current HEAD;
  • repository, normally Mesh-LLM/mesh-llm;
  • exact user-approved SSH aliases or local hosts, platform/backend on each, and any cost or time limits;
  • models suitable for each host and any feature-specific fixtures;
  • output directory, defaulting to target/release-validation/<UTC timestamp>-<short SHA>/;
  • whether a previous-release mixed-version node is authorized when compatibility testing is required.

If host selection, access, or cost authority is missing, complete the read-only inventory and test plan, then stop before remote build or launch.

Route To Existing Skills

Read each applicable skill completely before acting:

  • .agents/skills/remote-observable-process/SKILL.md for every long-running or interactive SSH build/server session;
  • .agents/skills/deploy-macos/SKILL.md, .agents/skills/deploy-linux-gpu/SKILL.md, or .agents/skills/deploy-windows/SKILL.md for the selected host platform;
  • .agents/skills/mesh-join/SKILL.md for private-mesh creation and verification;
  • .agents/skills/connect-agents/SKILL.md for agent/tool-call validation;
  • .agents/skills/manage-ci/SKILL.md before inspecting CI, release workflows, runners, artifacts, or live workflow results;
  • the relevant Skippy, plugin, telemetry, configuration, or benchmark skill when the delta touches that subsystem.

Workflow

1. Freeze Provenance

  1. Record the candidate SHA, branch, remotes, submodule state, dirty paths, toolchain versions, and current UTC time.
  2. Refuse to present dirty or mismatched builds as reproducible. Either obtain explicit approval to validate the exact dirty tree and record its diff hash, or use a clean checkout at the candidate SHA.
  3. Inspect the latest published GitHub release, its tag, notes, assets, checksums, publication time, and release workflow conclusion. Distinguish stable, prerelease, draft, and manually superseded releases.
  4. Before collecting inventory, resolve the candidate SHA and previous-release tag commit and derive each release base from its merge-base with origin/main. An off-main candidate must be passed as its explicit release tag or have exactly one local tag pointing at its SHA; use that canonical tag for the subject check and fail closed if it is absent or ambiguous. Allow zero commits above a release base, or exactly one commit whose subject is the tag-specific <tag>: prepare release source. Require the previous-release base to be an ancestor of the candidate base. Fail closed if origin/main is unavailable or any tag, subject, commit-count, or base ordering check fails.
  5. From the repository root, run just release-inventory --head <candidate> --output <evidence-directory>/release-inventory.json on Unix, or cargo xtool release inventory --head <candidate> --output <path> on Windows. Optional --repo <owner/name> and --release-tag <tag> select the repository and previous release; without --output, the command writes JSON to stdout. Missing local tags or origin/main stop collection. Verify the configured remote before any separately authorized fetch and then rerun. The inventory records the requested candidate separately from the observed working-tree HEAD and dirty snapshot. Its versioned dirty digest identifies observed evidence, not a validated build. PR range uncertainty and capped query scope require reconciliation; the command does not classify changes or declare release readiness.

2. Build The Canonical Delta Ledger

Use all of these sources, not release notes or commit subjects alone:

  • GitHub comparison and merged PRs from the release tag through candidate SHA;
  • local commit history and changed-file diff;
  • PR bodies, linked issues, labels, tests, docs, migrations, and generated artifacts;
  • user-visible CLI/API/UI/config/protocol behavior found in the code;
  • release, installer, packaging, dependency, security, and observability changes.

Create one atomic ledger row per externally meaningful claim. Merge duplicate PRs/commits into one item, but split unrelated behavior hidden in one PR. Classify every row as FEATURE, BUG_FIX, or REVISION:

  • FEATURE: a newly available user/operator/developer capability;
  • BUG_FIX: behavior that now satisfies an existing contract or removes a defect/regression;
  • REVISION: changed semantics, UX, performance, dependency, packaging, protocol, docs, or operational behavior that is neither of the above.

Give each row a stable ID (RV-FEAT-###, RV-FIX-###, or RV-REV-###), a precise claim, source PRs/commits/files, affected surfaces, compatibility and risk notes, and at least one positive and one relevant negative/edge test. Record internal-only changes as revisions when they can affect release risk; otherwise list them in the excluded/non-release-impact appendix with rationale.

3. Design Tests Before Building

Map every ledger item to concrete checks and an evidence destination. Cover the common release matrix in the evidence reference plus all change-specific paths. Mark a test NOT_APPLICABLE only with a written reason. UNVERIFIED is not a pass.

Use risk to order work: provenance and packaging first, startup/readiness next, then APIs/logs/UI/inference, feature claims, failure/recovery, mixed-version compatibility, and nonfunctional checks. Do not allow one smoke test to stand in for multiple materially different claims.

4. Build Canonical Products On Real Hosts

  1. Confirm each host identity, OS/architecture, backend, GPU/driver/runtime, free disk/RAM/VRAM, toolchain, ports, and existing MeshLLM processes.
  2. Transfer or check out the exact candidate source. Verify the candidate SHA on every host before building.
  3. Use just; never invoke ad hoc Cargo builds as release evidence. Build the three-layer product with the applicable canonical recipes:

    just release-host-build
    just release-runtime-build <backend>
    just release-bundle <candidate-version> <output-directory>

    Use the Windows/platform-specific recipes where the Justfile requires them.

  4. Record commands, exit codes, duration, output archive names and SHA-256, host-import policy results, product/runtime manifests, ABI/version metadata, binary version, and archive contents. Run just check-release and any applicable consistency checks.
  5. Execute the extracted packaged object. Do not validate only target/release/mesh-llm, and do not substitute an older downloaded runtime.

5. Exercise A Private Mesh

Use at least two user-approved real hosts when available. Start foreground, observable processes with JSON logging and isolated ports/data/runtime state. Create a private mesh on one candidate bundle, join the other candidate bundle with its invite token, and wait for explicit readiness rather than sleeping a fixed interval.

Prove on both nodes:

  • peer membership and stable readiness;
  • /api/status and relevant management APIs;
  • /v1/models union and local/remote model identity;
  • non-streaming and streaming inference through exact model IDs and auto;
  • mesh and tool-call behavior when supported or affected;
  • structured logs parse as JSON, contain expected lifecycle/routing events, and contain no panic, secret, unexplained retry storm, or hidden fatal error;
  • embedded UI loads, reflects the same state, has no blocking console/network errors, and completes the item-specific interactions;
  • graceful stop, peer loss/recovery, restart, and cleanup.

For wire, gossip, routing, discovery, packaging, or compatibility changes, add a separate mixed-version private-mesh check using the last released packaged binary on one host and the candidate on another. Never replace the all-candidate mesh with this compatibility check.

6. Judge Every Claim

Assign exactly one status to each ledger item:

  • PASS: the claim is complete and directly proven in every required scope;
  • FAIL: observed behavior contradicts the claim or creates a release blocker;
  • PARTIAL: part works, but the claim, platform matrix, UX, docs, or recovery behavior is incomplete;
  • BLOCKED: validation could not run because a named prerequisite is missing;
  • NOT_APPLICABLE: a planned dimension truly does not apply, with rationale;
  • UNVERIFIED: no adequate evidence was obtained.

Link immutable or locally preserved evidence: commands with exit codes, JSON responses, redacted log excerpts, screenshots, checksums, manifests, test outputs, and defect references. Never infer PASS from code inspection alone.

7. Produce The Formal Report

Write release-validation-report.md from the bundled template and store raw evidence beside it. Include an evidence index with relative paths. Redact tokens, credentials, private addresses when required, and customer data.

Apply the gate rules from the evidence reference. Give one decision: READY, CONDITIONALLY_READY, NOT_READY, or INCOMPLETE. A conditional decision requires an explicit waiver owner, rationale, expiry, and bounded residual risk. Do not call a release ready while any required row is failed, partial, blocked, or unverified.

Operating Rules

  • Preserve unrelated worktree and host state. Use isolated directories, ports, and process identifiers; stop only processes created by this run.
  • Use SSH aliases supplied by the user or documented in context/COMPUTERS.md; never invent a host or use a raw IP when an alias exists.
  • Do not expose invite tokens, API keys, owner keys, release signing material, private paths, or unredacted logs in the report.
  • Do not fix discovered product defects during validation unless the user separately authorizes implementation. Record a reproducible defect and its release impact.
  • Do not dispatch/cancel CI, publish artifacts, push commits/tags, create a release, or mutate GitHub configuration without explicit authorization.
  • Report ongoing host cost and stop remote processes promptly when evidence is complete or the run is blocked.

Download now (ZIP)

Trending

Quiet since April.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 4 mentionsApr 2026: 14 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 0 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the michaelneale/mesh-llm repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about michaelneale/mesh-llm

The biggest 5 of 18 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 18

Talked about on GitHub, Bluesky and Hacker News (18 times).

On GitHub · 15

10 more on GitHub

On Hacker News · 1

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.