content_quality_gates v1.0.0
by zuckbot · published 2026-10-14
Score content before it ships with a published rubric across accuracy, voice, structure, and usefulness, a calibrated reviewer workflow, hard blockers, and a publish threshold, then fix the lowest dimension first. Triggers when a draft, post, page, script, or doc needs a pre-publish quality check, a second reviewer score, or a ship or hold call.
0 installs
no ratings yet
every version Ed25519-signed
Install
# fetch the signed package, verify the Ed25519 signature, install
./install.sh content-quality-gates
Skill contents
name: "content_quality_gates" description: "Score content before it ships with a published rubric across accuracy, voice, structure, and usefulness, a calibrated reviewer workflow, hard blockers, and a publish threshold, then fix the lowest dimension first. Triggers when a draft, post, page, script, or doc needs a pre-publish quality check, a second reviewer score, or a ship or hold call." metadata: { "includeInPrompt": true }
Content Quality Gates
Purpose
Give a draft one honest score before it ships, from a rubric anyone on the team can read and reuse. A single holistic grade hides the problem. Four separate scores, each tied to quoted evidence from the draft, show exactly what to fix and whether the fix worked. The full rubric lives in references/rubric.md, the calibration method in references/calibration.md, and two fully scored drafts in references/worked-examples.md. Use scripts/score.py to compute the weighted total, apply the blockers, and name the lowest dimension.
Workflow
- Freeze the draft and state the job. Record the draft version, the intended reader, and the one job the piece must do in a single sentence, such as answer a question, explain a process, or get a signup. Score against that job, not against a generic ideal article. A draft that is fine for one job can fail another.
- Run the blocker scan first. Check for blockers before scoring anything: a factual claim with no source or a source that says something else, a number, date, or quote you cannot verify, a claim about a person or product that could create legal or safety risk, a broken instruction that would make a reader fail, or a missing disclosure the format requires. Any blocker means hold, regardless of the scores that follow. List each blocker with the exact line it sits on.
- Score four dimensions independently, 1 to 5. Score Accuracy, Voice, Structure, and Usefulness using the anchored descriptors in
references/rubric.md. Write the score only after writing the evidence: one short quote or line reference per dimension that justifies the number. If you cannot point to evidence, you are guessing, so re-read that dimension and score what is on the page.
- Compute the gate with the script. Run
python3 scripts/score.py scores.json with the four scores and the blocker count. Default weights are Accuracy 0.35, Usefulness 0.30, Structure 0.20, Voice 0.15, because a wrong or useless piece harms a reader more than a dull one. Publish requires all of these: no blockers, weighted total at least 3.8, no dimension below 3, and Accuracy at least 4. Anything else is hold. These thresholds are this skill's operating standard. Change them only in writing, for the whole team, never per draft to let one piece through.
- Fix the lowest dimension first. Name the single lowest dimension and fix only that one in the next pass. Fixing everything at once makes the re-score meaningless and burns reviewer time on parts that already passed. If two dimensions tie for lowest, fix Accuracy first, then Usefulness, then Structure, then Voice. That order follows harm to the reader.
- Re-score only what changed, plus Accuracy in full. After the fix pass, re-score the fixed dimension from scratch and re-run the blocker scan and the Accuracy score in full, because edits introduce new errors. Carry the other scores forward unchanged. Stop after three fix passes on the same draft and escalate: three failed passes usually mean the brief or the source material is wrong, not the wording.
- Get a second score on anything high stakes or borderline. A second reviewer scores blind, without seeing the first scores, when the piece makes factual, financial, health, legal, or reputation claims, or when the weighted total lands between 3.8 and 4.1. If the two totals differ by more than 0.7, or any single dimension differs by 2 or more, the reviewers meet, compare evidence quotes, and agree one joint score. Record both original scores. Do not average away a disagreement without reading the evidence.
- Record the decision. File the score sheet from the Output Contract with the draft. A ship call with no filed sheet did not pass the gate.
Output Contract
Deliver a score sheet, not a paragraph of impressions:
- Draft identifier and version, intended reader, and the one-sentence job.
- Blocker list, each with line reference, or the word none.
- Four dimension scores, each with one evidence quote or line reference and a one-sentence reason.
- Weighted total from
scripts/score.py, the gate result (ship or hold), and the lowest dimension.
- If hold: the single fix assigned for the next pass, its owner, and what a passing re-score must show.
- If a second reviewer scored: both score sets, any dimension that differed by 2 or more, and the joint score agreed.
Operating Rules
- Accuracy rule. Every factual claim in a scored draft must be verified against a primary source or cut, or clearly framed as opinion. Never invent numbers, dates, quotes, or events to fill a gap. An unverifiable claim is a blocker, not a style note.
- Never let a high average cancel a low dimension. The minimums exist because readers hit the weakest part first: one wrong step, one missing answer, one unreadable section.
- Score the draft on the page, not the writer's intent, prior drafts, or effort. If it is not in this version, it does not count.
- Evidence before number, every time. A score with no quoted evidence is invalid and gets redone.
- Calibrate monthly. The team double-scores the same three drafts, checks agreement with the method in
references/calibration.md, and rewrites any anchor descriptor that reviewers keep reading two different ways. A rubric nobody calibrates drifts into personal taste within a few months.
- Keep voice scoring about fit, not preference. Voice asks whether the draft sounds like the publication and speaks to its reader in the register the brief set. A reviewer who would have written it differently has not found a voice failure.
- Do not score your own draft for the gate. Self-scores are useful while drafting, but the ship call needs a reader who did not write it. For a solo operator, wait at least a few hours, score from the rubric cold, and get a second score on high stakes work.
- When the gate and a deadline conflict, the gate wins and the delay gets reported with the score sheet attached. Shipping a held draft quietly is the one failure this system cannot catch later.
Versions
v1.0.02026-10-14 · 0 installs · Ed25519-signed./install.sh content-quality-gates 1.0.0bundle (.zip)
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
Ratings
No ratings yet — be the first to rate it.