リリースノート (Release Notes)
Project Nemesis Index (pni501) のリリース履歴、アーキテクチャの拡張、および各バージョンの主な新機能一覧です。
Version 0.1.4
Release Date: 2026/11/10
バージョン 0.1.4 では、Drawlib PDF レポート向けの公式 PNI501 ブランドアセットと表紙ロゴ描画ヘルパー、ローカルキャッシュおよびコンテナイメージを一括削除する pni cache clean CLI サブコマンド、さらに Go・TypeScript・JavaScript の静的解析・ランタイムハーネス機能(モノレポのロックファイルスコープ解決、.d.ts 型定義の自動認識、IIFE / ES2022 #private クラス解析、Playwright Headless Chromium の自動プロビジョニングなど)の大幅な強化が導入されました。
1. 公式ブランドアセットとレポートコンパイラの強化 (pni._reporter)
- 公式ブランドアセットの同梱と
draw_pni_logo()表紙ヘルパー:pni report init実行時、Audit・Migration・Progress の全ブループリントで<src_dir>/<target>_src/_assets/に公式ブランドアセット (logo.png,logo_dark.png,favicon.png) が自動コピーされるようになりました。- スキャフォールドされる
utils.pyにdraw_pni_logo(xy=(135.0, 48.0), width=9.0, *, dark=True)ヘルパーが追加され、00_cover.mdのダーク/ライト表紙に PNI501 公式エンブレムを簡潔に配置できます。
ClassDiagram/ClassNodeに対する Drawlib リンターチェック:lint_drawlib_chapters()(pni report checkおよびpni report build) が、ClassDiagramやClassNodeでのStyles.Whiteの使用(白背景に白文字となり視認不能になる問題)を自動検出し、Styles.Neutralを推奨する警告を出力するようになりました。
- マルチポータル環境向けの相対リンク検証 (
--link-check-root):pni report build/compile_report_project()に--link-check-root <dir>(link_check_root) オプションを追加し、複数ターゲットの HTML ポータル配下にネストされたレポートから親ポータル (../index.html) への相対リンクをルートディレクトリ基準で検証できるようになりました。
2. CLI の機能追加 (pni cache clean と --version)
pni cache cleanサブコマンド:- ローカルの
.pni/cache/ディレクトリの削除に加え、--docker指定時に一時生成されたpni-harness-*、pni-proj-*、pni-sec-*、pni-pentest-*コンテナイメージやダングリングレイヤー、ビルドキャッシュを一括パージするpni cache clean [--docker] [--container-engine auto|docker|podman]を追加しました。
uv run pni cache clean --docker- ローカルの
- ルート
--version/-Vフラグ:pni versionサブコマンドに加え、pni --version(-V) フラグで即座にバージョン (pni501 v0.1.4) を確認できるようになりました。
- ワークフロー実行時の自動 Supersede(置き換え):
start_workflow_run()のデフォルトがsupersede=Trueとなり、同一ワークフローの新しい実行を開始した際、未完了の古い実行レコードを自動的にCANCELLED(superseded_by_<run_id>) として整理するようになりました。
3. TypeScript / JavaScript 解析およびランタイムハーネスの強化
- AST 静的解析の精度向上 (
ast_analyze/ts_js/):- バレル再エクスポート循環と実装循環の分離:
index.tsなどのバレルファイルを経由する意図的な再エクスポート循環 (type_checking_cycles) を、実際のモジュール間の実装循環 (circular_dependencies) から分離して計上します。 - IIFE / UMD クロージャの展開と ES2022
#privateクラス対応: トップレベルの IIFE/UMD ファクトリ (var lib = (() => { ... })()) 内部の関数や、ES2022 のprivate_field_definition/#privateメソッドを展開してシンボル数・ドキュメントカバレッジを正確に算出します。 - コンパニオン
.d.ts型定義の自動認識:package.jsonの"types"/"typings"または同梱の*.d.tsファイルを検出し、JavaScript パッケージのhas_type_marker = True判定および公開.d.ts型シグネチャの型安全性評価を自動適用します。 - 型レベルテストとカスタムアサーションの認識:
expectTypeOf<T>()、assertType<T>()、// @ts-expect-error、test/・tests/配下のサフィックスなしテストファイル(非テストヘルパーを除外)、assert*/verify*/check*ヘルパー関数、web-test-runner.config.*の外部 CDN スクリプト依存を正確に認識します。
- バレル再エクスポート循環と実装循環の分離:
- Playwright ブラウザハーネスとカバレッジパーサーの拡充 (
runtime_check/):typescript/node.dockerfileおよびjavascript/node.dockerfileに@vitest/coverage-v8をプリインストールし、@playwright/test、playwright、または@vitest/browserが検出された場合は Playwright Headless Chromium (PLAYWRIGHT_BROWSERS_PATH=/ms-playwright) と OS 共有ライブラリを自動プロビジョニングします。lcov.info(parse_lcov_info)、@web/test-runner(WTR)、Mocha (parse_node_test_output) の出力パーサー、複数スイート実行時の Vitest カバレッジマージ (--coverage.clean=false)、およびモノレポのサブパッケージ単位のtsc --noEmit -p <subpkg>/tsconfig.jsonスコープ実行に対応しました。
- モノレポのロックファイルとコンテナ脆弱性スコープの精緻化 (
security_scan/):discover_non_core_packages()がpnpm-lock.yaml、package-lock.json、yarn.lockのワークスペース構成を解析し(ゼロ依存ターゲットにおける docs/workspace パッケージの分離を含む)、コンテナ内のグローバルツールチェーンパス (/usr/local/lib/node_modules等) をharness_os/os_packageとして分類します。
4. Go AST 解析の改善と非 root コンテナハーネス (go)
- Go AST 解析の改善 (
ast_analyze/go/):check_exception_hygiene()で部分的に無視されたエラー戻り値 (val, _ := ...) を検出します。check_complexity()で複数行の raw バッククォート文字列(SQL・HTML・テンプレート等)を関数 LOC 肥大化のペナルティから除外します。check_type_safety()でformat string引数を伴うfmt.Printfスタイルの可変長引数 (...any/...interface{}) を weak-type ペナルティから除外します。check_test_quality()でt.Runのメソッド値デリゲーションおよびヘルパー関数内のアサーションを認識します。
- 堅牢化された Go コンテナテンプレート (
go/go.dockerfile):- Go
1.22Bookworm イメージを下限 (1.22〜1.24) とし、非 root ユーザーUSER pni(UID 10001) でのテスト実行と、ビルド時の/go/cache事前ウォームアップによる--network=noneオフライン実行の安定化を実現しました。 - デフォルトの
.pni/pni.tomlのinclude_gitignoredに"go.sum"を追加し、exclude_patternsに"docs/**"と"docs_src/**"を追加しました。
- Go
Version 0.1.3
Release Date: 2026/11/10
バージョン 0.1.3 では、従来の 3 言語から 6 つのターゲット言語 へと対応範囲を拡大し、Go (go)・TypeScript (typescript)・JavaScript (javascript) 向けの Tree-sitter AST アナライザー、カスケードルール、オフライン Docker ハーネス、テスト/カバレッジパーサー、マイグレーション解析器を追加するとともに、Java および PHP の解析精度を強化しました。
1. Go・TypeScript・JavaScript のフルサポート(計 6 言語対応)
- Tree-Sitter AST アナライザー(計 27 個の新規チェッカー):
go、typescript、javascriptの各言語に 9 個ずつの決定論的 AST チェッカー(complexity,type_safety,doc_coverage,architecture,code_hygiene,exception_hygiene,test_quality,security_patterns,resource_safety)を実装しました。
- ビルトイン言語ルールカスケード(計 15 個の新規ルールファイル):
rules/go/、rules/typescript/、rules/javascript/配下にcoding_convention.md、architecture_design.md、test_strategy.md、security_policy.md、audit_rubric.mdを追加しました。
- 複合アクション・ワークフロー・オフライン Docker ハーネス:
go.audit_analyze、typescript.audit_analyze、javascript.audit_analyze複合アクション、full_audit/quick_checkワークフロー、およびgo-cover・istanbul-summaryカバレッジパーサーを備えた Docker テンプレート (go/go.dockerfile,typescript/node.dockerfile,javascript/node.dockerfile) を追加しました。
- マイグレーション解析器:
- Go、TypeScript、JavaScript 向けに外部依存タッチポイントスキャナー、公開 API コントラクト抽出器、AST コードモッド候補検出器を追加しました。
2. Java および PHP アナライザーの強化
- Java (
java):- JUnit 4 の
@Test(expected=...)、AssertJ、Hamcrest、SpringMockMvcアサーションの認識、Javadoc コメントのメソッド LOC 除外、カスタム Maven ビルド引数のサポート、およびpom.xmlのtest/provided/optionalスコープの自動フィルタリングを追加しました。
- JUnit 4 の
- PHP (
php):- 無名クラスシンボルの整形、PSR-3 ロガー呼び出しと生の
error_log()デバッグ出力の区別、およびcomposer.jsonの PSR-4 マッピングからの対象ソースディレクトリ自動検出を追加しました。
- 無名クラスシンボルの整形、PSR-3 ロガー呼び出しと生の
Version 0.1.2
Release Date: 2026/11/08
バージョン 0.1.2 では、security_scan における 4 段階の脆弱性スコープ分類、Python AST アナライザーの精緻化、およびワークフロー状態管理コマンド (rewind と cancel) を導入しました。
1. 4 段階の脆弱性スコープ分類 (security_scan)
dep_scopes.pyによる依存関係スコープ自動分類:- 開発・ドキュメント用依存関係やコンテナベースイメージ由来の誤検知ペナルティを排除するため、Trivy および OSV の検出結果を以下の 4 スコープに自動分類します。
runtime_core: 本番ランタイムのコア依存パッケージ(スコア評価の主対象)。dev_or_optional: テスト・リンター・ドキュメント生成ツールやオプション依存。os_package: アプリケーションコンテナ内の Debian/Alpine OS パッケージ。harness_os: 監査用コンテナハーネス (pni-sec-*/pni-harness-*) の OS パッケージ。
- 開発・ドキュメント用依存関係やコンテナベースイメージ由来の誤検知ペナルティを排除するため、Trivy および OSV の検出結果を以下の 4 スコープに自動分類します。
2. ワークフローの巻き戻し・キャンセル CLI と Python AST の改善
- ワークフロー状態リカバリ (
pni workflows rewind&cancel):- 指定したアクションまでワークフローを巻き戻して後続アーティファクトをクリアする
pni workflows rewind <action_id>(エイリアスretry-action)と、古い実行を整理するpni workflows cancel(--superseded/--supersede) を追加しました。
- 指定したアクションまでワークフローを巻き戻して後続アーティファクトをクリアする
- Python AST 解析の改善:
ast_analyze/python/におけるTYPE_CHECKING条件付きインポートの扱い、@overload/@abstractmethodスタブの除外、および docstring カバレッジ算出ロジックを改善しました。
Version 0.1.1
Release Date: 2026/11/06
- PyPI パッケージングおよびメタデータの改善:
- パッケージ分類情報、
pniCLI エントリポイント、同梱ルール/ワークフローのパッケージデータ構成、およびリリース検証ワークフローを改善しました。
- パッケージ分類情報、
Version 0.1.0
Release Date: 2026/11/06
AI オーケストレーション型ソフトウェアエンジニアリング監査・セキュリティ検証・マイグレーション計画・ビジュアルレポートフレームワーク Project Nemesis Index (pni501) の初回パブリックリリースです。
- コアアーキテクチャ:
- 決定論的アクション実行と LLM 審査ゲートを統合したステートフルな Pull-Push 型 SQLite ワークフローエンジン (
.pni/state.db)。 - 3 層カスケードルールシステム (
common/→<language>/→.pni/rules/) と 2 層設定ローダー (.pni/pni.toml)。 - Python・Java・PHP 向けの決定論的アナライザー群 (
project_inspect,ast_analyze,run_check,security_scan,web_pentest,migration_analyze,progress_analyze)。 - 7 軸
ScoreResult(100 点満点の重み付けルーブリックおよびS/A/B/C/Dグレード判定)とMigrationPlanResult。 - 7 章構成の 16:9 ベクター PDF および HTML スライドデッキを生成する Drawlib ビジュアル PDF レポーター (
pni report init,pni report check,pni report build)。
- 決定論的アクション実行と LLM 審査ゲートを統合したステートフルな Pull-Push 型 SQLite ワークフローエンジン (