@mytechtoday/augment-extensions 2.2.0 → 2.3.1
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.
- package/README.md +154 -12
- package/augment-extensions/coding-standards/perl/README.md +173 -0
- package/cli/dist/commands/generate-shot-list/formatter/base-formatter.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/formatter/base-formatter.js +7 -5
- package/cli/dist/commands/generate-shot-list/formatter/base-formatter.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/formatter/json-formatter.d.ts +1 -0
- package/cli/dist/commands/generate-shot-list/formatter/json-formatter.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/formatter/json-formatter.js +6 -0
- package/cli/dist/commands/generate-shot-list/formatter/json-formatter.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.d.ts +1 -0
- package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.js +6 -0
- package/cli/dist/commands/generate-shot-list/formatter/jsonl-formatter.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.d.ts +14 -0
- package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.js +44 -3
- package/cli/dist/commands/generate-shot-list/formatter/markdown-formatter.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/context-builder.d.ts +29 -1
- package/cli/dist/commands/generate-shot-list/generator/context-builder.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/context-builder.js +326 -27
- package/cli/dist/commands/generate-shot-list/generator/context-builder.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/index.d.ts +28 -0
- package/cli/dist/commands/generate-shot-list/generator/index.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/index.js +213 -38
- package/cli/dist/commands/generate-shot-list/generator/index.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/metadata-extractor.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/metadata-extractor.js +1 -0
- package/cli/dist/commands/generate-shot-list/generator/metadata-extractor.js.map +1 -1
- package/cli/dist/commands/generate-shot-list/generator/types.d.ts +10 -3
- package/cli/dist/commands/generate-shot-list/generator/types.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list/schema/shot-list.schema.json +341 -0
- package/cli/dist/commands/generate-shot-list/schema/validator.d.ts +55 -0
- package/cli/dist/commands/generate-shot-list/schema/validator.d.ts.map +1 -0
- package/cli/dist/commands/generate-shot-list/schema/validator.js +180 -0
- package/cli/dist/commands/generate-shot-list/schema/validator.js.map +1 -0
- package/cli/dist/commands/generate-shot-list.d.ts.map +1 -1
- package/cli/dist/commands/generate-shot-list.js +35 -24
- package/cli/dist/commands/generate-shot-list.js.map +1 -1
- package/cli/dist/commands/gui.d.ts.map +1 -1
- package/cli/dist/commands/gui.js +28 -9
- package/cli/dist/commands/gui.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Reusable augmentation modules for Augment Code AI - Beyond the 49,400 character limit.**
|
|
4
4
|
|
|
5
|
-
[](https://github.com/mytech-today-now/augment-extensions)
|
|
6
6
|
[](./LICENSE)
|
|
7
7
|
[](https://www.npmjs.com/package/@mytechtoday/augment-extensions)
|
|
8
8
|
[](https://github.com/mytech-today-now/augment-extensions/actions/workflows/ci.yml)
|
|
@@ -14,17 +14,76 @@ Augment Extensions is a modular repository system that extends Augment Code AI's
|
|
|
14
14
|
|
|
15
15
|
Augment Code AI limits the `.augment/` folder to ~49,400 characters. This repository provides:
|
|
16
16
|
|
|
17
|
-
- **
|
|
17
|
+
- **2.3M+ characters** of comprehensive guidelines across 22+ modules
|
|
18
18
|
- **Coding standards** for 8 languages/frameworks (HTML, CSS, JS, TypeScript, Python, React, PHP)
|
|
19
19
|
- **Domain-specific rules** (WordPress, API design, security, databases, MCP)
|
|
20
|
+
- **Writing standards** (Screenplay with 17 cinematic styles, Shakespeare)
|
|
20
21
|
- **Workflow integrations** (OpenSpec, Beads)
|
|
21
22
|
- **Extensive examples** (Gutenberg blocks, REST API, WooCommerce, design patterns)
|
|
22
23
|
- **Versioned updates** that propagate to consuming projects
|
|
23
24
|
- **Project-agnostic modules** that work across different codebases
|
|
24
25
|
|
|
25
|
-
## ✨ What's New in
|
|
26
|
-
|
|
27
|
-
###
|
|
26
|
+
## ✨ What's New in v2.3.1
|
|
27
|
+
|
|
28
|
+
### Shot List Generator - Quality Improvements 🎬✨
|
|
29
|
+
|
|
30
|
+
**Critical Quality Fixes:**
|
|
31
|
+
Three major improvements to shot list output quality for high-end video generation:
|
|
32
|
+
|
|
33
|
+
1. ✅ **Duration Formatting Bug Fixed** - Eliminated floating-point artifacts
|
|
34
|
+
- Before: `2.000000004s` or `0:7.4`
|
|
35
|
+
- After: `2s` or `0:07` (clean MM:SS format)
|
|
36
|
+
- Added `Math.round()` to all duration calculations
|
|
37
|
+
|
|
38
|
+
2. ✅ **ANSI Color Code Removal** - Clean file output
|
|
39
|
+
- Before: `[32m713[39m / 4000` (terminal colors in files)
|
|
40
|
+
- After: `713 / 4000` (clean text)
|
|
41
|
+
- Removed Chalk color wrapping from Markdown/JSON/JSONL output
|
|
42
|
+
|
|
43
|
+
3. ✅ **Massively Enhanced Description Verbosity** - 10x increase for generative AI
|
|
44
|
+
- Before: Average 375 characters per shot
|
|
45
|
+
- After: Average **3,571 characters** per shot (3000-4000 target range)
|
|
46
|
+
- Total output: **124,983 characters** (was 13,122)
|
|
47
|
+
- Enhanced context descriptions (1000+ chars): Spatial composition, lighting design, atmospheric quality
|
|
48
|
+
- Enhanced character descriptions (500-800 chars each): Physical appearance, wardrobe details, emotional state, body language
|
|
49
|
+
- Improved Character Bible extraction: Captures multiple sentences for verbose descriptions
|
|
50
|
+
- Production-ready for high-end video generation AI (Runway, Pika, Sora, etc.)
|
|
51
|
+
|
|
52
|
+
**Impact:**
|
|
53
|
+
- 🎯 **Perfect for Generative AI** - Extremely detailed descriptions provide sufficient context for video generation models
|
|
54
|
+
- 🎨 **Cinematic Detail** - Includes lighting, atmosphere, spatial composition, fabric textures, emotional nuance
|
|
55
|
+
- 📊 **Consistent Quality** - Character Bible and Set Bible maintain continuity across all shots
|
|
56
|
+
- ✅ **Clean Output** - No formatting artifacts, ready for production pipelines
|
|
57
|
+
|
|
58
|
+
## ✨ What's New in v2.3.0
|
|
59
|
+
|
|
60
|
+
### Shot List Generator Refactor - Production Ready 🎬
|
|
61
|
+
|
|
62
|
+
**Major Refactor Complete (AUGX-SHOT-GEN-001):**
|
|
63
|
+
All 12 requirements implemented for production-ready shot list generation:
|
|
64
|
+
|
|
65
|
+
1. ✅ **Default Output Behavior** - Auto-generates `<input>-ai-shot-list.<ext>` when `--output` not provided
|
|
66
|
+
2. ✅ **Intelligent Shot Splitting** - Automatically splits shots exceeding max duration into sub-shots (3a, 3b, 3c)
|
|
67
|
+
3. ✅ **Duration Formatting** - Clean MM:SS format for all durations (no decimals)
|
|
68
|
+
4. ✅ **Terminal Feedback Severity** - Color-coded warnings (red errors, yellow warnings)
|
|
69
|
+
5. ✅ **Visual Style Property** - Reality/Animation/CGI/Hybrid classification per shot
|
|
70
|
+
6. ✅ **Simplified Character Count** - Clean `C: #### / 4000` format with color indicators
|
|
71
|
+
7. ✅ **No-Dialogue Shots** - Explicit "No dialogue in this shot" in descriptions
|
|
72
|
+
8. ✅ **Mandatory Dialogue Property** - MPAA-style screenplay format or "No dialogue in this shot"
|
|
73
|
+
9. ✅ **Character Blocking Continuity** - Tracks positions/wardrobe/appearance across shots
|
|
74
|
+
10. ✅ **Rich Character Descriptions** - Character Bible with complete wardrobe/appearance/props/emotion
|
|
75
|
+
11. ✅ **Rich Set Descriptions** - Set Bible with environment/lighting/atmosphere/weather/timeOfDay
|
|
76
|
+
12. ✅ **JSON/JSONL Format Corrections** - Valid JSON with all fields, JSONL one shot per line
|
|
77
|
+
|
|
78
|
+
**Key Features:**
|
|
79
|
+
- 🎭 **Character Bible System** - Maintains consistent character descriptions across all shots
|
|
80
|
+
- 🎬 **Set Bible System** - Maintains consistent set/location descriptions across all shots
|
|
81
|
+
- 📐 **Blocking Continuity** - Tracks character positions and spatial relationships
|
|
82
|
+
- 🎨 **Visual Style Detection** - Automatically determines Reality/Animation/CGI/Hybrid
|
|
83
|
+
- 📊 **Production-Ready Output** - Suitable for downstream video generation AI
|
|
84
|
+
- ✅ **Validated JSON/JSONL** - Properly structured output for automated processing
|
|
85
|
+
|
|
86
|
+
### Previous Updates (v1.6.1)
|
|
28
87
|
|
|
29
88
|
**Shakespeare Module Enhancements:**
|
|
30
89
|
- ✅ **Comedy Scene Examples** - Added 2 comprehensive scene examples:
|
|
@@ -459,7 +518,7 @@ See [.augment/mcp/README.md](./.augment/mcp/README.md) for detailed MCP integrat
|
|
|
459
518
|
|
|
460
519
|
```
|
|
461
520
|
augment-extensions/
|
|
462
|
-
├── augment-extensions/ # Extension modules (
|
|
521
|
+
├── augment-extensions/ # Extension modules (2.3M+ characters)
|
|
463
522
|
│ ├── coding-standards/ # Language/framework standards (8 modules)
|
|
464
523
|
│ │ ├── html/ # HTML standards (32K chars)
|
|
465
524
|
│ │ ├── css/ # CSS standards (30K chars)
|
|
@@ -478,6 +537,21 @@ augment-extensions/
|
|
|
478
537
|
│ │ ├── security/ # OWASP security guidelines (38K chars)
|
|
479
538
|
│ │ ├── wordpress/ # WordPress development (general)
|
|
480
539
|
│ │ └── wordpress-plugin/ # WordPress plugin development (344K chars)
|
|
540
|
+
│ ├── writing-standards/ # Writing standards (2 modules, 583K chars) ✨ NEW
|
|
541
|
+
│ │ ├── screenplay/ # Screenplay writing (163.5K chars)
|
|
542
|
+
│ │ │ ├── cinematic-styles/ # 17 cinematic style guides (257K chars)
|
|
543
|
+
│ │ │ │ ├── directors/ # 11 auteur directors (Nolan, Tarantino, Lynch, etc.)
|
|
544
|
+
│ │ │ │ ├── franchises/ # Star Wars, MCU/Avengers
|
|
545
|
+
│ │ │ │ ├── films/ # Blue Ruin (indie filmmaking)
|
|
546
|
+
│ │ │ │ ├── comedy-formats/ # Monty Python, Saturday Night Live
|
|
547
|
+
│ │ │ │ └── narrative-theory/ # Joseph Campbell (Hero's Journey)
|
|
548
|
+
│ │ │ ├── genres/ # Genre conventions
|
|
549
|
+
│ │ │ ├── styles/ # Narrative styles (linear, non-linear, etc.)
|
|
550
|
+
│ │ │ └── themes/ # Thematic integration
|
|
551
|
+
│ │ └── literature/ # Literature writing standards
|
|
552
|
+
│ │ └── shakespeare/ # Shakespeare writing (419.7K chars)
|
|
553
|
+
│ │ ├── rules/ # Poetry, drama, language, character & themes
|
|
554
|
+
│ │ └── examples/ # Annotated sonnets, scene examples, exercises
|
|
481
555
|
│ ├── workflows/ # Workflow integrations (2 modules)
|
|
482
556
|
│ │ ├── openspec/ # Spec-driven development (32K chars)
|
|
483
557
|
│ │ └── beads/ # Git-backed issue tracking (39K chars)
|
|
@@ -752,12 +826,41 @@ augx use coding-standards/typescript --version 1.0.0 --pin
|
|
|
752
826
|
- **[WooCommerce Extension](./augment-extensions/examples/woocommerce-extension/)** (v1.0.0, ~24K chars)
|
|
753
827
|
- Product customizer with custom fields, checkout customization
|
|
754
828
|
|
|
829
|
+
### Writing Standards (2 modules, ~583K chars)
|
|
830
|
+
|
|
831
|
+
- **[Screenplay Writing Standards](./augment-extensions/writing-standards/screenplay/)** (v1.0.0, ~163.5K chars)
|
|
832
|
+
- **Industry-Standard Formatting** - AMPAS Nicholl Fellowship formatting standards
|
|
833
|
+
- **Narrative Frameworks** - Syd Field, Blake Snyder, Joseph Campbell structures
|
|
834
|
+
- **8 Screenplay Categories** - Hollywood, indie, TV, web, news, commercials, streaming, live TV
|
|
835
|
+
- **Character Development** - Programmatic character arcs, traits, motivations
|
|
836
|
+
- **Dialogue Mastery** - Natural speech, subtext, character voice
|
|
837
|
+
- **Screen Continuity** - Visual consistency rules (180-degree rule, match cuts)
|
|
838
|
+
- **Fountain Format** - Industry-standard plain-text screenplay markup
|
|
839
|
+
- **Cinematic Styles** (257K chars) - 17 comprehensive style guides:
|
|
840
|
+
- **11 Auteur Directors** - Christopher Nolan, Quentin Tarantino, Coen Brothers, David Lynch, Denis Villeneuve, Martin Scorsese, Steven Spielberg, Stanley Kubrick, Wes Anderson, Francis Ford Coppola, George Lucas
|
|
841
|
+
- **2 Franchises** - Star Wars, MCU/Avengers
|
|
842
|
+
- **1 Film** - Blue Ruin (indie filmmaking)
|
|
843
|
+
- **2 Comedy Formats** - Monty Python, Saturday Night Live
|
|
844
|
+
- **1 Narrative Theory** - Joseph Campbell (Hero's Journey)
|
|
845
|
+
- **VS Code Integration** - Better Fountain extension support
|
|
846
|
+
- **Export Tools** - Final Draft (.fdx), PDF, HTML export
|
|
847
|
+
|
|
848
|
+
- **[Shakespeare Writing Standards](./augment-extensions/writing-standards/literature/shakespeare/)** (v1.0.0, ~419.7K chars)
|
|
849
|
+
- **Poetry** - Sonnets, narrative poetry, verse forms, iambic pentameter
|
|
850
|
+
- **Drama** - Tragedy, comedy, history plays, scene construction
|
|
851
|
+
- **Language** - Elizabethan English, rhetoric & wordplay, vocabulary guide
|
|
852
|
+
- **Character & Themes** - Character development, thematic elements
|
|
853
|
+
- **Annotated Examples** - Sonnets, scene examples, exercises
|
|
854
|
+
- **Comedy Scene Examples** - Much Ado About Nothing Act 2 Scene 3 (497 lines), Twelfth Night Act 2 Scene 5 (654 lines)
|
|
855
|
+
- **Comprehensive Coverage** - 33 files, 10,000+ lines, complete guide to Shakespearean writing
|
|
856
|
+
|
|
755
857
|
### Statistics
|
|
756
858
|
|
|
757
|
-
- **Total Modules**:
|
|
758
|
-
- **Total Character Count**: ~
|
|
859
|
+
- **Total Modules**: 22 (8 coding standards, 6 domain rules, 2 workflows, 4 examples, 2 writing standards)
|
|
860
|
+
- **Total Character Count**: ~2,357,692 (2.3M+ characters)
|
|
759
861
|
- **Languages Covered**: HTML, CSS, JavaScript, TypeScript, Python, React, PHP
|
|
760
862
|
- **Domains Covered**: APIs, Databases, MCP, Security, WordPress
|
|
863
|
+
- **Writing Formats**: Screenplay (Fountain), Shakespearean Literature
|
|
761
864
|
|
|
762
865
|
See [MODULES.md](./MODULES.md) for detailed module documentation.
|
|
763
866
|
|
|
@@ -930,6 +1033,43 @@ augx link domain-rules/security
|
|
|
930
1033
|
augx link workflows/openspec
|
|
931
1034
|
```
|
|
932
1035
|
|
|
1036
|
+
### Example 6: Screenplay Writing with Cinematic Styles
|
|
1037
|
+
|
|
1038
|
+
```bash
|
|
1039
|
+
# Link screenplay writing standards
|
|
1040
|
+
augx link writing-standards/screenplay
|
|
1041
|
+
|
|
1042
|
+
# Generate shot list with cinematic style
|
|
1043
|
+
augx generate-shot-list --path my-screenplay.fountain --style christopher-nolan
|
|
1044
|
+
|
|
1045
|
+
# Generate shot list with multiple styles (priority-based merging)
|
|
1046
|
+
augx generate-shot-list --path my-screenplay.fountain \
|
|
1047
|
+
--style christopher-nolan \
|
|
1048
|
+
--style denis-villeneuve
|
|
1049
|
+
|
|
1050
|
+
# View available cinematic styles
|
|
1051
|
+
augx show writing-standards/screenplay
|
|
1052
|
+
|
|
1053
|
+
# Search for specific director styles
|
|
1054
|
+
augx search "quentin tarantino"
|
|
1055
|
+
augx search "wes anderson"
|
|
1056
|
+
```
|
|
1057
|
+
|
|
1058
|
+
### Example 7: Shakespearean Writing
|
|
1059
|
+
|
|
1060
|
+
```bash
|
|
1061
|
+
# Link Shakespeare writing standards
|
|
1062
|
+
augx link writing-standards/literature/shakespeare
|
|
1063
|
+
|
|
1064
|
+
# View Shakespeare module content
|
|
1065
|
+
augx show shakespeare
|
|
1066
|
+
|
|
1067
|
+
# Search for specific topics
|
|
1068
|
+
augx search "iambic pentameter"
|
|
1069
|
+
augx search "comedy techniques"
|
|
1070
|
+
augx search "sonnets"
|
|
1071
|
+
```
|
|
1072
|
+
|
|
933
1073
|
## 🔄 Update Propagation
|
|
934
1074
|
|
|
935
1075
|
When module maintainers release updates:
|
|
@@ -1085,11 +1225,12 @@ augx search "REST API"
|
|
|
1085
1225
|
|
|
1086
1226
|
### Comprehensive Coverage
|
|
1087
1227
|
|
|
1088
|
-
- **
|
|
1228
|
+
- **2.3M+ characters** of guidelines across 22+ modules
|
|
1089
1229
|
- **8 programming languages/frameworks** - HTML, CSS, JavaScript, TypeScript, Python, React, PHP
|
|
1090
1230
|
- **6 domain-specific areas** - APIs, Databases, MCP, Security, WordPress
|
|
1091
1231
|
- **2 workflow systems** - OpenSpec (spec-driven development), Beads (issue tracking)
|
|
1092
1232
|
- **4 example modules** - Design patterns, Gutenberg blocks, REST API, WooCommerce
|
|
1233
|
+
- **2 writing standards** - Screenplay (with 17 cinematic styles), Shakespeare
|
|
1093
1234
|
|
|
1094
1235
|
### Model Context Protocol (MCP) - 219K chars ✨ NEW
|
|
1095
1236
|
|
|
@@ -1171,8 +1312,9 @@ MIT License - See [LICENSE](./LICENSE) for details.
|
|
|
1171
1312
|
| **Domain Rules** | 6 | ~1,085,000 | APIs, Databases, MCP, Security, WordPress |
|
|
1172
1313
|
| **Workflows** | 2 | ~71,000 | OpenSpec, Beads |
|
|
1173
1314
|
| **Examples** | 4 | ~122,000 | Design Patterns, Gutenberg, REST API, WooCommerce |
|
|
1315
|
+
| **Writing Standards** | 2 | ~583,000 | Screenplay (Cinematic Styles), Shakespeare |
|
|
1174
1316
|
| **Collections** | 1 | ~164,000 | HTML/CSS/JS Bundle |
|
|
1175
|
-
| **TOTAL** | **
|
|
1317
|
+
| **TOTAL** | **22** | **~2,357,000** | **2.3M+ characters** |
|
|
1176
1318
|
|
|
1177
1319
|
## 🔗 Links
|
|
1178
1320
|
|
|
@@ -1183,7 +1325,7 @@ MIT License - See [LICENSE](./LICENSE) for details.
|
|
|
1183
1325
|
|
|
1184
1326
|
---
|
|
1185
1327
|
|
|
1186
|
-
**Status**: Active Development | **Version**:
|
|
1328
|
+
**Status**: Active Development | **Version**: 2.3.0 | **Maintainer**: @mytech-today-now
|
|
1187
1329
|
|
|
1188
|
-
**Latest Release**:
|
|
1330
|
+
**Latest Release**: Shot List Generator Refactor Complete (AUGX-SHOT-GEN-001) - Production-ready shot list generation with Character/Set Bibles, intelligent shot splitting, blocking continuity, visual style detection, and validated JSON/JSONL output for downstream video generation AI.
|
|
1189
1331
|
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Perl Coding Standard
|
|
2
|
+
|
|
3
|
+
This document defines the coding standards for all Perl code in projects using augment-extensions. The goal is to ensure consistency, readability, maintainability, security, and performance across Perl 5.20+ codebases (preferably 5.36+ for modern features).
|
|
4
|
+
|
|
5
|
+
These guidelines build on core Perl community recommendations:
|
|
6
|
+
- `perlstyle` (core Perl style guide)
|
|
7
|
+
- Perl Best Practices (Damian Conway, O'Reilly 2005 — still highly relevant)
|
|
8
|
+
- Modern Perl (4th edition practices)
|
|
9
|
+
- Perltidy defaults with overrides for team consistency
|
|
10
|
+
|
|
11
|
+
All Perl code **must** pass strict and warnings, and should use modern features where they improve clarity and safety.
|
|
12
|
+
|
|
13
|
+
## 1. File Naming and Organization
|
|
14
|
+
|
|
15
|
+
- Use lowercase_with_underscores.pl for scripts.
|
|
16
|
+
- Use CamelCase.pm for modules / classes (but prefer lowercase_with_underscores.pm for utility modules when not object-oriented).
|
|
17
|
+
- Main application entry point: `app.pl` or `scriptname.pl`.
|
|
18
|
+
- Tests: `t/001_basic.t`, `t/foo-bar.t` (use descriptive names).
|
|
19
|
+
- Configuration files: `.pl`, `.conf`, or `.ini` (avoid `.pm` unless it's a config module).
|
|
20
|
+
- Organize large projects with `lib/`, `bin/`, `t/`, `script/`, `share/`.
|
|
21
|
+
|
|
22
|
+
**Must** place `use strict;` and `use warnings;` (or `use v5.36;` which implies them) at the top of every file.
|
|
23
|
+
|
|
24
|
+
```perl
|
|
25
|
+
use v5.36; # Enables strict, warnings, signatures, etc.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 2. Indentation and Whitespace
|
|
29
|
+
|
|
30
|
+
Use 4 spaces for indentation (no tabs).
|
|
31
|
+
Use perltidy with project .perltidyrc for automatic formatting:
|
|
32
|
+
-i=4 -et=4 -l=100 -ce -bar -bbb -bbc -bbs
|
|
33
|
+
|
|
34
|
+
Align fat commas (=>) where reasonable.
|
|
35
|
+
|
|
36
|
+
Keep lines ≤ 100 characters (soft limit 120).
|
|
37
|
+
One true brace style (K&R / OTBS): opening brace on same line as control structure.
|
|
38
|
+
|
|
39
|
+
Blank lines:
|
|
40
|
+
1 between logical blocks inside subroutines.
|
|
41
|
+
2 between subroutines.
|
|
42
|
+
|
|
43
|
+
Avoid trailing whitespace.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
Example:
|
|
47
|
+
```perl
|
|
48
|
+
sub process_data ($data) {
|
|
49
|
+
my $result = {};
|
|
50
|
+
|
|
51
|
+
if ($data->{enabled}) {
|
|
52
|
+
$result->{status} = 'active';
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
$result->{status} = 'inactive';
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return $result;
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 3. Naming Conventions
|
|
63
|
+
|
|
64
|
+
Variables: $snake_case (lowercase with underscores).
|
|
65
|
+
Constants: UPPER_CASE.
|
|
66
|
+
Subroutines: snake_case().
|
|
67
|
+
Packages/Modules: CamelCase for OO / distributions, lowercase::with::namespaces otherwise.
|
|
68
|
+
Filehandles: $fh or $IN_FH, $OUT_FH.
|
|
69
|
+
Package variables: avoid globals; prefer our or state when needed.
|
|
70
|
+
Avoid single-letter variables except for obvious loop counters ($i, $j) or throwaways ($_).
|
|
71
|
+
|
|
72
|
+
Prefer lexical variables (my, our, state) over local or package globals.
|
|
73
|
+
Avoid $a, $b outside sort blocks.
|
|
74
|
+
|
|
75
|
+
## 4. Comments and Documentation
|
|
76
|
+
|
|
77
|
+
Use POD for module/user documentation.
|
|
78
|
+
Inline comments for non-obvious logic only.
|
|
79
|
+
Use # for comments, aligned when possible.
|
|
80
|
+
Document all subs with purpose, params, returns using simple POD or plain comments.
|
|
81
|
+
For complex regexes, use /xms and comment each line.
|
|
82
|
+
|
|
83
|
+
Example:
|
|
84
|
+
```perl
|
|
85
|
+
|
|
86
|
+
# Parse ISO date with named captures
|
|
87
|
+
if ($input =~ m{
|
|
88
|
+
^ (?<year> \d{4} ) -
|
|
89
|
+
(?<month> \d{2} ) -
|
|
90
|
+
(?<day> \d{2} ) $
|
|
91
|
+
}xms) {
|
|
92
|
+
# ...
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 5. Language Features and Best Practices
|
|
97
|
+
|
|
98
|
+
Alwaysuse v5.36; (or at minimum use 5.20;) for signatures, postderef, etc.
|
|
99
|
+
Use subroutine signatures (sub foo ($bar, $baz) { ... }).
|
|
100
|
+
Prefer say over print when no newline is unwanted.
|
|
101
|
+
Use // (defined-or) and //= over || for defaults unless undef is meaningful.
|
|
102
|
+
List assignment and slices for clarity:
|
|
103
|
+
|
|
104
|
+
```perl
|
|
105
|
+
my ($host, $port) = @config{qw(host port)};
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Use Carp instead of die in libraries (croak, confess).
|
|
109
|
+
Prefer exceptions over return undef for error handling.
|
|
110
|
+
Use Try::Tiny or core try/catch (v5.36+) for exception handling.
|
|
111
|
+
|
|
112
|
+
```perl
|
|
113
|
+
use Try::Tiny;
|
|
114
|
+
|
|
115
|
+
try {
|
|
116
|
+
dangerous_operation();
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
croak "Failed: $_";
|
|
120
|
+
};
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 6. Control Structures
|
|
124
|
+
|
|
125
|
+
Prefer postfix conditionals for simple guards:
|
|
126
|
+
|
|
127
|
+
```perl
|
|
128
|
+
return if !$condition;
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Use for instead of foreach (they are synonyms, but for is idiomatic).
|
|
132
|
+
Avoid C-style for (;;) unless performance-critical.
|
|
133
|
+
Use given/when sparingly (deprecated in future Perl); prefer if/elsif/else.
|
|
134
|
+
|
|
135
|
+
## 7. Regular Expressions
|
|
136
|
+
|
|
137
|
+
Always use /xms flags for complex regexes.
|
|
138
|
+
Use named captures ((?<name>...)) over numbered.
|
|
139
|
+
Prefer qr// for building regexes.
|
|
140
|
+
Quote regex metacharacters when interpolating user input (quotemeta).
|
|
141
|
+
|
|
142
|
+
## 8. Error Handling and Security
|
|
143
|
+
|
|
144
|
+
Check return values of system calls (open, sysread, chdir, etc.).
|
|
145
|
+
Use IPC::System::Simple or capture output safely.
|
|
146
|
+
Taint mode (-T) for CGI / untrusted input scripts.
|
|
147
|
+
Use Hash::Util to lock hashes where appropriate.
|
|
148
|
+
Avoid system(@args) with interpolation; prefer list form.
|
|
149
|
+
|
|
150
|
+
## 9. Testing
|
|
151
|
+
|
|
152
|
+
Use Test2::V0 or Test::More + Test2::Suite.
|
|
153
|
+
Write tests first when feasible (TDD encouraged).
|
|
154
|
+
Aim for >80% coverage on business logic.
|
|
155
|
+
Use done_testing() instead of plan count.
|
|
156
|
+
|
|
157
|
+
## 10. Performance and Modernization
|
|
158
|
+
|
|
159
|
+
Profile before optimizing (Devel::NYTProf).
|
|
160
|
+
Prefer arrayrefs over arrays for large data.
|
|
161
|
+
Use Moo / Moose / Mojo::Base for OO (project choice).
|
|
162
|
+
Avoid source filters.
|
|
163
|
+
Use feature qw( postderef signatures ) if not using v5.36.
|
|
164
|
+
|
|
165
|
+
## Tooling
|
|
166
|
+
|
|
167
|
+
Run perltidy -b before commit.
|
|
168
|
+
Use perlcritic with severity 3+ (custom .perlcriticrc recommended).
|
|
169
|
+
Enforce via pre-commit hooks or CI.
|
|
170
|
+
|
|
171
|
+
Follow these guidelines unless a deliberate, documented exception exists. Consistency across the codebase takes precedence over individual preferences.
|
|
172
|
+
|
|
173
|
+
This new Perl standard mirrors the structure, prescriptive tone, code examples, and depth seen in the repo's other language standards (e.g., Python's emphasis on modern features/type hints, PHP's PSR adherence with extensions). Place it in `augment-extensions/coding-standards/perl/README.md` (or similar) to match the pattern. If you need adjustments or more sections, let me know!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/base-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"base-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/base-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aA4B3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,WAwBzB,CAAC;AAEF;;GAEG;AACH,8BAAsB,aAAc,YAAW,SAAS;IACtD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IACvE,QAAQ,CAAC,YAAY,IAAI,MAAM;IAC/B,QAAQ,CAAC,WAAW,IAAI,MAAM;IAE9B;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAItD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAIxE;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAOzD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAKrD;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CAI3D"}
|
|
@@ -14,17 +14,19 @@ exports.timeFormatter = {
|
|
|
14
14
|
* Format seconds to MM:SS
|
|
15
15
|
*/
|
|
16
16
|
formatTime(seconds) {
|
|
17
|
-
const
|
|
18
|
-
const
|
|
17
|
+
const roundedSeconds = Math.round(seconds);
|
|
18
|
+
const mins = Math.floor(roundedSeconds / 60);
|
|
19
|
+
const secs = roundedSeconds % 60;
|
|
19
20
|
return `${mins}:${secs.toString().padStart(2, '0')}`;
|
|
20
21
|
},
|
|
21
22
|
/**
|
|
22
23
|
* Format total duration to human-readable format
|
|
23
24
|
*/
|
|
24
25
|
formatDuration(totalSeconds) {
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
26
|
+
const roundedSeconds = Math.round(totalSeconds);
|
|
27
|
+
const hours = Math.floor(roundedSeconds / 3600);
|
|
28
|
+
const mins = Math.floor((roundedSeconds % 3600) / 60);
|
|
29
|
+
const secs = roundedSeconds % 60;
|
|
28
30
|
if (hours > 0) {
|
|
29
31
|
return `${hours}h ${mins}m ${secs}s`;
|
|
30
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-formatter.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/base-formatter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAKH;;GAEG;AACU,QAAA,aAAa,GAAkB;IAC1C;;OAEG;IACH,UAAU,CAAC,OAAe;QACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"base-formatter.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/base-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export declare class JSONFormatter extends BaseFormatter {
|
|
|
16
16
|
format(shotList: ShotList, options?: FormatterOptions): string;
|
|
17
17
|
/**
|
|
18
18
|
* Format individual shot for JSON
|
|
19
|
+
* Requirement 12: Include all fields from Shot interface
|
|
19
20
|
*/
|
|
20
21
|
private formatShot;
|
|
21
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/json-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAmC9D
|
|
1
|
+
{"version":3,"file":"json-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/json-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAmC9D;;;OAGG;IACH,OAAO,CAAC,UAAU;IAmDlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -49,6 +49,7 @@ class JSONFormatter extends base_formatter_1.BaseFormatter {
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Format individual shot for JSON
|
|
52
|
+
* Requirement 12: Include all fields from Shot interface
|
|
52
53
|
*/
|
|
53
54
|
formatShot(shot, options) {
|
|
54
55
|
const includeWarnings = options?.includeWarnings !== false;
|
|
@@ -72,14 +73,19 @@ class JSONFormatter extends base_formatter_1.BaseFormatter {
|
|
|
72
73
|
name: char.name,
|
|
73
74
|
position: char.position,
|
|
74
75
|
appearance: char.appearance,
|
|
76
|
+
wardrobe: char.wardrobe || null, // Requirement 10: Rich character descriptions
|
|
77
|
+
physicalAppearance: char.physicalAppearance || null, // Requirement 10: Rich character descriptions
|
|
75
78
|
emotion: char.emotion || null,
|
|
76
79
|
action: char.action || null
|
|
77
80
|
})),
|
|
78
81
|
description: shot.description,
|
|
82
|
+
dialogue: shot.dialogue, // Requirement 8 & 12: Mandatory dialogue property
|
|
79
83
|
metadata: {
|
|
80
84
|
shotType: shot.metadata.shotType,
|
|
81
85
|
cameraMovement: shot.metadata.cameraMovement,
|
|
82
86
|
framing: shot.metadata.framing,
|
|
87
|
+
visualStyle: shot.metadata.visualStyle, // Requirement 5 & 12: Visual style property
|
|
88
|
+
cinematicStyle: shot.metadata.cinematicStyle || null, // Requirement 12: Cinematic style
|
|
83
89
|
technicalNotes: shot.metadata.technicalNotes || []
|
|
84
90
|
},
|
|
85
91
|
duration: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-formatter.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/json-formatter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qDAAiD;AAIjD;;GAEG;AACH,MAAa,aAAc,SAAQ,8BAAa;IAC9C;;OAEG;IACH,MAAM,CAAC,QAAkB,EAAE,OAA0B;QACnD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,kBAAkB;QACtE,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC,CAAC,kBAAkB;QAE9E,iCAAiC;QACjC,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI;gBAC/B,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE;gBACxD,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY;gBAC5C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa;gBAC9C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa;aAC/C;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,sBAAsB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACnE,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,iBAAiB,EAAE,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAClE,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;gBACrD,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;aAC9C;YACD,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACvE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAClE,CAAC;QAEF,oBAAoB;QACpB,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"json-formatter.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/json-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export declare class JSONLFormatter extends BaseFormatter {
|
|
|
19
19
|
format(shotList: ShotList, options?: FormatterOptions): string;
|
|
20
20
|
/**
|
|
21
21
|
* Format individual shot for JSONL
|
|
22
|
+
* Requirement 12: Include all fields from Shot interface
|
|
22
23
|
*/
|
|
23
24
|
private formatShot;
|
|
24
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/jsonl-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAY9D
|
|
1
|
+
{"version":3,"file":"jsonl-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/jsonl-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAY9D;;;OAGG;IACH,OAAO,CAAC,UAAU;IAmDlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -26,6 +26,7 @@ class JSONLFormatter extends base_formatter_1.BaseFormatter {
|
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Format individual shot for JSONL
|
|
29
|
+
* Requirement 12: Include all fields from Shot interface
|
|
29
30
|
*/
|
|
30
31
|
formatShot(shot, options) {
|
|
31
32
|
const includeWarnings = options?.includeWarnings !== false;
|
|
@@ -49,14 +50,19 @@ class JSONLFormatter extends base_formatter_1.BaseFormatter {
|
|
|
49
50
|
name: char.name,
|
|
50
51
|
position: char.position,
|
|
51
52
|
appearance: char.appearance,
|
|
53
|
+
wardrobe: char.wardrobe || null, // Requirement 10: Rich character descriptions
|
|
54
|
+
physicalAppearance: char.physicalAppearance || null, // Requirement 10: Rich character descriptions
|
|
52
55
|
emotion: char.emotion || null,
|
|
53
56
|
action: char.action || null
|
|
54
57
|
})),
|
|
55
58
|
description: shot.description,
|
|
59
|
+
dialogue: shot.dialogue, // Requirement 8 & 12: Mandatory dialogue property
|
|
56
60
|
metadata: {
|
|
57
61
|
shotType: shot.metadata.shotType,
|
|
58
62
|
cameraMovement: shot.metadata.cameraMovement,
|
|
59
63
|
framing: shot.metadata.framing,
|
|
64
|
+
visualStyle: shot.metadata.visualStyle, // Requirement 5 & 12: Visual style property
|
|
65
|
+
cinematicStyle: shot.metadata.cinematicStyle || null, // Requirement 12: Cinematic style
|
|
60
66
|
technicalNotes: shot.metadata.technicalNotes || []
|
|
61
67
|
},
|
|
62
68
|
duration: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-formatter.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/jsonl-formatter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qDAAiD;AAIjD;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,8BAAa;IAC/C;;OAEG;IACH,MAAM,CAAC,QAAkB,EAAE,OAA0B;QACnD,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC,CAAC,kBAAkB;QAE9E,mCAAmC;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAC/C,CAAC;QAEF,oCAAoC;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"jsonl-formatter.js","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/jsonl-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,20 @@ export declare class MarkdownFormatter extends BaseFormatter {
|
|
|
22
22
|
* Get character count status indicator
|
|
23
23
|
*/
|
|
24
24
|
private getCharacterStatus;
|
|
25
|
+
/**
|
|
26
|
+
* Get character count color function (Requirement 6)
|
|
27
|
+
* - Green if under 4000 characters
|
|
28
|
+
* - Yellow if between 4000 and 5000 characters
|
|
29
|
+
* - Red if over 5000 characters
|
|
30
|
+
*/
|
|
31
|
+
private getCharacterCountColor;
|
|
32
|
+
/**
|
|
33
|
+
* Get duration severity color (Requirement 4)
|
|
34
|
+
* - Red for shots exceeding max duration (error)
|
|
35
|
+
* - Yellow for shots approaching max duration (warning)
|
|
36
|
+
* - Green for shots within acceptable range
|
|
37
|
+
*/
|
|
38
|
+
private getDurationSeverityColor;
|
|
25
39
|
/**
|
|
26
40
|
* Get file extension
|
|
27
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/markdown-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"markdown-formatter.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate-shot-list/formatter/markdown-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAQ,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAyD9D;;OAEG;IACH,OAAO,CAAC,UAAU;IA+ElB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB"}
|