Wave 1C: Recall Blast Radius client lot/ship-to intake - #1
Open
MsShawnP wants to merge 4 commits into
Open
Conversation
Traces a client's own lot genealogy + ship-to records to scope a recall from a seed lot: forward graph trace (networkx), then finished-goods lots affected, cases in channel, direct-cost range ($9-$14/case, same constants as the demo), and the trading-partner notification list. Recall is a graph problem, not POS, so it reads two client files via lailara_engagement (intake + preflight + provenance) rather than the POS layer. Adds client_mode.py, INPUT-SPEC.md, engagement.demo.yml, tests/test_demo_golden.py (pure trace golden: shared-ingredient scope pinned, out-of-scope lots excluded), tests/test_client_mode.py (§6). Demo mode untouched; full suite 23 passed; drift clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Prompt 6 step 0.e. core.hooksPath (the local pre-push guard) is inert on a fresh clone, so a force-added active engagement.yml could otherwise reach a deploy. Add an 'Engagement guard' step (python3 scripts/engagement_guard.py — python3 is preinstalled on ubuntu-latest) right after checkout in the deploy path, so the guard runs server-side regardless of local git config. No-op for demo/clean checkouts (engagement.yml is gitignored). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds .github/workflows/client-mode.yml: installs the repo's deps + lailara_engagement from the private repo pinned to v0.2.1 (LAILARA_ENGAGEMENT_TOKEN secret), then runs the client-mode suite that previously importorskip-skipped the lib. The demo golden gate is untouched and credential-free, so a PAT expiry degrades client-mode coverage only, never the demo invariant. Install verified green in a clean venv locally (lib from the local path, identical code to the tagged git URL). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Wave 1C — Recall Blast Radius client mode
Repo is clean post-08-01 (no bug to fix). Adds client lot/ship-to intake.
Client mode — traces a client's own lot genealogy from a seed lot and scopes the recall: finished-goods lots affected, cases in channel, direct-cost range ($9–$14/case, the same constants as
pipeline/graph.py), and the trading-partner notification list. Recall is a graph problem, not POS, so it reads two client files (genealogy edges + ship-to records) via the sharedlailara_engagementscaffold — not the POS layer.Golden — pure forward-trace pinned: a shared-ingredient seed scopes exactly its downstream fg-lots (270 cases across Walmart/Kroger/Costco/Sprouts) and excludes an unrelated ingredient's lot (the 999-case Whole Foods shipment) — the blast-radius scaling that is the tool's whole point.
Verification
.canonical-allowlistnot created.🤖 Generated with Claude Code