<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ai on imsj</title><link>https://imsj-blog.pages.dev/tags/ai/</link><description>Recent content in Ai on imsj</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 10 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://imsj-blog.pages.dev/tags/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>AI-assisted threat hunting with Wazuh and Claude Code</title><link>https://imsj-blog.pages.dev/posts/ai-assisted-threat-hunting-with-wazuh/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://imsj-blog.pages.dev/posts/ai-assisted-threat-hunting-with-wazuh/</guid><description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Stand up the Wazuh server/indexer/dashboard, enroll agents on every host
you care about, then let an AI agent (Claude Code) do the hunting: it queries the
Wazuh indexer through the dashboard&amp;rsquo;s search proxy with &lt;code&gt;curl&lt;/code&gt;, runs aggregations
mapped to MITRE ATT&amp;amp;CK tactics, and triages what&amp;rsquo;s noise vs. what&amp;rsquo;s real. The agent
is fast at the mechanical part — pivoting across source IPs, users, FIM changes,
process events — so you spend your time on judgement, not query syntax.&lt;/p&gt;</description></item><item><title>Control Claude Code with clear boundaries</title><link>https://imsj-blog.pages.dev/posts/control-claude-code/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate><guid>https://imsj-blog.pages.dev/posts/control-claude-code/</guid><description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Set &lt;code&gt;opusplan&lt;/code&gt; as your default model, then phrase every task as five
things — &lt;em&gt;what you want&lt;/em&gt;, &lt;em&gt;what must be preserved&lt;/em&gt;, &lt;em&gt;what must not be touched&lt;/em&gt;,
&lt;em&gt;how to approach it&lt;/em&gt;, and &lt;em&gt;what &amp;ldquo;done&amp;rdquo; means&lt;/em&gt;. You don&amp;rsquo;t need enormous prompts.
You need clear boundaries and a clear definition of done.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://imsj-blog.pages.dev/posts/control-claude-code/claude-code-best-practices.jpg"
			alt="Best practices for Claude Code documentation"&gt;&lt;figcaption&gt;
			&lt;p&gt;Anthropic&amp;rsquo;s &lt;a href="https://www.anthropic.com/engineering/claude-code-best-practices"&gt;Best practices for Claude Code&lt;/a&gt; guide.&lt;/p&gt;
		&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id="steps"&gt;Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Default to &lt;code&gt;opusplan&lt;/code&gt;.&lt;/strong&gt; Opus thinks and plans, Sonnet writes the code. It&amp;rsquo;s
the single easiest optimisation for larger coding tasks.&lt;/p&gt;</description></item></channel></rss>