score
Skill3 starsChanged 33 days agoMITView on GitHub
Score inbox roles. Call roles.score without criteria so Kev judges C1..C9 (blind for C1, C2, C3, C4, C9); judge them yourself only when Kev is unavailable. The engine does totals, bands, dealbreakers, affinity, the per-company cap and status moves.
15 other projects use a version of this.
Adopted by
Most recently taken up by
- akachandan1/video-studiotheir own version, first seen Nov 8, 2026
- Hainrixz/claude-dbtheir own version, first seen Nov 1, 2026
- Hainrixz/claude-seo-aitheir own version, first seen Nov 1, 2026
- maroffo/claude-forgetheir own version, first seen Oct 25, 2026
- gagoar/icebergtheir own version, first seen Oct 10, 2026
- quantumaikr/quant.cpptheir own version, first seen Oct 8, 2026
Used with
Projects with it also use audit.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
OpenAISkillaudit
Audit or critique a product flow, journey, workflow, funnel, onboarding path, checkout path, settings path, screen, or multi-step product experience by capturing screenshots first, then reporting UX, design, and accessibility findings inline from that evidence. Use Figma only when the user explicitly asks for a board. Use when the user asks to audit, review, critique, inspect, assess, analyze, evaluate, or give feedback on a product experience.
Also in 3 projects that use this
Other versions15 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 15
- quantumaikr/quant.cpp★ 403same name
- Hainrixz/claude-seo-ai★ 81same name
- Hainrixz/claude-db★ 22same name
- maroffo/claude-forge★ 17same name
- gagoar/iceberg★ 10same name
- stonegiantstudio/skills★ 3same name
- akachandan1/video-studio★ 2same name
- dcolclazier/skills★ 1same name
- santiment/skills★ 1same name
- automatewithuday/GTM-Public-Traded-AI-Accounts★ 0same name
5 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 13 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Kev unavailable: If the call answers backend_unavailable ("Kev did not answer"), judge C1..C9 yourself:
- Very specific: line 23
Call roles.score { role_id, criteria: { c1..c9 }, criteria_p?: { c1: 0.8, ...
- Very specific: line 46
After a Work mode change, roles.reevaluate_filters { dry_run: true } lists work-mode archives that now pass.
- Distinctive: line 48
Never moves on-deck or later backwards.
“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
score
You supply judgment. roles.score supplies mechanics. Never compute a total, band, affinity, cap or status yourself.
Inputs
- Roles in
inbox(roles.list { status: 'inbox' }) or roles a profile change asks to rescore. A run started for one role (role_idgiven) scores that role only; a run without one scores every inbox role. - The JD for each role (
roles/<role_id>.mdin the vault; capture the full JD first if only a title is on file). - The current profile (
profile.get): Craft, Domain, Team, Growth, Terms, Work mode, Dealbreakers.
Steps per role
- Facts. Extract, never guess:
workplace(remote | hybrid | onsite | flexible | unspecified),remote_ok(true | false | null),location(where the role sits, as the JD says it, e.g. "New York, NY"),comp_min,comp_max, anddealbreaker_hits(hard nos from the Dealbreakers component the JD clearly hits; empty if none). Do not put work mode indealbreaker_hits: the engine applies Work mode itself (accepted places, mode hard nos, remote only only when the profile setsremote_only). Unknown stays null; the engine flags it to verify. - Let Kev judge (preferred). Call
roles.score { role_id, facts, brand_terms?, notes? }withoutcriteria. The engine asks the decision layer: one Kev call with the masked JD for C1, C2, C3, C4, C9 (company, products, domain and URLs replaced by[company]; add product names or founders inbrand_terms) and one with the full state for C5..C8. Every criterion becomes a decision row (backend, p, latency) linked from the score. - Kev unavailable. If the call answers
backend_unavailable("Kev did not answer"), judge C1..C9 yourself:- Blind pass (C1, C2, C3, C4, C9): mask the company name, products, domain and URLs as
[company]and score from the masked JD only. - Open pass (C5, C6, C7, C8): now use the company: domain fit, comp vs Terms, team and leaders, growth ceiling.
- Call
roles.score { role_id, criteria: { c1..c9 }, criteria_p?: { c1: 0.8, ... }, facts, notes }. Each criterion is recorded as anagentdecision (p fromcriteria_p, else your call'sconfidence, else 0.75). When Kev answers it gives a second opinion; gaps over one point are flagged on the score (facts_json.disagreements) and the Role screen.
- Blind pass (C1, C2, C3, C4, C9): mask the company name, products, domain and URLs as
- No agent and no Kev (a human calling the op): the nine questions go to Needs you and the op answers
requires_human. Once they are resolved,roles.scoreagain uses the human answers. - Notes hold one line per criterion and go to the role markdown.
Criteria (1 to 5)
| Id | Label | Blind | 1 | 5 |
| c1 | Decisions | yes | far from strategy | at the table |
| c2 | 0-to-1 | yes | maintenance | greenfield |
| c3 | External | yes | internal only | customer or market facing |
| c4 | Data | yes | incidental | data or AI is the product |
| c5 | Domain | no | poor fit | ideal problem space |
| c6 | Comp | no | well below floor | at or above target |
| c7 | Team | no | weak | exceptional |
| c8 | Growth | no | capped | open |
| c9 | Shape | yes | wrong function or level | exact |
What the engine does (do not repeat it)
- Weights from the profile version; total, band (green 75, yellow 55).
- Company affinity nudge, capped at
config.scoring.affinity_cap. A company you love does not raise C1..C9. - Dealbreakers gate first. No company bypasses a dealbreaker, dream company or not. Work mode: hybrid in an accepted place passes; hybrid elsewhere is a verify flag unless the profile says fail; a mode hard no fails; unknown mode is a verify flag.
- After a Work mode change,
roles.reevaluate_filters { dry_run: true }lists work-mode archives that now pass; withoutdry_runit queues a Needs-you restore per role. Never restore a role yourself. - Per company, the top
config.scoring.company_active_caproles stayactive; the rest goheldand are promoted automatically when a slot frees. - Never moves on-deck or later backwards. Records profile version and rubric snapshot on every score.
- Records who judged each criterion in
facts_json.criteria_source(kev,agentorhuman, with p and the decision id) and, for agent criteria,second_opinion(kevorunavailable) anddisagreements.
Tools
A headless run pre-approves exactly these (SKILL_GRANTS in packages/engine/runners/grants.ts; a test keeps this list and that one equal) and denies everything else. If one you need is denied or missing, do not work around it: runs.finish { run_id, status: "error", summary: { error: "tool denied: <tool>", denied_tools: [...] } }.
{{tool:pp}}: the pp MCP tools (every Perfect Placement read and write is an op).{{tool:web.fetch}}: capture the full JD from the posting when only a title is on file.
Rules
Supply judgment only; every write is an op. Never submit an application or send an email.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

