Sign in

Oliver Kriska

@quatermain.bsky.social
854 followers 508 following 79 posts

Father, Elixir developer mostly in Fintech/Payments. You want to know something, just ask. Only wrong question is which was not asked. Doing web development almost 20y from Slovakia

PostsRepliesMedia
Oliver Kriska @quatermain.bsky.social · 21/05/2026
Kumbukum looks as a nice service. Similar what I do in Scribe. I'm still thinking making output accessible also online and not only locally but I'm afraid of security. Looks like you handled it already, or not? :D good luck with your work
010
Oliver Kriska @quatermain.bsky.social · 21/05/2026
Thanks, also for all others, there is PR with a lot of information and would be nice to get feedback, ideas and so on about this automatic support for all main agents github.com/oliver-krisk...
github.com
Multi-agent port: Codex, OpenCode, Pi (v3.0.0) by oliver-kriska · Pull Request #46 · oliver-kriska/claude-elixir-phoenix
Summary Single source of truth in plugins/elixir-phoenix/; targets/codex/ is generated by scripts/port.py and checked in for Codex install. targets/{pi,opencode}/ are gitignored — built locally wi...
011
Oliver Kriska @quatermain.bsky.social · 21/05/2026
Full eval framework, autoresearch loop, and 22 Iron Laws are in github.com/oliver-kriska/claude-elixir-phoenix . If you maintain Claude Code skills, run a tournament on your descriptions before your next release. It costs less than a coffee and changes more than a feature. #ClaudeCode #ElixirLang
020
Oliver Kriska @quatermain.bsky.social · 21/05/2026
The descriptions the autoresearch loop landed on were ones I would never have written. Not because they were better English. Because they hit the user's vocabulary, which my brain — being the author — had stopped seeing.
110
Oliver Kriska @quatermain.bsky.social · 21/05/2026
Skill descriptions are interface design, not feature design. Your users do not read the implementation. They type a few words. The model reads a few sentences. If those two layers do not share vocabulary, the feature does not exist.
100
Oliver Kriska @quatermain.bsky.social · 21/05/2026
20+ iterations. 0 discards (every winner was kept). 100% win rate at the end. /phx:plan trigger recall: 0% → 100%. Across the whole plugin: tournament mode lifted trigger accuracy 50.5% → 78%. Total cost: $0.40.
110
Oliver Kriska @quatermain.bsky.social · 21/05/2026
So I built a loop. Generate 8 candidate descriptions. Test each against 50 user phrasings. Pick the winner. Then iterate on the winner. Pure tournament. Each round costs about $0.05 of API (but I used subscription)
100
Oliver Kriska @quatermain.bsky.social · 21/05/2026
First attempt: rewrite the description by hand. I am the author. I should know. Recall went from 0% to 18%. Worse — every rewrite I tried felt right but tested badly. I was guessing.
100
Oliver Kriska @quatermain.bsky.social · 21/05/2026
The skill description used technical vocabulary — "Phoenix planning workflow", "PRD generator". Users phrase their work as "build", "add", "make". When the user query and the skill description live in different vocabularies, recall is zero. The skill might as well not exist.
100
Oliver Kriska @quatermain.bsky.social · 21/05/2026
Before v2.6.0, the /phx:plan skill in my Claude Code plugin had a 0% trigger recall. Send "build a chat feature" to Haiku. It would never route to /phx:plan. The skill was good. The description was unfindable.
120
Oliver Kriska @quatermain.bsky.social · 21/05/2026
Most "AI memory" tools forget the failure path. The 3-week dead end nobody resolved — six months later you re-derive it from scratch in a different repo. scribe captures the failure too. Your agents stop starting from zero. getscribe.dev · github.com/oliver-kriska/scribe
100
Oliver Kriska @quatermain.bsky.social · 21/05/2026
Two ways to run it. Same pipeline, one YAML line: · Claude API — best quality, $ per sync · 100% local Ollama — $0/sync, gemma3:12b, ~70s for the weekly Dream cycle on a 32GB Mac Per-op overrides too: keep cheap passes local, pin heavy writes to Claude. No lock-in.
110
Oliver Kriska @quatermain.bsky.social · 21/05/2026
How it gathers data: · every Claude Code + Codex session (ccrider FTS5) · git commits across your repos · URLs you text yourself (iMessage bookmarks) · drop files Claude leaves in any repo BM25 picks the dense ones, two-pass LLM writes the wiki, qmd indexes it with embeddings.
100
Oliver Kriska @quatermain.bsky.social · 21/05/2026
I never write notes. My tools do. scribe reads my git commits, my Claude Code + Codex sessions, the links I text myself — and writes a wiki my next agent session queries. 6,977 docs in 4.5 months. Zero typed by hand. getscribe.dev #ClaudeCode #AI
Post image
120
Oliver Kriska @quatermain.bsky.social · 20/05/2026
Plus the multi-model trigger eval foundation: MODEL=sonnet make eval-multimodel MODELS=haiku,sonnet make eval-compare-models Per-model cache + N-way ASCII comparator with ↕/⚠ disagreement markers. Groundwork for verifying v3.0.0 multi-agent ports on non-Claude judges.
110
Oliver Kriska @quatermain.bsky.social · 20/05/2026
v2.10.3 — CC hook-API catch-up (2.1.110 / .139 / .145): · Stop hook surfaces forgotten `mix phx.server` + pending `/schedule` jobs · block-dangerous-ops emits structured JSON deny + safer-alternative additionalContext that persists into the next turn · SessionStart welcome → args[] exec form
100
Oliver Kriska @quatermain.bsky.social · 20/05/2026
v2.10.2 — /phx:research, /phx:brainstorm, /phx:perf, /phx:pr-review now reliably invoke when typed as slash commands (#53, reported by @bigardone). Root cause: stale `disable-model-invocation: true` hit claude-code#26251. Same fix plan/review/investigate got months ago.
100
Oliver Kriska @quatermain.bsky.social · 20/05/2026
2.10.1 — Cross-project hook bleed (#55). Enable the plugin globally and before this: Phoenix Iron Laws fired on tokenizer.cpp (token), /admin_panel/ parent-dir matches, unrelated repos. After: 9 hooks self-gate on mix.exs. Filename match tightened to .ex/.exs/.heex/.eex.
100
Oliver Kriska @quatermain.bsky.social · 20/05/2026
v2.10.1 → v2.10.3 of the Elixir/Phoenix plugin for Claude Code. Three patch releases, one theme: be a better citizen — global-install safe, slash commands reliable, hooks aligned with latest CC. 28 files | +635/-90 github.com/oliver-kriska/claude-elixir-phoenix #ElixirLang #ClaudeCode
Post image
150
Oliver Kriska @quatermain.bsky.social · 19/05/2026
Exactly. Try it out and let me know feedback so we can make it even better than first version
110
Oliver Kriska @quatermain.bsky.social · 19/05/2026
Graceful degradation is the contract: a missing source becomes 1 honest line in Risks, never an error. git log is the always-available floor. /ketchup is the easter-egg alias. Why not. github.com/oliver-kriska/claude-eli…
000
Oliver Kriska @quatermain.bsky.social · 19/05/2026
The bit github user druyang asked for and I'm proudest of: "Impact on your work" intersects files OTHERS moved upstream with YOUR in-flight scope (open PRs, local branches, working tree). Direct vs adjacent overlap, classified. --depth deep reads diffs for per-file semantic impact.
100
Oliver Kriska @quatermain.bsky.social · 19/05/2026
/catchup pulls in your time window: · GitHub: review-requests + notifications · Git: commits + diffs on branches that moved · Linear MCP: issues + comments touched · Google Calendar MCP: meetings you missed Then collapses into one Context Brief — not five tabs.
100
Oliver Kriska @quatermain.bsky.social · 19/05/2026
v2.10.0 of the Elixir/Phoenix plugin for Claude Code ships a second plugin alongside it: catchup — framework-agnostic, return-from-absence briefing for async teams. One /catchup, one prioritized brief. No firehose. phxagents.dev/install #ClaudeCode #DevTools
Post image
210
Oliver Kriska @quatermain.bsky.social · 17/05/2026
But yes, without AI it would be impossible. I have there skill for checking cc changelog and verify state of plugin, skill for creating twitter/x posts, etc
010
Oliver Kriska @quatermain.bsky.social · 17/05/2026
Later I added tool for investigating of previous sessions where I used those skills, testing those skills and also later multiple layers of evaluation. Also based on my sessions with building those skills and agents I built own skills to simplify the process.
110
Oliver Kriska @quatermain.bsky.social · 17/05/2026
I’m trying to set there workflows to gather some data and store only rules and docs which are stable. So you should not find there some exact api calls, mostly references and so on. Also I have “framework “ around it. I started with a few skill, added more…
110
Oliver Kriska @quatermain.bsky.social · 17/05/2026
Open-source. Working contributor guide in the repo. Tell me what is missing — especially if you maintain anything LiveView, Ecto, or Oban heavy. The next 22 Iron Laws will come from real production pain, not from me alone.
000
Oliver Kriska @quatermain.bsky.social · 17/05/2026
8-dimension eval framework. 24 Python matchers. 52 pytest tests. ~5 second CI run. Autoresearch loop ran 20+ iterations on skill descriptions. 0 discards. Tournament mode raised trigger accuracy 50.5% → 78% at $0.40 of API cost. This is the part nobody sees. It is also the only reason this scales.
100
Oliver Kriska @quatermain.bsky.social · 17/05/2026
Skills are slash commands. Agents are specialists you spawn for parallel work. Iron Laws are hard rules that block bad output before it ships. Hooks tie it together — 9 events fired, 18 scripts wired in. PostToolUse was silently broken for a month before session analysis caught it.
110
Oliver Kriska @quatermain.bsky.social · 17/05/2026
laude-elixir-phoenix at 4 months in. 41 skills · 20 specialist agents · 22 Iron Laws · 100 reference docs · 18 hooks. ~28,000 lines. Everything I have learned shipping production Phoenix apps, encoded as machine-readable rules. github.com/oliver-kriska/claude-elixir-phoenix
Post image
272
Oliver Kriska @quatermain.bsky.social · 15/05/2026
$8,523 of Claude Code over ~4.5 months. 11.9B tokens. 11.4B of them — 96% — are cache reads. That ratio is the whole story. The bill stays low not because the work is small, but because the harness reuses context instead of paying for it twice.
Post image
100
Oliver Kriska @quatermain.bsky.social · 15/05/2026
Let me know if you have some topics which you would like to see. Meanwhile you can check also tool which is responsible for it getscribe.dev
getscribe.dev
scribe — your knowledge base, written by your tools
A single-binary CLI that turns your git repos, Claude Code sessions, and self-sent links into a curated, semantically searchable wiki. Cross-project, cron-driven, fully local-capable.
011
Oliver Kriska @quatermain.bsky.social · 14/05/2026
Thanks, I will look into it
000
Oliver Kriska @quatermain.bsky.social · 14/05/2026
This is /phx:review on a real PR. The unlock is not "AI reviews code." It is orchestration + model-tiering + result compression — the shape Erlang/OTP gave us decades ago, applied to agents.
110
Oliver Kriska @quatermain.bsky.social · 14/05/2026
By design, the 7 agents do not dump raw output into the main session. Full per-agent findings persist on disk. A context-supervisor (haiku) can dedupe and compress them before the parent synthesises. You get depth when you need it, safe context when you don't
100
Oliver Kriska @quatermain.bsky.social · 14/05/2026
Each agent runs on the model that fits its job. security-analyzer → opus elixir-reviewer, liveview-architect, testing-reviewer, iron-law-judge, requirements-verifier → sonnet verification-runner → haiku You do not pay opus rates for `mix *` commands
100
Oliver Kriska @quatermain.bsky.social · 14/05/2026
7 specialist agents reviewing one PR in parallel. 37 files, +296 / −123. A real rewrite, not a toy diff. ~315k tokens, ~2 minutes wall time. Sequential would be ~11 minutes
Post image
130
Oliver Kriska @quatermain.bsky.social · 14/05/2026
11,000 PRs. 5 active developers. 26 contributors total. 5 years. Not because we are unusually fast. Because the pipeline is set up so that "is this safe to merge" is a 2-minute question, not a 2-hour one. Pipeline beats individual velocity, every quarter, forever. #SoftwareEngineering
041
Oliver Kriska @quatermain.bsky.social · 12/05/2026
METR, 2025: experienced devs using AI were 19% slower. They believed they were 24% faster. The IDE got faster. The pipeline did not. The brain definitely did not. That gap is where most of the AI productivity debate is happening — and almost no one is naming it. #AIEngineering
100
Oliver Kriska @quatermain.bsky.social · 11/05/2026
What's the one Elixir + AI question you've been afraid to ask - context engineering, production agent harnesses, anything? The next post is probably your answer. #AIEngineering #ContextEngineering
000
Oliver Kriska @quatermain.bsky.social · 11/05/2026
Expect more posts. Not more volume — more density. Each one backed by a real session, a real number, or a real failure. No takes. No slop.
100
Oliver Kriska @quatermain.bsky.social · 11/05/2026
For the past 4 months I have been quietly building a pipeline: more than 4,000 markdown documents of research, session logs, Phoenix patterns, and what I have actually shipped — all indexed, searchable. That is the input. The output starts this week.
220
Oliver Kriska @quatermain.bsky.social · 06/01/2025
If I take simple ping as a marker, I have 6ms to app.hey .com server (104.18.5.243).
010
Oliver Kriska @quatermain.bsky.social · 06/01/2025
I think Hey .com has this stack as well and it's really slow. Not sure if it's because I'm in east Europe but I'm really disappointed about it. And it's not because of HW or connection, 350 mbps Wifi or 500 mbps 5G connection. I hope native.live will be faster
native.live
LiveView Native
LiveView Native eliminates the need to maintain web and native development teams, empowering developers to build web and native seamlessly with Phoenix.
110
Reposted by Oliver Kriska
Pieter Claerhout @yellowduck.be · 25/12/2024
A good overview of things you really want to know about PostgreSQL by @hibachrach.com #database #postgresql #reading-list
challahscript.com
What I Wish Someone Told Me About Postgres
#database #postgresql #reading-list
0197
Oliver Kriska @quatermain.bsky.social · 21/12/2024
Hmm. I don’t get it, from year perspective 12k vs 50k. Or do you mean that this small cost can be lost in paperwork so you just forget about it same as Netflix subscription?
100
Oliver Kriska @quatermain.bsky.social · 21/12/2024
You can take these topics and invite some other developers from known companies to introduce them and discuss that topic. I started similar way podcast in my language.
000
Oliver Kriska @quatermain.bsky.social · 11/12/2024
There are some updates: "This release address by introducing a compiler lock, ensuring that only a single operating system running Elixir compiles your project at a given moment" github.com/elixir-lang/...
github.com
Release v1.18.0-rc.0 · elixir-lang/elixir
Elixir v1.18 is an impressive release with improvements across the two main efforts happening within the Elixir ecosystem right now: set-theoretic types and language servers. It also comes with bui...
010
Oliver Kriska @quatermain.bsky.social · 10/12/2024
oooh, that would be nice, any info about it?
100