Deterministic PR review-resolution control plane runtime.
Project description
gh-address-cr
Auditable pull request review-resolution workflow for AI coding agents.
gh-address-cr is a deterministic CLI runtime plus a thin Codex skill/plugin
adapter. It coordinates GitHub review threads, local AI review findings,
evidence, replies, resolves, and final-gate proof in one PR-scoped session.
It is not a code-review producer and not a generic GitHub bot. The runtime owns state and side effects; agents return structured evidence and the runtime publishes GitHub replies/resolves.
Project architecture governance lives in .specify/memory/constitution.md.
The installed skill contract remains skill/SKILL.md.
60-second quickstart
Install the runtime:
pipx install gh-address-cr
gh-address-cr --help
gh-address-cr agent manifest
Install the Codex/agent skill adapter:
npx skills add https://github.com/RbBtSn0w/gh-address-cr --skill skill
npx skills check
Install the Codex community plugin:
codex plugin marketplace add RbBtSn0w/gh-address-cr --ref main
codex plugin marketplace upgrade
codex plugin add gh-address-cr@gh-address-cr-community
For released plugin installs, prefer pinning a tag:
codex plugin marketplace add RbBtSn0w/gh-address-cr --ref v2.5.1
When to use it
Use it when:
- a pull request has unresolved GitHub review threads
- an AI review producer emits normalized findings for the PR
- stale or outdated review threads need explicit evidence and handling
- completion requires a fresh
gh-address-cr final-gate <owner/repo> <pr_number>proof
Do not use it as:
- a replacement for a code-review producer
- a generic GitHub issue bot
- a ChatGPT Apps SDK app or MCP server
- a shortcut for posting GitHub replies or resolving threads outside the runtime
First PR walkthrough
gh-address-cr active-pr --repo owner/repo
gh-address-cr review owner/repo 123
gh-address-cr address owner/repo 123 --lean
gh-address-cr agent publish owner/repo 123
gh-address-cr final-gate owner/repo 123
Completion means the latest final gate reports:
- zero unresolved review threads
- zero pending reviews for the authenticated login
- no blocking session items
- terminal GitHub threads have durable reply evidence
- an audit summary path with a sha256 hash
A zero unresolved-thread count alone is not sufficient.
Public surface
Primary commands:
active-prreviewaddressfinal-gate
Advanced integration commands:
threadsfindingsadapterreview-to-findingsagent manifestagent classifyagent nextagent submitagent submit-batchagent fixagent fix-allagent resolve-staleagent evidenceagent publishagent leasesagent reclaimdoctor
High-level commands emit machine-readable JSON summaries by default. Use
--human when a person needs narrative output and --lean where supported for
low-token agent context.
For GitHub review-thread replies, shared commit/files/validation evidence is
not the same as a shared reviewer answer. Use agent submit-batch with
per-thread summary/why entries for ordinary multi-thread handling. Use
agent fix-all --input <batch-response.json> to route explicit per-thread batch
evidence, or agent fix-all --homogeneous-reason <why> only for a homogeneous
repeated concern.
Runtime and adapter boundary
The deterministic implementation belongs to the Python runtime package:
- console entrypoint:
gh-address-cr - module entrypoint:
python3 -m gh_address_cr - source package:
src/gh_address_cr/
The packaged skill remains under skill/ and acts as a thin adapter:
skill/SKILL.mdexplains agent behaviorskill/runtime-requirements.jsondeclares runtime compatibilityskill/agents/andskill/references/provide hints and reference docs
The repo-local Codex plugin payload is generated from skill/ into
plugin/gh-address-cr/:
python3 scripts/build_plugin_payload.py
python3 scripts/build_plugin_payload.py --check
The OpenAI curated Plugin Directory is not a self-service publish target in this
repository. The committed .agents/plugins/marketplace.json is the community
distribution path.
Documentation
- Installation and distribution
- CLI reference
- Workflows
- Architecture
- Development and release
- Troubleshooting
- Privacy
- Security
- Terms
Development checks
Run the local verification gate before submitting changes:
ruff check src tests scripts/build_plugin_payload.py
python3 -m unittest discover -s tests
python3 -m gh_address_cr --help
python3 -m gh_address_cr agent manifest
python3 scripts/build_plugin_payload.py --check
Package smoke:
rm -rf dist build
python3 -m build
python3 -m twine check dist/*
Repository model
This repository has two scopes:
- repository root: development, verification, CI, release metadata, and contributor guidance
skill/: the installable and published skill folder
The product/runtime identity remains gh-address-cr: the Python package,
console entrypoint, repository URL, SKILL.md frontmatter name, plugin name,
and /gh-address-cr invocation must not be renamed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gh_address_cr-2.9.3.tar.gz.
File metadata
- Download URL: gh_address_cr-2.9.3.tar.gz
- Upload date:
- Size: 232.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
393f5392ec3d4911f2210030ddbbd74ad5e7ed0368deff19b6ad39fe4a90a532
|
|
| MD5 |
26c4909f43d33acda16328a5edd887b8
|
|
| BLAKE2b-256 |
b03d6681ee6e7addf521b360f33d10f39a3414bd174e28b025bb15563df14330
|
Provenance
The following attestation bundles were made for gh_address_cr-2.9.3.tar.gz:
Publisher:
release.yml on RbBtSn0w/gh-address-cr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gh_address_cr-2.9.3.tar.gz -
Subject digest:
393f5392ec3d4911f2210030ddbbd74ad5e7ed0368deff19b6ad39fe4a90a532 - Sigstore transparency entry: 1707430831
- Sigstore integration time:
-
Permalink:
RbBtSn0w/gh-address-cr@644678d8b95950270a2b5d1019c15849ae7a1241 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/RbBtSn0w
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@644678d8b95950270a2b5d1019c15849ae7a1241 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gh_address_cr-2.9.3-py3-none-any.whl.
File metadata
- Download URL: gh_address_cr-2.9.3-py3-none-any.whl
- Upload date:
- Size: 159.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
324bdb0dffba9640e425d054dbac3ab6f2b9cce9081d7f918e1f4cfd7bc2b14f
|
|
| MD5 |
902613983c3e971094b02b7342fee1de
|
|
| BLAKE2b-256 |
b4915cb4d20eb38209f0a1ee8c266abc1ebc180d0788f8c580086dc9cbf50a41
|
Provenance
The following attestation bundles were made for gh_address_cr-2.9.3-py3-none-any.whl:
Publisher:
release.yml on RbBtSn0w/gh-address-cr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gh_address_cr-2.9.3-py3-none-any.whl -
Subject digest:
324bdb0dffba9640e425d054dbac3ab6f2b9cce9081d7f918e1f4cfd7bc2b14f - Sigstore transparency entry: 1707430843
- Sigstore integration time:
-
Permalink:
RbBtSn0w/gh-address-cr@644678d8b95950270a2b5d1019c15849ae7a1241 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/RbBtSn0w
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@644678d8b95950270a2b5d1019c15849ae7a1241 -
Trigger Event:
push
-
Statement type: