web-publisher-weeklylisted
Install: claude install-skill talentedgeai/infinite-leverage
It is Wednesday 9:03 AM. Today's date is YYYY-MM-DD.
## Step 1 — Find publishable content
```bash
cd ~/code-projects/{project-slug}
```
Look through `content/topics/*/`. Find folders that have:
- `blog.md` ✅
- A hero image (`hero.webp`, `hero.png`, or `hero.jpg`) ✅
- No corresponding `.jsx` page in `website/pages/blog/posts/` ✅
IMPORTANT: If no publishable content exists, stop and notify via Lark if configured.
## Step 2 — Read style guides
Read (required before building any component — do not skip):
- `agents/web-developer/context/web-style-guide.md`
- `agents/web-developer/context/style-guide.md`
## Step 3 — Build the page
Invoke the `build-page` skill from `~/.claude/skills/build-page/SKILL.md`.
The generated component must include:
- `<Head>` with title, meta description, OG/Twitter tags, canonical URL
- `next/image` for all images
- Valid category tag (from web-style-guide.md)
- Read-time estimate in the post header
## Step 4 — Optimise hero image
Convert hero image to WebP if not already:
```python
from PIL import Image
img = Image.open("content/topics/{slug}/hero.png")
img.save("website/public/images/blog/{slug}.webp", "webp", quality=85)
```
Reduce quality in 5% steps until file is under 150 KB if needed.
## Step 5 — Copy and update blog index
Copy component:
```bash
cp /tmp/generated-{slug}.jsx website/pages/blog/posts/{slug}.jsx
```
Add post card at the TOP of the grid in `website/pages/blog/index.jsx`. Follow the existing card pattern exactly. Do not