Files
proffesor-for-testing__agen…/docs/implementation/phase3/directory-structure-extraction.md
2025-11-23 10:50:14 +00:00

4.4 KiB
Raw Permalink Blame History

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 directories
  • existing: Number of existing directories
  • missing: Number of missing directories
  • missingDirs: 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 tests
  • tests/integration - Integration tests
  • tests/e2e - End-to-end tests
  • tests/performance - Performance tests
  • tests/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

  1. Unit tests for each function
  2. Integration test with temp directory
  3. Test force flag behavior
  4. Test error scenarios (permissions, disk full)
  5. Test status checking functions

Status

✅ Complete - Module extracted, compiled, and integrated successfully.