summaryrefslogtreecommitdiff
path: root/plans/RequirementTraceability.md
blob: 9d6e93b583da5cfdab73be3afefbdcd7b2a25fcb (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Requirement Traceability

`PASS` は2026-08-09のRelease buildおよび管理者権限の最終実行で、実行可能なtest/evidenceが確認できたことを示す。最終証跡は `artifacts/evidence/final-elevated/` に保存する。

## Acceptance Tests

| ID | Implementation / evidence | Status |
|---|---|---|
| AT-01 | `McpStdioTests.InitializeListAndCallExposeOnlyTwoStrictTools` | PASS |
| AT-02 | `McpHttpTests`、E2E-02 `127.0.0.1` / `::1` | PASS |
| AT-03 | HTTP GET `/mcp`, `/sse`, `/message` assertions | PASS |
| AT-04 | `TaskRegistryTests`, MCP stdio integration | PASS |
| AT-05 | `OllamaClientTests.Chat_sends_expected_request_and_returns_usage` | PASS |
| AT-06 | `Non_vision_model_rejects_images_with_selected_locale_message_before_chat` | PASS |
| AT-07 | Windows backend実効果試験、E2E Audit | PASS |
| AT-08 | junction / symlink chain escape試験 | PASS |
| AT-09 | path/hash一致・不一致試験 | PASS |
| AT-10 | AppContainer loopback actual traffic default deny | PASS |
| AT-11 | exact host:port allowおよびwrong-port actual deny | PASS |
| AT-12 | child-process restriction 4経路、Job timeout/orphan 0 | PASS |
| AT-13 | ACL/WFP/loopback journal crash recovery試験 | PASS |
| AT-14 | `TaskGraphTests.Cycle_is_rejected_without_mutating_graph` | PASS |
| AT-15 | `TaskGraphTests.Completed_task_is_immutable` | PASS |
| AT-16 | deterministic PERT/CPM tests | PASS |
| AT-17 | runtime and graph usage accumulation tests | PASS |
| AT-18 | en/ja locale、3経路の日本語Operational E2E | PASS |
| AT-19 | `LocaleCatalogTests.AdditionalLocaleLoadsWithoutCodeChange` | PASS |
| AT-20 | malformed/unknown locale tests | PASS |

## Security Tests

| ID | Implementation / evidence | Status |
|---|---|---|
| ST-01 | E2E `file_read`実行、capability試験 | PASS |
| ST-02 | outside-root deny、副作用なし | PASS |
| ST-03 | backend `file_edit`実効果、ACL復旧 | PASS |
| ST-04 | delete capability独立試験 | PASS |
| ST-05 | junction escape拒否 | PASS |
| ST-06 | two-link symlink chain escape拒否 | PASS |
| ST-07 | approved canonical path/hash process成功 | PASS |
| ST-08 | hash mismatch拒否 | PASS |
| ST-09 | shell disabled拒否 | PASS |
| ST-10 | `Start-Process`、Process API、shell、rename/copyの4経路をOS child restrictionで拒否、marker/PIDなし、Audit deny | PASS |
| ST-11 | Job timeout後PID不存在、Operational E2E orphan 0 | PASS |
| ST-12 | AppContainer actual loopback default deny | PASS |
| ST-13 | IPv4/IPv6 filter生成、IPv4 exact allow actual traffic | PASS |
| ST-14 | actual wrong-port deny | PASS |
| ST-15 | public MCP exposes only two strict tools | PASS |
| ST-16 | strict tool schema、path policy deny時backend call 0 | PASS |
| ST-17 | applied ACL journalのcrash recovery、descriptor一致 | PASS |
| ST-18 | dynamic WFP engine close+loopback exemption journal recovery、残留0 | PASS |
| ST-19 | malformed locale fatal tests | PASS |
| ST-20 | non-loopback bind rejection test | PASS |

## Operational / Release

| Requirement | Evidence | Status |
|---|---|---|
| Release build | Release build warning 0/error 0 | PASS |
| Unit/integration | Planner 10/10, Core 47/47, skip 0 | PASS |
| win-x64 self-contained Bundle | publish directory, ZIP, manifest, checksum | PASS |
| Bundle-only elevated startup | `bundle-check.log`: administrator/BFE/WFP probe PASS | PASS |
| E2E-01 stdio | `e2e-01-stdio.log`: local Ollama、read/edit/build/test、日本語、Audit、cleanup | PASS |
| E2E-02 HTTP (`127.0.0.1`, `::1`) | `e2e-02-http-ipv4.log` / `e2e-02-http-ipv6.log` | PASS |
| clean resource state | process/ACL/WFP/loopback/temp/journal/backup残留0 | PASS |
| README-only fresh setup | ZIP fresh extraction、source参照0、README手順による最終runner | PASS |

## MCP 2026-07-28 Migration

| Requirement | Implementation / evidence | Status |
|---|---|---|
| SDK 2.0.0 / stateless discover | `Directory.Packages.props`, `McpHost`, official `server-stateless` evidence | PASS (28/28 core checks, unexpected failure 0) |
| GET/DELETE 405、Legacy SSE無効、Session IDなし | `McpHttpTests` | PASS |
| stdio / strict two Tool compatibility | test-only `Agent.Mcp.TestHost`, `McpStdioTests` | PASS |
| official Tasks negotiation/lifecycle | `WithTasks`, `PersistentMcpTaskStore`, `McpHttpTests`, conformance Tasks evidence | PARTIAL: lifecycle/cancel/error/required-task PASS; MRTR fixture composition remains incompatible with alpha.11 |
| Task persistence/restart/TTL | `PersistentMcpTaskStoreTests` | PASS |
| CLI preflight / ready | `Program`, `McpHostLogObserver`, locale catalog | PASS (elevated live run required for final Gate) |
| HTTP request log/redaction | `McpHostLogObserver`, `ObservabilityTests` | PASS |
| conformance acquisition/offline runner | `Acquire-McpConformance.ps1`, `Run-McpConformance.ps1`, `Run-McpTasksConformance.ps1` | PASS |

`0.2.0-alpha.11`のTasks extension scenarioはrelease requirementに含まれずinformationalとして実行され、正しい`CreateTaskResult`を通常`CallToolResult` schemaで検査する`wire-schema-valid`既知制約がある。これは`runner_limitations`へ分離し、application failureとは数えない。MRTR input/composition scenarioはSDK 2.0.0との組み合わせで未達のため、Tasks Extension GateはPASS扱いにしない。

公式core runnerの個別結果では`server-stateless` 28/28、DNS rebinding、multiple POST streamがPASSした。一方、test-only conformance hostのfixture不足またはscenario間のcapability競合により、`tools-list`(description)、`json-schema-2020-12`(診断Tool)、`caching`(Prompt/Resource/Template)、`http-header-validation`(Tasks必須ToolをTasks非対応clientが呼ぶ組合せ)は未達である。production hostのexpected-failureとして隠さず、conformance総合GateはPARTIALのままとする。