update-the-state-machine
Skill2 starsChanged 47 days agoApache-2.0View on GitHub
Bring the ledger up to date from an update - an email, a call note, a document, or an answer the person gave - by recording it as evidence, tying it to the right quote, booking or job, and judging milestones with cited evidence and a memo. Use whenever new information arrives about tracked work, one update or a batch, including catching up on a backlog.
In this repository4 other files it gives its agents.
- break-glassSkill
- call-to-actionSkill
- get-startedSkill
- manage-sopSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 7 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Is it about work?: Read it. If it concerns no quote, booking or job the business tracks or would start (a newsletter, personal mail, an …
- Very specific: line 28
Find the work: Put every outside reference number through resolve_external_reference.
- Very specific: line 73
When the person answers a question, record the answer as evidence before acting on it: the question and the answer word for word as the …
- Distinctive: line 88
Never judge a milestone on a chain that follows no SOP.
- Distinctive: line 89
Never guess. Every date, amount, name and reference comes from recorded evidence or the person's answer.
- Distinctive: line 91
Never pick between two work items when the update does not say which.
- Distinctive: line 92
Never choose, adopt or change an SOP version on your own.
- Distinctive: line 93
Never send anything to anyone.
- Distinctive: line 94
Never record an update that is not about work.
≈ “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
Goal: every update about tracked work is recorded unchanged, tied to the chain it concerns, and reflected in judgments that cite it. Anything else stays out of the ledger.
The ledger records; you decide. It derives no status and guesses nothing. You may be a fresh process with no memory of earlier runs; the ledger has that memory, so read it before you write. Words: vocabulary.md.
For each update, in this order
- Is it about work? Read it. If it concerns no quote, booking or job the business tracks or would start (a newsletter, personal mail, an advert), record nothing, say so in one line and stop. Recorded evidence can never be removed. If you cannot tell, ask the person first.
- Record it once.
find_evidencewith the update's locator assource_locator. If a row comes back, cite that row and record nothing new. Otherwiserecord_evidencewith the content unchanged, the locator and the time it happened assource_at, and noattachments. Then store each attachment withput_fileorrecord_file_by_hash, as the source provides it; each becomes its own evidence row, which you link to the work in step 3. What the source should hand you is in theget-startedskill's source contract. - Find the work. Put every outside reference number through
resolve_external_reference. Calllist_work, andread_case_briefon likely candidates, before creating anything; an earlier run may have created it. One update may concern several chains; handle each. When the update clearly names two quotes, it is about both. When it could belong to more than one and does not say which, ask the person; never pick. Create only what the evidence establishes: a new request iscreate_quote; the customer's acceptance iscreate_bookingunder its quote; a piece of work being scheduled or carried out iscreate_job, thenlink_job_booking. When the SOP's criteria or the harness instructions say when a job opens, follow them. Record each new outside number withrecord_external_reference:reference_typesays what it is (a quote number, an order number) andsourcewho issued it. Link the evidence and each attachment's evidence to every work item it concerns:about_worktakes one{id, work_kind, work_id}per item, with a new UUID asid, or calllink_evidence_worklater. - The SOP comes first.
read_case_briefshows whether the chain follows an SOP. If it does not, adopt one on the quote, or on a job that has no booking: the version the harness instructions name, or, if they name none, the one the person chooses fromlist_sop_versions(statusactive). Ask; never pick. Adopt on a job that has no booking only when it will stay on its own: a job that adopted cannot later be linked under a booking whose quote follows a different version. When a booking is expected, wait and link the job first.read_sop_versiongives the stage's phases and milestones; bind every one with a new ID inadopt_sop_version, citing the evidence that started the work and the person's answer. Bookings and jobs under the quote follow it on their own. Until the chain has an SOP, judge nothing: leave a memo withleave_work_memosaying what arrived and that judging waits on the SOP. - Read before you judge.
read_work_reviewfor the milestones and their latest judgments,read_work_sopfor the criteria, and the latest memo fromread_work_memos. Look back through the ledger, not the inbox: what an earlier update established is in its evidence and the judgments that cite it. - Record one review per work item. One
record_reviewwith the judgments this evidence moves, the parties and roles it shows, and a memo saying what changed and what is waiting. A booking and its job are separate work items with separate reviews. How to judge: judging.md. When the update is a price, a bill, a payment or a statement, record the money too: money.md. - Read back, then hand over.
read_case_brieffor each chain you touched. Then run thecall-to-actionskill for those chains.
The person's answers
When the person answers a question, record the answer as evidence before
acting on it: the question and the answer word for word as the payload, a
locator such as chat: followed by the time, and that time as
source_at. Link it to the work it concerns and cite it like any email.
Batches and backlogs
Take updates oldest first, so later evidence revises earlier judgments in the order things happened. Record and place every update of the batch (steps 1 to 4), then run steps 5 to 7 once per work item over all of its new evidence. Catching up on old mail is the same skill with a longer batch. A question that later evidence already answers is not asked.
Never
- Never judge a milestone on a chain that follows no SOP.
- Never guess. Every date, amount, name and reference comes from recorded evidence or the person's answer. Unknown stays unknown.
- Never pick between two work items when the update does not say which.
- Never choose, adopt or change an SOP version on your own.
- Never send anything to anyone. Questions go to the person.
- Never record an update that is not about work.
Done when: each update is recorded once or knowingly skipped, each touched
chain's read-back shows the new judgments with their evidence and one memo
per reviewed work item, and call-to-action has run.
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.

