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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/bin/dam +137 -0
- data/docs/README.md +187 -90
- data/docs/architecture/dam/dam-cli-enhancements.md +642 -0
- data/docs/architecture/dam/dam-cli-implementation-guide.md +1041 -0
- data/docs/architecture/dam/dam-data-model.md +466 -0
- data/docs/architecture/dam/dam-visualization-requirements.md +641 -0
- data/docs/architecture/dam/implementation-roadmap.md +328 -0
- data/docs/architecture/dam/jan-collaboration-guide.md +309 -0
- data/lib/appydave/tools/dam/s3_operations.rb +57 -5
- data/lib/appydave/tools/dam/s3_scanner.rb +139 -0
- data/lib/appydave/tools/version.rb +1 -1
- data/lib/appydave/tools.rb +1 -0
- data/package.json +1 -1
- metadata +37 -32
- data/docs/development/CODEX-recommendations.md +0 -258
- data/docs/development/README.md +0 -100
- /data/docs/{development/pattern-comparison.md → architecture/cli/cli-pattern-comparison.md} +0 -0
- /data/docs/{development/cli-architecture-patterns.md → architecture/cli/cli-patterns.md} +0 -0
- /data/docs/{project-brand-systems-analysis.md → architecture/configuration/configuration-systems.md} +0 -0
- /data/docs/{dam → architecture/dam}/dam-vision.md +0 -0
- /data/docs/{dam/prd-client-sharing.md → architecture/dam/design-decisions/002-client-sharing.md} +0 -0
- /data/docs/{dam/prd-git-integration.md → architecture/dam/design-decisions/003-git-integration.md} +0 -0
- /data/docs/{prd-unified-brands-configuration.md → architecture/design-decisions/001-unified-brands-config.md} +0 -0
- /data/docs/{dam/session-summary-2025-11-09.md → architecture/design-decisions/session-2025-11-09.md} +0 -0
- /data/docs/{configuration/README.md → guides/configuration-setup.md} +0 -0
- /data/docs/{dam → guides/platforms}/windows/README.md +0 -0
- /data/docs/{dam → guides/platforms}/windows/dam-testing-plan-windows-powershell.md +0 -0
- /data/docs/{dam → guides/platforms}/windows/installation.md +0 -0
- /data/docs/{tools → guides/tools}/bank-reconciliation.md +0 -0
- /data/docs/{tools → guides/tools}/cli-actions.md +0 -0
- /data/docs/{tools → guides/tools}/configuration.md +0 -0
- /data/docs/{dam → guides/tools/dam}/dam-testing-plan.md +0 -0
- /data/docs/{dam/usage.md → guides/tools/dam/dam-usage.md} +0 -0
- /data/docs/{tools → guides/tools}/gpt-context.md +0 -0
- /data/docs/{tools → guides/tools}/index.md +0 -0
- /data/docs/{tools → guides/tools}/move-images.md +0 -0
- /data/docs/{tools → guides/tools}/name-manager.md +0 -0
- /data/docs/{tools → guides/tools}/prompt-tools.md +0 -0
- /data/docs/{tools → guides/tools}/subtitle-processor.md +0 -0
- /data/docs/{tools → guides/tools}/youtube-automation.md +0 -0
- /data/docs/{tools → guides/tools}/youtube-manager.md +0 -0
- /data/docs/{configuration → templates}/.env.example +0 -0
- /data/docs/{configuration → templates}/channels.example.json +0 -0
- /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
|