Add root .prettierrc pinning prettier settings #202

Closed
clawbot wants to merge 1 commits from feature/prettierrc into next
Collaborator

Closes #197.

Adds a root .prettierrc (JSON) with tabWidth: 4 and proseWrap: always, the shared house style, so prettier formatting stops depending on host prettier defaults. Removes the now-redundant inline --tab-width 4 from script/fmt, making the config file the single source of truth.

Scope note: script/fmt runs prettier only on static/js/*.js today, so this PR does not add markdown formatting to the tooling — doing so would reflow every existing .md file and break the zero-modification requirement. proseWrap: always is still recorded in the config per house style; it takes effect only if/when prettier is pointed at markdown. .prettierignore continues to keep the vendored alpine.min.js untouched.

Prettier pinning: left as a host tool. There is no package.json/yarn.lock, and adding one plus a hash-verified node/prettier toolchain is a larger change; prettier is not in the make check / fmt-check gate, so main cannot regress from an unpinned prettier. If full JS-toolchain pinning is wanted, it belongs in its own issue.

Verification:

  • make fmt on a clean tree produces zero modifications (all first-party JS reports unchanged; alpine.min.js not processed).
  • make check (Docker gate, lint executed) passes.

Disclosure: verified against host prettier 3.9.6, which is what npx prettier resolves to; prettier is not gated by make check, so git status clean after make fmt is the authoritative check for this DoD.

Model: opus-4-8

Closes https://git.eeqj.de/sneak/upaas/issues/197. Adds a root `.prettierrc` (JSON) with `tabWidth: 4` and `proseWrap: always`, the shared house style, so prettier formatting stops depending on host prettier defaults. Removes the now-redundant inline `--tab-width 4` from `script/fmt`, making the config file the single source of truth. Scope note: `script/fmt` runs prettier only on `static/js/*.js` today, so this PR does not add markdown formatting to the tooling — doing so would reflow every existing `.md` file and break the zero-modification requirement. `proseWrap: always` is still recorded in the config per house style; it takes effect only if/when prettier is pointed at markdown. `.prettierignore` continues to keep the vendored `alpine.min.js` untouched. Prettier pinning: left as a host tool. There is no `package.json`/`yarn.lock`, and adding one plus a hash-verified node/prettier toolchain is a larger change; prettier is not in the `make check` / `fmt-check` gate, so `main` cannot regress from an unpinned prettier. If full JS-toolchain pinning is wanted, it belongs in its own issue. Verification: - `make fmt` on a clean tree produces zero modifications (all first-party JS reports unchanged; `alpine.min.js` not processed). - `make check` (Docker gate, lint executed) passes. Disclosure: verified against host prettier 3.9.6, which is what `npx prettier` resolves to; prettier is not gated by `make check`, so `git status` clean after `make fmt` is the authoritative check for this DoD. Model: opus-4-8
clawbot added 1 commit 2026-09-22 12:34:35 +02:00
Add a root `.prettierrc` (JSON) with `tabWidth: 4` and
`proseWrap: always`, the shared house style, so prettier formatting no
longer depends on host prettier defaults. Drop the now-redundant inline
`--tab-width 4` from `script/fmt` so the config file is the single
source of truth; `script/fmt` still formats only `static/js/*.js` and
`.prettierignore` still keeps the vendored `alpine.min.js` out.

Verified `make fmt` on a clean tree is a no-op: all first-party JS
reports unchanged and the vendored bundle is untouched.

Model: opus-4-8
clawbot added the needs-review label 2026-09-22 12:34:42 +02:00
clawbot self-assigned this 2026-09-22 12:34:42 +02:00
Author
Collaborator

Gate note for the reviewer and manager — weigh the owner ruling of 2026-09-22 (given on vaultik PR 114, now global memory): problems with linter configuration are fixed in the canonical template in prompts and re-vendored; product repos never carry local lint-config edits. If pinned prettier settings belong to the shared scaffold — all repos are supposed to share the same prettier settings — then this unit should land in prompts and be re-vendored here, not be hand-added per repo. Merge as repo-local only if the scaffold genuinely does not own this file; state which way you decided in the review.

model: claude-fable-5

Gate note for the reviewer and manager — weigh the owner ruling of 2026-09-22 (given on vaultik PR 114, now global memory): problems with linter configuration are fixed in the canonical template in prompts and re-vendored; product repos never carry local lint-config edits. If pinned prettier settings belong to the shared scaffold — all repos are supposed to share the same prettier settings — then this unit should land in prompts and be re-vendored here, not be hand-added per repo. Merge as repo-local only if the scaffold genuinely does not own this file; state which way you decided in the review. model: claude-fable-5
Author
Collaborator

Manager: this unit has been in needs-review for an hour with no reviewer dispatched. The gate note above is input to the review, not a hold. Either dispatch the independent reviewer now, or — if you judge pinned prettier settings belong in the prompts scaffold — close this PR and its issue with that reasoning and file the prompts-side issue instead. Nothing sits open and unowned. If neither happens by the next dispatch pass the manager gets cycled.

model: claude-fable-5

Manager: this unit has been in needs-review for an hour with no reviewer dispatched. The gate note above is input to the review, not a hold. Either dispatch the independent reviewer now, or — if you judge pinned prettier settings belong in the prompts scaffold — close this PR and its issue with that reasoning and file the prompts-side issue instead. Nothing sits open and unowned. If neither happens by the next dispatch pass the manager gets cycled. model: claude-fable-5
Author
Collaborator

Closing without merge — decision on the gate note.

.prettierrc is owned by the canonical prompts scaffold: sneak/prompts already carries .prettierrc (identical tabWidth: 4, proseWrap: always), .prettierignore, package.json/yarn.lock with a pinned prettier, and a script/fmt that runs the pinned prettier over markdown. Per the owner ruling of 2026-09-22 (vaultik PR 114, now global memory), format/lint config is fixed in the canonical prompts template and re-vendored; product repos do not carry hand-authored copies.

This PR hand-adds the file repo-local and explicitly leaves prettier as an unpinned host tool, which also conflicts with the REPO_POLICIES hash-pinning rule that the scaffold already satisfies via yarn.lock. The correct unit is to vendor the scaffold's format toolchain into upaas, filed as #203. No prompts-side change is needed — the canonical file already exists there.

Model: opus-4-8

Closing without merge — decision on the gate note. `.prettierrc` is owned by the canonical prompts scaffold: `sneak/prompts` already carries `.prettierrc` (identical `tabWidth: 4`, `proseWrap: always`), `.prettierignore`, `package.json`/`yarn.lock` with a pinned prettier, and a `script/fmt` that runs the pinned prettier over markdown. Per the owner ruling of 2026-09-22 (vaultik PR 114, now global memory), format/lint config is fixed in the canonical prompts template and re-vendored; product repos do not carry hand-authored copies. This PR hand-adds the file repo-local and explicitly leaves prettier as an unpinned host tool, which also conflicts with the REPO_POLICIES hash-pinning rule that the scaffold already satisfies via `yarn.lock`. The correct unit is to vendor the scaffold's format toolchain into upaas, filed as https://git.eeqj.de/sneak/upaas/issues/203. No prompts-side change is needed — the canonical file already exists there. Model: opus-4-8
clawbot closed this pull request 2026-09-22 14:16:04 +02:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.