<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Lazy Engineer&apos;s Tech Blog</title><description>Notes a lazy engineer keeps to cut down on trial and error — AI agents, Obsidian plugins, and dev tooling.</description><link>https://decipher99.com/</link><item><title>My AI agent fact-checked a blog draft against a memory summary and nearly rewrote a true story</title><link>https://decipher99.com/en/posts/agent-infra/ai-agent-fixed-blog-draft-from-memory-summary/</link><guid isPermaLink="true">https://decipher99.com/en/posts/agent-infra/ai-agent-fixed-blog-draft-from-memory-summary/</guid><description>I had an AI agent fact-check a blog draft, and it used its summary memory to change a correct anecdote into a wrong one. Raw Honcho conversation logs caught it.</description><pubDate>Wed, 28 Oct 2026 22:30:00 GMT</pubDate></item><item><title>Judging broken sentences with Decisions API and Jev gave four times the false positives</title><link>https://decipher99.com/en/posts/tool-review/decisions-api-jev-broken-sentence-judge-four-times-false-positives/</link><guid isPermaLink="true">https://decipher99.com/en/posts/tool-review/decisions-api-jev-broken-sentence-judge-four-times-false-positives/</guid><description>I had OpenAI Decisions API and Jev judge LLM-edited notes for broken sentences. They flagged ~4x more normal notes than gpt-6-luna; split questions backfired.</description><pubDate>Tue, 27 Oct 2026 23:05:02 GMT</pubDate></item><item><title>When an LLM removed duplicates from my notes, the remaining sentences lost what they pointed to</title><link>https://decipher99.com/en/posts/obsidian-plugin/llm-note-dedup-left-sentences-pointing-at-nothing/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/llm-note-dedup-left-sentences-pointing-at-nothing/</guid><description>Removing note duplicates with an LLM left &apos;this technology stack&apos; and &apos;also&apos; pointing at nothing. I stopped adding code rules and had an LLM judge each edit.</description><pubDate>Mon, 26 Oct 2026 20:40:44 GMT</pubDate></item><item><title>My LLM note-merge test passed, but the fixed code never ran once</title><link>https://decipher99.com/en/posts/obsidian-plugin/llm-note-merge-test-passed-but-fixed-code-never-ran/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/llm-note-merge-test-passed-but-fixed-code-never-ran/</guid><description>I fixed an LLM note-merge bug in my Obsidian plugin and reran it on real notes. It passed, but the fixed code never ran until I restored the pre-merge state.</description><pubDate>Mon, 26 Oct 2026 14:22:13 GMT</pubDate></item><item><title>I deleted the wrong example from my LLM note-merge rule, but the rule stayed</title><link>https://decipher99.com/en/posts/obsidian-plugin/deleted-the-wrong-example-but-the-merge-rule-stayed/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/deleted-the-wrong-example-but-the-merge-rule-stayed/</guid><description>My Obsidian plugin&apos;s LLM rule for merging duplicate notes blocked even same-product notes. I traced it, tested real merges, and adopted Karpathy&apos;s LLM Wiki.</description><pubDate>Sun, 25 Oct 2026 00:53:49 GMT</pubDate></item><item><title>Choosing a self-hosted Git server and CI/CD: GitLab, Gitea, OneDev and GitHub compared</title><link>https://decipher99.com/en/posts/tool-review/self-hosted-git-ci-gitlab-gitea-onedev-github/</link><guid isPermaLink="true">https://decipher99.com/en/posts/tool-review/self-hosted-git-ci-gitlab-gitea-onedev-github/</guid><description>With code that can&apos;t leave the company, I compared self-hosted GitLab, Gitea, OneDev and GitHub Enterprise Server on specs, SSO, approvals and cost.</description><pubDate>Sat, 24 Oct 2026 03:08:33 GMT</pubDate></item><item><title>In LLM summaries, a claim made once disappeared and one made twice survived</title><link>https://decipher99.com/en/posts/obsidian-plugin/llm-summary-dropped-once-survived-twice/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/llm-summary-dropped-once-survived-twice/</guid><description>Chasing an LLM summary that dropped a source&apos;s causal claim, I ruled out grammar and counterintuitiveness with controls. A claim stated once vanished.</description><pubDate>Fri, 23 Oct 2026 10:06:40 GMT</pubDate></item><item><title>I found a rule missing from the LLM merge prompt, and filling it in changed nothing</title><link>https://decipher99.com/en/posts/obsidian-plugin/missing-rule-in-llm-merge-prompt-made-no-difference/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/missing-rule-in-llm-merge-prompt-made-no-difference/</guid><description>Chasing an LLM note merge that dropped one source&apos;s content, I found the merge prompt lacked an information-density rule. Adding it changed nothing.</description><pubDate>Thu, 22 Oct 2026 14:00:00 GMT</pubDate></item><item><title>I was designing a guard against LLM note over-splitting and didn&apos;t see the one that already existed</title><link>https://decipher99.com/en/posts/obsidian-plugin/designing-an-over-split-guard-that-already-existed/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/designing-an-over-split-guard-that-already-existed/</guid><description>An LLM proposed splitting one note into five pieces of 20–30 words each. Designing a guard against over-splitting, I found one built the day before.</description><pubDate>Wed, 21 Oct 2026 11:30:00 GMT</pubDate></item><item><title>The code I carefully built to catch LLM language mixing turned out to have done nothing</title><link>https://decipher99.com/en/posts/obsidian-plugin/language-check-code-did-nothing/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/language-check-code-did-nothing/</guid><description>I built code to detect and fix Korean sentences leaking into LLM-written English notes. It fixed zero. The real cause was a prompt missing a language rule.</description><pubDate>Tue, 20 Oct 2026 12:03:02 GMT</pubDate></item><item><title>I tested my Obsidian plugin by remote-controlling Obsidian on another PC</title><link>https://decipher99.com/en/posts/obsidian-plugin/testing-obsidian-plugin-by-remote-controlling-another-pc/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/testing-obsidian-plugin-by-remote-controlling-another-pc/</guid><description>To test an Obsidian plugin in the real app before each release, I drove Obsidian on another PC over the Chrome DevTools Protocol (CDP), deploy to button clicks.</description><pubDate>Mon, 19 Oct 2026 14:33:31 GMT</pubDate></item><item><title>Splitting the question into three made the Decisions API as accurate as Luna</title><link>https://decipher99.com/en/posts/tool-review/decisions-api-three-questions-matched-luna/</link><guid isPermaLink="true">https://decipher99.com/en/posts/tool-review/decisions-api-three-questions-matched-luna/</guid><description>I tuned OpenAI Decisions API and Jev prompts per their docs. Split into three true/false questions, Decisions API got 36 of 37 pairs right; trimming input hurt.</description><pubDate>Sun, 18 Oct 2026 01:15:13 GMT</pubDate></item><item><title>OpenAI&apos;s Decisions API was fast, but it didn&apos;t fit my merge criteria</title><link>https://decipher99.com/en/posts/tool-review/openai-decisions-api-fast-but-wrong-fit/</link><guid isPermaLink="true">https://decipher99.com/en/posts/tool-review/openai-decisions-api-fast-but-wrong-fit/</guid><description>I compared OpenAI&apos;s Decisions API, Jev, and gpt-6-luna on merging duplicate notes. Decisions API was fastest, but confidently wrong on my multi-part rule.</description><pubDate>Sat, 17 Oct 2026 04:06:20 GMT</pubDate></item><item><title>Laptop 2&apos;s OpenAI reasoning effort turned out to be Medium</title><link>https://decipher99.com/en/posts/obsidian-plugin/laptop-2-openai-reasoning-effort-was-medium/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/laptop-2-openai-reasoning-effort-was-medium/</guid><description>The work laptop&apos;s OpenAI reasoning effort was the default Medium, confirming chunk size alone caused the LLM summary errors. The two are separate knobs.</description><pubDate>Wed, 14 Oct 2026 22:17:43 GMT</pubDate></item><item><title>Raising LLM request concurrency from 2 to 4 surfaced two other bugs</title><link>https://decipher99.com/en/posts/obsidian-plugin/raising-llm-request-concurrency-surfaced-two-other-bugs/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/raising-llm-request-concurrency-surfaced-two-other-bugs/</guid><description>Raising parallel LLM requests from 2 to 4 kept summary accuracy. The audit found missed Korean-English note merges and Korean headings on English notes instead.</description><pubDate>Wed, 14 Oct 2026 12:07:50 GMT</pubDate></item><item><title>I used embedding similarity to find out why Korean and English notes wouldn&apos;t merge</title><link>https://decipher99.com/en/posts/obsidian-plugin/why-korean-and-english-notes-would-not-merge-embedding-similarity/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/why-korean-and-english-notes-would-not-merge-embedding-similarity/</guid><description>Korean and English notes on one concept never merged. OpenAI embeddings put them at 0.77, below same-language duplicates; a 0.70 similarity threshold fixed it.</description><pubDate>Tue, 13 Oct 2026 11:00:15 GMT</pubDate></item><item><title>OpenAI reasoning effort wasn&apos;t the culprit behind the fidelity problems</title><link>https://decipher99.com/en/posts/obsidian-plugin/openai-reasoning-effort-was-not-the-fidelity-culprit/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/openai-reasoning-effort-was-not-the-fidelity-culprit/</guid><description>Lowering OpenAI reasoning effort from High to Medium didn&apos;t add LLM summary errors. Note count and run time changed a lot instead; chunk size governed accuracy.</description><pubDate>Mon, 12 Oct 2026 12:11:32 GMT</pubDate></item><item><title>Getting ready to rerun the experiment, git conflict markers got committed as-is</title><link>https://decipher99.com/en/posts/obsidian-plugin/git-conflict-markers-got-committed/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/git-conflict-markers-got-committed/</guid><description>Continuing a chunk-size experiment at home, alternating two laptops on one git repo committed conflict markers into 77 files. Then I suspected reasoning effort.</description><pubDate>Sun, 11 Oct 2026 00:03:16 GMT</pubDate></item><item><title>Just lowering the LLM chunk size made the fidelity problems go away</title><link>https://decipher99.com/en/posts/obsidian-plugin/lowering-llm-chunk-size-fixed-fidelity/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/lowering-llm-chunk-size-fixed-fidelity/</guid><description>I compared the same 30 sources changing only the chunk size, how many go to the LLM at once. Summary errors that drop people and quotes fell from 40% to 0%.</description><pubDate>Sat, 10 Oct 2026 10:17:54 GMT</pubDate></item><item><title>189 notes an LLM had organized became 63 one day</title><link>https://decipher99.com/en/posts/obsidian-plugin/189-llm-notes-became-63/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/189-llm-notes-became-63/</guid><description>I had an LLM turn the same 30 sources into Obsidian notes, and just switching machines cut them from 189 to 63. Not one cause, chunk size, but two settings.</description><pubDate>Fri, 09 Oct 2026 05:43:17 GMT</pubDate></item><item><title>I fixed the LLM prompt rule twice, but the note should never have been split</title><link>https://decipher99.com/en/posts/obsidian-plugin/fixed-the-llm-prompt-twice-should-not-have-split-the-note/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/fixed-the-llm-prompt-twice-should-not-have-split-the-note/</guid><description>An LLM-made sibling note kept coming out empty but for links. Two prompt fixes later, the source showed both courses shared one description: merge, don&apos;t split.</description><pubDate>Thu, 08 Oct 2026 13:54:36 GMT</pubDate></item><item><title>Reviewing OpenCode, I found only one of my three AI subscriptions works as-is</title><link>https://decipher99.com/en/posts/tool-review/opencode-only-one-of-three-subscriptions-works/</link><guid isPermaLink="true">https://decipher99.com/en/posts/tool-review/opencode-only-one-of-three-subscriptions-works/</guid><description>Before installing the open-source coding agent OpenCode, I checked my subscriptions: ChatGPT works as-is, Claude is barred by policy, Gemini access is gone.</description><pubDate>Tue, 06 Oct 2026 22:54:29 GMT</pubDate></item><item><title>Removing the embedding filter caught more duplicates, not fewer</title><link>https://decipher99.com/en/posts/obsidian-plugin/removing-the-embedding-filter-caught-more-duplicates/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/removing-the-embedding-filter-caught-more-duplicates/</guid><description>I swapped an embedding filter plus LLM checks for one LLM review of all sibling notes to catch duplication. One hub-note rule took precision from 55% to 100%.</description><pubDate>Tue, 06 Oct 2026 14:17:00 GMT</pubDate></item><item><title>I asked what ACP is, and found two protocols with the same acronym</title><link>https://decipher99.com/en/posts/tool-review/acp-two-protocols-same-acronym/</link><guid isPermaLink="true">https://decipher99.com/en/posts/tool-review/acp-two-protocols-same-acronym/</guid><description>The ACP seen next to MCP is the Agent Client Protocol, linking editors and AI coding agents. IBM&apos;s same-acronym protocol merged into A2A; ACP v2 is in draft.</description><pubDate>Sun, 04 Oct 2026 22:14:23 GMT</pubDate></item><item><title>Switching embedding models flipped the ranking</title><link>https://decipher99.com/en/posts/obsidian-plugin/switching-embedding-models-flipped-the-ranking/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/switching-embedding-models-flipped-the-ranking/</guid><description>Moving from OpenAI&apos;s text-embedding-3-small to large flipped the order of true duplicate paragraphs and look-alike sentences mixed at cosine 0.72-0.80.</description><pubDate>Sun, 04 Oct 2026 01:02:18 GMT</pubDate></item><item><title>LLM-generated sibling notes were copying the same paragraph word for word</title><link>https://decipher99.com/en/posts/obsidian-plugin/sibling-notes-copying-the-same-paragraph/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/sibling-notes-copying-the-same-paragraph/</guid><description>Testing my Obsidian plugin on real articles exposed an LLM bug: sibling notes copied the same paragraph verbatim, and embedding duplicate detection missed it.</description><pubDate>Fri, 02 Oct 2026 11:04:34 GMT</pubDate></item><item><title>I verified on a different pair and never rechecked the original case</title><link>https://decipher99.com/en/posts/obsidian-plugin/verified-on-a-different-pair-never-rechecked-the-original/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/verified-on-a-different-pair-never-rechecked-the-original/</guid><description>I fixed a false positive in my Obsidian plugin&apos;s LLM merge-judgment prompt and even closed the GitHub issues, but never retested the case that caused the false positive in the first place. Rerun days later under the real full-vault conditions, the judgment flipped, and actually performing the merge suggested the original call was likely wrong all along.</description><pubDate>Thu, 01 Oct 2026 09:20:03 GMT</pubDate></item><item><title>Of the 4 most list-heavy files, the subagent missed 2</title><link>https://decipher99.com/en/posts/obsidian-plugin/subagent-missed-2-of-4-list-heavy-files/</link><guid isPermaLink="true">https://decipher99.com/en/posts/obsidian-plugin/subagent-missed-2-of-4-list-heavy-files/</guid><description>A full audit I delegated to Claude Code subagents reported 2 of 56 files as CLEAN when they weren&apos;t. An A/B test on the prompt showed that on files dense with bullet lists, &apos;I read it all&apos; meant a skim rather than an item-by-item check, and a prompt that forces a checklist fixed it.</description><pubDate>Wed, 30 Sep 2026 09:14:38 GMT</pubDate></item><item><title>Wrong, but 90% confident</title><link>https://decipher99.com/en/posts/tool-review/wrong-but-90-percent-confident/</link><guid isPermaLink="true">https://decipher99.com/en/posts/tool-review/wrong-but-90-percent-confident/</guid><description>I tried Laya, the open-source reproduction of TypeSafe&apos;s Jev, on my Obsidian plugin&apos;s duplicate-note decisions (Jev itself only through its docs, since my account isn&apos;t open yet). I measured CPU speed, 78% accuracy, and what fine-tuning would take, and the real problem turned out to be broken calibration: confidence around 0.9 on wrong answers.</description><pubDate>Tue, 29 Sep 2026 11:40:17 GMT</pubDate></item></channel></rss>