diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 0aa18bd..d32b68d 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -10,9 +10,7 @@
-
-
-
+
@@ -22,9 +20,12 @@
@@ -64,4 +65,4 @@
-
\ No newline at end of file
+
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
index 105ce2d..ad7707e 100644
--- a/.idea/inspectionProfiles/profiles_settings.xml
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -1,6 +1,6 @@
-
+
-
\ No newline at end of file
+
diff --git a/.idea/printnode_community.iml b/.idea/printnode_community.iml
index 6a0e387..fa88bfd 100644
--- a/.idea/printnode_community.iml
+++ b/.idea/printnode_community.iml
@@ -12,6 +12,6 @@
-
+
-
\ No newline at end of file
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 3802e85..dcb6b8c 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,16 +1,6 @@
-
-
-
-
\ No newline at end of file
+
diff --git a/AGENTS.md b/AGENTS.md
index 41a644c..c74e18f 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -57,19 +57,13 @@ This repository is maintained as a careful, community-oriented Python client for
## Local Verification
-Use `uv` by default:
+Use the canonical gates from `.github/github-repo-workflow.json`:
```sh
-uv sync
+uv sync --locked
uv run pytest
uv build
uv run twine check dist/*
```
If a command cannot be run locally, mention why in the pull request body.
-
-## Code Agent Notes
-
-- Prefer pull-request-backed work and summarize verification clearly.
-- Keep changes boring, reviewable, and well-tested.
-- Update the durable stewardship plan at `~/.codex/plans/printnode-python-stewardship.md` when major phases start, finish, or change.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9299c0d..5ecac0b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,9 +9,12 @@ The format follows the spirit of Keep a Changelog, and this project intends to u
- Added repository workflow defaults for future GitHub workflow sessions.
- Added public-path coverage for model-instance computer, printer, and print
job lookups.
+- Aligned contributor and agent docs with the repository workflow metadata.
- Updated post-release documentation now that `0.3.0` is published.
- Removed stale private helper code that was unreachable from account and
computer APIs.
+- Removed the legacy root `test` wrapper in favor of the documented
+ `uv run pytest` workflow.
- Hardened model factory handling for missing or null optional nested PrintNode
response fields.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 95d24ff..8201e40 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -13,16 +13,12 @@ Thank you for helping maintain this PrintNode API client. This fork aims to be c
## Development
-The project uses `pyproject.toml` and `uv`. The standard local workflow is:
+The project uses `pyproject.toml` and `uv`. Use the validation gates recorded
+in `.github/github-repo-workflow.json`:
```sh
-uv sync
+uv sync --locked
uv run pytest
-```
-
-Build checks will use:
-
-```sh
uv build
uv run twine check dist/*
```
diff --git a/README.md b/README.md
index b6824ff..a05f18f 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ python -m pip install printnode_community
Install from source with `uv`:
```sh
-uv sync
+uv sync --locked
```
For editable development installs, use:
@@ -39,16 +39,11 @@ uv pip install -e .
### Development
-Install development dependencies and run tests with:
+Install development dependencies and run the local verification gates with:
```sh
-uv sync
+uv sync --locked
uv run pytest
-```
-
-Build and validate package artifacts with:
-
-```sh
uv build
uv run twine check dist/*
```
diff --git a/RELEASE.md b/RELEASE.md
index 55b886f..3057197 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -1,19 +1,21 @@
# Release Process
-This fork is being prepared for maintained releases under the `printnode_community` project name.
+Maintained releases are published under the `printnode_community` project name.
## Package Name
-The historical PyPI distribution name is `PrintNodeApi`, but upstream has not responded to maintainer handoff requests. This community-maintained fork will publish as `printnode_community` instead.
+The historical PyPI distribution name is `PrintNodeApi`, but upstream has not
+responded to maintainer handoff requests. This community-maintained fork
+publishes as `printnode_community` instead.
PyPI normalizes `printnode-community` and `printnode_community` as the same project name. Prefer documenting `uv add printnode_community` and `python -m pip install printnode_community` so the install command visually matches the import namespace.
-Before the first release, verify that `printnode_community` is still available
-on both PyPI and TestPyPI, then configure trusted publishing for that name.
+Before publishing from a new environment or workflow, verify the
+`printnode_community` trusted publisher configuration on PyPI or TestPyPI.
## Versioning
-Use semantic versioning once maintained releases begin.
+Use semantic versioning for maintained releases.
- Patch releases: bug fixes, packaging fixes, documentation corrections, and compatibility fixes that preserve public API behavior.
- Minor releases: new PrintNode API coverage, new optional features, or deprecations that preserve compatibility.
@@ -23,7 +25,7 @@ Keep the package version in `pyproject.toml` and the top `CHANGELOG.md` release
## Pre-Release Checklist
-1. Confirm `printnode_community` is still available and PyPI/TestPyPI trusted publisher configuration is ready.
+1. Confirm PyPI/TestPyPI trusted publisher configuration is ready.
2. Confirm `main` is green in CI.
3. Create a release branch from `main`.
4. Update `pyproject.toml` with the release version.
diff --git a/test b/test
deleted file mode 100755
index 15ccbd0..0000000
--- a/test
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /bin/bash
-set -e
-export PYTHONPATH=$(dirname ${PWD}/$0)
-py.test tests "$@"
diff --git a/tests/README.md b/tests/README.md
index 485fd3e..936bc65 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -2,18 +2,13 @@
The default test suite is credential-free and must not call the live PrintNode API.
-Run tests with:
+Run tests with the gate recorded in `.github/github-repo-workflow.json`:
```sh
uv run pytest
```
-Package verification uses the same checks as CI:
-
-```sh
-uv run pytest
-uv build
-uv run twine check dist/*
-```
+For full package verification, follow the repository workflow metadata in
+`.github/github-repo-workflow.json`.
Live PrintNode API tests may be added later, but they must be opt-in and gated by explicit environment variables. Do not commit real API keys, account credentials, customer data, or live API fixtures.