Contract
What Stall is being built to do
Every clause of the product Stall is building toward, and how much of it the code does today. Judged from the code and tests, not from plans.
6 of 77 clauses done
8% (6)44% (34)48% (37)
- 6 done
- 34 partial
- 37 missing
Judged at commit b4fc3b0 ·
Published clauses
1 done · 0 partial · 0 missing
of 1
Target and push further
5 done · 34 partial · 37 missing
of 76
Product target
- Category
- Ecommerce platforms (online storefronts)
- Replaces
- Shopify, Squarespace Commerce, BigCommerce, WooCommerce, Medusa, Saleor, Fourthwall
- First buyer
- A US small retailer or maker selling physical goods in USD through an owned branded online store
Progress by area
9 areasPublished · 8 areas
- Runtime and store experience1 done3 partial3 missing
- Catalogue and stock0 done4 partial1 missing
- Cart, payment and commercial totals1 done3 partial4 missing
- Fulfilment, orders and returns0 done6 partial8 missing
- Customers, follow-up and channels0 done2 partial9 missing
- Reporting, accounting and migration0 done3 partial7 missing
- Roles, integrations and dependable operations4 done9 partial0 missing
- Product separation and specialist extensions0 done1 partial3 missing
Target and push further · 1 area
All clauses
Showing 77 of 77 clauses
| Clause | Title | Status | Evidence or gap |
|---|---|---|---|
| Runtime and store experience 1 done · 3 partial · 3 missing | |||
| HTTP-001published | Real installed and published HTTP surfaces | Done | src/src/tests/tests/ |
| DEMO-001target | Hosted demo shop that sends nothing | Partial | src/src/src/tests/Gap: The demo shop, simulated Stripe/Pier and an outbound-free purchase/approval test exist and the homepage links the hosted demo; no checked-in check follows that link to the hosted demo, and Stall's own tests do not exercise the production refusal of demo mode or an empty fresh installation. |
| STORE-001target | Merchant themes, page builder and custom domain | Partial | src/src/Gap: A fixed branded storefront exists; the theme library, switching, duplication, export/re-import, visual building, storefront password, domain management, revision controls and a measured performance run are absent. |
| STORE-002target | Navigation, collections and product discovery | Missing | Gap: No implementation found. Target journey not implemented. |
| STORE-003target | Content, blog, contact, newsletter and search visibility | Missing | Gap: No implementation found. Target journey not implemented, including the contact form and newsletter signup. |
| MOBILE-001target | Accessible mobile shopping and merchant work | Partial | src/src/tests/Gap: The existing narrow shop/desk journey covers both widths; expanded flows and full accessibility conformance are unimplemented or unverified. |
| MOBILE-002target | Native merchant apps and timely order attention | Missing | Gap: No implementation found. Target journey not implemented. |
| Catalogue and stock 0 done · 4 partial · 1 missing | |||
| CATALOG-001target | Products, variants and media | Partial | src/src/tests/Gap: SKU/name/description/exact-cent price and reviewed publication exist; variants, media, attributes, custom fields, personalization, cost, shipping and customs fields do not. |
| CATALOG-002target | Bulk catalogue operations and portable files | Partial | src/src/tests/Gap: Reviewed, journaled, reversible six-column Shopify product CSV import exists; broad schemas, bulk editing, quantity and inventory-CSV updates and product CSV export are absent. |
| STOCK-001target | Live availability through Pier or another stock system | Partial | src/src/tests/Gap: Pier bin availability and paid-order reservations exist; selling still requires Pier (checkout binds every order to the Pier origin/customer). Configurable location/backorder policy, Stall-originated quantity adjustments and alternate adapters are absent. |
| STOCK-002target | Expiring checkout holds and stock race resolution | Partial | src/src/src/tests/Gap: Checks before checkout and post-payment reservation/reconciliation exist; prepayment holds, expiry and shopper shortfall resolution do not. |
| STOCK-003target | Store-managed quantities and untracked items without a stock system | Missing | Gap: No implementation found: checkout and dispatch require Pier; untracked variants, store-managed counts and the opening-balance handoff are absent. |
| Cart, payment and commercial totals 1 done · 3 partial · 4 missing | |||
| CART-001target | Persistent cart and guest or account checkout | Partial | src/src/src/tests/Gap: A transient basket, reviewed product total and email guest handoff exist; persistence/accounts/native address and delivery steps, personalization and merchant checkout fields are absent, and hosted addresses are AU-only. |
| PAY-001target | US dollar cards, wallets, PayPal, pay-later and manual payments | Partial | src/src/tests/Gap: Stripe card Checkout/refunds exist in AUD; named wallets, PayPal, pay-later, manual methods and USD/US acceptance are unimplemented or untested. |
| PAY-002target | Authorization, capture, cancellation and disputes | Partial | src/src/src/Gap: Canonical paid-session retrieval exists; distinct authorization/capture, void, dispute evidence and fee lifecycle handling is absent. |
| PAY-003target | Verified payment and duplicate-safe paid reservation | Done | src/src/src/tests/ |
| PROMO-001target | Discounts, automatic promotions and controlled budgets | Missing | Gap: No implementation found. Target journey not implemented. |
| PROMO-002target | Gift cards and stored redemption balances | Missing | Gap: No implementation found. Target journey not implemented. |
| TAX-001target | US sales tax and exemptions | Missing | Gap: No implementation found. Target journey not implemented. |
| RISK-001target | Fraud indicators and human review | Missing | Gap: No implementation found. Target journey not implemented. |
| Fulfilment, orders and returns 0 done · 6 partial · 8 missing | |||
| SHIP-001target | Shipping zones, live rates, international USD shipping, pickup and delivery | Missing | Gap: No implementation found. Target journey not implemented. |
| SHIP-002target | Purchase, print and void carrier labels | Missing | Gap: No implementation found. Target journey not implemented. |
| SHIP-003target | Split fulfilment, tracking and delivery exceptions | Partial | src/src/tests/Gap: One approved whole-order Pier shipment/reference exists; splits, carrier tracking and delivery messaging are absent. |
| SHIP-004target | Shipping profiles for specific products | Missing | Gap: No implementation found. Target journey not implemented: products carry no shipping profile, weight or rate data. |
| SHIP-005target | Bulk label purchase and batch fulfilment | Missing | Gap: No implementation found: fulfilment prepares and approves one whole-order Pier shipment at a time; batch selection, labels and combined documents are absent. |
| SHIP-006target | Merchant shipping apps and 3PLs as fulfilment connections | Missing | Gap: No implementation found. Target journey not implemented: no ShipStation or 3PL order export or tracking write-back exists. |
| SHIP-007target | Local pickup and local delivery fulfilment | Missing | Gap: No implementation found: fulfilment has only an approved whole-order Pier shipment; pickup and local-delivery states, notices, lists and uncollected-order handling are absent. |
| ORDER-001target | Complete retail order desk | Partial | src/src/src/src/Gap: Payment/reservation/shipment/refund records and a one-page desk exist; broader search, notes, manual orders and US time-zone behavior are absent (draft invoices are ORDER-005); current times use Australia/Perth. |
| ORDER-002target | Exact shipment approval and one dispatch | Partial | src/src/tests/Gap: Proven for current whole-order Pier shipments; alternate-connector dispatch and manual fulfilment with typed tracking are absent, and carrier/partial-fulfilment breadth remains SHIP-002/003. |
| ORDER-003target | Reviewed line refunds without duplicate money movement | Partial | src/src/tests/Gap: The AUD shipped-line partial-refund flow is covered; shipping-only and goodwill refunds without returned lines are absent (refund amounts are computed only from purchased lines), and pre-shipment cancellation, tax adjustments and return receipt remain separate target work. |
| ORDER-004target | Versioned edits, cancellation and claims | Partial | src/src/src/Gap: Revision checks exist for current drafts/effects; general edits, cancellation and claims are absent. |
| ORDER-005target | Draft orders, custom lines and payable invoices | Missing | Gap: No implementation found: orders start only from storefront checkout; staff drafts, custom lines and invoice links are absent. |
| RETURN-001target | Customer self-service returns, cancellations and exchanges | Missing | Gap: No implementation found. Target journey not implemented. |
| RETURN-002target | Physical receipt, restocking and reconciled resolution | Partial | src/tests/Gap: Reconciled line refunds deliberately avoid restocking; return authorization, labels, inspection and restock workflow are absent. |
| Customers, follow-up and channels 0 done · 2 partial · 9 missing | |||
| CUSTOMER-001target | Customer directory, accounts and order history | Partial | src/src/tests/Gap: Orders retain buyer contact/address and commercial history; customer profiles, shopper authentication and self-service history are absent. |
| CUSTOMER-002target | Consent, preferences and customer privacy | Partial | src/src/tests/Gap: Owner-directed contact erasure and later-journal fencing exist; consent/preferences, the storefront privacy banner, account requests and marketing propagation are absent. |
| CUSTOMER-003target | One-click reorder from order history | Missing | Gap: No implementation found: there are no customer accounts or order history (CUSTOMER-001) and no reorder. |
| MAIL-001target | Transactional confirmations and delivery evidence | Missing | Gap: No implementation found. Shared sign-in mail infrastructure does not implement order/customer transactional notifications. |
| RECOVERY-001target | Abandoned-checkout recovery to a valid basket | Missing | Gap: No implementation found. Target journey not implemented. |
| MARKET-001target | Mango and consent-aware lifecycle marketing connections | Missing | Gap: No implementation found. Target journey not implemented. |
| CHANNEL-001target | Google Shopping, Meta/Instagram, TikTok Shop and Pinterest | Missing | Gap: No implementation found. Target journey not implemented. |
| CHANNEL-002target | Marketplace adapters without becoming a marketplace | Missing | Gap: No implementation found. Target journey not implemented. |
| CHANNEL-003target | Ad pixels, conversion APIs and custom storefront events | Missing | Gap: No implementation found. Target journey not implemented. |
| CHANNEL-004target | Embeddable Buy Button and checkout links | Missing | Gap: No implementation found. Target journey not implemented. |
| REVIEWS-001target | Verified reviews, upsells and cross-sells | Missing | Gap: No implementation found. Target journey not implemented. |
| Reporting, accounting and migration 0 done · 3 partial · 7 missing | |||
| ANALYTICS-001target | Sales, conversion and contribution margin | Missing | Gap: No implementation found. Target journey not implemented. |
| ACCOUNT-001target | Reconciled QuickBooks Online and NetSuite posting | Missing | Gap: No implementation found. Target journey not implemented. |
| MIGRATE-001target | Full reviewed Shopify migration | Partial | src/src/tests/Gap: Only a bounded six-column product CSV stages simple unpublished products; full Shopify objects, media, variants, customers, orders, content pages, blogs, menus, discounts and redirects are absent. |
| MIGRATE-002target | Squarespace Commerce migration | Missing | Gap: No implementation found. Target journey not implemented. |
| MIGRATE-003target | BigCommerce migration | Missing | Gap: No implementation found. Target journey not implemented. |
| MIGRATE-004target | WooCommerce and extension migration | Missing | Gap: No implementation found. Target journey not implemented. |
| MIGRATE-005target | Open-engine and creator-store move-in | Missing | Gap: No implementation found. Target journey not implemented. |
| MIGRATE-006target | Cutover completeness, source limitations and outstanding liabilities | Partial | src/src/tests/Gap: Current product import binds reviewed source/native snapshots and protects undo; complete cross-platform cutover, media, redirects, customer activation and outstanding liability handling are absent. |
| MIGRATE-007target | Product review and rating migration | Missing | Gap: No implementation found: the only import target is products; review import, mapping and rendering are absent. |
| EXPORT-001target | Business CSVs and complete merchant exit | Partial | src/src/tests/Gap: Complete supported commercial archives exist; business CSVs and new target-object exports are absent. |
| Roles, integrations and dependable operations 4 done · 9 partial · 0 missing | |||
| ROLE-001target | Staff and app least privilege | Partial | src/src/src/tests/tests/Gap: Native owner/admin/member roles and revocation exist; functional staff scopes, refund limits and customer/app roles are absent. |
| AGENT-001target | Human approval of exact agent drafts | Partial | src/src/src/src/tests/tests/Gap: All three preparation commands and human-only approval guards exist; checked-in agent journey directly exercises product drafting, not agent shipment/refund preparation end to end. |
| API-001target | Documented headless API and signed events | Partial | src/src/src/tests/Gap: Current JSON commerce doors and incoming Stripe signatures exist; versioned customer/cart APIs, external app scopes and outgoing event subscriptions are absent. |
| FLOW-001target | Event and scheduled workflows with visible follow-up | Partial | src/src/Gap: A fixed paid-event reservation transition exists; configurable rules, timers, tasks and notifications are absent. |
| INTEGRATION-001target | Owned connections and recoverable external work | Partial | src/src/src/src/tests/Gap: Stripe/Pier deterministic effects and manual reconciliation exist; generalized connection controls, secret custody and durable jobs for all target providers are absent or unverified. |
| SECURITY-001target | Guarded native commerce doors | Done | src/src/src/tests/tests/tests/ |
| DATA-001target | Validated archive and inactive receiving authority | Done | src/src/tests/ |
| ERASURE-001target | Owner-directed contact erasure and backup fencing | Done | src/src/tests/ |
| AUDIT-001target | Durable attributable commercial action history | Done | src/src/src/tests/tests/ |
| OPS-001target | Owned installation, recovery and explicit operating limits | Partial | SEED-COMMAND-CONTRACT.mdscripts/tests/tests/Gap: The RER command path and local clone/runtime journeys exist; operating costs/capacity and generalized background/provider health are unmeasured or absent. |
| OPS-002target | Run Stall on the owner's own computer or own server | Partial | src/scripts/deploy.jsontests/Gap: The one-line local start and own-account Cloudflare deploy exist; there is no own-server production path (rer dev and rer preview are rer-managed servers with a 12-hour idle stop), and the one-line start has no recorded fresh-machine acceptance. |
| BASE-001target | Preserved Base guarantees with scoped replacements | Partial | src/src/src/tests/tests/Gap: Current plain-text/import and archive policies are inspectable; future rich content/media safety and a full Base conformance assessment are not established. |
| OPEN-001target | Free and open source under the MIT licence | Partial | LICENSEpackage.jsonGap: The repository and package are MIT and nothing in the product charges or gates; no test checks the licence or the absence of paid gates, and provider-cost disclosure before a connection does not exist. |
| Push further: agents operate the commerce job 0 done · 3 partial · 2 missing | |||
| AI-001push further | Operate order exceptions to shopper-approved closure | Partial | src/src/tests/Gap: Paid/shortfall states and manual lost-response recovery exist; detection agent, grounded shopper replies, options and closure workflow are absent. |
| AI-002push further | Manage returns end to end | Partial | src/tests/Gap: Revision-approved reconciled refunds are a foundation; policy reasoning, labels, return receipt, restock and agent follow-through are absent. |
| AI-003push further | Improve profitable conversion with measured experiments | Missing | Gap: No implementation found. Target journey not implemented. |
| AI-004push further | Recover failed integration work without invented success | Partial | src/src/src/tests/Gap: Manual Stripe/Pier reconciliation preserves original identities; agent diagnosis, label/mail/channel/ledger recovery and policy execution are absent. |
| AI-005push further | Grounded merchandising and channel preparation | Missing | Gap: No implementation found. Target journey not implemented. |
| Product separation and specialist extensions 0 done · 1 partial · 3 missing | |||
| BOUNDARY-001target | Separate products with usable commerce connections | Partial | src/src/Gap: Pier is a separate product adapter today, but mandatory; Mango and alternative-provider handoffs are absent. |
| EXTEND-001target | Subscriptions, POS, digital downloads and creator fulfilment partners | Missing | Gap: No implementation found. Target journey not implemented. |
| EXPAND-001target | Multiple stores, regions and currencies | Missing | Gap: No implementation found. Target journey not implemented. |
| B2B-001target | Business buying without absorbing wholesale operations | Missing | Gap: No implementation found. Target journey not implemented. |
How statuses are judged
- Done
- It ships in the default install, and a cited test or journey exercises it.
- Partial
- Some of it ships, it ships only behind an opt-in, or there is code with no requirement-level test.
- Missing
- There is no implementation.