internationalcolorconsortium/iccdev/iis-isapi-qa
Claude Code and agent skill by internationalcolorconsortium/iccdev
- community
Checking that the SKILL.md file is still in the repository.
Build, deploy, and validate the Windows iccIisIsapi HTTP endpoints, browser console, upload pipeline, PAWG report, artifacts, and security behavior.
Install
npx vskill@latest install internationalcolorconsortium/iccdev/iis-isapi-qaSKILL.md
IIS ISAPI QA
Use this skill for changes under Tools/Winnt/IccIisIsapi/, its CMake target, HTTP contract, deployment scripts, or browser console.
Workflow
- Read
../../../Tools/Winnt/IccIisIsapi/isapi-instructions.mdand
../../../Tools/Winnt/IccIisIsapi/api.md.
- Confirm PowerShell 7 or later is available as
pwsh; the stress script uses
ForEach-Object -Parallel.
- Configure a Windows shared-library build with IIS tools, tests, and tools
enabled.
- Build the
installtarget so the site root contains every runtime library
and wrapped executable.
- Export and import a package. Import validation must use clean staging and
reject missing web files or executables, including iccPawgReport.exe, before changing the destination. Repeat with stale destination tools.
- Run
iccIisIsapiSmoke.exeagainsticcIisIsapi.dll. - Install an isolated IIS site on a non-default port.
Use a dedicated ApplicationPoolIdentity pool and verify anonymous access uses that identity. Require read/execute access to the runtime tree and modify access only to _tool-work; do not grant shared IUSR access. Record the deployed DLL hash separately from the source revision.
- Run
Test-IccIisIsapiEndpoints.ps1with a tracked ICC profile. - Open
endpoints.htmlin a browser and verify:
- summary, health, and XML buttons render successful responses;
- the profile upload form uses plain user-facing language;
- the Profile Assessment Report is visible and downloadable;
- workspace and artifact links open;
- the console has no JavaScript or missing-resource errors.
- Test malformed input kinds, oversized uploads, unsafe filenames, and method
rejection. Also test missing X-ICCDEV-Request, incorrect media types, cross-site requests, XML DOCTYPE, workspace enumeration, active-content upload extensions, internal path disclosure, and response security headers. Reject CSP containing unsafe-inline; require blocked style attributes and exact SHA-256 hashes for retained inline stylesheet blocks.
- Run
Stress-IccIisIsapi.ps1withpwsh, then remove the temporary site
and app pool. Require every executed phase to contribute to the verdict. Client-invalid MIME skips are not server evidence; transport failures are not passes. Duration is per phase; use an external timeout for a total QA deadline. Run python .github/scripts/test_iis_stress_verdicts.py for verdict changes. Verify newly created IIS resources are removed after installer failure.
Required behavior
- Accept only
input=iccorinput=xml; reject other values with HTTP 400. - Keep the upload limit at 16 MB unless a reviewed design changes it.
- Require
X-ICCDEV-Request: 1and the documented ICC/XML media type. - Bind local QA sites to
127.0.0.1. - Force uploaded files to
.iccor.xml; never serve attacker-selected
active-content extensions.
- Use non-enumerated 128-bit workspace identifiers, retain at most 100 jobs,
expire jobs after 24 hours, and deny the workspace root.
- Generate workspace identifiers with the Windows system cryptographic RNG.
- Require IIS authentication and authorization for non-loopback deployment.
- Require generic IIS 403/404 responses with no physical paths or diagnostic
details, and verify malformed request paths are not reflected.
- Reject XML
DOCTYPEdeclarations in the HTTP service. - Run child processes with argument arrays, bounded timeouts, and captured
output.
- Treat
iccPawgReportexit code 1 as a completed assessment with findings,
not a process crash.
- Treat every packaged wrapped executable, including
iccPawgReport.exe, as
required. Validate the extracted package itself, never a merged destination that may contain stale tools.
- Persist the PAWG output as
icc-pawg-report.txt. - Sanitize filenames, JSON, HTML, browser links, and error messages.
- Keep child-process arguments workspace-relative so output does not disclose
server filesystem paths.
- Do not publish child-process command lines in JSON or workspace HTML.
- Route every method through the ISAPI handler so unsupported verbs receive
the controlled 405 response rather than an HTTP.sys diagnostic response.
- Do not expose benchmark or arbitrary-argv tools through this endpoint.
- Keep HEIF native-only until an explicit carrier API contract is implemented;
the presence of iccHeifDump.exe does not prove HTTP HEIF support.
Validation
Run git diff --check, verify changed files are ASCII, parse the OpenAPI YAML, and cite the live IIS test output in the handoff.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.github/skills/iis-isapi-qa/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/internationalcolorconsortium/iccdev/iis-isapi-qa)