feat(author): build from an archive the person attaches, where a chat's code can download nothing

Merged
AL
1d ago
+78-7

Closes #200.

ChatGPT's code can download nothing, but it builds from a file the person attaches. This PR teaches the skill to use that: an archive holding the one-file build tool and the whole library pack. The organisation's site will serve it at /h5p/bundles/h5p-author-build.tar.gz, 14.9 MB (missing-elements/missing-elements.github.io#47).

SKILL.md

  • Step 3 has a new first route, From the build archive: find the attached archive, unpack it, then build with --libraries parts. This needs nothing installed or fetched, and works for any type.
  • The build page's route gets one fixed line, used where Node runs but nothing installs or downloads. It goes right after the link: To get the .h5p file here instead: download … (15 MB) and attach it to your next message.
  • Step 5's hand-over includes that line, and the opening names the archive among the routes.

design/author.md

A new rule, Where nothing downloads, the person attaches the build archive. It records:

  • what reached ChatGPT's sandbox and what did not;
  • the owner's runs in ChatGPT, Claude and Grok;
  • why the archive covers every type and is a .tar.gz: a .zip was read as a plugin;
  • that nothing passes through a server of ours;
  • the Haiku numbers below.

Measured on Haiku

Each run had no network, with npm cut off by a dead registry.

CaseOld textNew text
Archive attached: built from it, package passes the verifier3 of 33 of 3
No archive, offer written as a sentence: exact address—1 of 3 (one named the file only, one said nothing)
No archive, offer as a fixed line to copy—2 of 3 (one left it out)

Across the six no-archive runs, every link was exact and every run gave the source file. So the route's words are for models that need the step written out, as ChatGPT's prompt wrote it out in the owner's test. A weak model still drops some of the offer, so the guide tells people to attach the archive with their first message.

Checks

  • test:unit: author 183, player 400, runtime 180, normalize 24, all passing.
  • typecheck passes.
  • sync:skill is clean.
  • The branch merges cleanly with #197 and #199. Combined, SKILL.md is 15,865 characters.

Order

This ships as author 0.9.8 with #197 and #199: the archive's tool needs #199's --version fix. The org site's PR (#47) moves its pin to 0.9.8 and writes the archive. Until it is live, the address in this skill answers 404, so that PR should merge soon after 0.9.8 is published.


Summary by cubic

Adds a build-from-archive route for chat sandboxes where the chat's code can run but can't download anything. The user attaches h5p-author-build.tar.gz (14.9 MB, served at /h5p/bundles/h5p-author-build.tar.gz), and the skill unpacks it and builds with --libraries parts. Nothing installs or fetches, for any type. Closes #200.

Changes

  • Step 3 takes the archive route first when the archive is attached; where Node runs but nothing installs or downloads, the build page's route carries one fixed offer line, and step 5's hand-over includes it.
  • Offline, a source's path must name a file in the sandbox, such as an attached one, since a web address is downloaded as the package builds; the offer line follows the source when no link was printed.
  • design/author.md records why the archive is .tar.gz (a .zip was read as a plugin), that nothing passes through a server of ours, and Haiku results: 3 of 3 builds from the attached archive pass the verifier, while offer lines vary with model strength, so the guide, not the skill, tells people to attach the archive with their first message.
  • Ships as author 0.9.8 with #197 and #199; the archive's tool needs #199's --version fix. The address answers 404 until the site PR merges, so that should land soon after 0.9.8 is published.