Skip to content
Oak Dev-inter edited this page Apr 23, 2026 · 1 revision

v0.2.0 — UI Override Mode

Released: 2026-02 Theme: In legacy CSS, override beats audit. Cache is part of runtime.

TL;DR

Auditing a legacy CSS cascade is expensive and often wrong. v0.2.0 formalizes UI Override Mode — scope a fix with a unique class + !important, bump the cache query, ask the user to hard-refresh. One change per round. Domain detection routes UI missions to this flow separately from backend logic.

Why

Legacy codebases accumulate Bootstrap mods, custom CSS, inline styles, version pinning, specificity wars, and dead code that still loads. Reasoning about the cascade to make a "clean" fix consumes many rounds and often fails. When the bug is visible, overriding it is faster, safer, and more auditable than refactoring. This release is that realization, operationalized.

What's new

Domain detection

Triggers split the mission into a mode:

  • Backend / Logic / Data Mode (default) — API, SQL, algorithm, infrastructure
  • UI / CSS / Layout Mode — styling, spacing, alignment, color, font, "เพี้ยน", "ดูดี"

UI mode runs under UI Override Mode rules. Runtime judge is the user's eye.

UI Override Mode rules

Rule 1 — refuse vague missions.

If user says "ดูดี / สวย / เหมาะสม / ปรับ / เพี้ยน" without criteria, ask for:

  • Screenshot of current state
  • Specific target (screenshot / wireframe / CSS values)

Do not guess. Visual target is non-negotiable. (In v0.9.0, Claude Design mockup is added as a third valid target.)

Rule 2 — cache is part of runtime.

Every CSS/JS change:

  • Bump version query (?v=1.0.X)
  • Tell user: "Clear cache + hard refresh (Cmd+Shift+R / Ctrl+Shift+R)"
  • Ask user to confirm via DevTools that the new version loaded
  • Only then evaluate the fix

If user still sees old behavior after a change, suspect cache first, not the fix.

Rule 3 — override with scoped class + !important.

.kasidit-fix-<mission-id> <selector> {
  property: value !important;
}
  • Unique wrapper class prefixed kasidit-fix-
  • !important without guilt — documented exception
  • Do not refactor legacy CSS unless user asks

Rule 4 — one change per round.

  • One property
  • One selector
  • Bump version
  • Wait for screenshot

Multiple simultaneous changes make it impossible to tell what worked.

Rule 5 — UI counter is tighter.

  • Round 2 fail: stop guessing. Ask user to paste DevTools "Computed" panel.
  • Round 3 (Haiku) / Round 4 (Opus) fail: hand back to user.

Rule 6 — source-of-truth pattern copy.

When one element looks right and another does not, copy the exact CSS pattern from the good one. Do not invent new values.

Override-first strategy

When visible is known and the cascade is unclear, override > audit. Fewer rounds, cleaner diff, easier rollback. This is the strategic frame the rules enforce.

Backend domain behavior unchanged

Runtime for backend missions remains deterministic (curl / HTTP / DB query / stdout). UI Override Mode applies only when Domain = UI.

What changed vs v0.1.0

  • Added: Domain detection
  • Added: UI Override Mode (Rules 1–6)
  • Added: Cache protocol
  • Added: Override-first strategy

Breaking changes

None for backend. UI missions now require a visual target before any CSS work; vague asks refuse to proceed.

Migration

No action. On the next UI mission, the agent requests a target if the mission is vague.

See also

Kasidit

Core

Version History

Concepts

Commands

Agents

Deprecated v0.10 (stubs → audit-specialist --focus=..., removed in v0.11)

Clone this wiki locally