Agent skill

Petrinaut Shipping

by hashintel in hashintel/hash

End-to-end procedure for shipping a change to the Petrinaut packages (libs/@hashintel/petrinaut, petrinaut-core, petrinaut-cli, apps/petrinaut-opt, apps/petrinaut-website): the verification gates…

Apache-2.0Auto-check passedDevelopment

Install Petrinaut Shipping

skills CLI
$ npx skills add hashintel/hash --skill petrinaut-shipping -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hashintel/hash petrinaut-shipping --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hashintel/hash.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/petrinaut-shipping .claude/skills/petrinaut-shipping && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
petrinaut-shipping
GitHub stars
1.7k
Token cost
~1.4k tokens
SKILL.md length
612 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
Apache-2.0

At a glance

End-to-end procedure for shipping a change to the Petrinaut packages (libs/@hashintel/petrinaut, petrinaut-core, petrinaut-cli, apps/petrinaut-opt, apps/petrinaut-website): the verification gates…

  • Implementing any change in these packages
  • SKILL.md covers Gates, Changesets, Docs sync and Pre-PR hygiene, plus 1 more section
  • Calls yarn, gh and turbo
  • Creating a PR for Petrinaut work

What it does

Petrinaut Shipping is an agent skill from hashintel/hash. End-to-end procedure for shipping a change to the Petrinaut packages (libs/@hashintel/petrinaut, petrinaut-core, petrinaut-cli, apps/petrinaut-opt, apps/petrinaut-website): the verification gates per package, the changeset step, docs sync, pre-PR hygiene checks, and CI expectations from draft to ready. Use when implementing any change in these packages, when creating a PR for Petrinaut work, when running tests or lints for them, or when checking CI on a Petrinaut PR.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Linting and formatting. The repository describes itself as: 🚀 The open-source, multi-tenant platform for self-building knowledge graphs and simulation. The licence is Apache-2.0.

When your agent uses it

  • Implementing any change in these packages
  • Creating a PR for Petrinaut work
  • Checking CI on a Petrinaut PR

Example prompts

  • “/petrinaut-shipping”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 6d23153. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • yarn
    • gh
    • turbo
    • mise
    • uv
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use yarn, gh, uv and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Petrinaut Shipping loads about 1.4k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 612 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~123
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hashintel/hash at commit 6d23153, republished under its Apache-2.0 licence (© hashintel). 612 words, ~1,357 tokens.

Download SKILL.mdSave it as .claude/skills/petrinaut-shipping/SKILL.md (or your agent's skills folder).
name
petrinaut-shipping
description
End-to-end procedure for shipping a change to the Petrinaut packages (libs/@hashintel/petrinaut, petrinaut-core, petrinaut-cli, apps/petrinaut-opt, apps/petrinaut-website): the verification gates per package, the changeset step, docs sync, pre-PR hygiene checks, and CI expectations from draft to ready. Use when implementing any change in these packages, when creating a PR for Petrinaut work, when running tests or lints for them, or when checking CI on a Petrinaut PR.
license
Apache-2.0

Shipping a Petrinaut change

Standing conventions (changeset policy, docs and diagram placement, CI quirks, the petrinaut-opt boundary) live in libs/@hashintel/petrinaut/AGENTS.md and apps/petrinaut-opt/AGENTS.md. This skill is the procedure that applies them.

Gates

Run for every touched package, after every increment:

sh
yarn fix:format >/dev/null 2>&1
turbo run build test:unit lint:tsc lint:eslint --filter @hashintel/petrinaut --filter @hashintel/petrinaut-core --filter @hashintel/petrinaut-cli --force --output-logs errors-only
yarn lint:format
  • turbo is the version pinned by mise in .config/mise/config.toml; running it through npx bypasses the pin and downloads the latest release.
  • Trim the --filters to the touched packages; add --filter @apps/petrinaut-website when it consumes the change.
  • build belongs in that list. test:unit depends on ^build, which builds dependencies and not the selected package, so the React Compiler check, the browser-entry check, and the website's Vite build are otherwise never run.
  • Structure changed (new folder, moved module): also yarn workspace @local/petrinaut-arch-docs lint:arch-docs, and add the layer declaration the AGENTS.md architecture section calls for.
  • Arch-docs authored content or content/diagrams/*.d2 changed: lint:arch-docs does not compile MDX or render D2. Run the site build once before pushing: mise x -- yarn exec turbo run build --filter @apps/petrinaut-docs. D2 labels containing : or [ must be quoted.
  • Python packages go through Turborepo: turbo run test:unit lint:ruff lint:types --filter @apps/petrinaut-opt --filter @local/petrinaut-python --force. A plain uv run pytest skips the end-to-end tests when the CLI bundle is missing, and skips the comparison of regenerated openapi.json that @apps/petrinaut-opt runs as part of its own test:unit.
  • Formatting is oxfmt via the yarn scripts; never run prettier directly. yarn lint:format prints its verdict before its final line, so check the exit code rather than the last line of output.

Changesets

One patch changeset per PR covering the published packages the PR touches (@hashintel/petrinaut, @hashintel/petrinaut-core); none for pure refactors. Keep the text to one or two plain sentences. See the AGENTS.md conventions for the full policy.

Docs sync

User-visible behaviour changes update the user guide in the same PR; new pages need registration and a raw import, both test-enforced. The steps are in the "User-facing docs" section of libs/@hashintel/petrinaut/AGENTS.md. Doc screenshots cannot be uploaded by an agent: produce candidate captures, list the exact pages and sections to re-capture, and flag "screenshots pending" in the PR body and the summary.

Pre-PR hygiene

  • Read git diff --stat against the base: no accidental directories, no unstaged leftovers, no generated output, no mise.lock churn.
  • A Bin line in the stat for a text file means escape sequences became literal control bytes; fix it before pushing or the diff is unreviewable.
  • A diff too large for one review gets split into stacked PRs, one concern per layer.
Show full SKILL.md (237 more words)Show less

Draft, CI, ready

  • Open the PR as a draft, body per the repo PR template.

  • Watch checks until the run settles, and decide that in jq. Neither the exit status nor a pending count answers it alone: gh pr checks exits non-zero when checks are pending, when they failed, and when none are scheduled yet, and with --json it prints [] before any exist, so a pending count of zero also reads as "finished" on a PR that has not started.

    sh
    settled='[length, ([.[] | select(.bucket == "pending")] | length)] | .[0] > 0 and .[1] == 0'
    for _ in $(seq 60); do
      [ "$(gh pr checks NNNN --json bucket --jq "$settled" 2>/dev/null)" = "true" ] && break
      sleep 60
    done
    gh pr checks NNNN

    The wait ends once checks exist and none are pending, failures included, so the table below reports them. Anything else, an empty list or a failed call, keeps waiting. The loop is bounded and the last call keeps its output, so an expired token or an unreachable API surfaces as an error rather than sleeping for ever.

  • Judge failures against the CI bullet in the AGENTS.md conventions (Bench-CI non-blocking, the known flaky check, Vercel-side docs failures) before treating them as caused by the diff.

  • Flip to ready only when checks are green. AI reviewers run at that point; triage their threads rather than leaving them unresolved.

  • End any turn that changed the branch by stating what was committed and pushed, or that nothing was.

© hashintel, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/petrinaut-shipping of hashintel/hash.

Open the folder on GitHubat commit 6d23153

Compare with similar skills

Petrinaut Shipping next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Petrinaut Shipping compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Petrinaut Shipping this skillhashintel/hash1.7k—~1.4kAutomated safety check: PassApache-2.0
Go Pedantrychromedp/chromedp13k—~3.7kAutomated safety check: PassMIT
Kedro Babysitkedro-org/kedro11k—~4kAutomated safety check: PassCustom licence
Trellis Checkanjiemo/SunnyBeach1787 repos~666Automated safety check: PassApache-2.0
WooCommerce Dev Cyclewoocommerce/woocommerce11k3 repos~431Automated safety check: PassCustom licence
Adk Setupgoogle/adk-python22k—~993Automated safety check: NotesApache-2.0

Similar skills

  • Go Pedantry

    chromedp/chromedp

    This skill should be used when the user is writing Go code and needs guidance on Go-specific pedantry: error wrapping with fmt.Errorf and %w, interface design (accept interfaces return structs)…

    13k GitHub stars~3.7k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Kedro Babysit

    kedro-org/kedro

    Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…

    11k GitHub stars~4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Trellis Check

    anjiemo/SunnyBeach

    Comprehensive quality verification: spec compliance, lint, type-check, tests, cross-layer data flow, code reuse, and consistency checks.

    178 GitHub starsUsed in 7 repos~666 tokens
    DevelopmentAuto-check passed
  • WooCommerce Dev Cycle

    woocommerce/woocommerce

    Workflow for WooCommerce development: run PHP and JavaScript tests, lint and fix code style on the current branch, and follow guides for i18n and markdown.

    11k GitHub starsUsed in 3 repos~431 tokens
    DevelopmentAuto-check passed
  • Adk Setup

    google/adk-python

    Official

    Sets up a local ADK Python development environment in a git clone of the open-source adk-python repository: a uv virtual environment, all dependency extras, pre-commit hooks, and a first unit-test…

    22k GitHub stars~993 tokensUpdated today
    DevelopmentAuto-check: notes
  • Dep Validate

    blokadaorg/blokada

    A skill your agent uses to validate risky dependency bumps end to end as a local or cloud-launched agent.

    3.3k GitHub stars~5.7k tokensUpdated today
    DevelopmentAuto-check: notes

More from hashintel/hash

All 17 skills in this repo
  • Documenting Rust Code

    hashintel/hash

    Rust documentation practices for HASH codebase. An agent skill from hashintel/hash.

    1.7k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Handling Rust Errors

    hashintel/hash

    HASH error handling patterns using error-stack crate. An agent skill from hashintel/hash.

    1.7k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Cargo.toml dependency management patterns for HASH workspace.

    1.7k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Testing Hashql

    hashintel/hash

    HashQL testing strategies including compiletest (UI tests), unit tests, and snapshot tests.

    1.7k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • HashQL diagnostic writing patterns using hashql-diagnostics crate.

    1.7k GitHub stars~724 tokensUpdated today
    Auto-check passed
  • Writing Hashql Jexpr

    hashintel/hash

    HashQL J-Expr syntax for writing queries. An agent skill from hashintel/hash.

    1.7k GitHub stars~1.2k tokensUpdated today
    Auto-check passed

Questions about Petrinaut Shipping

What does Petrinaut Shipping do?

End-to-end procedure for shipping a change to the Petrinaut packages (libs/@hashintel/petrinaut, petrinaut-core, petrinaut-cli, apps/petrinaut-opt, apps/petrinaut-website): the verification gates…. Petrinaut Shipping is an agent skill from hashintel/hash. End-to-end procedure for shipping a change to the Petrinaut packages (libs/@hashintel/petrinaut, petrinaut-core, petrinaut-cli, apps/petrinaut-opt, apps/petrinaut-website): the verification gates per package, the changeset step, docs sync, pre-PR hygiene checks, and CI expectations from draft to ready.

When should I use Petrinaut Shipping?

Petrinaut Shipping fits situations like: implementing any change in these packages; creating a PR for Petrinaut work; checking CI on a Petrinaut PR.

How do I install Petrinaut Shipping in Claude Code?

Run `npx skills add hashintel/hash --skill petrinaut-shipping -a claude-code`. Or copy the skill folder (.agents/skills/petrinaut-shipping in hashintel/hash) into .claude/skills/petrinaut-shipping in your project. Claude Code loads it when a task matches its description.

How do I install Petrinaut Shipping in Codex?

Run `npx skills add hashintel/hash --skill petrinaut-shipping -a codex`. Or copy the skill folder (.agents/skills/petrinaut-shipping in hashintel/hash) into .agents/skills/petrinaut-shipping in your project. Codex loads it when a task matches its description.

Can I use Petrinaut Shipping in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashintel/hash --skill petrinaut-shipping -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/petrinaut-shipping, .gemini/skills/petrinaut-shipping, .github/skills/petrinaut-shipping and .opencode/skills/petrinaut-shipping in your project.

What does Petrinaut Shipping need to run?

Going by SKILL.md and its folder, Petrinaut Shipping needs the command-line tools its instructions call (yarn, gh, turbo, mise, uv and git). Our summary lists: Python 3.

Does Petrinaut Shipping access the network?

SKILL.md contains no URLs. Its commands use gh, uv and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Petrinaut Shipping safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Petrinaut Shipping use?

Petrinaut Shipping is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Petrinaut Shipping use?

About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Petrinaut Shipping?

Skills that share tags, products or a category with Petrinaut Shipping: Go Pedantry (chromedp/chromedp, 13k stars), Kedro Babysit (kedro-org/kedro, 11k stars), Trellis Check (anjiemo/SunnyBeach, 178 stars) and WooCommerce Dev Cycle (woocommerce/woocommerce, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Petrinaut Shipping?

hashintel (a GitHub organization) maintains it in hashintel/hash, which has 1,670 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 9, 2026.

Source: hashintel/hash on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.