Skip to content

feat(education): decide whether illustrate defaults to file, not artifact #6175

Description

@kyle-sexton

Problem

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.
  • Convention: "Local-first governs NEW rendered-view lanes"; existing emitting surfaces are
    "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 list
    does not include illustrate or its predecessor eli5.
  • Lineage: feat(education): route eli5 and teach codebase mode through the escape helper #5883 moved education:eli5 off the grandfathered list onto the escape-helper gate, and
    feat(education)!: replace eli5 with illustrate, an explainer with a record and an interactive page #6013 renamed that entry to education:illustrate in place
    (docs/conventions/rendered-views/README.md:479-482). So the convention treats illustrate as
    eli5'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.
  • 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.

Proposed approach

  1. Default to file when no argument or layer sets the medium (recommended). Change ladder step
    3 to file, then terminal; artifact only by argument or layer. Treat illustrate as a lane
    that 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.
  2. 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.
  3. 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

Context

Source: local handoff item 20261004-033100-education-illustrate-artifact-delivery.md, part 3.
Related: #3603 (grandfathered fleet sweep), #5883, #6013,
#6173.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: lowNice-to-have, cosmetic, or speculative; opportunistic.status: needs-decisionAwaiting a human or maintainer judgment call.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions