Skip to content

docs(agents): principles table — KISS, DRY, YAGNI, POLA - #69

Merged
ivanbanov merged 2 commits into
mainfrom
docs/principles-table
Aug 29, 2026
Merged

docs(agents): principles table — KISS, DRY, YAGNI, POLA#69
ivanbanov merged 2 commits into
mainfrom
docs/principles-table

Conversation

@ivanbanov

Copy link
Copy Markdown
Member

Adds a Principles section at the top of ## Code in AGENTS.md: a table holding every change to KISS, DRY, YAGNI, and POLA, each with a one-line meaning. Mirrors dunky-dev/ui#55 so the working contract is the same across the dunky repos.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dunky-state-machine Ready Ready Preview Aug 29, 2026 7:54am

Signed-off-by: Ivan Banov <ivanbanov@gmail.com>
@ivanbanov
ivanbanov merged commit 86f8228 into main Aug 29, 2026
6 of 8 checks passed
@ivanbanov
ivanbanov deleted the docs/principles-table branch August 29, 2026 07:54
ivanbanov added a commit that referenced this pull request Sep 5, 2026
Column padding was left over from the dropped POLA row (#69); oxfmt --check
failed on main because of it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ivanbanov added a commit that referenced this pull request Sep 5, 2026
…ions (#71)

* refactor(core): after timers join the send queue, drop pass-through hops

- `after` timers dispatch through `enqueue` like any send; the private
  flush cycle and the unreachable microtask branch in `dispatchAfter` are
  gone, and the stale check keeps only the entry generation
- `send` / `setContext` are class-field arrows; `doSend` and the `notify`
  wrapper are removed; the action host gets the bound fields directly
- one frozen `INIT_EVENT` instead of a fresh boot event per use
- `oneOf` picks its branch with a loop instead of `find`

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* perf(core): drop per-event allocations on the send path

- runActions / resolve run a single entry directly, no one-item array wrap
- resolve builds guard params lazily and takes the action host, so the
  per-event resolver closure and selectTransition fast path are gone
- action host and computed host hold the live ctx/computed objects; no
  getter call per read (computed proxy reads and stale() checks included)
- connector builds the connect() argument once; shallowEqual compares
  props with two for..in passes, no key arrays

Single event +7%, state churn +10%, guard fallthrough unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* refactor(core): one word for the queue lock — flush

`flushing` was the only "flush"; the method, the dev limit, the error text
and the spec all said "drain". Align on flush: `flushQueue`, `MAX_FLUSH`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* chore(docs): reflow the principles table in AGENTS.md

Column padding was left over from the dropped POLA row (#69); oxfmt --check
failed on main because of it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant