10 Commits
Author SHA1 Message Date
grabowski 3d9bb9af53 Own catalogue in a second company; models self-hosted on premises
Decisions (Alexander, 26 Oct 2026): a second company, not the plant
company, holds the catalogue; it owns and licenses titles; language
models are self-hosted on premises.

catalogue-intelligence.md reworked: the catalogue company is a customer
of the plant at arm's length (orders through intake and portal, the
plant's price list, standby pressing offered to every customer, no
moved dates, no data either way, metal in the archive on customer
terms; Revenue Code section 71 bis, 200M THB disclosure threshold per
the OECD profile), its own ERPNext site, the run-size rule on the
plant's price instead of its direct cost, its own advisor instance on
hardware it controls, phasing, cost borne by it, risks, open decisions
(shareholders and Poy Records, working capital, standby terms, where its
systems run).

Mirrors: README (planning bullet, project status), roadmap item 28,
digital-factory (tool rule, language-model row in the open-source
table), artist-platform (standby pressing proposal, pre-orders),
production-timeline, revenue-model, plant-assistant (self-hosted on
premises; catalogue data removed; advisor as a separate instance).
2026-10-27 09:38:32 +07:00
grabowski d36a6fdd02 Own catalogue: sales map, demand model and market advisor (plan)
New docs/catalogue-intelligence.md for Alexander's idea of a catalogue
the plant presses for itself. Why (idle Classic hours ~60k to 160k
records a year at 60 % specials on the doc basis; two-week represses
from the metal archive; Thai catalogue sells in Japan, EM Records,
ZudRangMa), scope (Poy Records as seed; customers' data and press dates
protected), data sources with access terms (Bandcamp ship-to fields,
distributor sell-through clauses, opt-in record passport registrations,
Spotify for Artists, Discogs CC0 dumps; Discogs API marketplace and
want data restricted), ERPNext touchpoints (Licence, Channel Sales
Report, Catalogue Recommendation, geocoded addresses, CRM), PDPA rules
for the map, dashboard views on an open-source map stack, a staged
demand model with a stocking rule for run size, a propose-only advisor
on an open-weights model, phasing, cost estimates, risks and open
decisions.

Backlinks: README (planning documents, layout), roadmap item 28,
digital-factory tool rule, artist-platform repress pre-orders,
production-timeline repress, revenue-model ResurRec Japan.
2026-10-27 09:28:51 +07:00
grabowski 5c303dfc61 ERPNext is the only system of record; we build tools on it
Deploy test site / deploy (push) Successful in 46s
User (October 2026): we only build tools and interfaces that interact
with ERPNext; invoices, stock and the rest are kept there, except
telemetry and other machine data.

digital-factory.md: standing decision, decisions 2, 3, 6, 7 and 10
rewritten (ERPNext holds every record of the business and of production,
including artist gates, metal-part genealogy as serial numbers with
parents, and quality inspections; the machine-data store keeps only
cycle and record rows, the hash chain and time series, keyed to ERPNext
names; ERPNext first, then custom fields or document types in cnx_erp,
then a tool, never a second business database). Systems table,
architecture labels, factory application section (modules as a table:
records in ERPNext, what we build, machine data outside; our only tables
are the machine-data ones), ownership table, integration rules 4 and 8,
phasing and estimates (cnx_erp app 2 to 3 person-months; total 3.5 to 6).
artist-platform.md: campaigns are an ERPNext document from launch, pledges
post as advance payment entries; traceability, README, facility security
(archive location on the serial number), production timeline (sets per
mother on the mother's serial number), crane-workshop spares store,
total-investment.

Factory console: KPI row no longer touches the postings card (user
screenshot); ERPNext page, order card, sidenote and ledger say every
record lives in ERPNext and only machine data stays outside; new
postings for artist gates, stamper metrology inspections, stamper set
serial numbers (grown, retired with play count). Checked headless:
Edge dark and light, 1440/1024/390, no overflow or page errors, rows
aligned, pw_fc, pw_wo, pw_feed and pw_erp pass.
2026-10-16 12:14:52 +07:00
grabowski 475623e9f2 Archive the father as well as the mother; how many represses a mother carries
Decided (October 2026): the plant keeps the father and the mother of every
side. production-timeline.md (repress section) records the decision and the
rule of thumb with sources: about 10 stamper sets per mother before it
degrades (Third Man Pressing FAQ, a Nashville plater via WPLN), fewer in
quality-minded sources (5 VinyLab, 6 to 8 Stereo Review 1962); a father
grows about 5 to 10 mothers. So a mother covers roughly ten represses
(10,000 to 20,000 records a side) and a worn one is replaced from the
archived father without a new cut. galvanics.md: 4 archived parts per
title, ~1,200 to 2,400 a year; new open question to all galvanics
candidates (sets per mother, mothers per father, storage).
artist-platform.md repress paragraph.

Demos: make-a-record and artist-order say father and mother are archived;
factory console archives the father on represses too, counts stamper sets
per mother (shown in the genealogy and the customer's metal card), and the
metal archive counts fathers and mothers.
2026-10-16 11:17:13 +07:00
grabowski 5090609df3 Calculators: options from Record Industry's calculator; its prices as a benchmark
Deploy test site / deploy (push) Successful in 45s
Reviewed Record Industry's (Haarlem, NL) public vinyl calculator: a
seven-step wizard with a live itemised cost list priced on its server.
Read its prices for a reference 12" LP at 200 / 300 / 500 / 1,000 copies
and for each option worth copying (checked October 2026).

Both artist demos (make-a-record and artist-order):
- audio arrives as digital files, analog tape (+ tape transfer) or a cut
  lacquer (no blanks, cutting or mastering; mastering choice disabled with
  the reason; cutting and mastering stages skipped in the timeline; the
  passport starts at "Lacquer received")
- labels printed, plain white or plain black (credit line; the label
  artwork drop is disabled for plain labels; the mock-up shows the plain
  label)
- press cleaning before a colour run, on by default, disabled for black
- 7" dinked (large centre hole), 7" only, drawn in the mock-up
- download card and barcode sticker extras
- run-out inscription (A-Z, 0-9, up to 15), scribed along the dead wax in
  the mock-up and named in the passport
- new rates (tape 3,800, cleaning 2,300 per title; plain labels -12 per
  disc; download card 43, barcode 6 per copy) are estimates with Record
  Industry's prices as the basis, each listed in the detailed demo
- make-a-record investor notes: Record Industry's 9 to 11 week quote after
  test-pressing approval against the 7 to 9 week CNX quote, and its 2 %
  reject allowance against 100 % optical inspection

Defaults unchanged (37,836 THB per title, 232 per copy at 100, break-even
41, goal 100, 548 kept).

Docs: artist-platform.md (choices table, benchmark section: what was
taken, what was left out, commercial terms worth deciding);
revenue-model.md (second Western data point: 219 THB a copy at 300
ex-works, per-title and per-copy reading against the assumptions, not a
re-base); production-timeline.md (its published lead times).
2026-10-16 09:42:57 +07:00
grabowski 4fec258f15 After Haarlem: Pheenix CEO follow-up, OMS first contact, SST
- Pheenix Alpha (Robert Gunnarsson, 5 Oct; Simona's reply 9 Oct): offers
  a Teams call, reference clients and a factory visit near Stockholm;
  300+ presses (vendor figure); we call once questions are concrete,
  next Europe trip planned for February 2027. CEO contact and Marsta
  address added.
- OMS (Lou Wullms, 7 Oct): first email contact, company data, contacts
  (Lou Wullms technical, Wilma Peeters accounting/logistics); open: reply
  to confirm, then OMS sends material to calculate from.
- SST Frankfurt (Daniel Krieger, 7 Oct): cut the lacquers for POY003,
  005, 006 and 013; on good terms with ResurRec; offered help. New cutting
  service entry in the supplier map and vendor landscape; corrected the
  briefing, which had SST as DMM (its site lists lacquer and dubplates).
- Roadmap items 5, 6 and 14 and the production timeline launch basis
  updated accordingly.
2026-10-09 06:38:52 +02:00
grabowski 4607a4da58 Plan the artist platform: price calculator and fan-funded pressing
New docs/artist-platform.md: upload master and artwork with automatic
audio, artwork and rights checks; an itemised price calculator for every
customer (per-title vs per-copy lines, price-per-copy curve, lead time
from the production-timeline quote table, versioned price list); and
fan-funded campaigns that press and dropship per fan once the goal is
reached, refund otherwise. Covers goal maths, payments (charge into a
ring-fenced account, CNX as seller of record, legal opinion first; the
Qrates failure as the design rule), repress pre-orders, architecture on
the cnx-factory stack with the public side on a fleet machine, PDPA,
phasing (calculator public early as a run-size probe, campaigns only
after first releases ship), cost and open decisions.

Backlinks from README, process flow, production timeline, revenue model,
digital factory and roadmap items 1 and 20; total investment added-scope
table gains the platform line.
2026-10-02 17:37:32 +02:00
grabowski 1bbef055c4 Remove em dashes where the replacement is unambiguous
The project has a standing style rule against em dashes that was missed
when these docs were written. This removes the 42 occurrences where the
substitution is mechanical and cannot change meaning:

- table cells using an em dash as a placeholder, now a hyphen
- em dashes immediately followed by a conjunction or subordinator
  (but, and, or, so, though, while, which, where, because, since),
  where a comma is simply correct

115 remain. Those join independent clauses, where a comma would create a
splice and a colon often reads wrong, so each needs a judgement call
rather than a pattern. A blanket regex over them was attempted and
reverted: it produced double colons and broken sentences.
2026-08-06 15:31:09 +07:00
grabowski 4deaa2c57c Correct errors found by review; hedge unmarked inferences
A four-agent review audited arithmetic, cross-document consistency,
epistemic honesty and style. It found substantially more than the
manual pass in the previous commit. Errors that changed conclusions,
not decimals:

Arithmetic
- production-timeline: the headline lead times did not reconcile with
  the stage table on the same page. Launch is 22-49 days (was 21-39),
  mature 11.5-22 (was 14-20), repress 6.5-11.5. Including gates,
  launch is 6-17 weeks, not 8-14.
- Consequence: at 17 weeks the launch configuration is at parity with
  EU/US plants, not ahead of them. The page now compares quote to
  quote rather than a stage sum to a quoted lead time, and says so.
- The galvanics turnaround saving is 1.5-5 weeks, not 3-5.
- scale.md Duplex capacity 300-600k/yr did not reproduce from its own
  stated basis; corrected to 175-540k. production-timeline disagreed
  with scale.md on the same fleet; both now agree.
- "300 units is under an hour of pressing" was out by an order of
  magnitude on the semi-auto line: 5-8 hours.
- project-timeline carried two totals for the same quantity. Now
  27-33 months throughout, with the Gantt's two ordering breaks fixed.
- scale.md: 300 kWp covers 28-45% of consumption, not 20-35%; roof PV
  stated as both 150-200 and 247 kWp for the same roof; parking canopy
  dimensions and PV disagreed with the RFQ.
- RFQ: fire tank stated 200 m3 where both its geometry (254 m3) and
  its own mass (250 t) say 250. Drainage now gives total sealed area
  66%, not the 46% paving figure, since that is what attenuation needs.
- Galvanics payback used only the top of the saving range: 1-5 years,
  not 1-4.

Inference marked as inference
- The 22,000 THB stamper figure is an invoice RESIDUAL. It carries
  lacquer cutting, test pressings, setup and margin, so it is an upper
  bound on the stamper component, not a measurement. Everything derived
  from it now says so, and a line-itemised invoice is the top question.
- The saving was also benchmarked against the wrong supplier: CNX buys
  from Stamper Discs, not a Thai reseller. Stated as 175-665 USD until
  that quote exists.
- The stamper-bottleneck hypothesis now names its alternatives. Jacket
  print runs would produce the same symptom and would constrain CNX
  equally, which would remove the competitive read entirely.
- Competitor capacity relabelled as nameplate times an assumed OEE,
  with the assumed shift pattern stated; all rows on one 300-day basis.
- The fixed/variable decomposition keeps the shape and drops the point
  estimates: the solve point inside the flat 1000-3000 tier is
  arbitrary and moves the fixed component by nearly half.
- "Nobody in Thailand plates" reduced to "we have found no evidence",
  with a desk check named as the action.
- Cut the USD 450-700k valuation of a competitor's presses entirely.
  It extrapolated a semi-auto quote onto a different machine, ignored
  the used market, and supported no decision.
- The collaboration payback divided capex by revenue where the same
  page uses contribution elsewhere: 5-10 years, not 1-3.

Missing caveats added
- No financing is committed or modelled anywhere in this repo;
  project-timeline previously asserted money was not a constraint.
- Leasing cannot pull the launch forward on its own, since the press
  chain governs and construction has float against it.
- The whole competitive analysis is one buyer, one plant, one
  afternoon, and the primary evidence is not archived in the repo.
- ResurRec is a competitor and may decline to buy from a new entrant.
2026-08-06 12:35:37 +07:00
grabowski 20c8d283d5 Rebase costs on USD/THB; add timelines and first market data
Currency
- Base currency moves from EUR to USD and THB throughout. Rates at
  5 Aug 2026: 1 USD = 33 THB, 1 EUR = 1.155 USD, 1 GBP = 1.35 USD.
  EUR/THB lands at ~38, so existing THB research needed no change.
- Vendor quotes keep their original currency with a USD/THB equivalent
  alongside, so they stay checkable against the source PDFs.
- Full vision ~4.7-8.9M USD; phased entry ~1.7-2.9M USD.

New documents
- production-timeline.md: order turnaround stage by stage. Launch
  8-14 weeks, mature 5-10, repress 2-3. Quantifies the in-house
  galvanics turnaround claim the repo had asserted without a number,
  and flags artwork as an unmodelled fourth approval gate.
- project-timeline.md: calendar to first paying release, ~Q4 2028.
  Critical path is BOI certificate to press order to build to
  commissioning. Two findings: Newbilt build time is absent from the
  repo yet carries ~40% of the schedule, and the BOI rule may be
  over-serialised since duty exemption attaches at importation rather
  than at contract signature.

First market data (ResurRec, Bangkok)
- Invoice-derived prices, a factory tour, and a confirmed fleet of one
  Newbilt Classic 12" automatic plus one semi-automatic.
- Price ladder recorded at 300/500/1000-3000/3000+ units. Decomposes
  to roughly 34-50k THB fixed per title and 535-780 THB variable per
  unit, which is 4-7x the price this model assumes.
- The incumbent presses 230-350k records/yr but buys every stamper as
  an import. That single constraint plausibly explains their 150-unit
  floor, their flat discount ladder and their large-run lead time, and
  it is what an in-house galvanics line attacks. Logged as an open
  question on whether galvanics should move from phase 5 to phase 1.
- Inferences are marked as inferences; the whole set is one buyer and
  one plant, and the model is deliberately left unrebased until a
  second data point exists.

Corrections
- Gross margin arithmetic did not follow from its own inputs. Restated
  as ~1.95 USD at the midpoint with the 0.75-3.15 spread shown; the
  previous "40 to 55%" was not supported.
- Direct cost low total 1.50 to 1.45 USD; contingency THB high 40M
  to 38M.
- README indexes the construction RFQ, which was missing.
2026-08-06 12:22:40 +07:00