appydave-tools 0.15.0 → 0.16.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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/CLAUDE.md +113 -29
  4. data/README.md +262 -86
  5. data/bin/subtitle_manager.rb +18 -12
  6. data/bin/subtitle_processor.rb +158 -0
  7. data/docs/archive/codebase-audit-2025-01.md +424 -0
  8. data/docs/archive/documentation-framework-proposal.md +808 -0
  9. data/docs/archive/purpose-and-philosophy.md +110 -0
  10. data/docs/archive/test-coverage-quick-wins.md +342 -0
  11. data/docs/archive/tool-discovery.md +199 -0
  12. data/docs/archive/tool-documentation-analysis.md +592 -0
  13. data/docs/tools/bank-reconciliation.md +269 -0
  14. data/docs/tools/cli-actions.md +444 -0
  15. data/docs/tools/configuration.md +329 -0
  16. data/docs/{usage → tools}/gpt-context.md +118 -7
  17. data/docs/tools/index.md +324 -0
  18. data/docs/tools/move-images.md +295 -0
  19. data/docs/tools/name-manager.md +322 -0
  20. data/docs/tools/prompt-tools.md +209 -0
  21. data/docs/tools/subtitle-processor.md +242 -0
  22. data/docs/tools/youtube-automation.md +258 -0
  23. data/docs/tools/youtube-manager.md +248 -0
  24. data/lib/appydave/tools/{subtitle_manager → subtitle_processor}/clean.rb +1 -1
  25. data/lib/appydave/tools/{subtitle_manager → subtitle_processor}/join.rb +5 -2
  26. data/lib/appydave/tools/version.rb +1 -1
  27. data/lib/appydave/tools.rb +2 -4
  28. data/package.json +1 -1
  29. metadata +29 -12
  30. data/lib/mj-paste-test/main.rb +0 -35
  31. data/lib/mj-paste-test/prompts.txt +0 -18
  32. data/lib/mj-paste-test/readme-leonardo.md +0 -0
  33. /data/lib/appydave/tools/{subtitle_manager → subtitle_processor}/_doc-clean.md +0 -0
  34. /data/lib/appydave/tools/{subtitle_manager → subtitle_processor}/_doc-join.md +0 -0
  35. /data/lib/appydave/tools/{subtitle_manager → subtitle_processor}/_doc-todo.md +0 -0
@@ -0,0 +1,329 @@
1
+ # Configuration Manager
2
+
3
+ Set up and manage multi-channel YouTube, OpenAI, and workflow configurations with team-friendly file organization.
4
+
5
+ ## What It Does
6
+
7
+ **Configuration Manager** centralizes setup for all appydave-tools:
8
+
9
+ - Manages multiple YouTube channel configurations
10
+ - Stores OpenAI API settings
11
+ - Organizes workflow definitions
12
+ - Supports per-developer configuration paths
13
+ - Keeps secrets separate from shared configs
14
+ - Enables team collaboration without exposing credentials
15
+
16
+ ## How to Use
17
+
18
+ ### Configuration Location
19
+
20
+ All configuration stored in:
21
+ ```
22
+ ~/.config/appydave/
23
+ ├── channels.json # YouTube channels (shared)
24
+ ├── settings.json # General settings (shared)
25
+ ├── youtube_automation.json # Workflow definitions (shared)
26
+ ├── tokens/ # OAuth tokens (private, auto-created)
27
+ └── .env # Secrets (private, not in git)
28
+ ```
29
+
30
+ ### Interactive Setup
31
+
32
+ ```bash
33
+ configuration create-channel
34
+
35
+ # Prompts for:
36
+ # - Channel name
37
+ # - YouTube channel ID
38
+ # - YouTube handle
39
+ # - Default folder structure
40
+ ```
41
+
42
+ ### Manual Configuration
43
+
44
+ Edit `~/.config/appydave/channels.json`:
45
+
46
+ ```json
47
+ {
48
+ "channels": [
49
+ {
50
+ "code": "appydave",
51
+ "name": "AppyDave",
52
+ "youtube_handle": "@appydave",
53
+ "youtube_channel_id": "UC...",
54
+ "folders": {
55
+ "content": "/path/to/content",
56
+ "video": "/path/to/videos",
57
+ "published": "/path/to/published",
58
+ "abandoned": "/path/to/abandoned"
59
+ }
60
+ },
61
+ {
62
+ "code": "aitldr",
63
+ "name": "AITLDR",
64
+ "youtube_handle": "@aitldr",
65
+ "youtube_channel_id": "UC...",
66
+ "folders": {...}
67
+ }
68
+ ]
69
+ }
70
+ ```
71
+
72
+ ### Environment Variables
73
+
74
+ Create `~/.config/appydave/.env` (DO NOT commit):
75
+
76
+ ```bash
77
+ OPENAI_API_KEY=sk-...
78
+ YOUTUBE_API_KEY=AIz... # If using API key auth instead of OAuth
79
+ ```
80
+
81
+ ### Folder Structure
82
+
83
+ Each channel uses this structure:
84
+
85
+ ```
86
+ channel-folder/
87
+ ├── content/ # Scripts, notes, outlines
88
+ ├── video/ # Raw video files
89
+ ├── published/ # Finished, uploaded videos
90
+ └── abandoned/ # Projects not finished
91
+ ```
92
+
93
+ ## Use Cases for AI Agents
94
+
95
+ ### 1. Multi-Channel Management
96
+ ```bash
97
+ # Get all configured channels
98
+ configuration list-channels
99
+
100
+ # AI discovers: How many channels, their names, folders
101
+ # Can orchestrate operations across multiple channels
102
+ ```
103
+ **AI discovers**: Channel portfolio. Can coordinate operations across brands.
104
+
105
+ ### 2. Team Collaboration Setup
106
+ ```bash
107
+ # Configure team-friendly paths
108
+ # Shared channels.json (committed)
109
+ # Private .env (gitignored)
110
+ # Each developer has local config for their setup
111
+ ```
112
+ **AI discovers**: Team structure, folder organization. Can ensure consistent setup.
113
+
114
+ ### 3. Channel-Specific Workflows
115
+ ```bash
116
+ # Different workflows per channel
117
+ # appydave: Full FliVideo workflow
118
+ # aitldr: Storyline app workflow
119
+ # configuration tells each tool which channel to use
120
+ ```
121
+ **AI discovers**: Channel-specific requirements. Can apply correct workflows per channel.
122
+
123
+ ### 4. Credential Management
124
+ ```bash
125
+ # Separate shared config from secrets
126
+ # channels.json: In git, shared
127
+ # .env: Gitignored, private
128
+ # tokens/: Auto-created, gitignored
129
+ ```
130
+ **AI discovers**: How to handle credentials safely. Can maintain security while enabling sharing.
131
+
132
+ ### 5. Per-Developer Configuration
133
+ ```bash
134
+ # Each developer might have:
135
+ # Different folder structure
136
+ # Different API keys
137
+ # Different test channels
138
+ # configuration supports all these variations
139
+ ```
140
+ **AI discovers**: Developer flexibility needs. Can allow customization without conflicts.
141
+
142
+ ### 6. Workflow Parameter Injection
143
+ ```bash
144
+ # Configuration provides values to workflows
145
+ # Workflow: "upload to ${channel.youtube_channel_id}"
146
+ # Configuration replaces with actual channel ID
147
+ ```
148
+ **AI discovers**: How configuration drives workflows. Can parameterize operations.
149
+
150
+ ### 7. Setting Management
151
+ ```bash
152
+ # Store tool-wide settings
153
+ settings.json:
154
+ {
155
+ "default_channel": "appydave",
156
+ "api_timeout": 30,
157
+ "retry_attempts": 3,
158
+ "log_level": "info"
159
+ }
160
+ ```
161
+ **AI discovers**: Default behavior, tool preferences. Can respect user settings.
162
+
163
+ ### 8. Audit Trail
164
+ ```bash
165
+ # Who configured what when?
166
+ # Configuration changes are logged
167
+ # Can trace back setup decisions
168
+ configuration audit-log --since "2024-01-01"
169
+ ```
170
+ **AI discovers**: Configuration history. Can understand how system evolved.
171
+
172
+ ### 9. Migration & Backup
173
+ ```bash
174
+ # Export configuration
175
+ configuration export > backup.json
176
+
177
+ # Restore on new machine
178
+ configuration import backup.json
179
+ ```
180
+ **AI discovers**: Portability, disaster recovery. Can migrate configs safely.
181
+
182
+ ### 10. Validation & Health Check
183
+ ```bash
184
+ # Verify configuration is valid
185
+ configuration validate
186
+
187
+ # Check that all folders exist
188
+ configuration health-check
189
+
190
+ # Test API connections
191
+ configuration test-apis
192
+ ```
193
+ **AI discovers**: Configuration correctness. Can identify setup issues early.
194
+
195
+ ## Command Reference
196
+
197
+ ### Channel Management
198
+ ```bash
199
+ configuration create-channel # Interactive setup wizard
200
+ configuration list-channels # Show all configured channels
201
+ configuration get-channel [code] # Get specific channel config
202
+ configuration update-channel [code] # Modify channel
203
+ configuration delete-channel [code] # Remove channel
204
+ ```
205
+
206
+ ### Settings Management
207
+ ```bash
208
+ configuration set KEY VALUE # Set a setting
209
+ configuration get KEY # Get a setting
210
+ configuration list-settings # Show all settings
211
+ ```
212
+
213
+ ### Configuration Files
214
+ ```bash
215
+ configuration init # Create default config
216
+ configuration show # Display current config
217
+ configuration show [file] # Show specific file
218
+ configuration edit # Edit in default editor
219
+ configuration validate # Check config validity
220
+ configuration health-check # Verify folders exist
221
+ ```
222
+
223
+ ### Import/Export
224
+ ```bash
225
+ configuration export [file] # Export to JSON
226
+ configuration import [file] # Import from JSON
227
+ configuration backup # Create backup
228
+ ```
229
+
230
+ ## Configuration Schema
231
+
232
+ ### channels.json
233
+ ```json
234
+ {
235
+ "channels": [
236
+ {
237
+ "code": "string", // Unique identifier
238
+ "name": "string", // Display name
239
+ "youtube_handle": "string", // @handle format
240
+ "youtube_channel_id": "string", // UC... format
241
+ "folders": {
242
+ "content": "string", // Where scripts go
243
+ "video": "string", // Where raw videos go
244
+ "published": "string", // Where finished videos go
245
+ "abandoned": "string" // Where unfinished go
246
+ }
247
+ }
248
+ ]
249
+ }
250
+ ```
251
+
252
+ ### settings.json
253
+ ```json
254
+ {
255
+ "default_channel": "string",
256
+ "api_timeout": "number",
257
+ "retry_attempts": "number",
258
+ "log_level": "string",
259
+ "debug": "boolean"
260
+ }
261
+ ```
262
+
263
+ ### youtube_automation.json
264
+ ```json
265
+ {
266
+ "workflows": {
267
+ "workflow_name": {
268
+ "trigger": "manual|scheduled|event",
269
+ "steps": [...],
270
+ "on_error": "retry|skip|fail"
271
+ }
272
+ }
273
+ }
274
+ ```
275
+
276
+ ## Team Collaboration Pattern
277
+
278
+ ### Recommended Setup
279
+
280
+ ```
281
+ project/
282
+ ├── .gitignore
283
+ ├── config/
284
+ │ ├── channels.json # Committed - shared channels
285
+ │ ├── settings.json # Committed - shared settings
286
+ │ └── workflows.json # Committed - shared workflows
287
+ └── .env # Gitignored - local secrets
288
+
289
+ ~/.config/appydave/ # Local, not in repo
290
+ ├── channels.json # Link to project config OR local copy
291
+ ├── .env # Local API keys (NEVER committed)
292
+ └── tokens/ # OAuth tokens (auto-created)
293
+ ```
294
+
295
+ ### Setup Steps for New Team Member
296
+
297
+ 1. Clone repository
298
+ 2. Link to shared config: `configuration link-config ../project/config/`
299
+ 3. Create local `.env`: `cp .env.example .env && edit .env`
300
+ 4. Verify setup: `configuration health-check`
301
+
302
+ ## Troubleshooting
303
+
304
+ | Issue | Solution |
305
+ |-------|----------|
306
+ | "Channel not found" | Check `channels.json`, verify channel code |
307
+ | "Folder doesn't exist" | Update paths in channels.json to actual folders |
308
+ | "API key not found" | Create `~/.config/appydave/.env` with `OPENAI_API_KEY=` |
309
+ | "Permission denied on folder" | Check folder permissions, add user to group if needed |
310
+ | "Token expired" | Delete `~/.config/appydave/tokens/` to re-authenticate |
311
+
312
+ ## Tips & Tricks
313
+
314
+ 1. **Use short channel codes**: `appydave` not `appydave-official`
315
+ 2. **Keep folders in one parent**: Easier to back up, share
316
+ 3. **Gitignore .env always**: Never commit secrets
317
+ 4. **Test configuration**: Run `configuration health-check` after changes
318
+ 5. **Document custom settings**: Add comments explaining non-obvious values
319
+ 6. **Back up regularly**: Use `configuration backup` before major changes
320
+
321
+ ---
322
+
323
+ **Related Tools**:
324
+ - All tools use configuration for setup
325
+ - `youtube_manager` - Uses channel.json
326
+ - `youtube_automation` - Uses workflows.json
327
+ - `gpt_context` - Can read config for project paths
328
+
329
+ **Security**: Never commit `.env` or tokens/ folder. Always gitignore credentials.
@@ -1,12 +1,16 @@
1
- # GPT Context Usage Guide
1
+ # GPT Context Gatherer
2
2
 
3
- > References: [ChatGPT Documentation](https://chatgpt.com/c/670f2150-08b4-8002-b2d7-04aff6fe304f)
3
+ Collect and organize project files for AI assistant context with flexible filtering and multiple output formats.
4
4
 
5
- This guide provides a comprehensive reference for using the `gpt_context` tool. Below you'll find examples of different use cases and command line invocations to help you effectively use `gpt_context` for gathering and organizing your project files. These examples will help you remember how to leverage various options available in `gpt_context`.
5
+ ## What It Does
6
6
 
7
- ## Overview
7
+ **GPT Context** gathers project files into structured text that you can feed to AI assistants like Claude, ChatGPT, or Copilot. Instead of copying files manually, this tool:
8
8
 
9
- `gpt_context` is a command line utility designed to collect, filter, and organize context from different files within a project. It allows for gathering files based on include and exclude patterns, visualizing the project structure, and exporting collected information in multiple formats, such as content, tree, or JSON.
9
+ - Collects files matching include/exclude patterns
10
+ - Outputs in multiple formats (tree view, content, JSON)
11
+ - Supports line limiting for large files
12
+ - Copies directly to clipboard or saves to files
13
+ - Integrates with aider for AI-assisted coding
10
14
 
11
15
  ### Common Options
12
16
  - **`-i` or `--include`**: Specify patterns or files to include (multiple entries allowed).
@@ -17,9 +21,36 @@ This guide provides a comprehensive reference for using the `gpt_context` tool.
17
21
  - **`-l` or `--line-limit`**: Limit the number of lines included from each file.
18
22
  - **`-b` or `--base-dir`**: Set the base directory to gather files from. Current working directory is used if not supplied.
19
23
 
20
- ## Usage Examples
24
+ ## How to Use
21
25
 
22
- ### 1. Gathering File Contents
26
+ ### Quick Start
27
+
28
+ ```bash
29
+ # Include specific file types
30
+ gpt_context -i '**/*.rb' -e 'spec/**/*'
31
+
32
+ # Include and see what you're collecting
33
+ gpt_context -i '**/*.rb' -e 'spec/**/*' -d -o context.txt
34
+
35
+ # Multiple patterns for inclusion
36
+ gpt_context -i 'lib/**/*.rb' -i 'bin/**/*.rb' -e '**/node_modules/**/*'
37
+ ```
38
+
39
+ ### Common Options
40
+
41
+ - **`-i` or `--include`**: Specify patterns or files to include (multiple entries allowed).
42
+ - **`-e` or `--exclude`**: Specify patterns or files to exclude (multiple entries allowed).
43
+ - **`-f` or `--format`**: Output format (`content`, `tree`, or `json`). If not provided, then `tree` followed by `content` is used by default.
44
+ - **`-d` or `--debug`**: Enable debug mode (`info`, `params`, `debug`). Default is `info`.
45
+ - **`-o` or `--output`**: Set output target (`clipboard` or file path). Default is `clipboard`.
46
+ - **`-l` or `--line-limit`**: Limit lines included from each file.
47
+ - **`-b` or `--base-dir`**: Set base directory. Default is current working directory.
48
+ - **`-p` or `--prompt`**: Include prompt for aider format output.
49
+ - **`-h` or `--help`**: Show help message.
50
+
51
+ ### Usage Examples
52
+
53
+ #### 1. Gathering File Contents
23
54
  To gather the content of specific files and print it to the console, you can use the `-f content` format option:
24
55
 
25
56
  ```sh
@@ -192,3 +223,83 @@ output_handler.execute
192
223
  ```
193
224
  **Explanation**: This complete example demonstrates how to use `Options` to configure the gathering process, `FileCollector` to collect the files, and `OutputHandler` to manage the output. This approach can be useful for programmatically automating context collection tasks in more complex workflows.
194
225
 
226
+ ## Use Cases for AI Agents
227
+
228
+ AI agents can leverage GPT Context to understand and work with codebases more effectively:
229
+
230
+ ### 1. Code Review & Quality Analysis
231
+ ```bash
232
+ # Feed component for AI review
233
+ gpt_context -i 'lib/auth/**/*' -e '**/*.test.rb' -o review-context.txt
234
+ ```
235
+ **AI discovers**: Component structure, dependencies, testing patterns. Can identify architectural issues, suggest refactoring, spot security gaps.
236
+
237
+ ### 2. Bug Investigation & Diagnosis
238
+ ```bash
239
+ # Gather related error handling code
240
+ gpt_context -i 'lib/errors/**/*' -i 'lib/handlers/**/*' -f tree -d
241
+ ```
242
+ **AI discovers**: Error handling patterns, exception hierarchy, recovery mechanisms. Can diagnose root causes, suggest fixes.
243
+
244
+ ### 3. Feature Implementation Assistance
245
+ ```bash
246
+ # Get codebase patterns before building new features
247
+ gpt_context -i 'lib/**/*.rb' -l 30 -f tree -o implementation-context.txt
248
+ ```
249
+ **AI discovers**: Coding patterns, naming conventions, architectural decisions. Can write code that matches existing style and patterns.
250
+
251
+ ### 4. Documentation Generation
252
+ ```bash
253
+ # Gather public API
254
+ gpt_context -i 'lib/api/**/*.rb' -e 'lib/api/internal/**/*' -d
255
+ ```
256
+ **AI discovers**: Public interfaces, parameters, return types. Can generate API documentation, usage examples, schema definitions.
257
+
258
+ ### 5. Test Coverage Analysis
259
+ ```bash
260
+ # Compare implementation vs test coverage
261
+ gpt_context -i 'lib/**/*.rb' -i 'spec/**/*.rb' -f tree -d
262
+ ```
263
+ **AI discovers**: Which files have tests, which are untested, testing patterns. Can suggest test structure, identify coverage gaps.
264
+
265
+ ### 6. Performance & Optimization Review
266
+ ```bash
267
+ # Gather performance-critical sections
268
+ gpt_context -i 'lib/cache/**/*' -i 'lib/queries/**/*' -o perf-analysis.txt
269
+ ```
270
+ **AI discovers**: Caching strategy, query patterns, bottlenecks. Can identify optimization opportunities, suggest refactoring.
271
+
272
+ ### 7. Architecture Understanding
273
+ ```bash
274
+ # Map entire module structure
275
+ gpt_context -i 'lib/appydave/tools/**/*' -e '**/spec/**/*' -f tree -d
276
+ ```
277
+ **AI discovers**: Module organization, relationships, responsibilities. Can explain design, suggest improvements, plan migrations.
278
+
279
+ ### 8. Onboarding & Learning
280
+ ```bash
281
+ # Starter context for new team members
282
+ gpt_context -i 'lib/**/*.rb' -e 'spec/**/*' -e 'deprecated/**/*' -l 50 -f tree
283
+ ```
284
+ **AI discovers**: Codebase structure, entry points, key patterns. Can answer questions about how to do things, where code lives.
285
+
286
+ ### 9. Refactoring Preparation
287
+ ```bash
288
+ # Analyze legacy code before refactoring
289
+ gpt_context -i 'legacy/**/*.js' -l 30 -f tree -d
290
+ ```
291
+ **AI discovers**: Current structure, dependencies, risk areas. Can propose refactoring strategy, identify breaking changes.
292
+
293
+ ### 10. Multi-Language Code Integration
294
+ ```bash
295
+ # Understand how languages interact
296
+ gpt_context -i 'lib/**/*.rb' -i 'src/**/*.ts' -e '**/node_modules/**/*' -f tree
297
+ ```
298
+ **AI discovers**: Language boundaries, integration points, protocol definitions. Can suggest improvements, identify compatibility issues.
299
+
300
+ ---
301
+
302
+ **Related Tools**:
303
+ - Use with `aider` for AI-assisted coding workflows
304
+ - Combine with `youtube-manager` for video metadata context
305
+ - Works with any AI assistant (Claude, ChatGPT, Copilot, etc.)