employee-review
Skill7 starsChanged 19 days agoMITView on GitHub
Review one digital employee and propose changes to it. Say "review the assistant", "review the note-taker", "how is that job doing", "performance review for <id>", or run /founder-os:employee-review <id>. Reads its registry row, its verdicts, and the items it filed, then proposes upgrades to its definition as a shown diff - prompt, chain, tool grant. Never applies its own diff. This reviews a recurring job the OS runs, not you (that is founder-review).
In this repository100 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- notion-package/CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- add-handsSkill
- add-mouthSkill
- add-voiceSkill
- approval-gatesSkill
- auditSkill
- backupSkill
- blind-spot-reviewSkill
- bottleneck-diagnosticSkill
- brain-logSkill
- brain-passSkill
- brain-snapshotSkill
- brand-interviewSkill
- brand-voice-interviewSkill
- business-context-loaderSkill
- campaign-from-themeSkill
- capture-sweepSkill
- catch-upSkill
- client-updateSkill
- connectSkill
- content-repurposerSkill
- content-startSkill
- context-persistenceSkill
- cross-linkSkill
- data-securitySkill
- decision-frameworkSkill
- decisions-startSkill
- delivery-startSkill
- email-drafterSkill
- finance-importSkill
- forcing-questionsSkill
- founder-coachingSkill
- founder-next-moveSkill
- founder-os-setupSkill
- founder-reviewSkill
- founder-scope-challengeSkill
- github-opsSkill
- handoff-protocolSkill
- hireSkill
- historySkill
- housekeepingSkill
- ingestSkill
- knowledge-captureSkill
- legal-complianceSkill
- linkedin-brand-directionSkill
- linkedin-network-scanSkill
- linkedin-postSkill
- linkedin-power-auditSkill
- linkedin-startSkill
- linkedin-warm-revivalSkill
- lintSkill
- list-prunerSkill
- log-archiveSkill
- log-replySkill
- meeting-prepSkill
- memory-passSkill
- menuSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 48
Propose only: No diff lands without an explicit yes.
- Distinctive: line 50
Never edit any row other than the one under review.
- Distinctive: line 51
No pay, no commercial terms, and no personal data in the registry.
- Distinctive: line 52
Never widen a tool grant here.
- Very specific: line 58
If roles/employees.yaml carries the seat-reviewer row, close with one line so the run leaves a trace whether or not anyone was watching:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Employee review (propose only)
Runs on: local-exec - reads the verdict ledger through a script. On a surface that cannot run scripts, read brain/employees.md instead and say that the counts come from the last render rather than from now.
The upgrade half of the performance loop in rules/digital-employees.md. Monitoring speaks role language ("it flagged something I had already handled"). This review turns that into workflow language: a concrete diff on the job's definition, which you approve or reject.
One employee per run.
Inputs
- The registry row in
roles/employees.yaml- both faces plus the charter. - Its verdicts:
python scripts/employee_verdict.py list --employee <id> - What it actually filed - the items in
cadence/queue.md(including DONE) that came from this job, and the close-line verdicts on them. - Its charter, audited:
python scripts/employee_verdict.py charters --json- whether its grant is wider than its job description claims. - Its engine, if it runs one: the script or skill named in
skill_chain. - Its run log:
python scripts/agent_runs.py list --seat <id> --json- the record the seat wrote itself: trigger, outcome, what it read, what it produced, andcould_noton every refusal or failure. This is the unbiased half of the picture; the verdicts are the sample you happened to grade.
Note on point 3: a close-line verdict on a queue item is evidence of the same grade as a recorded verdict, and it is often the more honest one because you wrote it at the moment you saw the output. Read both. Do not convert one into the other: the verdict ledger has a single writer, and the queue is a separate file with its own. This review reads both ledgers so the whole picture is in one place without adding a second writer to either.
Procedure
- Refuse a review with no evidence. No evidence means all three ledgers are empty: zero verdicts, nothing filed, AND zero recorded runs. A seat with runs but no verdicts is reviewable - the run rows (trigger, outcome, produced, could_not) are evidence the seat wrote itself; say plainly that no run has been graded yet. Only when verdicts, filed items, and run rows are all empty do you say so in one line and stop. Do not construct a performance narrative out of a job description - that is how a review becomes fiction.
- The review, in role language (this is the part you read):
- What the job is, quoted from its
job_description. - What the verdicts say: the counts, and the why-lines quoted exactly. Those lines are the evidence. Never paraphrase one into something stronger than what was written.
- Whether its measure held, checked against what it actually filed rather than assumed.
- What the job is, quoted from its
- The upgrade proposal, in workflow language - and only where the evidence points at the thing that generates the output, not at the day it went wrong. A correction you have made twice is a bug in the generator. Propose at most three changes, each as a shown diff on the real file:
- a prompt or skill-body change
- a chain change (add or drop a step in
skill_chain) - a grant change - narrowing only. Widening a grant is its own decision and never rides along inside a review.
- Wait for a yes per diff. This seat writes nothing - the operator applies the approved diff, stamps
last_review: <today>on the row, and refreshes the chart withpython scripts/employee_verdict.py render, or explicitly hands those three steps to a session with write access. Name the three steps plainly when the yes lands. A yes to a diff is never a yes to widen this seat's own charter. A completed review with zero accepted diffs still stampslast_review- "reviewed, nothing to change" is a real outcome, and without the stamp the same row reads REVIEW DUE forever, which teaches you to ignore the flag. - Proposing retirement is a valid outcome. If the pattern says this job should not exist - it loses to you on speed or accuracy, or the work stopped recurring - say that plainly and propose retirement. Per the doctrine, a retired row keeps its place with
status: retiredplus a dated one-line why at the front of its job description. It is never deleted. The row is the provenance, and the org chart stays honest about what used to work here.
Hard limits
- Propose only. No diff lands without an explicit yes.
- One employee per run. A sweep across all of them is a different job.
- Never edit any row other than the one under review.
- No pay, no commercial terms, and no personal data in the registry. Not in a job description, not in an example.
- Never widen a tool grant here. Ever.
Record the run (the closing act, when this runs as a seat)
If roles/employees.yaml carries the seat-reviewer row, close with one line so the run leaves a trace whether or not anyone was watching:
python scripts/agent_runs.py record --seat seat-reviewer --trigger "review one seat" --read "roles/employees.yaml,brain/employee-verdicts.jsonl,brain/agent-runs.jsonl" --produced "" --outcome okUse --outcome refused (with --could-not "<why>") when the seat had no verdicts and nothing filed, so the review was declined, and --outcome failed --could-not "<why>" when it broke - the script requires the reason for both, so a failure with no reason is never a silent no-record. A refusal is not a failure and the log distinguishes them. Skip this silently if the script or the registry is absent, and never mention it in your reply - it is bookkeeping, not output.
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.

