Skip to content
This repository was archived by the owner on Jan 27, 2026. It is now read-only.
/ jsdoc_to_exdoc Public archive

A precise AI prompt for converting TypeScript interfaces and JSDoc to Elixir types and ExDoc.

License

Notifications You must be signed in to change notification settings

err931/jsdoc_to_exdoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

「ああ、もう嫌だ!Elixirの型定義(@spec)を書くたびにブラウザのタブが増えていく……」

「JSDocなら10秒なのに、Elixirの構造体(defstruct)と型(@type)を追加するだけで30分!?こんなの時間の無駄じゃないか!!!」

そんな悩みでお嘆きの全Elixirエンジニアに、とっておきのニュースを紹介しよう!!

✨「The Elixir AI-Turbo 3000」✨

このプロンプトさえあれば、君のTypeScriptの知識がそのまま最強のElixirコードに直結する!!!


💡 なぜ「AI-Turbo 3000」が選ばれるのか?

見てくれ、この圧倒的なパフォーマンスを!

  • 🧠 脳内変換はもう不要! 使い慣れたTypeScriptの interfaceJSDoc を放り込むだけ。Dialyzer準拠の美しいコードを瞬時に組み上げる!
  • 🛡️ 型安全のプロフェッショナル! stringString.t() へ、Promise<T>{:ok, T} | {:error, term()} へ!Elixirのベストプラクティスを自動適用!
  • 🔒 カプセル化もインテリジェンスに! @internal と書くだけで、中身を隠匿する @opaque を自動選択。君の機密情報を守り抜く!
  • 🐍 命名規則を「Elixirの心」で変換! camelCase から snake_case への変換はもちろん、is/has で始まる関数を ? 付きの述語関数へ賢く変換!

😱 驚愕のビフォー・アフター!

Before: かつて、Elixirの型定義は複雑で、書くのが苦痛だった…… (画面が白黒になり、頭を抱えてキーボードを叩くエンジニア)

↓↓↓ それが「AI-Turbo 3000」を導入すると…… ↓↓↓

After: たったこれだけの入力が、職人が書き上げたような完璧なコードに! (画面が鮮やかなフルカラーに変わり、エンジニアが笑顔でサムアップ!)

入力(TypeScript)

/**
 * User profile interface
 * @primary
 */
interface UserProfile {
  id: number;
  username: string;
  email?: string;
  /** @internal */
  internalId: string;
}

/**
 * Checks if the user can access the resource.
 */
function canAccess(user: UserProfile, resourceId: string): Promise<boolean> {
  // implementation
}

出力(Elixir)

@doc "User profile interface"
@enforce_keys [:id, :username, :internal_id]
defstruct id: nil, username: nil, email: nil, internal_id: nil

@type t :: %__MODULE__{
        id: integer(),
        username: String.t(),
        email: String.t() | nil,
        internal_id: String.t()
      }

@opaque internal_id :: String.t()

@spec access?(user :: t(), resource_id :: String.t()) :: {:ok, boolean()} | {:error, term()}
def access?(user, resource_id) do
  # implementation
end

🔥 今すぐ、この革命を手に入れろ!

「Elixirの構文が独特すぎて辛い」――そんな言い訳はもう通用しない!

君の使い慣れた資産を、今すぐプロフェッショナルなElixirコードへと昇華させよう。

チームメイトにこう言わせてやろうじゃないか。

「いつの間に、そんなにElixirに詳しくなったんだい?」


「The Elixir AI-Turbo 3000 —— 君の情熱を、型定義で止めるな。」




これは、Claudeに「深夜の海外通販番組のノリで添付したシステムプロンプトを説明したものを書いて」で生成した文章をほんのり修正したものです。

このシステムプロンプトを使うと 「TypeScriptの型定義とJSDocをメタデータとして取り込み、Elixirの型定義と読みやすいExDocとして書き出す」 ことが可能です。

これにより、中規模(高速)言語モデルにありがちなElixir特有の処理(ロジック)を正確に解析できない場合でも安定した出力を得られます。これは、広く使われている言語モデル共通の特性である 「TypeScriptの解析が得意である」 ことを活用しています。

ソースコードのメンテナンス性向上に、是非ご利用ください。

About

A precise AI prompt for converting TypeScript interfaces and JSDoc to Elixir types and ExDoc.

Resources

License

Stars

Watchers

Forks