$ErrorActionPreference = "Stop" $repoRoot = Split-Path -Parent $PSScriptRoot $chatWindow = Join-Path $repoRoot "src\AxCopilot\Views\ChatWindow.xaml.cs" $clawQuickstart = Join-Path $repoRoot "claw-code\en\quickstart.md" $outFile = Join-Path $repoRoot "docs\TOOL_PARITY_REPORT.md" if (-not (Test-Path $chatWindow)) { throw "ChatWindow.xaml.cs not found: $chatWindow" } $axSlash = Select-String -Path $chatWindow -Pattern '^\s*\["/[^"]+"\]\s*=' | ForEach-Object { if ($_.Line -match '^\s*\["(/[^"]+)"\]\s*=') { $Matches[1] } } | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Sort-Object -Unique $clawSlash = @() if (Test-Path $clawQuickstart) { $clawSlash = Select-String -Path $clawQuickstart -Pattern '^\|\s*`/[^`]+`\s*\|' | ForEach-Object { if ($_.Line -match '`\s*(/[a-zA-Z0-9\-]+)\s*`') { $Matches[1] } } | Where-Object { $_.StartsWith("/") } | Sort-Object -Unique } $axOnly = $axSlash | Where-Object { $clawSlash -notcontains $_ } $common = $axSlash | Where-Object { $clawSlash -contains $_ } $clawOnly = $clawSlash | Where-Object { $axSlash -notcontains $_ } $lines = New-Object System.Collections.Generic.List[string] $lines.Add("# Tool/Slash Parity Report") $lines.Add("") $lines.Add("Generated: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')") $lines.Add("") $lines.Add("## Summary") $lines.Add("- AX slash count: $($axSlash.Count)") $lines.Add("- claw-code slash count: $($clawSlash.Count)") $lines.Add("- Common: $($common.Count)") $lines.Add("- AX only: $($axOnly.Count)") $lines.Add("- claw-code only: $($clawOnly.Count)") $lines.Add("") $lines.Add("## Common") foreach ($s in $common) { $lines.Add("- $s") } $lines.Add("") $lines.Add("## AX Only") foreach ($s in $axOnly) { $lines.Add("- $s") } $lines.Add("") $lines.Add("## claw-code Only") foreach ($s in $clawOnly) { $lines.Add("- $s") } $lines.Add("") $lines.Add("## Notes") $lines.Add("- claw-code source baseline: claw-code/en/quickstart.md") $lines.Add("- AX source baseline: src/AxCopilot/Views/ChatWindow.xaml.cs") Set-Content -Path $outFile -Value $lines -Encoding UTF8 Write-Output "Generated: $outFile"