You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(education): decide whether illustrate defaults to file, not artifact #6175
With no explicit medium argument and no rendered-views layer setting medium:, /education:illustrate publishes its page as a private artifact whenever the session can publish
(plugins/education/skills/illustrate/SKILL.md:117-118: "artifact when this session can publish
one, else file, else terminal"). In the reported run the topic was casual (a musician), the
ladder published a private artifact and the session began watching it, and the user then asked to
delete the artifact and open the local file instead. The reporter suggests file as the default
when no layer is set, with artifact on request.
Evidence
Verified at origin/main 688b64e4d:
The shipped ladder is at SKILL.md:109-118; the medium argument and the cascade come first, so
any user can already opt out with medium: file in ~/.claude/rendered-views.md.
That README line is also stale: it lists illustrate among escape-helper emitters, but build-explainer.mjs builds through the shared builder's interactive profile
(plugins/education/skills/illustrate/scripts/build-explainer.mjs:16-17, :49-55), so illustrate
belongs in the "Emitters on the shared builder" paragraph (README.md:484-489).
Exceptions that keep artifact as default are named in the convention (the PR digest and the deck
lane, README.md:359-370); illustrate is not one.
Keep artifact first, add a confirmation before the first publish for a topic. Adds a prompt
to every run; the reporter's complaint was the unrequested publish and watch.
Leave as is and rely on users setting medium: file. No change; the reported friction stays.
Recommendation: option 1. Basis: judgment. The supporting facts: the convention's direction for new
work is local-first (README.md:351), the only artifact defaults it names are two gated lanes,
and an illustrate page is a personal learning aid that is rarely shared. Against it: the
grandfathering sentence (README.md:356-357) reserves ladder changes for the fleet sweep, so the
maintainer should state that illustrate leaves the grandfathered set in this change.
Acceptance criteria
A maintainer records the chosen option.
If option 1: SKILL.md Step 4 ladder step 3 reads file, else terminal; the medium table
and argument hint still list artifact as an explicit choice.
If option 1: an eval case asserts that with no argument and no layer the skill delivers the
local file path and does not publish; existing evals that assume artifact-first are updated.
If option 1: docs/conventions/rendered-views/README.md moves education:illustrate from the
escape-helper paragraph to the shared-builder paragraph and notes its local-first default; docs/conventions/rendered-views/CHANGELOG.md logs it.
Version bump and CHANGELOG entry for education.
Constraints and gotchas
The stale README line (escape-helper vs shared builder) is worth fixing whichever option wins.
Problem
With no explicit medium argument and no
rendered-viewslayer settingmedium:,/education:illustratepublishes its page as a private artifact whenever the session can publish(
plugins/education/skills/illustrate/SKILL.md:117-118: "artifactwhen this session can publishone, else
file, elseterminal"). In the reported run the topic was casual (a musician), theladder published a private artifact and the session began watching it, and the user then asked to
delete the artifact and open the local file instead. The reporter suggests
fileas the defaultwhen no layer is set, with
artifacton request.Evidence
Verified at origin/main
688b64e4d:SKILL.md:109-118; the medium argument and the cascade come first, soany user can already opt out with
medium: filein~/.claude/rendered-views.md."grandfathered on the shipped ladder until the priced fleet sweep deliberately migrates them"
(
docs/conventions/rendered-views/README.md:351-357). The fleet sweep is rendered-views: migrate the grandfathered HTML-emitting surfaces to the convention (fleet ladder sweep + evals reconciliation) #3603, whose scope listdoes not include illustrate or its predecessor eli5.
education:eli5off the grandfathered list onto the escape-helper gate, andfeat(education)!: replace eli5 with illustrate, an explainer with a record and an interactive page #6013 renamed that entry to
education:illustratein place(
docs/conventions/rendered-views/README.md:479-482). So the convention treats illustrate aseli5's successor, not as a new lane. Whether a skill rewritten that heavily should count as new
(which would make local-first the conforming default) is not settled anywhere I could find.
build-explainer.mjsbuilds through the shared builder's interactive profile(
plugins/education/skills/illustrate/scripts/build-explainer.mjs:16-17,:49-55), so illustratebelongs in the "Emitters on the shared builder" paragraph (
README.md:484-489).artifactas default are named in the convention (the PR digest and the decklane,
README.md:359-370); illustrate is not one.Proposed approach
filewhen no argument or layer sets the medium (recommended). Change ladder step3 to
file, thenterminal;artifactonly by argument or layer. Treat illustrate as a lanethat adopts local-first now rather than waiting for rendered-views: migrate the grandfathered HTML-emitting surfaces to the convention (fleet ladder sweep + evals reconciliation) #3603.
artifactfirst, add a confirmation before the first publish for a topic. Adds a promptto every run; the reporter's complaint was the unrequested publish and watch.
medium: file. No change; the reported friction stays.Recommendation: option 1. Basis: judgment. The supporting facts: the convention's direction for new
work is local-first (
README.md:351), the onlyartifactdefaults it names are two gated lanes,and an illustrate page is a personal learning aid that is rarely shared. Against it: the
grandfathering sentence (
README.md:356-357) reserves ladder changes for the fleet sweep, so themaintainer should state that illustrate leaves the grandfathered set in this change.
Acceptance criteria
SKILL.mdStep 4 ladder step 3 readsfile, elseterminal; the medium tableand argument hint still list
artifactas an explicit choice.local file path and does not publish; existing evals that assume artifact-first are updated.
docs/conventions/rendered-views/README.mdmoveseducation:illustratefrom theescape-helper paragraph to the shared-builder paragraph and notes its local-first default;
docs/conventions/rendered-views/CHANGELOG.mdlogs it.Constraints and gotchas
is declined, option 1 also sidesteps most "Explainer"-titled artifacts for illustrate.
Context
Source: local handoff item
20261004-033100-education-illustrate-artifact-delivery.md, part 3.Related: #3603 (grandfathered fleet sweep), #5883, #6013,
#6173.