<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:blog="https://jonesrussell.github.io/blog/ns"><channel><title>Giiken on Web Developer Blog</title><link>https://jonesrussell.github.io/blog/tags/giiken/</link><description>Recent content in Giiken on Web Developer Blog</description><image><title>Web Developer Blog</title><url>https://jonesrussell.github.io/blog/images/og-default.png</url><link>https://jonesrussell.github.io/blog/images/og-default.png</link></image><generator>Hugo -- 0.161.1</generator><language>en-us</language><lastBuildDate>Mon, 11 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jonesrussell.github.io/blog/tags/giiken/feed.xml" rel="self" type="application/rss+xml"/><item><title>Spec Kitty mission lifecycle: a domain modeling pass through Giiken</title><link>https://jonesrussell.github.io/blog/spec-kitty-mission-lifecycle/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://jonesrussell.github.io/blog/spec-kitty-mission-lifecycle/</guid><category>ai</category><blog:tag>spec-kitty</blog:tag><blog:tag>giiken</blog:tag><blog:tag>waaseyaa</blog:tag><blog:tag>ai</blog:tag><description>What a full Spec Kitty mission actually looks like end to end: spec, plan, tasks, implement, review, merge.</description><content:encoded><![CDATA[<p>Ahnii!</p>
<p>A lot of agent frameworks promise &ldquo;end to end&rdquo; workflows. Most of them stop at &ldquo;generate a plan and hope.&rdquo; Spec Kitty is different. It runs a real mission through a state machine, with artifacts on disk and gates between phases. This post walks one of those missions, <code>giiken-domain-modeling-01KR2HKT</code>, from spec to merge.</p>
<blockquote>
<p><strong>Context:</strong> Giiken is the community knowledge service built on Waaseyaa. The mission did discovery and docs for its domain model. Real commit: <a href="https://github.com/waaseyaa/giiken/commit/5b2328bf330b73bc1d999999bcc7cae02e2b1b6f"><code>waaseyaa/giiken@5b2328b</code></a>.</p>
</blockquote>
<h2 id="what-a-mission-actually-is">What &ldquo;a mission&rdquo; actually is</h2>
<p>A Spec Kitty mission is a directory under <code>kitty-specs/</code>, named with a slug and an ULID. After this mission landed, that directory looked like this:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>kitty-specs/giiken-domain-modeling-01KR2HKT/
</span></span><span style="display:flex;"><span>  spec.md
</span></span><span style="display:flex;"><span>  plan.md
</span></span><span style="display:flex;"><span>  research.md
</span></span><span style="display:flex;"><span>  data-model.md
</span></span><span style="display:flex;"><span>  meta.json
</span></span><span style="display:flex;"><span>  status.json
</span></span><span style="display:flex;"><span>  status.events.jsonl
</span></span><span style="display:flex;"><span>  mission-events.jsonl
</span></span><span style="display:flex;"><span>  checklists/
</span></span><span style="display:flex;"><span>    requirements.md
</span></span><span style="display:flex;"><span>  research/
</span></span><span style="display:flex;"><span>    evidence-log.csv
</span></span><span style="display:flex;"><span>    source-register.csv
</span></span></code></pre></div><p>That is not a generated artifact dump. Each file has a role in the state machine. <code>spec.md</code> is the contract. <code>plan.md</code> is the chosen approach. <code>research.md</code> plus the CSVs are the evidence trail. <code>status.json</code> and the two <code>.jsonl</code> files are the lane state and the audit log. The checklist is a hard gate, not a suggestion.</p>
<h2 id="the-phases">The phases</h2>
<p>The mission moved through these phases. Each one writes an artifact and emits a status event.</p>
<ol>
<li><strong>Specify.</strong> Compile a <code>spec.md</code> from the mission brief. Requirements get checklisted. Ambiguity gets surfaced before code touches the repo.</li>
<li><strong>Plan.</strong> Choose an approach in <code>plan.md</code>. Inputs from spec. Output is the shape of the work.</li>
<li><strong>Tasks.</strong> Break the plan into work packages (WPs). Each WP is independent enough to assign and review on its own.</li>
<li><strong>Implement.</strong> Each WP runs through implement and review until approved. State transitions go through the orchestrator, not by hand.</li>
<li><strong>Review.</strong> Per WP, against the spec. Reviewers can reject with structured feedback.</li>
<li><strong>Merge.</strong> Once every WP is approved, the mission squash-merges and the events log records the terminal state.</li>
</ol>
<p>The thing that makes this different from a long prompt is that every transition is gated. You can&rsquo;t move a WP to <code>approved</code> without a passing review. You can&rsquo;t merge with WPs still in flight. The agent is constrained to the shape of the state machine.</p>
<h2 id="what-this-mission-actually-produced">What this mission actually produced</h2>
<p>Beyond the kitty-specs directory, the merge commit added two architecture documents to the Giiken repo:</p>
<ul>
<li><code>docs/architecture/domain-model.md</code></li>
<li><code>docs/architecture/lifecycle.md</code></li>
</ul>
<p>And the implementation work in WP01 and WP02 left the data model migration-aligned, with PHPUnit and Vitest both green at merge time. Thirteen files in one squash commit, all traceable back to the spec.</p>
<p>The point is the trail. A reader six months from now can open <code>kitty-specs/giiken-domain-modeling-01KR2HKT/</code> and see: what was asked for, what was chosen, what evidence informed it, what got built, and which checks passed. That is a working memory you can hand to the next agent or the next human.</p>
<h2 id="why-this-matters-more-than-the-output">Why this matters more than the output</h2>
<p>The output of this mission is fine. Useful, even. But the output is replaceable. The trail is not.</p>
<p>If you have been around agent workflows for any length of time, you know the failure mode: an AI session ends, the context evaporates, and the next session has to reconstruct everything from the code. Spec Kitty inverts that. The mission directory <strong>is</strong> the persistent context. The next agent picks up the spec and the checklist, not a chat log.</p>
<p>That is the lifecycle proof: not &ldquo;an agent shipped code,&rdquo; but &ldquo;an agent moved through a structured workflow that another agent or human can audit, resume, or extend.&rdquo;</p>
<h2 id="try-it">Try it</h2>
<p>If you want to see one of these missions in your own repo, the easiest path is to install Spec Kitty and run <code>spec-kitty next --agent &lt;name&gt;</code> on a small scope. Pick something with a clear question, not a vague refactor. Discovery missions like this one are a good first try.</p>
<p>The commit for the mission described here is <a href="https://github.com/waaseyaa/giiken/commit/5b2328b"><code>waaseyaa/giiken@5b2328b</code></a>. The full mission directory is in that repo at <code>kitty-specs/giiken-domain-modeling-01KR2HKT/</code>.</p>
<p>Baamaapii</p>
]]></content:encoded></item></channel></rss>