Repository navigation
ICM: make alteriom-webhook-client-python ICM-ready - #3
Merged
Merged
Conversation
AGENTS.md becomes the entry (routes, pipelines, rules) with a one-line CLAUDE.md pointer; the repository had no instruction file before. .github/icm/ adds the fix and release pipelines and five shared facts that point at the owning files. The ICM check job and generator are vendored from standard 1.1.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
sparck75
marked this pull request as ready for review
October 15, 2026 17:10
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
What and why
This makes
alteriom-webhook-client-pythonICM-ready to the ICM standard 1.1.0 (the one memoryrelay/apimainruns). The repository had no instruction file of any kind.AGENTS.mdis now the entry, a router: what the package is, where things live, a route table by what just happened, and the rules.CLAUDE.mdis a one-line pointer to it..github/icm/holds two pipelines, fix (which also covers models falling behind the deliveries) and release, and five shared facts. Each fact points at the file that owns it (path:line) and does not restate it.The owner decided (2026-10-15) that this repository becomes its own MemoryRelay workspace,
alteriom-webhook-client-python, which the Alteriom hub will delegate to. No code changes. The release pipeline never publishes: a published GitHub release uploads to PyPI, and a person publishes it. The repository is public and Alteriom/alteriom-webhook-connector is private, so nothing here describes the service. The generator and the CI job are vendored byte for byte from the standard.Before / after
AGENTS.md48 lines, 4,722 B (~1,180 tokens);CLAUDE.md1 linefix-reproduce)Before was zero, so nothing gets cheaper; the value is structure. The package is 278 lines of code, but its two real decisions were written down nowhere: what the receiver accepts, and how a release reaches PyPI. Now a route, a stage contract and a pointer to the owning line say each one. The traps are in
_shared/gotchas.md: deliveries without an aggregate are taken as duplicates, signatures are over raw bytes, and trusted publishing depends on names that live on PyPI's side.Inventory
Top level.
src/alteriom_webhook_client/: signature, receiver, models, FastAPI helper, 278 lines.tests/: three pytest files, 18 tests..github/workflows/:ci.yml,publish.yml. The root also haspyproject.toml,README.mdandLICENSE.Instruction files. None: no
CLAUDE.md,AGENTS.md,.cursorrules, Copilot instructions,.claude/,.codex/orGEMINI.md.Documents.
README.mdonly, pinned through_shared/documents.md. There is no changelog, contributing guide or security policy file; private vulnerability reporting is enabled on the repository, and thesecurityroute uses it.Jobs with evidence.
v0.1.0, the one tag and release, now on PyPI.publish.ymlneeded three runs (two failures) and four commits to reach trusted publishing.feat:commits) and two PRs in all (ci: add GitHub Actions CI/CD for testing and PyPI publishing #1, docs: add MIT LICENSE and drop private repo link #2). Two pipelines is what the evidence supports; the third job the code implies, keeping the models level with the TypeScript client, is a route (model-drift) into01-fix.Pipelines and routes
01-fix02-releasepyproject.toml, draft notes) → publish (the person publishes the GitHub release; the agent confirms PyPI and a clean install)Routes:
triage,fix,ci-red,model-drift,security,release,publish-check,next,status.Shared facts:
architecture.md,build-and-test.md,release.md,gotchas.md,documents.md.Reconciliation
There was no instruction file, so there is no section to carry over and nothing dropped. The facts come from the code,
pyproject.toml, the workflows and the README, each cited at337bb90.Dropped as false
None: there were no instruction files. No drift was found between
README.mdand the code.Memories folded / skipped
None. The brief named no Claude Code memory directory for this repository.
Checks
The repository's own tests were run locally on the base commit in a fresh virtual environment (
pip install -e ".[dev]",pytest tests/): 18 passed. The generator was run on a clean tree, with no ignored files on disk. This PR touches no code or test. No test enumerates workflows.icm-check.ymlparses as YAML.Left for a person
alteriom-webhook-client-python(Git, this repository, branchmain, root empty) and sync it; then the Alteriom hub delegates to it.subscription_id:nonewhenaggregateis absent (src/alteriom_webhook_client/receiver.py:131). A second correctly signed delivery for the same subscription without an aggregate, within the one-hour TTL, gets "Duplicate delivery detected" (401). I reproduced it on337bb90with two deliveries whosedelivered_atdiffered. The TypeScript receiver in Alteriom/webhook-client builds its key the same way (subscription_id:unknown). Whether that is intended is a decision for both SDKs, recorded in_shared/gotchas.md; it is not changed here.No committed credential was found: the secret-looking strings in
tests/andREADME.mdare placeholders such astest-secretandyour-secret.🤖 Generated with Claude Code