Files
will 25592fa6c2
ci / test (push) Successful in 6m14s
WillTools 2026-09-09 -- clean snapshot of the development repo for review
History-free snapshot of the private development repository at 77a82eb.
Code, docs and the public catalogue only: no plant or job knowledge
layers, no client, job or producer names (tools/scrub.py clean against
the widened term list; a second word-level grep clean). The intro deck is
left out because its slide images cannot be checked for job drawings.
2026-09-09 08:35:15 -05:00

97 lines
3.7 KiB
Plaintext

# local Revit/bridge state
.bridge-sessions.log
# one per port: "the last request on this bridge never came back", written by
# tools/rvt.py so the next call drains the channel before it trusts an answer.
.bridge-timeout-*.json
_ticketqc/
# build output
dist/
build/
*.egg-info/
# python
__pycache__/
*.pyc
*.pyo
.pytest_cache/
# editors / local tool settings
.vscode/
.idea/
.claude/settings.local.json
# scratch
scratch/*.py
!scratch/scratch.py
# _scratch is where the agents work: probe scripts, bridge responses, run logs.
# It is not the same directory as scratch/ above, and the rule there never
# covered it -- 745 untracked files accumulated in it carrying client names,
# job names and absolute user paths, one `git add -A` from the history. Work
# that is meant to be kept gets moved OUT of here into its real home.
_scratch/
# Real exported tickets, kept locally to check against. They carry the job
# name and the client's name in the title block, and scrub.py cannot read a
# PDF -- the gate would pass them straight through. Never commit them.
sample data/
*.pdf
*.log
# client-name denylist, must never be committed
.scrub-terms
# QNA: 约定进仓库,问答内容不进
QNA/*
!QNA/README.md
# The knowledge folder is the OTHER repository's territory. It sits inside this
# working tree for convenience during development and is tracked by KNOWLEDGE,
# never by this one -- that split is the whole reason there are two repos: this
# one can be shown to anybody, that one cannot.
#
# catalogue.yaml is the exception and is deliberately tracked here: it is the
# public layer, published manufacturer data, and it says so in its own header.
knowledge/plant/
knowledge/job/
knowledge/_archive/
# ...and the SYMLINK spellings: on the host machine these three are links into
# the private KNOWLEDGE checkout (git matches a trailing-slash rule against
# directories only, so the link itself would show up untracked -- same lesson
# as knowledge/library below, 2026-09-05).
knowledge/plant
knowledge/job
knowledge/_archive
# knowledge/library/ is the PDF drop and its ledger -- manuals, manufacturer
# catalogues, datasheets, plus the record of what has been mined out of each
# and where every fact landed. Same territory as the three lines above and
# excluded for the same reason: it is KNOWLEDGE's, never this one's.
#
# The PDFs themselves are already caught by `*.pdf`, and that rule exists
# because scrub.py cannot read a PDF -- a title block carrying the job and the
# client goes straight through the gate. The ledger and the extraction notes
# beside it are worse, not better: quoting the source is their whole job, so
# a name in them is certain rather than possible. The FOLDER is what is
# excluded, not the extension, so a note, an index or a scratch transcript
# dropped in there is covered the day it is written and not the day somebody
# remembers to add a rule for it. `scrub.py --private` is what reads it.
# Both spellings on purpose: with the slash git matches only a real directory,
# and on this machine `knowledge/library` is a SYMLINK to the private repo's
# checkout -- the link itself showed up untracked (2026-09-05) and one `git add`
# would have committed a path into the owner's home directory.
knowledge/library/
knowledge/library
# knowledge/MC/ is a second producer's document drop, same territory as
# library/ above and excluded whole-folder for the same reason: the files
# carry the producer's name in their own filenames, which *.pdf alone does
# not cover (there is a spreadsheet in there today).
knowledge/MC/
# machine-local install choices (tools/setup_machine.py); .setup-opts.example is the tracked template
.setup-opts
# CPython virtualenv on the Debian dev box
.venv/
.gitea-issue-handler.lock