feat(our-gdrive-organizer): add new skill at slot 82, rename old 82 → 92
New Python CLI + dual SKILL.md (Code + Desktop) for organizing Google Drive folders under OurDigital conventions: - Refresh root README index (preserves manual Topics/Notes between AUTO-STRUCTURE markers) - Ensure per-subfolder README.md meta files - Propose filename + folder renames (D.intelligence → OurDigital with SEO-context caveat documented in patterns/gotchas.md) - Propose moves for cluttered files (screenshots, temp downloads) - Sensitive-folder skip list (04_Case Studies, 99_Project Archive, *Archive*, 진단*) - shared/patterns/ gotcha library: canonical-files, canonical-folders, categorization-rules, 12 known gotchas — grows over time as the system encounters new edge cases Slash command: /organize. CLI: ~/.local/bin/our-gdrive-organize. 82-tui-design-template renumbered to 92 (no content change) to free slot 82. AGENTS.md and CLAUDE.md updated for both moves. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
153
custom-skills/82-our-gdrive-organizer/shared/conventions.md
Normal file
153
custom-skills/82-our-gdrive-organizer/shared/conventions.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# OurDigital Drive Folder Conventions
|
||||
|
||||
Canonical reference for naming and organization patterns enforced by
|
||||
`our-gdrive-organizer`. The script's rules live in `code/organizer.py` —
|
||||
keep this document and that code in sync.
|
||||
|
||||
For the **gotcha library** (canonical examples + edge cases consulted
|
||||
during interactive content-based reorganization), see `patterns/`:
|
||||
- `patterns/canonical-files.md`
|
||||
- `patterns/canonical-folders.md`
|
||||
- `patterns/categorization-rules.md`
|
||||
- `patterns/gotchas.md`
|
||||
|
||||
The brand prefix rules (`D.intelligence …` → `OurDigital …`) now apply to
|
||||
folder names too, at depth 2+. Top-level folders (e.g., `00_Brand Management/`)
|
||||
are never auto-renamed.
|
||||
|
||||
## Folder naming
|
||||
|
||||
### 2nd-level Drive folders (top-level practice areas)
|
||||
|
||||
`NN_descriptive name`, where NN is a 2-digit numeric prefix indicating the
|
||||
"sort bucket":
|
||||
|
||||
| Range | Meaning |
|
||||
|-------|---------|
|
||||
| 00–09 | Brand / core / cross-cutting |
|
||||
| 10–19 | Product or specialty practice |
|
||||
| 20–29 | Data / integrations |
|
||||
| 90–99 | Archive |
|
||||
|
||||
Examples observed: `00_OurDigital`, `01_Brand in Action`, `02_SEO in Action`,
|
||||
`10_OurSEO Agent`, `20_DataForSEO`, `99_Project Archive`.
|
||||
|
||||
### 3rd-level subfolders
|
||||
|
||||
`NN_descriptive name` again, scoped to the parent. Maturity ordering:
|
||||
|
||||
| Range | Meaning |
|
||||
|-------|---------|
|
||||
| 00–05 | Frameworks / always-on assets |
|
||||
| 10–13 | Productized tooling / specialty modules |
|
||||
| 20 | Data |
|
||||
| 90+ | Archive within this practice |
|
||||
|
||||
### Client / project subfolders
|
||||
|
||||
Inside `01_Active Workspaces/` or `99_Project Archive/`:
|
||||
|
||||
`NN_{client name}` — e.g., `00_Jamie Clinic`, `04_오현이혼상속센터`,
|
||||
`05_1가다`. NN is assigned in chronological / engagement order.
|
||||
|
||||
### Reserved / system subfolders
|
||||
|
||||
- `screenshots/` — auto-created by the organizer when moving stray screenshot
|
||||
files out of a parent folder root.
|
||||
- `_unsorted/` — auto-created by the organizer for incomplete downloads
|
||||
(`.crdownload`, `.tmp`, `.partial`).
|
||||
|
||||
## File naming
|
||||
|
||||
### Templates and quotes (in `05_Working Template/`)
|
||||
|
||||
`OurDigital-{Service}-OOO {date}.{ext}` or
|
||||
`OurDigital-{Service}-OOOOOO {modifier}.{ext}`.
|
||||
|
||||
`OOO` and `OOOOOO` are the canonical placeholder strings for "client name
|
||||
goes here" — chosen to be visually obvious and easy to grep for. Use
|
||||
whichever makes more visual sense in the filename.
|
||||
|
||||
Examples:
|
||||
- `OurDigital-SEO Coaching-OOO 견적-20240612.gsheet`
|
||||
- `OurDigital-SEO Treatment-OOO 호텔 견적-20240903.gsheet`
|
||||
- `OurDigital-OOO 호텔 SEO Basic 패키지-20250416.gsheet`
|
||||
- `OurDigital-Data Access & Management Agreement - 2026.gsheet`
|
||||
|
||||
### Brand prefix — parent company / SEO child brand
|
||||
|
||||
D.intelligence is the **parent company**; OurDigital is its **SEO-specialty
|
||||
child brand**. The rebrand-to-OurDigital rule only applies when the asset
|
||||
is SEO-related.
|
||||
|
||||
Rules (filesystem rename only — does not touch cell/body content):
|
||||
|
||||
- `D.intelligence Lab-` → `OurDigital-`
|
||||
- `D.intelligence` (anywhere) → `OurDigital`
|
||||
- `D intelligence` (no-dot variant) → `OurDigital`
|
||||
|
||||
The organizer applies these to both files and folders at depth 2+. Top-level
|
||||
folders (`NN_…`) are never auto-renamed.
|
||||
|
||||
**Important**: The script doesn't enforce the SEO-context caveat. When you
|
||||
point the organizer at the whole Drive Stream or a non-SEO folder, it will
|
||||
rename ALL D.intelligence references — which is wrong outside SEO context.
|
||||
Only run the organizer on SEO folders (`02_SEO in Action/`,
|
||||
`00_OurDigital/04_SEO/`, etc.). For non-SEO D.intelligence assets, do not
|
||||
rename — they belong to the parent company.
|
||||
|
||||
See `patterns/gotchas.md` "D.intelligence vs OurDigital" for full guidance.
|
||||
|
||||
### Archive client files
|
||||
|
||||
Files inside `99_Project Archive/{client}/` should KEEP their original
|
||||
filenames including real client names. The script skips these folders for
|
||||
rename/move operations.
|
||||
|
||||
### Date stamps
|
||||
|
||||
Use `YYYYMMDD` (no separator) when embedding a date in a filename:
|
||||
`OurDigital-Data Access & Management Agreement - 2026.gsheet`
|
||||
`OurDigital-SEO Coaching-OOO 견적-20240612.gsheet`
|
||||
|
||||
When a date range is needed: `YYYYMMDD-YYYYMMDD`.
|
||||
|
||||
### Extensions and stub files
|
||||
|
||||
Google Drive Apps formats appear as 180-byte JSON stubs on the local
|
||||
filesystem with these extensions:
|
||||
|
||||
| Drive type | Extension |
|
||||
|-----------|-----------|
|
||||
| Docs | `.gdoc` |
|
||||
| Sheets | `.gsheet` |
|
||||
| Slides | `.gslides`|
|
||||
| Forms | `.gform` |
|
||||
|
||||
Renaming the stub on the filesystem only changes the local filename — the
|
||||
backing Google document, its Doc ID, sharing links, and revision history are
|
||||
untouched. Safe to rename. Cell-level / body-level changes still require
|
||||
opening the file in the corresponding Google app.
|
||||
|
||||
## What the organizer does NOT enforce
|
||||
|
||||
- Cell content inside `.gsheet`, body content inside `.gdoc`, slide content
|
||||
inside `.gslides`, or any binary file (`.pdf`, `.pptx`, `.xlsx`). Those need
|
||||
manual editing in the source app. Track them with a `TODO.md` if needed
|
||||
(see `02_SEO in Action/98_Training/TODO.md` for an example pattern).
|
||||
- Folder maturity ordering — the NN prefix system is a convention, but the
|
||||
script doesn't reorder or renumber folders.
|
||||
- Per-folder `README.md` content beyond the AUTO-STRUCTURE block — manual
|
||||
Topics / Notes sections are preserved.
|
||||
|
||||
## Sensitive folders (never auto-modified)
|
||||
|
||||
Internal regex list (`SENSITIVE_SUBFOLDER_PATTERNS` in `organizer.py`):
|
||||
|
||||
- `^04_Case Studies$`
|
||||
- `^99_Project Archive$`
|
||||
- `.*Archive$` (case-insensitive)
|
||||
- `^진단.*$`
|
||||
|
||||
These folders are still indexed (counts appear in the README structure),
|
||||
but no files inside them are renamed or moved.
|
||||
Reference in New Issue
Block a user