Files
willtools-demo/knowledge/catalogue.yaml.template
T
will 8e6ee31596
ci / test (push) Successful in 6m18s
WillTools 2026-09-09 -- clean snapshot of the development repo for review
History-free snapshot of the private development repository at cbe45c5
(2026-09-09). Code, docs and public catalogue only; no plant or job
knowledge layers, no client or job names (tools/scrub.py clean). The
intro deck is left out of this snapshot because its slide images could
not be checked for job drawings.
2026-09-09 08:32:15 -05:00

103 lines
4.6 KiB
Plaintext

# TEMPLATE ONLY -- not read by anything. Copy this file's SHAPE, never its
# content, into a real knowledge/catalogue.yaml if the owner gives you one.
#
# This is what `knowledge/catalogue.yaml` looks like: the "published" layer,
# meant to hold manufacturer data and trade-standard vocabulary that is the
# same for everyone -- no client, job or plant name belongs in it either.
# This particular distribution ships with NO catalogue at all (see
# tools/make_dist.py), so every value below is a placeholder and every
# section is a skeleton. Do not fill this file in and expect the tools to
# read it -- see knowledge/README.md for how to get the real one.
#
# knowledge._merge_file() treats this file's absence as ordinary: nothing
# crashes without it, but a few things stand down --
#
# * knowledge.load() falls back to knowledge.DEFAULTS for anything this
# file would have overridden -- silent, unremarkable, by design.
# * vibe.ticketpage's master shop-ticket checklist (the `checklist.master`
# key below) is read from THIS file, and is the one thing that does NOT
# degrade quietly if the file is present but broken -- see the comment
# above `CHECKLIST_ITEMS` in lib/vibe/ticketpage.py. With no file at
# all (this distribution's state) it reports a clear, named reason
# instead of a checklist that looks like everything passed.
# ============================================================== face_designations
# The vocabulary a ticket uses for "which face of the piece" -- near/far
# (measured from the viewing direction) vs. top/bottom-in-form (measured
# from the casting bed). Trade abbreviations, not client data.
face_designations:
frames: [] # e.g. [near_far, top_bottom_in_form]
vocabularies: {}
# SAMPLE_VOCAB_ID:
# frame: near_far
# measured_from: 'the direction the view looks'
# tokens:
# - {token: 'N.F.', means: 'near face', side: near}
# - {token: 'F.F.', means: 'far face', side: far}
# ==================================================================== orientation
# How a plant's model expresses which way a piece is turned. Shape only --
# every value a real file carries under here is plant knowledge, never here.
orientation: {}
# ====================================================================== catalogue
# Manufacturer ratings: lifting inserts, rebar stock lengths, and the safety
# factors that came with them from a published source. Every real entry
# carries a `source:` citation (catalogue page, date) because a rating with
# no citation is not verifiable by the next person who reads it.
catalogue:
safety_factors:
tension_fos: null
shear_fos: null
unknown_because: 'no trade-wide factor to publish -- see a real file for why'
inserts: {}
# SAMPLE_INSERT_PART_NUMBER:
# working_load_lb: 0
# shear_load_lb: 0
# ultimate_tension_lb: 0
# min_edge_distance_in: 0
# safety_factors:
# tension_fos: 0.0
# shear_fos: 0.0
# source: '<manufacturer catalog>, <page>, <date> -- <quoted line>'
# basis_fc_psi: 0
# basis_pcf: 0
rebar:
stock_length_ft: null
stock_by_size: {}
stock_exempt_marks: []
# ===================================================================== connectors
# Sandwich-wall wythe-tie products: manufacturer, designation, and every
# published capacity. Same discipline as `catalogue.inserts` -- a `source:`
# per entry, an ultimate kept separate from a working load when the vendor
# never published one.
connectors:
what_it_is: 'the part that crosses a sandwich panel and ties its wythes together'
products: {}
# 'SAMPLE Manufacturer (SAMPLE-DESIGNATION)':
# manufacturer: 'SAMPLE Manufacturer'
# designation: SAMPLE-DESIGNATION
# tie_length_in: 0.0
# ultimate_tensile_pullout_lb: 0
# capacity_lb: null
# capacity_unknown_because: 'vendor publishes no working load or factor'
# ====================================================================== checklist
# The master shop-ticket checklist: what exists, how each row is worded, and
# what grade (A/B/C/D) it carries. Same at every plant -- a plant selects
# and mutes from here, never redefines a row. See `MASTER_KEY` in
# lib/vibe/ticketpage.py for exactly how this is read, and its own comment
# for why a file that is PRESENT but broken refuses loudly rather than
# quietly running a shorter checklist.
checklist:
master: []
# - id: '1.1'
# name: 'Sheet name equals the piece mark'
# grade: 'A'
# owner_codes: ['SAMPLE-CODE']
# not_run_reason: null
# checks: 'check_sample_thing' # a function name in ticketchecks.py