Skip to content

Latest commit

 

History

History
13 lines (7 loc) · 2.65 KB

h5p-skill.md

File metadata and controls

13 lines (7 loc) · 2.65 KB

The skill page

/h5p/skill/ serves the h5p-author skill as the pinned @missing-elements/h5p-author carries it since 0.9.0: SKILL.md, its licence and references/, the brief and a file per content type, copied as they are by eleventy.config.js. It is for a chat that cannot install the skill and reads it from a web address. From GitHub that can fail: GitHub limits anonymous reads per address, chat apps fetch from addresses they share, and the Claude app answered "I couldn't access the GitHub SKILL.md file due to rate limiting". GitHub Pages serves this site with no such limit.

Give a chat the page's address, https://missing-elements.github.io/h5p/skill/, not SKILL.md's. The page, src/h5p/skill/index.njk, writes out the full address of every file, each as its link's text, because a chat's fetch tool may open only addresses it has seen whole: Claude's web fetch is documented to fetch only addresses given in the conversation or found in an earlier search or fetch, and SKILL.md's relative links (./references/authoring.md) and the <Type> in a type file's address are not whole. /h5p/skill/index.json lists the author's version and the files, from src/_data/skill.js, which stops the build if the pinned package carries no SKILL.md.

The page lists the build tool and every bundle of /h5p/bundles/ too, each at its full address, for the step of SKILL.md that builds where npm cannot be reached. skill.js names them from the author package's contentTypes, the list writeBundles writes the bundles from, so the page and /h5p/bundles/ agree. Since h5p-author 0.9.1, SKILL.md itself sends a chat that has its text alone to this page first.

The type files are at /h5p/build/types/ too, for the build page to copy for a chat (the type files): the same files of the same pinned package, one copy written by Eleventy and one by Vite.

The addresses carry no version. The site builds from one pinned release, the one the build page runs, so a versioned folder would hold only that one, and an address with the previous version, given to a chat before, would stop working at the next update. The page and index.json say which release it is, and a Dependabot update of the package moves the files with the build page.

GitHub Pages serves LICENSE, which has no extension, as application/octet-stream; a chat never needs to read it. pnpm preview and the browser tests answer a missing file with a 404, as GitHub Pages does (appType: 'mpa' in vite.config.ts), so a test that a file is served fails when it is not.