- 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
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
updateddate - Every new page must be added to
index.mdunder 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: unknownand flag it in the brand's_missing-models.mdso 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:
- 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.
- Manufacturer datasheet / PDF spec sheet — equally authoritative for the same fields.
- 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.
- 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:
- Check the dates — newer sources generally supersede older ones
- If genuinely contradictory, note both positions with dates and sources
- Mark the contradiction in frontmatter:
contradictions: [page-name] - Flag for user review in the lint report