UNPKG

adpa-enterprise-framework-automation

Version:

Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe

1,017 lines (1,013 loc) 56.3 kB
/** * File Management and Context Utilities Module for Requirements Gathering Agent * * Provides comprehensive file management capabilities, project context reading, * and document metadata handling for the requirements gathering system. * * @version 2.1.3 * @author Requirements Gathering Agent Team * @created 2024 * @updated June 2025 * * Key Features: * - Enhanced project context reading from multiple sources * - Document metadata management and validation * - Integration with project analyzer for comprehensive analysis * - File system utilities for document organization * - Context population and enhancement workflows * * @filepath c:\Users\menno\Source\Repos\requirements-gathering-agent\src\modules\fileManager.ts */ import * as fs from 'fs'; import * as path from 'path'; import { PACKAGE_JSON_FILENAME } from '../constants.js'; import { ConfigurationManager } from './ai/ConfigurationManager.js'; // Function to get project info from package.json function getProjectInfo() { try { const packageJsonPath = path.resolve(process.cwd(), PACKAGE_JSON_FILENAME); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); return { name: packageJson.name || 'Requirements Gathering Agent', version: packageJson.version || '2.1.2', description: packageJson.description || 'AI-powered PMBOK documentation generator' }; } catch (error) { console.warn('Could not read package.json, using fallback values'); return { name: 'Requirements Gathering Agent', version: '2.1.2', description: 'AI-powered PMBOK documentation generator' }; } } // Function to get AI provider display name function getAIProviderDisplayName() { try { const configManager = ConfigurationManager.getInstance(); const provider = configManager.getAIProvider(); const providerNames = { 'azure-openai': 'Azure OpenAI', 'azure-openai-key': 'Azure OpenAI (API Key)', 'azure-openai-entra': 'Azure OpenAI (Entra ID)', 'azure-ai-studio': 'Azure AI Studio', 'google-ai': 'Google AI (Gemini)', 'github-ai': 'GitHub AI', 'ollama': 'Ollama' }; return providerNames[provider] || provider; // Original line } catch (error) { console.warn('Could not determine AI provider, using fallback'); return 'AI Provider'; } } // Define document categories for better organization export const DOCUMENT_CATEGORIES = { REQUIREMENTS: 'requirements', BASIC_DOCS: 'basic-docs', PMBOK: 'pmbok', PLANNING: 'planning', TECHNICAL_DESIGN: 'technical-design', PROJECT_CHARTER: 'project-charter', RISK_MANAGEMENT: 'risk-management', STAKEHOLDER_MANAGEMENT: 'stakeholder-management', SCOPE_MANAGEMENT: 'scope-management', STRATEGIC_STATEMENTS: 'strategic-statements', CORE: 'core-analysis', STRATEGIC: 'strategic-statements', CHARTER: 'project-charter', MANAGEMENT_PLANS: 'management-plans', PLANNING_ARTIFACTS: 'planning-artifacts', STAKEHOLDER: 'stakeholder-management', TECHNICAL_ANALYSIS: 'technical-analysis', QUALITY_ASSURANCE: 'quality-assurance', IMPLEMENTATION_GUIDES: 'implementation-guides', DMBOK: 'dmbok', PPPM: 'pppm', BABOK: 'babok', // Added new category for BABOK UNKNOWN: 'unknown' // Added for fallback/validation }; // Document configuration with proper categorization export const DOCUMENT_CONFIG = { 'introduction-data-management-body-of-knowledge': { title: 'Introduction Data Management Body of Knowledge', filename: 'dmbok/INTRODUCTION DATA MANAGEMENT BODY OF KNOWLEDGE.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Provides an overview, checklist, and summary of all DMBOK documents, including coverage gaps and improvement suggestions.', generatedAt: '' }, 'data-architecture-quality': { title: 'Data Architecture & Quality', filename: 'dmbok/data-architecture-quality.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Defines the standards, principles, and practices for data architecture and quality management.', generatedAt: '' }, 'personas-assess-motivations': { title: 'PersonasAssessMotivations', filename: 'basic-docs/personas-assess-motivations.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Assessment of user personas and their motivations for project engagement.', generatedAt: '' }, // DMBOK Data Management Documents 'data-governance-framework': { title: 'Data Governance Framework', filename: 'dmbok/data-governance-framework.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Defines the structure, roles, policies, and processes for data governance in the ADPA project.', generatedAt: '' }, 'data-governance-plan': { title: 'Data Governance Plan', filename: 'dmbok/data-governance-plan.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Comprehensive plan outlining data governance objectives, principles, roles, responsibilities, and processes in alignment with DMBOK best practices.', generatedAt: '' }, 'data-stewardship-roles-responsibilities': { title: 'Data Stewardship and Roles & Responsibilities', filename: 'dmbok/data-stewardship-roles-responsibilities.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Framework defining data stewardship roles, responsibilities, and governance structure.', generatedAt: '' }, 'data-quality-management-plan': { title: 'Data Quality Management Plan', filename: 'dmbok/data-quality-management-plan.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Defines the organization\'s approach to data quality management, including objectives, standards, roles, responsibilities, and processes in alignment with DMBOK best practices.', generatedAt: '' }, 'master-data-management-strategy': { title: 'Master Data Management Strategy', filename: 'dmbok/master-data-management-strategy.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Outlines the strategy for managing master data across the organization, including governance, quality, and architecture.', generatedAt: '' }, 'data-architecture-modeling-guide': { title: 'Data Architecture & Modeling Guide', filename: 'dmbok/data-architecture-modeling-guide.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Provides target and current state data architecture with modelling standards and roadmap.', generatedAt: '' }, 'data-modeling-standards': { title: 'Data Modeling Standards Guide', filename: 'dmbok/data-modeling-standards.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Comprehensive guide to data modeling standards, conventions, and best practices.', generatedAt: '' }, 'business-intelligence-strategy': { title: 'Business Intelligence & Analytics Strategy', filename: 'dmbok/business-intelligence-strategy.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Strategy for business intelligence, analytics, and data-driven decision making.', generatedAt: '' }, 'metadata-management-framework': { title: 'Metadata Management Framework', filename: 'dmbok/metadata-management-framework.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Defines the framework for managing metadata, including principles, architecture, standards, and governance.', generatedAt: '' }, 'enterprise-data-dictionary': { title: 'Enterprise Data Dictionary', filename: 'dmbok/enterprise-data-dictionary.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Centralized repository of business and technical metadata for all enterprise data assets.', generatedAt: '' }, 'data-integration-interoperability-strategy': { title: 'Data Integration & Interoperability Strategy', filename: 'dmbok/data-integration-interoperability-strategy.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Outlines the strategy for data integration and interoperability, including patterns, standards, and governance.', generatedAt: '' }, 'data-security-privacy-plan': { title: 'Data Security & Privacy Plan', filename: 'dmbok/data-security-privacy-plan.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Defines the policies, procedures, controls, and responsibilities to protect data assets and ensure privacy compliance.', generatedAt: '' }, 'reference-data-management-plan': { title: 'Reference Data Management Plan', filename: 'dmbok/reference-data-management-plan.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'A plan for managing reference data across the enterprise.', generatedAt: '' }, 'data-storage-operations-handbook': { title: 'Data Storage & Operations Handbook', filename: 'dmbok/data-storage-operations-handbook.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Comprehensive guide for database administration, storage management, and data operations following DMBOK standards.', generatedAt: '' }, 'document-content-management': { title: 'Document & Content Management Framework', filename: 'dmbok/document-content-management-framework.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Comprehensive framework for managing documents and unstructured content across the enterprise, including policies, standards, and best practices.', generatedAt: '' }, 'data-lifecycle-management': { title: 'Data Lifecycle Management Policy', filename: 'dmbok/data-lifecycle-management-policy.md', category: DOCUMENT_CATEGORIES.DMBOK, description: 'Comprehensive policy for managing data throughout its lifecycle from creation to archival and disposal.', generatedAt: '' }, 'persona-utilize-app': { title: 'PersonaUtilizeApp', filename: 'basic-docs/persona-utilize-app.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Describes how different personas interact with and utilize the application.', generatedAt: '' }, 'technology-comfort-user-personas': { title: 'TechnologyComfortUserPersonas', filename: 'basic-docs/technology-comfort-user-personas.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Analysis of user personas’ comfort level with technology.', generatedAt: '' }, 'common-challenges-user-personas': { title: 'CommonChallengesUserPersonas', filename: 'basic-docs/common-challenges-user-personas.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Common challenges faced by user personas in the project context.', generatedAt: '' }, 'common-goals-user-personas': { title: 'CommonGoalsUserPersonas', filename: 'basic-docs/common-goals-user-personas.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Shared goals and objectives among user personas.', generatedAt: '' }, 'collect-requirements-process': { title: 'CollectRequirementsProcess', filename: 'requirements/collect-requirements-process.md', category: DOCUMENT_CATEGORIES.REQUIREMENTS, description: 'Process and methodology for collecting project requirements.', generatedAt: '' }, 'key-rbacroles': { title: 'KeyRBACroles', filename: 'requirements/key-rbacroles.md', category: DOCUMENT_CATEGORIES.REQUIREMENTS, description: 'Key roles and responsibilities for Role-Based Access Control (RBAC).', generatedAt: '' }, 'develop-schedule-input': { title: 'DevelopScheduleInput', filename: 'basic-docs/develop-schedule-input.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Inputs and considerations for developing the project schedule.', generatedAt: '' }, 'core-values': { title: 'CoreValues', filename: 'basic-docs/core-values.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Core values guiding the project and organization.', generatedAt: '' }, 'summary-and-goals': { title: 'SummaryAndGoals', filename: 'basic-docs/summary-and-goals.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Summary of the project and its primary goals.', generatedAt: '' }, 'close-project-phase-process': { title: 'CloseProjectPhaseProcess', filename: 'pmbok/close-project-phase-process.md', category: DOCUMENT_CATEGORIES.PMBOK, description: 'PMBOK process for formally closing a project phase.', generatedAt: '' }, 'perform-integration-change-control-process': { title: 'PerformIntegrationChangeControlProcess', filename: 'pmbok/perform-integration-change-control-process.md', category: DOCUMENT_CATEGORIES.PMBOK, description: 'PMBOK process for managing and controlling project changes.', generatedAt: '' }, 'control-scope-process': { title: 'ControlScopeProcess', filename: 'pmbok/control-scope-process.md', category: DOCUMENT_CATEGORIES.PMBOK, description: 'PMBOK process for monitoring and controlling project scope.', generatedAt: '' }, 'validate-scope-process': { title: 'ValidateScopeProcess', filename: 'pmbok/validate-scope-process.md', category: DOCUMENT_CATEGORIES.PMBOK, description: 'PMBOK process for validating project scope and deliverables.', generatedAt: '' }, 'develop-project-charter': { title: 'DevelopProjectCharter', filename: 'pmbok/develop-project-charter.md', category: DOCUMENT_CATEGORIES.PMBOK, description: 'PMBOK process for developing the formal project charter.', generatedAt: '' }, 'monitor-and-control-project-work': { title: 'MonitorAndControlProjectWork', filename: 'pmbok/monitor-and-control-project-work.md', category: DOCUMENT_CATEGORIES.PMBOK, description: '', generatedAt: '' }, 'quality-management-plsn': { title: 'QualityManagementPlsn', filename: 'planning/quality-management-plsn.md', category: DOCUMENT_CATEGORIES.PLANNING, description: '', generatedAt: '' }, 'schedule-management-plan': { title: 'ScheduleManagementPlan', filename: 'planning/schedule-management-plan.md', category: DOCUMENT_CATEGORIES.PLANNING, description: '', generatedAt: '' }, 'error-handling': { title: 'ErrorHandling', filename: 'technical-design/error-handling.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'deployment-architecture': { title: 'DeploymentArchitecture', filename: 'technical-design/deployment-architecture.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'technical-stack': { title: 'TechnicalStack', filename: 'technical-design/technical-stack.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'integration-design': { title: 'IntegrationDesign', filename: 'technical-design/integration-design.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'performance-requirements': { title: 'PerformanceRequirements', filename: 'technical-design/performance-requirements.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'security-design': { title: 'SecurityDesign', filename: 'technical-design/security-design.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'apidocumentation': { title: 'APIDocumentation', filename: 'technical-design/apidocumentation.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'database-schema': { title: 'DatabaseSchema', filename: 'technical-design/database-schema.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'system-design': { title: 'SystemDesign', filename: 'technical-design/system-design.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'architecture-design': { title: 'ArchitectureDesign', filename: 'technical-design/architecture-design.md', category: DOCUMENT_CATEGORIES.TECHNICAL_DESIGN, description: '', generatedAt: '' }, 'risk-register': { title: 'RiskRegister', filename: 'risk-management/risk-register.md', category: DOCUMENT_CATEGORIES.RISK_MANAGEMENT, description: '', generatedAt: '' }, 'scope-statement': { title: 'ScopeStatement', filename: 'scope-management/scope-statement.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: '', generatedAt: '' }, 'purpose-statement': { title: 'PurposeStatement', filename: 'strategic-statements/purpose-statement.md', category: DOCUMENT_CATEGORIES.STRATEGIC_STATEMENTS, description: '', generatedAt: '' }, 'company-values': { title: 'CompanyValues', filename: 'strategic-statements/company-values.md', category: DOCUMENT_CATEGORIES.STRATEGIC_STATEMENTS, description: '', generatedAt: '' }, 'mission-vision-core-values': { title: 'MissionVisionCoreValues', filename: 'strategic-statements/mission-vision-core-values.md', category: DOCUMENT_CATEGORIES.STRATEGIC_STATEMENTS, description: '', generatedAt: '' }, 'new-test-doc': { title: 'NewTestDoc', filename: 'quality-assurance/new-test-doc.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: '', generatedAt: '' }, 'project-summary': { title: 'Project Summary and Goals', filename: 'basic-docs/project-summary.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'AI-generated project overview with business goals and objectives', generatedAt: '' }, 'user-stories': { title: 'User Stories and Requirements', filename: 'basic-docs/user-stories.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Comprehensive user stories following Agile format', generatedAt: '' }, 'user-personas': { title: 'User Personas', filename: 'basic-docs/user-personas.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Detailed user personas and demographics', generatedAt: '' }, 'key-roles-and-needs': { title: 'Key Roles and Needs Analysis', filename: 'basic-docs/key-roles-and-needs.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Analysis of user roles and their specific needs', generatedAt: '' }, 'project-statement-of-work': { title: 'Project Statement of Work', filename: 'basic-docs/project-statement-of-work.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Project Statement of Work detailing scope, deliverables, and acceptance criteria', generatedAt: '' }, 'business-case': { title: 'Business Case', filename: 'basic-docs/business-case.md', category: DOCUMENT_CATEGORIES.BASIC_DOCS, description: 'Comprehensive business case and justification', generatedAt: '' }, 'project-charter': { title: 'Project Charter', filename: 'project-charter/project-charter.md', category: DOCUMENT_CATEGORIES.PROJECT_CHARTER, description: 'PMBOK Project Charter formally authorizing the project', generatedAt: '' }, 'program-project-charter': { title: 'Program/Project Charter', filename: 'pppm/program-charter.md', category: DOCUMENT_CATEGORIES.PPPM, description: 'Defines program/project purpose, objectives, scope, stakeholders, and authorization. Generated using ProgramCharterTemplate and ProgramCharterProcessor.', generatedAt: '' }, 'project-management-plan': { title: 'Project Management Plan', filename: 'project-charter/project-management-plan.md', category: DOCUMENT_CATEGORIES.PROJECT_CHARTER, description: 'PMBOK Project Management Plan', generatedAt: '' }, 'elicitation-and-collaboration': { title: 'Elicitation & Collaboration', filename: 'babok/elicitation-and-collaboration.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'BABOK: Elicitation & Collaboration document', generatedAt: '' }, 'scope-management-plan': { title: 'Scope Management Plan', filename: 'scope-management/scope-management-plan.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Scope Management Plan', generatedAt: '' }, 'risk-management-plan': { title: 'Risk Management Plan', filename: 'management-plans/risk-management-plan.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Risk Management Plan', generatedAt: '' }, 'cost-management-plan': { title: 'Cost Management Plan', filename: 'management-plans/cost-management-plan.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Cost Management Plan', generatedAt: '' }, 'quality-management-plan': { title: 'Quality Management Plan', filename: 'management-plans/quality-management-plan.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Quality Management Plan', generatedAt: '' }, 'resource-management-plan': { title: 'Resource Management Plan', filename: 'management-plans/resource-management-plan.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Resource Management Plan', generatedAt: '' }, 'communication-management-plan': { title: 'Communication Management Plan', filename: 'management-plans/communication-management-plan.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Communication Management Plan', generatedAt: '' }, 'procurement-management-plan': { title: 'Procurement Management Plan', filename: 'management-plans/procurement-management-plan.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Procurement Management Plan', generatedAt: '' }, // Stakeholder Management - Fix missing properties 'stakeholder-engagement-plan': { title: 'Stakeholder Engagement Plan', filename: 'stakeholder-management/stakeholder-engagement-plan.md', category: DOCUMENT_CATEGORIES.STAKEHOLDER_MANAGEMENT, description: 'PMBOK Stakeholder Engagement Plan', generatedAt: '' }, 'stakeholder-register': { title: 'Stakeholder Register', filename: 'stakeholder-management/stakeholder-register.md', category: DOCUMENT_CATEGORIES.STAKEHOLDER_MANAGEMENT, description: 'PMBOK Stakeholder Register', generatedAt: '' }, 'stakeholder-analysis': { title: 'Stakeholder Analysis', filename: 'stakeholder-management/stakeholder-analysis.md', category: DOCUMENT_CATEGORIES.STAKEHOLDER_MANAGEMENT, description: 'PMBOK Stakeholder Analysis', generatedAt: '' }, 'work-breakdown-structure': { title: 'Work Breakdown Structure (WBS)', filename: 'planning/work-breakdown-structure.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK Work Breakdown Structure', generatedAt: '' }, 'wbs-dictionary': { title: 'WBS Dictionary', filename: 'planning/wbs-dictionary.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK WBS Dictionary with detailed descriptions', generatedAt: '' }, 'program-work-breakdown-structure': { title: 'Program Work Breakdown Structure (WBS)', filename: 'pppm/program-work-breakdown-structure.md', category: DOCUMENT_CATEGORIES.PPPM, description: 'PMBOK Program Work Breakdown Structure', generatedAt: '' }, 'activity-list': { title: 'Activity List', filename: 'planning/activity-list.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK Activity List', generatedAt: '' }, 'activity-duration-estimates': { title: 'Activity Duration Estimates', filename: 'planning/activity-duration-estimates.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK Activity Duration Estimates', generatedAt: '' }, 'activity-resource-estimates': { title: 'Activity Resource Estimates', filename: 'planning/activity-resource-estimates.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK Activity Resource Estimates', generatedAt: '' }, 'schedule-network-diagram': { title: 'Schedule Network Diagram', filename: 'planning/schedule-network-diagram.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK Schedule Network Diagram', generatedAt: '' }, 'milestone-list': { title: 'Milestone List', filename: 'planning/milestone-list.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK Milestone List', generatedAt: '' }, 'schedule-development-input': { title: 'Schedule Development Input', filename: 'planning/schedule-development-input.md', category: DOCUMENT_CATEGORIES.PLANNING, description: 'PMBOK Schedule Development Input', generatedAt: '' }, 'data-model-suggestions': { title: 'Data Model Suggestions', filename: 'technical-analysis/data-model-suggestions.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Database architecture and data model recommendations', generatedAt: '' }, 'tech-stack-analysis': { title: 'Technology Stack Analysis', filename: 'technical-analysis/tech-stack-analysis.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Comprehensive technology stack recommendations', generatedAt: '' }, 'risk-analysis': { title: 'Risk Analysis', filename: 'technical-analysis/risk-analysis.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Detailed risk analysis and mitigation strategies', generatedAt: '' }, 'acceptance-criteria': { title: 'Acceptance Criteria', filename: 'technical-analysis/acceptance-criteria.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Comprehensive acceptance criteria and validation methods', generatedAt: '' }, 'compliance-considerations': { title: 'Compliance Considerations', filename: 'technical-analysis/compliance-considerations.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Regulatory and compliance requirements analysis', generatedAt: '' }, 'ui-ux-considerations': { title: 'UI/UX Considerations', filename: 'technical-analysis/ui-ux-considerations.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'User experience and interface design recommendations', generatedAt: '' }, 'technical-recommendations': { title: 'Technical Recommendations', filename: 'technical-analysis/technical-recommendations.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Comprehensive technical recommendations aligned with PMBOK standards', generatedAt: '' }, 'technology-selection-criteria': { title: 'Technology Selection Criteria', filename: 'technical-analysis/technology-selection-criteria.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Criteria and framework for technology selection decisions', generatedAt: '' }, 'technical-implementation-roadmap': { title: 'Technical Implementation Roadmap', filename: 'technical-analysis/technical-implementation-roadmap.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Phased technical implementation plan and timeline', generatedAt: '' }, 'technology-governance-framework': { title: 'Technology Governance Framework', filename: 'technical-analysis/technology-governance-framework.md', category: DOCUMENT_CATEGORIES.TECHNICAL_ANALYSIS, description: 'Technology governance structure and decision-making framework', generatedAt: '' }, // Missing documents that were incorrectly categorized as "unknown" 'control-scope': { title: 'Control Scope Process', filename: 'scope-management/control-scope.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Control Scope Process', generatedAt: '' }, 'direct-and-manage-project-work': { title: 'Direct and Manage Project Work Process', filename: 'management-plans/direct-and-manage-project-work.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Direct and Manage Project Work Process', generatedAt: '' }, 'project-scope-statement': { title: 'Project Scope Statement', filename: 'scope-management/project-scope-statement.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Project Scope Statement', generatedAt: '' }, 'requirements-documentation': { title: 'Requirements Documentation', filename: 'management-plans/requirements-documentation.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Requirements Documentation', generatedAt: '' }, 'requirements-traceability-matrix': { title: 'Requirements Traceability Matrix', filename: 'management-plans/requirements-traceability-matrix.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Requirements Traceability Matrix', generatedAt: '' }, 'scope-baseline': { title: 'Scope Baseline', filename: 'scope-management/scope-baseline.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Scope Baseline', generatedAt: '' }, 'validate-scope': { title: 'Validate Scope Process', filename: 'scope-management/validate-scope.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Validate Scope Process', generatedAt: '' }, // Additional missing PMBOK documents 'perform-integrated-change-control': { title: 'Perform Integrated Change Control Process', filename: 'management-plans/perform-integrated-change-control.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Perform Integrated Change Control Process', generatedAt: '' }, 'close-project-or-phase': { title: 'Close Project or Phase Process', filename: 'management-plans/close-project-or-phase.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Close Project or Phase Process', generatedAt: '' }, 'plan-scope-management': { title: 'Plan Scope Management', filename: 'scope-management/plan-scope-management.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Plan Scope Management', generatedAt: '' }, 'requirements-management-plan': { title: 'Requirements Management Plan', filename: 'management-plans/requirements-management-plan.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Requirements Management Plan', generatedAt: '' }, 'collect-requirements': { title: 'Collect Requirements Process', filename: 'management-plans/collect-requirements.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Collect Requirements Process', generatedAt: '' }, 'define-scope': { title: 'Define Scope Process', filename: 'scope-management/define-scope.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Define Scope Process', generatedAt: '' }, 'create-wbs': { title: 'Create WBS Process', filename: 'management-plans/create-wbs.md', category: DOCUMENT_CATEGORIES.MANAGEMENT_PLANS, description: 'PMBOK Create WBS Process', generatedAt: '' }, 'work-performance-information-scope': { title: 'Work Performance Information (Scope)', filename: 'scope-management/work-performance-information-scope.md', category: DOCUMENT_CATEGORIES.SCOPE_MANAGEMENT, description: 'PMBOK Work Performance Information (Scope)', generatedAt: '' }, 'project-purpose': { title: 'Project Purpose', filename: 'strategic-statements/project-purpose.md', category: DOCUMENT_CATEGORIES.STRATEGIC, description: 'Project purpose and objectives documentation', generatedAt: '' }, 'project-kickoff-preparations-checklist': { title: 'Project KickOff Preparations Checklist', filename: 'planning/Project-KickOff-Preprations-CheckList.md', category: DOCUMENT_CATEGORIES.PLANNING_ARTIFACTS, description: 'Checklist for project kickoff preparations, including scope, stakeholders, resources, and readiness.', generatedAt: '' }, // Quality Assurance Documents 'test-strategy': { title: 'Test Strategy', filename: 'quality-assurance/test-strategy.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Comprehensive testing strategy and approach', generatedAt: '' }, 'test-plan': { title: 'Test Plan', filename: 'quality-assurance/test-plan.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Detailed test plan with test scenarios and execution plan', generatedAt: '' }, 'test-cases': { title: 'Test Cases', filename: 'quality-assurance/test-cases.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Detailed test cases and test scenarios', generatedAt: '' }, 'quality-metrics': { title: 'Quality Metrics', filename: 'quality-assurance/quality-metrics.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Quality metrics and measurement criteria', generatedAt: '' }, 'tech-acceptance-criteria': { title: 'Technical Acceptance Criteria', filename: 'quality-assurance/tech-acceptance-criteria.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Technical acceptance criteria and validation requirements', generatedAt: '' }, 'performance-test-plan': { title: 'Performance Test Plan', filename: 'quality-assurance/performance-test-plan.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Performance testing strategy and test plan', generatedAt: '' }, 'security-testing': { title: 'Security Testing', filename: 'quality-assurance/security-testing.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Security testing procedures and validation', generatedAt: '' }, 'code-review': { title: 'Code Review', filename: 'quality-assurance/code-review.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Code review processes and standards', generatedAt: '' }, 'bug-report': { title: 'Bug Report', filename: 'quality-assurance/bug-report.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Bug reporting template and procedures', generatedAt: '' }, 'test-environment': { title: 'Test Environment', filename: 'quality-assurance/test-environment.md', category: DOCUMENT_CATEGORIES.QUALITY_ASSURANCE, description: 'Test environment setup and configuration', generatedAt: '' }, // Implementation Guides Documents 'coding-standards': { title: 'Coding Standards', filename: 'implementation-guides/coding-standards.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Development coding standards and guidelines', generatedAt: '' }, 'development-setup': { title: 'Development Setup', filename: 'implementation-guides/development-setup.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Development environment setup guide', generatedAt: '' }, 'version-control': { title: 'Version Control', filename: 'implementation-guides/version-control.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Version control procedures and best practices', generatedAt: '' }, 'ci-pipeline': { title: 'CI Pipeline', filename: 'implementation-guides/ci-pipeline.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Continuous integration pipeline setup and configuration', generatedAt: '' }, 'release-process': { title: 'Release Process', filename: 'implementation-guides/release-process.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Software release process and procedures', generatedAt: '' }, 'code-documentation': { title: 'Code Documentation', filename: 'implementation-guides/code-documentation.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Code documentation standards and guidelines', generatedAt: '' }, 'troubleshooting': { title: 'Troubleshooting', filename: 'implementation-guides/troubleshooting.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Troubleshooting guide and common issues', generatedAt: '' }, 'development-workflow': { title: 'Development Workflow', filename: 'implementation-guides/development-workflow.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Development workflow and processes', generatedAt: '' }, 'api-integration': { title: 'API Integration', filename: 'implementation-guides/api-integration.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'API integration guide and best practices', generatedAt: '' }, 'deployment-guide': { title: 'Deployment Guide', filename: 'implementation-guides/deployment-guide.md', category: DOCUMENT_CATEGORIES.IMPLEMENTATION_GUIDES, description: 'Application deployment guide and procedures', generatedAt: '' }, // Strategic Statements Documents 'strategic-business-case': { title: 'Strategic Business Case', filename: 'strategic-statements/strategic-business-case.md', category: DOCUMENT_CATEGORIES.STRATEGIC_STATEMENTS, description: 'Strategic business case and strategic analysis', generatedAt: '' }, 'introduction-business-analysis-body-of-knowledge': { title: 'Introduction Business Analysis Body of Knowledge', filename: 'babok/INTRODUCTION BUSINESS ANALYSIS BODY OF KNOWLEDGE.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'Provides an overview, checklist, and summary of all BABOK documents, including coverage gaps and improvement suggestions.', generatedAt: '' }, // BABOK Documents 'business-analysis-planning-and-monitoring': { title: 'Business Analysis Planning & Monitoring', filename: 'babok/business-analysis-planning-and-monitoring.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'Defines the tasks used to organize and coordinate business analysis efforts.', generatedAt: '' }, 'babokintroduction': { title: 'BABOK Introduction', filename: 'BABOK/babokintroduction.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'Business Analysis Body of Knowledge introduction', generatedAt: '' }, 'requirements-life-cycle-management': { title: 'Requirements Life Cycle Management', filename: 'babok/requirements-life-cycle-management.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'BABOK: Requirements Life Cycle Management document', generatedAt: '' }, 'strategy-analysis': { title: 'Strategy Analysis', filename: 'babok/strategy-analysis.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'BABOK: Strategy Analysis document', generatedAt: '' }, 'requirements-analysis-and-design-definition': { title: 'Requirements Analysis & Design Definition', filename: 'babok/requirements-analysis-and-design-definition.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'BABOK: Requirements Analysis & Design Definition document', generatedAt: '' }, 'solution-evaluation': { title: 'Solution Evaluation', filename: 'babok/solution-evaluation.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'BABOK: Solution Evaluation document', generatedAt: '' }, 'underlying-competencies': { title: 'Underlying Competencies', filename: 'babok/underlying-competencies.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'BABOK: Underlying Competencies document', generatedAt: '' }, 'perspectives': { title: 'Perspectives', filename: 'babok/perspectives.md', category: DOCUMENT_CATEGORIES.BABOK, description: 'BABOK: Perspectives document', generatedAt: '' }, 'portfolio-stakeholder-analysis': { title: 'Portfolio/Program Stakeholder Analysis', filename: 'stakeholder-management/portfolio-stakeholder-analysis.md', category: DOCUMENT_CATEGORIES.STAKEHOLDER_MANAGEMENT, description: 'Portfolio/Program-level Stakeholder Analysis', generatedAt: '' }, 'project-status-report': { title: 'Project Status Report', filename: 'pppm/project-status-report.md', category: DOCUMENT_CATEGORIES.PPPM, description: 'Tracks project progress, accomplishments, milestones, budget, schedule, issues, risks, action items, and next period focus.', generatedAt: '' }, 'program-risk-register': { title: 'Program Risk Register', filename: 'pppm/program-risk-register.md', category: DOCUMENT_CATEGORIES.PPPM, description: 'Comprehensive risk register for program-level, cross-project, and strategic risks. PMO/PMBOK-compliant.', generatedAt: '' }, 'program-change-request-form': { title: 'Program Change Request Form', filename: 'pppm/program-change-request-form.md', category: DOCUMENT_CATEGORIES.PPPM, description: 'PMO/PMBOK-compliant change request form for program-level changes.', generatedAt: '' }, 'detailed-planning-artifacts': { title: 'Detailed Planning Artifacts', filename: 'pppm/detailed-planning-artifacts.md', category: DOCUMENT_CATEGORIES.PPPM, description: 'PMO/PMBOK-compliant detailed planning artifacts for program-level changes.', generatedAt: '' } }; // Create organized directory structure export function createDirectoryStructure() { const baseDir = 'generated-documents'; // Create base directory if (!fs.existsSync(baseDir)) { fs.mkdirSync(baseDir, { recursive: true }); } // Create category subdirectories Object.values(DOCUMENT_CATEGORIES).forEach(category => { const categoryDir = path.join(baseDir, category); if (!fs.existsSync(categoryDir)) { fs.mkdirSync(categoryDir, { recursive: true }); } }); console.log(`📁 Created organized directory structure in ${baseDir}/`); } export function readProjectContext(filename = 'README.md') { try { if (!fs.existsSync(filename)) { console.warn(`⚠️ ${filename} not found. Using generic project context.`); return 'Generic project requiring comprehensive requirements analysis and PMBOK documentation.'; } const content = fs.readFileSync(filename, 'utf-8'); console.log(`✅ Found ${filename} - using as project context`); return content; } catch (error) { console.error(`❌ Error reading ${filename}:`, error); return 'Project context could not be loaded.'; } } /** * Enhanced project context reader that analyzes all relevant markdown files * @param projectPath - The root directory of the project (defaults to current directory) * @returns Comprehensive project context including all relevant documentation */ export async function readEnhancedProjectContext(projectPath = process.cwd()) { try { console.log('🔍 Performing comprehensive project analysis...'); // Import the analyzer and processor dynamically to avoid circular imports const { analyzeProjectComprehensively } = await import('./projectAnalyzer.js'); const { populateEnhancedContextFromAnalysis } = await import('./llmProcessor.js'); // Perform comprehensive analysis const analysis = await analyzeProjectComprehensively(projectPath); // Log findings for transparency if (analysis.additionalMarkdownFiles?.length > 0) { console.log(`📋 Found ${analysis.additionalMarkdownFiles.length} additional relevant files:`); analysis.additionalMarkdownFiles .slice(0, 10) // Show top 10 .forEach((file) => { console.log(` • ${file.fileName} (${file.category}, score: ${file.relevanceScore})`); }); if (analysis.additionalMarkdownFiles.length > 10) { console.log(` • ... and ${analysis.additionalMarkdownFiles.length - 10} more files`); } } if (analysis.suggestedSources?.length > 0) { console.log(`💡 High-value sources identified: ${analysis.suggestedSources.join(', ')}`); } // Populate Enhanced Context Manager with discovered files await populateEnhancedContextFromAnalysis(analysis); // Return the comprehensive context return analysis.projectContext; } catch (error) { console.warn('⚠️ Enhanced analysis failed, falling back to basic README analysis:', error); return readProjectContext(); } } export function saveDocument(documentKey, content) { if (!content || content.trim().length === 0) { console.log(`⚠️ Skipped: ${documentKey} (no content generated)`); return; } const config = DOCUMENT_CONFIG[documentKey]; if (!config) { console.warn(`\u26a0\ufe0f WARNING: Unknown document key: ${documentKey}. This document type is not registered in DOCUMENT_CONFIG and will be saved as 'UNKNOWN'.\nTo enable full support and version control, add this document type to the registry in both generationTasks.ts and fileManager.ts.`); // Create a fallback config for unknown keys const fallbackConfig = { title: documentKey.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase()), filename: `${documentKey}.md`, category: DOCUMENT_CATEGORIES.UNKNOWN, // Use the new UNKNOWN key description: 'Auto-generated document', generatedAt: '' }; const baseDir = 'generated-documents'; const categoryDir = path.join(baseDir, fallbackConfig.category); const filePath = path.join(categoryDir, fallbackConfig.filename); // Ensure directory exists if (!fs.existsSync(categoryDir)) { fs.mkdirSync(categoryDir, { recursive: true }); } const timestamp = new Date().toISOString(); const projectInfo = getProjectInfo(); const documentHeader = `# ${fallbackConfig.title} **Generated by ${projectInfo.name} v${projectInfo.version}** **Category:** ${fallbackConfig.category} **Generated:** ${timestamp} **Description:** ${fallbackConfig.description} --- `; const fullContent = documentHeader + content; try { fs.writeFileSync(filePath, fullContent, 'utf-8'); console.log(`✅ Saved: ${fallbackConfig.title} → ${filePath}`); } catch (error) { console.error(`❌ Error saving ${documentKey}:`, error); } return; } const baseDir = 'generated-documents'; // Use filename (which may include category subfolder) directly under baseDir const filePath = path.join(baseDir, config.filename); // Ensure parent directory exists const parentDir = path.dirname(filePath); if (!fs.existsSync(parentDir)) { fs.mkdirSync(parentDir, { recursive: true }); } // Add document header with metadata const timestamp = new Date().toISOString(); const projectInfo = getProjectInfo(); const documentHeader = `# ${config.title} **Generated by ${projectInfo.name} v${p