<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Appendices on madtea</title><link>https://madtea.lol/docs/appendices/</link><description>Recent content in Appendices on madtea</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://madtea.lol/docs/appendices/index.xml" rel="self" type="application/rss+xml"/><item><title>API Compatibility</title><link>https://madtea.lol/docs/appendices/compat/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/appendices/compat/</guid><description>&lt;p&gt;&lt;strong&gt;What this answers:&lt;/strong&gt; &amp;ldquo;will this madtea feature work against my server?&amp;rdquo; — madtea features × the Gitea and Forgejo REST APIs — plus the maintainer view: tracking drift between the two platforms. The client-vs-client question (&amp;ldquo;which CLI covers what&amp;rdquo;) is a different axis and lives in &lt;a href="https://madtea.lol/docs/appendices/comparison/"&gt;COMPARISON.md&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;madtea targets Gitea API v1 as its single API surface (&lt;a href="https://madtea.lol/docs/adr/0017-standard-forge-api-target/"&gt;ADR 0017&lt;/a&gt;); Forgejo is supported through the Gitea-compatible API it maintains. Where Forgejo diverges, madtea detects the platform and surfaces the gap as a typed, explained error — see &lt;a href="#how-madtea-handles-divergence"&gt;How madtea handles divergence&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>CLI Comparison</title><link>https://madtea.lol/docs/appendices/comparison/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/appendices/comparison/</guid><description>&lt;p&gt;&lt;strong&gt;What this answers:&lt;/strong&gt; which client covers what, for someone — human or agent — picking a forge CLI. It compares madtea against the four relevant clients, feature by feature:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;gh&lt;/code&gt;&lt;/strong&gt; — the GitHub CLI, the Microsoft-backed benchmark everyone knows. gh cannot talk to a Forgejo/Gitea server at all; its column reads &amp;ldquo;gh offers this on its own forge&amp;rdquo; — the capability bar to clear, not an alternative client. gh is also madtea&amp;rsquo;s &lt;em&gt;naming yardstick&lt;/em&gt;: &lt;a href="https://madtea.lol/docs/adr/0016-gh-tea-vocabulary-parity/"&gt;ADR 0016&lt;/a&gt; makes gh-then-tea vocabulary a recorded, test-enforced rule (&lt;code&gt;internal/parity/&lt;/code&gt;), so gh muscle-memory lands on the right verb.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;glab&lt;/code&gt;&lt;/strong&gt; — GitLab&amp;rsquo;s official CLI. Like gh, it cannot talk to a Forgejo/Gitea server; its column reads &amp;ldquo;glab offers this on its own forge (GitLab)&amp;rdquo;. GitLab concepts are mapped to their forge equivalents (MR ≈ PR, pipeline ≈ Actions run, group ≈ org).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;tea&lt;/code&gt;&lt;/strong&gt; — Gitea&amp;rsquo;s official CLI. Same backend as madtea.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;fj&lt;/code&gt;&lt;/strong&gt; — forgejo-cli, the Forgejo-native community CLI. Same backend as madtea.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Server-side compatibility is a different question.&lt;/strong&gt; &amp;ldquo;Will this feature work against my Forgejo/Gitea server?&amp;rdquo; lives in &lt;a href="https://madtea.lol/docs/appendices/compat/"&gt;COMPAT.md&lt;/a&gt;, which owns the platform axis. A row below carries at most a terse pointer there.&lt;/p&gt;</description></item><item><title>Security Policy</title><link>https://madtea.lol/docs/appendices/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/appendices/security/</guid><description>&lt;h2 id="reporting-a-vulnerability"&gt;Reporting a vulnerability&lt;/h2&gt;
&lt;p&gt;If you find a security issue in madtea — credential leak, authentication bypass, code execution via crafted input, etc. — please report it privately rather than opening a public issue.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to report:&lt;/strong&gt; open a &lt;strong&gt;confidential issue&lt;/strong&gt; on the project tracker (Codeberg&amp;rsquo;s &amp;ldquo;confidential issues&amp;rdquo; feature). Include a brief description, reproduction steps if you have them, and the madtea version (&lt;code&gt;madtea --version&lt;/code&gt;).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pre-release:&lt;/strong&gt; madtea&amp;rsquo;s public Codeberg repo is not live yet. Until it is, report security issues privately by email to &lt;code&gt;security@sixfold.space&lt;/code&gt; instead of via the confidential-issue tracker.&lt;/p&gt;</description></item><item><title>Token Permissions</title><link>https://madtea.lol/docs/appendices/permissions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/appendices/permissions/</guid><description>&lt;p&gt;What scopes to enable on your Forgejo/Gitea personal-access token. For how madtea &lt;em&gt;stores&lt;/em&gt; that token and the credential-safety guarantees, see &lt;a href="https://madtea.lol/docs/safety/credential-safety/"&gt;the credential safety guide&lt;/a&gt;. For how to report a security issue, see &lt;a href="https://madtea.lol/docs/appendices/security/"&gt;the security policy&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="what-to-enable"&gt;What to enable&lt;/h2&gt;
&lt;p&gt;madtea works against three rough token tiers. Pick the smallest one that covers what you&amp;rsquo;ll do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Read-only&lt;/strong&gt; (browse, list, search):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;read:repository&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;read:issue&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;read:user&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Standard&lt;/strong&gt; (typical day-to-day: create PRs/issues, merge, comment, mark notifications read):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;read:repository&lt;/code&gt; + &lt;code&gt;write:repository&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;read:issue&lt;/code&gt; + &lt;code&gt;write:issue&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;read:notification&lt;/code&gt; + &lt;code&gt;write:notification&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;read:user&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full&lt;/strong&gt; (org administration, packages, webhooks, branch protection, admin domains):&lt;/p&gt;</description></item><item><title>Why madtea</title><link>https://madtea.lol/docs/appendices/why/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/appendices/why/</guid><description>&lt;p&gt;Other forge CLIs wrap the API. madtea wraps the workflow — and it is built on
the assumption that an AI agent with shell access may be driving it.&lt;/p&gt;
&lt;p&gt;This is the punch list: what madtea does that gh, tea, and raw API calls
don&amp;rsquo;t. Every claim below is verified against the source tree; where a
comparison against gh or tea is asserted, it is backed by the
&lt;a href="https://madtea.lol/docs/appendices/comparison/"&gt;CLI comparison&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="1-it-has-an-issue-graph-nobody-else-does"&gt;1. It has an issue graph. Nobody else does.&lt;/h2&gt;
&lt;p&gt;gh and tea have &lt;strong&gt;zero&lt;/strong&gt; dependency commands — this whole category is a
capability gap, not an ergonomics win.&lt;/p&gt;</description></item></channel></rss>