LaunchGuard works from catalog and cost data supplied by the operator. It does not estimate demand or marketplace sales. If required evidence or approval is missing, the run stops before Shopify delivery.
The project's README from github.com/Jack81st/launchguard-ai. As one markdown file: README.md.
A reviewable product-launch workflow for pricing, policy checks, and Shopify drafts.
Quickstart · Architecture · Engineering Report · Threat Model · Roadmap · Contributing
A supplier record can become a product listing before anyone has checked the margin assumptions, applicable policies, or approval history. LaunchGuard keeps those decisions in one traceable workflow:
catalog and cost inputs
→ sourced FX rate
→ versioned policy citations
→ contribution-margin scenarios
→ structured listing draft
→ deterministic compliance checks
→ durable human review
→ idempotent Shopify DRAFT
LaunchGuard works from catalog and cost data supplied by the operator. It does not estimate demand or marketplace sales. If required evidence or approval is missing, the run stops before Shopify delivery.
| Design choice | Implementation | Operational value |
|---|---|---|
| Checkpointed review | LangGraph interrupt() plus SQLite checkpoints and stable thread IDs |
A run can pause, survive process restart, and resume after review |
| Deterministic business rules | FX, pricing, retrieval, compliance, persistence, and delivery use explicit services | Calculations and controls remain inspectable and testable |
| Traceable inputs | Strict CSV/JSON SKU contract with a source reference | Reviewers can see where the commercial assumptions came from |
| Versioned policy retrieval | SQLite FTS5, market filters, effective dates, source paths, and citation IDs | Reviewers can inspect exactly which rule supported the draft |
| Unit economics | Duty, shipping, fulfillment, fees, VAT, returns, ads, margin, FX, and four stress scenarios | Makes commercial feasibility visible before copy is approved |
| Draft-only delivery | Dry-run default, explicit review, deterministic handle, remote lookup, local ledger, Shopify DRAFT status |
Reduces accidental publishing and duplicate products |
| Evaluation gate | Reproducible cases for clean launches, commercial warnings, and prompt-injection blocking | Changes can be measured instead of judged only by demos |
Use the control room to start a launch review, compare the recommended price with its floor, inspect the FX source and policy citations, and approve or reject the draft. Runs waiting for review remain available after a restart.
git clone https://github.com/Jack81st/launchguard-ai.git
cd launchguard-ai
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
launchguard serve
Open http://127.0.0.1:8080. The default setup works without model or Shopify credentials.
docker compose up --build
SQLite run history and checkpoints are stored in the launchguard-data volume.
Start an offline demonstration run:
launchguard start \
--catalog examples/catalog.csv \
--sku LG-BTL-001 \
--offline
The command returns a run_id and exits with pending_approval. The process can now stop. Resume the same checkpoint later:
launchguard decide \
--run-id lg_your_run_id \
--action approve \
--reviewer "Operations reviewer" \
--note "Evidence, margin floor, and policy citations reviewed"
Reusing a completed run_id does not create another delivery.
LaunchGuard solves the price required to preserve the target contribution margin:
fixed cost = converted product cost + converted inbound shipping + duty + fulfillment
minimum price = fixed cost /
(1 - platform fee - VAT - returns reserve - ad cost - target margin)
Each review includes:
The pricing result is decision support, not a forecast. Every input appears in the review package so the assumptions can be checked before approval.
Policies are Markdown files with required metadata:
---
id: PRICING-GOVERNANCE-2026-02
title: Contribution Margin and Pricing Governance
market: GLOBAL
effective_date: 2026-02-01
---
SQLite FTS5 retrieves market-appropriate sections and returns the document ID, effective date, source path, content, and score. The default listing builder is deterministic. An OpenAI-compatible endpoint can be enabled for model-written copy, but the response must still pass schema validation and may cite only retrieved evidence IDs.
Live delivery is unavailable unless all of these conditions are true:
LAUNCHGUARD_SHOPIFY_MODE=live is configured;*.myshopify.com domain and Admin API token are present.The connector then:
DRAFT status only;Rate limits and transient server failures are retried. GraphQL user errors and partial price-update failures are surfaced rather than converted into success.
make lint
make test
make eval
CI runs on Python 3.9, 3.11, and 3.12, enforces at least 80% branch-aware coverage, executes the evaluation gate, and builds the production container. Tests use mock transports and never need paid credentials.
Current verification results:
These figures measure the repository's test and regression suite; they do not measure commercial lift. The bundled evaluation reports:
See the engineering report for the design rationale, verification scope, and known limitations.
FastAPI exposes:
| Method | Endpoint | Purpose |
|---|---|---|
POST |
/api/runs |
Validate evidence and run until completion or review interrupt |
GET |
/api/runs |
List recent runs |
GET |
/api/runs/{run_id} |
Read persisted state and audit events |
POST |
/api/runs/{run_id}/decision |
Resume a pending checkpoint with approve/reject and optional edits |
GET |
/health |
Container and service health |
Interactive OpenAPI documentation is available at /docs.
src/launchguard/
├── api.py # FastAPI and control-room API
├── workflow.py # LangGraph, interrupt, resume, checkpointing
├── models.py # Strict evidence and output contracts
├── store.py # Run, event, approval, and delivery ledger
├── connectors/
│ ├── catalog.py # Validated CSV catalog input
│ ├── fx.py # Live FX with explicit fallback provenance
│ └── shopify.py # Guarded GraphQL draft delivery
└── services/
├── policies.py # Versioned FTS5 retrieval
├── pricing.py # Unit economics and stress scenarios
├── generation.py # Deterministic and optional LLM generation
└── compliance.py # Deterministic safety and policy checks
This repository started with an empty Git history. It is not a fork and contains no BorderPilot source code, assets, history, or documentation. LaunchGuard uses open-source libraries through their documented APIs and is released under the MIT License.
LaunchGuard works from catalog and cost data supplied by the operator. It does not estimate demand or marketplace sales. If required evidence or approval is missing, the run stops before Shopify delivery.