docs(our-gdrive-organizer): add 3 gotchas from Brand in Action audit
- D_intelligence (underscore) — typo, NOT a regex variant. Fix one-off
via mv; do not widen RENAME_RULES (false-positive risk on legit
underscore-separator filenames).
- Externally-generated filenames vs OurDigital convention. Default to
normalize {Client}_/Client_/client_ → CLIENT- inside Active Workspaces;
drop 14-digit timestamps to YYYYMMDD; preserve only when an external
system requires the literal name.
- Reference library naming inconsistency — DO NOT bulk-normalize. Mixed
naming reflects source provenance (Slideshare slugs, vendor whitepapers,
Korean blog captures). Group by topic into subfolders instead
(frameworks/, examples/, ko/) when count exceeds ~15 at root.
Patterns library now at 15 gotchas. Validated by live application during
01_Brand in Action audit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -254,6 +254,93 @@ reference visualization that has real value AND a meaningful home elsewhere.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### `D_intelligence` (underscore) — typo, NOT a regex variant
|
||||||
|
|
||||||
|
**Pattern**: A file uses `D_intelligence` with an underscore separator
|
||||||
|
between `D` and `intelligence` instead of a dot. E.g.,
|
||||||
|
`D_intelligence_홍아현_프로젝트부속계약서_20260501.gdoc`.
|
||||||
|
|
||||||
|
**Why tricky**: It LOOKS like a third regex-escaping variant of the brand
|
||||||
|
prefix (alongside `D.intelligence` with dot and `D intelligence` with
|
||||||
|
space, both of which ARE valid spellings the parent company uses). But
|
||||||
|
underscore is **wrong** — D.intelligence is always written with a dot.
|
||||||
|
The underscore form is purely an accidental typo (probably auto-generated
|
||||||
|
by a system that sanitized dots to underscores).
|
||||||
|
|
||||||
|
**Resolution**:
|
||||||
|
1. Treat as a one-off typo fix: rename `D_intelligence` → `D.intelligence`
|
||||||
|
via `mv`. The rest of the filename keeps its underscores (those are
|
||||||
|
legitimate field separators in the file's own naming scheme).
|
||||||
|
2. **Do NOT add to `RENAME_RULES`.** Adding a `D_intelligence` regex
|
||||||
|
would cause false positives in any filename that uses underscores as
|
||||||
|
field separators between something ending in `D` and something starting
|
||||||
|
with `intelligence` — unlikely but defensively avoid widening the rules.
|
||||||
|
3. Same applies to other one-off accidental variants: fix with `mv`,
|
||||||
|
document the fix here, but don't widen the rules.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Externally-generated filenames vs OurDigital convention
|
||||||
|
|
||||||
|
**Pattern**: Files in an active client workspace whose names come from
|
||||||
|
external systems and don't follow OurDigital convention. E.g.:
|
||||||
|
- `Jamie_Naver_Booking_Products_v1.0.gsheet` (Title_Case_With_Underscores
|
||||||
|
— looks like a Google Sheets name template)
|
||||||
|
- `jam_medical_advertising_review_guide_20251119154552.gslides`
|
||||||
|
(lowercase + 14-digit timestamp — looks like an export from a
|
||||||
|
publishing tool)
|
||||||
|
- `jamie_monthly_sow_standard.docx` (lowercase + underscores — looks
|
||||||
|
like a Word template name)
|
||||||
|
|
||||||
|
**Why tricky**: These names are functional and the user might prefer to
|
||||||
|
preserve them as-is to maintain traceability with the originating system.
|
||||||
|
But they violate the canonical `{ClientPrefix}-{topic}-{date}.{ext}`
|
||||||
|
pattern from `canonical-files.md`, which makes the folder feel
|
||||||
|
inconsistent.
|
||||||
|
|
||||||
|
**Resolution**:
|
||||||
|
- The OurDigital convention wins inside `01_Active Workspaces/{NN_client}/`
|
||||||
|
because the user owns that folder's organization. Normalize:
|
||||||
|
- `Jamie_` → `JAM-`
|
||||||
|
- `jamie_` → `JAM-`
|
||||||
|
- `jam_` → `JAM-`
|
||||||
|
- `_` field separators → `-` (or space inside hyphenated phrases)
|
||||||
|
- Long timestamps `YYYYMMDDhhmmss` → `YYYYMMDD` (drop time portion)
|
||||||
|
- Title_Case_Words → Title Case Words (use spaces inside hyphen-separated phrases)
|
||||||
|
- Default to normalizing unless the user says preserve. The originating
|
||||||
|
system can usually re-export with a new name if needed.
|
||||||
|
- If the file is truly the system's source-of-truth filename (e.g., a
|
||||||
|
webhook expects an exact filename match), keep it and note WHY in a
|
||||||
|
README inside the same folder.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Reference library naming inconsistency (do NOT normalize)
|
||||||
|
|
||||||
|
**Pattern**: A reference folder like `90_Brand Management Reference/`
|
||||||
|
contains 20+ image files imported as a batch from various sources, with
|
||||||
|
mixed naming conventions (Title_Case, lowercase-hyphens, Korean-spaces,
|
||||||
|
auto-generated junk).
|
||||||
|
|
||||||
|
**Why tricky**: It's tempting to normalize all the names for consistency.
|
||||||
|
But the inconsistency reflects the varied **sources** of the references —
|
||||||
|
each filename traces back to its origin (Slideshare slug, vendor
|
||||||
|
whitepaper, screenshot of a textbook page, Korean blog).
|
||||||
|
|
||||||
|
**Resolution**:
|
||||||
|
- **Do not bulk-rename reference filenames** for cosmetic consistency.
|
||||||
|
They have provenance value as-is.
|
||||||
|
- DO fix individual filenames that are functionally broken:
|
||||||
|
- Double extensions (`foo.png--example.png` → `foo-example.png`)
|
||||||
|
- Filesystem-illegal characters
|
||||||
|
- Truncated names that lost the meaning
|
||||||
|
- DO group by topic into subfolders if the count exceeds ~15 files at the
|
||||||
|
root: `frameworks/`, `examples/`, `ko/` (or whatever fits the content).
|
||||||
|
Subfolders provide structure without touching the legitimate filename
|
||||||
|
diversity.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Adding new gotchas
|
## Adding new gotchas
|
||||||
|
|
||||||
When you (Claude) encounter a new ambiguous case during a content-based
|
When you (Claude) encounter a new ambiguous case during a content-based
|
||||||
|
|||||||
Reference in New Issue
Block a user