summaryrefslogtreecommitdiff
path: root/doc/AuditReport.md
blob: b1f782fa50868a9f8b2ea65557e159a1c2f48d8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# v1再監査報告

## 基準

2026-08-11、commit `37386b8`を現行実装の検証対象とした。2026-08-09のPhase/Release証跡は履歴として扱い、現行PASS判定には流用していない。

## 確認した矛盾と是正

| 観点 | 監査時の状態 | 是正 |
|---|---|---|
| Internal Tool | 仕様・設計・計画で5群/6群が混在 | 仕様から数とcatalogを除去。外部性質だけを残し、名前/schemaをDesignのTool catalogへ移管 |
| policy deny | 初回failedと最大3回replanが混在 | 同一呼出しへ再投入しない条件付きreplanへ統一。同一deny、計画未変更、実行不能、replan失敗でfailed |
| Skill形式 | READMEにlegacy互換記述 | `<skill-name>/SKILL.md`だけに統一 |
| Task完了 | 実行Taskなしでもcompletedになり得た | TaskGraph全件completedだけを完了条件とし、実行不能は理由付きfailedへ変更 |
| Planner fallback | 空/不正planから曖昧なfallback graphを生成 | `think=false`で1回だけ再試行し、再失敗はplanning failureへ変更。planning中のTool callを禁止する明示promptを追加 |
| Tool証跡 | 読取Taskや別Taskの副作用で完了できた | Taskごとの`required_tools`を設計し、必要Tool成功まで完了不可、範囲外副作用はdispatchもsession投入もしない |
| task_update | LLMが状態遷移可能 | Tool catalogには維持し、Task追加/dependency追加/estimate変更だけに限定 |
| cancel | CancellationToken通知時点でterminal | Task Resource cleanup完了後だけcancelled。cleanup失敗はfailed |
| progress/token | progress固定値、phase別token欠落 | TaskGraph同期、critical path実値、全Ollama phase集計へ変更 |
| context | 閾値超過時に単純削除 | structured要約成功後だけcompactし、失敗時は原文保持 |
| Configuration | validationのみでruntime未接続、local overrideなし | max_tasks/num_ctx/ratio/timeoutを接続し、`agent.local.yaml` mergeを追加 |
| CLI/運用 | `serve`必須、publish後の環境値復旧が必要 | 引数なし/先頭optionをserve化。local prompt/Skill/configをBundle対象外に分離 |
| Logging/Audit | 相関field・iteration・event名が不一致 | LLM相関/rotationとAudit必須eventへ統一。read-only JSONL viewerを追加 |

## 現在の判定

Release buildはwarning 0/error 0。管理者suiteでCore 82件、Planner 10件、Windows Security/Recovery 42件がすべてPASSし、skipは0だった。self-contained Bundleのruntime check、stdio、HTTP IPv4/IPv6 Operational E2Eも`deepseek-v4-flash:cloud`でPASSした。各E2Eでは実file read/edit、in-process build、独立self-test、Task進捗、ACL/WFP/temp cleanupを確認した。

MCP conformance runnerはapplication failure 0だった。runner専用fixtureを本番MCP Toolとして公開しないため実施不能なcheckと、Windows runner終了時のlibuv assertionはrunner limitationとして分離し、PASSには数えていない。Requirementの受入根拠は製品のCore/MCP integration、Windows suite、Operational E2Eで満たしている。詳細と現行証跡は`plans/RequirementTraceability.md`を正本とする。

既存の仕様語彙で表現できない独立概念は実装へ追加していない。local override、status診断field、ログ相関field、Task固有Tool証跡はSpecifications/Designの責務に従って記録した。