security
29ce559+9 -9 / 1 files日次チェック状態更新
データ定義
Changelog
エンジンの新機能・修正・改善をリアルタイムで追跡。 git差分から自動生成される、部署別の変更ログです。
最終更新: 2026-05-07 06:07:01
128
総エントリ
33
新機能
26
修正
13
影響部署
29ce559+9 -9 / 1 files24b5ab7+74 -4 / 2 files1165c6f+8 -8 / 1 files8f6e1c0+74 -4 / 2 filesf47fa5e+7 -7 / 1 files42a0fcf+108 -4 / 2 filesae294a3+7 -7 / 1 filesd9c5634+7 -7 / 1 filescd7930e+108 -4 / 2 files7bae417+6 -6 / 1 files4e817d8+5 -5 / 1 filescea62c7+74 -4 / 2 files190ac6f+9 -9 / 1 files94dab09+74 -4 / 2 files67c3578+5 -5 / 1 files13ddb7b+294 -4 / 2 files2d8f4ab+5 -5 / 1 files5017bef+448 -0 / 3 files- scripts/utils/screenshot.py: - next_start_server: `next start` を別ポート起動して URL を yield する - take_screenshot_from_next_project: 上記を使い1コマンドで NextJS スクショ。 - scripts/create.py: - _build_nextjs_visual_review_prompt: Hero真っ黒/コントラスト/モバイル横スク/ - _take_nextjs_review_screenshots: desktop full / desktop hero / mobile full - _run_nextjs_visual_loop: HARD_LIMIT=8 反復、DONE 検知で早期終了、 - _run_create_nextjs Step 7: ビルド成功後に視覚ループを起動、
56fbd9f+0 -0 / 0 files4f0b32a+1563 -1000 / 15 files- scripts/ops/db_corruption_health_check.py (新設): - config.yaml: notify_on に db_recovery イベントを登録 - tests/test_db_corruption_health_check.py: 15件 PASS - docs/incidents/db-corruption-20260428.md: at 登録手順を追記 - KAJIBA_INSTRUCTIONS.md: db_corruption_health_check の紹介行追加 - scripts/_archive/section_engine/test_*.py: section_engine 退避時に -m scripts.ops.db_corruption_health_check \\ - ruff check 全クリア
43cb962+480 -2 / 8 files- scripts/utils/db.py: - _check_integrity_and_repair(): PRAGMA integrity_check で破損検知時に - get_connection(auto_repair=True) でプロセス内初回1回だけ integrity_check - checkpoint_wal(): PRAGMA wal_checkpoint(TRUNCATE) を実行 - 復元時 Slack db_recovery 通知 - scripts/ops/db_checkpoint.py: cron 1時間毎想定の CLI スクリプト - scripts/collect.py: - _start_global_watchdog(): 240分(既定)超過で自プロセスSIGTERM
39fe4ad+0 -0 / 0 files5695320+38 -9 / 2 files- title 解決順を slug → url に拡張、fallback で title/name も継続サポート - grade を「[grade=S]」表記でヘッダに追加 - summary / reference_strengths / reference_warnings を順に出力 - mood / rationale は古い形状向けの後方互換として残置 - tests/test_create_nextjs_inspiration.py の _sample_inspiration() を
a6d0b90+256 -4 / 2 filesd2665b1+7 -7 / 1 files2808078+431 -34 / 4 files- scripts/inspiration_engine.py : run_inspiration_pipeline に skip_code_phase - scripts/create.py : - _format_inspiration_context_for_nextjs() 新設。story / information_design / - _build_nextjs_prompt(inspiration=...) 拡張。クライアントブリーフの直後に - _run_create_nextjs() に Step 2 として inspiration_engine 呼び出しを追加。 - main() に --no-inspiration フラグ。Phase 1-2 相当の高速モード退化用。 - run_create() のシグネチャに use_inspiration=True を追加。 - tests/test_create_nextjs_inspiration.py : 10件追加(コンテキスト整形、
ca1ce6a+0 -0 / 0 files85a58da+630 -7 / 5 files- scripts/postprocess_nextjs.py : 検証パイプライン本体。 - scripts/create.py : `_run_create_nextjs()` の Step 5 として - main() の出力メッセージで build_ok を反映、リトライ後成功時の表示も明示。 - ruff check : 全クリア - pytest tests/test_postprocess_nextjs.py : 23件 PASS - E2E: scaffold → run_postprocess の一気通貫テスト - 雛形 package.json の build script を `next build --turbopack` に変更済み
853334c+0 -0 / 0 files3040389+2526 -1522 / 34 files- templates/scaffolds/nextjs/ : Next.js 15 + React 19 雛形(package.json, - scripts/utils/nextjs_scaffold.py : 雛形コピー+プレースホルダ置換 - scripts/create.py : --engine=nextjs を追加。scaffold → プロンプト構築 → - pnpm-workspace.yaml : output/generated/create/* を pnpm workspace package - scripts/_archive/section_engine/ : section_engine を退避(廃止、復活手順は - ruff check : 全クリア - pytest tests/test_nextjs_scaffold.py : 8件 PASS - create.py --engine=nextjs --dry-run : prompt 3,689 chars 生成成功
32bc66e+74 -4 / 2 files9612ab2+8 -8 / 1 files19ce5c9+108 -4 / 2 files0099bf2+7 -7 / 1 files0a8f612+9 -9 / 1 filesc90cfae+108 -4 / 2 files2ba65f4+7 -7 / 1 files2429fb6+7 -7 / 1 files5242dbe+460 -4 / 2 filesae20f06+9 -9 / 1 filesea9cc9c+12 -2 / 2 files- resolve_actual_urls 内で非HTTP href をスキップ(根本対策) - resolve_actual_urls 呼び出し後にも URL バリデーションを追加(防衛的二重チェック) - siteinspire/io3000 の site_url_selector に :not([href^='#']):not([href^='javascript']) を追加
7199dbe+0 -0 / 1 filesbe4b8db+2 -0 / 1 filesbdfc18d+1 -0 / 1 filesdcfe638+411 -0 / 2 files- _iter_log_lines_within: logrotate の .log + .log.1/.2 を一括読み、 - CLI: --days N / --dry-run - 異常検知時は 🚨、正常時は ✅ で Slack に投稿
11703a3+129 -1 / 5 files- health_report.user_systemctl_env() ヘルパー追加: XDG_RUNTIME_DIR と - _check_services / is-enabled / auto_diagnose._restart_service が - tests/test_health_report.py 追加: 4件テスト(未設定時の自動付与、 - ops/logrotate.d/kajiba: /etc/logrotate.d/kajiba 用テンプレート - daily/health-check/auto-diagnose/security 等は daily rotate 14世代 - 日付付き collect-*/reanalyze-*/analyze-* は weekly rotate archive/ 配下
f567818+95 -8 / 2 files- _terminate_with_escalation(pid) を追加: SIGTERM 送信後 10秒 grace で - _detect_runaway_processes() から呼び出して critical 検知時に使用。 - 4件テスト追加: SIGTERM即死 / SIGTERM無視→SIGKILL / SIGTERM送信失敗 /
59a3ac6+0 -0 / 1 files774bf37+80 -7 / 4 files- scripts/collect_health_check.py: status.stdout.strip() → rstrip("\n")
- scripts/collect.py: mark_source_infinite_scroll が書き込み後に
- tests/test_health_check.py: リグレッションテスト追加
- tests/test_auto_diagnose.py: _detect_runaway_processes を全テストでb81a878+0 -0 / 1 filesc0eca2d+10 -0 / 1 filesa230319+74 -4 / 2 filesa1286da+5 -5 / 1 filesd8bc6f3+372 -4 / 2 filesfa10cd6+26 -28 / 1 files1bf9085+236 -13 / 5 files- A: listing取得にwith_hard_timeout(90)をSIGALRMでかける - B: extract_urls_from_listing内でpage.is_closed()チェック、driver死亡時は即return - C: auto_diagnoseに_detect_runaway_processes追加(>2h warn/>4h SIGTERM) - D: detect_infinite_scroll + mark_source_infinite_scrollでsources.yaml自動更新 ---------
fa24459+293 -4 / 6 files- data/aesthetic_antipatterns.yaml(新規) - 禁止フォント (Inter/Roboto/Arial/Open Sans/Lato/Space Grotesk) - 禁止カラースキーム(白背景+紫グラデ等) - タイポグラフィ必守原則(極端ウェイト 100/200 vs 800/900、サイズ差3x+) - 配色必守原則(支配色70%+ / アクセント15%以下) - モーション必守原則(見せ場1つ集中 > 散在マイクロ) - 業種別フォントプール(code_technical / editorial / startup_modern 等) - format_aesthetic_antipatterns_for_prompt(industry) を prompt_data.py に追加
b0f9530+130 -2 / 2 files- CSS側は前回 rule-block 限定化済みだったが、JS側は re.S で全体横断のまま
- 同様に {...} ブロックごとの match に変更
- 既存: typeof gsap === 'undefined' のみ
- 追加: !window.gsap, !globalThis.gsap, window.gsap && ...,
- モダンな実装の正当なガード方式を誤検知しないように
- inset 単位混在検出の境界ケース
- GSAP ガード複数パターン認識
- hero_scrub pin:true 尊重8377899+58 -18 / 2 files- 既存: inset\([^)]*\d+%\s+\d+[^%] - 例: inset(0% 0% 0% 100%) が誤マッチ(\d+ が "10"+"0" にバックトラック分割、 - 修正: 両方向(%→unitless と unitless→%)を明示的に検出する regex に差し替え - モダンな実装では :hover::after、:hover .child-icon などが主流 - FLUXWORKS は 11 個の hover ルール定義があるのに「5個全て効果なし」と誤判定 - 修正: ::before / ::after / 直接の子要素(最大3つ)までスタイル差分を取る
d156a03+68 -16 / 1 files- Aider unified-diffs 実証: partial diff より block replacement が安定 - Anthropic Plan Mode + Lost in the Middle: 局所パッチは隣接箇所を - FLUXWORKS Plan Mode 版で error=2-3件のプラトーが11反復続き - _build_combined_fix_prompt(escalate=False) を追加 - _run_fix_loop でプラトー検出 → escalate を渡す - RunLog に escalations カウントを記録(観測用)
7e1efda+339 -0 / 3 files- phase_timings: 各フェーズの所要秒 - code_plan: Plan Mode 成果物サマリ (pin数/z-index層/tween数) - fix_loop: 反復ごとの errors/warnings/autofix_s/stalled - final: pass/errors/warnings/iterations/stop_reason/total_s - scripts/utils/run_log.py: RunLog クラス + CLI - create.py: RunLog 初期化と finalize を組み込み、_run_fix_loop に - tests/test_run_log.py: finalize/flush_partial/summarize のテスト3件
77a6830+251 -0 / 1 files- generate_code_plan(): pin区間表 / z-index台帳 / tween依存グラフ / - code_plan.json + code_plan.md として保存 - Phase5 プロンプトに code_plan.markdown を注入、厳守事項を明示 - 空pin禁止(変化要素3つ未満)・overwrite:"auto" 強制・z-index層管理
e658e28+62 -11 / 3 files- hero_scrub_invisible: pin: true を検出してscrubアニメを誤検知しないよう修正
- css_js_conflict_check: re.S で全CSS横断マッチしていたのを同一ルール{...}内限定に
- _FIX_INSTRUCTIONS に scroll_velocity_text / marquee_text の具体修正手順を追加
- technique_rules violations を technique 名で _FIX_INSTRUCTIONS に自動マッピングe6c87ba+214 -4 / 2 files27fac1c+13 -13 / 1 filesa814cc6+118 -0 / 2 files- .service の ExecStart と EnvironmentFile の .env を舐め、 - enabled なサービス同士で同一ポートがあれば warning - disabled は衝突候補から除外(運用上無害) - auto_diagnose が検知時に Slack 通知(毎日5:00 cron)
534dab3+85 -5 / 2 files- health_report._check_services で systemd --user サービス稼働確認 - 死亡時は overall_status=critical に昇格 - auto_diagnose._restart_service で自動再起動(cron毎日5:00) - systemdのRestart=on-failure→always+StartLimitIntervalSec=0は
4e492d7+9433 -89 / 90 files1b940cc+47 -41 / 1 filesa063ef5+436 -4 / 2 files808c47a+26 -23 / 1 files0b3776e+2 -0 / 2 files7444d7f+22 -0 / 24 files98c000f+15 -7 / 1 files- visual-review - self-check - autofix-N(修正ループ) - inspiration-code / create(メインコーディング)
5eb64ea+75 -5 / 3 files- capture_animation_frames (180s)
- check_responsive (120s)
- capture_interactions (120s)
- page.set_default_timeout(30000) + navigation_timeout
- wait_until を networkidle から load に変更
- page.on('crash') ハンドラでクラッシュ可視化fae740a+60 -5 / 3 files- tests/conftest.py で ERROR_LOG_DIR を tmp_path にリダイレクト(autouse) - 本番の汚染エントリ14件は別途削除済み
3963d09+93 -21 / 11 files127891f+133 -0 / 4 filescfb91de+285 -2 / 1 files22a497a+24 -16 / 2 filesc5227f9+7 -7 / 1 files95d99bb+53 -2 / 1 files9645442+1 -1 / 1 files1a0e47e+4 -4 / 1 files49b8091+53 -2 / 1 files355f491+0 -0 / 1 files69f1732+15 -18 / 1 files6fd3228+183 -2 / 1 files10e5151+17 -0 / 1 files6a38dd2+97 -0 / 2 files- .claude/commands/root-cause.md: 根本原因調査スキル(分析+提案のみ、修正は実行しない) - collect_health_check.py: 自動修正失敗時にauto_diagnoseを自動起動 - ヘルスチェック→分類→根本原因分析→Slack通知の完全自動パイプライン
aa064a5+349 -0 / 2 files- health_reportからcron/disk/db/git問題を自動分類 - エラーパターン繰り返し検知 - 根本原因(一時的/構造的/環境)と修正提案をSlack通知 - cron追加: 毎日5:00 JST - テスト8件追加
d229b9b+181 -0 / 2 files- scripts/ops/antipattern_watch.py: git diffで新規/変更bug_idを検出、自動修復実行 - cron追加: 毎日0:30 JST - テスト3件追加(初回実行/ID抽出/変更なし)
e63a6c9+121 -1 / 2 files- _check_and_archive_disk(): shutil.disk_usageで使用率判定→archive.pyで退避 - run_recovery_cycleに回復戦略として組み込み - テスト2件追加(閾値未満/退避先未設定)
121b243+61 -6 / 2 files- deploy.py: _run_review_gate()実装、review_siteのpass/failでデプロイ可否判定 - デフォルトreview_gate=True、不合格時はSlack通知+デプロイ中止 - テスト追加: 品質ゲートブロックケース
f89a742+440 -0 / 3 files- scripts/ops/deploy.py 新設: works/コピー→build_frontend_data→PR→subtree pushを一貫実行 - create.py: 生成完了後に自動デプロイ(--no-deployでスキップ可) - テスト7件追加(resolve_slug, copy_to_works, run_deploy成功/失敗)
edb2365+249 -1 / 4 files- health_report: _check_git_integrity()でfsck破損・欠損を検知、レポートに統合 - auto_recovery: _check_and_repair_git()でリモートからpack修復、回復サイクルに統合 - テスト: TestGitIntegrity 2件追加(healthy/corrupt検出)
4f6226b+810 -0 / 6 files- /changelog ページ新設(夜桜テーマ統一、日付別タイムライン表示) - 統計サマリー(総エントリ/新機能/修正/影響部署数) - コミットタイプ別バッジ、部署タグ、BREAKING表示 - ChangelogEntry/ChangelogData型定義をtypes.tsに追加 - ヘッダー・フッターにChangelogナビリンク追加 - build_frontend_data.pyにchangelog.json同期処理追加 - changelog_generator.pyに--syncオプション+sync_to_frontend()追加 - cron: 毎朝6:07にchangelog更新+フロントエンド同期
f31765c+562 -0 / 1 files7ee75e9+689 -1 / 6 files- changelog_generator.py: gitログ解析→構造化JSON(data/changelog.json) - コミットタイプ(feat/fix/update等)の自動パース+日本語ラベル付与 - 変更ファイルから影響部署を自動推定(DEPARTMENT_MAP) - インクリメンタル更新(前回処理済みコミット以降のみ追加) - /update-docsスキル追加、テスト29件全通過
65b74f8+512 -39 / 4 files- auto_recovery.py: 統合回復サイクル - 収集エラー検出→fix-collectスキルで自動修復 - パイプラインエラー繰り返しパターン→エラー種別に応じた対応 - rate_limit/overloaded: 傾向記録(runnerリトライ済み) - timeout: インシデント記録+設定見直し推奨 - process_crash: 構造的問題として手動調査推奨 - ロック機構(同一エラー1日1回制限) - 回復結果のJSONL記録 + Slack通知
d2adaf3+811 -0 / 8 files- error_analyzer.py: claude_runnerエラーログ分析、パターン検出、インシデント記録 - エラー種別/Phase別/モデル別の統計サマリー - 繰り返しパターンの自動検出(label×error_typeの閾値判定) - レコメンデーション自動生成(rate_limit頻発→間隔調整等) - health_report.py: 統合ヘルスレポート - cronジョブ鮮度チェック、ディスク使用状況、DBバックアップ状態 - overall_status(healthy/warning/critical)の自動判定 - スキル2種: /system-health(ヘルスチェック)、/diagnose(障害診断)
001aabc+509 -144 / 6 files- subprocess.run → Popen+スレッド監視に移行、プロセス生存中は自然完了を待つ - expected_duration(想定時間)超過はログ警告のみ、hard_timeout(安全弁15分)でのみ強制終了 - エラー原因分類: rate_limit/overloaded/process_crash/timeout/not_found/broken_pipe - エラー種別に応じたリトライ判定・待機時間(rate_limit→段階的バックオフ) - エラーログをlogs/claude_runner/にJSONLで蓄積(ナレッジ用) - elapsed_secondsを全結果に含めてデータ収集 - timeout引数は後方互換でhard_timeoutに変換 - inspiration_engine/site_visionの個別リトライを撤廃、runner委譲
71e0b81+182 -19 / 2 files- generate_information_design: 最大2回リトライ、タイムアウト段階的延長(240→300→360s) - JSON解析失敗時はプロンプトにJSON厳格化指示を追加して再試行 - revise_information_design: 最大1回リトライ、タイムアウト延長(180→240s) - フォールバック(最小3セクション)は全リトライ失敗後の最終手段に - リトライ動作のユニットテスト6件追加(計33テスト)
a3ed2b3+9 -7 / 1 files- info-designのプロンプト増加でPhase 2が180sに収まらないケースあり - revise後のJSONでimagesがstring型で返るケースのガード追加
d629610+730 -33 / 9 files- 新規: data/persuasion_models.yaml (AIDCA/PAS/BAB/4Ps) - 強化: formats.yamlに推奨説得モデル追記 - 強化: information_design.jsonにペルソナ・CTA戦略・メッセージ階層追加 - 後方互換: 全引数optional、未指定時はAI推論で従来通り動作 - テスト: 13テスト追加 (計27件、全PASS)
93d1d97+129 -21 / 2 files- mainブランチ以外では自動クリーンアップ/修正を実行しない - コミット前にgit pull --rebaseでリモート同期(push rejected防止) - scripts/カテゴリを追加(自動修正後の変更が適切に分類される) - テスト31件全通過
e7b3731+203 -7 / 6 files- /post-generate: featureブランチ→PR→自動マージ→Vercelデプロイの統合フロー - /add-to-dashboard: gallery-items.json更新 - /add-to-ibuki: works/へのコピー+フロントエンド反映 - CLAUDE.mdスキル一覧更新 - 既存ファイルのlint修正 (deploy_preview.py, test_inspiration_engine.py)
ed92da4+12 -0 / 1 files4c9128e+255 -8 / 3 files- /clean-repo スキル: 手動でリポジトリをカテゴリ別にコミット&クリーン化 - _auto_clean_repo(): 自動修正前に未コミット変更を自動整理 - gallery/data/kb をカテゴリ別にコミット - ルート直下のゴミファイル(.jpg,.tmp等)を自動削除 - これにより未コミット変更が原因で自動修正がスキップされる問題を解消
70fcb09+15129 -13253 / 4 files0f034d6+39 -21 / 3 files68fca60+18 -40 / 22 files3a51758+12 -0 / 1 files457eb03+102 -2 / 3 files- 成功率50%以下で自動検知(success_rate_drop) - Traceback 3件以上で自動検知(uncaught_traceback)
46cca14+71 -35 / 3 files5fad7ba+492 -0 / 3 files9eca352+40 -15 / 2 files- collect.pyからリアルタイム通知を削除(2時間おき×12回は過多) - daily_collect_report.py 新規: 前日分のDB登録件数を集計してSlack通知 - cron登録: 毎朝10:00 JST実行
81d6c41+13 -7 / 1 files7a039bb+20 -1 / 3 files- --disable-gpuだけではスクショ時にGPUプロセスが呼ばれてクラッシュしていた - swiftshaderでソフトウェアレンダリングを強制 - siteinspireのセレクタが #main-content を拾っていた問題の再発防止
49e9c04+244 -30 / 4 files- test_browser.py: モック単体(8件) + Playwright実起動統合(3件) - 実起動でnew_context/スクショが成功すること(GPUクラッシュの直接検証) - test_weekly_report.py: 単体(6件) + generate_report統合(3件) - patternsテーブルなしでgenerate_report()が完走すること(実際のエラー経路) - test_notify.py: メッセージ生成(5件) + config連動(3件) - notify_onにcollect_summaryがない場合の非送信も検証 - test_standards_update.py: タイムアウト値の下限チェック(4件) - 600s未満にならないことをガード
35b311a+207 -0 / 3 files- test_browser.py: launch_browser()の引数・GPU無効化・webkit・エラー (8件) - test_weekly_report.py: patternsテーブル未存在時のフォールバック (6件) - test_notify.py: collect_summary通知のメッセージ生成・アイコン分岐 (5件)
2061697+44 -4 / 5 files2da7d78+89 -19 / 12 files- scripts/utils/browser.py 新規: --disable-gpu付きの共通起動関数 - 全19箇所のlaunch()呼び出しをlaunch_browser()に統一 - 対象: collect/review/forge/redesign/screenshot/study等10ファイル
537dc49+4909 -2 / 17 files- AURORA Wellness (美容/サービス紹介) - 鐵 KUROGANE Forge (製造業/ブランドストーリー) - NEXUS Creative Agency (エージェンシー/コーポレート)
e0b1a97+1 -1 / 1 files2d9521c+4873 -395 / 57 files- LUMIÈRE Photography (portfolio, エレガント・光・繊細) - KINETIC Lab (tech, 未来的・サイバー・ダイナミック) - 和菓子処 月の雫 (food, 静謐・和モダン・伝統美)
ffc4dae+49 -424 / 15 files2c878cb+8 -1 / 1 files