Internal preparation workspace · English

Tenderflame Danish

Phase 1 preparation for a reusable distributor package. Local data only: the supplied audit-snapshot examples, one synthetic fixture, and the transferred audit dossier inventories (96 + 243 source rows, two separate source classes — not a live Shopify export). No store, database, model or email is contacted from here.

Current state

Phase 0 foundation

A local preparation workspace. All catalog data shown is a labelled audit snapshot or a synthetic fixture. No store, database or model is contacted from this workspace.

Shopify: Not connectedAdapter mode: mock (offline)8 of 9 Phase 0 capabilities implemented

Implemented capabilities

Status reflects what exists in this repository, not an intention.

  • Versioned typed data contractimplemented

    src/data/contract.ts, schema tfdk.package.v1.

  • Catalog adapter + local snapshot providerimplemented

    Mock mode only; no network call.

  • Source-derived examples seededimplemented

    5 audit examples + 1 synthetic multi-variant fixture. Not the 243 or 96 record sets.

  • Local JSON import/exportimplemented

    Schema check, per-row errors, identity deduplication, preview and explicit apply, manual download.

  • Service knowledge review surfaceimplemented

    Read-only source policies and 6 decision cards vs unset target policies; 2 static drafts.

  • da/en dictionary and glossaryimplemented

    Approval status per locale; unresolved entries visible in admin only.

  • Connection readiness (informational)implemented

    Journey described. No connect action, no secret fields.

  • Local checksimplemented

    Vitest suite for round-trip, dedup, missing SKU, conflicts, variant identity, locale isolation, offline mode.

  • Authenticationplanned

    Not required while data is local demo data. Boundary documented in docs/PROJECT_CONTRACT.md.

Phase 1 readiness

States, not percentages. Nothing here indicates that a data migration has taken place: the catalog still contains only the supplied examples.

  • Phase 1 infrastructureimplemented

    Reconciliation, conflict review, distributor-export adapter, media role mapping, DA/EN knowledge, shared resolver and portable export all exist and are covered by local checks.

  • Source data transferimplemented

    TenderMate source payload imported: 43 files hash-verified (202.6 MB), 96 stored product records, 499 page snapshots, 667 media references, 243 historical rows, 114 service-knowledge records. Stored in source-data/tfdk-source-data.

  • Live Shopify catalogblocked

    distributor_catalog is empty in the source: no variants, prices or stock exist. None are invented.

  • Image binariesblocked

    Zero binaries transferred this round: references only. 565 copies remain in the source runtime; 102 source binaries are missing (99 private objects, 3 public 404s).

  • Factual conflictsblocked

    Rock 90 and Glow Alto dimensions remain unresolved. The imported payload documents the conflict, it does not settle it.

  • Danish native reviewblocked

    Every Danish string is a draft; no native reviewer has approved any of them.

  • Local commercial policyblocked

    Return window, warranty wording, shipping territory and rates, seller identity and return address are unset. NL/DE source terms are historical context only.

  • Shopify connectionplanned

    Deliberately not connected in this phase. No app, no credentials, no store.

Remaining Phase 1 exit criteria

  1. A live Shopify catalog export with variants, prices and stock is transferred; distributor_catalog is empty in the current source payload.
  2. The 565 copied image binaries are transferred and bound to their roles, and the 102 missing binaries are resolved or explicitly written off.
  3. Every raw record carries a real source id; no visibly synthetic id remains.
  4. Every identity link is either linked by source id or decided by a named reviewer; no ambiguous match is left applied.
  5. Rock 90 and Glow Alto dimensions are resolved with a named, dated evidence source and approved by a reviewer.
  6. Every required field per category is present, approved or explicitly not applicable.
  7. Each of the four image roles is either mapped to a single reference or explicitly recorded as missing; no ambiguity remains unreviewed.
  8. A native Danish reviewer has approved the dictionary, glossary and all thirteen service topics.
  9. The distributor has confirmed Danish commercial terms so the target policies can leave the unset state.

Phase 1 capabilities

Implemented infrastructure is separated from what is blocked awaiting authorization, evidence or a decision.

  • Source reconciliation workspaceimplemented

    Raw records, normalized candidates and identity links kept separate; SKU only proposes.

  • Conflict review workflowimplemented

    Alternatives, required evidence, decision with rationale/source/reviewer. Nothing auto-approved.

  • Distributor export adapterimplemented

    tendermate.distributor_export.v1: nested validation, preview, apply, unknown fields preserved.

  • Media role mapping surfaceimplemented

    Four documented roles; missing and ambiguous states preserved; staging cannot validate a missing image.

  • DA/EN service knowledgeimplemented

    9 topics with Danish and English drafts, English rationale; native review pending on all.

  • Shared answer resolverimplemented

    One resolver for every future surface; explicit English fallback for unsupported locales.

  • Portable local exportimplemented

    Manifest with versions, counts, limitations and missing dependencies. No credentials, no customer data.

  • Source data importimplemented

    TenderMate data payload imported and hash-verified: 96 stored records (real Shopify GIDs), 499 page snapshots, 667 media references, 243 historical rows, 114 service records. No live catalog, no image binaries.

  • Conflict resolutionblocked

    Rock 90 and Glow Alto dimensions remain unresolved; evidence is not available in this project.

  • Danish native reviewblocked

    No native reviewer has approved any Danish string.

  • Danish commercial policyblocked

    Return window, warranty wording, shipping, territory, seller identity and return address are unset.

Source provenance

Read-only audit facts from 10 September 2026. They describe the source system; they were not imported into this workspace.

ItemValueCaveat
Historical catalog243 unique TF-SKU rowsImported as source rows. Historical rows are not confirmed active products.
Stored product records96 (herp_product_identity)Imported with real Shopify product GIDs. Source records, not approved canonical facts.
Visual profiles / reference assets87 profiles, 667 reference rowsReferences only: zero image binaries transferred. Not proof that all Shopify data or images are complete.
Primary roles populatedpackshot 53, grey 53, spec 48, mood 48Counts from the imported media manifest; 465 references carry no role key.
Site page snapshots499 imported (about 199 MB of bodies)Kept in the offline repo archive; the app shows text excerpts only, never rendered source HTML.
Distributor catalog tablesemptyBoth distributor_catalog and its translations: no variants, prices or stock exist.
Knowledge base10 articles, 30 templates, 6 decision cards, 68 intents; 0 DANo Danish source content exists.
AI evaluation cases20 (14 NL, 4 EN, 2 DE, 0 DA)Some historical unsafe claims; not current release evidence.
Loaded in this workspace5 source-derived examples + 1 synthetic fixture, plus the imported source indexesThe seeded examples stay samples; the synthetic fixture is excluded from every source total.

Open issues

  • Rock 90 dimensions conflict (40 × 24.5 × 24.5 cm vs 40 × 23.5 × 130 cm). Unresolved.
  • Glow Alto dimensions conflict (130 × 14.5 × 14.5 cm vs 40 × 14.5 × 130 cm). Unresolved.
  • Cycloflame Wall Bundle has no primary SKU and unknown components.
  • Glass Café 18 cm compatibility requires review; not asserted.
  • Rock 90 grey studio image has two file references; ambiguity preserved.
  • No Danish source knowledge base or templates exist; all Danish text is candidate only.
  • Target return address, seller identity, shipping territory/rates and warranty wording are unset.
  • Shopify scopes, API versions and authorization route for a third-party store are unverified.

Phase plan

Phases 1–6 are documented plans. Nothing runs automatically; each phase needs an explicit instruction and must pass its gate.

  1. Phase 0 — Foundationimplemented

    Local preparation workspace, typed data contract, mock adapter, local package I/O, knowledge review.

    Acceptance gate
    Docs persisted, workspace runs offline, import/export round-trips, conflicts surface, Shopify not connected.

  2. Phase 1 — Approved portable source packagein_progress

    Infrastructure built: reconciliation workspace, conflict review workflow, versioned distributor-export adapter, media role mapping, DA/EN service knowledge, shared answer resolver, portable export. The audit dossier is parsed (96 Appendix A rows, 243 Appendix B rows) and the TenderMate source data payload is imported and hash-verified (96 stored product records with real Shopify GIDs, 499 page snapshots, 667 media references, 114 service records). Still absent: a live Shopify catalog with variants/prices/stock, and every image binary.

    Acceptance gate
    Zero unresolved conflicts; every fact approved or explicitly not applicable; named reviewer per approval; a live catalog export and the image binaries transferred.

  3. Phase 2 — Public website on the mock adapterplanned

    Danish-first site: navigation, templates, comparison, compatible parts, deterministic media, search, cart simulation.

    Acceptance gate
    Adapter-only data, DA default with EN alternate, no Dutch, unresolved translations blocked from customer views.

  4. Phase 3 — Internal English service dashboardplanned

    English dashboard, Danish/English drafts from shared approved knowledge, synthetic scenarios first.

    Acceptance gate
    One shared resolver, policy citation per draft, auth boundary in place before real ticket data.

  5. Phase 4 — Distributor self-connectplanned

    Central-source read adapter, target Storefront API, target server-side Admin API; credentials per store.

    Acceptance gate
    Owner-authorized installation, scopes read back and verified, store identity verified, no Admin secret in the browser.

  6. Phase 5 — Full target sync and verificationplanned

    Sync with remapped IDs, real prices/stock/shipping/payment, test checkout, order identity and service tests.

    Acceptance gate
    Idempotent re-sync with zero unintended diffs; verified test order before any sale.

  7. Phase 6 — Explicit user-authorized launchplanned

    Go-live only on written authorization. Marketplaces later.

    Acceptance gate
    Written go-live authorization referencing Phase 5 evidence.