Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions kits/dashboard/plugin/skills/dashboard-design/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,16 +319,13 @@ unchanged is a dashboard of error messages.

## Review pass (mandatory)

From your working directory:
The validator ships beside this SKILL.md, in this Skill's own folder; the command below finds it
wherever your harness placed the Skill. From your working directory:

```
python3 "$(ls .claude/skills/dashboard_design/validate_dashboard.py \
.harness/skills/dashboard_design/validate_dashboard.py 2>/dev/null | head -1)" dashboard.json
python3 "$(find . -path '*/dashboard-design/validate_dashboard.py' -not -path '*/node_modules/*' 2>/dev/null | head -1)" dashboard.json
```

Both paths are real — which one exists depends on which backend you are running
on. The directory is `dashboard_design`, with an underscore.

It prints the exact path of anything that will render wrong, and what to write
instead. **Fix and re-run until it exits clean.** It catches a statement the
read-only gate would refuse, data written into a chart, a panel pointing at no
Expand Down
9 changes: 3 additions & 6 deletions kits/sheets/plugin/skills/sheet-design/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,16 +101,13 @@ The columns are a pipeline, left to right: **identify → gather → judge.**

## Review pass (mandatory)

From your working directory:
The validator ships beside this SKILL.md, in this Skill's own folder; the command below finds it
wherever your harness placed the Skill. From your working directory:

```
python3 "$(ls .claude/skills/sheet_design/validate_sheet.py \
.harness/skills/sheet_design/validate_sheet.py 2>/dev/null | head -1)" sheet.json
python3 "$(find . -path '*/sheet-design/validate_sheet.py' -not -path '*/node_modules/*' 2>/dev/null | head -1)" sheet.json
```

Both paths are real — which one exists depends on which backend you are running
on. The directory is `sheet_design` with an underscore.

It prints the exact path of anything that will break, and what to write instead.
**Fix and re-run until it exits clean.** A sheet that fails this shows the
person an empty grid, and you cannot see that from here.
Expand Down
6 changes: 4 additions & 2 deletions kits/slides/plugin/skills/slide-design/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,12 @@ Decide ONCE, before building — then every slide obeys it:

## 4. Review pass (mandatory)

FIRST, check it renders at all. From your working directory:
FIRST, check it renders at all. The validator ships beside this SKILL.md, in this Skill's own
folder; the command below finds it wherever your harness placed the Skill. From your working
directory:

```
python3 ~/.harness/skills/slide_design/validate_deck.py deck.json
python3 "$(find . -path '*/slide-design/validate_deck.py' -not -path '*/node_modules/*' 2>/dev/null | head -1)" deck.json
```

It prints the exact path of anything the renderer will drop, and what to write
Expand Down
10 changes: 4 additions & 6 deletions kits/video/plugin/skills/video-storyboard/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,17 +324,15 @@ about today, not a house style — the capabilities tool is what is true now.

## Review pass (mandatory)

From your working directory, before you tell the person it is done:
The validator ships beside this SKILL.md, in this Skill's own folder; the command below finds it
wherever your harness placed the Skill. From your working directory, before you tell the person it
is done:

```
python3 "$(ls .claude/skills/video_storyboard/validate_scene.py \
.harness/skills/video_storyboard/validate_scene.py 2>/dev/null | head -1)" \
python3 "$(find . -path '*/video-storyboard/validate_scene.py' -not -path '*/node_modules/*' 2>/dev/null | head -1)" \
scene.excalidraw --expect-seconds <the total the storyboard promised>
```

Both paths are real — which one exists depends on which backend you are running on. The
directory is `video_storyboard`, with an underscore.

It reads the projection of the canvas and prints anything that will render wrong or
refuse to export: a shot still rendering, a shot that points at nothing, a trim past the
end of a clip, media stacked on media, a stored URL that will expire, a total that does
Expand Down
Loading