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
+13-11Lines changed: 13 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Pipeline Neo - Cursor Rules
2
2
3
3
## Project Overview
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.
4
+
Pipeline Neo is a modern, fully modular Swift 6 framework for Final Cut Pro FCPXML processing with SwiftTimecode 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
6
### Current Status
7
7
- All 46 tests passing
@@ -15,7 +15,7 @@ Pipeline Neo is a modern, fully modular Swift 6 framework for Final Cut Pro FCPX
15
15
- All core operations (parsing, timecode conversion, XML manipulation, error handling) are defined as protocols (e.g., FCPXMLParsing, TimecodeConversion, XMLDocumentOperations, ErrorHandling), with both sync and async/await APIs.
16
16
- Default implementations are provided, but any component can be swapped or extended via dependency injection.
17
17
- All code is Sendable or @unchecked Sendable as appropriate, and passes thread sanitizer checks.
18
-
- No known vulnerabilities in dependencies (including TimecodeKit 1.6.13) as of July 2025.
18
+
- No known vulnerabilities in dependencies (including SwiftTimecode 3.0.0) as of July 2025.
19
19
- No unsafe code patterns: no unsafe pointers, dynamic code execution, or C APIs. All concurrency is structured and type-safe.
20
20
- Async/await support is comprehensive across all protocols, implementations, services, and utilities.
21
21
@@ -55,7 +55,7 @@ All Swift files must include the standard header format:
55
55
- Use @unchecked Sendable for classes that cannot be made final
56
56
- Avoid capturing non-Sendable types in concurrent contexts
57
57
- Use structured concurrency with Task and TaskGroup where types are Sendable
58
-
- Note: Foundation XML types (XMLDocument, XMLElement) and TimecodeKit types are not Sendable; async/await APIs are provided, but Task-based concurrency is avoided for these types
58
+
- Note: Foundation XML types (XMLDocument, XMLElement) and SwiftTimecode types are not Sendable; async/await APIs are provided, but Task-based concurrency is avoided for these types
59
59
60
60
### Error Handling
61
61
- Use Swift's Result type for operations that can fail
@@ -73,7 +73,7 @@ All Swift files must include the standard header format:
73
73
## Dependencies
74
74
75
75
### Primary Dependencies
76
-
- TimecodeKit: 1.6.0 to 2.0.0 for timecode operations
76
+
- SwiftTimecode: 3.0.0+ for timecode operations
77
77
- Foundation: Core XML and data handling
78
78
- CoreMedia: CMTime operations and conversions
79
79
@@ -133,11 +133,13 @@ do {
133
133
}
134
134
```
135
135
136
-
### TimecodeKit Integration
137
-
- Use TimecodeKit for all timecode operations
138
-
- Follow TimecodeKit API conventions
136
+
### SwiftTimecode Integration
137
+
- Use SwiftTimecode for all timecode operations
138
+
- Follow SwiftTimecode API conventions
139
139
- Support all FCPXML frame rates (Final Cut Pro compatible)
140
140
- Implement proper frame rate conversions
141
+
- Use the new API: `Timecode(.realTime(seconds: seconds), at: frameRate)` instead of the old `Timecode(realTime:seconds, at: frameRate)`
142
+
- Use updated frame rate enum cases: `.fps24`, `.fps25`, `.fps29_97`, `.fps30`, `.fps50`, `.fps59_94`, `.fps60`, `.fps23_976` instead of `._24`, `._25`, etc.
141
143
142
144
## Testing Requirements
143
145
@@ -250,7 +252,7 @@ Only test with Final Cut Pro supported frame rates:
250
252
- Implement proper XML formatting
251
253
252
254
### Timecode Operations
253
-
- Use TimecodeKit for all timecode operations
255
+
- Use SwiftTimecode for all timecode operations
254
256
- Support all FCPXML frame rates (Final Cut Pro compatible)
255
257
- Implement proper frame rate conversions
256
258
- Handle drop frame and non-drop frame timecode
@@ -265,14 +267,14 @@ Only test with Final Cut Pro supported frame rates:
265
267
266
268
### Documentation
267
269
- [Final Cut Pro XML Documentation](https://fcp.cafe/developers/fcpxml/)
Copy file name to clipboardExpand all lines: AGENT.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
# Pipeline Neo - AI Agent Development Guide
2
2
3
3
**Update July 2025:**
4
-
Pipeline Neo now provides comprehensive async/await support for all major operations. All protocols, implementations, services, and utilities have async methods. Task-based concurrency is avoided for Foundation XML types and TimecodeKit types due to Sendable limitations, but async APIs are provided and concurrency-safe for Swift 6. The README and tests now demonstrate async/await usage, and all 46 tests/builds pass with the new architecture.
4
+
Pipeline Neo now provides comprehensive async/await support for all major operations. All protocols, implementations, services, and utilities have async methods. Task-based concurrency is avoided for Foundation XML types and SwiftTimecode types due to Sendable limitations, but async APIs are provided and concurrency-safe for Swift 6. The README and tests now demonstrate async/await usage, and all 46 tests/builds pass with the new architecture.
5
5
6
-
> **Note:** Foundation XML types (XMLDocument, XMLElement) and TimecodeKit types are not Sendable. The codebase avoids Task-based concurrency for these types, but provides async/await APIs that are concurrency-safe for Swift 6. If/when these dependencies become Sendable-compliant, further parallelisation and structured concurrency can be introduced.
6
+
> **Note:** Foundation XML types (XMLDocument, XMLElement) and SwiftTimecode types are not Sendable. The codebase avoids Task-based concurrency for these types, but provides async/await APIs that are concurrency-safe for Swift 6. If/when these dependencies become Sendable-compliant, further parallelisation and structured concurrency can be introduced.
7
7
8
8
---
9
9
10
-
A comprehensive guide for AI agents and contributors working on Pipeline Neo, a fully modular Swift 6 framework for Final Cut Pro FCPXML processing with TimecodeKit integration.
10
+
A comprehensive guide for AI agents and contributors working on Pipeline Neo, a fully modular Swift 6 framework for Final Cut Pro FCPXML processing with SwiftTimecode integration.
11
11
12
12
## Table of Contents
13
13
@@ -33,11 +33,11 @@ A comprehensive guide for AI agents and contributors working on Pipeline Neo, a
33
33
34
34
## Project Overview
35
35
36
-
Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing, creation, and manipulation, with advanced timecode operations via TimecodeKit. The codebase is 100% modular, with all major operations defined as protocols and implemented via dependency injection for maximum flexibility and testability.
36
+
Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing, creation, and manipulation, with advanced timecode operations via SwiftTimecode. The codebase is 100% modular, with all major operations defined as protocols and implemented via dependency injection for maximum flexibility and testability.
37
37
38
38
### Core Objectives
39
39
- Modern Swift 6 concurrency support with async/await patterns
40
-
- Full TimecodeKit integration for professional timecode operations
40
+
- Full SwiftTimecode integration for professional timecode operations
41
41
- Comprehensive test coverage for all functionality (46+ tests)
42
42
- Modular architecture for future expansion
43
43
- Professional documentation and examples
@@ -59,7 +59,7 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
59
59
## Architecture
60
60
61
61
- Protocols: All core operations (parsing, timecode conversion, XML manipulation, error handling) are defined as protocols (e.g., FCPXMLParsing, TimecodeConversion, XMLDocumentOperations, ErrorHandling), with both synchronous and async/await methods for modern concurrency.
62
-
- Implementations: Default implementations are provided, supporting both sync and async/await APIs. Async methods are concurrency-safe and avoid Task-based concurrency for Foundation XML types and TimecodeKit types due to Sendable limitations.
62
+
- Implementations: Default implementations are provided, supporting both sync and async/await APIs. Async methods are concurrency-safe and avoid Task-based concurrency for Foundation XML types and SwiftTimecode types due to Sendable limitations.
63
63
- Extensions: Modular extensions for CMTime, XMLElement, and XMLDocument allow dependency-injected operations with async/await support.
64
64
- Service Layer: FCPXMLService orchestrates all modular components for high-level workflows, with both sync and async/await APIs.
65
65
- Utilities: ModularUtilities provides pipeline creation, validation, and error-handling helpers, with comprehensive async/await support.
@@ -68,13 +68,13 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
68
68
69
69
- All major functionality is protocol-based and dependency-injected, with both sync and async/await APIs.
70
70
- Async/await support is comprehensive across protocols, implementations, services, and utilities.
71
-
- Task-based concurrency (e.g., Task.detached, withTaskGroup) is avoided for Foundation XML types and TimecodeKit types due to Sendable limitations, but async APIs are provided and concurrency-safe for Swift 6.
71
+
- Task-based concurrency (e.g., Task.detached, withTaskGroup) is avoided for Foundation XML types and SwiftTimecode types due to Sendable limitations, but async APIs are provided and concurrency-safe for Swift 6.
72
72
- The codebase is structured for maximum clarity, maintainability, and separation of concerns.
73
73
74
74
## Security & Safety
75
75
76
76
- Thread-safe and concurrency-compliant: All code is Sendable or @unchecked Sendable as appropriate, and passes thread sanitizer checks.
77
-
- No known vulnerabilities: All dependencies (including TimecodeKit 1.6.13) are up to date and have no published security advisories as of July 2025.
77
+
- No known vulnerabilities: All dependencies (including SwiftTimecode 3.0.0) are up to date and have no published security advisories as of July 2025.
78
78
- No unsafe code patterns: No use of unsafe pointers, dynamic code execution, or C APIs. All concurrency is structured and type-safe.
79
79
- Static analysis: The codebase passes thread sanitizer and static analysis checks, with no concurrency or memory safety issues detected.
80
80
@@ -84,14 +84,14 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
84
84
- Always use Swift 6.0 features and syntax
85
85
- Leverage async/await for asynchronous operations (all major operations now have async/await APIs)
86
86
- Use structured concurrency with Task and TaskGroup where types are Sendable; otherwise, provide async APIs that are concurrency-safe for current Swift 6
87
-
- Implement proper Sendable compliance where possible; for Foundation XML types and TimecodeKit types, avoid Task-based concurrency
87
+
- Implement proper Sendable compliance where possible; for Foundation XML types and SwiftTimecode types, avoid Task-based concurrency
88
88
89
89
### Concurrency Requirements
90
90
- All public APIs should be async where appropriate (now implemented across the codebase)
91
91
- Use @unchecked Sendable for classes that cannot be made final
92
92
- Avoid capturing non-Sendable types in concurrent contexts
93
93
- Implement proper actor isolation where needed
94
-
- Note: Foundation XML types (XMLDocument, XMLElement) and TimecodeKit types are not Sendable; async/await APIs are provided, but Task-based concurrency is avoided for these types
94
+
- Note: Foundation XML types (XMLDocument, XMLElement) and SwiftTimecode types are not Sendable; async/await APIs are provided, but Task-based concurrency is avoided for these types
95
95
96
96
### Error Handling
97
97
- Use Swift's Result type for operations that can fail
@@ -127,17 +127,17 @@ Pipeline Neo is a modern, protocol-oriented Swift 6 framework for FCPXML parsing
127
127
128
128
## Note on Sendable Limitations
129
129
130
-
Foundation XML types (XMLDocument, XMLElement) and TimecodeKit types are not Sendable. The codebase avoids Task-based concurrency for these types, but provides async/await APIs that are concurrency-safe for Swift 6. If/when these dependencies become Sendable-compliant, further parallelisation and structured concurrency can be introduced.
130
+
Foundation XML types (XMLDocument, XMLElement) and SwiftTimecode types are not Sendable. The codebase avoids Task-based concurrency for these types, but provides async/await APIs that are concurrency-safe for Swift 6. If/when these dependencies become Sendable-compliant, further parallelisation and structured concurrency can be introduced.
131
131
132
132
## Dependencies
133
133
134
134
### Primary Dependencies
135
-
-TimecodeKit: Advanced timecode operations and conversions
135
+
-SwiftTimecode: Advanced timecode operations and conversions
136
136
- Foundation: Core XML and data handling
137
137
- CoreMedia: CMTime operations and conversions
138
138
139
139
### Version Requirements
140
-
-TimecodeKit: 1.6.0 to 2.0.0
140
+
-SwiftTimecode: 3.0.0+
141
141
- Swift: 6.0+
142
142
- Xcode: 16.0+
143
143
@@ -197,7 +197,7 @@ Main service class orchestrating all modular components:
197
197
198
198
### Modular Components
199
199
- FCPXMLParser: XML parsing and validation
200
-
- TimecodeConverter: Timecode operations with TimecodeKit
200
+
- TimecodeConverter: Timecode operations with SwiftTimecode
201
201
- XMLDocumentManager: Document creation and manipulation
202
202
- ErrorHandler: Comprehensive error handling
203
203
@@ -390,7 +390,7 @@ This ensures that AI agents working with the project have consistent guidance wh
390
390
391
391
### External References
392
392
-[Final Cut Pro XML Documentation](https://fcp.cafe/developers/fcpxml/)
0 commit comments