Skip to content

Commit 08db625

Browse files
Merge pull request #42 from MinBZK/prototype-cleanup-2026-04
Prototype cleanup 2026 04
2 parents 82a8d67 + 2d9a657 commit 08db625

19 files changed

Lines changed: 388 additions & 357 deletions

File tree

.agents/skills/caveman/SKILL.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
name: caveman
3+
description: >
4+
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman
5+
while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra,
6+
wenyan-lite, wenyan-full, wenyan-ultra.
7+
Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens",
8+
"be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
9+
---
10+
11+
Respond terse like smart caveman. All technical substance stay. Only fluff die.
12+
13+
## Persistence
14+
15+
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: "stop caveman" / "normal mode".
16+
17+
Default: **full**. Switch: `/caveman lite|full|ultra`.
18+
19+
## Rules
20+
21+
Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Technical terms exact. Code blocks unchanged. Errors quoted exact.
22+
23+
Pattern: `[thing] [action] [reason]. [next step].`
24+
25+
Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
26+
Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
27+
28+
## Intensity
29+
30+
| Level | What change |
31+
|-------|------------|
32+
| **lite** | No filler/hedging. Keep articles + full sentences. Professional but tight |
33+
| **full** | Drop articles, fragments OK, short synonyms. Classic caveman |
34+
| **ultra** | Abbreviate (DB/auth/config/req/res/fn/impl), strip conjunctions, arrows for causality (X → Y), one word when one word enough |
35+
| **wenyan-lite** | Semi-classical. Drop filler/hedging but keep grammar structure, classical register |
36+
| **wenyan-full** | Maximum classical terseness. Fully 文言文. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其) |
37+
| **wenyan-ultra** | Extreme abbreviation while keeping classical Chinese feel. Maximum compression, ultra terse |
38+
39+
Example — "Why React component re-render?"
40+
- lite: "Your component re-renders because you create a new object reference each render. Wrap it in `useMemo`."
41+
- full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`."
42+
- ultra: "Inline obj prop → new ref → re-render. `useMemo`."
43+
- wenyan-lite: "組件頻重繪,以每繪新生對象參照故。以 useMemo 包之。"
44+
- wenyan-full: "物出新參照,致重繪。useMemo .Wrap之。"
45+
- wenyan-ultra: "新參照→重繪。useMemo Wrap。"
46+
47+
Example — "Explain database connection pooling."
48+
- lite: "Connection pooling reuses open connections instead of creating new ones per request. Avoids repeated handshake overhead."
49+
- full: "Pool reuse open DB connections. No new connection per request. Skip handshake overhead."
50+
- ultra: "Pool = reuse DB conn. Skip handshake → fast under load."
51+
- wenyan-full: "池reuse open connection。不每req新開。skip handshake overhead。"
52+
- wenyan-ultra: "池reuse conn。skip handshake → fast。"
53+
54+
## Auto-Clarity
55+
56+
Drop caveman for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after clear part done.
57+
58+
Example — destructive op:
59+
> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
60+
> ```sql
61+
> DROP TABLE users;
62+
> ```
63+
> Caveman resume. Verify backup exist first.
64+
65+
## Boundaries
66+
67+
Code/commits/PRs: write normal. "stop caveman" or "normal mode": revert. Level persist until changed or session end.

_site/moza/berichtenbox/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,10 +410,10 @@ <h1>Berichtenbox</h1>
410410
<div data-berichtenbox-toolbar>
411411
<p class="metadata"><span data-berichtenbox-counter-total>120</span> berichten uit <span data-berichtenbox-sources>12</span> bronnen, <span data-berichtenbox-counter-unread>12</span> ongelezen berichten.</p>
412412

413-
<label class="berichtenbox-search">
413+
<div class="berichtenbox-search">
414414
<label for="search-berichtenbox">Filter berichten</label>
415415
<input type="search" id="search-berichtenbox" data-berichtenbox-search-input placeholder="Filter op afzender of onderwerp" />
416-
</label>
416+
</div>
417417
</div>
418418

419419
<div class="berichtenbox-progress" data-berichtenbox-progress hidden role="status" aria-live="polite">

_site/moza/berichtenbox/pagina-2/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,10 +410,10 @@ <h1>Berichtenbox</h1>
410410
<div data-berichtenbox-toolbar>
411411
<p class="metadata"><span data-berichtenbox-counter-total>120</span> berichten uit <span data-berichtenbox-sources>12</span> bronnen, <span data-berichtenbox-counter-unread>12</span> ongelezen berichten.</p>
412412

413-
<label class="berichtenbox-search">
413+
<div class="berichtenbox-search">
414414
<label for="search-berichtenbox">Filter berichten</label>
415415
<input type="search" id="search-berichtenbox" data-berichtenbox-search-input placeholder="Filter op afzender of onderwerp" />
416-
</label>
416+
</div>
417417
</div>
418418

419419
<div class="berichtenbox-progress" data-berichtenbox-progress hidden role="status" aria-live="polite">

_site/moza/berichtenbox/pagina-3/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,10 +410,10 @@ <h1>Berichtenbox</h1>
410410
<div data-berichtenbox-toolbar>
411411
<p class="metadata"><span data-berichtenbox-counter-total>120</span> berichten uit <span data-berichtenbox-sources>12</span> bronnen, <span data-berichtenbox-counter-unread>12</span> ongelezen berichten.</p>
412412

413-
<label class="berichtenbox-search">
413+
<div class="berichtenbox-search">
414414
<label for="search-berichtenbox">Filter berichten</label>
415415
<input type="search" id="search-berichtenbox" data-berichtenbox-search-input placeholder="Filter op afzender of onderwerp" />
416-
</label>
416+
</div>
417417
</div>
418418

419419
<div class="berichtenbox-progress" data-berichtenbox-progress hidden role="status" aria-live="polite">

_site/moza/berichtenbox/pagina-4/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,10 +410,10 @@ <h1>Berichtenbox</h1>
410410
<div data-berichtenbox-toolbar>
411411
<p class="metadata"><span data-berichtenbox-counter-total>120</span> berichten uit <span data-berichtenbox-sources>12</span> bronnen, <span data-berichtenbox-counter-unread>12</span> ongelezen berichten.</p>
412412

413-
<label class="berichtenbox-search">
413+
<div class="berichtenbox-search">
414414
<label for="search-berichtenbox">Filter berichten</label>
415415
<input type="search" id="search-berichtenbox" data-berichtenbox-search-input placeholder="Filter op afzender of onderwerp" />
416-
</label>
416+
</div>
417417
</div>
418418

419419
<div class="berichtenbox-progress" data-berichtenbox-progress hidden role="status" aria-live="polite">

_site/moza/berichtenbox/pagina-5/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,10 +410,10 @@ <h1>Berichtenbox</h1>
410410
<div data-berichtenbox-toolbar>
411411
<p class="metadata"><span data-berichtenbox-counter-total>120</span> berichten uit <span data-berichtenbox-sources>12</span> bronnen, <span data-berichtenbox-counter-unread>12</span> ongelezen berichten.</p>
412412

413-
<label class="berichtenbox-search">
413+
<div class="berichtenbox-search">
414414
<label for="search-berichtenbox">Filter berichten</label>
415415
<input type="search" id="search-berichtenbox" data-berichtenbox-search-input placeholder="Filter op afzender of onderwerp" />
416-
</label>
416+
</div>
417417
</div>
418418

419419
<div class="berichtenbox-progress" data-berichtenbox-progress hidden role="status" aria-live="polite">

_site/moza/contactgegevens-wijzigen/index.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ <h2>Contactgegevens</h2>
392392
const icons = {
393393
info: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22.04 3.78c-.16-.95-.88-1.67-1.83-1.83-2.73-.45-7.3-.45-8.21-.45-.91 0-5.48 0-8.22.46-.94.15-1.67.88-1.82 1.82C1.5 6.52 1.5 11.09 1.5 12s0 5.48.46 8.22c.16.95.88 1.67 1.83 1.83 2.74.46 7.3.46 8.22.46.91 0 5.48 0 8.22-.46.95-.16 1.67-.88 1.83-1.83.46-2.74.46-7.3.46-8.22-.02-2.74-.02-5.48-.48-8.22z"/><path class="icon-color-inverse" d="M10.71 6.93c0-.34.11-.63.33-.88.22-.25.54-.38.95-.38.41 0 .72.12.94.36.22.24.33.54.33.9 0 .32-.11.61-.33.86s-.54.37-.94.37c-.41 0-.72-.12-.95-.35-.22-.24-.33-.53-.33-.88zm2.4 2.39v8.96H10.9V9.41l2.21-.09z"/></svg>`,
394394
succes: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22.04 3.78c-.16-.95-.88-1.67-1.83-1.83-2.73-.45-7.3-.45-8.21-.45-.91 0-5.48 0-8.22.46-.95.15-1.67.87-1.82 1.82C1.5 6.52 1.5 11.09 1.5 12s0 5.48.46 8.22c.16.95.88 1.67 1.83 1.83 2.74.46 7.3.46 8.22.46.91 0 5.48 0 8.22-.46.95-.16 1.67-.88 1.83-1.83.46-2.74.46-7.3.46-8.22-.02-2.74-.02-5.48-.48-8.22z"/><path class="icon-color-inverse" d="M16.5 7.35a.755.755 0 0 0-1.01.1l-4.4 4.95-2.65-2.3a.743.743 0 0 0-.97 0c-.28.24-.35.65-.16.97l3.2 5.38c.14.23.38.37.64.37s.51-.14.64-.36l4.89-8.09c.21-.35.13-.78-.18-1.02z"/></svg>`,
395-
error: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10.5"/><path class="icon-color-inverse" d="M15.12 7.71 12 10.48 8.88 7.71a.858.858 0 0 0-1.15.02c-.3.32-.31.81-.02 1.14L10.48 12l-2.77 3.12c-.29.33-.29.83.02 1.14.32.3.81.31 1.14.02L12 13.52l3.12 2.77c.33.29.83.28 1.14-.02.3-.32.31-.81.02-1.14L13.52 12l2.77-3.12c.29-.33.29-.83-.02-1.14a.848.848 0 0 0-1.15-.03z"/></svg>`,
395+
error: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle fill="currentColor" cx="12" cy="12" r="10.5"/><path class="icon-color-inverse" d="M15.12 7.71 12 10.48 8.88 7.71a.858.858 0 0 0-1.15.02c-.3.32-.31.81-.02 1.14L10.48 12l-2.77 3.12c-.29.33-.29.83.02 1.14.32.3.81.31 1.14.02L12 13.52l3.12 2.77c.33.29.83.28 1.14-.02.3-.32.31-.81.02-1.14L13.52 12l2.77-3.12c.29-.33.29-.83-.02-1.14a.848.848 0 0 0-1.15-.03z"/></svg>`,
396396
warning: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.38 19.64 13.67 2.47c-.73-1.3-2.6-1.3-3.34 0L.62 19.64c-.72 1.28.2 2.86 1.67 2.86h19.43c1.46 0 2.38-1.58 1.66-2.86z"/><path fill="none" class="icon-color-inverse" d="M10.54 17.45c0-.44.12-.82.36-1.12.24-.31.6-.46 1.09-.46.48 0 .85.14 1.1.4.25.27.38.66.38 1.18 0 .43-.12.8-.36 1.09-.24.29-.6.44-1.09.44-.48 0-.85-.13-1.1-.39-.25-.25-.38-.63-.38-1.14zm.31-10.27 2.48-.2-.22 5.51v2.63l-2.27.05V7.18z"/></svg>`,
397397
};
398398

@@ -459,13 +459,13 @@ <h2>Contactgegevens</h2>
459459
verifyBlock.id = "verify-row";
460460
verifyBlock.innerHTML = `
461461
<label for="verify-code-1">Verificatiecode</label>
462-
<div class="code-input" role="group">
463-
<input type="text" id="verify-code-1" class="verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" autocomplete="one-time-code" aria-required="true" aria-describedby="verify-code-feedback" />
464-
<input type="text" class="verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 2" />
465-
<input type="text" class="verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 3" />
466-
<input type="text" class="verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 4" />
467-
<input type="text" class="verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 5" />
468-
<input type="text" class="verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 6" />
462+
<div class="verificationcode-input" role="group">
463+
<input type="text" id="verify-code-1" class="verificationcode-verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" autocomplete="one-time-code" aria-required="true" aria-describedby="verify-code-feedback" />
464+
<input type="text" class="verificationcode-verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 2" />
465+
<input type="text" class="verificationcode-verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 3" />
466+
<input type="text" class="verificationcode-verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 4" />
467+
<input type="text" class="verificationcode-verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 5" />
468+
<input type="text" class="verificationcode-verify-digit" maxlength="1" inputmode="numeric" pattern="[0-9]" aria-label="Cijfer 6" />
469469
</div>
470470
<div id="verify-code-feedback">
471471
<div class="feedback feedback-info">
@@ -485,7 +485,7 @@ <h2>Contactgegevens</h2>
485485
<button type="button" class="secondary" id="verify-cancel">Annuleren</button>
486486
`;
487487

488-
const digits = verifyBlock.querySelectorAll(".verify-digit");
488+
const digits = verifyBlock.querySelectorAll(".verificationcode-verify-digit");
489489
const verifyFeedback = document.getElementById("verify-code-feedback");
490490
digits[0].focus();
491491

_site/style/_rijkshuisstijl.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@
183183
--rijkshuisstijl-space-80: 5rem;
184184
--rijkshuisstijl-space-base: 0.5rem; /** Base spacing-size for calculation. Defaults to 8 to follow 8px grid. */
185185
--rijkshuisstijl-text-font-family-default: rijkssansvf; /** Rijksoverheid Sans variable font */
186+
--rijkshuisstijl-text-font-family-monospace: monaco, consolas, "Lucida Console", monospace;
186187
--rijkshuisstijl-text-font-size-2xl: 1.5rem;
187188
--rijkshuisstijl-text-font-size-2xs: 0.6667rem;
188189
--rijkshuisstijl-text-font-size-3xl: 2rem;

0 commit comments

Comments
 (0)