Skip to main content

chaos-study-report

Render the evidence collected by an executed Chaos study as a self-contained HTML report for your review: steady-state verdict label, tests run, evidence tables, findings with severity labels, stated limitations, and remediation suggestions. Pure read of collected evidence — executes nothing.

ソース情報

リポジトリ
microsoft/chaos-studio
ソースの最終更新活動
2026年10月5日 21:11
検出された SKILL.md の言語
英語
スター
3
フォーク
4

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
5 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
chaos-study-report
description
Render the evidence collected by an executed Chaos study as a self-contained HTML report for your review: steady-state verdict label, tests run, evidence tables, findings with severity labels, stated limitations, and remediation suggestions. Pure read of collected evidence — executes nothing.
# chaos-study-report — render collected evidence as a report The run produced numbers. This skill lays them out for your review, and — just as importantly — states what they do **not** show. ## Principles **Interpretation is pure.** This skill reads only what the run wrote. It calls no Azure APIs, collects nothing new, and changes nothing in your environment. Given the same evidence it produces the same report, every time. **Absent evidence is reported as absent.** A signal that was not collected renders as *not measured*, never as `0`. A zero is a measurement; a gap is not. **A pass requires proof the action landed.** Movement is not proof. The plan freezes a mechanism probe with a numeric condition, and the report evaluates that exact condition against evidence taken from inside the action's own window. A signal that drifted the right way but never met the threshold does not prove anything, and a condition that cannot be parsed or was never measured is reported as unproven with its reason — never as a pass. Without that proof the verdict is **Inconclusive**, not "held". Claiming resilience against an action that never arrived is the most expensive mistake this suite can make, so it is designed out. **Severity follows recovery, not drama.** A breach that never recovers is `critical`. The identical breach that self-heals within the recovery window is `medium`. What matters is whether the system came back. **Limitations are part of the finding, not a footnote.** Every report states what it could not establish. A short injection window, a missing signal, an unproven mechanism — each gets an explicit code so a reader can judge how much weight the conclusion carries. **The report must survive being emailed.** One file, no network. All CSS is inline, there is no JavaScript, and no external images or fonts are referenced. The renderer refuses to emit a report containing a `<script>` tag or an unsubstituted token. ## Usage ```powershell ./scripts/Invoke-ChaosStudyReport.ps1 -StudyId latest ``` Options: - `-NoSeal` — render for review without sealing the study - `-OutputPath` — write the HTML somewhere else as well Writes `findings.v2.json` and `report.html` into the study directory, then seals the study. Sealed studies are never overwritten: re-reporting a sealed study renders beside it as `report-<studyId>.html` and exits `0`. ## Verdicts | Verdict | Condition | | --- | --- | | **Steady state breached** | any `critical` finding — breached and did not recover | | **Degraded but recovered** | breached during injection, recovered in the post window | | **Inconclusive** | the action could not be proven to have landed | | **Steady state held** | the action landed and the objective survived | ## Report sections 1. Masthead — verdict, workspace, scope, action, window 2. What was asked — the steady-state predicate and hypothesis 3. Tests run — the action as the service described it, windows, scenario run outcome 4. Evidence — signal-by-signal, before / during / after 5. Findings — prioritized, with severity and the evidence behind each 6. Limitations — what this study could not establish 7. Remediation — what to do about the findings 8. Provenance — plan hash, command trail, api-versions The "Tests run" section states that the action metadata was discovered live from `Microsoft.Chaos/locations/{region}/actions`, so a reader can see the identity, type and applicability came from the platform rather than from a local list. ## Limitation codes | Code | Meaning | | --- | --- | | `L1` | A single study is a sample, not a proof of general resilience | | `L2` | One or more planned signals were not collected | | `L3` | The action mechanism could not be proven to have landed | | `L7` | Injection window ≤ 3 minutes — too short to separate resilience from luck | | `L8` | The scenario run failed or was cancelled mid-run | | `L9` | The plan hash did not match at run time | | `L10` | Action metadata was not confirmed against the live action list | Additional codes are carried forward from the readiness gates recorded at scope time. `L1` is always present — by design, because it is always true. ## Notes - The report is deterministic apart from its `generatedAt` timestamp. - Every value is HTML-escaped on the way in; evidence is untrusted input. - Findings carry a stable `findingKey` so `chaos-study-history` can tell a persisting problem from a new one across studies. - **Never write this report by hand.** The renderer is the only thing that can produce one, because the report's authority comes entirely from what it reads: the frozen plan, the run record, the evidence, the operation provenance and the manifest hashes. A hand-written HTML file with the same headings is a claim without a chain of custody — it cannot be sealed, it cannot be compared by `chaos-study-history`, and its verdict means nothing. If the study is missing the artifacts this phase needs, the honest move is to finish or resume the study, not to compose the conclusion yourself. - Appendix content is likewise generated, not narrated: adapter provenance, effective legs, permission grants, residue and command trail all come from the store. If something is unknown it renders as unknown, never as an assumption. See `../chaos-study/references/report-contract.md` for the full contract the renderer enforces. ## Next ```powershell chaos-study-history -Action compare ```
GitHubで見る