Skip to content

Development

Local development setup for contributing to gh-plumbing itself.


Tooling

The project pins its tools with asdf (.tool-versions).

asdf install

This installs act, python, and task at the pinned versions.


Common tasks

The shared nolte/taskfiles collection provides the task definitions.

task -l
task pre-commit:install   # register hooks
task pre-commit:start     # run against all files
task mkdocs:start         # serve on http://localhost:8001

Without task

If you prefer raw commands:

virtualenv ~/.vens/development
source ~/.vens/development/bin/activate
pip install -r requirements-dev.txt
mkdocs serve -a localhost:8001

Running workflows locally

Use nektos/act to execute GitHub Actions on your machine:

act push -j static -W .github/workflows/build-static-tests.yaml

Prose linting

Vale lints Markdown files in CI via reusable-spelling-vale.yaml. Rules live in .vale.ini and styles under .github/styles/.

Vale skips CLAUDE.md

CLAUDE.md carries large-language-model context for Claude Code, not end-user documentation, so Vale skips it.