はじめに
こんにちは、今日は昔作ったJavaScriptライブラリをAIを使って補完しnpmへ登録しましたので、ちょっとその話をします。
マイライブラリ
元となるJavaScriptライブラリとは2013年あたりに作成を開始したSenkoというライブラリです。この歴史は以下にまとめています。

SenkoというライブラリはJavaScriptとJScriptを共存させた上に無駄に高機能という巨大なため、上の記事に書いてあるように2019年から内部のライブラリを分離していきました。
日本語処理ライブラリ

数値計算処理ライブラリ(紹介記事)

JScript(WSH向け)ライブラリ(紹介記事)
このライブラリ化する作業は非常に大変でして、というのも関数のAPI仕様書が整備されていないことで、TypeScript的な補完が行えず、これらを整備しないとライブラリ化できない問題があり沈静化していました。
それ以降は2023年にも一部ライブラリ化(紹介記事)を行いましたが、これは小型のものであったからできただけであり、実際まだ大型の部分が残されている状態でした。
sprintfライブラリ

色ライブラリ

ファイル読み書きライブラリ(node.js用)

そして、2025年AIを駆使して、大型ライブラリを整備してリリースにチャレンジしました。
ターゲットはSenkoJSです。これはSenkoからSenkoWSHとSenkoJSに分離した、JavaScript版のライブラリです。ここに、まだ単独ライブラリとして抽出できていないライブラリが存在します。
やったこと
ChatGPT Plusに、プロジェクトという機能がありまして、ファイルをアップロードした後にライブラリ化に関する指示を行えば、人間がやっていた作業が楽になるのではないかと突如思いつきまして、やってみることにしました。
JSDocの補間作業
昔作ったライブラリなのでJSDocのコメントが整備しきれていない問題、そもそもコメントさえもない状態があったためこれらを何とかするために次のような指示を行って補完することができました。
JavaScriptでライブラリを作成しました。このライブラリにはJSDocコメントの記載が足りないため補完してください。各ファイルのソースコードの設計や関数内の作りを確認し、機能と入出力の型を推測して、各関数にJSDocを作成してください。説明文は日本語で解説するようにしてください。
あとは「X.js
のファイルをお願いします。」というとX.js
で作成してくれるので「次はY.js
でお願いします。」と続けることで各種ライブラリのJsDocコメントが補完していく形になりました。AIが作ったコメントを目で確認しつつマージしていけば完成です。やったあ!
デモコードの説明
SenkoJSには、使用例としてデモコードを付けているのですが、このサンプルコードがまたコメントが少なくて分かりにくいのです。これもAIに補完させて作り直させました。
ライブラリの紹介のためにサンプルとして
main.mjs
を作りました。main.mjs
に対してライブラリの使い方に焦点を当ててソースコードにコメントを追加してください。
README.mdの作成
なんかもう面倒になって形さえ作ってしまえばいいと思ってREADME.md
もお願いしました。
ライブラリとして公開したいと思います
README.md
を書いてください
その他
npmに登録する場合、package.json
に英語で説明を入れたりキーワードを考える必要があるのですが、これも面倒なので作ってもらいました。
npm へライブラリとして公開したいと思います。
package.json
の中のdescription
,keywords
に記載する内容を考えてください。
他にもライブラリ名を考えてもらったりしました。センスがないので大助かりです。
npm へライブラリとして公開したいと思います。ライブラリ名を考えてください。
その他、色々とJavaScriptのライブラリの進化などがあり、色々聞きつつ、完成。
できたもの
SenkoJS内にあった3DCG以外の大型ライブラリをnpmへ登録することができました。
GUIライブラリ

入力ライブラリ(マウス操作など)
画像処理ライブラリ
SenkoJSの元コードと各種ライブラリのコードをWinMergeで比較していただければ、AIが作り出した関数名などが確認できます。
- SenkoJS
- GuiBlocks (SenkoJS 内の SComponent.js から作成)
- InputDetect (SenkoJS 内の Device.js から作成)
- PixelProcessing (SenkoJS 内の ImageProcessing.js から作成)
おわりに
最後まで読んでいただきありがとうございます。
AIに飲み込まれてしまうかもですが、AIに使わされるのではなく、使う側としてもっといろいろなことが出来ればいいなと思います。
コメント