writing-skills
OBobra/superpowers298k2,631 new stars in the last 7 days
Curate and expand the awesome-jev repository. Use when adding Jev projects or cases, collecting discussion evidence from X/Reddit/HN/blogs, promoting discussion items into main categories, refreshing README counts, or running periodic evidence sweeps.
Use this skill to maintain awesome-jev as a strict, high-signal list of projects and practices built on Jev.
Keep the repository focused on two questions:
This skill is for curation, not general AI news collection. Jev is a typed-decision model: Choice, Score, Boolean, each with confidence. Entries that do not involve a Jev decision do not belong here.
Read these files before making changes:
README.mdCONTRIBUTING.mdtags.jsoncategories/README.md is the homepage aggregate, not the primary editing surface.
Update category files first, then refresh README.md from the current category files.
Always use scripts/build-readme.py instead of hand-editing the aggregate.
tags.json holds the entry tag vocabulary; the table in CONTRIBUTING.md is
generated from it, so add a tag value there rather than to either document.
An agent value also needs an evidence rule in SUPPORT in
scripts/audit-tags.py: without one, entries carrying it are never checked
against their own text. The audit names any value it has no rule for, so add
both in the same change.
Only include items that satisfy at least one of these:
Jev / jevAnd all of these:
Reject:
Use main category pages for stronger evidence such as:
Use categories/related-practices-discussions.md for:
when they show credible real practice signals but do not yet have a strong standalone repo or case page.
The category list, their order on the homepage, and which files are still being
seeded all live in CATEGORIES and OPEN_TRACKING in scripts/build-readme.py —
read them there rather than from a copy that goes stale.
Preferred evidence channels:
Prefer medium-complexity searches such as:
jev typesafetypesafe-ai/jevjev Choice Score BooleanJev System One Modeljev classification routingjev verification guardrailJev Diogo AlmeidaAvoid very long advanced-search expressions when the adapter is unstable.
The physical side of the ecosystem is invisible to every name search above: jev ros2,
jev embedded, jev plc and jev industrial all return zero repositories, and the
first entries in robotics-physical.md came from a web search instead. Search the
sources that cover that industry, not the model name:
gh search code 'api.typesafe.ai' inside robotics and embedded repositories, or read
their tree directly — a factory integration rarely says "Jev" in its description.gh search repos "ros2 decision model",
gh search repos "plc ai classifier", gh search repos "edge inference classifier".api.typesafe.ai and /v1/systemone appear in
code long before anyone writes the word Jev in a description. Two collisions make name
search unreliable here: System One is also an unrelated company (systemone.com,
flooring and defect software), and MES, SCADA and PLC are generic acronyms that return
other people's products in prose search.Search in both languages when useful. Useful Chinese patterns:
jev 大模型 决策TypeSafe Jev 分类Jev 类型化决策Keep Chinese queries narrow to avoid noisy generic matches.
last30days: the multi-channel sweeplast30days (mvanhorn, MIT) is installed at ~/.agents/skills/last30days, a symlink into the vendored clone at ~/.agent-reach/vendor/last30days-skill/skills/last30days. It resolves for every project, so this repo and its sibling list share one copy; update it with git -C ~/.agent-reach/vendor/last30days-skill pull.
SKILL=~/.agent-reach/vendor/last30days-skill/skills/last30days
python3 "$SKILL/scripts/last30days.py" doctor # which sources are alive, and how to fix the dead ones
python3 "$SKILL/scripts/last30days.py" "TypeSafe Jev" --days 7 --emit json --output /tmp/sweep.json
Then read /tmp/sweep.json and pull url / title per source. Live out of the box on this machine: reddit, youtube (via yt-dlp), hackernews, polymarket, github (via gh). X is unconfigured until setup --allow-browser-cookies runs, so keep using twitter search for X in the meantime.
What it reaches that the manual sweep cannot. Two classes show up here and nowhere else:
gh search repos and gh search code, because the code is not on the default branch and the repository never matches. open-orcha/orcha#253, wso2/api-platform#3517, ahstn/oceans-llm#387 and fakoli/anvil#238 all arrived this way — five third-party projects integrating Jev that the name-based searches had missed across a dozen prior passes.Treat it as a complement, not a replacement: it is strong on recency and breadth, while gh search remains better for exhaustive repository coverage. Run both, and reconcile.
Use this exact ladder:
categories/related-practices-discussions.md if it is credible and directly Jev-related.scripts/build-readme.py if category totals changed.Format:
- [Name](URL) - Industry: one-sentence description of the Jev use case.
Rules:
Choice / Score / Boolean) + the gate or escalationclassifies, routes, gates, scores, verifiesFormat:
- [Name or thread title](URL) - Source/platform: one-sentence description of the Jev-related practice or discussion.
Rules:
When invoked for a recurring sweep:
README.md so the homepage aggregate matches the current category files and counts./skill:tweet-posting-cdp (same layout for both awesome lists), then summarize what was added, promoted, and rejected.
DRY_RUN=1 first; the script prints 内容校验通过:N 字符 / M 段落 and must match before actually posting.Count entries:
python3 scripts/build-readme.py && sed -n '/## Current coverage/,/Each entry lives/p' README.md
Example searches:
bb-browser site twitter/search 'jev typesafe' --json
bb-browser site google/search 'site:github.com "typesafe-ai/jev" OR "jev" typesafe | sed -n "1,120p"'
bb-browser site google/search 'site:news.ycombinator.com jev typesafe | sed -n "1,120p"'
bb-browser site google/search 'site:reddit.com jev typesafe model | sed -n "1,120p"'
opencli gh api repos/typesafe-ai/jev/readme
Promote slowly. Add discussions faster.
If evidence is good but not strong enough for a main case, keep it in discussions. Precision beats coverage. This model shipped in September 2026, so the corpus is small — resist padding it.
Before adding a repository, check depth (see CONTRIBUTING.md, "AI-assisted work, and bulk submissions"):
When a contributor opens a PR:
AGENTS.md / CLAUDE.md / STATE.md), a common README template, or single-commit histories — those mark one project family, which counts as one submission, so merge at most one and queue the rest. Disclose-or-pause also applies: if a submission was generated and not disclosed, hold the author's whole pending batch until they say so.python3 scripts/build-readme.py) rather than hand-resolving. For conflicts in a category file, keep main's version and append the PR's new line.README.md (no category file) will be silently erased by the next generator run — the merge is clean, CI is green, the count is unchanged, and the entry is gone. Do not close the PR and apply it to main by hand: that shows the contributor a closed-unmerged PR and puts their contribution on your commits. Put the line into the right category on the PR branch and merge the PR:
RELOCATE_INTO=infra-sdks-integrations.md scripts/maintainer/merge-prs.sh <PR>
The script relocates the line, normalises the separator (ENTRY_RE accepts only -, but hand-written README lines use : or an em dash), regenerates the README, commits on the branch and pushes it back. It refuses to merge without RELOCATE_INTO, because choosing a category is an editorial call, not a guess. When the contributor has not enabled maintainerCanModify the push fails, and the script falls back to a local merge whose message is exactly Merge pull request #N from fork/branch — GitHub associates that commit with the PR, so the PR still reads as merged and the contributor's commit is really in main. Verify afterwards with python3 scripts/build-readme.py && git diff --quiet: no drift means the entry came from the category file and not from README.
Do this even when the PR's own wording leads with a competitor's model: Bud-Decision-Studio led with Laya and Kev, but the repo calls itself "the LM Studio of Jev-like System One models" and runs Jev-Omni, so it was on topic and worth the extra step.scripts/maintainer/merge-prs.sh to process PRs in bulk. It handles the four traps that make manual merging tedious: fork repository names vary (awesome-jev, awesome-jev-yibie, yibie_awesome-jev, awesome-jev-1), so it resolves them via headRepository.nameWithOwner; it fast-forwards local main before rebasing, because rebasing onto a stale base leaves the PR conflicting after the push; it loops over conflict rounds, because a PR with two commits (add the entry, then reword it) conflicts twice; and it appends the PR's entry with grep -qF -- so an entry starting with - [ is not parsed as a grep option.merge-prs.sh rebuilds the README after every merge and pushes a follow-up commit when it drifted.maintainerCanModify: true) rather than asking them to resolve it.Before finishing, verify:
This skill should be used for prompts like:
OBobra/superpowers298k2,631 new stars in the last 7 days
OBobra/superpowers298k2,631 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days
MAmattpocock/skills288k10,178 new stars in the last 7 days