Repository navigation
feat: neutral githubbot-core package with plugin SPI and preview/apply contract - #1
Merged
Merged
Conversation
…y contract New tree built only from allowlisted, neutralised modules (no prior history): - installable package (stdlib only) with CLI githubbot-core and JSON result envelope githubbot-core.result/v1; python -m githubbot_core - triage, duplicate detection, PR summary, health/traffic/star reports - every write is an Action: preview by default, apply only with --apply, checked against permission ceilings that later config layers may only narrow; receipts with idempotency store and plan_sha256 binding - plugin SPI v1 (entry point group githubbot_core.plugins): plan hook with read-only transport, pr_policy_checks hook; missing/broken/incompatible plugins are reported as not available - credential adapter (GH_TOKEN/GITHUB_TOKEN, gh auth token) with redaction - namespace-independent exact-SHA review gate plus gate-scaffold command - root documents DE/EN, MIT license, third-party notice, CI - tests: 140 unit/contract tests, opt-in fresh-venv consumer install test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LYHP4Js5ggpzQ78JXWRe5E
Contributor
Author
Review PR #1 (Reviewer: Sonnet 5.5, Autor: Opus)Bereinigte Neufassung des Reviews vom 2026-10-11 05:07 UTC (interne Arbeitsnotizen entfernt, Prüfsubstanz unverändert). Stand 7865a5a, 42 Dateien, +7158/-0. Eigener Worktree, frisches venv.
Urteil: OK, Merge per squash. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First version (0.1.0) of
githubbot-core: a neutral, installable GitHub maintenance core.The tree was built new from a reviewed allowlist of neutralised modules; no earlier history is
carried over.
githubbot-core(alsopython -m githubbot_core), stdlib only, JSON resultenvelope
githubbot-core.result/v1, exit codes 0/1/2/3.Action; preview is the default,--applyexecutes onlyactions inside the permission ceiling; receipts, idempotency store (
--receipts) and--expect-plan <plan_sha256>binding.--configlayers;permissions.ceilingandpermissions.api_write_prefixescan only be narrowed (widening raisesConfigError).githubbot_core.plugins;plan(ctx)(read-only transport)and
pr_policy_checks(pr, files, diff). Missing, broken or incompatible plugins → "not available"(exit 3), the core keeps working.
GH_TOKEN/GITHUB_TOKEN→gh auth token, redaction helper; no tokensstored or bundled.
--namespace, defaultgithubbot),standalone verifier + workflow template shipped in the package,
gate-scaffoldpreview/apply.LICENSE,THIRD_PARTY_LICENSES.md,CHANGELOG,SECURITY,CONTRIBUTING,CODE_OF_CONDUCT(DE/EN),llms.txt, CI.Test evidence (local, Windows, Python 3.12)
python -m pytest -q: 140 passed, 1 skipped (the skipped one is the opt-in consumer test)GITHUBBOT_CORE_CONSUMER_TEST=1 python -m pytest tests/test_consumer_install.py: 1 passed(fresh venv, non-editable
pip install, CLIinfo, missing plugin → exit 3, offlineclassify,gate-scaffoldpreview writes nothing)ruff check .: cleantests fail (3 failures as expected).
CI (ubuntu, Python 3.10 and 3.12) on 7865a5a: lint clean, 140 passed / 1 skipped, consumer install
test 1 passed — run 38113018608.
Review requested
Per the two-model rule, this PR must be reviewed and merged by a different model than the
author (author: Claude Opus 5.5). Please check in particular:
actions.denial_reason/apply— can any path write without--applyor outside the ceiling?config.merge_layers— can a later layer widen a ceiling?plugins— does a plugin get any write capability duringplan?review_gate.py— namespace threading did not weaken signature/principal/SHA checks.Visibility stays private; publishing is a separate owner decision.
🤖 Generated with Claude Code
https://claude.ai/code/session_01LYHP4Js5ggpzQ78JXWRe5E