review-triage
Skill1 starsChanged 5 months agoApache-2.0View on GitHub
Stage 6 confidence-gated human review. Surfaces low-confidence, needs_verification, and review-flagged values first, lets the cataloguer batch-approve high-confidence fields, and records an accepted/edited/rejected verdict for every required value as review feedback keyed by value_id.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- ferologics/pi-skillstheir own version, first seen Nov 8, 2026
- paureis/pau-skillstheir own version, first seen Nov 8, 2026
- Srltas/claude-skillstheir own version, first seen Oct 31, 2026
- korcekj/skillstheir own version, first seen Oct 28, 2026
- vardan6/tracklinetheir own version, first seen Oct 16, 2026
- Background-Craft/hydrant-skillstheir own version, first seen Sep 26, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- ferologics/pi-skills★ 14same name
- lord-eagle/skills★ 2same name
- paureis/pau-skills★ 2same name
- vardan6/trackline★ 2same name
- Background-Craft/hydrant-skills★ 1same name
- korcekj/skills★ 0same name
- Srltas/claude-skills★ 0same name
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.
In this repository10 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- build-application-profileSkill
- classify-and-routeSkill
- compute-pass-rateSkill
- describe-collectionSkill
- export-for-repositorySkill
- preprocess-derivativesSkill
- refine-promptsSkill
- resolve-authoritiesSkill
- tune-house-styleSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 0 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
0
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 51
Every verdict references a value_id.
- Very specific: line 104
If the cataloguer finds a required array field (subjects, genre_form, depicted_entities) is missing a value the record should carry, …
- Very specific: line 146
Read every record in ./output/telegrams/ against ../../schemas/metadata-record.schema.json.
“Common” is measured: kept by at least 6 in 10 of the 7 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
review-triage
Stage 6 of the pipeline. You present generated records to a professional cataloguer for review, triage the cataloguer's attention by confidence so the flagged minority gets scrutiny and the bulk gets a fast confirmation, and capture a verdict on every required value. The cataloguer adjudicates; you organize the work and write down the result. You never finalize a record on your own.
This skill triages effort within one run. Improving the prompts across rounds so the pass
rate clears the threshold is a separate concern handled by compute-pass-rate and refine-prompts.
See ../../docs/the-improvement-loop.md for why those are
different tools.
Where this sits in the pipeline
[5] Authority resolution → [6] Human review (this skill) → [7] Export
resolve-authorities review-triage export-for-repositoryYou run after resolve-authorities has done its deterministic lookups, so the needs_verification
values reaching you are the ones the authoritative lookup could not confirm and left for human
judgment, rather than values that were never looked up. You run before compute-pass-rate, which
reads the review feedback you produce and computes the per-record gate, the per-field rates, and the
calibration check. You do not compute those yourself.
Inputs
- Generated records conforming to
../../schemas/metadata-record.schema.json, already
through Stage 5. Each value is a
fieldValuecarryingvalue_id,value,confidence,basis,authority_status, and the rest. Records may carryreview_flags, a record-level array of free-text escalation notes (sensitive content, reparative description, unidentified people). - The application profile for the run, which says which fields are required and so which count toward the per-record gate.
Outputs
- Review feedback conforming to
../../schemas/review-feedback.schema.json: one
reviewed_recordsentry per record, with afieldsentry per reviewed value carryingfield,value_id,status(accepted,edited,rejected),stated_confidence,original,final, andnote, plus arecord_passedboolean. This is the input tocompute-pass-rate. - The same verdicts written back onto each record's per-value
reviewblock and the record-levelrecord_reviewblock in the metadata record, so the record carries its own review state.
Every verdict references a value_id. Never an array position. A verdict on the second subject
attaches to subjects.02, the stable id assigned at generation, so it stays attributable when a
later prompt change reorders the array. Positional keys are never written anywhere.
The triage procedure
1. Surface what needs attention first
Build a focused view that pulls the flagged minority to the top and hides the rest, in this order:
- Records carrying
review_flags. These are the escalations the generation stage routed to a human on purpose: sensitive or culturally restricted material, reparative-description cases, and unidentified people the model declined to name. Surface the whole record with its flags. Note thatreview_flagsis a record-level array of strings, so it is not attached to any single value. - Values with
authority_status: needs_verification. The deterministic authority stage could not confirm these against id.loc.gov, FAST, Getty, VIAF, or the profile's vocabularies, so a human decides the authorized term and URI. - Values with
confidence: low, thenconfidence: medium.
Group by field so the cataloguer can see where the work concentrates: whether the dates, the subject headings, or the depicted entities carry most of the uncertainty.
2. Batch-approve the high-confidence remainder
The values the cataloguer did not need to scrutinize still get a recorded verdict. Batch-approve
writes a recorded verdict for every value it clears rather than skipping them. For each
high-confidence required value the cataloguer confirms in bulk, emit a review-feedback entry with
status: accepted and the value's
stated_confidence (high). Two downstream computations depend on this. The per-record gate cannot
be decided without a status for every required field, and the calibration check needs the stated
confidence of accepted values to test whether high-confidence values are in fact accepted at a high
rate. A batch-approve that recorded nothing would leave the gate uncomputable and hide miscalibration.
Batch-approve is a skim-and-confirm efficiency for the cataloguer. The human still owns every verdict. Stated confidence is a triage signal that the loop tracks rather than trusts, so a high-confidence value is presented for fast confirmation and is never auto-accepted on the model's say-so.
3. Adjudicate each surfaced value
For every required value, record one verdict:
- accepted: the value stands as generated. Set
status: accepted. - edited: the cataloguer changed the value. Set
status: edited, put the generated value inoriginaland the corrected value infinal. The correction is what later lets a cluster of edits point back to the prompt that produced them. - rejected: the value is wrong and removed. Set
status: rejectedwith anote.
For a needs_verification value the cataloguer resolves, accepting the proposed authorized label and
its confirmed URI is an accepted verdict; choosing a different authorized term is an edit.
4. Handle missing values in required arrays
If the cataloguer finds a required array field (subjects, genre_form, depicted_entities) is missing a
value the record should carry, capture the addition as a new fields entry with a freshly assigned
value_id (for example subjects.07), the added value in final, and a note explaining it was a
cataloguer addition. The review-feedback schema has no missing status, so do not invent one. A
cataloguer-added value means the field failed the gate, which is recorded by the gate logic in the
next step.
The per-record gate
Compute record_passed for each record from the verdicts, by the definition in
../../docs/the-improvement-loop.md:
- A required scalar field passes when its value is
acceptedwith no edit. - A required array field passes only when every generated value in it is
acceptedand the cataloguer added no missing value. One edited, rejected, or missing value fails the field. - A record passes (
record_passed: true) only when every required field passes. Any failed required field fails the record.
Non-required fields are reviewed and their verdicts recorded, and they do not affect record_passed.
Set the matching record_review.status and record_review.passed on the record, and human_reviewed
to true in provenance. On approval, the disclosure note is completed with the reviewer and date.
The threshold the institution measures these passes against (for example Oregon State's roughly 90%) is the institution's own review-policy gate and the improvement loop's optimization target. It is not a Notch8 contractual accuracy guarantee.
Usage example
This is sample user prompt #3, confidence-gated review triage. It exercises the surfacing half of the procedure: filter the structured output so the cataloguer sees the uncertain values grouped by field and the high-confidence values are hidden from view.
Load all records in ./output/telegrams/. Show me only the fields marked confidence
"low" or with authority_status "needs_verification", grouped by field type, so I can
see whether the date fields or the subject headings need the most attention. Don't
show me anything marked high confidence.Expected behavior:
- Read every record in
./output/telegrams/against ../../schemas/metadata-record.schema.json. - Build the filtered view: include each value with
confidence: loworauthority_status: needs_verification; excludeconfidence: high. Surface any record carryingreview_flagsat the top regardless of its field confidences, since those are deliberate human escalations. - Group the surfaced values by field (date, subjects, depicted_entities, and so on) and report the
count per field so the cataloguer can see where attention is owed, identified by
value_id. - As the cataloguer works the surfaced list, record an
accepted,edited, orrejectedverdict per value into review feedback. When the cataloguer is ready to clear the high-confidence remainder, run the batch-approve from step 2, which recordsstatus: acceptedfor each of those required values so every required field has a verdict and the per-record gate can be computed.
The prompt shows only the filtering. Triage is the filter plus the verdicts: hiding high-confidence fields focuses the human, and batch-approving them with recorded verdicts is what makes the run computable downstream.
Scope boundary
This skill captures verdicts and writes review feedback. It does not compute pass rates or
calibration (compute-pass-rate), propose prompt changes (refine-prompts), resolve authorities
(resolve-authorities, Stage 5, which has already run), or export records (export-for-repository,
Stage 7). It surfaces sensitive and reparative cases for the cataloguer and never adjudicates them
itself. See ../../docs/responsible-description.md.
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.

