WFDASH-WIKI/wiki/SCHEMA.md
David 0c6b660b75 Initial wiki snapshot — Bosch power-tools catalogue (65 products) + WFDASH reconciliation docs
- 4 brand folders scaffolded (bosch, metabo, makita, dewalt, milwaukee, drill-bits, grinding-cutting-discs, paint)
- 65 Bosch product pages created across 20 categories
- 5 products researched with full Bosch specs + SA retail prices
- 1 duplicate resolved (0 601 9N9 000 → GWS 18V-8)
- Source-of-truth hierarchy: manufacturer > distributor > operator
- SCHEMA.md updated with power-tools domain + tag taxonomy
2026-08-09 16:52:31 +00:00

7.8 KiB

title updated
Wiki Schema 2026-08-09

Wiki Schema

Domain

Westcott Fasteners power-tools and consumables catalogue — operator-curated wiki of part numbers, descriptions, and technical specifications for every brand the company quotes on (power tools, drill bits, cutting/grinding discs, paint, etc.). Grows organically as the operator supplies new part lists.

A separate subdirectory (entities/, concepts/, comparisons/) holds the WFDASH supplier-invoice reconciliation workflow docs from the 2026-08-07 seed.

Directory layout

wiki/
├── SCHEMA.md
├── index.md
├── log.md
├── raw/                          # immutable source material
│   ├── articles/                 # operator pastes, web clippings
│   ├── transcripts/              # voice notes, chat threads
│   └── assets/                   # images, diagrams
├── power-tools/                  # PRIMARY DOMAIN — power-tools & consumables catalogue
│   ├── brands/
│   │   ├── bosch/
│   │   │   ├── _brand.md         # brand overview, model-number nomenclature
│   │   │   ├── angle-grinders/   # one product page per model
│   │   │   ├── rotary-hammers/
│   │   │   └── ...
│   │   ├── metabo/
│   │   ├── makita/
│   │   ├── dewalt/
│   │   ├── milwaukee/
│   │   ├── drill-bits/
│   │   ├── grinding-cutting-discs/
│   │   └── paint/
│   ├── categories/               # cross-brand concept pages (e.g. "all 18V cordless systems")
│   ├── consumables/              # blades, bits, discs that span brands
│   └── _research/                # web-research source files (immutable, fetched)
├── entities/                     # WFDASH supplier-invoice workflow (2026-08-07 seed)
├── concepts/                     # WFDASH workflow stages
├── comparisons/                  # WFDASH comparisons
└── queries/                      # WFDASH filed query results

Conventions

  • File names: lowercase, hyphens, no spaces (e.g. gws-700.md, angle-grinders.md)
  • Every wiki page starts with YAML frontmatter (see below)
  • Use [[wikilinks]] to link between pages (minimum 2 outbound links per page)
  • Brand overview page lives at power-tools/brands/<brand>/_brand.md
  • Product pages live under power-tools/brands/<brand>/<category>/<model>.md
  • When updating a page, always bump the updated date
  • Every new page must be added to index.md under the correct section
  • Every action must be appended to log.md
  • Provenance markers: On pages synthesising 3+ sources, append ^[raw/...] at the end of paragraphs whose claims trace to a specific source
  • Working wikis make assumptions explicit. When a Bosch model number is missing from the operator's list, write the page anyway marked model: unknown and flag it in the brand's _missing-models.md so the operator can fill it in next time.

Frontmatter

---
title: Page Title
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: entity | concept | comparison | query | summary
brand: bosch | metabo | makita | dewalt | milwaukee | drill-bits | grinding-cutting-discs | paint
category: angle-grinder | rotary-hammer | impact-drill | impact-wrench | saw | sander | blower | heat-gun | engraver | consumable | ...
tags: [from taxonomy below]
sources: [raw/articles/source-name.md]
model: GWS 700
part_number: "0 601 3A3 0K0"
voltage: 230V | 18V | 12V | cordless
confidence: high | medium | low
contested: true
contradictions: [other-page-slug]
---

Tag Taxonomy

Power-tools domain (primary)

  • Brand: bosch, metabo, makita, dewalt, milwaukee, drill-bits, grinding-cutting-discs, paint
  • Category: angle-grinder, straight-grinder, rotary-hammer, impact-breaker, impact-drill, percussion-drill, drill, impact-wrench, screwdriver, jigsaw, circular-saw, cut-off-saw, reciprocating-saw, sander, bench-grinder, blower, heat-gun, engraver, rivet-gun, spray-gun, soldering-iron
  • Power source: corded-230v, cordless-18v, cordless-12v, cordless-36v, cordless-40v, cordless-54v (flex), pneumatic
  • Status: quoted, ordered, delivered, discontinued, model-unknown
  • Source quality: spec-sheet, manufacturer-page, datasheet, distributor, operator-paste

WFDASH reconciliation domain (legacy, do not mix)

  • Workflow stages: invoice-intake, po-matching, line-matching, sku-backfill, stock-booking, driver-coordination
  • Source types: supplier-invoice, po-snapshot, stock-item, driver-note
  • People/Orgs: supplier, customer, driver, agent
  • States: sent, partial, received, mismatched, paper-variance
  • Trap categories: pack-size, cost-variance, qty-mismatch, format-mismatch, customer-vs-stock-po

Rule: every tag on a page must appear in this taxonomy. Add new tags here FIRST, then use them.

Page Thresholds

  • Create a brand page when the operator supplies a list of 2+ products from a brand
  • Create a product page when a model number appears in the operator's source OR is required to fill a category cover page
  • Create a category page when a brand has 3+ products in the same category; otherwise skip — the brand page holds the category row
  • Update an existing page when a new source confirms/changes a spec
  • DON'T create a page for passing mentions or one-off SKUs without a part number
  • Split a page when it exceeds ~200 lines — break into sub-topics with cross-links

Entity Pages

  • Brand page (brands/<brand>/_brand.md): manufacturer overview, model-number nomenclature, line-card summary, official spec URL pattern, link out to all product pages and any category concept pages that span brands.
  • Product page (brands/<brand>/<category>/<model>.md): one page per model. Holds: description, part number (10-digit Bosch order number), power (W or V), disc/chuck size, RPM, weight, price-from-source, links to spec sheet, links to related products in the same category.

Concept Pages

  • Category page (categories/<category>.md): cross-brand comparison of all products in a category. Useful for "show me every 115 mm angle grinder we sell, across all brands" queries.

Source-of-truth hierarchy

When two sources disagree, the higher-priority source wins. Apply this when patching any product page:

  1. Manufacturer product page (bosch-professional.com, metabo.com, makita.com, etc.) — authoritative for specs, model number, dimensions, weight, RPM, torque, sound, vibration. Always wins over operator recollection.
  2. Manufacturer datasheet / PDF spec sheet — equally authoritative for the same fields.
  3. Distributor product page (toolstation, screwfix, takealot, justtools) — authoritative for retail price in their market. Cross-check with a second distributor before declaring a price stable.
  4. Operator list / paste / quote PDF — authoritative for what the customer asked for and which parts we've actually quoted on. Never authoritative for technical specs — those come from the manufacturer.

Concretely: if Bosch's product page says 710 W and the operator's description says 700 W, the Bosch number wins. Capture the discrepancy in the page's frontmatter with operator_<field>: <their value> and supplier_<field>: <correct value>, plus a one-line power_resolution (or <field>_resolution) explaining the difference. This makes the disagreement machine-queryable and stops future agents from re-litigating it.

Update Policy

When new information conflicts with existing content:

  1. Check the dates — newer sources generally supersede older ones
  2. If genuinely contradictory, note both positions with dates and sources
  3. Mark the contradiction in frontmatter: contradictions: [page-name]
  4. Flag for user review in the lint report