appydave-tools 0.16.0 → 0.17.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/.rubocop.yml +6 -0
- data/AGENTS.md +22 -0
- data/CHANGELOG.md +12 -0
- data/CLAUDE.md +206 -51
- data/README.md +144 -11
- data/bin/archive_project.rb +249 -0
- data/bin/configuration.rb +21 -1
- data/bin/generate_manifest.rb +357 -0
- data/bin/sync_from_ssd.rb +236 -0
- data/bin/vat +623 -0
- data/docs/README.md +169 -0
- data/docs/configuration/.env.example +19 -0
- data/docs/configuration/README.md +394 -0
- data/docs/configuration/channels.example.json +26 -0
- data/docs/configuration/settings.example.json +6 -0
- data/docs/development/CODEX-recommendations.md +123 -0
- data/docs/development/README.md +100 -0
- data/docs/development/cli-architecture-patterns.md +1604 -0
- data/docs/development/pattern-comparison.md +284 -0
- data/docs/prd-unified-brands-configuration.md +792 -0
- data/docs/project-brand-systems-analysis.md +934 -0
- data/docs/vat/dam-vision.md +123 -0
- data/docs/vat/session-summary-2025-11-09.md +297 -0
- data/docs/vat/usage.md +508 -0
- data/docs/vat/vat-testing-plan.md +801 -0
- data/lib/appydave/tools/configuration/models/brands_config.rb +238 -0
- data/lib/appydave/tools/configuration/models/config_base.rb +7 -0
- data/lib/appydave/tools/configuration/models/settings_config.rb +4 -0
- data/lib/appydave/tools/vat/config.rb +153 -0
- data/lib/appydave/tools/vat/config_loader.rb +91 -0
- data/lib/appydave/tools/vat/manifest_generator.rb +239 -0
- data/lib/appydave/tools/vat/project_listing.rb +198 -0
- data/lib/appydave/tools/vat/project_resolver.rb +132 -0
- data/lib/appydave/tools/vat/s3_operations.rb +560 -0
- data/lib/appydave/tools/version.rb +1 -1
- data/lib/appydave/tools.rb +9 -1
- data/package.json +1 -1
- metadata +57 -3
- data/docs/dam/overview.md +0 -28
data/docs/README.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# AppyDave Tools Documentation
|
|
2
|
+
|
|
3
|
+
**Welcome to the AppyDave Tools documentation!**
|
|
4
|
+
|
|
5
|
+
This directory contains comprehensive documentation for all tools, features, and development guides.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📚 Quick Navigation
|
|
10
|
+
|
|
11
|
+
### User Documentation
|
|
12
|
+
|
|
13
|
+
- **[VAT (Video Asset Tools)](./vat/)** - Video project storage orchestration
|
|
14
|
+
- [Usage Guide](./vat/usage.md) - Complete usage reference
|
|
15
|
+
- [Testing Plan](./vat/vat-testing-plan.md) - User acceptance testing
|
|
16
|
+
- [Implementation Status](./vat/vat-implementation-status.md) - Feature matrix
|
|
17
|
+
- [Integration Plan](./vat/vat-integration-plan.md) - Migration details
|
|
18
|
+
- [Refactoring Summary](./vat/vat-refactoring-summary.md) - Architecture changes
|
|
19
|
+
|
|
20
|
+
- **[Tools](./tools/)** - Individual tool documentation
|
|
21
|
+
- GPT Context Gatherer
|
|
22
|
+
- YouTube Manager
|
|
23
|
+
- Subtitle Processor
|
|
24
|
+
- Configuration Management
|
|
25
|
+
- And more...
|
|
26
|
+
|
|
27
|
+
### Developer Documentation
|
|
28
|
+
|
|
29
|
+
- **[Development Guides](./development/)** - How to build tools
|
|
30
|
+
- [CLI Architecture Patterns](./development/cli-architecture-patterns.md) - Pattern reference
|
|
31
|
+
- [Pattern Comparison](./development/pattern-comparison.md) - Visual guide
|
|
32
|
+
- [Quick Reference](./development/README.md) - Fast pattern selection
|
|
33
|
+
|
|
34
|
+
### System Documentation
|
|
35
|
+
|
|
36
|
+
- **[Project & Brand Systems Analysis](./project-brand-systems-analysis.md)** - Deep dive into overlapping systems
|
|
37
|
+
- VAT system (storage orchestration)
|
|
38
|
+
- Channels configuration (YouTube metadata)
|
|
39
|
+
- NameManager (naming conventions)
|
|
40
|
+
- Integration points and recommendations
|
|
41
|
+
|
|
42
|
+
### Archive
|
|
43
|
+
|
|
44
|
+
- **[Archive](./archive/)** - Deprecated documentation
|
|
45
|
+
- Old versions of documentation
|
|
46
|
+
- Historical reference material
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 🎯 Common Tasks
|
|
51
|
+
|
|
52
|
+
### "I want to use a tool"
|
|
53
|
+
→ See individual tool documentation in [`tools/`](./tools/) or [`vat/`](./vat/)
|
|
54
|
+
|
|
55
|
+
### "I want to build a new tool"
|
|
56
|
+
→ Start with [`development/README.md`](./development/README.md) for CLI pattern selection
|
|
57
|
+
|
|
58
|
+
### "I want to understand the architecture"
|
|
59
|
+
→ Read [`development/cli-architecture-patterns.md`](./development/cli-architecture-patterns.md)
|
|
60
|
+
|
|
61
|
+
### "I want to understand how systems relate"
|
|
62
|
+
→ Read [`project-brand-systems-analysis.md`](./project-brand-systems-analysis.md)
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 📂 Directory Structure
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
docs/
|
|
70
|
+
├── README.md (this file) # Documentation index
|
|
71
|
+
├── project-brand-systems-analysis.md # System overlap analysis
|
|
72
|
+
│
|
|
73
|
+
├── vat/ # VAT documentation
|
|
74
|
+
│ ├── usage.md # User guide
|
|
75
|
+
│ ├── vat-testing-plan.md # Testing guide
|
|
76
|
+
│ ├── vat-implementation-status.md # Feature status
|
|
77
|
+
│ ├── vat-integration-plan.md # Integration details
|
|
78
|
+
│ └── vat-refactoring-summary.md # Architecture changes
|
|
79
|
+
│
|
|
80
|
+
├── tools/ # Individual tool docs
|
|
81
|
+
│ ├── gpt-context.md
|
|
82
|
+
│ ├── youtube-manager.md
|
|
83
|
+
│ ├── subtitle-processor.md
|
|
84
|
+
│ └── ... (more tools)
|
|
85
|
+
│
|
|
86
|
+
├── development/ # Developer guides
|
|
87
|
+
│ ├── README.md # Quick reference
|
|
88
|
+
│ ├── cli-architecture-patterns.md # Pattern guide
|
|
89
|
+
│ └── pattern-comparison.md # Visual comparison
|
|
90
|
+
│
|
|
91
|
+
└── archive/ # Old documentation
|
|
92
|
+
└── ... (deprecated docs)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 🔍 Finding What You Need
|
|
98
|
+
|
|
99
|
+
### By Tool Name
|
|
100
|
+
|
|
101
|
+
| Tool | Documentation |
|
|
102
|
+
|------|---------------|
|
|
103
|
+
| **VAT** | [`vat/usage.md`](./vat/usage.md) |
|
|
104
|
+
| **GPT Context** | [`tools/gpt-context.md`](./tools/gpt-context.md) |
|
|
105
|
+
| **YouTube Manager** | [`tools/youtube-manager.md`](./tools/youtube-manager.md) |
|
|
106
|
+
| **Subtitle Processor** | [`tools/subtitle-processor.md`](./tools/subtitle-processor.md) |
|
|
107
|
+
| **Configuration** | [`tools/configuration.md`](./tools/configuration.md) |
|
|
108
|
+
|
|
109
|
+
### By Task
|
|
110
|
+
|
|
111
|
+
| Task | Documentation |
|
|
112
|
+
|------|---------------|
|
|
113
|
+
| **Video storage management** | [`vat/usage.md`](./vat/usage.md) |
|
|
114
|
+
| **S3 sync for collaboration** | [`vat/usage.md`](./vat/usage.md) |
|
|
115
|
+
| **Gather AI context** | [`tools/gpt-context.md`](./tools/gpt-context.md) |
|
|
116
|
+
| **Manage YouTube videos** | [`tools/youtube-manager.md`](./tools/youtube-manager.md) |
|
|
117
|
+
| **Process subtitles** | [`tools/subtitle-processor.md`](./tools/subtitle-processor.md) |
|
|
118
|
+
| **Build new CLI tool** | [`development/cli-architecture-patterns.md`](./development/cli-architecture-patterns.md) |
|
|
119
|
+
|
|
120
|
+
### By Audience
|
|
121
|
+
|
|
122
|
+
| Audience | Start Here |
|
|
123
|
+
|----------|------------|
|
|
124
|
+
| **End Users** | Individual tool docs in [`tools/`](./tools/) or [`vat/`](./vat/) |
|
|
125
|
+
| **Developers** | [`development/README.md`](./development/README.md) |
|
|
126
|
+
| **Contributors** | [`development/cli-architecture-patterns.md`](./development/cli-architecture-patterns.md) |
|
|
127
|
+
| **Architects** | [`project-brand-systems-analysis.md`](./project-brand-systems-analysis.md) |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 🆕 Recently Added
|
|
132
|
+
|
|
133
|
+
- **2025-11-09**: VAT refactoring to Pattern 2 architecture
|
|
134
|
+
- **2025-11-09**: CLI architecture patterns documentation
|
|
135
|
+
- **2025-11-09**: Project & brand systems analysis
|
|
136
|
+
- **2025-11-08**: VAT integration into appydave-tools
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 📝 Documentation Standards
|
|
141
|
+
|
|
142
|
+
All documentation in this repository follows the [AI Conventions](../../.ai-conventions.md):
|
|
143
|
+
|
|
144
|
+
- **File naming**: `kebab-case` for all markdown files
|
|
145
|
+
- **Exceptions**: `README.md`, `CHANGELOG.md`, `CLAUDE.md` (uppercase allowed)
|
|
146
|
+
- **Location**: Organized by category in subdirectories
|
|
147
|
+
- **Cross-referencing**: Relative links between documents
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 🤝 Contributing
|
|
152
|
+
|
|
153
|
+
When adding new documentation:
|
|
154
|
+
|
|
155
|
+
1. **Choose the right location**:
|
|
156
|
+
- Tool documentation → `tools/`
|
|
157
|
+
- VAT-specific → `vat/`
|
|
158
|
+
- Developer guides → `development/`
|
|
159
|
+
- System analysis → root of `docs/`
|
|
160
|
+
|
|
161
|
+
2. **Use kebab-case** for filenames (e.g., `my-new-tool.md`)
|
|
162
|
+
|
|
163
|
+
3. **Update this index** with a link to your new document
|
|
164
|
+
|
|
165
|
+
4. **Follow existing patterns** - check similar docs for style guidance
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
**Last updated**: 2025-11-09
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# AppyDave Tools Environment Configuration
|
|
2
|
+
# Copy this to .env in your project root and fill in your values
|
|
3
|
+
|
|
4
|
+
# ============================================================================
|
|
5
|
+
# SECRETS - NEVER commit the actual .env file to version control!
|
|
6
|
+
# ============================================================================
|
|
7
|
+
|
|
8
|
+
# OpenAI API Configuration (required for prompt_tools and youtube_automation)
|
|
9
|
+
# Get your API key from: https://platform.openai.com/api-keys
|
|
10
|
+
OPENAI_ACCESS_TOKEN=sk-your-api-key-here
|
|
11
|
+
OPENAI_ORGANIZATION_ID=org-your-org-id-here
|
|
12
|
+
|
|
13
|
+
# ============================================================================
|
|
14
|
+
# OPTIONAL SETTINGS
|
|
15
|
+
# ============================================================================
|
|
16
|
+
|
|
17
|
+
# Enable OpenAI tools (set to 'true' to enable)
|
|
18
|
+
# When enabled, OpenAI API will be configured for prompt_tools
|
|
19
|
+
TOOLS_ENABLED=false
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
# AppyDave Tools Configuration Guide
|
|
2
|
+
|
|
3
|
+
This guide explains how to configure AppyDave Tools for your environment.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Quick Start](#quick-start)
|
|
8
|
+
- [Configuration Files](#configuration-files)
|
|
9
|
+
- [settings.json](#settingsjson)
|
|
10
|
+
- [channels.json](#channelsjson)
|
|
11
|
+
- [.env](#env)
|
|
12
|
+
- [Configuration Commands](#configuration-commands)
|
|
13
|
+
- [Migration from Legacy Config](#migration-from-legacy-config)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
### 1. Create Default Configuration Files
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
ad_config -c
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This creates empty configuration files at `~/.config/appydave/`:
|
|
26
|
+
- `settings.json` - Paths and preferences
|
|
27
|
+
- `channels.json` - YouTube channel definitions
|
|
28
|
+
- `youtube-automation.json` - Automation workflows
|
|
29
|
+
|
|
30
|
+
### 2. Option A: Copy Example Files
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Copy examples to your config directory
|
|
34
|
+
cp docs/configuration/settings.example.json ~/.config/appydave/settings.json
|
|
35
|
+
cp docs/configuration/channels.example.json ~/.config/appydave/channels.json
|
|
36
|
+
|
|
37
|
+
# Copy .env to project root
|
|
38
|
+
cp docs/configuration/.env.example .env
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Then edit each file and replace placeholders with your actual values.
|
|
42
|
+
|
|
43
|
+
### 2. Option B: Edit Directly in VS Code
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
ad_config -e
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Opens `~/.config/appydave/` in VS Code for editing.
|
|
50
|
+
|
|
51
|
+
### 3. Add Your Values
|
|
52
|
+
|
|
53
|
+
Update the configuration files with your specific paths and settings.
|
|
54
|
+
|
|
55
|
+
**Required for VAT (Video Asset Tools):**
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"video-projects-root": "/path/to/your/video-projects"
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Required for OpenAI tools:**
|
|
63
|
+
```bash
|
|
64
|
+
OPENAI_ACCESS_TOKEN=sk-your-actual-api-key
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Configuration Files
|
|
70
|
+
|
|
71
|
+
### `settings.json`
|
|
72
|
+
|
|
73
|
+
**Location:** `~/.config/appydave/settings.json`
|
|
74
|
+
|
|
75
|
+
**Purpose:** Stores paths and preferences (non-secret configuration)
|
|
76
|
+
|
|
77
|
+
**Example:**
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"video-projects-root": "/Users/yourname/dev/video-projects",
|
|
81
|
+
"ecamm-recording-folder": "/Users/yourname/ecamm",
|
|
82
|
+
"download-folder": "/Users/yourname/Downloads",
|
|
83
|
+
"download-image-folder": "/Users/yourname/Downloads/images"
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Settings Reference:**
|
|
88
|
+
|
|
89
|
+
| Key | Purpose | Used By | Required |
|
|
90
|
+
|-----|---------|---------|----------|
|
|
91
|
+
| `video-projects-root` | Root directory for all video projects | VAT commands | ✅ For VAT |
|
|
92
|
+
| `ecamm-recording-folder` | Where Ecamm Live saves recordings | Move Images | Optional |
|
|
93
|
+
| `download-folder` | General downloads directory | Move Images | Optional |
|
|
94
|
+
| `download-image-folder` | Image downloads (defaults to `download-folder`) | Move Images | Optional |
|
|
95
|
+
|
|
96
|
+
**Safe to:**
|
|
97
|
+
- ✅ Version control (after removing personal paths)
|
|
98
|
+
- ✅ Share with team (as template)
|
|
99
|
+
- ✅ Commit to git (as `.example` file)
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### `channels.json`
|
|
104
|
+
|
|
105
|
+
**Location:** `~/.config/appydave/channels.json`
|
|
106
|
+
|
|
107
|
+
**Purpose:** Defines YouTube channels and their project locations
|
|
108
|
+
|
|
109
|
+
**Example:**
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"channels": {
|
|
113
|
+
"appydave": {
|
|
114
|
+
"code": "ad",
|
|
115
|
+
"name": "AppyDave",
|
|
116
|
+
"youtube_handle": "@appydave",
|
|
117
|
+
"locations": {
|
|
118
|
+
"content_projects": "/path/to/content",
|
|
119
|
+
"video_projects": "/Users/yourname/dev/video-projects/v-appydave",
|
|
120
|
+
"published_projects": "/path/to/published",
|
|
121
|
+
"abandoned_projects": "/path/to/abandoned"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Channel Properties:**
|
|
129
|
+
|
|
130
|
+
| Property | Description | Example |
|
|
131
|
+
|----------|-------------|---------|
|
|
132
|
+
| `key` | Internal identifier (object key) | `"appydave"` |
|
|
133
|
+
| `code` | Short code for project naming | `"ad"` |
|
|
134
|
+
| `name` | Display name | `"AppyDave"` |
|
|
135
|
+
| `youtube_handle` | YouTube @ handle | `"@appydave"` |
|
|
136
|
+
|
|
137
|
+
**Location Properties:**
|
|
138
|
+
|
|
139
|
+
| Location | Purpose | Can Use "NOT-SET" |
|
|
140
|
+
|----------|---------|-------------------|
|
|
141
|
+
| `content_projects` | Content planning/scripts | ✅ Yes |
|
|
142
|
+
| `video_projects` | Active video projects | ❌ No (required) |
|
|
143
|
+
| `published_projects` | Published video archives | ✅ Yes |
|
|
144
|
+
| `abandoned_projects` | Abandoned projects | ✅ Yes |
|
|
145
|
+
|
|
146
|
+
**Using "NOT-SET":**
|
|
147
|
+
|
|
148
|
+
If you don't have a location configured yet, use `"NOT-SET"` as a placeholder:
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
"content_projects": "NOT-SET"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
This makes it clear that the value needs to be configured later.
|
|
155
|
+
|
|
156
|
+
**Safe to:**
|
|
157
|
+
- ✅ Version control structure (remove personal paths first)
|
|
158
|
+
- ⚠️ Each developer customizes paths locally
|
|
159
|
+
- ✅ Share channel definitions (codes, names, handles)
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### `.env`
|
|
164
|
+
|
|
165
|
+
**Location:** `.env` (project root directory)
|
|
166
|
+
|
|
167
|
+
**Purpose:** Stores secrets and API keys
|
|
168
|
+
|
|
169
|
+
**⚠️ CRITICAL: This file is gitignored and should NEVER be committed!**
|
|
170
|
+
|
|
171
|
+
**Example:**
|
|
172
|
+
```bash
|
|
173
|
+
# OpenAI API Configuration
|
|
174
|
+
OPENAI_ACCESS_TOKEN=sk-your-actual-api-key-here
|
|
175
|
+
OPENAI_ORGANIZATION_ID=org-your-actual-org-id
|
|
176
|
+
|
|
177
|
+
# Optional: Enable OpenAI tools
|
|
178
|
+
TOOLS_ENABLED=true
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Environment Variables:**
|
|
182
|
+
|
|
183
|
+
| Variable | Purpose | Required For | Secret? |
|
|
184
|
+
|----------|---------|--------------|---------|
|
|
185
|
+
| `OPENAI_ACCESS_TOKEN` | OpenAI API key | prompt_tools, youtube_automation | ✅ SECRET |
|
|
186
|
+
| `OPENAI_ORGANIZATION_ID` | OpenAI org ID | prompt_tools, youtube_automation | ✅ SECRET |
|
|
187
|
+
| `TOOLS_ENABLED` | Enable OpenAI configuration | Optional | ❌ No |
|
|
188
|
+
|
|
189
|
+
**Getting API Keys:**
|
|
190
|
+
- OpenAI: https://platform.openai.com/api-keys
|
|
191
|
+
|
|
192
|
+
**Safe to:**
|
|
193
|
+
- ❌ NEVER version control
|
|
194
|
+
- ❌ NEVER share
|
|
195
|
+
- ❌ NEVER commit to git
|
|
196
|
+
- ✅ Keep local only
|
|
197
|
+
- ✅ Share `.env.example` template
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Configuration Commands
|
|
202
|
+
|
|
203
|
+
### List All Configurations
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
ad_config -l
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Shows which configuration files exist and their paths.
|
|
210
|
+
|
|
211
|
+
**Example Output:**
|
|
212
|
+
```
|
|
213
|
+
NAME | EXISTS | PATH
|
|
214
|
+
-------------------|--------|------------------------------------------------------------
|
|
215
|
+
settings | true | /Users/yourname/.config/appydave/settings.json
|
|
216
|
+
channels | true | /Users/yourname/.config/appydave/channels.json
|
|
217
|
+
youtube_automation | true | /Users/yourname/.config/appydave/youtube-automation.json
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Create Missing Configurations
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
ad_config -c
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Creates any configuration files that don't exist yet.
|
|
227
|
+
|
|
228
|
+
**Safety:** This command will NOT overwrite existing files. It only creates missing ones.
|
|
229
|
+
|
|
230
|
+
### Print Configuration Values
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
# Print all configurations
|
|
234
|
+
ad_config -p
|
|
235
|
+
|
|
236
|
+
# Print specific configurations
|
|
237
|
+
ad_config -p settings
|
|
238
|
+
ad_config -p channels
|
|
239
|
+
ad_config -p settings,channels
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Shows the current values in your configuration files.
|
|
243
|
+
|
|
244
|
+
### Edit in VS Code
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
ad_config -e
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Opens the configuration directory (`~/.config/appydave/`) in Visual Studio Code.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Migration from Legacy Config
|
|
255
|
+
|
|
256
|
+
### From `~/.vat-config` (Deprecated)
|
|
257
|
+
|
|
258
|
+
If you have an old `~/.vat-config` file, migrate to `settings.json`:
|
|
259
|
+
|
|
260
|
+
**Old format** (`~/.vat-config`):
|
|
261
|
+
```
|
|
262
|
+
VIDEO_PROJECTS_ROOT=/Users/yourname/dev/video-projects
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**New format** (`~/.config/appydave/settings.json`):
|
|
266
|
+
```json
|
|
267
|
+
{
|
|
268
|
+
"video-projects-root": "/Users/yourname/dev/video-projects"
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Migration steps:**
|
|
273
|
+
|
|
274
|
+
1. Check your current VAT config:
|
|
275
|
+
```bash
|
|
276
|
+
cat ~/.vat-config
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
2. Add the value to settings.json:
|
|
280
|
+
```bash
|
|
281
|
+
ad_config -e
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
3. In `settings.json`, add:
|
|
285
|
+
```json
|
|
286
|
+
"video-projects-root": "/your/path/from/vat/config"
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
4. Test that VAT still works:
|
|
290
|
+
```bash
|
|
291
|
+
vat list
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
5. Delete the old file:
|
|
295
|
+
```bash
|
|
296
|
+
rm ~/.vat-config
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Note:** The `vat init` command is deprecated. Use `ad_config` instead.
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## Backup & Recovery
|
|
304
|
+
|
|
305
|
+
### Automatic Backups
|
|
306
|
+
|
|
307
|
+
Every time you save a configuration, a timestamped backup is created automatically:
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
~/.config/appydave/settings.json.backup.20251109-203015
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**Backup format:** `filename.backup.YYYYMMDD-HHMMSS`
|
|
314
|
+
|
|
315
|
+
### Restoring from Backup
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# List available backups
|
|
319
|
+
ls -la ~/.config/appydave/*.backup.*
|
|
320
|
+
|
|
321
|
+
# Restore from backup
|
|
322
|
+
cp ~/.config/appydave/settings.json.backup.20251109-203015 \
|
|
323
|
+
~/.config/appydave/settings.json
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Troubleshooting
|
|
329
|
+
|
|
330
|
+
### "VIDEO_PROJECTS_ROOT not configured" Error
|
|
331
|
+
|
|
332
|
+
**Problem:** VAT commands fail with configuration error.
|
|
333
|
+
|
|
334
|
+
**Solution:**
|
|
335
|
+
```bash
|
|
336
|
+
ad_config -e
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Add to `settings.json`:
|
|
340
|
+
```json
|
|
341
|
+
{
|
|
342
|
+
"video-projects-root": "/path/to/your/video-projects"
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### Configuration Files Missing
|
|
347
|
+
|
|
348
|
+
**Problem:** Configuration files don't exist.
|
|
349
|
+
|
|
350
|
+
**Solution:**
|
|
351
|
+
```bash
|
|
352
|
+
ad_config -c
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
This creates default empty configuration files.
|
|
356
|
+
|
|
357
|
+
### OpenAI API Errors
|
|
358
|
+
|
|
359
|
+
**Problem:** "OpenAI API key not configured"
|
|
360
|
+
|
|
361
|
+
**Solution:**
|
|
362
|
+
|
|
363
|
+
1. Create `.env` file in project root:
|
|
364
|
+
```bash
|
|
365
|
+
cp docs/configuration/.env.example .env
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
2. Add your API key:
|
|
369
|
+
```bash
|
|
370
|
+
OPENAI_ACCESS_TOKEN=sk-your-actual-key
|
|
371
|
+
OPENAI_ORGANIZATION_ID=org-your-org-id
|
|
372
|
+
TOOLS_ENABLED=true
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
3. Never commit `.env` to git (it's gitignored by default)
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## Best Practices
|
|
380
|
+
|
|
381
|
+
1. **Use `ad_config -c` for initialization** - It's safe and won't overwrite existing files
|
|
382
|
+
2. **Use "NOT-SET" for unconfigured paths** - Makes it clear what needs to be set
|
|
383
|
+
3. **Keep secrets in `.env`** - Never put API keys in `settings.json`
|
|
384
|
+
4. **Backup before major changes** - Automatic backups are created, but you can manually backup too
|
|
385
|
+
5. **Use `ad_config -p` to verify** - Check your configuration values are correct
|
|
386
|
+
6. **Share examples, not actual configs** - Use `.example` files for team sharing
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## Need Help?
|
|
391
|
+
|
|
392
|
+
- Check CLAUDE.md for project-specific configuration
|
|
393
|
+
- Run `ad_config --help` for command options
|
|
394
|
+
- See example files in `docs/configuration/`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"channels": {
|
|
3
|
+
"your-channel-key": {
|
|
4
|
+
"code": "yc",
|
|
5
|
+
"name": "Your Channel Name",
|
|
6
|
+
"youtube_handle": "@yourhandle",
|
|
7
|
+
"locations": {
|
|
8
|
+
"content_projects": "/path/to/content/projects",
|
|
9
|
+
"video_projects": "/path/to/video/projects",
|
|
10
|
+
"published_projects": "/path/to/published/projects",
|
|
11
|
+
"abandoned_projects": "/path/to/abandoned/projects"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"second-channel": {
|
|
15
|
+
"code": "sc",
|
|
16
|
+
"name": "Second Channel",
|
|
17
|
+
"youtube_handle": "@secondchannel",
|
|
18
|
+
"locations": {
|
|
19
|
+
"content_projects": "NOT-SET",
|
|
20
|
+
"video_projects": "/path/to/video-projects/v-second-channel",
|
|
21
|
+
"published_projects": "NOT-SET",
|
|
22
|
+
"abandoned_projects": "NOT-SET"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|