4.4 KiB
Directory Structure Module Extraction
Overview
Successfully extracted directory creation logic from src/cli/commands/init.ts into a dedicated module src/cli/init/directory-structure.ts.
Module Location
File: /workspaces/agentic-qe-cf/src/cli/init/directory-structure.ts
Exported Functions
1. createDirectoryStructure(force?: boolean): Promise<void>
Main function that creates all required directories for the Agentic QE Fleet.
Parameters:
force(optional, default:false) - If true, will overwrite existing directories
Features:
- Creates 22 directories in total
- Provides console feedback with chalk
- Error handling with descriptive messages
- Tracks created vs. existing directories
Example:
await createDirectoryStructure(false);
2. getDirectoryList(): string[]
Returns the complete list of directories that will be created.
Returns: Array of 22 directory paths
Example:
const dirs = getDirectoryList();
console.log(`Will create ${dirs.length} directories`);
3. isDirectoryStructureInitialized(): Promise<boolean>
Checks if all required directories already exist.
Returns: Promise - True if all directories exist
Example:
if (await isDirectoryStructureInitialized()) {
console.log('Already initialized');
}
4. getDirectoryStructureStatus(): Promise<StatusObject>
Gets detailed status of the directory structure.
Returns: Promise with:
total: Total number of directoriesexisting: Number of existing directoriesmissing: Number of missing directoriesmissingDirs: Array of missing directory paths
Example:
const status = await getDirectoryStructureStatus();
console.log(`${status.existing}/${status.total} directories exist`);
Directories Created (22 Total)
Agentic QE Directories (12)
.agentic-qe- Main configuration directory.agentic-qe/config- Fleet and agent configurations.agentic-qe/logs- Operation logs.agentic-qe/data- Data storage.agentic-qe/data/learning- Phase 2: Learning state.agentic-qe/data/patterns- Phase 2: Pattern database.agentic-qe/data/improvement- Phase 2: Improvement state.agentic-qe/agents- Agent instances.agentic-qe/reports- Test and quality reports.agentic-qe/scripts- Coordination scripts.agentic-qe/state- State management.agentic-qe/state/coordination- Coordination state
Claude Code Integration Directories (5)
.claude- Claude Code integration root.claude/agents- Agent definitions (18 QE agents).claude/agents/subagents- Subagent definitions (8 TDD subagents).claude/skills- QE skill definitions (38 skills).claude/commands- AQE slash commands (8 commands)
Test Directories (5)
tests/unit- Unit teststests/integration- Integration teststests/e2e- End-to-end teststests/performance- Performance teststests/security- Security tests
Integration
The module is already integrated into the init orchestrator:
File: src/cli/init/index.ts
import { createDirectoryStructure } from './directory-structure';
// Used in phase execution
{
name: 'Directory Structure',
description: 'Creating project directories',
execute: async (cfg, opts) => createDirectoryStructure(opts.force || false),
critical: true
}
Build Verification
Module compiles successfully:
- TypeScript compilation: ✅
- JavaScript output:
dist/cli/init/directory-structure.js - Type definitions:
dist/cli/init/directory-structure.d.ts - All 4 functions exported correctly
Console Output
Example output when running:
📁 Creating directory structure...
✓ Created 22 new directories
Or if directories exist:
📁 Creating directory structure...
✓ Created 0 new directories
ℹ 22 directories already existed
Error Handling
All errors are caught and wrapped with descriptive messages:
throw new Error(`Directory structure creation failed: ${errorMessage}`);
Dependencies
fs-extra- For directory operations (ensureDir,pathExists)chalk- For colored console output
Testing Recommendations
- Unit tests for each function
- Integration test with temp directory
- Test force flag behavior
- Test error scenarios (permissions, disk full)
- Test status checking functions
Status
✅ Complete - Module extracted, compiled, and integrated successfully.