← Codex SecurityCONTENT HISTORY

Update to Codex Security

Snapshot Oct 7, 2026 · 06:02 UTC · version 0.1.32

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 77 files: .app.json, .codex-plugin/plugin.json, .mcp.json, …. Open the file diff to inspect the edits.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Package file

Before

e4d5b22326ee380de5d779f7b5ba590c8d1bee9a80e8869fb2bd7f4def8e974d

After

a7bbe314059c7311e169474823e3978f267e560c3e961ba49fb94032da9843fe

Package file

Before

480

After

479

Package file

Before

3ddcc187fe2f1aff961bf55444e70bfbc3f825b6185ab3f29860d1a813a395f9

After

527d1a0db286884729572d400b0ad9b0ff852d4a12b36228ff5fbef180f7de9d

Package file

Before

40b84baf510169eadfd5f0fe0ad95001caedb7bc662d77c9ac2a4fbec7dd0845

After

7c5968060f6e848859ce02450d6e02e67029d8d39011bbda1059b19de6309ebf

Compare saved observations

Download comparison JSON

Changed files

.app.json →

.codex-plugin/plugin.json →

.mcp.json →

examples/completed-scan/report.md →

integrity.json →

mcp/helpers.mjs.br.part-000 →

mcp/native/THIRD_PARTY_NOTICES.txt →

mcp/native/darwin-arm64/unix.node →

mcp/native/darwin-x64/unix.node →

mcp/native/linux-arm64-gnu/unix.node →

mcp/native/linux-arm64-musl/unix.node →

mcp/native/linux-x64-gnu/unix.node →

mcp/native/linux-x64-musl/unix.node →

mcp/native/win32-arm64/windows.node →

mcp/native/win32-x64/windows.node →

mcp/server.mjs.br.part-000 →

mcp/server.mjs.br.part-001 →

references/artifact-storage.md →

references/config-preflight.md →

references/core-scan.md →

references/final-report.md →

references/scan-artifacts.md →

references/scan-contract.md →

references/threat-model.md →

schemas/coverage.schema.json →

schemas/scan-manifest.schema.json →

schemas/tools/scan-draft.schema.json →

scripts/config_preflight.py →

scripts/deep_scan_workbench.py →

scripts/filesystem_identity.py →

scripts/finalize_scan_contract.py →

scripts/finding_preview.py →

scripts/generate_in_scope_files.py →

scripts/generate_rank_input.py →

scripts/launch_codex_security_mcp →

scripts/normalize_candidates.py →

scripts/rank_preview.py →

scripts/report_projection.py →

scripts/snapshot_sqlite.py →

scripts/threat_model_projection.py →

scripts/windows_scan_local_files.py →

scripts/workbench/storage.py →

scripts/workbench_cli.py →

scripts/workbench_constants.py →

scripts/workbench_db.py →

scripts/workbench_finding_index.py →

scripts/workbench_native_indexes.py →

scripts/workbench_progress.py →

scripts/workbench_publication.py →

scripts/workbench_remediation.py →

scripts/workbench_saved_results.py →

scripts/workbench_scan_start.py →

scripts/workbench_scan_usage.py →

scripts/workbench_schema.py →

scripts/workbench_severity.py →

scripts/workbench_source_excerpt.py →

scripts/workbench_target.py →

scripts/workbench_target_state.py →

scripts/workbench_validation.py →

skills/assess-patch-risk/SKILL.md →

skills/assess-patch-risk/scripts/validate_patch_risk_assessment.py →

skills/attack-path-analysis/SKILL.md →

skills/deep-security-scan/SKILL.md →

skills/finding-discovery/SKILL.md →

skills/propose-security-hardening/references/proposal-format.md →

skills/security-diff-scan/SKILL.md →

skills/security-scan/SKILL.md →

skills/security-scan/references/desktop-scan.md →

skills/security-scan/references/scan-artifacts-and-ledger.md →

skills/threat-model/SKILL.md →

skills/track-findings/SKILL.md →

skills/track-findings/references/github-security-advisories.md →

skills/track-findings/references/jira.md →

skills/triage-finding/SKILL.md →

skills/triage-finding/agents/openai.yaml →

skills/triage-finding/references/ticket-intake.md →

skills/triage-finding/references/triage-result-contract.md →

references/final-report.md

--- before
+++ after
@@ -22,7 +22,9 @@
 
 For each finding, supply an evidence-supported lowercase vulnerability-family `ruleId`; `taxonomy: { category, cwe }` using its exact known CWEs; verified locations; and `provenance.source`, using `"local_plugin"` only when this plugin actually discovered the finding. Preserve genuine worker or source provenance and any existing canonical candidate identity in the finding extensions. A finding with no known CWE retains `cwe: []`; never invent a classification. Include optional `codeEvidence` only when its actual code is nonempty and every referenced evidence ID is present.
 
-For Standard scan drafts, including Deep worker results, and diff drafts, supply semantic coverage as `{ completeness, surfaces, explicitExclusions, deferred }`, with each surface using the actual `label` and one existing `disposition`. Mark coverage `partial` when a deferred item or `needs_follow_up` surface remains; preserve its real reason and supporting context. Each deferred item needs a meaningful reason; preserve any existing `id` or `candidateId`. The workbench derives a missing ID from its candidate identity or stable deferred-work details. Open questions may be nonempty strings or `{ question, followUpPrompt? }` objects. The workbench derives target and scope metadata, scope include and exclude paths, coverage mode and inventory strategy, finding identities and fingerprints, and surface IDs. Do not put those workbench-owned values or top-level coverage receipt references into the semantic draft.
+For Standard scan drafts, including Deep worker results, and diff drafts, supply semantic coverage as `{ completeness, surfaces, explicitExclusions, deferred }`, with each surface using the actual `label` and one existing `disposition`. Mark coverage `partial` when a deferred item or `needs_follow_up` surface remains; preserve its real reason and supporting context. Each deferred item needs a meaningful reason; preserve any existing `id` or `candidateId`. Use each deferred `id` only once per draft. The draft response includes the saved coverage. Copy its deferred IDs in later updates and closures; the workbench assigns missing IDs before saving a checkpoint. Open questions may be nonempty strings or `{ question, followUpPrompt? }` objects. The workbench derives target and scope metadata, scope include and exclude paths, coverage mode and inventory strategy, finding identities and fingerprints, and IDs for new surfaces. Preserve saved surface IDs in updates; omit the other workbench-owned values and top-level coverage receipt references from the semantic draft.
+
+To close a saved task, include `coverage.resolvedDeferred: [{ id, reason }]` in the final Standard or diff draft, using its saved ID and a completion reason. Update linked surfaces by saved ID and keep unfinished work in `deferred`. Tasks without saved IDs do not replace earlier work. Candidate-linked tasks require findings or terminal dispositions; redundant closure entries for those outcomes are ignored. Deep parents cannot close worker tasks. Original checkpoints remain unchanged. Report generation and sealing belong to completion, not deferred review work.
 
 During a host-backed scan, checkpoint saved findings and pending candidates with `complete: false`; a checkpoint is not a completed audit. After a final workbench-owned Standard or workbench-backed diff draft is accepted with `complete: true` (or the backwards-compatible omitted flag), or the Deep coordinator returns its parent scan's canonical manifest, call `complete_codex_security_scan({ scanId, handoffClaimToken? })` and use its returned completion metadata. An SDK-owned scan returns its unsealed canonical files without calling a completion tool or finalizer; the SDK owns completion and report generation. Read full canonical results only when explicitly requested. For a terminal/chat workflow without a `scanId` or completion tool, retain `python <plugin_dir>/scripts/finalize_scan_contract.py --scan-dir <scan_dir> --source-root <repo_root>` after writing the canonical JSON. Outside the SDK path, do not mark the scan goal complete until finalization succeeds and the generated report exists.
 
@@ -83,7 +85,7 @@
 
 `## Threat Model`
 
-Use the completed canonical `threatModel` when one exists. In any workflow that produced only `<context_dir>/threat_model.md`, including Workbench-backed diff scans, preserve that text exactly as `{ "summary": "<completed model text>" }` and include it in the canonical draft. Use the field mapping and scenario reconciliation in `threat-model.md` when building a generated canonical model; do not regenerate it from the final finding list. Preserve source citations, capability boundaries, deployment assumptions, and material unknowns. Finalization reads only the canonical threat-model object when projecting this section.
+Use the completed canonical `threatModel` when one exists. For a workflow that produced a Markdown model, retain the text exactly as `{ "format": "markdown", "content": "<completed model text>" }` in the canonical draft. A historical `<context_dir>/threat_model.md` may supply missing canonical content; it must not override a later canonical model. Use the field mapping and scenario reconciliation in `threat-model.md` when building a generated structured model; do not regenerate it from the final finding list. Preserve source citations, capability boundaries, deployment assumptions, and material unknowns. Finalization reads the canonical model when projecting this section and the root-level `threatmodel.md`. Exporting that saved model does not perform another analysis.
 
 `## Findings`
 
Full technical diff · 148 changed fields

changed /files/.app.json/sha256

BEFORE
"e4d5b22326ee380de5d779f7b5ba590c8d1bee9a80e8869fb2bd7f4def8e974d"
AFTER
"a7bbe314059c7311e169474823e3978f267e560c3e961ba49fb94032da9843fe"

changed /files/.app.json/size

BEFORE
480
AFTER
479

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"3ddcc187fe2f1aff961bf55444e70bfbc3f825b6185ab3f29860d1a813a395f9"
AFTER
"527d1a0db286884729572d400b0ad9b0ff852d4a12b36228ff5fbef180f7de9d"

changed /files/.mcp.json/sha256

BEFORE
"40b84baf510169eadfd5f0fe0ad95001caedb7bc662d77c9ac2a4fbec7dd0845"
AFTER
"7c5968060f6e848859ce02450d6e02e67029d8d39011bbda1059b19de6309ebf"

changed /files/.mcp.json/size

BEFORE
1649
AFTER
1679

changed /files/examples~1completed-scan~1report.md/sha256

BEFORE
"c2083b2f763ed5ddcee4524ee01025c9b8996e1e9740263d751494b7a61fe82e"
AFTER
"83b7c709c0b49d1500b52e61a88ea70b8423ebebec38308b1294cf094838b66f"

changed /files/examples~1completed-scan~1report.md/size

BEFORE
2945
AFTER
4116

changed /files/integrity.json/sha256

BEFORE
"d8f7683d4ed54915958087c1532c15a0eb0e87db1424addea133794979b609cc"
AFTER
"6b342df66fb9b5ce7fc8c9de0e974b59d21340cdc06167df46d1a19bd4ea9441"

changed /files/integrity.json/size

BEFORE
17616
AFTER
17465

changed /files/mcp~1helpers.mjs.br.part-000/sha256

BEFORE
"a771236cf650b155f4afc89169897ca199bafaa673187b781904df8bee8af96a"
AFTER
"6299f73c92c4f924bffc6b1bed001480603473967006b3e75941bc49a21f18d5"

changed /files/mcp~1helpers.mjs.br.part-000/size

BEFORE
6539
AFTER
63398

changed /files/mcp~1native~1THIRD_PARTY_NOTICES.txt/sha256

BEFORE
"bcb3277e216ef458f18b80ddf97e1b7c2827e920a2c432077ff6f7d060281445"
AFTER
"16ac63908855f5bb7eab864923cc1855b406bd7051dfcd70d7e69684f6c69955"

changed /files/mcp~1native~1darwin-arm64~1unix.node/sha256

BEFORE
"1895d5afd007ce02210075683413be6088ea20af8a8608a42ac82b7d9bf90181"
AFTER
"093e87d8de3d2676fc9a2a1430f571bf4fc970b2bbef4c7ded0bf8924e45f473"

changed /files/mcp~1native~1darwin-arm64~1unix.node/size

BEFORE
371616
AFTER
354352

changed /files/mcp~1native~1darwin-x64~1unix.node/sha256

BEFORE
"94aba646f50e669b873b44f78512886dcf78be87a13feb95471e687fdc1f9f91"
AFTER
"57c45d212d35ce7599afc7b9b21693e18443753231bad1fb5146a4e224db68ec"

changed /files/mcp~1native~1darwin-x64~1unix.node/size

BEFORE
364544
AFTER
343296

changed /files/mcp~1native~1linux-arm64-gnu~1unix.node/sha256

BEFORE
"bd89532fbd21d251d9c645d6026864b0a08b16565bedb018e627e459cae0ddef"
AFTER
"6b352aaaac21f9ad9b772481429ba7bc8433a0e44ca5ffe433ad47289c3007f6"

changed /files/mcp~1native~1linux-arm64-gnu~1unix.node/size

BEFORE
465648
AFTER
465088

changed /files/mcp~1native~1linux-arm64-musl~1unix.node/sha256

BEFORE
"65475c3deb4ed355739ad7395e39204f5ffcc945c61b2e42ca357560de3fe7de"
AFTER
"3a55ec4f42202c58a29654701c31a8deab386969d14e2ab85f23e81345b4fedb"

changed /files/mcp~1native~1linux-arm64-musl~1unix.node/size

BEFORE
397992
AFTER
332456

changed /files/mcp~1native~1linux-x64-gnu~1unix.node/sha256

BEFORE
"d19c3d41b2993543a1296dc38d2183df4a947349b45f3c43618c4ecde74e3cac"
AFTER
"ed2061078400010852a9f8d3ecdf7bc0a008d13adc9e9d5c6954f5cb686a2a2a"

changed /files/mcp~1native~1linux-x64-gnu~1unix.node/size

BEFORE
386424
AFTER
365352

changed /files/mcp~1native~1linux-x64-musl~1unix.node/sha256

BEFORE
"46fa397234fad923a2e325f80e2a833ba48c79b32bbb7f0452fb7f0791de5d5e"
AFTER
"c2e4c07ac6dde175464c6315937652465b200e5f28590898663523beaf4e9ab6"

changed /files/mcp~1native~1linux-x64-musl~1unix.node/size

BEFORE
385688
AFTER
369304

changed /files/mcp~1native~1win32-arm64~1windows.node/sha256

BEFORE
"df8dd512fd8d92a8af3fede3f00a235732f847c6f3da91a2b9a702650ddd7439"
AFTER
"19f78e88fd8934038201c26b044123bc05db74f5d7065df10a32583ccbcf7a55"

changed /files/mcp~1native~1win32-arm64~1windows.node/size

BEFORE
460800
AFTER
419840

changed /files/mcp~1native~1win32-x64~1windows.node/sha256

BEFORE
"f961856d20361508fa3b5ad05a4fb04f07d0dff4d7b60f3cfc377467b518c17b"
AFTER
"5aed21edb5fe06efac49d9bd3899d6242f60b1bfac2b710b967a76c924d98298"

changed /files/mcp~1native~1win32-x64~1windows.node/size

BEFORE
496128
AFTER
453120

changed /files/mcp~1server.mjs.br.part-000/sha256

BEFORE
"0259e86ae3ceb3c555521d959fd9cddb0d67e2921fc1db9fd27a55d849a48806"
AFTER
"7ef9c7387b405b51e2aec793a86696bf793506a8f34155199035aa515b3a415a"

changed /files/mcp~1server.mjs.br.part-001/sha256

BEFORE
"3c6c93cd01ac739436e91ffe2685c5267672cf18794dbe1b19ac1ac5f93d421f"
AFTER
"94d6412009e284ecbc17bd14d07e0116d8e74e572a62198912ac5a03f95a50c2"

changed /files/mcp~1server.mjs.br.part-001/size

BEFORE
122535
AFTER
126028

changed /files/references~1artifact-storage.md/sha256

BEFORE
"851076fcdc93c7adb87f3e26ff103c5546b875e2bc08ddb676fbbca0827899b1"
AFTER
"ccce9c76f5d044fbce333d6129fbb55eb63f512c15c2ebeeca405e296f38325b"

changed /files/references~1artifact-storage.md/size

BEFORE
6975
AFTER
7632

changed /files/references~1config-preflight.md/sha256

BEFORE
"6ba05681c8d94968842fc98553b58b8fc5f1ea3da45834a41dd60179c8bbb9f3"
AFTER
"5894f9fd7efcae7034404a2c062ee3d7417520753be16ddcdb3acf5b884f048d"

changed /files/references~1config-preflight.md/size

BEFORE
18881
AFTER
19162

changed /files/references~1core-scan.md/sha256

BEFORE
"77b082eb8613cf93427ff730e4ae5d85b0a0dca37c02a8af1ea69f679ac3d1d9"
AFTER
"9c0eca53147383a89cd345eac7791ea75b954f7f083448ef25019d8f9ba30afe"

changed /files/references~1core-scan.md/size

BEFORE
19422
AFTER
22978

changed /files/references~1final-report.md/sha256

BEFORE
"9fe5a42b37964def3a8394449c3502e8b6ee50b8f85e6525313e23ba2dcd5040"
AFTER
"9c34375584c8ae76959b0eae038b86b2b8ed7874517c249fcae8715314c76298"

changed /files/references~1final-report.md/size

BEFORE
29052
AFTER
29931

changed /files/references~1scan-artifacts.md/sha256

BEFORE
"d8d416b359b9a46bd3d9cf9fb487d1ff2dc6eb32dc26e93ab47de7b1d240f479"
AFTER
"eecdccac30b8ad65bb702dc9ac8d9718dcb0b95532a94a61195268d22bdf504b"

changed /files/references~1scan-artifacts.md/size

BEFORE
10800
AFTER
11243

changed /files/references~1scan-contract.md/sha256

BEFORE
"8a84ca15feef973044bfe619b4e586bf9323b9cbc2f386b961138c76ebd6d189"
AFTER
"b362636c29d1e8b18053481abe2f97d7bb099a97040f5b63aa2702a41c1d62c8"

changed /files/references~1scan-contract.md/size

BEFORE
14043
AFTER
14537

changed /files/references~1threat-model.md/sha256

BEFORE
"f53d10c617d45d671e7cb15408f87c4f36b29026e2a6a59d1457881780b6818a"
AFTER
"f3dd2d05d7f0c61b13d29a78e810b367772fe22d5ac58adbbc00080a9495706e"

changed /files/references~1threat-model.md/size

BEFORE
14690
AFTER
15203

changed /files/schemas~1coverage.schema.json/sha256

BEFORE
"7964b132998ca4dcdd19c75f5d92483e1d44cb71462237709b968ec548c10652"
AFTER
"6ac14e659e884e9582d8bd9ba480f6364ca17309e1a3dee9469ab025a3380b11"

changed /files/schemas~1coverage.schema.json/size

BEFORE
4670
AFTER
5198

changed /files/schemas~1scan-manifest.schema.json/sha256

BEFORE
"265a48629113f77cd65a3127f1f7e95d3c39ae60e868685837a6aa31d4133310"
AFTER
"c621d4136ac81741ac8da1960c7f5e92ade22c0b5490e378ea4339b09e45b6f3"

changed /files/schemas~1scan-manifest.schema.json/size

BEFORE
8048
AFTER
9513

changed /files/schemas~1tools~1scan-draft.schema.json/sha256

BEFORE
"d5970c06e2ec00d1da5b0e84b677244f32046fd99c81901e608b7974b9ab0d89"
AFTER
"151f9dffc83e1c5b4f0a7fba20b90fb3196fdaa9719180eb0009ba2b50f75d48"

changed /files/schemas~1tools~1scan-draft.schema.json/size

BEFORE
21535
AFTER
23475

changed /files/scripts~1config_preflight.py/sha256

BEFORE
"37b9f4cee4c4dddade0e8599ea8df19aee29a99bd1be956b553ab46c3b63d407"
AFTER
"f4d4103650977d078b71f49da6b1e287b6db2f2b7b5fb08e943722a6d869354e"

changed /files/scripts~1config_preflight.py/size

BEFORE
35211
AFTER
35176

changed /files/scripts~1deep_scan_workbench.py/sha256

BEFORE
"c659739775e192dee0f90a42549a1763fb95228fb5fd17579812ab454bfc7d21"
AFTER
"5012b337503f44e086fbf021be9db8340f8ba992fe5169c5534752e900947cf5"

changed /files/scripts~1deep_scan_workbench.py/size

BEFORE
88194
AFTER
84709

changed /files/scripts~1filesystem_identity.py/sha256

BEFORE
"2b3a22761f28faa2f45f192ff14b17fd80f1f43d9d4174007c51d21f4cbf47c1"
AFTER
"5298f2012b6e48ab1106837a5440ef2b3966383e2321507a47593010bb4dd01f"

changed /files/scripts~1filesystem_identity.py/size

BEFORE
926
AFTER
893

changed /files/scripts~1finalize_scan_contract.py/sha256

BEFORE
"7f191c50ded50600b0a70be1e11b724f0355f166a690312226990d88e895d159"
AFTER
"3fa92d8e2ccadb032cf458f0fde444785e8ee5ced0abe6346c285b07ef153e27"

changed /files/scripts~1finalize_scan_contract.py/size

BEFORE
121437
AFTER
133770

changed /files/scripts~1finding_preview.py/sha256

BEFORE
"0df185e83a55cfcd9da151054de32b04e8f0bc0ceee3a2d9269d0d119fc12854"
AFTER
"ebdf8e7b7e465c0937e73e945e3593d659b2f15ff1db08d0b4a2d3b106174c4d"

changed /files/scripts~1finding_preview.py/size

BEFORE
15968
AFTER
16089

changed /files/scripts~1generate_in_scope_files.py/sha256

BEFORE
"e59583c111b4f3edd3f57e114bfb7f62a7dbad8424b4851bdfd23a8219336806"
AFTER
"0b420d786b17e4f91451b5b686fdb4d6beee3913eebb952f8fcbf220aec6230e"

changed /files/scripts~1generate_in_scope_files.py/size

BEFORE
11801
AFTER
11646

changed /files/scripts~1generate_rank_input.py/sha256

BEFORE
"0c0ead74ae98b4adfbd6a2eacb91ea492b11e60434c4259ae36213c0ddc5f3f8"
AFTER
"e7c0bddbdb7e9236f7431d84b86be4c3fc202daa8d1306d6baa930110635b671"

changed /files/scripts~1generate_rank_input.py/size

BEFORE
47421
AFTER
17899

changed /files/scripts~1launch_codex_security_mcp/sha256

BEFORE
"b82af11478dc85f666b6ec0919c53034dd287c29ffcb1af7e5debbb425618c5d"
AFTER
"56794e736a1e8f588f9959a2e707ea3ed9bc7d4d2b796c132e91d5fbed59e600"

changed /files/scripts~1launch_codex_security_mcp/size

BEFORE
1228
AFTER
1793

removed /files/scripts~1normalize_candidates.py

BEFORE
{
  "sha256": "8da9b66deec6320a3e55c033a097480bedd340f0442b31077999a2e2d82e851e",
  "size": 13136
}
AFTER
Field is absent

changed /files/scripts~1rank_preview.py/sha256

BEFORE
"013885da19308feeb0bcea8968097ba8eee8b063b23a6ca5af8a7269ca777afa"
AFTER
"627d0b89c9d4436162ab9bcb80f7aa562605695e784dc612307c7eda6fef3a7f"

changed /files/scripts~1rank_preview.py/size

BEFORE
34987
AFTER
34726

changed /files/scripts~1report_projection.py/sha256

BEFORE
"474de8e927442b1c5c7fc4adb5addd98906ae86db05da1aa20bd54ad5fca48fb"
AFTER
"1b24978a3cdb3c336ac27a2b39fb35457bade13a4aad0782710fe38ac39965cf"

changed /files/scripts~1report_projection.py/size

BEFORE
41587
AFTER
41098

changed /files/scripts~1snapshot_sqlite.py/sha256

BEFORE
"a501b0f4b6656f4f9b6a389835e73f0d8105051191646b64af4268f0d4a3eaee"
AFTER
"9e0be851702f0962070ece6e0e2959e3955fc99126f68452d175fc22bc38423b"

changed /files/scripts~1snapshot_sqlite.py/size

BEFORE
852
AFTER
1084

added /files/scripts~1threat_model_projection.py

BEFORE
Field was absent
AFTER
{
  "sha256": "32e4d5cd370a49cdc5658c3ded3d4d63ba7f41a44b34b67da87321048d088111",
  "size": 6711
}

changed /files/scripts~1windows_scan_local_files.py/sha256

BEFORE
"3034ec0b2e5d29fb8edbbd7237b91b1063b0245cdc546d85209129fef1ab2fbf"
AFTER
"c26276695435d134c1354048c3c74c3c6b0ed203158a93b63b67ef0b6bfab843"

changed /files/scripts~1windows_scan_local_files.py/size

BEFORE
24480
AFTER
24919

changed /files/scripts~1workbench~1storage.py/sha256

BEFORE
"973275d28c851b1b8408f7ac59e89a2a68057f2aecb4831e6aa2396c83a39e6d"
AFTER
"5e389073520fb7668defd433228befd9e7b9c8309c1b6024bffd6213d59f1d88"

changed /files/scripts~1workbench~1storage.py/size

BEFORE
608
AFTER
973

changed /files/scripts~1workbench_cli.py/sha256

BEFORE
"74752d032261afd831876d774724b150b35d6c8f0a3f70574c5c8ddad20f31b3"
AFTER
"959e951fa5daf326049ee61bd0773999be92600b65a9062e56b4f62fc4e2aa55"

changed /files/scripts~1workbench_cli.py/size

BEFORE
21184
AFTER
21260

changed /files/scripts~1workbench_constants.py/sha256

BEFORE
"06548d28c6d66b99f6c11f63918101c6cce39df6346fc6c5e977b9d09cd2a950"
AFTER
"0ff12b11b2ae9f71c1de6cff0afc234b035379bb1193f1ca9a56ddeb7aa32cf7"

changed /files/scripts~1workbench_constants.py/size

BEFORE
2261
AFTER
2187

changed /files/scripts~1workbench_db.py/sha256

BEFORE
"01d7d27013f24cf26cbca4a6e2331d7eb1bd0afc5e570c44376cd3e2e4fd5cb7"
AFTER
"94bf11d7d74202ae7efbdd4f70a036393d4ba013ffc2ada44172a59be41f97f2"

changed /files/scripts~1workbench_db.py/size

BEFORE
149800
AFTER
146186

changed /files/scripts~1workbench_finding_index.py/sha256

BEFORE
"410f4c2fb2bd063130e945d06aad63582b6a3e6fed9c448dcf740d85a6c3ce78"
AFTER
"4618f994786fa2300e78592fa2868bc0a585368127027c1940a0e504b0254265"

changed /files/scripts~1workbench_finding_index.py/size

BEFORE
4191
AFTER
3938

changed /files/scripts~1workbench_native_indexes.py/sha256

BEFORE
"0ada4190b7050fde77c3f04a8f36b1f6479da368aa1ed39c9587ce23645ba468"
AFTER
"114dbf1e4050302948c4b8f24d69454f127d128e3bc35e34a5f3ec9dd3b187cd"

changed /files/scripts~1workbench_native_indexes.py/size

BEFORE
9984
AFTER
9870

changed /files/scripts~1workbench_progress.py/sha256

BEFORE
"d106181710b59c3cd2d66a26d4a4556741d02d606999224a36cfb09771092a6e"
AFTER
"42c7d0b8b4d253095e1062922cd9e59b10b966ac314bef092cb78cad2217b967"

changed /files/scripts~1workbench_progress.py/size

BEFORE
13897
AFTER
13296

changed /files/scripts~1workbench_publication.py/sha256

BEFORE
"7813a522da6924e065a5a517efc54e80529c686773d084297f760e405b1cecd5"
AFTER
"9312a2962b797ed355d6b05fb375da6325aeb5c5ead5d52f2fb7114ef3ad9635"

changed /files/scripts~1workbench_publication.py/size

BEFORE
20574
AFTER
20346

changed /files/scripts~1workbench_remediation.py/sha256

BEFORE
"d0c7a4b3a283aea128802b4c1a4295580bc2ebd83c6c7108eb1ce288aaa20017"
AFTER
"96585805c4956917bb473c3b60493a3c15daa2028b074b756e36358a9ac76525"

changed /files/scripts~1workbench_remediation.py/size

BEFORE
7815
AFTER
7281

changed /files/scripts~1workbench_saved_results.py/sha256

BEFORE
"db445b651bd677359ef0a5c2bbb70e896eccd60becbd80e8c7a77aa3010f289c"
AFTER
"436b23a4d169006437985bb352bfd792da9e465c4c7506dce31bfd5e78524c6d"

changed /files/scripts~1workbench_saved_results.py/size

BEFORE
72501
AFTER
119202

changed /files/scripts~1workbench_scan_start.py/sha256

BEFORE
"8ce5f6e6d34670026f50da234c881074bd4864f41c9c574f6b2232ef968c7b1e"
AFTER
"647e54ce40a7dc5b17d6abe547406f22ca0cb4eee628938b4c21629eb8e73c35"

changed /files/scripts~1workbench_scan_start.py/size

BEFORE
8210
AFTER
7963

changed /files/scripts~1workbench_scan_usage.py/sha256

BEFORE
"4fb61d682ba05839ad57d33a8a2c9a9ffaa51ea7721c2cc7d629d2d687e2607a"
AFTER
"21d845f8967c9206351e54f94fd2b4bbfe834434e35b642992d7a829b76cd94e"

changed /files/scripts~1workbench_scan_usage.py/size

BEFORE
22317
AFTER
22094

changed /files/scripts~1workbench_schema.py/sha256

BEFORE
"6a382c792b39c0a41118a2d4325b967f3cb0dca2a2e6e84411e4e72a675372e7"
AFTER
"25ef8550ded14785fa47b19f1fa358422d8883affc94641c84e68c172e800cc0"

changed /files/scripts~1workbench_schema.py/size

BEFORE
58474
AFTER
51783

changed /files/scripts~1workbench_severity.py/sha256

BEFORE
"6313c3302a40504e8b1ebaabcc081bdcbbb97c9b348a7d63c381ea04042e898d"
AFTER
"ec74f540595e8052e295846303f31988329e0dc68fcebdd92572673555b1c99d"

changed /files/scripts~1workbench_severity.py/size

BEFORE
4489
AFTER
4625

changed /files/scripts~1workbench_source_excerpt.py/sha256

BEFORE
"0cd15d26c3a1feadf1858d1be25f9703ad09307ab1ecfb866260b8c1991cf74e"
AFTER
"5681d4a5c547404f687c644f54432c10e0770b6ba4c1e6be321664579a252a24"

changed /files/scripts~1workbench_source_excerpt.py/size

BEFORE
2989
AFTER
3210

changed /files/scripts~1workbench_target.py/sha256

BEFORE
"bc21dc8cb392a5639d787fde956f6b4d2769bf9c3f1cb805f164557df787563c"
AFTER
"08ed149295b9347ac37f2b8523c822a35f165283422c7644dabecfa236b81b72"

changed /files/scripts~1workbench_target.py/size

BEFORE
28827
AFTER
32451

changed /files/scripts~1workbench_target_state.py/sha256

BEFORE
"f48897fb7937e7474126dc88f85bcc359a1a99fb845a77f5d896dbe8b506b45a"
AFTER
"9c133f67397ab4b90ce1275edc09a7e6d05900236209bc72e8f113b9f0cde287"

changed /files/scripts~1workbench_target_state.py/size

BEFORE
1953
AFTER
1920

changed /files/scripts~1workbench_validation.py/sha256

BEFORE
"3cc29fc7a342dc9b55976c37c641c1e7a2abf91625fb9abfb1165a59e251ad29"
AFTER
"11259b8ce1e135c5a86677964f29e6331e65e5fd80a1931c80f7fac507cccb13"

changed /files/scripts~1workbench_validation.py/size

BEFORE
6773
AFTER
6547

changed /files/skills~1assess-patch-risk~1SKILL.md/sha256

BEFORE
"b7337a909fe0ea7f3b203178df60161ea42236405c0bb8697d43ec5736be744b"
AFTER
"c3b62a8c1d6135945a055134f50329047bb908972fc7b320a592edbc3d38b419"

changed /files/skills~1assess-patch-risk~1SKILL.md/size

BEFORE
8679
AFTER
9511

removed /files/skills~1assess-patch-risk~1scripts~1validate_patch_risk_assessment.py

BEFORE
{
  "sha256": "b57a804b1e30c94ed01d5a3a36f8a31b15a6e3b9f751a41c5ade07ff35019d77",
  "size": 6645
}
AFTER
Field is absent

changed /files/skills~1attack-path-analysis~1SKILL.md/sha256

BEFORE
"9f9f45603c68a1e796d8151b3373842aa7e89f0e1dc8e985f7ab1bb342547444"
AFTER
"9465d2750182acbf6dd8f61e60bb47dc1ca502be5cc3f4a71da7ad39935d1eb1"

changed /files/skills~1attack-path-analysis~1SKILL.md/size

BEFORE
8567
AFTER
8568

changed /files/skills~1deep-security-scan~1SKILL.md/sha256

BEFORE
"e3e758d1a6b96b42453fc631b58e04e851cec71318b18d53e2d1c344f6edc4db"
AFTER
"d6aed0d9b47065a1384a96d0a45c843b0cda8ba48e3d2cbe96c65357c6e55ee3"

changed /files/skills~1deep-security-scan~1SKILL.md/size

BEFORE
13815
AFTER
14096

changed /files/skills~1finding-discovery~1SKILL.md/sha256

BEFORE
"1d3a159a5ed83722ddf7369dad9f7788e283454a8ee963cef35ccd8102ea8b0e"
AFTER
"14cc797e750ca4bdd8b060c4cf96d7d32f25b132aa8f80d0a0837683fe010790"

changed /files/skills~1finding-discovery~1SKILL.md/size

BEFORE
25450
AFTER
25598

changed /files/skills~1propose-security-hardening~1references~1proposal-format.md/sha256

BEFORE
"6c0000722629098365afbf6809c3402121f90438600fb574fbc2c77aeb649ba4"
AFTER
"72b93c32f1cbe7d25a3d347d0894e7b642942e68f2d8a3c0409bc398a41b06e7"

changed /files/skills~1propose-security-hardening~1references~1proposal-format.md/size

BEFORE
25476
AFTER
25933

changed /files/skills~1security-diff-scan~1SKILL.md/sha256

BEFORE
"0a4c519ad713585876ea7eb0a8af4b59892c86746f4c69851db9ab347b7fad2f"
AFTER
"f85962d46f141227d794a25253a39232bc4e1ad756509ecd3d8769b85b735136"

changed /files/skills~1security-diff-scan~1SKILL.md/size

BEFORE
5449
AFTER
6102

changed /files/skills~1security-scan~1SKILL.md/sha256

BEFORE
"5b8f5d7debeca14c6b37e8e7ba737671362b8eb4b7f49e693c99c6bd04bc8fa0"
AFTER
"104e2f93fc965c34e91970f517a89e330d5b29dbb243dcea5d95d83f14d135cf"

changed /files/skills~1security-scan~1SKILL.md/size

BEFORE
6975
AFTER
9007

changed /files/skills~1security-scan~1references~1desktop-scan.md/sha256

BEFORE
"fc20c0a72913cf88f99879091c5b64e4161a42670e84bff29b629210006cd860"
AFTER
"62a3b3baac5773c36eb291c74c0304dd97157aff5b89dd56fa8b0fed08803389"

changed /files/skills~1security-scan~1references~1desktop-scan.md/size

BEFORE
4428
AFTER
4747

changed /files/skills~1security-scan~1references~1scan-artifacts-and-ledger.md/sha256

BEFORE
"443084c974eb80747a6dc4e092c7fca55f412ca5ab3f14e2d27dc1223cc690a4"
AFTER
"c95780a7af36fd42716f4c909bb57e68b438769b13f8d6f02ac06ffa73c838ff"

changed /files/skills~1security-scan~1references~1scan-artifacts-and-ledger.md/size

BEFORE
13628
AFTER
14716

changed /files/skills~1threat-model~1SKILL.md/sha256

BEFORE
"f45f02d9f607ec6797b730c71b15310f971403193cc56a984a1cbb1710b495ee"
AFTER
"42568e50c787c4c0bfb9495ad67e72ab6c1a951bb910ecba2c67cff8961c4d56"

changed /files/skills~1threat-model~1SKILL.md/size

BEFORE
3149
AFTER
3606

changed /files/skills~1track-findings~1SKILL.md/sha256

BEFORE
"8e3726e86ef0df509f1a635961f268e1bf04a4622a83e21c1d079f546cc61dcb"
AFTER
"a6d2f30e6d5ca7bd9d74d83017f2f5481c5829585941208a1673b82c683d292b"

changed /files/skills~1track-findings~1SKILL.md/size

BEFORE
20543
AFTER
11371

changed /files/skills~1track-findings~1references~1github-security-advisories.md/sha256

BEFORE
"f56010d265d0ce56e555dd73a92777a6d3be8f5d31bd2af7ff163423a667d10e"
AFTER
"5e583aa2f77db32e4983b8b4bb857b1c7eaebfa1f43fc833b551c96acab70d4e"

changed /files/skills~1track-findings~1references~1github-security-advisories.md/size

BEFORE
4065
AFTER
3288

changed /files/skills~1track-findings~1references~1jira.md/sha256

BEFORE
"05affbdefbfd8054d08f16e5fe15729ade440b5627a4561f8693bd97fb3a3ea2"
AFTER
"bb1f7bb6fa638f20f1caad35b04482ae33f0cdbf2ab9c617e7805575dff457a0"

changed /files/skills~1track-findings~1references~1jira.md/size

BEFORE
5995
AFTER
3027

changed /files/skills~1triage-finding~1SKILL.md/sha256

BEFORE
"70b0e771f286443ea32bbf466ad378b36f9123b4aa171ab02c6680fdbdb704f9"
AFTER
"83081950bd4b29ff37cf82d137aec164532ae56b03dbaad3f4dd1d5423e758a7"

changed /files/skills~1triage-finding~1SKILL.md/size

BEFORE
27559
AFTER
10004

changed /files/skills~1triage-finding~1agents~1openai.yaml/sha256

BEFORE
"1d53cfba14878c05745309eec3f682f70c5e8d49ecc033628cf832a5dd27c9cb"
AFTER
"4a4094210aa6360cf503f5adf7be1e590e27898f3163da1b713632d2828e8563"

changed /files/skills~1triage-finding~1agents~1openai.yaml/size

BEFORE
770
AFTER
400

changed /files/skills~1triage-finding~1references~1ticket-intake.md/sha256

BEFORE
"bd545655e0402f5f326f34191a67b6dd30c382914e9ae81b2e66ad745860e78a"
AFTER
"693b415fdfcdcf8e6d5539677ff89c79bb36995ae22916d87866ce2c25113439"

changed /files/skills~1triage-finding~1references~1ticket-intake.md/size

BEFORE
6250
AFTER
3645

changed /files/skills~1triage-finding~1references~1triage-result-contract.md/sha256

BEFORE
"321027c102cf36119376ef86f0701a4a7c6fc22e46d28fd240639aae156b134a"
AFTER
"709c1d803c001a47c884ba10ac97f8c1434c3ce06a75033778343a662b25729b"

changed /files/skills~1triage-finding~1references~1triage-result-contract.md/size

BEFORE
4411
AFTER
4447
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "a7bbe314059c7311e169474823e3978f267e560c3e961ba49fb94032da9843fe",
      "size": 479
    },
    ".codex-plugin/plugin.json": {
      "sha256": "527d1a0db286884729572d400b0ad9b0ff852d4a12b36228ff5fbef180f7de9d",
      "size": 1582
    },
    ".mcp.json": {
      "sha256": "7c5968060f6e848859ce02450d6e02e67029d8d39011bbda1059b19de6309ebf",
      "size": 1679
    },
    "OWNERS": {
      "sha256": "49be76d15302e4f158b3ef907e9802a955ab9c0a59a039827eab4cb6221f0e5f",
      "size": 41
    },
    "assets/logo.png": {
      "sha256": "9b9c2b09b2fa064611fb62307d321d5c2ea70cf0789f7ce34cdb0fc0d9190b3a",
      "size": 99567
    },
    "examples/completed-scan/coverage.json": {
      "sha256": "d55b9b98d48323b4659dfee6531ec83ec538f2084325412b7188bf85ad68b01b",
      "size": 467
    },
    "examples/completed-scan/findings.json": {
      "sha256": "a6dc4521d6478828224fbafc33585401a47bfeb0e56e07b5d2886e8a29937f2f",
      "size": 1844
    },
    "examples/completed-scan/report.md": {
      "sha256": "83b7c709c0b49d1500b52e61a88ea70b8423ebebec38308b1294cf094838b66f",
      "size": 4116
    },
    "examples/completed-scan/scan-manifest.json": {
      "sha256": "d245ae9fc62a676293c6821e562d1a2d7d59db12d5b8dc99b85f7c5f1462fe00",
      "size": 1245
    },
    "integrity.json": {
      "sha256": "6b342df66fb9b5ce7fc8c9de0e974b59d21340cdc06167df46d1a19bd4ea9441",
      "size": 17465
    },
    "mcp/helpers.mjs": {
      "sha256": "c272f3761e5c405619b26e4d0fd621df5ac189f2ee1bb32b975480e9835f9ca8",
      "size": 1097
    },
    "mcp/helpers.mjs.br.part-000": {
      "sha256": "6299f73c92c4f924bffc6b1bed001480603473967006b3e75941bc49a21f18d5",
      "size": 63398
    },
    "mcp/native/COPYRIGHT-library.html": {
      "sha256": "0a65bb747c49c7bb816cbc7188319bd6e4e8d08091c1190b8a3c0971c47968ed",
      "size": 279302
    },
    "mcp/native/THIRD_PARTY_NOTICES.txt": {
      "sha256": "16ac63908855f5bb7eab864923cc1855b406bd7051dfcd70d7e69684f6c69955",
      "size": 308404
    },
    "mcp/native/darwin-arm64/unix.node": {
      "sha256": "093e87d8de3d2676fc9a2a1430f571bf4fc970b2bbef4c7ded0bf8924e45f473",
      "size": 354352
    },
    "mcp/native/darwin-x64/unix.node": {
      "sha256": "57c45d212d35ce7599afc7b9b21693e18443753231bad1fb5146a4e224db68ec",
      "size": 343296
    },
    "mcp/native/licenses/Apache-2.0.txt": {
      "sha256": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff",
      "size": 10280
    },
    "mcp/native/licenses/BSD-2-Clause.txt": {
      "sha256": "f32fb3b417a194167cfad068223fc975ba96c5960513a10f66a3c28720aec1df",
      "size": 1267
    },
    "mcp/native/licenses/MIT.txt": {
      "sha256": "b85dcd3e453d05982552c52b5fc9e0bdd6d23c6f8e844b984a88af32570b0cc0",
      "size": 1078
    },
    "mcp/native/licenses/Unicode-3.0.txt": {
      "sha256": "f5062c9a188d81dfe66b56db4182dcf9e4b17c0d9b0d311a8e20b3a1b075c443",
      "size": 1995
    },
    "mcp/native/linux-arm64-gnu/unix.node": {
      "sha256": "6b352aaaac21f9ad9b772481429ba7bc8433a0e44ca5ffe433ad47289c3007f6",
      "size": 465088
    },
    "mcp/native/linux-arm64-musl/unix.node": {
      "sha256": "3a55ec4f42202c58a29654701c31a8deab386969d14e2ab85f23e81345b4fedb",
      "size": 332456
    },
    "mcp/native/linux-x64-gnu/unix.node": {
      "sha256": "ed2061078400010852a9f8d3ecdf7bc0a008d13adc9e9d5c6954f5cb686a2a2a",
      "size": 365352
    },
    "mcp/native/linux-x64-musl/unix.node": {
      "sha256": "c2e4c07ac6dde175464c6315937652465b200e5f28590898663523beaf4e9ab6",
      "size": 369304
    },
    "mcp/native/win32-arm64/windows.node": {
      "sha256": "19f78e88fd8934038201c26b044123bc05db74f5d7065df10a32583ccbcf7a55",
      "size": 419840
    },
    "mcp/native/win32-x64/windows.node": {
      "sha256": "5aed21edb5fe06efac49d9bd3899d6242f60b1bfac2b710b967a76c924d98298",
      "size": 453120
    },
    "mcp/server.mjs": {
      "sha256": "c58624aa4c4bd3efbb67601c9c2e98759f167f608320a6cd342814b2f2e6a636",
      "size": 1096
    },
    "mcp/server.mjs.br.part-000": {
      "sha256": "7ef9c7387b405b51e2aec793a86696bf793506a8f34155199035aa515b3a415a",
      "size": 140000
    },
    "mcp/server.mjs.br.part-001": {
      "sha256": "94d6412009e284ecbc17bd14d07e0116d8e74e572a62198912ac5a03f95a50c2",
      "size": 126028
    },
    "preflight/capability-profiles.toml": {
      "sha256": "543a0f6a0e81cbbac1fe43e2e3d44d6163a6792384ab9c768ac519295d9ec8a1",
      "size": 2350
    },
    "references/artifact-storage.md": {
      "sha256": "ccce9c76f5d044fbce333d6129fbb55eb63f512c15c2ebeeca405e296f38325b",
      "size": 7632
    },
    "references/config-preflight.md": {
      "sha256": "5894f9fd7efcae7034404a2c062ee3d7417520753be16ddcdb3acf5b884f048d",
      "size": 19162
    },
    "references/core-scan.md": {
      "sha256": "9c0eca53147383a89cd345eac7791ea75b954f7f083448ef25019d8f9ba30afe",
      "size": 22978
    },
    "references/desktop-config-preflight.md": {
      "sha256": "d03e7c604a0459509a4a3238289c3ad0725811e8b11fb7d0044ce8bcee6a7a26",
      "size": 1587
    },
    "references/final-report.md": {
      "sha256": "9c34375584c8ae76959b0eae038b86b2b8ed7874517c249fcae8715314c76298",
      "size": 29931
    },
    "references/finding-detail-fields.md": {
      "sha256": "9e4dcc5633ca1f31291688606e4ec0d56067ed485e748ac9e7d433984f9ab451",
      "size": 11920
    },
    "references/sarif-adapter.md": {
      "sha256": "32725cc851d998c9b33f0232c435d720383c86bc13526b04d356b85d08101cc5",
      "size": 2341
    },
    "references/scan-artifacts.md": {
      "sha256": "eecdccac30b8ad65bb702dc9ac8d9718dcb0b95532a94a61195268d22bdf504b",
      "size": 11243
    },
    "references/scan-contract.md": {
      "sha256": "b362636c29d1e8b18053481abe2f97d7bb099a97040f5b63aa2702a41c1d62c8",
      "size": 14537
    },
    "references/scan-prologue.md": {
      "sha256": "1d23ab6db651134b54307cdea873ffa711a83458bda563f1e126f35e83b278e9",
      "size": 4812
    },
    "references/security-guidance.md": {
      "sha256": "a0f49ad3bd09fa6180a100d81326b75bf87a2d49893ca9e37b64ab151c759a80",
      "size": 1801
    },
    "references/static-finding-assessment.md": {
      "sha256": "78de933caef1c8d971dab83fbb71877602a1197a52eaa7a59d6ff7bc399d0bc7",
      "size": 3949
    },
    "references/threat-model.md": {
      "sha256": "f3dd2d05d7f0c61b13d29a78e810b367772fe22d5ac58adbbc00080a9495706e",
      "size": 15203
    },
    "schemas/coverage.schema.json": {
      "sha256": "6ac14e659e884e9582d8bd9ba480f6364ca17309e1a3dee9469ab025a3380b11",
      "size": 5198
    },
    "schemas/definitions/artifact-common.schema.json": {
      "sha256": "8187236867a2397515571d937deac92dcbf23d3db5e330d32b1f24aced4b9abc",
      "size": 1065
    },
    "schemas/definitions/discovery-candidate.schema.json": {
      "sha256": "b0cf54fc1ae1947db0f6a6f73e17d1124d528226de763fb89489d05fd612331b",
      "size": 2951
    },
    "schemas/findings.schema.json": {
      "sha256": "a480337cc0fa4c48c44fc7be17c6c4348767815570775cda80f2aaf797b8e56c",
      "size": 19167
    },
    "schemas/patch-risk-assessment.schema.json": {
      "sha256": "536492481c5b67910ce8d3754d61c7d5a44c5cb78fe3f081e8f5d1620d6ae9c9",
      "size": 6854
    },
    "schemas/scan-manifest.schema.json": {
      "sha256": "c621d4136ac81741ac8da1960c7f5e92ade22c0b5490e378ea4339b09e45b6f3",
      "size": 9513
    },
    "schemas/tools/candidate-attack-paths.schema.json": {
      "sha256": "f6fcb643b4b975466c4717356a0768b0572812cd832578d8714557f5e3d16935",
      "size": 6055
    },
    "schemas/tools/candidate-validations.schema.json": {
      "sha256": "c871eb3462b7873c1774e6aade62acdd570636e43c0ac3c7b41b7041ca5627e9",
      "size": 4916
    },
    "schemas/tools/deep-reducer.schema.json": {
      "sha256": "5f0c25f826445251415986097c41127018d19b6c690cd99720fd9365893b0028",
      "size": 2221
    },
    "schemas/tools/discovery-candidates.schema.json": {
      "sha256": "dcd2031d64015c69b415c66e57d6e90cbdef91152a445a6f409c14d80153afa6",
      "size": 2473
    },
    "schemas/tools/review-items.schema.json": {
      "sha256": "acc4f4909446a62811728dd1d6581456053da8d26f774b7af208a1856f86ac5b",
      "size": 2250
    },
    "schemas/tools/scan-draft.schema.json": {
      "sha256": "151f9dffc83e1c5b4f0a7fba20b90fb3196fdaa9719180eb0009ba2b50f75d48",
      "size": 23475
    },
    "schemas/tools/worker-threat-model.schema.json": {
      "sha256": "a00f875918794661316a033bd2d03426d61ab1e41d4a36c548c07525dcfde478",
      "size": 435
    },
    "scripts/config_preflight.py": {
      "sha256": "f4d4103650977d078b71f49da6b1e287b6db2f2b7b5fb08e943722a6d869354e",
      "size": 35176
    },
    "scripts/deep_scan_config.py": {
      "sha256": "44229bc7b2e7f4c7654e2e9ed91650a28630eeb00fcc38358f19d69739771f8c",
      "size": 5042
    },
    "scripts/deep_scan_defaults.json": {
      "sha256": "89bdb96ff721f0f1d509f3c5c83f5fc89022f14406d0a84df781b7e0e42cde66",
      "size": 143
    },
    "scripts/deep_scan_workbench.py": {
      "sha256": "5012b337503f44e086fbf021be9db8340f8ba992fe5169c5534752e900947cf5",
      "size": 84709
    },
    "scripts/filesystem_identity.py": {
      "sha256": "5298f2012b6e48ab1106837a5440ef2b3966383e2321507a47593010bb4dd01f",
      "size": 893
    },
    "scripts/finalize_scan_contract.py": {
      "sha256": "3fa92d8e2ccadb032cf458f0fde444785e8ee5ced0abe6346c285b07ef153e27",
      "size": 133770
    },
    "scripts/finding_preview.py": {
      "sha256": "ebdf8e7b7e465c0937e73e945e3593d659b2f15ff1db08d0b4a2d3b106174c4d",
      "size": 16089
    },
    "scripts/generate_in_scope_files.py": {
      "sha256": "0b420d786b17e4f91451b5b686fdb4d6beee3913eebb952f8fcbf220aec6230e",
      "size": 11646
    },
    "scripts/generate_rank_input.py": {
      "sha256": "e7c0bddbdb7e9236f7431d84b86be4c3fc202daa8d1306d6baa930110635b671",
      "size": 17899
    },
    "scripts/launch_codex_security_mcp": {
      "sha256": "56794e736a1e8f588f9959a2e707ea3ed9bc7d4d2b796c132e91d5fbed59e600",
      "size": 1793
    },
    "scripts/launch_codex_security_mcp.cmd": {
      "sha256": "2539c0914bb130d76629e8176ac93762cd0051677ac2c525e7ba524b0b828f80",
      "size": 2582
    },
    "scripts/rank_preview.py": {
      "sha256": "627d0b89c9d4436162ab9bcb80f7aa562605695e784dc612307c7eda6fef3a7f",
      "size": 34726
    },
    "scripts/report_projection.py": {
      "sha256": "1b24978a3cdb3c336ac27a2b39fb35457bade13a4aad0782710fe38ac39965cf",
      "size": 41098
    },
    "scripts/reserved_artifact_paths.json": {
      "sha256": "58ba1cf42437ac3af65c85a66eeff46f22572e45081fa2620f4b241173efcc50",
      "size": 186
    },
    "scripts/snapshot_sqlite.py": {
      "sha256": "9e0be851702f0962070ece6e0e2959e3955fc99126f68452d175fc22bc38423b",
      "size": 1084
    },
    "scripts/threat_model_projection.py": {
      "sha256": "32e4d5cd370a49cdc5658c3ded3d4d63ba7f41a44b34b67da87321048d088111",
      "size": 6711
    },
    "scripts/validate_scan_contract.py": {
      "sha256": "38a5eb0126ea06b22eb82c5829e4ffcbebd2c1e55f99634454622fedd7b9e1a0",
      "size": 3803
    },
    "scripts/validate_tracking_source.py": {
      "sha256": "802fb3062456128c7adceb6048183811120255b222018e123e10c5ba0caa4bdc",
      "size": 2813
    },
    "scripts/windows_scan_local_files.py": {
      "sha256": "c26276695435d134c1354048c3c74c3c6b0ed203158a93b63b67ef0b6bfab843",
      "size": 24919
    },
    "scripts/workbench/__init__.py": {
      "sha256": "3635fffd60f51d5a5d889e20c91df803c667f8b1b29cbcf68c96cb2e0a9c33ed",
      "size": 58
    },
    "scripts/workbench/handoff.py": {
      "sha256": "83606054cc47064514a612d8ce16353cce669fe07b61852d73bc0c94b75c8ee5",
      "size": 8914
    },
    "scripts/workbench/storage.py": {
      "sha256": "5e389073520fb7668defd433228befd9e7b9c8309c1b6024bffd6213d59f1d88",
      "size": 973
    },
    "scripts/workbench_cli.py": {
      "sha256": "959e951fa5daf326049ee61bd0773999be92600b65a9062e56b4f62fc4e2aa55",
      "size": 21260
    },
    "scripts/workbench_constants.py": {
      "sha256": "0ff12b11b2ae9f71c1de6cff0afc234b035379bb1193f1ca9a56ddeb7aa32cf7",
      "size": 2187
    },
    "scripts/workbench_dashboard.py": {
      "sha256": "5770b77ff551cde46c22fae9239ef8ce28254320da77876e0b936dc35b829967",
      "size": 5990
    },
    "scripts/workbench_db.py": {
      "sha256": "94bf11d7d74202ae7efbdd4f70a036393d4ba013ffc2ada44172a59be41f97f2",
      "size": 146186
    },
    "scripts/workbench_feedback.py": {
      "sha256": "675bc5897444a39950297f74353fa6fd296f73d3a5ac87d294647ae8425151dd",
      "size": 4120
    },
    "scripts/workbench_finding_index.py": {
      "sha256": "4618f994786fa2300e78592fa2868bc0a585368127027c1940a0e504b0254265",
      "size": 3938
    },
    "scripts/workbench_finding_workflows.py": {
      "sha256": "de44bfc28c0a4d2021643a50d5a42408f4853bb4a21cf9d1f4ffb43a695b06ce",
      "size": 8754
    },
    "scripts/workbench_findings.py": {
      "sha256": "b78e2ca68f29cf002b6215985225e1b3996c8edd08601569945405d42c33b301",
      "size": 8881
    },
    "scripts/workbench_native_indexes.py": {
      "sha256": "114dbf1e4050302948c4b8f24d69454f127d128e3bc35e34a5f3ec9dd3b187cd",
      "size": 9870
    },
    "scripts/workbench_progress.py": {
      "sha256": "42c7d0b8b4d253095e1062922cd9e59b10b966ac314bef092cb78cad2217b967",
      "size": 13296
    },
    "scripts/workbench_publication.py": {
      "sha256": "9312a2962b797ed355d6b05fb375da6325aeb5c5ead5d52f2fb7114ef3ad9635",
      "size": 20346
    },
    "scripts/workbench_remediation.py": {
      "sha256": "96585805c4956917bb473c3b60493a3c15daa2028b074b756e36358a9ac76525",
      "size": 7281
    },
    "scripts/workbench_saved_results.py": {
      "sha256": "436b23a4d169006437985bb352bfd792da9e465c4c7506dce31bfd5e78524c6d",
      "size": 119202
    },
    "scripts/workbench_scan_history.py": {
      "sha256": "920a4c6448c4ee87500e4488fdfa5a294dfa0696f94f55f2e2cbe544e5acf60f",
      "size": 48177
    },
    "scripts/workbench_scan_start.py": {
      "sha256": "647e54ce40a7dc5b17d6abe547406f22ca0cb4eee628938b4c21629eb8e73c35",
      "size": 7963
    },
    "scripts/workbench_scan_usage.py": {
      "sha256": "21d845f8967c9206351e54f94fd2b4bbfe834434e35b642992d7a829b76cd94e",
      "size": 22094
    },
    "scripts/workbench_schema.py": {
      "sha256": "25ef8550ded14785fa47b19f1fa358422d8883affc94641c84e68c172e800cc0",
      "size": 51783
    },
    "scripts/workbench_severity.py": {
      "sha256": "ec74f540595e8052e295846303f31988329e0dc68fcebdd92572673555b1c99d",
      "size": 4625
    },
    "scripts/workbench_source_excerpt.py": {
      "sha256": "5681d4a5c547404f687c644f54432c10e0770b6ba4c1e6be321664579a252a24",
      "size": 3210
    },
    "scripts/workbench_target.py": {
      "sha256": "08ed149295b9347ac37f2b8523c822a35f165283422c7644dabecfa236b81b72",
      "size": 32451
    },
    "scripts/workbench_target_state.py": {
      "sha256": "9c133f67397ab4b90ce1275edc09a7e6d05900236209bc72e8f113b9f0cde287",
      "size": 1920
    },
    "scripts/workbench_validation.py": {
      "sha256": "11259b8ce1e135c5a86677964f29e6331e65e5fd80a1931c80f7fac507cccb13",
      "size": 6547
    },
    "skills/assess-patch-risk/SKILL.md": {
      "sha256": "c3b62a8c1d6135945a055134f50329047bb908972fc7b320a592edbc3d38b419",
      "size": 9511
    },
    "skills/assess-patch-risk/agents/openai.yaml": {
      "sha256": "fec61f321e18022579cac25ffb33286f48cc316172a0b8d502f2bf4faecba025",
      "size": 274
    },
    "skills/assess-patch-risk/references/risk-rubric.md": {
      "sha256": "078a71175191580791685808980cb1815dc97265cfee8c0ddad1f4d3b8203b4a",
      "size": 5049
    },
    "skills/attack-path-analysis/SKILL.md": {
      "sha256": "9465d2750182acbf6dd8f61e60bb47dc1ca502be5cc3f4a71da7ad39935d1eb1",
      "size": 8568
    },
    "skills/attack-path-analysis/agents/openai.yaml": {
      "sha256": "d9355cbcf0bc81098c9e837d9d4e8644e598410d052a862ab11cf91ef9ccb633",
      "size": 261
    },
    "skills/attack-path-analysis/references/attack-path-facts.md": {
      "sha256": "8c8f1abb46ddf045d76908df78e3a273da8d61aaa0f37fc992534a3ddfe42430",
      "size": 2882
    },
    "skills/attack-path-analysis/references/severity-policy.md": {
      "sha256": "44719bb96a1065df7683a4f7968145efd3b3f365ec95c22a4bed5b20b5d8a0a1",
      "size": 15288
    },
    "skills/deep-security-scan/SKILL.md": {
      "sha256": "d6aed0d9b47065a1384a96d0a45c843b0cda8ba48e3d2cbe96c65357c6e55ee3",
      "size": 14096
    },
    "skills/deep-security-scan/agents/openai.yaml": {
      "sha256": "3f8d781bf372b0d053a017eabaebf947d5d48d9be2b82cb67da211128924c3f1",
      "size": 192
    },
    "skills/define-security-policy/SKILL.md": {
      "sha256": "2817e1a03980a7ebea478c8d9e6c622e3c6205123e767a1e32f0204c06729cc7",
      "size": 6256
    },
    "skills/define-security-policy/agents/openai.yaml": {
      "sha256": "8c40b0f8bd1eb7feabdcea69f12c2a7d18e492e96893c0702507ffd808b8e2b4",
      "size": 210
    },
    "skills/finding-discovery/SKILL.md": {
      "sha256": "14cc797e750ca4bdd8b060c4cf96d7d32f25b132aa8f80d0a0837683fe010790",
      "size": 25598
    },
    "skills/finding-discovery/agents/openai.yaml": {
      "sha256": "c044dd83a7624b90ed19f11adc899202685ce64e32502f1d46225f69f9a2c962",
      "size": 220
    },
    "skills/fix-finding/SKILL.md": {
      "sha256": "ba7311f43b2c0742da0d5c6bdb2f0b26601c09cc59747cf8c62a09f8d0bb86d2",
      "size": 9477
    },
    "skills/fix-finding/agents/openai.yaml": {
      "sha256": "5dac397bf3a17e45283691b656179eb56d19e34881af380f098d7c455bce52d7",
      "size": 225
    },
    "skills/propose-security-hardening/SKILL.md": {
      "sha256": "ad07d88da7c2bc9e551849cdde686b0daad380ed0aac798e6c06444681d75959",
      "size": 22791
    },
    "skills/propose-security-hardening/agents/openai.yaml": {
      "sha256": "1bcab19d48eb4b768c0dc435bd2e738f1471c2345cce5865bb31bdca5be0b134",
      "size": 293
    },
    "skills/propose-security-hardening/references/proposal-format.md": {
      "sha256": "72b93c32f1cbe7d25a3d347d0894e7b642942e68f2d8a3c0409bc398a41b06e7",
      "size": 25933
    },
    "skills/security-diff-scan/SKILL.md": {
      "sha256": "f85962d46f141227d794a25253a39232bc4e1ad756509ecd3d8769b85b735136",
      "size": 6102
    },
    "skills/security-diff-scan/agents/openai.yaml": {
      "sha256": "f3d31e09befbb8532b53fdccb63a34c0b894a7fb96215b40e84647cd9f8e1b50",
      "size": 284
    },
    "skills/security-scan/SKILL.md": {
      "sha256": "104e2f93fc965c34e91970f517a89e330d5b29dbb243dcea5d95d83f14d135cf",
      "size": 9007
    },
    "skills/security-scan/agents/openai.yaml": {
      "sha256": "5952ae0b0f7d378b7e6ab3fe793335a0e26e5d15bd2d7fdd14ecdd795607ceb6",
      "size": 271
    },
    "skills/security-scan/references/desktop-scan.md": {
      "sha256": "62a3b3baac5773c36eb291c74c0304dd97157aff5b89dd56fa8b0fed08803389",
      "size": 4747
    },
    "skills/security-scan/references/scan-artifacts-and-ledger.md": {
      "sha256": "c95780a7af36fd42716f4c909bb57e68b438769b13f8d6f02ac06ffa73c838ff",
      "size": 14716
    },
    "skills/threat-model/SKILL.md": {
      "sha256": "42568e50c787c4c0bfb9495ad67e72ab6c1a951bb910ecba2c67cff8961c4d56",
      "size": 3606
    },
    "skills/threat-model/agents/openai.yaml": {
      "sha256": "a3533478c2548248ef07c9afbbe0a7451f1fa1882883b4def0906d8113b7dd6c",
      "size": 171
    },
    "skills/track-findings/SKILL.md": {
      "sha256": "a6d2f30e6d5ca7bd9d74d83017f2f5481c5829585941208a1673b82c683d292b",
      "size": 11371
    },
    "skills/track-findings/agents/openai.yaml": {
      "sha256": "39e73c0003afc8bd9d3cf53c027d8274e724dc41f46e3cd6863ad34bb4de4200",
      "size": 279
    },
    "skills/track-findings/references/github-security-advisories.md": {
      "sha256": "5e583aa2f77db32e4983b8b4bb857b1c7eaebfa1f43fc833b551c96acab70d4e",
      "size": 3288
    },
    "skills/track-findings/references/jira.md": {
      "sha256": "bb1f7bb6fa638f20f1caad35b04482ae33f0cdbf2ab9c617e7805575dff457a0",
      "size": 3027
    },
    "skills/triage-finding/SKILL.md": {
      "sha256": "83081950bd4b29ff37cf82d137aec164532ae56b03dbaad3f4dd1d5423e758a7",
      "size": 10004
    },
    "skills/triage-finding/agents/openai.yaml": {
      "sha256": "4a4094210aa6360cf503f5adf7be1e590e27898f3163da1b713632d2828e8563",
      "size": 400
    },
    "skills/triage-finding/references/github-rest-intake.md": {
      "sha256": "f026bef041ca92f3d9b47a131794aa54e98cf8d7716fae3f71ab53e8ab09c79f",
      "size": 9314
    },
    "skills/triage-finding/references/ticket-intake.md": {
      "sha256": "693b415fdfcdcf8e6d5539677ff89c79bb36995ae22916d87866ce2c25113439",
      "size": 3645
    },
    "skills/triage-finding/references/triage-result-contract.md": {
      "sha256": "709c1d803c001a47c884ba10ac97f8c1434c3ce06a75033778343a662b25729b",
      "size": 4447
    },
    "skills/validation/SKILL.md": {
      "sha256": "3c4660f79b12a92728e6bb25027064c3a911d0960d39aeafc8fda9e42ce517a5",
      "size": 12845
    },
    "skills/validation/agents/openai.yaml": {
      "sha256": "7516bcd4748b55566694284d7d953a7db0c94d5a2123895fabb36d7d9d7d74e4",
      "size": 183
    },
    "skills/validation/references/validation-guidance.md": {
      "sha256": "42f7a9d85b78d0deb5e6eda82b8c59ed101c40d36065833b9cf39fe50699e255",
      "size": 26823
    },
    "skills/verify-fix/SKILL.md": {
      "sha256": "3d4530484c7e4c18b6afe7c6527247e96517dce1ebd1bda9d349cd367ecb0ae3",
      "size": 3025
    },
    "skills/verify-fix/agents/openai.yaml": {
      "sha256": "ac35fc4704cde35b6bf103e16a16d0a44f2b9c2671e1634292cf285905cf40f3",
      "size": 235
    },
    "skills/vulnerability-writeup/SKILL.md": {
      "sha256": "d08582d9963ce3bfbc3fe81b6e85a01e6fe306713d7951bfd8dd2fbc3df75de4",
      "size": 27640
    },
    "skills/vulnerability-writeup/agents/openai.yaml": {
      "sha256": "7987566daac59e3dd6c5211fe020f71fc4c862843c231d10c28a45697d680f9e",
      "size": 290
    },
    "skills/vulnerability-writeup/references/report-format.md": {
      "sha256": "60568466f7057562d7359dc3a396632c760c147582603896d7e569a77487d0b1",
      "size": 14682
    }
  }
}

SHA-256 of public snapshot: 8e8a2a0d24309bd11d1c54794bd1027470e5f7bc759784322ed68d7643d69ec8