Diamond StoneDiamond StoneAll plans

Diamond Stone: a review of the whole plan

Date: 2026-11-12. Revision 1.

Every plan document was read end to end by five separate readings (staff app; website and store; portal, documents and money; technology; and a step-by-step simulation of seven scenarios), then combined here. The list of everything that has to be built is in docs/BUILD-LIST.md.

What this is not. Nothing was tried on a phone, with a customer, or with a supplier. The simulation walks the documents, not software. Legal and tax points are flagged for the lawyer and tax adviser, not settled. The mockup screens were checked document against document, not screen by screen.


1. The verdict in one page

The plan is wide and, in most places, careful. Its weaknesses are of four kinds.

# Weakness What it means
1 Five owner decisions are still open, and most of the plan rests on them Whether stock is held decides the warehouse, the spare, "Shipped from Sohar", and about 30 screens
2 Later decisions were not carried back into earlier documents Matching, the customer's name for a stone, "WhatsApp" on the bar, sign-in and the site's look each left older text behind that now contradicts them
3 The middle of an order is not defined Nobody has written the one sequence from quote to delivered: when the lot is reserved, when the supplier is ordered, when the balance is due, what happens on part delivery, a claim, a change or a cancellation
4 It is too big for the first release Stage 0 and Stage 1 together are more than a year's work before a customer sees anything, for a small company with no named developers

None of these is a reason to stop. All four are fixable on paper, and should be before any building.

2. Decisions only the owner can make

In order of how much they unblock. The first four were answered by the owner on 12 November 2026; see section 12. The rest are open.

# Decision What hangs on it
1 Is stock held in a yard, or is everything ordered back-to-back? Warehouse and fleet screens; where spare and control samples are kept; the arrival check; whether "Shipped from Sohar" is true; showroom sales
2 Who builds this, and is Rust confirmed? Everything. The stack is demanding (Rust, WebAssembly, Svelte, a ledger, passkeys, PDF) and no developer is named
3 The accountant's device A phone-only staff app against a role that "works at a desk for long stretches". Either a desk layout for Money, or accounts stay in the present system at first
4 The spare: how much, how long, who pays, where it sits The matching promise; the top-up; costs
5 Arabic at launch The walk-in Omani customer cannot be served in the plan as drawn; the privacy notice may need Arabic first
6 Is "marble" used for limestone? The opening line and listing titles say marble; most Omani stone is limestone; the catalogue plan cites fines for misdescription. For the lawyer too
7 The sample: one piece or a set, its size, price per piece or per set, how many per order Five documents give five answers
8 Reply promise and hours 15 minutes, one hour, four hours and one minute all appear
9 A US dollar bank account Proformas in dollars cannot show bank details without it
10 Who releases payments when the owner is away The owner is the only releaser in the rules

3. The order, from quote to delivered: proposed

The largest gap. Three documents give three different orders, and one is circular: the lot is reserved before the customer sees the range, the supplier order waits for the advance, and the terms forbid cancelling once the factory has reserved.

One sequence is proposed here for the owner to accept or change. It becomes the source for MODULES.md §12, PORTAL.md, MATCHING.md §6 and the terms.

# Step Who The rule
1 Enquiry Customer Under whatever name they used
2 Quote, with the range Sales The range shown is the selection's range. A lot is asked for, not reserved: a soft hold with an end date, costing nothing
3 Approve the range; accept the quote and terms Customer One screen, two ticks. An architect can approve the range by a link; only the buyer accepts
4 Advance received Customer, accountant 50 % by default (decided 12 November 2026), printed on the quote. "Received" means a matched bank line
5 Supplier ordered; the lot and the spare reserved firm Purchasing Only now. From here the order cannot be cancelled without cost, and the terms say so
6 Sort and measure Purchasing Works without signal
7 Layout (projects) or photographs of the pieces (small orders) Purchasing A threshold in area decides which
8 Approve the layout Customer A deadline. After it, a reminder, then a person calls. Holding beyond a set time is charged if the terms say so
9 Balance due Customer The other 50 %, before shipping, by default; credit customers by their terms. The buyer may inspect first, in the way our people chose for the order
10 Pack, label, seal, load Supplier, witnessed
11 Deliver, or the customer collects Driver, or warehouse Collection is its own mode, with its own proof
12 Invoice System Per delivery where an order ships in parts
13 Claims window Customer A stated number of days from delivery, and never after cutting or fixing
14 Spare kept, then released Warehouse Offered to the customer before its date

Variants to write beside it: sold from stock; part deliveries; two lots with an agreed change; sea export with a letter of credit; a showroom sale; a trader's mixed container.

4. Where the plan contradicts itself

Fixed in this review: the handover's "phone only" rule (now: the staff app only). The rest are listed for cleaning (section 10).

# Subject The conflict Sev.
1 Approval "Material approval" of slabs (PORTAL §4 and §6, MODULES §12, JOURNEYS, FLOWS, SCREENS, DOCUMENTS clause 4) against range then layout (MATCHING) High
2 The order of an order Section 3 above High
3 Sign-in Phone, code, passkey (owner's rule) against "a secure link from WhatsApp or email", "email code", "accepts with one tap" (PLAN §2 and risk 33, MODULES §5) High
4 Links "A link never shows anything by itself" (PORTAL §4) against an open quote link lasting 30 days (DOCUMENTS §9) High
5 Offline "Limited to four jobs" (PLAN §6) against warehouse and loading "work without signal" (ROLES §6-7) and "done at once" (SHELL, MOTION) High
6 Done when? "Only when the server confirms" (DESIGN §7) against approvals shown done at once (MOTION §8) High
7 Stages Quotes are in Stage 1; the catalogue they need is Stage 2; invoices are Stage 3; inspection and approval are Stage 4. No stage holds documents High
8 The sample One piece; "one or more"; a set of three; four or five; up to four a box; "2.000 OMR" against "not set" High
9 The opening sentence Four versions; the longest breaks the site's own six-word rule High
10 Chat "On every page" in the first release (WEBSITE §3, §10) against "under Contact, and a decision" (SITE-DESIGN §21) High
11 Sample form "Three fields" and "under a minute" against a full checkout with proof of transfer High
12 Back-to-back posting "Straight to cost of sales" (PLAN §11) against goods in transit, then cost of sales on delivery (ACCOUNTS §2) Med
13 Counts Screens: 60, 55 drawn, 176, 332, 360, 400. Roles: eight and nine. Home parts: eleven and twelve. Settings groups: nine and 22 Med
14 Drawn marks FLOWS says 26 screens are drawn that INVENTORY still marks undrawn, and the reverse for inspection Med
15 Portal shell Halo, Stream, Omnibar (PORTAL §1, JOURNEYS, DESIGN §7) against a line of words (SITE-DESIGN §13) Med
16 Typeface and colour Inter, Instrument Serif and "marble brown" (PLAN §7-8, DESIGN §3, §5) against Rajdhani and teal Med
17 Names of pages "How we work", "How we match" and "How buying works"; "Learn" and "Journal" Med
18 Prices "A price appears only in a quote" (BRAND) against the sample price shown and a typical price under debate Med
19 Claims window 7 days with no start; 15 days for samples; none in MATCHING Med
20 Driver and origin "Driver details are staff-only" against a name, photo and plate shown; "Oman" against "city only (Sohar)" Med
21 Reviews "Asked of every customer, automatic" against default off Med
22 Role change "At once" against two approvers Med
23 Payroll The preparer "does not release" against HR producing the file and marking it sent Med
24 Currency "Never a rial figure" for a dollar customer against VAT printed in rials on their invoice Med
25 The stones The catalogue lists nine; "Desert Rose", used in every example, is not one of them Med

5. Text overtaken by later decisions

Decision Still says otherwise
The customer keeps their name (CATALOGUE revision 2) WEBSITE §23 and §25; CATALOGUE §4, §5, §12, §13, §16; COMPETITORS; LANDING "Name pages"; EDITORIAL §5 ("trade names are not reliable… and says so"); "also known as" in SITE-DESIGN §5 and in CATALOGUE revision 2 itself
Confidence, not internal working "What we reject at inspection, and why" (EDITORIAL); photographs of rejects; "slabs refused" (COMPETITORS); "slabs inspected" as a public figure
Matching MODULES §12 steps 4-5; SCREENS order stages; FLOWS §5; ROLES §6 "Lot matching… Group" and INVENTORY "lots from several suppliers that go together", which contradict one job, one lot
"WhatsApp" on the bar "The Ask panel" (SITE-MOTION); "Omnibar" on the site (LANDING §2); "one line and an arrow" (SITE-DESIGN §4)
No blocks "Supplier block and sequence numbers" on a lot (MODULES §1); "block labels" (CONTENT); sold by "tonne" (CATALOGUE §7)
Samples charged and credited "Samples sent free" (ACCOUNTS §2)
The site's own look STORE §2 describes app parts (a tick, stage dots)
The repository AGENTS.md still describes the old demo's technology

6. Gaps, by surface

Staff app

Gap Sev.
None of the twelve "processes to be written first" (MODULES §7) is written. No record has its statuses, cancellation, expiry or conflict defined High
Part, phased and short delivery; invoicing per shipment High
Customer collection: proof, invoice and revenue all hang on a driver today High
A showroom sale; payment proof entered by staff; cash or card High
Inspection, sorting and layout have "the least design" of any step and are now the core of the promise High
Returns, cancellation, advance refunds Med
Price lists have no screen and no role that may change them Med
Supplier price is not held for as long as the customer's quote Med
Who decides a customer claim, and up to what amount Med
"Their manager", "operations" and "on duty" are used, but no reporting line or duty roster exists Med
Letters of credit are a checklist with no screens; demurrage has a countdown but no cost Med
Merging two customer companies that both have orders Med
Credit limit exists as a setting with no check anywhere Low
Table, calendar, board and tree are used in the screens but are not among the 96 components Med

Website and store

Gap Sev.
Legal pages are one undrawn line: privacy, site terms, cookies, sample terms, delivery, returns and refunds. Google needs the last two as pages and as data High
Consent: the visit log, "pages read" attached to an enquiry, the stored list, greeting a known visitor. No design, and no provider chosen High
The store takes rials by bank transfer with proof only. A buyer in Dubai cannot reasonably pay High
No protection against spam or abuse on forms, chat or uploads High
Sample checkout edges: transfer never arrives, proof refused, unpaid order expiry, no sample in stock, duties abroad, refund High
No message templates for acknowledgement, confirmation, invoice, tracking, credit lapsing Med
Structured data, feed fields, filtered views, language and currency addresses: decided in words, not specified Med
How a name's address "carries the name" on pages that are complete before any script runs Med
What the language switch does when a page has no Arabic twin; no country or currency choice Med
Budgets for total page weight, script and fonts; a stated accessibility level and statement Med
Not found, search results and "track an order" are listed but undrawn Low

Client portal

Gap Sev.
People: one role each, per company. No site contact, no specifier, no rights per project. A viewer can download papers, so a consultant would see the contractor's prices High
The architect who chose the stone and the contractor who buys are not linked: her samples, her credit and her approval do not follow to his order High
Approving a range or layout without an account High
A late layout approval: no deadline, no holding cost High
A claim, end to end: report, joint look, decision, replacement from spare, credit note, refund High
Change or cancellation after acceptance High
A two-lot order has no customer step to agree where the change falls High
A customer's own people: invite, remove, the last administrator leaving, a lost phone, a recycled number Med
Trader customers: neutral papers and labels, delivery to their buyer, forwarding a range Med
Statements: no ageing, credit notes, overpayment Med
A delay has no message Med
Reorder when the lot and the spare are gone: no screen showing the new lot beside the old range Med

Documents

Gap Sev.
Sea papers: bill of lading handling, insurance certificate, wood treatment and fumigation certificates, verified weight, the stored export declaration High
Certificate of origin: the Chamber's process and the Gulf form; and it may name the factory (section 8) High
Commercial invoice and tax invoice for one sale: two numbers with no stated link High
Order confirmation; the customer's own purchase order; claim report; refund voucher; sample dispatch note; road consignment papers Med
Range approval, layout plan and crate label have no numbering, language or content specification Med
The terms need renumbering now that MATCHING replaced three clauses; cross-references are off Med
"DN" is used for both debit note and delivery note Low

Money

Gap Sev.
Export zero-rating: what evidence is kept, time limits, a customer who collects and exports, the Gulf High
VAT refunds will be routine (5 % paid on local purchases, exports at zero) and no process exists High
When revenue is earned on a back-to-back sale under each delivery term High
The spare: who owns it, its cost, write-down when released High
Pieces refused after the factory has cut them: who pays is not in the purchase terms High
Sample credit: the VAT base, lapsed credit, a rial credit against a dollar order Med
Advances: refund on cancellation, rates across advance and balance Med
Bank statement import: no format, no feed, one line at a time on a phone Med
Open dollar orders if the peg ever moved Med

7. The simulation

Seven scenarios were walked step by step. Fifty breaks were found; the fourteen severe ones are all in sections 3 to 6. What each scenario showed:

Scenario Result
A Dubai architect searches a market name, orders samples, a contractor buys 186 m² of tiles Works at both ends, breaks in the middle: paying for samples from abroad; the architect and contractor are strangers to each other in the system; reserving a lot; one lot falling short; when the balance is due; the claim settled from spare
A walk-in Omani homeowner, Arabic, three slabs, collects Mostly not covered: no showroom sale, nothing drawn in Arabic, no collection, the invoice waits for a driver who does not exist
An Indian trader, a container by sea in dollars The quote and the invoice set work. Missing: bill of lading, fumigation, insurance, letter of credit screens, a delay message, bank charges above the tolerance
A contractor reorders "the same" a year on The name resolves correctly. Nothing shows the new lot beside the old range
One day in each role Owner, sales and driver can work on a phone. The accountant cannot for import, exports and the tax and bank portals. Purchasing cannot print crate labels at the factory
Thirteen failure drills Covered: dispute after fixing, staff leaving, a lost phone, bank-detail fraud, a price list changing. Not covered: the WhatsApp number being restricted (sign-in codes depend on it); no internet at the factory during sorting; a substitution on a back-to-back order, which only the customer would find; a sample refund
The first thirty days A checklist exists but has no order, and several items wait on outsiders: the lawyer's terms, WhatsApp template approval, the first photo shoot, the import files

Where a customer is left without confidence: paying for samples from Dubai; being asked to approve a range someone else chose; "one lot" becoming two; six wrong tiles and nobody able to say where the spare is; a container two weeks late with no word.

Where staff must leave the phone: bank import, spreadsheets and tax filing; the bank's own portal; the Ministry and customs portals; loading opening data; printing labels.

8. Risks to the promise and to privacy

Risk Detail
Origin masking leaks through papers The certificate of origin, the customs declaration, the bill of lading's shipper and the wood-treatment stamp can each name the factory. The packing-list import carries the supplier's own references into the export list
Photographs taken at the factory Location data is stripped for published content only, not for range, layout and packing photographs sent to customers
Open links A quote link and a store order link carry prices or a name, address and phone, with phone confirmation off by default
The verification code Numbers run in sequence; nothing says the code cannot be guessed
Sign-in inside WhatsApp's browser Passkeys often cannot be made there, and most links open there
Promises the business cannot yet back "Shipped from Sohar" when goods go direct from a factory; reply times; "on the day promised"; "nothing outside the range is packed" when a lot was not witnessed; tested values before any report is held; test reports that name the supplier
Data location The server region proposed is Doha, not Oman; several services are abroad. Unanswered since the first plan
Licences An online-selling licence is said to be needed before the store opens; selling samples into the Emirates and Saudi Arabia is not researched

9. Too much for the first release

The owner's rule is "do not over-complicate". Against it:

Area What is there Proposed
People Omanisation plan, discipline clocks, safety, inspection packs A staff list, leave and documents. The rest later
Money About 32 screens: leases, loans, guarantees, income tax working, dividends Invoices, receipts, payments, bank, VAT. Export to the outside accountant for the rest
Shell Kept and live places, put-off limits, hand-over, an admin screen for the Halo A fixed Halo first; arranging later
Interface 96 components, five glass levels, optics in WebAssembly, an own spring solver About 25 components, two glass levels
Controls Weekly digests, access reviews, a helpdesk, 22 groups of settings, a dummy company Roles, limits, an audit trail
Delivery Three tracking levels, a carrier view, own maps, a driver app A job link with stage buttons
Website Compare, lists, personal strips, a page builder, market pages, 66 articles, 14 lead magnets Eleven kinds of page (below)

The smallest release worth having

Website, eleven kinds of page: home; stones; a stone; how we match; how buying works; sample order with its status by link; quote enquiry; thank you; contact and company; the legal set; not found and withdrawn.

App and portal, one stage: sign-in; simple roles; stone records with a price list; enquiry; a quote with the range, sent as a WhatsApp link; acceptance in the portal with the terms recorded; a proforma with a code to check it; payment proof; the order's progress; messages at each stage. No email inbox, no offline, no ledger, no store payments by card, no arranging of the Halo.

Before that, three short trials: the phones (Halo pull, glass, passkeys); the PDF maker with Arabic; one real order followed on paper through section 3.

10. What to do next, in order

  1. The owner answers section 2, at least questions 1 to 4.
  2. Accept or change the order sequence in section 3.
  3. Write the twelve processes from it, each with its statuses, who acts, what is produced, and what can go wrong. Start with quote to order, and order to delivered.
  4. Write the data model from those processes. Nothing can be estimated without it.
  5. Clean the documents against sections 4 and 5, one decision at a time, so every document says the same thing. About two days of careful editing.
  6. Redraw the stages (PLAN §15) around the smallest release in section 9.
  7. Take the legal and tax list (sections 6 and 8) to the lawyer and the tax adviser as one brief.
  8. Then the trials, and only then building.

11. What was fixed while reviewing

Everything else is listed, not changed, because most of it waits on a decision.

12. Four decisions made (12 November 2026)

# Question The owner's answer What it changes
1 Stock in a yard, or direct from the factory? Direct from the factory for now. Holding stock stays possible, set per supplier See below
2 Who builds this? Several AI agents (Claude and Antigravity), across accounts, in a mix See below
3 The accountant's device Left to the plan's recommendation See below
4 The spare Configurable See below

1. Direct from the factory, with stock as an option per supplier

2. Built by several AI agents

The stack stays as the owner set it. Building with many agents across accounts changes what must exist before the first line is written, because agents share no memory and will each fill a gap differently.

Needed Why
One data model and one list of server calls, written first Every agent builds against the same shapes. Today neither exists
The twelve processes written out An agent cannot infer when a balance is due
Clean documents An agent that reads an out-of-date passage will build it. This is why the cleaning matters
One owner per module, and a rule that no two agents edit the same files at once Already the rule in AGENTS.md; it needs a list of modules
Contracts between modules, checked by machine So one agent's change cannot quietly break another's
Tests and checks that run on every change: build, types, tests, screenshots at each size, a rule against forbidden words on public pages The only reviewer that is always present
A human who accepts each piece against the plan Agents report success confidently when wrong
Small pieces, each usable by itself So work can be checked and thrown away cheaply
A decisions log that agents must read and append to So a choice made in one session reaches the next
No secrets in any agent's context; one cloud account named by the owner Already a rule; more accounts make it matter more

This also strengthens the case for the smallest first release (section 9): it is the unit small enough to check.

3. The accountant: recommended and adopted

4. The spare is a setting

Setting Default proposed Can be overridden
How much 5 % of the area, rounded up to whole pieces Per stone, per customer, per order
For how long Six months from delivery Per order
Who pays Included in the price Or charged as a line; or free
Where it sits With the stone: the factory, or our yard Per supplier
When the date nears The customer is told 30 days before, and may buy it, extend it or release it
Switched off Allowed for an order, and then the quote says there is no spare

The quote and the portal always show what applies to that order, in plain words.

13. After the review (12 November 2026)

14. Logistics (12 November 2026)

docs/LOGISTICS.md answers these gaps from sections 6 to 8: collection by the customer; sea papers; road papers; origin masking against papers that name an exporter; the driver's details and privacy; the claims window, which must be no longer than the seven days Oman's law is reported to give for notice to a road carrier. Still open: a showroom sale; everything in its section 17, which waits on a forwarder, a broker, the bank, the insurer and the lawyer.

15. Attacked (12 November 2026)

docs/CRITIQUE.md holds six hostile readings: the screens, movement, behaviour, and a red-team attempt to break the system, with 23 controls and three tests. docs/SETTINGS.md is the one catalogue of settings. Section 3's sequence stands, with two changes: step 4's advance means a matched bank line, and step 14's spare is never sold back.

16. Suppliers (12 November 2026)

docs/SUPPLIERS.md answers these gaps from section 6: price lists and who may change them (standing prices, with end dates); the supplier's price not being held as long as the customer's quote (a request asks for the same 14 days); a new supplier and its bank details; the supplier portal question (not needed). It adds what section 6 did not see: fairness between suppliers, and the June 2026 law on private-sector bribery.

17. The open decisions, settled (12 November 2026)

Section 2's remaining questions (Arabic, "marble", the sample, reply times, the releaser) and those left by the cleaning (links, offline scope, the claims window, the hold) were settled by recommendation at the owner's request, each as a setting: docs/SETTINGS.md section 10. What only the business or an adviser can supply is listed there too, and blocks its feature until entered.