<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Koji M</title>
    <description>The latest articles on DEV Community by Koji M (@koji_m_f02cae8a899bf33627).</description>
    <link>https://dev.to/koji_m_f02cae8a899bf33627</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4179452%2F8a3dd294-f4b9-4820-8f11-3d94694bea99.jpg</url>
      <title>DEV Community: Koji M</title>
      <link>https://dev.to/koji_m_f02cae8a899bf33627</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/koji_m_f02cae8a899bf33627"/>
    <language>en</language>
    <item>
      <title>A language app that corrects the sentence you actually wrote</title>
      <dc:creator>Koji M</dc:creator>
      <pubDate>Mon, 12 Oct 2026 15:55:39 +0000</pubDate>
      <link>https://dev.to/koji_m_f02cae8a899bf33627/a-language-app-that-corrects-the-sentence-you-actually-wrote-3cb7</link>
      <guid>https://dev.to/koji_m_f02cae8a899bf33627/a-language-app-that-corrects-the-sentence-you-actually-wrote-3cb7</guid>
      <description>&lt;p&gt;Most language apps are good at getting words into your head. Fewer help with the next step: putting those words into a sentence of your own and finding out whether a native speaker would say it that way.&lt;/p&gt;

&lt;p&gt;GogaQ is an iPhone and iPad app that my company, Washitsu, makes for that step. You learn sentences grouped by situation, answer in your own words, and get a correction that shows what to delete, what to add and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a correction looks like
&lt;/h2&gt;

&lt;p&gt;Here is a Quick Composition round, with English as the native language and French as the language being learned.&lt;/p&gt;

&lt;p&gt;The prompt is &lt;em&gt;"Please send me the documents by tomorrow."&lt;/em&gt; Suppose you write &lt;em&gt;Envoie-moi les documents jusqu'à demain, s'il te plaît.&lt;/em&gt; It is close, and a French colleague would probably understand it.&lt;/p&gt;

&lt;p&gt;In this example, GogaQ scores it 78 out of 100 and marks the one word to change: &lt;em&gt;jusqu'à&lt;/em&gt; becomes &lt;em&gt;d'ici&lt;/em&gt;. Then it explains why, in English. &lt;em&gt;Jusqu'à demain&lt;/em&gt; means "until tomorrow", so the sentence sounds as if they should keep sending documents until then. A deadline ("by tomorrow") needs &lt;em&gt;d'ici demain&lt;/em&gt;. A second note covers politeness: &lt;em&gt;Envoie-moi&lt;/em&gt; (tu) is fine with a close colleague, while &lt;em&gt;Pourriez-vous m'envoyer&lt;/em&gt; (vous) suits a client or your manager. You can listen to the corrected sentence and a more natural alternative, and save it to your review cards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feygj94kgefw4puk8q5f7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feygj94kgefw4puk8q5f7.png" alt="The AI correction screen: score, the corrected sentence, an alternative and an explanation in English" width="800" height="739"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The correction screen, split into two columns. The app screens in this post were rendered from the app with sample data.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The score measures how far your answer is from the corrected version, so a natural alternative can still lose a few points. What helps more than the number is seeing which word made the difference and why.&lt;/p&gt;

&lt;p&gt;The same kind of help runs through free conversation. When you reply to the AI in French, it suggests a more natural way to say what you meant, highlights useful expressions in its own reply, and lets you listen to or translate any line.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzpjvagn3i0jg5jdyirln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzpjvagn3i0jg5jdyirln.png" alt="A free conversation in French, with a more natural rephrasing suggested under the learner's message" width="800" height="668"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Free talk. The shaded line under your message is the suggested rephrasing.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How a session goes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open the app.&lt;/strong&gt; Today's plan is waiting on the first screen (more on that below).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn sentences by situation.&lt;/strong&gt; The French sentence book has 2,705 sentences, sorted by situation and CEFR level. You can listen to every sentence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Answer in your own words&lt;/strong&gt;, then compare with the corrected sentence and the explanation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drill the grammar that tripped you up&lt;/strong&gt; by arranging words or filling in blanks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use it.&lt;/strong&gt; Free conversation with AI, short compositions with corrections, listening practice, and news articles written at your level with five comprehension questions at the end.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The wordbook is built from those sentences. The French wordbook has 3,611 words, each with its part of speech, meaning and level, and you can save any of them as flashcards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keeping track of your study
&lt;/h2&gt;

&lt;p&gt;The Today screen keeps you on schedule. It shows today's phrase, which days you studied this week, your progress toward your daily goal, and today's plan: a round of sentences, a Quick Composition and a syntax drill. Your streak and remaining points sit at the top. The Library shows a "Today's review" count for the cards that are due, so you know when you're caught up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvkotftmqfvnbnvif9udf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvkotftmqfvnbnvif9udf.png" alt="The Today screen and the Library, for someone learning French at B2" width="800" height="683"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Left: the Today screen with the weekly record and daily goal. Right: the Library with today's review.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ten languages, eight native languages
&lt;/h2&gt;

&lt;p&gt;French is one of ten languages you can learn: English, Japanese, Chinese (Simplified), Korean, Spanish, French, German, Indonesian, Vietnamese and Thai. The app itself, including translations and grammar notes, is available in eight native languages: English, Japanese, Chinese, Korean, Vietnamese, Indonesian, German and Thai. Any combination works except learning your own language.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;English (CEFR): 2,552 sentences, 6,780 words&lt;/li&gt;
&lt;li&gt;Japanese (JLPT): 3,230 sentences, 5,702 words&lt;/li&gt;
&lt;li&gt;Chinese, Simplified (HSK): 1,991 sentences, 2,280 words&lt;/li&gt;
&lt;li&gt;Korean (TOPIK): 2,011 sentences, 2,448 words&lt;/li&gt;
&lt;li&gt;Spanish (CEFR): 2,093 sentences, 2,725 words&lt;/li&gt;
&lt;li&gt;French (CEFR): 2,705 sentences, 3,611 words&lt;/li&gt;
&lt;li&gt;German (CEFR): 2,100 sentences, 3,053 words&lt;/li&gt;
&lt;li&gt;Indonesian (CEFR): 2,111 sentences, 2,617 words&lt;/li&gt;
&lt;li&gt;Vietnamese (CEFR): 2,102 sentences, 2,596 words&lt;/li&gt;
&lt;li&gt;Thai (CEFR): 2,110 sentences, 2,607 words&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;English and Japanese come with pre-recorded AI voices, and English learners can choose British, American or Australian accents. The other languages are read aloud by your device's built-in text-to-speech.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's free
&lt;/h2&gt;

&lt;p&gt;The sentence books and wordbooks don't use points, and they are free with no time limit. The AI features (corrections, conversation, news) run on points. A new account gets 20 points to use within 30 days, which is roughly six AI conversations or ten composition corrections. After that you can subscribe or buy points as you need them. Purchased points don't expire.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;GogaQ runs on iPhone (iOS 18 or later) and iPad (iPadOS 18 or later), and it's free to download:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App Store: &lt;a href="https://apps.apple.com/app/id6762157603" rel="noopener noreferrer"&gt;apps.apple.com/app/id6762157603&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website (8 languages): &lt;a href="https://gogaq.washitsu-lab.com/" rel="noopener noreferrer"&gt;gogaq.washitsu-lab.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there's a sentence you've never been sure how to say, in French or any of the other nine languages, that's a good one to try first.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>languagelearning</category>
      <category>ios</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Japanese has its own AI tells. I built an agent skill that fixes them.</title>
      <dc:creator>Koji M</dc:creator>
      <pubDate>Mon, 12 Oct 2026 13:31:16 +0000</pubDate>
      <link>https://dev.to/koji_m_f02cae8a899bf33627/japanese-has-its-own-ai-tells-i-built-an-agent-skill-that-fixes-them-385d</link>
      <guid>https://dev.to/koji_m_f02cae8a899bf33627/japanese-has-its-own-ai-tells-i-built-an-agent-skill-that-fixes-them-385d</guid>
      <description>&lt;p&gt;Most of the Japanese I write for work starts as an AI draft: proposals for small businesses, progress reports, Slack updates to people outside engineering. The facts are usually right. I still can't send them as they are, and I kept fixing the same things by hand.&lt;/p&gt;

&lt;p&gt;So I turned those fixes into an agent skill and published it. It works with Claude Code, Codex and Cursor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kojikojikojikoji/natural-japanese-writing" rel="noopener noreferrer"&gt;https://github.com/kojikojikojikoji/natural-japanese-writing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You don't need to read Japanese to use it. You hand the agent a Japanese text and ask it to sound less AI-written.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem I kept running into
&lt;/h2&gt;

&lt;p&gt;For a long time I couldn't explain what was wrong. The grammar was fine. A few things that actually happened:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A slide deck for a client still had 御社 ("your company") in six places. It's the spoken form. In writing you use 貴社, and a client notices.&lt;/li&gt;
&lt;li&gt;A proposal that executives would sign off on said 「稼働中の版には触れません」, roughly "we won't touch the running version". Engineers get it. The people approving the budget had no idea what it meant for them.&lt;/li&gt;
&lt;li&gt;A Slack update to a business team listed file names and line numbers. Nobody on that team opens the repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add the bold "&lt;strong&gt;Label:&lt;/strong&gt;" bullets, the "it's not X, it's Y" lines and paragraphs ending in 「重要です」 ("this is important"). Every time someone pointed one out, I added a line to my CLAUDE.md. The file kept growing and the agent followed it some days and not others.&lt;/p&gt;

&lt;p&gt;I tried the English skills first, &lt;a href="https://github.com/blader/humanizer" rel="noopener noreferrer"&gt;humanizer&lt;/a&gt; and &lt;a href="https://github.com/conorbronsdon/avoid-ai-writing" rel="noopener noreferrer"&gt;avoid-ai-writing&lt;/a&gt;. They look for "delve", "tapestry" and em dashes. On a Japanese report they found almost nothing. So I started collecting Japanese tells from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I approached it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Decide who's reading before fixing anything.&lt;/strong&gt; The skill first labels the text as a business document, casual reading, or a manual. The usual trick for sounding human is to add a personal aside. In a blog post that works. In a proposal to a Japanese client it reads as careless. Without this step, you fix one problem by creating another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Split the tells into two kinds.&lt;/strong&gt; Japanese research and measurement posts pointed the same way. Some tells are templates: bold labels, "not X but Y", opening with 「本記事では〜について解説します」 ("In this article, I will explain…") and closing with 「いかがでしたか」 ("How was it?"). Those can be found and deleted. The other kind is evenness: sentence length, sentence endings, paragraph length and comma spacing are all about the same. Human Japanese is lumpier. You can't fix that one phrase at a time, so the skill rewrites the whole paragraph.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't convict on one tell.&lt;/strong&gt; People pick up AI phrasing too, and some "AI phrases" are just normal Japanese. There are 59 tells across six layers. The 25 clearest ones are starred and fixed on sight. The rest are fixed only when three or more different ones land in the same paragraph.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Count what can be counted.&lt;/strong&gt; An agent reading a checklist misses tells in its own output. So bold text, em dashes, "not X but Y", stock words, repeated endings and sentence-length variance are counted by &lt;code&gt;scripts/check.py&lt;/code&gt; (plain Python, no dependencies). After rewriting, the skill runs it again and only returns the text once the starred tells it can count are gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does to a real draft
&lt;/h2&gt;

&lt;p&gt;I asked a model for a Slack message telling my manager a project is two weeks behind. It returned this (English gloss in brackets):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;お疲れ様です。○○プロジェクトについて、進捗が当初のスケジュールから &lt;strong&gt;2 週間遅延&lt;/strong&gt; しています。主な要因は以下の通りです。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;要件定義の変更&lt;/strong&gt; が多数発生し、再設計に時間を要したこと。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;外部ベンダーの納品遅延&lt;/strong&gt; に伴う依存タスクの遅れ。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;リソース不足&lt;/strong&gt;（開発メンバーの一時的な兼任業務）&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;現在、遅延分の取り戻しに向けて、次の対策を実施中です。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;余裕のあるタスクを再割り当てし、重点的にリソースを集約。&lt;/li&gt;
&lt;li&gt;ベンダーと納期再調整を実施し、今後のリスクを低減。&lt;/li&gt;
&lt;li&gt;進捗管理を週次ミーティングで細分化し、早期検知体制を強化。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;つきましては、&lt;strong&gt;新たなマイルストーン案&lt;/strong&gt;（○月○日 完了予定）をご提示いたしますので、ご確認いただけますと幸いです。ご質問やご要望がございましたら、遠慮なくお知らせください。&lt;/p&gt;

&lt;p&gt;[The project is &lt;strong&gt;2 weeks delayed&lt;/strong&gt;. Main factors: 1. &lt;strong&gt;Requirement changes&lt;/strong&gt; … 2. &lt;strong&gt;Vendor delivery delay&lt;/strong&gt; … 3. &lt;strong&gt;Resource shortage&lt;/strong&gt; … Countermeasures: reallocate tasks, re-negotiate with the vendor, strengthen early detection. We hereby present a &lt;strong&gt;new milestone proposal&lt;/strong&gt; and would be grateful for your review. Please do not hesitate to contact us with any questions.]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Five bold phrases in a Slack message to your own manager, bullet points written like slide notes, and a sign-off copied from a customer-service template. After the skill:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;お疲れ様です。○○プロジェクトが当初の予定から2週間遅れています。&lt;/p&gt;

&lt;p&gt;要件の変更が続いて再設計に時間がかかったことと、外部ベンダーの納品が遅れ、それを待つ作業も遅れたことが主な原因です。開発メンバーの一部は別の業務を兼任していて、人手も足りていませんでした。&lt;/p&gt;

&lt;p&gt;今は日程に余裕のある作業から人を外して遅れている作業に回し、ベンダーとは納期を調整し直しています。今後の遅れに早く気づけるよう、毎週の定例会議で進捗を細かく確認するようにしました。&lt;/p&gt;

&lt;p&gt;完了予定を○月○日に見直す案をお送りしますので、ご確認をお願いします。&lt;/p&gt;

&lt;p&gt;[The project is two weeks behind. Mostly because requirements kept changing and the redesign took time, and because a vendor delivered late, which held up the work that depended on it. Some of the team were also covering other jobs, so we were short-handed. We've moved people off tasks with slack in the schedule onto the late work, and re-agreed the dates with the vendor. To catch future slips earlier, we now go through progress in more detail at the weekly meeting. I'll send a proposal to move completion to [date]. Could you take a look?]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Same delay, same causes, same countermeasures, same request for a new date. Nothing was added. &lt;code&gt;check.py&lt;/code&gt; counted six starred tells before and none after.&lt;/p&gt;

&lt;p&gt;How you ask changes the fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Rewrite this for the business team": file names and table names become "who is affected and how".&lt;/li&gt;
&lt;li&gt;"Make this read like a blog post": the writer's doubts and asides stay in.&lt;/li&gt;
&lt;li&gt;Load it before writing: the agent writes to the standard from the start. In my own use that's quicker than fixing afterwards.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Did the tells hold up?
&lt;/h2&gt;

&lt;p&gt;I compared 40 human texts (Slack replies from 14 people) with 40 AI texts (15 everyday prompts such as reports, emails and articles; 15 texts each from Gemini 3.1 Pro and GPT-OSS 120B, 10 from Claude Sonnet 4.6). For each metric I computed the AUC, the chance that a random AI text scores higher than a random human one. 0.5 is a coin flip. Sentence-length variance is lower in AI text, so that row is flipped to read the same way.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;AUC&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Starred tells, total&lt;/td&gt;
&lt;td&gt;0.91&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bold text&lt;/td&gt;
&lt;td&gt;0.89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sentence-length variance (lower in AI)&lt;/td&gt;
&lt;td&gt;0.69&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Commas per sentence&lt;/td&gt;
&lt;td&gt;0.65&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Em dashes&lt;/td&gt;
&lt;td&gt;0.51&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Some guesses were wrong. The em dash (—), the best-known English tell, barely showed up in Japanese from these three models. And two phrases usually filed under machine-like translationese, 「に関して」 ("regarding") and 「〜することができます」 ("is able to"), were used more by the humans, so I took them off the starred list. The human side is all Slack, which doesn't match the AI prompts and where people rarely use bold, so that number is probably inflated. Details are in &lt;code&gt;eval/README.md&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.claude/skills
git clone https://github.com/kojikojikojikoji/natural-japanese-writing ~/.claude/skills/natural-japanese-writing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cursor&lt;/strong&gt; reads &lt;code&gt;~/.claude/skills/&lt;/code&gt; too, so that's all.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codex&lt;/strong&gt; reads &lt;code&gt;~/.agents/skills/&lt;/code&gt;: &lt;code&gt;mkdir -p ~/.agents/skills &amp;amp;&amp;amp; ln -s ~/.claude/skills/natural-japanese-writing ~/.agents/skills/&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then ask: &lt;em&gt;"Make this Japanese sound less AI-written."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It's MIT-licensed. If you find a tell I missed, or Japanese text that slipped past it, please open an issue. I add a line every time someone points one out to me.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>japanese</category>
      <category>claude</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
