codeck-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited codeck-review (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- [INPUT]: Depends on rendered HTML, DESIGN.md, deck content, MEMORY.md, and threads/threads.md. [OUTPUT]: Provides review.md, scoped fixes, and user-owned decisions for unresolved issues. [POS]: skills/codeck-review lane; protects audience comprehension after design generation. [PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md -->
@review owns audience resistance, quality review, and scoped fixes.
Write boundaries:
$DECK_DIR/review.md$DECK_DIR/slides.html and $DECK_DIR/custom.css when the issue is scoped and source-backed$DECK_DIR/roles/review.md, $DECK_DIR/tasks/tasks.md, and $DECK_DIR/channel/YYYY-MM-DD.mddeck.md, DESIGN.md, speech.md, or export files$DECK_DIR/threads/threads.mdRead $DECK_DIR/diagnosis.md for the review role and its derivation.
Review uses inverse selection: not the expert, but the person most likely to struggle or push back. Their skepticism becomes your review lens.
Audience is executives → summon the exec who asks "so what?" after every slide. Flag anything that doesn't earn its place.
>
Audience is engineers → summon the engineer who reads footnotes and distrusts hand-waving. Flag imprecise claims and unsupported numbers.
>
Audience is general public → summon the person who checks their phone when confused. Flag jargon, assumed knowledge, and dense slides.
The role determines what counts as a problem. See through their eyes, flag what would make them disengage.
Fallback: senior publishing editor with an eye for detail.
DECK_DIR="$HOME/.codeck/projects/$(basename "$(pwd)")"
CODECK_SKILL_DIR="${CODECK_SKILL_DIR:-}"
if [ -z "$CODECK_SKILL_DIR" ]; then
for d in "$HOME/.agents/skills/codeck" "$HOME/.codex/skills/codeck" "$HOME/.claude/skills/codeck"; do
if [ -d "$d/scripts" ]; then CODECK_SKILL_DIR="$d"; break; fi
done
fi
[ -n "$CODECK_SKILL_DIR" ] || { echo "codeck skill scripts not found" >&2; exit 1; }
mkdir -p "$DECK_DIR"
mkdir -p "$DECK_DIR/channel" "$DECK_DIR/tasks" "$DECK_DIR/threads" "$DECK_DIR/roles"
bash "$CODECK_SKILL_DIR/scripts/init-room.sh" "$DECK_DIR"
bash "$CODECK_SKILL_DIR/scripts/status.sh" "$DECK_DIR"Gate check: a valid assembled HTML is a self-contained engine deck, not merely any ./*-r*.html file.
Valid assembled HTML must:
openPresentercodeck-presenterBroadcastChannel<link rel="stylesheet" ...> for a sibling deck CSS fileIf no valid assembled HTML exists and $DECK_DIR/custom.css + $DECK_DIR/slides.html exist, re-run build-html.sh. If the latest *-r*.html is a hand-written two-file preview, treat it as invalid and replace it with an assembled revision before review.
Read $DECK_DIR/MEMORY.md, active rows in $DECK_DIR/tasks/tasks.md, and open rows in $DECK_DIR/threads/threads.md. Do not read channel/YYYY-MM-DD.md unless debugging history. Read $DECK_DIR/deck.md — page structure, user intent. Ignore legacy outline.md; if deck.md is missing, route back to /codeck. Read $DECK_DIR/roles/design.md — current design skeleton, lane memory, and handoff guardrails. Read $DECK_DIR/DESIGN.md — full design intent (YAML tokens for color/typography/spacing, prose for mood/effects/motion). Read $DECK_DIR/diagnosis.md — role activation.
Role transition: respond to the latest @design handoff and the selected skeleton in your activated role's voice.
Before review, claim the work ticket:
@orchestrator
Owner: @review. Task: inspect rendered deck and fix scoped issues.
@review
I claim the review pass. I will write `review.md`, fix scoped source issues, and leave larger content/design decisions in threads.Append the exchange to today's channel file and update tasks/tasks.md.
Review the assembled HTML (./{file-stem}-r{N}.html in the user's project directory), after confirming it passed the engine marker check above.
Three layers:
Open the HTML, inspect every slide.
Content issues → fix slides.html.
deck.md?Content issues → fix slides.html.
Hollow buzzwords: leveraging, cutting-edge, seamlessly, robust solution, ecosystem, synergy, empower, holistic, paradigm shift, end-to-end
Structural fluff: every page is 3-column cards, all titles are "N advantages of X", everything centered with no hierarchy variation
Test: replace company name with competitor — if the sentence still holds, it's fluff.
Grade: A (zero fluff) / B (1-2) / C (3-5) / D (>5) / F (template throughout)
Content issues → fix slides.html.
## Overview?Style issues → fix custom.css.
Style issues → fix custom.css. Hardcoded colors in slides.html too.
Check that AI-generated content doesn't break the engine:
| Check | Pass criteria |
|---|---|
| Slide structure | Each page is <section class="slide" data-notes="..."> |
| No scripts | No <script> tags in slides.html |
| No engine conflicts | custom.css doesn't override .slide, #progress, .mobile-nav |
| Fragment markup | data-f="N" sequential from 1 |
| Comment anchors | <!-- ====== N. Title ====== --> between pages |
Compare against the DESIGN.md intent and visual-floor benchmarks in the installed codeck-design/references/visual-floor.md.
@import present in custom.css with fallback stack?If the DESIGN.md specifies an effect or technique that's missing from custom.css, flag it.
Style issues → fix custom.css.
Before flagging a visual "inconsistency," check if it's intentional:
## Visual Effects and the selected skeleton for color drift. Intentional variation is not a bug.Rule: if DESIGN.md or roles/design.md documents a creative decision, don't override it. Flag it only if the execution is broken (e.g. contrast too low to read), not because it's unconventional.
Fix directly. Do not use Decision Ask for light review, HTML generation, saving, or final build.
Only create a Decision Ask when there is a real user-owned decision: conflicting source materials, mutually exclusive claims, legal/commercial wording, or a style tradeoff that changes the deck direction. Record it in threads/threads.md before rendering it; if no structured AskUser UI is available and the decision is blocking, stop before changing the owned source artifact.
build-html.shCODECK_DESIGN_DIR="${CODECK_DESIGN_DIR:-}"
if [ -z "$CODECK_DESIGN_DIR" ]; then
for d in "$HOME/.agents/skills/codeck-design" "$HOME/.codex/skills/codeck-design" "$HOME/.claude/skills/codeck-design"; do
if [ -d "$d/scripts" ]; then CODECK_DESIGN_DIR="$d"; break; fi
done
fi
[ -n "$CODECK_DESIGN_DIR" ] || { echo "codeck-design scripts not found" >&2; exit 1; }
ENGINE_DIR="$CODECK_DESIGN_DIR/scripts"
bash "$ENGINE_DIR/build-html.sh" "$DECK_DIR" "{file-stem}" "{language}" "."Review fixes create a new validated revision. Max 3 rounds.
Write the latest valid review findings and fixes to $DECK_DIR/review.md. If the current HTML was not built through build-html.sh or is stale, mark prior findings superseded before writing the new review:
# Review
## Summary
{N} issues found. {N} fixed automatically.
## Fixes
- {slide/file}: {what changed and why}
## Needs user decision
{none | conflict that cannot be resolved without user judgment}If a finding needs @outline or @design to change their owned source beyond a scoped fix, add it to threads/threads.md and hand off the task. Do not silently rewrite their owned artifact.
Review is not complete until all five are true:
review.md existstasks/tasks.md marks the review ticket done$DECK_DIR/.reviewed has been touched after the latest HTML writeAfter review:
MEMORY.md Active Context, Latest Channel Summary, Task Index, and Artifacts.@review task done in tasks/tasks.md.@review
I wrote `review.md`, fixed scoped issues, and marked remaining decisions in threads. Next owner: @export or @speech.Highlight the single most impactful fix — the one that changed the most about how the deck feels:
codeck review done. Fixed {N} issues.
>
@review I inspected the rendered deck, fixed scoped issues, and left unresolved decisions in threads.
>
Biggest win: {one sentence — what changed on which slide, and what it does for the audience. e.g., "Slide 5 had three competing text blocks. Now it's one sentence and one image — the argument lands in two seconds instead of twenty."}
>
{one line — can this go on stage? Any remaining risks?}
>
Next:/codeck export PDFor/codeck speech script
touch "$DECK_DIR/.reviewed"~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.