{
  "markdown": "# `matcha`\n\n```text\n                             ) )\n                            ( (\n                         .---------.\n                         |         |\\     █▀▄▀█ ▄▀▀▄ ▀▀█▀▀ ▄▀▀▀ █  █ ▄▀▀▄ \n                         |         | |    █ ▀ █ █▄▄█   █   █    █▀▀█ █▄▄█\n                         |         | |    ▀   ▀ ▀  ▀   ▀   ▀▀▀▀ ▀  ▀ ▀  ▀\n                         |         |/\n                          \\_______/              抹 茶\n```\n\n*For when you don't follow what Claude just told you about your own PR.*\n\nA Claude Code skill that adapts how Claude writes for you: the level of English, the\ndomain knowledge it assumes, and the amount of professional jargon — never the facts.\n\n## Install\n\n**Claude Code** — from the CLI (or in a session, drop `claude` and use `/plugin …`):\n\n```bash\nclaude plugin marketplace add jaysonmulwa/matcha\nclaude plugin install matcha@matcha\n```\n\nAdds `/matcha:matcha`. A SessionStart hook applies your level each session;\n`/plugin update` keeps it current.\n\n**Or copy it by hand** — commands stay bare `/matcha`, and you update it yourself:\n\n```bash\ngit clone https://github.com/jaysonmulwa/matcha\ncp -r matcha/skills/matcha ~/.claude/skills/\n```\n\n<details>\n<summary>Codex, Cursor, Windsurf, Cline, Kiro, Gemini, OpenCode</summary>\n\nThese get matcha's **request-driven half** only — the grid, the five levels, the\nfidelity rules. The *persistent* level (`set`) is Claude-Code-only; here you name the\nlevel per request. Rules are one shared body (`AGENTS.md` canonical, vendor files\nmirror it).\n\n**Codex** — from the CLI:\n\n```bash\ncodex plugin marketplace add jaysonmulwa/matcha\ncodex plugin add matcha@matcha\n```\n\n**Others** — copy the file your tool reads into your project:\n\n| Tool | File |\n|---|---|\n| Cursor | `.cursor/rules/matcha.mdc` |\n| Windsurf | `.windsurf/rules/matcha.md` |\n| Cline | `.clinerules/matcha.md` |\n| Kiro | `.kiro/steering/matcha.md` |\n| Gemini CLI · OpenCode | `AGENTS.md` |\n</details>\n\n## Use\n\n```\n/matcha set plain          # any of the five levels — persists across sessions\n/matcha rewrite familiar   # one-shot, config untouched\n/matcha status             # check what's configured\n/matcha set off            # remove everything it wrote\n```\n\n(Prefix with `matcha:` if you installed the plugin — `/matcha:matcha set plain`.)\n\nInert until you `set` a level. `set` writes two files: `~/.claude/matcha.md` and a\nmarker-delimited block in `~/.claude/CLAUDE.md`. Nothing outside the markers is\ntouched, and `set off` removes both.\n\nNo level needed for one-shots — just ask: *\"simplify this\"*, *\"rewrite for my exec\"*.\n\n## The five levels\n\n| Level | English | Domain framing |\n|---|---|---|\n| `basic` | ≤14 words/sentence, ~1,000 common words | mechanisms explained, every term glossed |\n| `plain` | ≤20 words/sentence, everyday vocabulary | mechanisms explained, obscure terms glossed |\n| `full` | uncapped | mechanisms explained, terms glossed |\n| `familiar` | uncapped | mechanism in one clause |\n| `expert` | uncapped | terms used directly, internals shown, terse, no analogies |\n\nYour default sits around `familiar`.\n\n## The grid\n\nThe grid is the idea the whole skill rests on. Two knobs, independent of each other:\n\n- **linguistic** — can the reader parse the English?\n- **conceptual** — do they know the domain?\n\n**Across, conceptual difficulty rises.** **Down, linguistic difficulty rises.** The\nfive levels are an L-shaped path through the grid — ①②③ raise the English, ③④⑤ drop\nthe hand-holding.\n\n| | novice | familiar | expert |\n|---|---|---|---|\n| **basic** | ① `basic` | · | · |\n| **plain** | ② `plain` | · | · |\n| **full** | ③ `full` → | ④ `familiar` → | ⑤ `expert` |\n\nThe `·` cells are real, just off the ladder: low English, high domain knowledge — an\nL2 engineer who wants short sentences and no hand-holding. Ask for them in words:\n*\"short sentences, but assume I know Kubernetes.\"*\n\n### One statement, all nine cells\n\nThe grid below renders the same PR summary in every cell — across, the reader is\nassumed to know more; down, the English gets harder.\n\n> A Redis cache on `/auth/token`, TTL 5 minutes, DB fallback on miss, invalidated on\n> password change, *intended* to cut DB load and latency (not measured).\n\n| | **novice** | **familiar** | **expert** |\n|---|---|---|---|\n| **basic** | \"Logins should get faster. The app now saves recent login checks for a short time, so it does not repeat slow work. If you change your password, the saved check is cleared.\" | \"We added a cache (a fast, short-term memory store) for login checks. Repeat logins can skip the database for up to 5 minutes. A password change clears the cached entry.\" | \"Added Redis cache on `/auth/token`. TTL 5 min. DB path kept as fallback on miss. Invalidation on password change. Goal: lower DB load and login latency.\" |\n| **plain** | \"Login speed should improve. The system now keeps recent login results on hand for a few minutes instead of recomputing them each time. Changing your password clears the stored result, so old credentials can't be reused.\" | \"Auth responses are now cached in Redis for 5 minutes, so repeated logins skip the database lookup. Cache entries are invalidated on password change, and the database path remains as fallback.\" | \"Redis cache added on `/auth/token`, 5-min TTL, DB fallback on miss, invalidation on password change. Motivation: DB load and p-latency reduction — intended, not yet measured.\" |\n| **full** | \"Login latency should drop: the endpoint now retains recent verification results for five minutes rather than recomputing them on every request. A password change immediately clears the retained result, so revoked credentials cannot ride on a stale entry.\" | \"The auth endpoint now employs a Redis-backed cache (5-minute TTL) that eliminates redundant database round-trips for repeat authentications; entries are invalidated on password change and the database path is preserved as fallback.\" | \"Introduced a Redis cache on `/auth/token`: 5-min TTL, database fallback on miss, invalidation on credential change. Expected effect is reduced DB load and login latency; no benchmark accompanies the PR.\" |\n\n### Walking one concept down the ladder\n\nThe grid above shows every cell at once. This shows the exact commands — start strict,\nthen get easier. Explaining Byzantine fault tolerance: *keeps a system correct when\nsome parts fail or lie · needs more than two-thirds of parts honest (the `3f+1` rule) ·\nused in blockchains and flight control.*\n\n```\n/matcha set expert\n```\n> BFT: consensus under arbitrary node behavior, not just crash-stop. Safety holds for `f` faulty of `n ≥ 3f+1` (the PBFT bound). Contrast Raft/Paxos, which assume `n ≥ 2f+1` and no lying.\n\n```\n/matcha rewrite plain\n```\n> Byzantine fault tolerance lets a distributed system agree even when some nodes fail arbitrarily — crashing, or sending conflicting information. It tolerates up to `f` bad nodes given at least `3f+1` total, i.e. over two-thirds honest.\n\n```\n/matcha rewrite basic\n```\n> Byzantine fault tolerance keeps a system working when some parts fail or lie. Think of generals who must agree while some send false orders. *(That's an analogy, not the real thing.)* The honest parts still reach one decision — as long as more than two-thirds stay honest.\n>\n> **Couldn't simplify:** the exact rule `n ≥ 3f+1` and the names PBFT / Raft / Paxos — kept as-is rather than rounded into something false.\n\nThe analogy shows up only at `basic` and is flagged; `n ≥ 3f+1` survives as a formula\nuntil `basic`, where it's named as held-back rather than faked into \"most parts\" (which\nwould be wrong — the bound is *two-thirds*, not half).\n\n<details>\n<summary>Related literature</summary>\n\nLoose inspirations, not conformance claims — each taken narrower than the source.\nFull notes in the [PRD appendix](./docs/prd-v0.2.md#appendix--literature-condensed-loose-inspirations-not-conformance).\n\n| Source | What we took |\n|---|---|\n| [**CEFR**](https://www.coe.int/en/web/common-european-framework-reference-languages) | The band structure, and the scale L2 readers already know themselves by. Levels are \"CEFR-informed\", never CEFR-conformant. |\n| [**NGSL**](https://www.newgeneralservicelist.com/) · [**Oxford 3000**](https://www.oxfordlearnersdictionaries.com/wordlists/oxford3000-5000) | Word-frequency lists as the vocabulary mechanism — inverted: they target *acquisition* (stretch the learner); we target *comprehension* (stay in range). |\n| [**Flesch-Kincaid**](https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests) | A two-variable readability proxy. An instrument and a disagreement-detector, never ground truth. |\n| [**Coh-Metrix**](https://en.wikipedia.org/wiki/Coh-Metrix) | The negative result: deleting connectives (\"because\", \"so\") *improves* FK while *lowering* comprehension. Shorten sentences; never strip connectives. |\n| [**Dreyfus**](https://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition) | Expertise changes *which objects exist* for the reader — a novice sees steps, an expert sees \"a rollback\". Lineage, not authority. |\n| [**Expertise reversal**](https://en.wikipedia.org/wiki/Expertise_reversal_effect) (Sweller / Kalyuga) | Unsolicited scaffolding measurably harms readers who already hold the schema. Hence no unsolicited analogies at `expert`. |\n| [**GOV.UK style guide**](https://www.gov.uk/guidance/style-guide) · [**ISO 24495-1**](https://www.iso.org/standard/78907.html) | The register model: complex content in plain language that never infantilizes. Simple English is not childish English. |\n</details>\n\n---\n\n[docs/design.md](./docs/design.md) — how it's built, what it can't do.\n[skills/matcha/SKILL.md](./skills/matcha/SKILL.md) is the canonical source; an\ninstalled copy under `~/.claude/skills/` is a deployment of it.\n",
  "bytes": 9752,
  "sha": "36a06ff6123561a9ae394b0a29d6219e9f6aea77f66ae30cabce3048638aff76",
  "repo_slug": "jaysonmulwa/matcha",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_jaysonmulwa_matcha_6b4ee9a7/readme"
}