appydave-tools 0.21.2 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/bin/dam +137 -0
  4. data/docs/README.md +187 -90
  5. data/docs/architecture/dam/dam-cli-enhancements.md +642 -0
  6. data/docs/architecture/dam/dam-cli-implementation-guide.md +1041 -0
  7. data/docs/architecture/dam/dam-data-model.md +466 -0
  8. data/docs/architecture/dam/dam-visualization-requirements.md +641 -0
  9. data/docs/architecture/dam/implementation-roadmap.md +328 -0
  10. data/docs/architecture/dam/jan-collaboration-guide.md +309 -0
  11. data/lib/appydave/tools/dam/s3_operations.rb +57 -5
  12. data/lib/appydave/tools/dam/s3_scanner.rb +139 -0
  13. data/lib/appydave/tools/version.rb +1 -1
  14. data/lib/appydave/tools.rb +1 -0
  15. data/package.json +1 -1
  16. metadata +37 -32
  17. data/docs/development/CODEX-recommendations.md +0 -258
  18. data/docs/development/README.md +0 -100
  19. /data/docs/{development/pattern-comparison.md → architecture/cli/cli-pattern-comparison.md} +0 -0
  20. /data/docs/{development/cli-architecture-patterns.md → architecture/cli/cli-patterns.md} +0 -0
  21. /data/docs/{project-brand-systems-analysis.md → architecture/configuration/configuration-systems.md} +0 -0
  22. /data/docs/{dam → architecture/dam}/dam-vision.md +0 -0
  23. /data/docs/{dam/prd-client-sharing.md → architecture/dam/design-decisions/002-client-sharing.md} +0 -0
  24. /data/docs/{dam/prd-git-integration.md → architecture/dam/design-decisions/003-git-integration.md} +0 -0
  25. /data/docs/{prd-unified-brands-configuration.md → architecture/design-decisions/001-unified-brands-config.md} +0 -0
  26. /data/docs/{dam/session-summary-2025-11-09.md → architecture/design-decisions/session-2025-11-09.md} +0 -0
  27. /data/docs/{configuration/README.md → guides/configuration-setup.md} +0 -0
  28. /data/docs/{dam → guides/platforms}/windows/README.md +0 -0
  29. /data/docs/{dam → guides/platforms}/windows/dam-testing-plan-windows-powershell.md +0 -0
  30. /data/docs/{dam → guides/platforms}/windows/installation.md +0 -0
  31. /data/docs/{tools → guides/tools}/bank-reconciliation.md +0 -0
  32. /data/docs/{tools → guides/tools}/cli-actions.md +0 -0
  33. /data/docs/{tools → guides/tools}/configuration.md +0 -0
  34. /data/docs/{dam → guides/tools/dam}/dam-testing-plan.md +0 -0
  35. /data/docs/{dam/usage.md → guides/tools/dam/dam-usage.md} +0 -0
  36. /data/docs/{tools → guides/tools}/gpt-context.md +0 -0
  37. /data/docs/{tools → guides/tools}/index.md +0 -0
  38. /data/docs/{tools → guides/tools}/move-images.md +0 -0
  39. /data/docs/{tools → guides/tools}/name-manager.md +0 -0
  40. /data/docs/{tools → guides/tools}/prompt-tools.md +0 -0
  41. /data/docs/{tools → guides/tools}/subtitle-processor.md +0 -0
  42. /data/docs/{tools → guides/tools}/youtube-automation.md +0 -0
  43. /data/docs/{tools → guides/tools}/youtube-manager.md +0 -0
  44. /data/docs/{configuration → templates}/.env.example +0 -0
  45. /data/docs/{configuration → templates}/channels.example.json +0 -0
  46. /data/docs/{configuration → templates}/settings.example.json +0 -0
@@ -0,0 +1,328 @@
1
+ # DAM Implementation Roadmap
2
+
3
+ **Digital Asset Management Visualization System**
4
+
5
+ This roadmap provides a comprehensive guide for implementing the DAM visualization dashboard, organizing all documentation, epics, and tasks into a clear development path.
6
+
7
+ ---
8
+
9
+ ## 📚 Documentation Overview
10
+
11
+ All DAM-related documentation has been organized into a cohesive structure. Here's what each document covers:
12
+
13
+ ### Core Architecture Documents
14
+
15
+ | Document | Purpose | Key Content |
16
+ |----------|---------|-------------|
17
+ | **[dam-vision.md](dam-vision.md)** | Strategic vision and roadmap | Long-term goals, future enhancements, product direction |
18
+ | **[dam-data-model.md](dam-data-model.md)** | Complete data model schema | Entities, relationships, data sources, state inference rules |
19
+ | **[dam-visualization-requirements.md](dam-visualization-requirements.md)** | Product requirements for dashboard | User personas, use cases, UI design, technology stack |
20
+ | **[dam-cli-enhancements.md](dam-cli-enhancements.md)** | CLI tool changes needed | New commands, naming consolidation, implementation phases |
21
+ | **[jan-collaboration-guide.md](jan-collaboration-guide.md)** | Team collaboration workflow | Jan's setup guide, S3 workflows, command reference |
22
+
23
+ ### Design Decisions
24
+
25
+ | Document | Status | Topic |
26
+ |----------|--------|-------|
27
+ | **[design-decisions/002-client-sharing.md](design-decisions/002-client-sharing.md)** | 🔄 IN PROGRESS | Client access to DAM dashboard (Mary, Vasilios, Ronnie) |
28
+ | **[design-decisions/003-git-integration.md](design-decisions/003-git-integration.md)** | 📋 PLANNED | Git-based manifest distribution strategy |
29
+
30
+ ### Related Documentation (Other Systems)
31
+
32
+ | Document | Location | Topic |
33
+ |----------|----------|-------|
34
+ | **Configuration Systems** | `../configuration/configuration-systems.md` | How brands/channels/settings relate |
35
+ | **CLI Patterns** | `../cli/cli-patterns.md` | CLI architecture patterns |
36
+ | **CLI Pattern Comparison** | `../cli/cli-pattern-comparison.md` | Visual pattern guide |
37
+ | **Design Decision 001** | `../design-decisions/001-unified-brands-config.md` | Unified brands configuration (completed) |
38
+
39
+ ---
40
+
41
+ ## 🎯 Development Epics
42
+
43
+ The implementation is organized into **3 main epics** that can be developed in parallel or sequentially:
44
+
45
+ ### Epic 1: CLI Data Infrastructure ⚙️
46
+
47
+ **Goal:** Provide complete data foundation for dashboard via manifest generation
48
+
49
+ **Status:** 🔄 PARTIALLY IMPLEMENTED (needs enhancements)
50
+
51
+ **Key Tasks:**
52
+
53
+ 1. **Naming Consolidation** (dam-cli-enhancements.md - Phase 1)
54
+ - [ ] Rename executables to use dash naming (`ad-dam`, `ad-config`, etc.)
55
+ - [ ] Update bin/ directory structure
56
+ - [ ] Create symlinks for old names with deprecation warnings
57
+ - [ ] Update documentation references
58
+
59
+ 2. **Brand-Level S3 Scan** (dam-cli-enhancements.md - Phase 2)
60
+ - [ ] Implement `ad-dam s3-scan <brand>` command
61
+ - [ ] Query AWS S3 bucket for actual file listings
62
+ - [ ] Update brand manifest with S3 file count, sizes, timestamps
63
+ - [ ] Add `storage.s3.file_count`, `storage.s3.total_bytes`, `storage.s3.last_modified`
64
+ - [ ] Implement `ad-dam s3-scan all` for bulk scanning
65
+
66
+ 3. **Project-Level Manifests** (dam-cli-enhancements.md - Phase 3)
67
+ - [ ] Implement `ad-dam project-manifest <brand> <project>` command
68
+ - [ ] Generate `.project-manifest.json` with tree structure
69
+ - [ ] Include subdirectory breakdown (e.g., `recordings/recordings-bmad-v6/`)
70
+ - [ ] Calculate file counts and sizes per directory
71
+ - [ ] Add to .gitignore (transient file)
72
+
73
+ 4. **Bulk Operations** (dam-cli-enhancements.md - Phase 4)
74
+ - [ ] Implement `ad-dam manifest all` (all brands)
75
+ - [ ] Implement `ad-dam refresh <brand>` (manifest + s3-scan)
76
+ - [ ] Implement `ad-dam refresh all` (complete rebuild)
77
+ - [ ] Add progress indicators for long operations
78
+
79
+ 5. **Enhanced Manifest Output** (dam-cli-enhancements.md - Phase 5)
80
+ - [ ] Add transcript detection to brand manifests
81
+ - [ ] Add project type confidence scores
82
+ - [ ] Add brand color configuration support
83
+ - [ ] Include last_updated timestamps
84
+
85
+ **Reference Documents:**
86
+ - [dam-cli-enhancements.md](dam-cli-enhancements.md) - Complete CLI specification
87
+ - [dam-data-model.md](dam-data-model.md) - Manifest schema and entity definitions
88
+
89
+ **Success Criteria:**
90
+ - ✅ All 6 brands have complete manifests (local + S3 + SSD data)
91
+ - ✅ Project-level manifests can be generated on-demand
92
+ - ✅ Naming is consistent across all CLI tools
93
+ - ✅ Jan can run `ad-dam manifest all` to get complete view
94
+
95
+ ---
96
+
97
+ ### Epic 2: Astro Dashboard - Brand Overview 🌐
98
+
99
+ **Goal:** Create main dashboard showing all brands and high-level project status
100
+
101
+ **Status:** 📋 NOT STARTED (design complete, ready to implement)
102
+
103
+ **Key Tasks:**
104
+
105
+ 1. **Astro Project Setup**
106
+ - [ ] Create new Astro project
107
+ - [ ] Configure TypeScript
108
+ - [ ] Set up Tailwind CSS (dyslexia-friendly theme)
109
+ - [ ] Configure build for Cloudflare Pages deployment
110
+
111
+ 2. **Data Loading**
112
+ - [ ] Create data loader for brand manifests
113
+ - [ ] Read manifests from `video-projects/{brand}/projects.json`
114
+ - [ ] Aggregate brand-level statistics (project counts, disk usage)
115
+ - [ ] Handle missing/stale manifests gracefully
116
+
117
+ 3. **Brand Grid View**
118
+ - [ ] Create brand card component (soft colors, large text)
119
+ - [ ] Display brand name, project count, disk usage
120
+ - [ ] Show team members (avatars/initials)
121
+ - [ ] Color-code storage status (green=synced, yellow=local-only, red=issues)
122
+ - [ ] Add brand color configuration support
123
+
124
+ 4. **Project Summary Table**
125
+ - [ ] Sortable/filterable table of all projects
126
+ - [ ] Columns: ID, Type, Local, S3, SSD, Disk Usage
127
+ - [ ] Pattern matching filter (e.g., `b6*` for b60-b69)
128
+ - [ ] Click to navigate to project detail view
129
+
130
+ 5. **Clipboard Actions**
131
+ - [ ] Add "Copy Command" buttons (MVP)
132
+ - [ ] Commands: `ad-dam list <brand>`, `ad-dam manifest <brand>`, `ad-dam refresh <brand>`
133
+ - [ ] Toast notification on copy
134
+
135
+ 6. **Responsive Design**
136
+ - [ ] Desktop layout (grid + table)
137
+ - [ ] Mobile layout (stacked cards)
138
+ - [ ] Tablet layout (2-column grid)
139
+
140
+ **Reference Documents:**
141
+ - [dam-visualization-requirements.md](dam-visualization-requirements.md) - Complete UI specification
142
+ - [dam-data-model.md](dam-data-model.md) - Manifest data structure
143
+
144
+ **Success Criteria:**
145
+ - ✅ David can see all 6 brands at a glance
146
+ - ✅ Jan can identify which projects need syncing
147
+ - ✅ Mary/Clients can see project status without CLI knowledge
148
+ - ✅ Dashboard is readable on mobile devices
149
+
150
+ ---
151
+
152
+ ### Epic 3: Astro Dashboard - Project Detail 📁
153
+
154
+ **Goal:** Deep dive view for individual project with storage locations and actions
155
+
156
+ **Status:** 📋 NOT STARTED (design complete, ready to implement)
157
+
158
+ **Key Tasks:**
159
+
160
+ 1. **Routing Setup**
161
+ - [ ] Create dynamic route: `/project/[brand]/[projectId]`
162
+ - [ ] Handle short names (b65 → b65-guy-monroe-marketing-plan)
163
+ - [ ] 404 handling for missing projects
164
+
165
+ 2. **Project Overview Section**
166
+ - [ ] Display project ID, type, description
167
+ - [ ] Show recording date, duration (if available)
168
+ - [ ] Display team members working on project
169
+
170
+ 3. **Storage Locations Panel**
171
+ - [ ] **Local Storage:** Path, structure (flat/archived), file counts, disk usage
172
+ - [ ] **S3 Staging:** Status, file count, last_modified, sync indicator
173
+ - [ ] **SSD Backup:** Path, disk usage, availability status
174
+ - [ ] Color-coded indicators (green=present, gray=missing)
175
+
176
+ 4. **File Tree View** (if project-level manifest exists)
177
+ - [ ] Collapsible directory tree
178
+ - [ ] Show subdirectories (e.g., `recordings/recordings-bmad-v6/`)
179
+ - [ ] File counts per directory
180
+ - [ ] Disk usage per directory
181
+ - [ ] Fallback to brand manifest booleans if no project manifest
182
+
183
+ 5. **Transcript Display**
184
+ - [ ] Show transcript availability (yes/no indicator)
185
+ - [ ] Link to transcript file location (FliVideo vs Storyline paths)
186
+ - [ ] Future: Inline transcript preview
187
+
188
+ 6. **Action Buttons** (Clipboard MVP)
189
+ - [ ] Upload to S3: `ad-dam s3-up <brand> <project>`
190
+ - [ ] Download from S3: `ad-dam s3-down <brand> <project>`
191
+ - [ ] Check sync status: `ad-dam s3-status <brand> <project>`
192
+ - [ ] Archive to SSD: `ad-dam archive <brand> <project>`
193
+ - [ ] Generate project manifest: `ad-dam project-manifest <brand> <project>`
194
+
195
+ 7. **Sync Status Visualization**
196
+ - [ ] Matrix view: Local ✅ | S3 ✅ | SSD ❌ → "Active collaboration"
197
+ - [ ] Inferred state labels (see dam-data-model.md - Sync State table)
198
+ - [ ] Recommendations (e.g., "Archive to SSD after publishing")
199
+
200
+ **Reference Documents:**
201
+ - [dam-visualization-requirements.md](dam-visualization-requirements.md) - UI specifications
202
+ - [dam-data-model.md](dam-data-model.md) - Storage inference rules, sync states
203
+
204
+ **Success Criteria:**
205
+ - ✅ David can see complete project status at a glance
206
+ - ✅ Jan can copy S3 sync commands without memorizing syntax
207
+ - ✅ Clients can understand project location without technical knowledge
208
+ - ✅ File tree provides insight into project organization
209
+
210
+ ---
211
+
212
+ ## 🚀 Getting Started
213
+
214
+ ### For CLI Development (Epic 1)
215
+
216
+ **Start here:** [dam-cli-enhancements.md](dam-cli-enhancements.md)
217
+
218
+ **Recommended order:**
219
+ 1. Read data model to understand manifest structure: [dam-data-model.md](dam-data-model.md)
220
+ 2. Review existing manifest generator: `lib/appydave/tools/dam/manifest_generator.rb`
221
+ 3. Implement Phase 2 (S3 scan) first - highest priority for collaboration
222
+ 4. Test with `ad-dam s3-scan appydave` on real data
223
+ 5. Move to Phase 3 (project manifests) for detailed views
224
+
225
+ **Testing:**
226
+ - Run against real brand data (`v-appydave`, `v-voz`)
227
+ - Verify S3 API calls with `--dry-run` flag
228
+ - Check manifest JSON structure matches schema
229
+
230
+ ### For Astro Development (Epic 2 & 3)
231
+
232
+ **Start here:** [dam-visualization-requirements.md](dam-visualization-requirements.md)
233
+
234
+ **Recommended order:**
235
+ 1. Read visualization requirements for UI design patterns
236
+ 2. Review data model for manifest JSON structure
237
+ 3. Set up Astro project with Tailwind CSS
238
+ 4. Build Brand Overview (Epic 2) first - simpler, establishes patterns
239
+ 5. Build Project Detail (Epic 3) second - leverages Epic 2 components
240
+
241
+ **Testing:**
242
+ - Use existing brand manifests from `/Users/davidcruwys/dev/video-projects/v-*/projects.json`
243
+ - Test with David's full dataset (6 brands, 50+ projects)
244
+ - Test mobile/tablet responsive layouts
245
+ - Verify clipboard functionality across browsers
246
+
247
+ ### For Team Collaboration
248
+
249
+ **Start here:** [jan-collaboration-guide.md](jan-collaboration-guide.md)
250
+
251
+ **Use cases:**
252
+ - Jan setting up Windows/WSL environment
253
+ - Understanding S3 upload/download workflows
254
+ - Quick command reference
255
+
256
+ ---
257
+
258
+ ## 📋 Implementation Priority
259
+
260
+ **Recommended development sequence:**
261
+
262
+ ### Phase 1: CLI Foundation (Week 1-2)
263
+ - Epic 1, Task 2: S3 Scan command (highest priority for collaboration)
264
+ - Epic 1, Task 3: Project-level manifests (enables detailed views)
265
+ - Epic 1, Task 4: Bulk operations (improves workflow)
266
+
267
+ ### Phase 2: Dashboard MVP (Week 3-4)
268
+ - Epic 2: Brand Overview (complete)
269
+ - Epic 3: Project Detail (basic - storage locations only, no file tree)
270
+
271
+ ### Phase 3: Enhancement (Week 5-6)
272
+ - Epic 1, Task 1: Naming consolidation (improves UX)
273
+ - Epic 3: Project Detail - File tree view (requires project manifests)
274
+ - Epic 1, Task 5: Enhanced manifest output (adds transcript detection)
275
+
276
+ ### Phase 4: Polish (Week 7+)
277
+ - Dashboard: Direct command execution (beyond clipboard)
278
+ - Dashboard: Real-time manifest regeneration
279
+ - CLI: Testing suite expansion
280
+
281
+ ---
282
+
283
+ ## 🎓 Key Learnings from Planning
284
+
285
+ **Data Model Insights:**
286
+ - State is **inferred from filesystem**, not database-driven
287
+ - Manifests are **generated snapshots**, not live queries
288
+ - David's machine is **source of truth** (only one with SSD access)
289
+
290
+ **UI Design Principles:**
291
+ - **Dyslexia-friendly:** Soft colors, large fonts, generous whitespace
292
+ - **No emoji spam:** User prefers color coding over icons
293
+ - **Clipboard-first:** MVP copies commands, doesn't execute them
294
+
295
+ **Team Workflows:**
296
+ - **David → Jan:** Upload to S3, Jan downloads, edits, uploads back
297
+ - **David → Clients:** Read-only Cloudflare Pages deployment
298
+ - **Manifest updates:** David generates → Git → Cloudflare Pages rebuilds
299
+
300
+ **Technical Decisions:**
301
+ - **Astro static site:** No database, git-friendly, Cloudflare Pages deployment
302
+ - **JSON manifests:** Two levels (brand + project), project manifests are transient
303
+ - **S3 detection:** Currently local-only, needs AWS API queries for accuracy
304
+
305
+ ---
306
+
307
+ ## 🔗 Quick Reference Links
308
+
309
+ **Primary Documentation:**
310
+ - [DAM Vision](dam-vision.md) - Strategic direction
311
+ - [Data Model](dam-data-model.md) - Schema and entities
312
+ - [Visualization Requirements](dam-visualization-requirements.md) - UI specification
313
+ - [CLI Enhancements](dam-cli-enhancements.md) - Command implementation
314
+ - [Jan Collaboration Guide](jan-collaboration-guide.md) - Team workflow
315
+
316
+ **Related Systems:**
317
+ - [Configuration Systems](../configuration/configuration-systems.md) - Brands/channels relationship
318
+ - [CLI Patterns](../cli/cli-patterns.md) - CLI architecture
319
+ - [Design Decision 001](../design-decisions/001-unified-brands-config.md) - Unified brands config
320
+
321
+ **Code References:**
322
+ - Manifest Generator: `lib/appydave/tools/dam/manifest_generator.rb`
323
+ - Brand Config: `~/.config/appydave/brands.json`
324
+ - Settings Config: `~/.config/appydave/settings.json`
325
+
326
+ ---
327
+
328
+ **Last updated:** 2025-11-18
@@ -0,0 +1,309 @@
1
+ # DAM Collaboration Guide - Working with David on Video Projects
2
+
3
+ This guide explains how to collaborate on video projects B70 and B64 using DAM (Digital Asset Management).
4
+
5
+ ## Overview
6
+
7
+ DAM uses a **hybrid storage approach** for video collaboration:
8
+
9
+ - **Git Repository**: Small files (metadata, manifests, scripts, thumbnails)
10
+ - **S3 Staging**: Large files (video recordings, exports, audio) - 90-day collaboration window
11
+
12
+ ## Prerequisites
13
+
14
+ ### 1. Install AppyDave Tools
15
+
16
+ ```bash
17
+ gem install appydave-tools
18
+ ```
19
+
20
+ ### 2. Configure AWS Credentials
21
+
22
+ You need a `.video-tools.env` file in the `v-appydave` directory:
23
+
24
+ ```bash
25
+ # Create configuration file
26
+ cd ~/dev/video-projects/v-appydave
27
+ nano .video-tools.env
28
+ ```
29
+
30
+ Add the following (David will provide actual values):
31
+
32
+ ```bash
33
+ # AWS S3 Configuration
34
+ AWS_ACCESS_KEY_ID=your-access-key-here
35
+ AWS_SECRET_ACCESS_KEY=your-secret-key-here
36
+ AWS_REGION=ap-southeast-2
37
+ S3_BUCKET=appydave-video-staging
38
+
39
+ # SSD Backup Path (optional for you)
40
+ SSD_BACKUP_PATH=/Volumes/T7/video-projects
41
+ ```
42
+
43
+ **Important**: Never commit this file to Git (it's already in `.gitignore`)
44
+
45
+ ### 3. Verify Setup
46
+
47
+ ```bash
48
+ # Navigate to video projects
49
+ cd ~/dev/video-projects/v-appydave
50
+
51
+ # Test DAM
52
+ dam list appydave
53
+
54
+ # Check if you can see B70 and B64
55
+ dam list appydave 'b6*'
56
+ dam list appydave 'b7*'
57
+ ```
58
+
59
+ ## Workflow: Getting Files from David
60
+
61
+ When David tells you B70 or B64 is ready for you to work on:
62
+
63
+ ### Step 1: Pull Git Updates (Metadata)
64
+
65
+ ```bash
66
+ # This gets manifests, scripts, thumbnails, small files
67
+ dam repo-sync appydave
68
+ ```
69
+
70
+ **What this does**: Pulls latest changes from the Git repository
71
+
72
+ ### Step 2: Discover What's Available in S3
73
+
74
+ ```bash
75
+ # See what files David uploaded
76
+ dam s3-discover appydave b70
77
+ dam s3-discover appydave b64
78
+ ```
79
+
80
+ **What this does**: Lists all files available in S3 staging area
81
+
82
+ ### Step 3: Download Large Files (Dry-Run First)
83
+
84
+ ```bash
85
+ # Preview what will be downloaded (doesn't actually download)
86
+ dam s3-down appydave b70 --dry-run
87
+
88
+ # If it looks correct, download for real
89
+ dam s3-down appydave b70
90
+ ```
91
+
92
+ Repeat for B64:
93
+
94
+ ```bash
95
+ dam s3-down appydave b64 --dry-run
96
+ dam s3-down appydave b64
97
+ ```
98
+
99
+ **What this does**:
100
+ - Downloads large video files from S3 to your local `s3-staging/` folder
101
+ - Uses MD5 checksums - only downloads changed files
102
+ - Skips files you already have
103
+
104
+ ### Step 4: Verify Everything Downloaded
105
+
106
+ ```bash
107
+ # Check unified status (local + S3 + Git)
108
+ dam status appydave b70
109
+ dam status appydave b64
110
+
111
+ # Or just check S3 sync status
112
+ dam s3-status appydave b70
113
+ dam s3-status appydave b64
114
+ ```
115
+
116
+ **What this shows**:
117
+ - Files in sync between local and S3
118
+ - Files missing locally
119
+ - Files that differ
120
+
121
+ ### Step 5: Start Working
122
+
123
+ Your files are now in:
124
+ ```
125
+ ~/dev/video-projects/v-appydave/b70-ito.ai-doubled-productivity/s3-staging/
126
+ ~/dev/video-projects/v-appydave/b64-bmad-claude-sdk/s3-staging/
127
+ ```
128
+
129
+ ## Workflow: Sending Edited Files Back to David
130
+
131
+ After you've finished editing B70 or B64:
132
+
133
+ ### Step 1: Upload Large Files to S3 (Dry-Run First)
134
+
135
+ ```bash
136
+ # Preview what will be uploaded
137
+ dam s3-up appydave b70 --dry-run
138
+
139
+ # If it looks correct, upload for real
140
+ dam s3-up appydave b70
141
+ ```
142
+
143
+ Repeat for B64 if needed:
144
+
145
+ ```bash
146
+ dam s3-up appydave b64 --dry-run
147
+ dam s3-up appydave b64
148
+ ```
149
+
150
+ **What this does**: Uploads your edited video files to S3 for David to download
151
+
152
+ ### Step 2: Commit Git Changes (Metadata)
153
+
154
+ ```bash
155
+ # Check what changed
156
+ dam repo-status appydave
157
+
158
+ # Commit and push changes
159
+ dam repo-push appydave b70
160
+ ```
161
+
162
+ **You'll be prompted for a commit message**. Examples:
163
+ - "B70 - completed rough cut"
164
+ - "B64 - finished color grading"
165
+ - "B70 - exported final version"
166
+
167
+ **What this does**:
168
+ - Commits any manifest changes, thumbnails, or small files
169
+ - Pushes to Git repository for David
170
+
171
+ ### Step 3: Verify Upload
172
+
173
+ ```bash
174
+ # Check that S3 upload succeeded
175
+ dam s3-status appydave b70
176
+ dam s3-status appydave b64
177
+ ```
178
+
179
+ ### Step 4: Notify David
180
+
181
+ Let David know the project is ready for review.
182
+
183
+ ## Command Quick Reference
184
+
185
+ | Command | Purpose | When to Use |
186
+ |---------|---------|-------------|
187
+ | `dam repo-sync appydave` | Pull Git updates | Start of work session |
188
+ | `dam s3-discover appydave b70` | See files in S3 | Check what David uploaded |
189
+ | `dam s3-down appydave b70` | Download from S3 | Get large video files |
190
+ | `dam s3-down appydave b70 --dry-run` | Preview download | Check before downloading |
191
+ | `dam s3-up appydave b70` | Upload to S3 | Send edited files to David |
192
+ | `dam s3-up appydave b70 --dry-run` | Preview upload | Check before uploading |
193
+ | `dam s3-status appydave b70` | Check S3 sync | Verify transfers worked |
194
+ | `dam repo-status appydave` | Check Git status | See what changed locally |
195
+ | `dam repo-push appydave b70` | Commit & push Git | After making changes |
196
+ | `dam status appydave b70` | Unified status | See everything (local/S3/Git) |
197
+ | `dam list appydave` | List all projects | See available projects |
198
+
199
+ ## Typical Session Flow
200
+
201
+ ### Starting Work (Getting Files)
202
+ ```bash
203
+ # 1. Pull metadata
204
+ dam repo-sync appydave
205
+
206
+ # 2. Download video files
207
+ dam s3-down appydave b70 --dry-run
208
+ dam s3-down appydave b70
209
+
210
+ # 3. Verify
211
+ dam status appydave b70
212
+
213
+ # 4. Start editing files in s3-staging/
214
+ ```
215
+
216
+ ### Finishing Work (Sending Files Back)
217
+ ```bash
218
+ # 1. Upload edited files
219
+ dam s3-up appydave b70 --dry-run
220
+ dam s3-up appydave b70
221
+
222
+ # 2. Commit metadata changes
223
+ dam repo-push appydave b70
224
+ # Enter commit message when prompted
225
+
226
+ # 3. Verify
227
+ dam s3-status appydave b70
228
+
229
+ # 4. Notify David
230
+ ```
231
+
232
+ ## What Goes Where?
233
+
234
+ ### Git Repository (Small Files)
235
+ ✅ Tracked in Git:
236
+ - Manifests (file lists, checksums)
237
+ - Scripts and storylines
238
+ - Thumbnails and small images
239
+ - Project metadata
240
+ - Configuration files
241
+
242
+ ❌ NOT in Git:
243
+ - Large video files (.mp4, .mov)
244
+ - Raw recordings
245
+ - High-resolution exports
246
+ - Files in `s3-staging/` directories
247
+
248
+ ### S3 Staging (Large Files - 90 Days)
249
+ ✅ In S3:
250
+ - Video recordings (.mp4, .mov, .avi)
251
+ - Audio files
252
+ - Large exports
253
+ - High-resolution images
254
+ - Anything over ~10MB
255
+
256
+ ## Understanding File Locations
257
+
258
+ When you download B70, files go to:
259
+ ```
260
+ ~/dev/video-projects/v-appydave/b70-ito.ai-doubled-productivity/
261
+ ├── README.md (Git - metadata)
262
+ ├── manifest.json (Git - file inventory)
263
+ ├── s3-staging/ (NOT in Git)
264
+ │ ├── raw-recording.mp4 (Large file from S3)
265
+ │ ├── edited-version.mp4 (Your edited file)
266
+ │ └── audio-track.wav (Audio file)
267
+ └── assets/ (Git - small images)
268
+ └── thumbnail.jpg
269
+ ```
270
+
271
+ ## Troubleshooting
272
+
273
+ ### "Could not find project"
274
+ - Run `dam list appydave` to see available projects
275
+ - Make sure you're using the correct short name (e.g., `b70`, not `b70-ito.ai-doubled-productivity`)
276
+
277
+ ### "AWS credentials not configured"
278
+ - Check that `.video-tools.env` exists in `v-appydave` directory
279
+ - Verify credentials are correct (ask David)
280
+ - Don't commit this file to Git
281
+
282
+ ### "Files already in sync"
283
+ - This is good! It means no new changes to download/upload
284
+ - Use `dam s3-status appydave b70` to verify
285
+
286
+ ### Downloads are slow
287
+ - Large video files take time (2-10GB projects)
288
+ - First download transfers everything
289
+ - Subsequent syncs only transfer changed files (much faster)
290
+
291
+ ### "Permission denied" on S3
292
+ - Contact David - your AWS credentials may need updating
293
+ - Check that AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are correct
294
+
295
+ ## File Size Expectations
296
+
297
+ Typical project sizes:
298
+ - **B70**: ~5-8GB (video recordings, exports)
299
+ - **B64**: ~3-6GB (video recordings, exports)
300
+
301
+ First download/upload will transfer full size. Subsequent syncs only transfer changes.
302
+
303
+ ## Questions?
304
+
305
+ Contact David if you run into issues or need clarification on any steps.
306
+
307
+ ---
308
+
309
+ **Last Updated**: 2025-11-18