Use this guide to verify PromptImprover from a clean Windows operator session.
cd C:\PersonalRepo\portfolio\Promptimprover\universal-refinernpm.cmd run release:verifyExpected result:
- TypeScript build passes.
- Vitest coverage reports 100% statements, branches, functions, and lines.
- MCP tool acceptance passes.
- Semantic fallback acceptance passes.
- Tracked-turn acceptance links a
prm_...prompt ID in SQLite. - EventStore stress, abrupt recovery, and soak pass.
- Production and full dependency audits report zero high-or-higher vulnerabilities.
- Secret scan passes.
- Package dry-run passes.
acceptance:package-runtimeinstalls the packed tarball into a temporary global prefix and serves/api/health.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\register-global.ps1 -Check -ProfileRoot C:\Users\KimHarjamaki -CodexHome C:\codex-homeExpected result:
OK Codex
OK Claude Code MCP
OK Claude Code hooks
OK Gemini
If any row reports DRIFT, run -Apply only after confirming the drift is expected:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\register-global.ps1 -Apply -ProfileRoot C:\Users\KimHarjamaki -CodexHome C:\codex-homecodex.cmd mcp list | Select-String -Pattern 'prompt-refiner|obsidian|Connected|enabled'
claude.cmd mcp list | Select-String -Pattern 'prompt-refiner|obsidian|Connected|Configured'
gemini.cmd mcp list | Select-String -Pattern 'prompt-refiner|obsidian|Connected|Configured'Expected result:
- Codex lists
prompt-refinerandobsidianas enabled. - Claude lists
prompt-refinerandobsidianas connected. - Gemini lists
prompt-refinerandobsidianas connected.
Codex may show Unsupported in the status column for stdio MCP entries. Treat the registration doctor as the authoritative config drift check.
Start or restart the local background runtime:
$repo = 'C:\PersonalRepo\portfolio\Promptimprover\universal-refiner'
Get-CimInstance Win32_Process |
Where-Object { $_.Name -eq 'node.exe' -and ($_.CommandLine -match 'universal-refiner.*dist/src/index.js' -or $_.CommandLine -match 'universal-refiner.*dist\\src\\index.js') } |
ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
$env:PROMPT_REFINER_BACKGROUND = 'true'
Start-Process -WindowStyle Hidden -FilePath node -ArgumentList (Join-Path $repo 'dist\src\index.js') -WorkingDirectory $repoCheck health:
Invoke-RestMethod http://127.0.0.1:3000/api/health | ConvertTo-Json -Depth 6Expected result:
runtime.statusisonline.semantic.local.enabledistrue.semantic.local.modelsincludesgemma3:12bandgemma3:1b.
$env:PROMPT_REFINER_ACCEPTANCE_BASE_URL = 'http://localhost:9000/v1'
npm.cmd run acceptance:gemma:liveExpected result:
Live semantic acceptance passed for gemma3:12b and gemma3:1b at http://localhost:9000/v1.
Semantic acceptance passed: gemma3:12b -> gemma3:1b and outage provider fallback.
Warnings such as HTTP 503 for gemma3:12b and fetch failed during the outage section are expected. They prove fallback and outage paths are being exercised. The command must still exit successfully.
npm.cmd run acceptance:package-runtimeExpected result:
Package runtime smoke passed: installed gemini-prompt-refiner-8.0.0 and served /api/health on <port>.
This catches missing production dependencies that are hidden by the local workspace.
After pushing a branch and opening a pull request:
gh pr checks <PR_NUMBER> --repo Coding-Autopilot-System/Promptimprover
gh run list --repo Coding-Autopilot-System/Promptimprover --branch <BRANCH_NAME> --limit 10Expected result:
build-and-testpasses.- Both acceptance matrix jobs pass.
stresspasses.windowspasses.supply-chainpasses.release-gatepasses.
Remote CI is the authoritative proof for Linux and Windows clean-checkout behavior.