開発体制と、自動チェックの数え方
このページは、ウルスタの開発体制と品質チェックの数字を、報道や記事で引用していただくための一次情報です。測定した日、測定に使ったコミット、数え方のコマンドをそのまま載せています。数え方が違えば数字も変わるので、数え方ごと公開します。
このページの使い方
下の数字は自由に引用してください。転載や引用に許可は要りません。出典は「ウルスタ株式会社 開発体制と、自動チェックの数え方(https://ulsta.jp/development/)」としてください。
- 数字は数え方を決めないと決まりません。だから数え方のコマンドをそのまま載せています。同じコマンドを実行すれば同じ数字になります。
- 数字は日々変わります。引用するときは測定日を添えてください。
- リポジトリは非公開です。第三者が直接検算することはできません。取材で確認が必要な場合は、画面を共有して一緒に実行します。下の連絡先へご連絡ください。
測定の基準
- 測定日
- 2026年9月17日
- 対象コミット
- a86f93c7abe59278e59272ea9680c818d231a4ea(main)
- 対象
- Gitが追跡しているファイルのみ。手元にあるだけの未追跡ファイルは数えません
- 除外
- node_modules / vendor(外部から持ってきたもの)
「Gitが追跡しているファイルのみ」は重要な条件です。手元の作業フォルダには、複製や書きかけのファイルが残ります。それを数えると、実際に動いているものより多い数字が出ます。ここでは本番に出ていてCIが実行しているものだけを数えます。
数字と、その数え方
| 項目 | 数 | 数え方 |
|---|---|---|
| コミット | 1,963回 | git rev-list --count HEAD |
| 開発期間 | 2026年4月17日〜9月17日(5か月) | 最初と最後のコミット日 |
| 追跡ファイル | 6,071 | git ls-files | wc -l |
| 自動チェック(JavaScript) | 603本 | git ls-files 'scripts/check_*.js' | wc -l |
| 自動チェック(PHP) | 78本 | git ls-files 'scripts/check_*.php' | wc -l |
| 自動チェック(Python) | 2本 | git ls-files 'scripts/check_*.py' | wc -l |
| 自動チェック 合計 | 683本 | 603 + 78 + 2 |
| テスト(JavaScript) | 67本 | git ls-files 'scripts/test_*.js' | wc -l |
| テスト(PHP) | 27本 | git ls-files 'scripts/test_*.php' | wc -l |
| ブラウザを実際に動かすテスト | 36本 | git ls-files 'e2e/*.spec.ts' | wc -l |
| データベースの変更履歴 | 729本(サブフォルダ込みで740本) | migrations/ 直下の .php |
| チェックとテストの行数 | 94,194行 | 上のチェックとテストのファイルを wc -l |
| 変更履歴の行数 | 144,653行 | migrations の .php を wc -l |
| コード総行数 | 708,656行 | 追跡ファイルの .php/.js/.py/.html/.ts(node_modules・vendor除く) |
プレスリリースの「643本」を訂正します
2026年9月17日に配信したプレスリリースで、自動チェックの数を「643本」と書きました。この数字は誤りです。正しくは603本です(JavaScriptのチェックの数)。
原因は、Gitが追跡しているファイルではなく、手元の作業フォルダをそのまま数えたことです。作業フォルダには、macOSでの複製操作でできた「ファイル名の末尾に 2 が付いたコピー」が40本残っていました。40本すべてに元のファイルが存在し、うち28本は元ファイルとバイト単位で同一、残り12本はコピーされた時点の古い内容でした。
この40本はGitに入っていないので、本番にもCIにも存在しません。動いているチェックの数は最初から603本でした。多く見せようとしたわけではなく、数え方が雑だったということです。配信済みのプレスリリースは修正できないため、このページで訂正します。
あわせて、プレスリリースでは「643本」とだけ書きましたが、同じ仕組みで走るチェックはJavaScriptのほかにPHPが78本、Pythonが2本あります。合計683本が正確な数です。
自動チェックは何を見ているか
ここでいう「自動チェック」は、コードを変えるたびにGitHub Actionsが自動で走らせるプログラムです。CIの設定では scripts/check_*.js と scripts/check_*.php をまとめて実行しているので、1本足せばその日から全部の変更に対して走ります。
一般的な単体テストとは少し違います。多くは「過去に一度やってしまった失敗を、二度とできなくする」ために書かれています。例を挙げます。
- 空のcatchを見張る。エラーを受け取って何もしない書き方を禁止します。導入時、本番コードにPHPで252件、JavaScriptで644件ありました。
- ログのレベル指定を見張る。この製品でデータベースに記録が残るのは error / critical / warning の3つだけで、warn と書くと記録が残りません。書いた時点で止めます。
- 存在しない列にデータを入れる変更履歴を止める。スキーマ定義と変更履歴が自分で足す列を突き合わせ、その外を指したら止めます。
- プレースホルダを置けない位置に置いたSQLを止める。MySQL 8で実際に動かして規則を確定させたうえで判定しています。
- バックアップから本当に戻せるかを毎回試す。種を蒔く、バックアップを取る、全部消す、本物の復元処理を起動する、行数と中身を照合する、までを自動で通します。
チェック自体が壊れていないかも確認しています。書いたあとに「わざと元の壊れた形に戻すと赤くなるか、直すと緑になるか」を実際に動かして確かめてから入れています。見張っているつもりで何も見ていない番人を作らないためです。
開発体制
- 開発者
- 代表取締役 馬場生悦 1人
- エンジニアの採用
- なし
- 外注
- なし
- 開発の方法
- AIを使って書き、上の自動チェックで毎回確かめる
コミットの著者名は23種類ありますが、人間は1人です。内訳は次のとおりです。
| 著者の種類 | コミット数 |
|---|---|
| 馬場生悦(本人名義。うち1,723回は自動コミット) | 1,824回 |
| AI・自動化の名義(Claude、各種bot、dependabot) | 139回 |
| 合計 | 1,963回 |
「1人で1,963回書いた」という意味ではありません。大半は自動化とAIによるコミットです。人間として関わっているのが1人だけ、という意味です。
この数字は動きます
毎日コードを変えているので、ここの数字はその都度ずれていきます。大きく変わったときに測り直して、測定日とコミットを書き換えます。古い数字を引用されて食い違うことがないように、測定日とコミットを必ず併記しています。
数え方を変えるときは、変えた理由もここに書きます。数字だけ静かに増えることはありません。
画像と取材について
プレスリリースに掲載した製品画面の画像は、報道を目的とする場合に限り、出典(ウルスタ株式会社)を明記のうえ自由にお使いいただけます。掲載しているのは実際の画面で、物件名や金額などの表示データは見本です。
ウルスタ株式会社 代表取締役 馬場生悦
メール:info@ulsta.jp / 電話:03-6821-7179