Writing
Notes on decisions. X is still the feed.
On a keyboard, j and k move between rows once one is focused.
- Coming soonThis is Developer as Life, a brand new site by Tomás Maritano that's just getting started. Things will be up and running here shortly, but you can subscribe in
- Lead is not a status paradeStandup closes the day. Monday is grooming, then technical planning.
- A Lily58 is not a bigger Corne58 keys. Linear whites. QMK is the file.
- A scaffold is not a decisioncriterion new writes TypeScript. validate is a string scan. Do not import core.
- A run is not a clickrun(ctx, signal). Auto-advance on settle. Manual next is ignored while in flight.
- A span is not a reasoncreateTracedEngine wraps run. recordInput defaults off. explain is still the audit trail.
- An index is not a pathnext(ctx). hasTeam ? invite : null. Returning null ends the flow.
- A dead rule is not a rankingdetectDeadRules. After when: () => true, later ids never fire.
- The bar is not the CLIRadar in the bar. pass, qr, speed stay in the toolkit.
- The widget is not a radarWidgetKit reads a snapshot. It will not run lsof.
- A spec is not a decisionOperators compile to when. when: always is the default. explain is a description.
- The editor is not the engineHighlight, snippet, squiggle the object. Do not import core.
- sync-core is not a sync engineContracts and validateNotebookTree. Live sync is SyncService.
- The ABI is not the domainbetter-sqlite3 is one package. Core tests stay plain Node.
- The write port is not the indexget, save, delete. List and graph live on storage-core.
- GPL is not a codeccargo-deny in CI. avif-parse is the one MPL file.
- The popover is not the firehoseflow:start through context:update. Pipe onAny. Do not invent a tracker.
- An extension is not a forkregisterEditorExtension. The host reconfigures. Do not patch core.
- Wasm is not nativemozjpeg stays on the native path. PNG and AVIF still match.
- Packages are not a platformCore is a knife. Server, React, and MCP call it.
- The core has no clockNo fetch, no database, no Date.now. Pass the object.
- A profile is not a forkSame function. US and EU change the threshold, not the rule.
- First match winsRules run in order. The default is `when: () => true`.
- A reload is not a restartload, save, remove. Finished must not replay.
- The preview is not the fileThe editor keeps the URL. YouTube is a render.
- A checkbox is not a row`- [ ]` is Markdown. Aggregation is derived.
- Default is not a palettetokens.css is core. Named palettes are tarballs.
- A backlink is not a copy[[note title]] is Markdown. The graph is derived.
- Search is localOperators on this machine. An account is not a requirement.
- Tags are not the bodyNotebooks, status, and pin live beside the Markdown. They do not rewrite it.
- SSID is not freeLocation names the network. The radar does not need it.
- A recalc is not a new ingestFive named drivers. Status is the last pull, not a fake bar.
- A hack is not a packSettings → Hack is yours. A tarball is how you share.
- Signing in is not uploadingAuthGate is first launch. Don't Sync is valid. Ciphertext is optional.
- The renderer never sees SQLCore is operations. IPC is the contract. Storage is an adapter.
- The file is the exportRaw markdown is canonical. The AST is ephemeral.
- The note came first. The names came in one nightI named the jobs in the order the surfaces split.
- The radio is fineName the helper filling the pipe. Leave TLS sealed.
- Grok 4.6 in Cursor is not Grok BotOne loop lives in the repo. The other has a computer.
- A Corne is a 42-key contractLayers are the product. The PCB is just the case.
- The plugin is a git repoOne repo. A tag. A tarball. No store that holds the words.
- Plain files are easy to romanticizeSQLite is the source of truth. Sync is a later surface.
- How a report section is generatedIf gen and regen are two products, they drift.
- The engine is not the rendererA tooltip dies when the DOM changes. A state machine survives navigation.
- Byte-identical or it did not shipOne Rust core. Three languages. SHA-256 goldens in CI.
- The file has to stay readableLocal-first is the product. Markdown is not a cache.