gregshallardau
@gregshallardau
Public Skills
artefact-builder
by gregshallardau
Generate a canonical <deck-*> Custom Element for this reveal.js presentation framework - a reusable slide widget defined once and referenced by tag: a D3 chart, a zoomable concept map / circle packing, an SVG diagram, a GSAP hero animation, or an interactive Alpine demo (stepper, quiz, meter, tokeniser-style click-through). Use when the user says "build me a component/widget", "new reusable slide element", "make a <deck-...>", "a chart/diagram/interactive component", "an animated demo", or "something reusable across slides". Creates components/<kebab>/index.js (repo root - deck content, not src/); src/components/registry.js auto-discovers it, no manual registration. Optionally emits a slide. Refuses to redefine a component that already exists.
slide-builder
by gregshallardau
Scaffold, edit, insert, reorder, or renumber slide files in slides/ for this reveal.js presentation framework. Use when the user says "add a slide", "insert a slide after/before X", "new slide about ...", "edit / rewrite / change slide X", "add bullets to X", "change X's title", "promote X to HTML", "reorder the slides", "renumber the deck", "split this slide into a vertical stack", or "make slide N a sub-slide of M". Produces one portable .md or .html file per slide and keeps its id/slug and overview-menu link consistent.
upgrade-slide
by gregshallardau
Audit and upgrade one slide file at a time against this reveal.js presentation framework's current utilities/molecules (deck.css) - replacing hand-rolled inline styles, dead classes, or bespoke per-slide CSS with the real thing. Use when the user says "upgrade this slide/deck to the new molecules", "audit <deck> for anti-patterns", "check this deck against deck.css", "clean up this slide's CSS", or is migrating an older deck (built before a framework CSS update) onto the current utility set. Deliberately mechanical: a fixed pattern -> replacement table, one slide per pass, minimal judgment calls - built to be run by a cheap/small model or in a tight loop, not to design new patterns.
deck-builder
by gregshallardau
Scaffold a whole new deck for this reveal.js presentation framework. Use when the user says "scaffold a deck from this outline", "turn this wireframe/outline into slides", "build the slide skeleton for ...", "new deck from <file>.md", or hands over a presentation-plan.md from presentation-planner. Reads an outline or a plan and writes slides/ - a numbered stub per section, vertical stacks where it nests, a title slide, an overview jump menu, a closing takeaways slide. Emits stubs only; never writes slide prose or components.
ideas-map
by gregshallardau
Customise the deck's key artifact - the <deck-ideas-map> force-directed "constellation of ideas" - to a specific presentation. Use when the user says "customise the ideas map", "set up the constellation map for my talk", "add my topics/words to the map", "wire the ideas map onto slide X", "make the map activate <these ideas>", "tune the map layout", or "/ideas-map". Authors the DATASET (topics, nodes, links, relations, RELATION_OFFSETS, contexts) and wires the <deck-ideas-map> tag onto slides in the right state per beat. Does NOT change the component's JavaScript - that is artefact-builder's job.
ideas-map-seed
by gregshallardau
Generate a large <deck-ideas-map> DATASET (hundreds to thousands of topics) with a local LLM, then validate it. Use when the user says "seed the ideas map", "generate 1000 topics for the map", "bulk-build the map dataset", "make a big knowledge map", or "/ideas-map-seed". Provides a JSON schema, a fixed relation vocabulary, a generation prompt, a no-deps validator, and an optional merge script. Companion to the ideas-map skill (hand authoring + slide wiring).
presentation-planner
by gregshallardau
Use when someone wants to plan a talk or presentation before it is built - "plan a presentation", "help me plan a talk about X", "/presentation-planner", or when a user describes a talk they have to give and has not settled its goal, length, structure, or which slides need a diagram / chart / demo. The step before deck-builder: it produces the plan file deck-builder scaffolds from.
skin-builder
by gregshallardau
Add a re-skin (a [data-theme] block) to this reveal.js presentation framework from brand input. Use when the user says "re-skin the deck", "add a brand theme", "new theme called ...", "make a dark/light skin", or "apply these brand colours/fonts". Parses the existing custom-property tiers, then appends a [data-theme="<name>"] block to src/styles/vars/semantic.css (and any genuinely new primitives to primitives.css). Never touches slides or components.