<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
  <title>ayeo news</title>
  <subtitle>What we plan to build, written before we build it.</subtitle>
  <link href="https://ayeo.io/news/feed.xml" rel="self" />
  <link href="https://ayeo.io/" />
  <updated>2026-10-24T00:00:00Z</updated>
  <id>https://ayeo.io/</id>
  <author>
    <name>ayeo</name>
  </author>
  <entry>
    <title>Compass 7.0.0: see what your agent decided before anything ships</title>
    <link href="https://ayeo.io/news/compass-7-0-0-document-set/" />
    <updated>2026-10-20T00:00:00Z</updated>
    <id>https://ayeo.io/news/compass-7-0-0-document-set/</id>
    <content type="html">&lt;p&gt;Before 7.0.0, a finished change could still list its spec and design as drafts, and nothing told you whether anyone had actually read them. If your agent settled a requirement on your behalf, you found out in the verification report, after the code was written.&lt;/p&gt;
&lt;p&gt;7.0.0 closes both gaps. Compass now keeps track of each document&#39;s status itself, refuses to ship anything that hasn&#39;t been accepted, and stops to show you what your agent decided before it builds anything.&lt;/p&gt;
&lt;figure class=&quot;ca&quot; id=&quot;compass-7-anim&quot;&gt;
  &lt;div class=&quot;ca-stage&quot;&gt;
    &lt;svg viewBox=&quot;0 0 640 380&quot; role=&quot;img&quot; aria-labelledby=&quot;ca-t ca-d&quot;&gt;
      &lt;title id=&quot;ca-t&quot;&gt;How Compass 7.0.0 checks the documents of a change&lt;/title&gt;
      &lt;desc id=&quot;ca-d&quot;&gt;intent.md, acceptance-criteria.md, requirements-review.md and technical-design.md move through the eight Compass stages, from assess to ship. Each gets a status as its stage ends, and acceptance-criteria.md waits for a human check. An agent decision waits at a checkpoint for confirmation. /compass:ship refuses a document awaiting approval until a person types /compass:approve, then the change ships with one release line.&lt;/desc&gt;
    &lt;/svg&gt;
  &lt;/div&gt;
  &lt;figcaption&gt;
    &lt;p class=&quot;ca-caption&quot; aria-hidden=&quot;true&quot;&gt;&lt;/p&gt;
    &lt;div class=&quot;ca-controls&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;ca-play&quot; aria-label=&quot;Play&quot;&gt;&lt;/button&gt;
      &lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;1000&quot; value=&quot;0&quot; aria-label=&quot;Animation position&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;ca-replay&quot; aria-label=&quot;Replay&quot;&gt;
        &lt;svg viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M3 12a9 9 0 1 0 3-6.7L3 8&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M3 3v5h5&quot;&gt;&lt;/path&gt;&lt;/svg&gt;
      &lt;/button&gt;
    &lt;/div&gt;
    &lt;ol class=&quot;ca-sr&quot;&gt;&lt;/ol&gt;
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;What was wrong&lt;/h2&gt;
&lt;p&gt;In 6.x, five things got in the way on shared projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Agents made calls you didn&#39;t see.&lt;/strong&gt; An agent could answer a requirement question for you, and you&#39;d only read about it once the code existed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Statuses never moved.&lt;/strong&gt; Nothing updated a document&#39;s status, so &amp;quot;draft&amp;quot; could mean unread or could mean done.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A hand-ticked box counted as proof.&lt;/strong&gt; Anyone could tick a box on the page, and Compass took it as evidence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Big designs were too big to review.&lt;/strong&gt; On the largest changes, the technical design grew past the point where anyone would read it closely.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Some things had nowhere to go.&lt;/strong&gt; There was no place for non-functional requirements, data and interface contracts, or a test plan.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What&#39;s new&lt;/h2&gt;
&lt;h3&gt;You see what your agent decided, before it writes code&lt;/h3&gt;
&lt;p&gt;When your agent makes a decision for you, Compass records it. On &lt;code&gt;balanced&lt;/code&gt; and &lt;code&gt;controlled&lt;/code&gt; autonomy, the agent stops at a checkpoint at the end of &lt;code&gt;/compass:define&lt;/code&gt; and &lt;code&gt;/compass:plan&lt;/code&gt; until you confirm each decision or reopen it. Later, &lt;code&gt;compass retro --decisions&lt;/code&gt; shows how many you confirmed, changed or never got to.&lt;/p&gt;
&lt;h3&gt;You approve from the session you&#39;re already in&lt;/h3&gt;
&lt;p&gt;Type &lt;code&gt;/compass:approve&lt;/code&gt; or &lt;code&gt;/compass:reject&lt;/code&gt; in Claude Code. No terminal, no context switch.&lt;/p&gt;
&lt;p&gt;If you&#39;d rather not be the bottleneck, &lt;code&gt;/compass:delegate&lt;/code&gt; lets one named agent approve for you, for up to 24 hours and only within the scope you set. You can see everything it approved afterwards. A delegation never covers the human sign-off on &lt;code&gt;auth&lt;/code&gt;, &lt;code&gt;payments&lt;/code&gt;, &lt;code&gt;personal-data&lt;/code&gt; or &lt;code&gt;migrations&lt;/code&gt; work unless you type back a code Compass shows you.&lt;/p&gt;
&lt;h3&gt;Every document has a status, and Compass checks it&lt;/h3&gt;
&lt;p&gt;Each stage now sets the status of the documents it produces. A document that needs no human check is &lt;code&gt;approved&lt;/code&gt; when its stage ends. One that does stays &lt;code&gt;awaiting-approval&lt;/code&gt; until a person signs it off.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/compass:ship&lt;/code&gt; won&#39;t ship a change while any of its documents is still a draft or waiting for approval, and it tells you which command clears it. Quick fixes skip the extra stop.&lt;/p&gt;
&lt;p&gt;Ticks, counts and statuses on the issue page now come from Compass&#39;s own records, not from what someone typed. &lt;code&gt;compass check&lt;/code&gt; fails a document that disagrees with them, and &lt;code&gt;compass issue render&lt;/code&gt; rebuilds the page.&lt;/p&gt;
&lt;h3&gt;Documents that are easier to review&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New sections where teams needed them.&lt;/strong&gt; The spec gets Non-functional requirements. The design gets Data and interfaces, Verification plan, and Risks and dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Every document starts the same way.&lt;/strong&gt; One header block, and headings without numbers, so leaving out an optional section doesn&#39;t leave a gap.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A short intent for regular changes.&lt;/strong&gt; Four headings: Problem, Desired outcome, Success signals and Non-goals. Regular changes also get a short requirements review, and hotfixes get a bug report.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Word limits on technical designs.&lt;/strong&gt; Each depth has a limit. On the full approach, the detail moves into one low-level design per work unit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A release line on every shipped change.&lt;/strong&gt; One sentence, written for your users. &lt;code&gt;compass release notes --since &amp;lt;ref&amp;gt;&lt;/code&gt; collects them, so your release notes start from what you already wrote.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Also in 7.0.0&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Readiness limits autonomy.&lt;/strong&gt; &lt;code&gt;compass readiness&lt;/code&gt; checks your repository against 11 signals. Before Compass accepts an &lt;code&gt;autonomous&lt;/code&gt; assessment, four of them must pass: agent instructions, a build that succeeds, tests that finish in under 2 minutes, and clean lint. &lt;code&gt;compass readiness --fix-list&lt;/code&gt; tells you what to change for each one that fails. &lt;code&gt;balanced&lt;/code&gt; and &lt;code&gt;controlled&lt;/code&gt; projects are never refused.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Issues can wait on other issues.&lt;/strong&gt; Add a dependency with &lt;code&gt;compass issue depends add&lt;/code&gt;. While it&#39;s open, the issue can&#39;t start implementation, and the board shows what it&#39;s waiting for. Spec and design aren&#39;t blocked, so you can get ahead on those.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The issue page on GitHub, if you want it.&lt;/strong&gt; Set &lt;code&gt;github_labels: {page: true}&lt;/code&gt; and Compass posts the issue page to the linked GitHub issue. It&#39;s off by default, because it shows your documents to everyone who can read that issue.&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;
&lt;h3&gt;New to Compass&lt;/h3&gt;
&lt;p&gt;Install it from inside Claude Code:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;/plugin marketplace add ayeo-io/compass
/plugin install compass@compass
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then type &lt;code&gt;/compass:go&lt;/code&gt; followed by the change you want to make. The &lt;a href=&quot;https://github.com/ayeo-io/compass/blob/main/docs/five-minutes.md&quot;&gt;five-minute walkthrough&lt;/a&gt; takes you through your first issue.&lt;/p&gt;
&lt;h3&gt;Upgrading from 6.x&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Copy your Compass folders before you upgrade.&lt;/strong&gt; There is no supported rollback of the issue migration. Copy &lt;code&gt;.compass/work&lt;/code&gt; and &lt;code&gt;docs/compass&lt;/code&gt; to a folder outside the project first.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Update every checkout and every installed plugin at the same time, and don&#39;t run a 6.x CLI on a 7.0.0 tree. If you have existing issues, follow the &lt;a href=&quot;https://github.com/ayeo-io/compass/blob/main/docs/upgrade-7-0-0.md&quot;&gt;7.0.0 upgrade guide&lt;/a&gt;. It lists every change, what breaks and what to do about it. The &lt;a href=&quot;https://github.com/ayeo-io/compass/releases/tag/v7.0.0&quot;&gt;release notes&lt;/a&gt; cover everything since 6.1.0.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Compass is coming to Codex</title>
    <link href="https://ayeo.io/news/compass-on-codex/" />
    <updated>2026-10-24T00:00:00Z</updated>
    <id>https://ayeo.io/news/compass-on-codex/</id>
    <content type="html">&lt;p&gt;Compass has only ever run in Claude Code. That&#39;s been fine if that&#39;s where you work. If your team is in Codex, or split between the two, it has meant Compass wasn&#39;t for you.&lt;/p&gt;
&lt;p&gt;That&#39;s changing. Compass now installs into a Codex project, and once it&#39;s there you work the way a Claude Code team does. Describe the change in one line, and Compass reads it for risk, familiarity, size and goal, picks an approach, and tells you what it will write and what it will check before anything ships.&lt;/p&gt;
&lt;h2&gt;The problem&lt;/h2&gt;
&lt;p&gt;Choose a coding agent and you&#39;ve chosen your process. While Compass only ran in Claude Code, a team in Codex couldn&#39;t have it, and a company using both ended up with two ways of shipping on one codebase. We don&#39;t think your choice of agent should decide how carefully you ship.&lt;/p&gt;
&lt;h2&gt;What&#39;s new&lt;/h2&gt;
&lt;p&gt;We didn&#39;t write a second Compass. The commands, the agents, the skills and the Python CLI are shared. Codex gets a small adapter on top: one entry skill, and a translation that turns Codex&#39;s hook events into the ones Compass already understands.&lt;/p&gt;
&lt;p&gt;In practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$compass:compass assess &amp;quot;Add rate limiting to the public API&amp;quot;&lt;/code&gt; starts the same assess stage that &lt;code&gt;/compass:assess&lt;/code&gt; starts in Claude Code. The other stages, from &lt;code&gt;define&lt;/code&gt; to &lt;code&gt;ship&lt;/code&gt;, follow the same way.&lt;/li&gt;
&lt;li&gt;A change leaves the same documents behind, in the same place, with the same statuses. The records are the same files whichever runtime wrote them.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;compass check&lt;/code&gt; and &lt;code&gt;compass ci&lt;/code&gt; run unchanged, so a pull request is judged the same way.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The hooks are where the two runtimes differ. Codex runs them only once you&#39;ve trusted them, and we haven&#39;t yet measured how they behave through a full native session. Rather than claim parity, we publish a &lt;a href=&quot;https://github.com/ayeo-io/compass/blob/main/docs/codex.md#control-support-by-runtime&quot;&gt;support table&lt;/a&gt; that says, control by control, what Codex enforces, what it advises on, and what it doesn&#39;t have.&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;
&lt;p&gt;Pin a Compass checkout at 7.0.0 or later and point the installer at your project:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;python3 adapters/codex/install.py --project /absolute/path/to/your/project
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Restart Codex, trust the project, then review and trust the hooks it installed with &lt;code&gt;/hooks&lt;/code&gt;. The &lt;a href=&quot;https://github.com/ayeo-io/compass/blob/main/docs/codex.md&quot;&gt;Codex guide&lt;/a&gt; explains what the installer adds, how to take it out again, and exactly what we have and haven&#39;t tested.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Compass for GitHub Copilot</title>
    <link href="https://ayeo.io/news/compass-github-copilot-plugin/" />
    <updated>2026-10-24T00:00:00Z</updated>
    <id>https://ayeo.io/news/compass-github-copilot-plugin/</id>
    <content type="html">&lt;p&gt;If your team&#39;s coding agent is GitHub Copilot, Compass hasn&#39;t been an option. We&#39;re changing that. Compass will install as a plugin for Copilot, in the app and in the CLI, and a change you make there will get the same treatment it gets in Claude Code: assessed first, given the process it needs, and checked before it ships.&lt;/p&gt;
&lt;h2&gt;The problem&lt;/h2&gt;
&lt;p&gt;Governance tools tend to arrive with a preferred tool built in. Compass has had one too: it only ran in Claude Code. That left Copilot teams out, and it meant a company that uses more than one agent couldn&#39;t have one way of shipping across all of them. We don&#39;t think your choice of agent should decide how carefully you ship.&lt;/p&gt;
&lt;h2&gt;What&#39;s new&lt;/h2&gt;
&lt;p&gt;Compass will install as a supported Copilot plugin, for local sessions in the Copilot app and the Copilot CLI. It&#39;s the same Compass: the same Python CLI, the same record on disk, the same policy. So:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;assess a change in Copilot and you get the approach the policy gives it, whichever agent you&#39;d have used;&lt;/li&gt;
&lt;li&gt;every change leaves the same documents behind, each with a status;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;compass check&lt;/code&gt; and &lt;code&gt;compass ci&lt;/code&gt; judge the pull request the same way.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We&#39;re building it the way we built the Codex adapter: one shared source for the commands, agents and skills, with a thin adapter for Copilot. Copilot lets a plugin step in at its own points, so we&#39;ll publish a support table that says, control by control, what Copilot enforces, what it advises on, and what it can&#39;t do.&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;
&lt;p&gt;Not yet. Codex comes first. After that, the first job on Copilot is a feasibility check: what can a plugin install, run and refuse? Then an install you can diagnose, then the stages, then the hooks and the evidence. We&#39;ll update this post as each step lands.&lt;/p&gt;
</content>
  </entry>
</feed>