# src/
This directory contains the core implementation of the `claude_runner_core` crate, providing builder pattern API for executing Claude Code commands programmatically.
## Responsibility Table
| `lib.rs` | Crate entry point and public API surface |
| `command/` | ClaudeCommand builder split into per-tier parameter modules |
| `types.rs` | Enum type definitions and conversions |
| `process.rs` | Scan `/proc` for Claude processes; send SIGTERM/SIGKILL |
| `session_dir.rs` | Directory-based session isolation for invocations |
## Organization (5 entries)
Files organized by responsibility following Rust module conventions.
### Module Structure
```
src/
├── lib.rs # Crate root, public API
├── command/ # ClaudeCommand builder (split into 4 files)
│ ├── mod.rs # Struct def, execution methods, describe helpers
│ ├── params_core.rs # Tier 1 critical parameters
│ ├── params_security.rs # Tier 2 security-sensitive parameters
│ └── params_extended.rs # Tier 3+ optional parameters
├── types.rs # ActionMode, LogLevel enums
├── process.rs # /proc scanner, signal sending
└── session_dir.rs # Session directory isolation
```
### Scope
**In Scope:**
- Builder pattern API for Claude Code command construction
- Environment variable automation (tier 1 defaults: bash_timeout=3.6M, bash_max_timeout=7.2M, auto_continue=true, telemetry=false, max_output_tokens=200K)
- Type safety via enums (ActionMode, LogLevel)
- Private field encapsulation (prevents direct construction)
- Single execution point (execute() method)
- Test-only helpers for verification without actual execution
- `/proc` scanning for running Claude Code processes
- Signal delivery (SIGTERM, SIGKILL) to Claude processes
**Out of Scope:**
- Session lifecycle management (→ claude_profile crate)
- Context injection from wplan (→ dream_agent crate)
- Interactive terminal UI (→ terminal-based tools)
- Configuration hierarchy (→ config_hierarchy crate)
### Design Principles
1. **Single Execution Point**: All commands go through execute()
2. **Builder Pattern**: Configuration via chainable with_*() methods
3. **Private Fields**: Cannot construct with struct literals
4. **No Session Logic**: Pure execution, no state management
5. **Migration Complete**: Old factory pattern impossible (from_message/create/generate removed)
6. **Type Safety**: Enums replace string literals (ActionMode, LogLevel)
### Test Coverage
Comprehensive test suite in `tests/` directory:
- Builder pattern API (4 test files): edge cases, methods, defaults, environment variables
- Type definitions (1 test file): enum conversions and defaults
- Migration validation (2 test files): factory pattern removal, single execution point
- Verification framework (5 test files): 231 validation assertions across 6 layers (spec.md NFR-6)
- Inspection methods (1 test file): describe() and describe_env()
- Execution output (1 test file): ExecutionOutput struct and Display
- Skip permissions (1 test file): --dangerously-skip-permissions flag
- Manual execution (2 test files): real Claude binary tests (skipped in CI)
- **Total**: 21 test files, all passing; see tests/readme.md and spec.md NFR-6 for counts
See `tests/readme.md` for complete test documentation.