構築・検証レポート
10社の原本 → SQLite → Python比較 → Codex分析 → HTML
1. 対象10銘柄
| コード | 正式名称 | PDF点数 | 日足期間 | 日足件数 |
|---|---|---|---|---|
| 1377 | 株式会社サカタのタネ | 20 | 2023-02-09 ~ 2026-06-04 | 810 |
| 1419 | タマホーム株式会社 | 34 | 2023-02-09 ~ 2026-06-04 | 810 |
| 3440 | 日創グループ株式会社 | 27 | 2023-02-09 ~ 2026-06-04 | 810 |
| 3490 | 株式会社アズ企画設計 | 40 | 2023-02-09 ~ 2026-06-04 | 810 |
| 3565 | アセンテック株式会社 | 23 | 2023-02-09 ~ 2026-06-04 | 810 |
| 4838 | スペースシャワーSKIYAKIホールディングス株式会社 | 34 | 2023-02-09 ~ 2026-09-18 | 884 |
| 6224 | 株式会社JRC | 32 | 2023-08-09 ~ 2026-06-04 | 687 |
| 7725 | 株式会社インターアクション | 29 | 2023-02-09 ~ 2026-06-04 | 810 |
| 7818 | 株式会社トランザクション | 19 | 2023-02-09 ~ 2026-06-04 | 810 |
| 9252 | 株式会社ラストワンマイル | 32 | 2023-02-09 ~ 2026-06-04 | 810 |
2. 利用資料と不足
実データ582点:PDF290、銘柄スカウターHTML271(対象銘柄20、比較用251)、XBRL ZIP11、日足JSONL10。原本別名・分類745レコードを582資産へ対応づけ、SHA-256で重複を防止。PDF3,217ページを保存・検索可能にしました。
分析ルールは実Excel2点から48チェック・13レンズ・9質問を読取。4838参考HTMLの配色・レイアウト・レスポンシブCSSを再利用。
3. スクリプトとPython環境
移行済294本を実コードの構文木で静的調査し、依存import、固定パスの行、ブラウザ・認証・Google・削除操作の所在を記録。取得・Sheets更新の連鎖は実行していません。
| ファイル | 変更・役割 |
|---|---|
| scouter_local.py | 既存convert_scouter_to_md.pyのコピー。表の抽出ロジックを維持し設定読込、再帰探索、ハッシュ付きファイル名対応、import時の出力フォルダ作成を解除。 |
| ingest.py | 新規のローカル取込・監査・SQLite統合層。XBRLの共有contextをZIP内で解決。 |
| quantify.py | 原数値・期間を明示した前年比、利益率、残存ハードル、過去・同業比較。 |
| analyze.py | Codexが原文を確認して記述した分析と引用を検証し、JSON・DBへ登録。モデルAPIの自動実行ではない。 |
| render.py / app.js / style.css | JSONから一覧・個別HTMLを生成。オフラインで検索・判定フィルターが動く。 |
| verify.py / report.py | 原本の不変性、根拠・リンク・SQLite整合性、構築レポート。 |
macOS 26.6.2/arm64、Python 3.14.7で実行確認。専用.venvは既存のローカルライブラリを参照。beautifulsoup4 4.15.0、lxml 6.1.2、PyMuPDF 1.28.2。Codex CLI 0.162.0-alpha.2の存在を確認し、原因分析はこのCodex会話で実施しました。
4. SQLite登録件数
| テーブル | 件数 |
|---|---|
| companies | 260 |
| assets | 582 |
| source_files | 745 |
| pages | 3,217 |
| xbrl_facts | 4,438 |
| html_tables | 8,822 |
| observations | 71,149 |
| prices | 8,051 |
| evidence | 82 |
| calculations | 327 |
| analyses | 10 |
| checks | 480 |
| segment_facts | 32 |
| leading_indicators | 10 |
| shareholder_returns | 155 |
| discrepancies | 121 |
companiesは対象10社+比較250社。observationsはHTML抽出・PDF表示値、xbrl_factsはタグ付きの原数値を別に保存。両者の単純合算を財務項目数とは呼びません。
5. 分析範囲
実績の前年比、営業利益率、通期計画との残存必要利益・利益率、利用可能な3〜5年履歴、同じ決算年月の同業通期採算、セグメント抜粋、先行指標、配当タグ、仮説・反証を登録しました。
48項目×10社と13レンズ×10社を出力。根拠が不足する条件は資料不足、単一報告セグメントに適用できない条件は対象外を別管理。○の数を投資魅力度のスコアにしていません。
当期短信とXBRLの主要80数値を照合。詳細版では粗利・販管費・BS・CF等の追加194数値にも原本ページを対応づけ、各社20セクションへ拡充。全表・全セルの会計監査ではありません。EPS差と4838の会員増加率差は未解消として保持。表示精度差候補72件も原値を両方保存。
6. 保存先
指定保存先:~/Desktop/株式投資分析システム/
入口は web/index.html。stocks/に10ページ、sources/にSHA-256名の根拠原本、analysis/に10社JSON、database/investment.sqlite3。フォルダごと移しても根拠リンクは相対パスで機能します。
7. 動作確認
| 確認項目 | 結果 |
|---|---|
| Macのブラウザ | 一覧10銘柄・個別ページを確認 |
| 検索・絞り込み | 一覧検索、該当なし表示、48項目○→2件→全48件へ復帰を確認 |
| スマートフォン幅 | 390pxで10枚のカードと個別10ページを確認。画面全体の横はみ出しなし。 |
| PDF表示 | Chromeで7725決算説明資料の相対リンク先PDF P.3の実描画を確認。Codex内蔵ブラウザのPDF描画は非対応のためChromeを使用。 |
| ファイル直接表示 | ブラウザ自動操作のURL制約でfile://を開けず未検証。迂回は行わず、デスクトップ保存版を127.0.0.1経由で確認し、相対リンクと外部通信不要の構造を静的検証。 |
| Python一括実行 | デスクトップ配下の専用.venvで全処理を再実行して検証 |
| ブラウザ内のプログラムエラー | Chromeの完成一覧ページでJavaScriptエラー0件 |
SQLite整合性・外部キー、原本582点と旧スクリプト294本のハッシュ、web原本のハッシュ、全ローカルリンク・アンカー、10社の48チェック・13レンズを検証。詳細はlogs/validation.json。
8. 今後の自動化
- 最新日足、前年同期PDF・XBRL原本と同一期の同業KPIを補充。
- 画像中心ページのOCR、訂正資料の版管理と数値差の解消。
- 正常利益レンジ・季節性・会社予想改定履歴を追加し、人が分析仮説を再確認。
- TDnet等の取得スクリプトをコピー版で個別改修。認証は環境変数等で管理。
- 新規資料の差分取込とAI再分析のログ・承認境界を設計。
- ローカルでの精度確認後に、別段階としてWeb公開・日次実行を設定。
今回は外部書込、認証情報の入力、Cloudflare公開、日次実行設定をしていません。