You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .cursorrules
+26-6Lines changed: 26 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,14 @@
3
3
## Project Overview
4
4
Pipeline Neo is a modern, fully modular Swift 6 framework for Final Cut Pro FCPXML processing with TimecodeKit integration. The codebase is 100% protocol-oriented, with all major operations defined as protocols and implemented via dependency injection for maximum flexibility, testability, and future-proofing. This project targets macOS 12+, Xcode 16+, and Swift 6.0 with full concurrency support.
5
5
6
+
### Current Status
7
+
- All 40 tests passing
8
+
- Full FCPXML version support (1.5-1.13)
9
+
- Final Cut Pro frame rate support (23.976, 24, 25, 29.97, 30, 50, 59.94, 60)
10
+
- Thread-safe and concurrency-compliant
11
+
- No known security vulnerabilities
12
+
- Comprehensive modular architecture
13
+
6
14
## Modularity & Safety
7
15
- All core operations (parsing, timecode conversion, XML manipulation, error handling) are defined as protocols (e.g., FCPXMLParsing, TimecodeConversion, XMLDocumentOperations, ErrorHandling).
8
16
- Default implementations are provided, but any component can be swapped or extended via dependency injection.
@@ -86,7 +94,7 @@ All Swift files must include the standard header format:
86
94
- Descriptive test method names
87
95
- Comprehensive test data
88
96
- Proper setup and teardown
89
-
- Test all supported frame rates
97
+
- Test all supported frame rates (Final Cut Pro compatible)
90
98
91
99
## Development Patterns
92
100
@@ -126,7 +134,7 @@ do {
126
134
### TimecodeKit Integration
127
135
- Use TimecodeKit for all timecode operations
128
136
- Follow TimecodeKit API conventions
129
-
- Support all FCPXML frame rates
137
+
- Support all FCPXML frame rates (Final Cut Pro compatible)
130
138
- Implement proper frame rate conversions
131
139
132
140
## Testing Requirements
@@ -136,12 +144,13 @@ do {
136
144
- Integration tests for complex workflows
137
145
- Performance tests for time-critical operations
138
146
- Concurrency tests for async operations
139
-
- Test all supported frame rates
147
+
- Test all supported frame rates (Final Cut Pro compatible)
148
+
- Current: 40 comprehensive tests covering all functionality
140
149
141
150
### Test Data
142
151
- Use realistic FCPXML samples
143
152
- Include edge cases and error conditions
144
-
- Test all supported frame rates
153
+
- Test all supported frame rates (Final Cut Pro compatible)
145
154
- Validate against actual Final Cut Pro output
146
155
147
156
### Test Organisation
@@ -150,6 +159,17 @@ do {
150
159
- Include proper setup and teardown
151
160
- Use meaningful assertions
152
161
162
+
### Supported Frame Rates
163
+
Only test with Final Cut Pro supported frame rates:
164
+
- 23.976 fps
165
+
- 24 fps
166
+
- 25 fps
167
+
- 29.97 fps
168
+
- 30 fps
169
+
- 50 fps
170
+
- 59.94 fps
171
+
- 60 fps
172
+
153
173
## Performance Considerations
154
174
155
175
### Memory Management
@@ -224,12 +244,12 @@ do {
224
244
### FCPXML Handling
225
245
- Support FCPXML versions 1.5 through 1.13
226
246
- Validate against DTD schemas
227
-
- Handle all supported frame rates
247
+
- Handle all supported frame rates (Final Cut Pro compatible)
228
248
- Implement proper XML formatting
229
249
230
250
### Timecode Operations
231
251
- Use TimecodeKit for all timecode operations
232
-
- Support all FCPXML frame rates
252
+
- Support all FCPXML frame rates (Final Cut Pro compatible)
Copy file name to clipboardExpand all lines: AGENT.md
+83-48Lines changed: 83 additions & 48 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,22 +29,31 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
29
29
### Core Objectives
30
30
- Modern Swift 6 concurrency support with async/await patterns
31
31
- Full TimecodeKit integration for professional timecode operations
32
-
- Comprehensive test coverage for all functionality
32
+
- Comprehensive test coverage for all functionality (40+ tests)
33
33
- Modular architecture for future expansion
34
34
- Professional documentation and examples
35
+
- Support for FCPXML versions 1.5 through 1.13
35
36
36
37
### Target Platforms
37
38
- macOS 12.0+
38
39
- Xcode 16.0+
39
40
- Swift 6.0+
40
41
42
+
### Current Status
43
+
- All 40 tests passing
44
+
- Full FCPXML version support (1.5-1.13)
45
+
- Final Cut Pro frame rate support (23.976, 24, 25, 29.97, 30, 50, 59.94, 60)
46
+
- Thread-safe and concurrency-compliant
47
+
- No known security vulnerabilities
48
+
- Comprehensive modular architecture
49
+
41
50
## Architecture
42
51
43
-
-**Protocols**: All core operations (parsing, timecode conversion, XML manipulation, error handling) are defined as protocols (e.g., FCPXMLParsing, TimecodeConversion, XMLDocumentOperations, ErrorHandling).
44
-
-**Implementations**: Default implementations are provided, but you can inject your own for custom behaviour, testing, or extension.
45
-
-**Extensions**: Modular extensions for CMTime, XMLElement, and XMLDocument allow dependency-injected operations.
46
-
-**Service Layer**: FCPXMLService orchestrates all modular components for high-level workflows.
47
-
-**Utilities**: ModularUtilities provides pipeline creation, validation, and error-handling helpers.
52
+
- Protocols: All core operations (parsing, timecode conversion, XML manipulation, error handling) are defined as protocols (e.g., FCPXMLParsing, TimecodeConversion, XMLDocumentOperations, ErrorHandling).
53
+
- Implementations: Default implementations are provided, but you can inject your own for custom behaviour, testing, or extension.
54
+
- Extensions: Modular extensions for CMTime, XMLElement, and XMLDocument allow dependency-injected operations.
55
+
- Service Layer: FCPXMLService orchestrates all modular components for high-level workflows.
56
+
- Utilities: ModularUtilities provides pipeline creation, validation, and error-handling helpers.
48
57
49
58
## Modularity & Extensibility
50
59
@@ -55,10 +64,10 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
55
64
56
65
## Security & Safety
57
66
58
-
-**Thread-safe and concurrency-compliant**: All code is Sendable or @unchecked Sendable as appropriate, and passes thread sanitizer checks.
59
-
-**No known vulnerabilities**: All dependencies (including TimecodeKit 1.6.13) are up to date and have no published security advisories as of July 2025.
60
-
-**No unsafe code patterns**: No use of unsafe pointers, dynamic code execution, or C APIs. All concurrency is structured and type-safe.
61
-
-**Static analysis**: The codebase passes thread sanitizer and static analysis checks, with no concurrency or memory safety issues detected.
67
+
- Thread-safe and concurrency-compliant: All code is Sendable or @unchecked Sendable as appropriate, and passes thread sanitizer checks.
68
+
- No known vulnerabilities: All dependencies (including TimecodeKit 1.6.13) are up to date and have no published security advisories as of July 2025.
69
+
- No unsafe code patterns: No use of unsafe pointers, dynamic code execution, or C APIs. All concurrency is structured and type-safe.
70
+
- Static analysis: The codebase passes thread sanitizer and static analysis checks, with no concurrency or memory safety issues detected.
62
71
63
72
## Development Guidelines
64
73
@@ -107,6 +116,7 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
107
116
- Integration tests for complex workflows
108
117
- Performance tests for time-critical operations
109
118
- Concurrency tests for async operations
119
+
- Current: 40 comprehensive tests covering all functionality
110
120
111
121
### Test Organisation
112
122
- One test file per main component
@@ -117,15 +127,26 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
117
127
### Test Data
118
128
- Use realistic FCPXML samples
119
129
- Include edge cases and error conditions
120
-
- Test all supported frame rates
130
+
- Test all supported frame rates (Final Cut Pro compatible)
121
131
- Validate against actual Final Cut Pro output
122
132
133
+
### Supported Frame Rates
134
+
Only test with Final Cut Pro supported frame rates:
135
+
- 23.976 fps
136
+
- 24 fps
137
+
- 25 fps
138
+
- 29.97 fps
139
+
- 30 fps
140
+
- 50 fps
141
+
- 59.94 fps
142
+
- 60 fps
143
+
123
144
## Dependencies
124
145
125
146
### Primary Dependencies
126
-
-**TimecodeKit**: Advanced timecode operations and conversions
127
-
-**Foundation**: Core XML and data handling
128
-
-**CoreMedia**: CMTime operations and conversions
147
+
- TimecodeKit: Advanced timecode operations and conversions
Copy file name to clipboardExpand all lines: README.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,7 @@ This codebase is developed using AI agents.
36
36
- Easily manipulate timing values with modern Swift concurrency
37
37
- Output FCPXML files with proper text formatting
38
38
- Validate FCPXML documents with the DTD
39
-
- Works with FCPXML v1.6 through v1.8 files
39
+
- Works with FCPXML v1.5 through v1.13 files
40
40
- Full TimecodeKit integration for advanced timecode operations
41
41
- Swift 6 concurrency support with async/await patterns
42
42
- macOS 12+ support with modern Swift features
@@ -327,11 +327,11 @@ Further information on FCPXML can be found [here](https://fcp.cafe/developers/fc
327
327
328
328
## FCPXML Version Support
329
329
330
-
Pipeline Neo supports FCPXML versions **1.5 through 1.13**. All DTDs for these versions are included in the codebase, ensuring compatibility with the latest Final Cut Pro XML workflows.
330
+
Pipeline Neo supports FCPXML versions 1.5 through 1.13. All DTDs for these versions are included in the codebase, ensuring compatibility with the latest Final Cut Pro XML workflows.
331
331
332
332
## Migration from Original Pipeline
333
333
334
-
Pipeline Neo is a modernised fork of the original Pipeline library. Key changes include:
334
+
Pipeline Neo is a modernised successor to [Pipeline](https://github.com/reuelk/pipeline). Key changes include:
335
335
336
336
- Swift 6 concurrency support with async/await
337
337
- TimecodeKit integration for advanced timecode operations
@@ -345,17 +345,17 @@ Pipeline Neo is a modernised fork of the original Pipeline library. Key changes
345
345
346
346
Pipeline Neo is now fully modular, built on a protocol-oriented architecture. All major operations (parsing, timecode conversion, XML manipulation, error handling) are defined as protocols with default implementations, enabling easy extension, testing, and future-proofing. Dependency injection is used throughout for maximum flexibility and testability.
347
347
348
-
-**Thread-safe and concurrency-compliant**: All code is Sendable or @unchecked Sendable as appropriate, and passes thread sanitizer checks.
349
-
-**No known vulnerabilities**: All dependencies (including TimecodeKit 1.6.13) are up to date and have no published security advisories as of July 2025.
350
-
-**No unsafe code patterns**: No use of unsafe pointers, dynamic code execution, or C APIs. All concurrency is structured and type-safe.
348
+
- Thread-safe and concurrency-compliant: All code is Sendable or @unchecked Sendable as appropriate, and passes thread sanitizer checks.
349
+
- No known vulnerabilities: All dependencies (including TimecodeKit 1.6.13) are up to date and have no published security advisories as of July 2025.
350
+
- No unsafe code patterns: No use of unsafe pointers, dynamic code execution, or C APIs. All concurrency is structured and type-safe.
351
351
352
352
## Architecture Overview
353
353
354
-
-**Protocols**: All core functionality is defined via protocols (e.g., FCPXMLParsing, TimecodeConversion, XMLDocumentOperations, ErrorHandling).
355
-
-**Implementations**: Default implementations are provided, but you can inject your own for custom behaviour or testing.
356
-
-**Extensions**: Modular extensions for CMTime, XMLElement, and XMLDocument allow dependency-injected operations.
357
-
-**Service Layer**: FCPXMLService orchestrates all modular components for high-level workflows.
358
-
-**Utilities**: ModularUtilities provides pipeline creation, validation, and error-handling helpers.
354
+
- Protocols: All core functionality is defined via protocols (e.g., FCPXMLParsing, TimecodeConversion, XMLDocumentOperations, ErrorHandling).
355
+
- Implementations: Default implementations are provided, but you can inject your own for custom behaviour or testing.
356
+
- Extensions: Modular extensions for CMTime, XMLElement, and XMLDocument allow dependency-injected operations.
357
+
- Service Layer: FCPXMLService orchestrates all modular components for high-level workflows.
358
+
- Utilities: ModularUtilities provides pipeline creation, validation, and error-handling helpers.
359
359
360
360
See AGENT.md for a detailed breakdown for AI agents and contributors.
0 commit comments