@rubytech/create-maxy-lite 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: site-deploy
3
+ description: Deploy a folder of static HTML and assets to Cloudflare Pages and return a live URL that stays up with the phone offline. Use when a site or page is built and ready to go live, or when a live site is stale and needs redeploying. Runs `wrangler pages deploy` over Bash; the page is edge-hosted, not served from the device. This is the implementer behind `publish-site`.
4
+ ---
5
+
6
+ # Deploy a site to Cloudflare Pages
7
+
8
+ You take one folder of static files (an [`slides`](../slides/SKILL.md) deck, a landing page, any HTML tree) and put it live on Cloudflare's edge. Cloudflare hosts the build, so the page stays reachable when the phone is off. The live URL is the deliverable.
9
+
10
+ The mechanism is the `wrangler` CLI, run over Bash. It is already available through Node; invoke it with `npx wrangler` if it is not on the path. Nothing here uses an MCP connector: the Cloudflare connector cannot deploy Pages, and its login is not reachable from the shell.
11
+
12
+ ## Auth, once
13
+
14
+ `wrangler` needs to be signed in to the Cloudflare account. Two ways, in order of preference:
15
+
16
+ - `npx wrangler login` opens the Cloudflare OAuth page in the browser and persists the session. Do this once; later deploys reuse it. This is the on-device default.
17
+ - Or set `CLOUDFLARE_API_TOKEN` (a token with **Account · Cloudflare Pages · Edit**) and `CLOUDFLARE_ACCOUNT_ID` in the environment. Never write the token into the project folder, never commit it, never print it.
18
+
19
+ If neither is present, `wrangler` reports it is not authenticated. Stop and tell the user to run `wrangler login`; do not guess a token.
20
+
21
+ ## Deploy
22
+
23
+ Pick a project slug (lowercase, hyphenated, derived from the site's name). The first deploy of a new slug creates the project.
24
+
25
+ ```bash
26
+ npx wrangler pages deploy <output-dir> --project-name <slug> --branch=main
27
+ ```
28
+
29
+ `--branch=main` deploys to the production alias `https://<slug>.pages.dev`; any other branch name produces a preview URL instead. `wrangler` prints the deployment URL. Surface the operation as verb plus target ("deploying Pages project `<slug>`"); the token value never appears in chat or stdout.
30
+
31
+ ## Custom domain (optional)
32
+
33
+ By default the site answers on `<slug>.pages.dev`, which is enough for most uses. To serve it on the user's own domain, attach the domain to the Pages project in the Cloudflare dashboard (**Workers & Pages → the project → Custom domains → Set up a domain**). When the zone is on the same Cloudflare account, Cloudflare provisions the certificate and the DNS record itself. A custom domain is optional polish; do not block the deploy on it.
34
+
35
+ ## Done is a live 200, not a clean exit
36
+
37
+ A successful `wrangler` run is not the finish line. The finish line is the live URL serving the new content. Check it, cache-busted, and read the first line:
38
+
39
+ ```bash
40
+ curl -s "https://<slug>.pages.dev/?cb=$(date +%s)" -D - -o /tmp/site.html | head -1
41
+ ```
42
+
43
+ Done holds only when all are true:
44
+
45
+ - the status line is `HTTP/2 200` (or `HTTP/1.1 200 OK`); a `522` is the certificate window on a fresh custom domain, so wait and re-curl rather than calling it done,
46
+ - the body carries a content marker you can name in advance (a headline or title from this site), not a leftover from whatever the folder was copied from.
47
+
48
+ Any other status, or a missing or stale marker, blocks done and is reported with the exact failing URL. Record the live URL and this check in the result so it can be re-run later to confirm the site is still up without reading the source.
49
+
50
+ ## Out of scope
51
+
52
+ Building the HTML (that is [`slides`](../slides/SKILL.md) or whatever produced the folder), form-to-database capture, and serving from the device over a tunnel. The lite default is Pages, which survives the phone going offline; device-origin hosting is not part of lite.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: slides
3
+ description: Build a slide deck or a single web page as one self-contained HTML file from vault content. Use when the user asks for a deck, slides, a presentation, a pitch, a talk, a one-pager, or a landing page, or wants to turn notes, a project, or a meeting into something they can present or publish. Produces one HTML file with inline CSS and JS, no build step. Pair with `publish-site` / `site-deploy` to put it online.
4
+ ---
5
+
6
+ # Slides and pages
7
+
8
+ You produce **one self-contained HTML file**: inline CSS and JS, no build step, no dependencies beyond the Inter web font. It opens straight in a browser, navigates with arrow keys, space, or swipe, and exports to PDF with `P`. To put it online, hand the file to [`publish-site`](../publish-site/SKILL.md).
9
+
10
+ The starting point is [`deck.html`](deck.html) in this folder. Copy it, then change only the content. It carries the design tokens, the component library (21 components, indexed in a comment at the top of the file), the headline pattern, and the keyboard/swipe/PDF behaviour. Stay on its tokens; do not invent a new colour scheme or font.
11
+
12
+ ## Use what the user gave you
13
+
14
+ The user's message and the vault are the brief. Pull the content from where it already lives: a Project file and its linked Tasks, a set of Notes, a meeting, a person or organization. Read those files, do not re-ask for what the vault already holds. Only ask once, in one short question, if you genuinely have no idea what the deck is about.
15
+
16
+ ## Pick the shape, then outline
17
+
18
+ Most decks fit the six-beat story arc. Choose the timing to the format; the proportions hold.
19
+
20
+ | Beat | ~Share | Purpose |
21
+ |------|--------|---------|
22
+ | Open | 10% | Hook the room with a confession, a contradiction, or a surprising fact |
23
+ | The world before | 15% | The status quo the audience already lives in, to build recognition |
24
+ | The turn | 15% | Name the one thing that changed, cleanly |
25
+ | The evidence | 40% | Three to five concrete proof points: pain → action → result |
26
+ | The honest part | 15% | The caveat, the cost, the open question; this earns trust |
27
+ | Close | 5% | Land one line |
28
+
29
+ For a pitch lean into problem → market → product → traction → ask; for a one-pager or landing page drop the navigation idea and write a single long scrolling section. The arc is a default, not a cage.
30
+
31
+ Write the slide-by-slide outline first (number, component, headline, which beat) and show it to the user before you write HTML. Get a nod, then build.
32
+
33
+ ## Write the HTML
34
+
35
+ Copy the matching component from `deck.html` and swap the text. The headline pattern is the visual identity: a bold anchor phrase plus a dim extension that fades.
36
+
37
+ ```html
38
+ <h1>Anchor. <span class="dim">Extension that fades.</span></h1>
39
+ ```
40
+
41
+ One dark slide per deck at most; it loses its weight if every slide is dark. Keep claims true to the vault; do not invent numbers to fill a stat grid. Drop images into a `media/` folder beside the HTML and reference them with relative paths.
42
+
43
+ ## When the user wants it online
44
+
45
+ A deck or page is a static HTML file, so it deploys to Cloudflare Pages like any site. When the user asks to publish, host, or share a live link, hand the file (and its `media/` folder, if any) to [`publish-site`](../publish-site/SKILL.md), which routes to [`site-deploy`](../site-deploy/SKILL.md). The result is an edge-hosted URL that stays live with the phone offline.