Skip to content

RFC 0000: <a class="headerlink" href="#rfc-0000" title="Permanent link">¶</a></h1> <table> <thead> <tr> <th>Field</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>Status</td> <td>draft | accepted | rejected | superseded by RFC-NNNN</td> </tr> <tr> <td>Author(s)</td> <td></td> </tr> <tr> <td>Created</td> <td>YYYY-MM-DD</td> </tr> <tr> <td>Affects</td> <td>manifest schema | API | ruleset format | attestation predicate | other</td> </tr> </tbody> </table> <h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">¶</a></h2> <p>One paragraph. What changes, for whom.</p> <h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link">¶</a></h2> <p>What is broken or missing today. Concrete cases, not "it would be nice". If this is a security change, say what an attacker can do now that they could not before, or vice versa.</p> <h2 id="design">Design<a class="headerlink" href="#design" title="Permanent link">¶</a></h2> <p>The change in enough detail to implement. For anything that crosses a compatibility boundary, show the before and after:</p> <ul> <li><strong>Manifest / ruleset changes:</strong> the schema delta, and what happens to documents written against the old shape.</li> <li><strong>API changes:</strong> the OpenAPI delta. Within <code>/api/v1</code> this must be additive; anything breaking needs <code>/api/v2</code> and a migration story.</li> <li><strong>Attestation predicate changes:</strong> what old verifiers do with new envelopes, and what new verifiers do with old ones. Signatures already issued must keep verifying, forever.</li> </ul> <h2 id="compatibility-and-migration">Compatibility and migration<a class="headerlink" href="#compatibility-and-migration" title="Permanent link">¶</a></h2> <p>Who has to do what, and when. "Nobody has to do anything" is a valid and welcome answer; say it explicitly.</p> <h2 id="security-impact">Security impact<a class="headerlink" href="#security-impact" title="Permanent link">¶</a></h2> <p>Required for every RFC, even if the answer is "none". Consider: does this widen what a published agent can express? Does it add a path that could reach <code>published</code> without the gate? Does it change what a signature covers?</p> <h2 id="alternatives-considered">Alternatives considered<a class="headerlink" href="#alternatives-considered" title="Permanent link">¶</a></h2> <p>Including the option of doing nothing, and why it loses.</p> <h2 id="open-questions">Open questions<a class="headerlink" href="#open-questions" title="Permanent link">¶</a></h2> <p>Anything that needs a decision before this is implementable.</p> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type="button" class="md-top md-icon" data-md-component="top" hidden> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Back to top </button> </main> <footer class="md-footer"> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> <div class="md-copyright__highlight"> © 2026 Agentry </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": "../..", "features": ["navigation.instant", "navigation.tracking", "navigation.sections", "navigation.top", "content.code.copy", "search.suggest", "search.highlight"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src="../../assets/javascripts/bundle.83f73b43.min.js"></script> </body> </html>