<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture on Gokin</title><link>https://gokin.ginkida.dev/docs/architecture/</link><description>Recent content in Architecture on Gokin</description><generator>Hugo</generator><language>en</language><atom:link href="https://gokin.ginkida.dev/docs/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Multi-Agent System</title><link>https://gokin.ginkida.dev/docs/architecture/agents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gokin.ginkida.dev/docs/architecture/agents/</guid><description>&lt;p&gt;Gokin uses a multi-agent architecture with 5 built-in agent types, task delegation, and inter-agent communication.&lt;/p&gt;
&lt;h2 id="agent-types"&gt;Agent Types&lt;a class="anchor" href="#agent-types"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;th&gt;Tools&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;explore&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Codebase exploration&lt;/td&gt;
 &lt;td&gt;read, glob, grep, tree, list_dir, tools_list, request_tool, ask_agent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;bash&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Command execution&lt;/td&gt;
 &lt;td&gt;bash, read, glob, tools_list, request_tool, ask_agent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;general&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Full access&lt;/td&gt;
 &lt;td&gt;All tools (unrestricted)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;plan&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Task planning&lt;/td&gt;
 &lt;td&gt;read, glob, grep, tree, list_dir, diff, todo, web_fetch, web_search, ask_user, env, tools_list, request_tool, ask_agent, enter_plan_mode, exit_plan_mode, update_plan_progress, get_plan_status&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;claude-code-guide&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Documentation &amp;amp; guides&lt;/td&gt;
 &lt;td&gt;glob, grep, read, web_fetch, web_search, tools_list, request_tool, ask_agent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="agent-lifecycle"&gt;Agent Lifecycle&lt;a class="anchor" href="#agent-lifecycle"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pending → running → completed | failed | cancelled&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="custom-agent-types"&gt;Custom Agent Types&lt;a class="anchor" href="#custom-agent-types"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Create a new type via slash command:&lt;/p&gt;</description></item><item><title>Memory &amp; Context</title><link>https://gokin.ginkida.dev/docs/architecture/memory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gokin.ginkida.dev/docs/architecture/memory/</guid><description>&lt;p&gt;Gokin implements a three-level memory system and intelligent context management.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="memory-types"&gt;Memory Types&lt;a class="anchor" href="#memory-types"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Scope&lt;/th&gt;
 &lt;th&gt;Lifetime&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Current session&lt;/td&gt;
 &lt;td&gt;Until session ends&lt;/td&gt;
 &lt;td&gt;Temporary notes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Project&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Current project&lt;/td&gt;
 &lt;td&gt;Persistent&lt;/td&gt;
 &lt;td&gt;Project knowledge&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Global&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;All projects&lt;/td&gt;
 &lt;td&gt;Persistent&lt;/td&gt;
 &lt;td&gt;General preferences&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="entry-structure"&gt;Entry Structure&lt;a class="anchor" href="#entry-structure"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Entry {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ID &lt;span style="color:#8be9fd"&gt;string&lt;/span&gt; &lt;span style="color:#6272a4"&gt;// SHA256: &amp;#34;mem_&amp;#34; + hash[:8]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Key &lt;span style="color:#8be9fd"&gt;string&lt;/span&gt; &lt;span style="color:#6272a4"&gt;// Optional key for lookup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Content &lt;span style="color:#8be9fd"&gt;string&lt;/span&gt; &lt;span style="color:#6272a4"&gt;// Memory content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Type MemoryType &lt;span style="color:#6272a4"&gt;// session, project, global&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Tags []&lt;span style="color:#8be9fd"&gt;string&lt;/span&gt; &lt;span style="color:#6272a4"&gt;// Auto-extracted tags&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Timestamp time.Time
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Project &lt;span style="color:#8be9fd"&gt;string&lt;/span&gt; &lt;span style="color:#6272a4"&gt;// Project identifier (path hash)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="auto-tagging"&gt;Auto-Tagging&lt;a class="anchor" href="#auto-tagging"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Tags are automatically extracted from content:&lt;/p&gt;</description></item><item><title>Security</title><link>https://gokin.ginkida.dev/docs/architecture/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gokin.ginkida.dev/docs/architecture/security/</guid><description>&lt;p&gt;Gokin implements a multi-layered security system: permissions, sandbox, command validation, audit, and file protection.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="permission-system-3-levels"&gt;Permission System (3 Levels)&lt;a class="anchor" href="#permission-system-3-levels"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Level&lt;/th&gt;
 &lt;th&gt;Behavior&lt;/th&gt;
 &lt;th&gt;Tools&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;RiskLow&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Auto-approved&lt;/td&gt;
 &lt;td&gt;read, glob, grep, tree, diff, env, list_dir, git_status, git_log, git_diff, git_blame, web_search, web_fetch, ask_user, memory, code_graph, semantic_search, history_search, task_output, task_stop, todo&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;RiskMedium&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Ask once, then auto-approve&lt;/td&gt;
 &lt;td&gt;write, edit, git_add, copy, move, mkdir, task, batch&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;RiskHigh&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Ask every time&lt;/td&gt;
 &lt;td&gt;bash, delete, git_commit, ssh&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="user-decisions"&gt;User Decisions&lt;a class="anchor" href="#user-decisions"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Decision&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Allow&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Allow once&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;AllowSession&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Allow for the entire session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Deny&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Deny once&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;DenySession&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Deny for the entire session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;RiskMedium tools are automatically approved after the first &lt;code&gt;Allow&lt;/code&gt; until session end (stored in &lt;code&gt;autoApprovedTools&lt;/code&gt;).&lt;/p&gt;</description></item></channel></rss>