← 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 →

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

--- before
+++ after
@@ -1,62 +1,42 @@
-# Jira and Linear Ticket Intake
+# Jira and Linear ticket intake
 
-Use this reference whenever `$triage-finding` imports Jira or Linear issues. Retrieve the requested ticket content before normalization. Never infer inaccessible ticket content from an identifier, title fragment, or repository code.
+Retrieve the requested content before normalization. Do not infer inaccessible ticket content from an identifier, title fragment, or repository code.
 
-## Source Retrieval
+## Retrieval
 
-For Jira, use the Atlassian Rovo connector when it is available:
+Use the native [Atlassian](app://asdk_app_6a83901dde988191b3f3cefdcc19acfa) app for Jira. Resolve identity and site with `atlassianUserInfo` and `getAccessibleAtlassianResources`; keep that connection and site for the selected set. Ask when the source is ambiguous.
 
-- Prefer structured JQL for repeatable imported collections, ordered by a stable field such as key or created date. Use natural-language search only to discover the cloud/site, project, issue family, or first matching key from a vague phrase. After discovery, switch to JQL or exact issue fetches.
-- Jira text search tokenizes punctuation. If a hyphenated marker such as `KAN-PROMPTFOO-SYNTH` returns no rows, broaden to a stable token such as `PROMPTFOO`, then filter returned summaries for the exact family before triage.
-- Fetch exact issue URLs or keys directly when the connector supports it. For a project family or saved query, use JQL and preserve the JQL string as source provenance.
+Use live schemas: `getJiraIssue` for exact issues and `searchJiraIssuesUsingJql` for collections. Exhaust returned pages. Discover deferred metadata through `discover` and `executeRead`; intake does not invoke write tools.
 
-For Linear, fetch exact issue URLs or identifiers directly. When the user supplies a team, project, or search phrase, use search results only to identify the intended issue set, then fetch every selected issue before normalization.
+Use natural-language search to discover a site, project, issue family, or first key from a vague request, then use JQL or exact fetches. Order collection queries by a stable field and preserve the JQL as provenance. Jira text search tokenizes punctuation: if an exact marker gives no results, search a stable token and filter returned summaries for the exact family.
 
-## Linear Parent and Sub-Issue Selection
+For Linear, fetch exact URLs or identifiers directly. Search team, project, or phrase requests to resolve the intended issue set, then fetch every selected issue before normalization.
 
-For an exact Linear issue, fetch the parent issue first. Then list its direct children with the connector's parent filter. Exhaust all pages of the direct-child listing before deciding whether children exist.
+## Linear parents and sub-issues
 
-When the parent has direct children:
+Fetch the supplied parent, then list its direct children with the parent filter, exhausting pagination.
 
-1. Show the number of direct children and each child's identifier and title. This listing is selection metadata, not imported finding content.
-2. Ask whether to include that level before fetching any child's full content.
-3. If the user declines, do not fetch or normalize those children.
-4. If the user approves, check that the selected finding count remains within the result limit, then fetch the full content of every approved child.
-5. List direct children for each approved issue, exhausting pagination and grouping the next-level identifiers and titles by parent. If another level exists, repeat the confirmation at the next depth before fetching its full content.
+At each depth, show the child identifiers, titles, and count, grouped by parent. Ask whether to include that level before fetching full child content. Fetch approved children and repeat for the next depth. Approval for one level does not include deeper descendants; skip further questions when none exist.
 
-Do not interpret approval for one level as approval for deeper descendants. If no children exist at a level, continue without another sub-issue question.
+Include the parent when it has an independent vulnerability claim. Exclude an organizing summary. If its role is ambiguous, ask whether to include it before normalization.
 
-Classify the originally supplied parent separately from its children:
+Keep one result per selected issue in deterministic breadth-first tree order: parent first when selected, then each approved depth by creation time with identifier as tiebreaker. Preserve parent relationships in references. Do not truncate or drop selected findings.
 
-- Include the parent as a triage item when its title and body contain a clear independent vulnerability claim.
-- Exclude it when it only organizes or summarizes the child findings.
-- If the parent mixes collection context with a possible standalone claim and the classification is ambiguous, explain the ambiguity and ask whether to include the parent before normalization.
+## Retrieval failures
 
-Preserve one result per selected issue. Use deterministic breadth-first tree order: include the parent first when selected, then each approved depth ordered by creation time with the issue identifier as the tie-breaker. Preserve source identifiers and parent relationships in references.
+- Missing connector or authentication: state which source is unavailable and ask to connect or reauthorize it.
+- Insufficient permission: report the access error and ask the user to request access or choose an account with access.
+- Not found or inaccessible: ask to verify the identifier and workspace. Do not claim the issue does not exist when it may be hidden.
+- Transient failure: retry the identical read once without broadening the query or changing sources. If it fails, report both errors.
 
-The `triage-finding/v0` result accepts at most 250 findings. Before fetching full content for an approved level, count the parent when selected plus all previously imported and newly approved issues. If the total would exceed 250, stop and report the count. Ask the user to narrow by depth, status, label, or a smaller parent. Do not truncate the issue set or split it into multiple result payloads automatically.
+Offer to continue with complete finding content pasted by the user. After an unresolved failure, do not inspect the repository, normalize findings, assign verdicts, or emit `triage-finding/v0`.
 
-## Connector Failure Handling
+## Normalization and result
 
-Classify a failed Jira or Linear read before deciding what to do:
+Normalize Jira and Linear vulnerability tickets as `source_type: "scanner_ticket"` unless the body represents `bug_bounty`, `advisory`, `cve`, or `codex_security_finding`.
 
-- **Missing connector or authentication:** The connector tool is unavailable, the source is not connected, or authentication is missing or expired. Do not retry. State which source could not be accessed and ask the user to connect or reauthorize it. Also offer to continue if the user pastes the complete finding content.
-- **Insufficient permission:** The connector is authenticated but reports forbidden, access denied, or an equivalent authorization error. Do not retry. Preserve the connector's safe error detail, ask the user to request access or use an account with access, and offer the paste-the-finding alternative.
-- **Issue not found or inaccessible:** An exact identifier or URL returns no matching issue, or the connector cannot distinguish missing from hidden. Do not claim that the issue does not exist. Ask the user to verify the identifier and source workspace or provide the ticket content directly.
-- **Transient connector failure:** A timeout, rate limit, temporary service error, or transport failure may recover without a configuration change. Retry the identical read once. Do not broaden the query or switch sources during the retry. If the identical retry fails, stop and report both the original and retry errors when they are safe to show.
+Preserve available issue key or identifier, URL, project, status, labels, components, priority, assignee, reporter, timestamps, issue type, and import query in `input_id`, `normalized_input.references`, and evidence or proof-gap text.
 
-After any unresolved retrieval failure, stop the intake workflow. Do not inspect the repository, normalize a finding, assign a verdict, or emit the `triage-finding/v0` contract. Give the recovery step that matches the failure class rather than a generic success-shaped response.
+Default to read-only import and triage. Do not add comments, transition or close issues, assign owners, or change labels without an explicit writeback request. Finish static verdicts before reviewing writeback.
 
-## Normalization and Provenance
-
-Normalize Jira and Linear vulnerability tickets as `source_type: "scanner_ticket"` unless the ticket body clearly represents `bug_bounty`, `advisory`, `cve`, or `codex_security_finding` input.
-
-Preserve the issue key or identifier, URL, project, status, labels, components, priority, assignee, reporter, timestamps, issue type, and import query in `input_id`, `normalized_input.references`, and evidence or proof-gap text.
-
-## Read-Only Default
-
-Default to read-only import and triage. Do not add comments, transition issues, close issues, assign owners, or change labels unless the user explicitly asks for writeback.
-
-When writeback is requested, finish the static verdicts first. Summarize the planned issue mutations and keep mutation separate from evidence analysis.
-
-For imported collections, the final summary must state the number of issues imported, the query or issue set, where the full result was rendered or saved, and whether the source system changed. The default status is: no Jira or Linear changes made.
+For collections, report the imported count, query or selected set, where the full result was rendered or saved, and whether Jira or Linear changed.
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