You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: document deployment model, version pinning, and Hugo future-date gotcha (#65)
* Fix the future date issue so the page is live.
* Bump GitHub Actions to versions running on Node.js 24 (#64)
* docs: document deployment model, version pinning, and Hugo future-date gotcha
Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com>
Copy file name to clipboardExpand all lines: .claude/skills/hugo-chores/SKILL.md
+21-4Lines changed: 21 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,24 @@ Perform maintenance tasks on the MemMachine website repository. Subcommands hand
17
17
/hugo-chores update-npm # audit and update npm dependencies
18
18
```
19
19
20
+
## Deployment Model
21
+
22
+
The site deploys automatically. Every push to `main` triggers the GitHub Actions workflow at `.github/workflows/hugo.yaml`, which builds the site with Hugo and deploys the output to GitHub Pages. There is no manual deploy step — merging a PR to `main` is the deploy.
23
+
24
+
**All tool versions are pinned as `env:` vars at the top of that workflow file:**
25
+
26
+
```yaml
27
+
env:
28
+
DART_SASS_VERSION: 1.91.0
29
+
GO_VERSION: 1.25.0
30
+
HUGO_VERSION: 0.149.0
31
+
NODE_VERSION: 22.18.0
32
+
```
33
+
34
+
To upgrade any tool, edit the corresponding env var in `.github/workflows/hugo.yaml` and push to main.
35
+
36
+
---
37
+
20
38
## What You Must Do When Invoked
21
39
22
40
If no subcommand is given, print the usage above and list the available subcommands with one-line descriptions. Do not run any commands.
@@ -54,11 +72,10 @@ If the latest is newer, proceed.
54
72
55
73
### Step 4 — Update the workflow file
56
74
57
-
In `.github/workflows/hugo.yaml`, find the Hugo installation step. Update the version string from the old version to the new version. Use the Edit tool for a targeted replacement.
75
+
In `.github/workflows/hugo.yaml`, update the `HUGO_VERSION` env var at the top of the `build` job. Use the Edit tool for a targeted replacement.
58
76
59
-
Common patterns to update:
60
-
-`extended_0.149.0` → `extended_{new_version}` (without the leading `v`)
Copy file name to clipboardExpand all lines: .claude/skills/write-blog/SKILL.md
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ If any of the following are not provided in the invocation arguments, ask for th
29
29
|**author**| Yes | Author's full name as it should appear on the post |
30
30
|**description**| Yes | One sentence for SEO and social preview cards |
31
31
|**tags**| Yes | Comma-separated list (e.g., "AI Agent, Integration, LLM"). Always include at least one. |
32
-
|**date**| Yes | Publish date in `YYYY-MM-DD` format. Defaults to today if not provided. |
32
+
|**date**| Yes | Publish date in `YYYY-MM-DD` format. Defaults to today if not provided. **Must not be in the future** — Hugo silently suppresses future-dated posts at build time unless `--buildFuture` is passed. If the post won't appear, check the date first. |
33
33
|**featured**| No | Should this post appear in the homepage carousel? (add tag `"featured"`) |
34
34
35
35
### Step 2 — Derive the slug and path
@@ -60,6 +60,8 @@ YYYY-MM-DDTHH:MM:SS-07:00 # Pacific Daylight Time (summer)
60
60
```
61
61
Default time: `09:00:00` (9 AM).
62
62
63
+
> **Date gotcha:** Hugo silently drops any post whose `date` is in the future — it will not appear in the local server or the deployed site. Always use today's date or a past date. If you do not know the current date, ask the user before writing the file.
64
+
63
65
### Step 4 — Build the tags array
64
66
65
67
Start with the user-provided tags. Clean each tag:
@@ -87,11 +89,12 @@ draft: false
87
89
Replace this comment with your blog post content.
88
90
89
91
BEFORE PUBLISHING:
90
-
1. Add featured_image.png to this directory (same folder as this index.md)
91
-
2. Set draft: false in the frontmatter above
92
-
3. Preview: hugo server --buildDrafts --bind 0.0.0.0
93
-
4. Build check: hugo --gc --minify
94
-
5. Commit with signed commit: git commit -sS -m "Add blog: {title}"
92
+
1. Confirm the date above is today or in the past — Hugo silently hides future-dated posts
93
+
2. Add featured_image.png to this directory (same folder as this index.md)
94
+
3. Set draft: false in the frontmatter above
95
+
4. Preview: hugo server --buildDrafts --bind 0.0.0.0
96
+
5. Build check: hugo --gc --minify
97
+
6. Commit with signed commit: git commit -sS -m "Add blog: {title}"
Copy file name to clipboardExpand all lines: content/AGENTS.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,7 +75,7 @@ draft: true
75
75
| Field | Type | Required | Notes |
76
76
|-------|------|----------|-------|
77
77
|`title`| string | Yes | Full title, used in `<h1>`, og:title, and blog card |
78
-
|`date`| RFC 3339 | Yes | ISO 8601 with timezone offset, e.g. `2026-04-27T09:00:00-08:00`|
78
+
|`date`| RFC 3339 | Yes | ISO 8601 with timezone offset, e.g. `2026-04-27T09:00:00-08:00`. **Must be today or in the past.** Hugo silently suppresses future-dated posts — they will not appear in local preview or the deployed site unless `--buildFuture` is passed.|
79
79
|`featured_image`| string | Yes | Filename only (not path); file must be in the same directory as `index.md`|
80
80
|`tags`| string array | Yes | Used for taxonomy pages; include `"featured"` to appear in homepage carousel |
81
81
|`author`| string | Yes | Full name as it should appear on the post |
2. Build and preview locally: `hugo server --buildDrafts` → `hugo server`
102
-
3. Commit with a signed commit: `git commit -sS -m "Add blog: Post Title"`
103
-
4. Open a pull request against the upstream `main` branch.
100
+
1. Confirm `date` is today or in the past — a future date silently prevents the post from appearing.
101
+
2. Set `draft: false` in frontmatter.
102
+
3. Build and preview locally: `hugo server --buildDrafts` → `hugo server` (no drafts flag confirms the post is visible).
103
+
4. Commit with a signed commit: `git commit -sS -m "Add blog: Post Title"`
104
+
5. Open a pull request against the upstream `main` branch.
105
+
106
+
> **If a post is missing after publish:** Check `date` first. Hugo drops future-dated content without any warning. Use `hugo server --buildFuture` to temporarily reveal them during debugging.
0 commit comments