Files
dotfiles/claude/memory/feedback-arc-make-rebuild-after-scss-partial-edits.md
T
David F GliddenandClaude Opus 4.8 3f9a89b00c chore(memory): Basic Memory trial begins — sync normalization baseline (283 files)
Basic Memory v0.21.6 first sync over the live memory dir (steward-authorized
live-dir trial, Option A 2026-06-06): adds permalink: to frontmatter, refolds
long YAML description lines, strips final newlines. Bodies untouched —
verified via full diff classification. From this commit forward, any diff in
claude/memory shows only what Basic Memory or the session writes.

Trial design: MemPalace untouched as incumbent; git status check on this dir
at every wrap; end-of-day evaluation (recall quality, sync robustness,
rebuild-from-files, malformed-file behavior).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 09:52:17 +02:00

71 lines
3.3 KiB
Markdown

---
name: ARC build pipeline — make rebuild required after SCSS partial edits
description: Hakyll only tracks scss/main.scss, not its @import-ed partials. After
editing any _*.scss partial, make build runs but SCSS doesn't recompile — site goes
out with stale CSS. Use make rebuild after partial edits.
type: feedback
originSessionId: a156edbb-0c3d-4285-b3ed-f5a45b8dda66
permalink: claude-memory/feedback-arc-make-rebuild-after-scss-partial-edits
---
# `make rebuild` — required after editing any SCSS partial
**Date observed:** 2026-05-05 (chamber-page polish session)
## The rule
After editing any `scss/AldineXXI/_*.scss` partial in ARC, run **`make rebuild`** rather than `make build`. Otherwise the site deploys with stale CSS (the SCSS won't be recompiled, only the markdown content pipeline will run).
## Why
`site.hs` rule for SCSS:
```haskell
match "scss/main.scss" $ do
route $ gsubRoute "scss/main" (const "assets/css/style") ...
compile $ getResourceString
>>= withItemBody (unixFilter "sass" ["--stdin", "--style=compressed", "--load-path=scss"])
```
Hakyll's incremental build only re-runs the `compile` for files matched in `match`. The `match "scss/main.scss"` matches **only `scss/main.scss`**, not any of the partials it imports (`_compass.scss`, `_layout.scss`, `_sidenotes.scss`, etc.).
When a partial changes, `main.scss` itself hasn't changed, so Hakyll skips SCSS recompilation entirely. The deploy proceeds with the previously-compiled `_site/assets/css/style.css`, and the new SCSS rules are silently absent from production.
## How to apply
| Edited file | Right command |
|---|---|
| `content/**/*.md` only | `make build` |
| `templates/*.html` only | `make build` |
| `site.hs` | `make rebuild` (already documented) |
| `scss/main.scss` | `make build` (Hakyll detects it) |
| **Any `scss/AldineXXI/_*.scss` partial** | **`make rebuild`** |
| Mixed (markdown + partial) | `make rebuild` |
When in doubt, `make rebuild`. The cost (a few extra seconds) is much lower than the cost of a silent stale-CSS deploy.
## Diagnostic
If a recent SCSS rule appears absent from the deployed site, check `_site/assets/css/style.css` mtime and content:
```bash
ls -la _site/assets/css/style.css # mtime should be recent
grep -c '<some new selector you added>' _site/assets/css/style.css # should be ≥ 1
```
If mtime is from before the partial edit OR the new selector isn't present, the rebuild was skipped. Run `make rebuild`.
## Possible upstream fix (deferred)
The cleanest long-term solution: change `site.hs` so Hakyll tracks SCSS partials as dependencies of `main.scss`. Hakyll has `makePatternDependency` and `match "scss/AldineXXI/*"` patterns that could express this. Out of scope for the moment — workaround (`make rebuild`) is sufficient. Worth flagging if the project CLAUDE.md gets a build-pipeline cleanup pass.
## Surface to CLAUDE.md
The project CLAUDE.md (`~/_Dev/animal-davidglidden-eu/CLAUDE.md`) currently says:
> ```
> make build # Standard build, auto-deploys to CloudFlare + GitHub mirror
> make rebuild # Clean rebuild, auto-deploys (use after site.hs changes)
> ```
The "use after site.hs changes" hint should extend to "use after `site.hs` or any SCSS partial changes." Steward to authorize the CLAUDE.md edit when convenient; until then this memory carries the rule.