Skip to content

Validation Toolchain

Workflow Skill Router includes a dependency-free validation toolchain. Use it before publishing a router repo, release, or public router package.

Terminal window
python scripts/validate-router.py starter/workflow-skill-router
python scripts/validate-router.py examples/template-skill-catalog

Expected:

OK: workflow-skill-router passed validation
OK: template-skill-catalog passed validation

This checks SKILL.md, required reference files, route Primary: markers, max skill count, example README files, and placeholder policy.

Terminal window
python scripts/audit-public-readiness.py .

Expected:

OK: public-readiness audit passed

The audit checks community files, downloads, template catalog/manifest parity, site entrypoints, stale examples, mojibake, replacement characters, and hidden edit-link UI text.

The legacy validator flag remains available:

Terminal window
python scripts/validate-router.py --public-readiness .
Terminal window
python scripts/scan-skills.py ./sample-skills \
--out /tmp/skill-index.json \
--markdown /tmp/skill-index.md \
--warnings /tmp/skill-warnings.md \
--suggest-tree /tmp/suggested-skill-tree.md \
--fail-on-private \
--fail-on-duplicates

Use --fail-on-private and --fail-on-duplicates for release gates. The scanner writes a machine-readable index, Markdown summary, warnings report, and suggested skill tree.

Terminal window
python scripts/evaluate-routing.py \
--scenarios evaluation/scenarios.example.jsonl \
--predictions evaluation/predictions.example.jsonl \
--report /tmp/routing-report.md \
--json-report /tmp/routing-report.json \
--fail-on-violations \
--strict

Add --strict when primary mismatches or missing expected supporting skills should fail CI.

Terminal window
python -m unittest discover -s tests

The test suite covers the evaluator and scanner with standard-library unittest.

Use this before a public launch to score the generated Starlight site:

Terminal window
cd site
npm run audit:lighthouse

Expected:

OK: Lighthouse audit passed. Reports written to lighthouse-reports

The audit builds the site, serves site/dist locally, runs Lighthouse on key English and Traditional Chinese pages, and writes JSON/HTML reports to site/lighthouse-reports/.

The public site intentionally uses the project path https://huangchiyu.com/Workflow-skill-router/. Do not add a repo-level CNAME file unless the project moves to a dedicated custom domain.

GitHub Pages API can still report cname=null or https_enforced=false for this setup. The publishing gate is live visitor behavior:

Terminal window
curl -fsS --head https://huangchiyu.com/Workflow-skill-router/
curl -fsS -I -L http://huangchiyu.com/Workflow-skill-router/

Expected: HTTPS returns 200, and HTTP resolves to the HTTPS project path.