Problem / Background
The current ARCHITECTURE.md file has grown to 4,340 lines , making it difficult to maintain and navigate. The document also contains content that should not be in an architecture document:
Issues Identified
Excessive Length : 4,340 lines is too large for a single documentation file
Historical Entries : Contains date-based entries (e.g., "Added 2025-12-17", "Implemented 2025-10-29") that belong in CHANGELOG
Issue/PR References : Contains references like "Issue refactor: Split oversized modules to improve maintainability #33 ", "Issue feat: Implement real-time streaming output with interactive multi-node UI #68 ", "PR feat: Add --batch option for single Ctrl+C termination (pdsh -b compatibility) #102 " that are changelog content
Version References : Contains version numbers like "v0.9.0", "v1.2.0+" that are changelog content
Development Timeline Section : Contains a full development timeline (lines 2896-2935) that belongs in CHANGELOG
Code Structure Evolution Section : Contains historical refactoring details (lines 56-81) that are changelog content
Proposed Solution
Phase 1: Extract Component Documentation
Create a docs/architecture/ directory and extract detailed component documentation into separate files:
File
Content
Source Sections
cli-interface.md
CLI Interface, pdsh compatibility, hostlist expressions, mode detection
Section 1, 1.5
configuration.md
Configuration Management, types, loader, resolver, XDG support
Section 2
executor.md
Parallel Executor, concurrency, signal handling, fail-fast, stream management
Section 3, 4.0.2
ssh-client.md
SSH Client, connection, authentication, command execution, streaming
Section 4, 4.0.1, 4.1
tui.md
Terminal User Interface, views, event handling, progress parsing
Section 4.0.3, TUI Architecture section
interactive-mode.md
Interactive Mode and PTY Implementation
Interactive Mode Architecture, PTY Implementation Design
ssh-config-parser.md
SSH Configuration File Parser, Include/Match directives, options, caching
Section 6, 7, SSH Configuration Parser section
ssh-jump-hosts.md
SSH Jump Host Support, chain management, authentication
SSH Jump Host Support section
ssh-port-forwarding.md
Port Forwarding (local, remote, dynamic/SOCKS)
SSH Port Forwarding section
exit-code-strategy.md
Exit Code Strategy Architecture
Exit Code Strategy Architecture section
Phase 2: Clean Up Main ARCHITECTURE.md
The main ARCHITECTURE.md should be slimmed down to contain only:
1. Overview (~50 lines)
- Project description
- Core capabilities
2. System Architecture (~100 lines)
- ASCII diagram
- High-level component interactions
3. Component Summary (~150 lines)
- Brief descriptions with links to detailed docs
- One paragraph per component
4. Data Flow (~50 lines)
- Command execution flow
- Error handling strategy
5. Security Model (~50 lines)
- Current implementation summary
- Link to detailed security docs
6. Dependencies and Licensing (~50 lines)
- Core dependencies
- License compatibility
7. Appendix (~50 lines)
- Configuration schema
- Error codes
- Performance tuning
Target: ~500 lines (down from 4,340)
Phase 3: Content Cleanup
Remove all non-architectural content from extracted documentation:
Acceptance Criteria
Technical Considerations
File Structure
docs/
└── architecture/
├── README.md # Index of all architecture docs
├── cli-interface.md
├── configuration.md
├── executor.md
├── ssh-client.md
├── tui.md
├── interactive-mode.md
├── ssh-config-parser.md
├── ssh-jump-hosts.md
├── ssh-port-forwarding.md
└── exit-code-strategy.md
Link Format
Each extracted document should include:
Header with navigation back to main ARCHITECTURE.md
Footer with related documents
Cross-references using relative links
Content Preservation
All ASCII diagrams must be preserved exactly
All code examples must remain functional
All implementation details must be kept (just moved)
Only remove historical/changelog content, not technical content
Benefits
Easier Navigation : Find specific topics quickly
Better Maintainability : Update component docs independently
Faster Loading : Smaller files load faster in editors/viewers
Clear Separation : Architecture vs changelog content
Better Discoverability : Topic-based organization
Reduced Merge Conflicts : Changes isolated to specific files
Additional Context
The ARCHITECTURE.md file contains valuable technical content that should be preserved. This issue is about reorganization and cleanup, not content reduction. All technical details, diagrams, and implementation notes should be maintained in the new structure.
Current line counts of major sections:
CLI Interface + pdsh: ~350 lines
Configuration: ~120 lines
Executor + Streaming: ~500 lines
SSH Client + Auth: ~300 lines
TUI: ~600 lines
Interactive Mode + PTY: ~400 lines
SSH Config Parser: ~350 lines
Jump Hosts: ~400 lines
Port Forwarding: ~250 lines
Exit Code Strategy: ~200 lines
Timeline + Evolution (to remove): ~100 lines
Problem / Background
The current ARCHITECTURE.md file has grown to 4,340 lines, making it difficult to maintain and navigate. The document also contains content that should not be in an architecture document:
Issues Identified
Proposed Solution
Phase 1: Extract Component Documentation
Create a
docs/architecture/directory and extract detailed component documentation into separate files:cli-interface.mdconfiguration.mdexecutor.mdssh-client.mdtui.mdinteractive-mode.mdssh-config-parser.mdssh-jump-hosts.mdssh-port-forwarding.mdexit-code-strategy.mdPhase 2: Clean Up Main ARCHITECTURE.md
The main ARCHITECTURE.md should be slimmed down to contain only:
Target: ~500 lines (down from 4,340)
Phase 3: Content Cleanup
Remove all non-architectural content from extracted documentation:
Acceptance Criteria
docs/architecture/directory structureTechnical Considerations
File Structure
Link Format
Each extracted document should include:
Content Preservation
Benefits
Additional Context
The ARCHITECTURE.md file contains valuable technical content that should be preserved. This issue is about reorganization and cleanup, not content reduction. All technical details, diagrams, and implementation notes should be maintained in the new structure.
Current line counts of major sections: