D149
Miles + Specification Owner working session, 10 Jul 2026 (queued from the TWAL wiring day)adoptedStandards10 Jul 2026
Filenaming and folder standard, second edition - lowercase, underscore-only, three digits, the 1_ era
Supersedes D031's naming and folder sections; applies to the CURRENT ORBIT (TWAL Development set) and everything new - legacy files keep their names until naturally re-versioned, no mass rename ever. Rules: (1) FOLDERS: a cut is '[project] development N_NNN\' with the .blend and start_here at root, scripts in scripts\, plus per-need languages\ / spec\ / prototype\ / generations\ / reports\; the zip name equals the folder name. (2) VERSIONED FILENAMES for anything needing side-by-side versions or rollback: scripts, specs, language files, prototypes, connectors, test runners. (3) FIXED NAMES for contracts (imported/consumed by exact name, e.g. gaad_palette.py, lineage.json), current-state files (current_actions, handover) and records (the bundle track versions the set) - version lives inside the file. (4) Generated reports in caps with owner prefix (TWAL_CONNECTOR_REPORT.txt). (5) All-lowercase filenames - explicitly including the gaad prefix: new-era documents are gaad_twal_language_v1_001.md, not GAAD_...; D032 (GAAD always capitalised) governs prose, labels and output, never filenames. (6) Characters: a-z, 0-9, underscore only; the single dot belongs to the extension; dates as 2026_07_10; versions ALWAYS underscore form, dotted versions permitted only inside headers and prose; the version is ALWAYS the LAST element of the name, immediately before the extension (gaad_twal_language_v1_001.md, gaad_language_connector_twal_v1_001.md). (8) NO FILLER WORDS: a name never contains a word that adds no meaning - 'file' above all (everything is a file); gaad_twal_language_v1_001.md, never ..._language_file_... (7) Three-digit zero-padded versions, and THE 1_ ERA: files renamed or created under this standard start at v1_001 - 1_ sorts after every legacy 0_ version (promotion, not restart, honouring provenance) and marks the naming era on sight. (9) DATES in filenames are ISO 8601 basic form: 20260710 - unambiguous, sorts, no separators. (10) LENGTH: names aim for 30 characters or fewer (Miles: keep things tight); if a name wants to encode more, the metadata belongs in a record, not the name - names identify, records describe. (11) The convention is DOCUMENTED WHERE THE FILES LIVE: a short naming section in START_HERE and SKILL.md pointing at this decision. (12) NOUN ORDER: owner before tool - gaad_twal_connector_v1_001, never gaad_connector_twal or gaad_language_connector_twal; names family-sort by language and read in speaking order. (13) LANGUAGE TRIOS are named for the language itself: gaad_twal_v1_001.md/.json/.html - the file IS the language on paper; 'language', 'contract' and 'definition' rejected as fillers (Miles, final). STANDARD DECLARED FINAL AND MANDATORY (Miles, 10 Jul 2026): every file the Specification Owner generates from this point follows D149 without exception; HANDOVER carries it as a standing rule.
Rationale & options
Options considered- P
- l
- a
- t
- f
- o
- r
- m
- -
- w
- i
- d
- e
-
- r
- e
- n
- a
- m
- e
-
- (
- r
- e
- j
- e
- c
- t
- e
- d
- :
-
- b
- r
- e
- a
- k
- s
-
- l
- i
- n
- k
- s
-
- a
- n
- d
-
- p
- r
- o
- v
- e
- n
- a
- n
- c
- e
- )
- ;
-
- k
- e
- e
- p
-
- t
- h
- e
-
- z
- o
- o
-
- d
- o
- c
- u
- m
- e
- n
- t
- e
- d
-
- (
- r
- e
- j
- e
- c
- t
- e
- d
- :
-
- d
- e
- f
- e
- c
- t
- s
-
- r
- e
- m
- a
- i
- n
- )
- ;
-
- d
- o
- t
- t
- e
- d
-
- v
- e
- r
- s
- i
- o
- n
- s
-
- i
- n
-
- f
- i
- l
- e
- n
- a
- m
- e
- s
-
- (
- r
- e
- j
- e
- c
- t
- e
- d
- :
-
- M
- i
- l
- e
- s
-
- -
-
- n
- o
-
- d
- o
- t
- s
-
- o
- r
-
- h
- y
- p
- h
- e
- n
- s
-
- i
- n
-
- n
- a
- m
- e
- s
- )
- ;
-
- c
- a
- p
- i
- t
- a
- l
- i
- s
- e
- d
-
- n
- a
- m
- e
- s
-
- (
- r
- e
- j
- e
- c
- t
- e
- d
- :
-
- c
- a
- s
- e
- -
- s
- e
- n
- s
- i
- t
- i
- v
- i
- t
- y
-
- r
- i
- s
- k
- ,
-
- n
- o
-
- b
- e
- n
- e
- f
- i
- t
- )
- .
Rationale: Seven version schemes were in live use, with two real defects: lexical sort breaks on unpadded versions (v0_9 vs v0_18), and the same artefact spelt two ways (connector 0.6 in-header vs v0_6 on disk) taxes every cross-reference. Lowercase kills the Linux case-sensitivity 404 class on the website. Underscore-only keeps names shell-, URL- and pipeline-safe. The contract/versioned split states what the platform already practises (fixed palette, versioned generator). Orbit scoping avoids breaking published links and recorded provenance. Second edition checked against industry and research-data-management standards (10 Jul 2026): snake_case all-lowercase is the established best practice in data engineering and the Python ecosystem; version-as-last-element, leading zeros for sort order, ISO 8601 dates, concise names, and documenting the convention beside the files are all standard guidance (UBC RDM, Harvard HMS, Stanford Libraries, PEP 8 norms). D149 adopts the standard rather than inventing one; the only local strictures are no-hyphens (consistency over kebab-case) and the 30-character tightness.