Jev classifies. GitHub Stars rank. Humans decide what gets published.
This is an independent community tool for classifying Jev-related GitHub projects, System One ecosystem work, and real-world use cases. It supports the OpenRouter Jev Decisions API used by Jev AI Dev and TypeSafe's official @typesafe-ai/sdk.
GitHub Star ranking is deliberately simple and reproducible: current Star count in descending order. Jev does not score project popularity or decide the final list order.
This project is not an official TypeSafe AI release. Official Jev information is available at typesafe.ai.
- Collects named repositories or GitHub search results, README text, metadata, current Stars, and latest commit time.
- Applies one of three versioned Jev rubrics:
project,system-one, oruse-case. - Produces structured JSON with suggested tags and explicit review flags.
- Produces a Markdown checklist for maintainers.
- Marks every result
pending_human_review.
The CLI does not publish, commit, push, open pull requests, edit Jev AI Radar, or update a website.
On September 23, 2026, Jev AI Dev ran this tool against 15 items from its live Projects, System One, and User Cases collections. Across the 10 Project and User Case items with scenario baselines, Jev's primary category matched one of the existing human labels in 10 of 10 cases. The sample is small and does not establish general accuracy. See the validation note for the method, findings, and limitations.
The repository includes a maintainer adapter for a local checkout of the jevai.dev source. It parses the expected JSON and JSON-like TypeScript data declarations without importing or executing the source files. Other users can provide the same optional metadata.humanBaseline.scenarios field in their own candidate JSON and run the generic evaluate command.
npm run cli -- import-jevai-dev \
--site-root ../jevai \
--profile project \
--limit 5 \
--output data/pilot-projects.jsonFor project and system-one, the pilot fetches current repository evidence from GitHub. For use-case, it imports the source URL and the evidence notes currently used by the live page. After classification, compare suggested scenario tags with the current human labels:
npm run cli -- evaluate \
--input data/pilot-decisions.json \
--output data/pilot-evaluation.jsonThe evaluation reports primary-category agreement, precision, recall, exact matches, missing tags, and extra tags. Agreement is a workflow signal rather than proof that either label set is correct; a maintainer reviews every disagreement.
Requires Node.js 20 or newer.
npm install
cp .env.example .env
chmod 600 .envThe default local configuration uses the same OpenRouter route as jevai.dev: OPENROUTER_API_KEY with model typesafe/jev-1.13. Set JEV_PROVIDER=typesafe and TYPESAFE_API_KEY only when using TypeSafe's direct API. GITHUB_TOKEN is optional but raises GitHub API rate limits. The tool never writes any key to its output.
The CLI loads a local .env automatically. That file is excluded by .gitignore.
The classify command sends each candidate's source metadata, summary, supplied content, and GitHub evidence to the configured OpenRouter or TypeSafe API. Human baseline labels under metadata are not sent. Only classify public material or content you are authorized to share with that provider, and review the provider's privacy and retention settings before processing sensitive data.
npm run cli -- collect \
--repo typesafe-ai/typesafe-sdk-js \
--output data/candidates.jsonOr discover candidates from a GitHub query:
npm run cli -- discover \
--query "jev in:name,description,readme" \
--limit 20 \
--output data/candidates.jsonDiscovery is candidate generation, not inclusion. Search results still require Jev classification and human review.
npm run cli -- rank-stars \
--input data/candidates.json \
--output data/ranked.jsonnpm run cli -- classify \
--profile project \
--input data/candidates.json \
--output data/decisions.jsonFor community models or use cases, choose --profile system-one or --profile use-case. Use-case candidates can begin with examples/use-cases.json.
npm run cli -- review \
--input data/decisions.json \
--output data/review.mdThe review queue asks a maintainer to verify source attribution, relationship, licensing, identity, claims, and tags. Accepted records can later be transferred to Jev AI Radar through a separate, deliberate editorial process.
Each classification preserves the complete candidate and adds:
profileandrubricVersionstarRank, calculated independently from model output- raw normalized Jev
answers suggestedTagsprimaryTag, taken from the single-choice category questionsecondaryTagCandidates, kept with probabilities for human reviewreviewFlagsrecommendationreviewStatus: "pending_human_review"- model name, token usage, and classification time
Read the architecture and rubric definitions for the publication boundary and interpretation rules.
Candidate and result fields are documented in the data format.
npm run checkThe example records use placeholder URLs and are not real directory recommendations.