react-critic is a multi-critic orchestration repo for JavaScript ecosystems:
- react-critic
- next-critic
- react-native-critic
- proposal-critic
Each critic is read-only and uses external specialist skills by reference only.
A router agent (js-critic-router) dispatches to the correct critic based on framework signals.
python3 scripts/refresh_external_skills.py # dry-run: show diffs
python3 scripts/refresh_external_skills.py --approve # apply pin + hash updates
python3 scripts/refresh_external_skills.py --check # CI: fail if updates needed
python3 scripts/verify_no_copied_skills.py # validate manifest structure
python3 scripts/verify_no_copied_skills.py --verify-content # fetch + hash verification
python3 scripts/run_benchmark.py --all
python3 scripts/aggregate_stability.py- No-copy policy: external skills are referenced in manifests with pinned commits.
- Max 3 external skills loaded per run.
- Evidence required for CRITICAL/MAJOR findings.
- Security Exploitability Gate: security findings must demonstrate a concrete exploit path reachable by non-privileged users. Unconfirmed findings tagged
[UNCONFIRMED]and moved to Open Questions. - Shared JS-core rubric + critic-specific rubrics.
Visual explainer — interactive architecture diagram hosted on GitHub Pages.
External skills are loaded by reference (pinned commit SHA + content SHA-256 hash).
content_sha256in manifests stores the SHA-256 of each skill's SKILL.md at the pinned commit.refresh_external_skills.pyshows content diffs and requires--approveto write updates.verify_no_copied_skills.py --verify-contentfetches and re-hashes to detect tampering.- CI validates manifest structure; full content verification available via
--verify-content.
Upstream skill repos should be configured with:
- Signed commits: require commit signature verification on default branch.
- Branch protection: require PR reviews and status checks before merge to default branch.
- No force push: disable force push to default branch to preserve commit history integrity.
These are manual configurations on each upstream repo — they cannot be enforced from this repo,
but should be verified before adding a new owner to TRUSTED_OWNERS.
- Fixtures:
research/benchmarks/fixtures/{react,next,react-native}/(8 per critic) - Results:
research/benchmarks/results/ - Scoring: rubric-coverage evaluation (prompt checklist vs annotated fixture issues)
- Seeds: 3 jackknife windows per critic; aggregate stability in
stability-report.md