24 lines
1.1 KiB
YAML
24 lines
1.1 KiB
YAML
schema: spec-driven
|
|
|
|
context: |
|
|
Rust CLI application using crossterm, rustyline, tokio, serde, pulldown-cmark, syntect.
|
|
Workspace layout: crates/* (Cargo workspace).
|
|
Target crate: rusty-claude-cli (binary "claw").
|
|
The main.rs is 13,292 lines — a God File that needs to be split into focused modules.
|
|
User rule: any function ≤ 60 lines, any file ≤ 2000 lines (new files), file structure should document abstraction boundaries.
|
|
|
|
rules:
|
|
proposal:
|
|
- Propose splitting strategy with clear dependency order
|
|
- Reference specific line ranges and function names from main.rs
|
|
- Include risk assessment per phase
|
|
design:
|
|
- Design module boundaries with file-level responsibility descriptions
|
|
- Define public API surface for each new module
|
|
- Address cross-cutting concerns: testing, visibility, re-exports
|
|
tasks:
|
|
- One task per file creation/migration step
|
|
- Each task must include "compiles and tests pass" as completion criteria
|
|
- Order tasks by dependency: low-level modules first, then higher-level ones
|
|
- Total execution: ~18 discrete tasks, each verifiable
|