The Evaluation Framework is a comprehensive testing and validation system for the PowerShell profile workspace. It automatically checks:
- Syntax Validation - PowerShell AST parsing correctness
- Module Loadability - All profile.d modules load without errors
- Context Detection - Global variables and context properties
- Function Availability - Required functions are accessible
- Best Practices - Code quality and design patterns
| File | Purpose |
|---|---|
| Evaluation-Framework.ps1 | Main framework with all test functions (480 lines) |
| EVALUATION-REPORT.md | Detailed results, metrics, and recommendations |
| FRAMEWORK-QUICK-START.md | Quick reference and common tasks |
| FRAMEWORK-INDEX.md | This file - navigation guide |
- Read FRAMEWORK-QUICK-START.md (5 min read)
- Run
Invoke-WorkspaceEvaluationto see what it does - Check EVALUATION-REPORT.md for results
. .\Evaluation-Framework.ps1
Invoke-WorkspaceEvaluation. .\Evaluation-Framework.ps1
Invoke-WorkspaceEvaluation -Detailed. .\Evaluation-Framework.ps1
Invoke-WorkspaceEvaluation -ExportJson "report.json"
# Use report.json in your pipeline→ FRAMEWORK-QUICK-START.md
- What it does in 30 seconds
- Common commands
- Troubleshooting
- Pro tips
→ EVALUATION-REPORT.md
- Full test results
- Performance metrics
- Issues found and resolutions
- Recommendations
- Testing checklist
→ Evaluation-Framework.ps1
- 9 test functions with detailed comments
- Architecture overview
- Advanced usage patterns
- Function reference
# Syntax validation
Test-ProfileSyntax # Check Profile.ps1 syntax
Test-ProfileDSyntax # Check all profile.d modules
# Loading & availability
Test-ModuleLoadability # Load all modules, measure timing
Test-ContextDetection # Verify ProfileContext variable
Test-FunctionAvailability # Check required functions
# Quality & performance
Test-BestPractices # Check design patterns
Measure-ProfileLoadTime # Benchmark 3 iterations# Complete evaluation
Invoke-WorkspaceEvaluation # Run all tests, show summary
Invoke-WorkspaceEvaluation -Detailed # Show detailed results
Invoke-WorkspaceEvaluation -ExportJson "file.json" # Export
# Quick diagnostic
Get-ProfileDiagnostics # Fast health checkTimestamp: 2026-01-02 09:40:07
Status: ✓ PASS (Syntax Valid)
Workspace Root: worktree-2026-01-02T07-37-40
Syntax Validation:
✓ Main Profile: Valid
✓ profile.d modules: 14/14 valid
Module Loadability:
✓ All modules load successfully
⏱ Total time: ~4,036ms
Best Practices:
✓ 5/6 checks passed
⚠ Missing: Set-StrictMode (optional enhancement)
Performance:
Fast modules: 7 (< 50ms)
Medium modules: 3 (50-200ms)
Heavy modules: 3 (> 700ms)
. .\Evaluation-Framework.ps1
Get-ProfileDiagnostics. .\Evaluation-Framework.ps1
Invoke-WorkspaceEvaluation. .\Evaluation-Framework.ps1
Invoke-WorkspaceEvaluation -Detailed | Out-File "report.txt". .\Evaluation-Framework.ps1
Invoke-WorkspaceEvaluation -ExportJson "results-$(Get-Date -Format yyyyMMdd).json". (Join-Path $PSScriptRoot "profile.d\30-completions.ps1")
# Module is now loaded and available. .\Evaluation-Framework.ps1
Test-ModuleLoadability | Format-Table -AutoSize
Measure-ProfileLoadTimeA: This is normal when running the framework outside of the profile load sequence. The ProfileContext global variable only exists after the profile is sourced. Not a problem - just means the test environment differs from production.
A: If you see EVALUATION STATUS: ✓ PASS, yes! The syntax is valid and all modules load without errors.
A: The heaviest modules are:
- git-completion (1.7s) - generates git command completions
- terminal-icons (1.0s) - initializes file/folder icons
- completions (0.7s) - loads completion handlers
These are normal and not a concern unless you need faster startup.
A: Optional. It's a best practice that catches errors early but isn't required for functionality.
A: Yes! Use Invoke-WorkspaceEvaluation -ExportJson and parse the JSON in your pipeline.
- ✓ Profile syntax is valid
- Load profile in your PowerShell session
- Run
Show-ProfileStatusandInvoke-ProfileHealthCheck - Test completions, aliases, and custom functions
- Review EVALUATION-REPORT.md recommendations
- Consider adding Set-StrictMode for better error detection
- Verify all tools mentioned in health check are installed
- Profile performance with
Measure-ProfileLoadTime - Consider deferring heavy modules if startup is slow
- Set up periodic health checks via Task Scheduler
# Make sure you're in the correct directory
cd "C:\Path\To\Powershell-Profile-v1.0"
. .\Evaluation-Framework.ps1# Reload framework if running multiple tests
Remove-Item Function:\* -ErrorAction SilentlyContinue
. .\Evaluation-Framework.ps1# Get detailed error information
. .\Evaluation-Framework.ps1
Invoke-WorkspaceEvaluation -Detailed- Check EVALUATION-REPORT.md troubleshooting section
- Review error messages in detailed output
- Test individual modules:
. .\profile.d\XX-name.ps1
- README.md - Profile installation and configuration
- openmemory.md - Architecture and design documentation
- Profile.ps1 - Main profile source code
- profile.d/ - Modular profile components
✓ Evaluation Framework Added
- 9 comprehensive test functions
- Automated syntax validation
- Module loading verification
- Performance metrics collection
- Best practices compliance checking
✓ Fixed Profile Issues
- Resolved syntax errors in Profile.ps1
- Verified all 14 profile.d modules
- Cleaned up duplicate function definitions
- Validated error handling
✓ Created Documentation
- Quick start guide for users
- Detailed evaluation report
- This navigation index
- Framework source with comments
Status: Your PowerShell profile workspace now has professional-grade evaluation and validation tools! 🎉
| Want to... | Go to... |
|---|---|
| Get started immediately | FRAMEWORK-QUICK-START.md |
| See evaluation results | EVALUATION-REPORT.md |
| Understand the framework | Evaluation-Framework.ps1 |
| Install/configure profile | README.md |
| Learn architecture | openmemory.md |
Last Updated: 2026-01-02
Framework Version: 1.0
PowerShell Version: 7.5.4
Status: ✓ Operational