From 00d6f0ed415eeb9a0a6ca14c02f8e416de16d89e Mon Sep 17 00:00:00 2001 From: Dong1017 <55723162+Dong1017@users.noreply.github.com> Date: Fri, 30 Oct 2026 14:14:20 +0900 Subject: [PATCH] evidence(indexer): consolidate negative accuracy and cue-study results for #255 Preserve v3 FAIL, blind-cue preparation INCONCLUSIVE and covered-cue neutral FAIL with consolidated table. Evidence only; no runtime promotion or tracker closure. Exact reviewed local tree from c3aa9540a21eb3be37925bf35ef0990e51b33c49; connector transport preserves tree contents, not local commit metadata. Signed-off-by: Codex --- .../indexer-255-blind-cue-20261030/README.md | 5 + .../patch/README.md | 1 + .../plan/accepted-receipt.json | 10 + .../plan/blind-author.json | 423 +++++++++ .../plan/blind-author.json.sha256 | 1 + .../plan/protocol-draft.md | 47 + .../plan/publication-integrity.json | 12 + .../plan/publication-redactions.json | 14 + .../results/intent-review.json | 48 + .../results/source-label-review.json | 114 +++ .../validator/README.md | 1 + .../README.md | 8 + .../patch/README.md | 1 + .../plan/accepted-receipt.json | 8 + .../plan/author-capsules.json | 44 + .../plan/curator-source-labels.json | 80 ++ .../plan/evaluation-inputs.json | 125 +++ .../plan/input-freeze.json | 15 + .../plan/input-review.json | 16 + .../plan/protocol-draft.md | 35 + .../plan/publication-integrity.json | 36 + .../plan/runner-freeze.json | 8 + .../plan/source-conditioned-author.json | 409 +++++++++ .../source-conditioned-author.json.sha256 | 1 + .../plan/source-pins.json | 833 ++++++++++++++++++ .../results/consolidated-results.json | 74 ++ .../results/consolidated-results.md | 16 + .../results/covered255-01-cue.json.gz | Bin 0 -> 285562 bytes .../results/covered255-01-raw.json.gz | Bin 0 -> 286420 bytes .../results/covered255-02-cue.json.gz | Bin 0 -> 276000 bytes .../results/covered255-02-raw.json.gz | Bin 0 -> 276000 bytes .../results/covered255-03-cue.json.gz | Bin 0 -> 248614 bytes .../results/covered255-03-raw.json.gz | Bin 0 -> 248614 bytes .../results/covered255-04-cue.json.gz | Bin 0 -> 247781 bytes .../results/covered255-04-raw.json.gz | Bin 0 -> 247789 bytes .../results/covered255-05-cue.json.gz | Bin 0 -> 258570 bytes .../results/covered255-05-raw.json.gz | Bin 0 -> 259660 bytes .../results/covered255-06-cue.json.gz | Bin 0 -> 242653 bytes .../results/covered255-06-raw.json.gz | Bin 0 -> 247298 bytes .../results/default-captures.json | 108 +++ .../results/independent-review.json | 85 ++ .../results/partial-results.json | 283 ++++++ .../results/report.md | 39 + .../results/results.json | 306 +++++++ .../results/run.log | 1 + .../validator/evaluate.py | 120 +++ .../indexer-255-token-v3-20261030/README.md | 8 + .../patch/candidate.bundle | Bin 0 -> 4116 bytes .../patch/candidate.patch | 491 +++++++++++ .../plan/pre-semantic-freeze.json | 94 ++ .../plan/preparation-freeze.json | 10 + .../plan/protocol.md | 35 + .../plan/publication-integrity.json | 37 + .../plan/source-pins.json | 818 +++++++++++++++++ .../plan/synthetic-contracts.json | 282 ++++++ .../results/baseline-default.json | 53 ++ .../results/baseline-freshdev01.json.gz | Bin 0 -> 268368 bytes .../results/baseline-freshdev02.json.gz | Bin 0 -> 262399 bytes .../results/baseline-freshdev03.json.gz | Bin 0 -> 242941 bytes .../results/baseline-freshdev04.json.gz | Bin 0 -> 260137 bytes .../results/baseline-freshdev05.json.gz | Bin 0 -> 246440 bytes .../results/baseline-freshdev06.json.gz | Bin 0 -> 234369 bytes .../results/baseline-freshnegative01.json.gz | Bin 0 -> 241365 bytes .../results/baseline-freshnegative02.json.gz | Bin 0 -> 251936 bytes .../results/baseline-summary.json | 152 ++++ .../results/candidate-default.json | 53 ++ .../results/compatibility-tests.txt | 55 ++ .../results/independent-review.json | 57 ++ .../results/report.md | 50 ++ .../results/token-freshdev01.json.gz | Bin 0 -> 260387 bytes .../results/token-freshdev02.json.gz | Bin 0 -> 247989 bytes .../results/token-freshdev03.json.gz | Bin 0 -> 257690 bytes .../results/token-freshdev04.json.gz | Bin 0 -> 253072 bytes .../results/token-freshdev05.json.gz | Bin 0 -> 257803 bytes .../results/token-freshdev06.json.gz | Bin 0 -> 282439 bytes .../results/token-freshnegative01.json.gz | Bin 0 -> 251849 bytes .../results/token-freshnegative02.json.gz | Bin 0 -> 255432 bytes .../results/token-summary.json | 153 ++++ .../validator/compatibility_capture.py | 10 + .../validator/evaluate_development.py | 32 + .../inputs/semantic-cases/development.json | 219 +++++ .../semantic-cases/negative-controls.json | 49 ++ tests/test_evidence_inventory.py | 4 +- tools/evidence_inventory.json | 12 + 84 files changed, 5999 insertions(+), 2 deletions(-) create mode 100644 evidence/indexer-255-blind-cue-20261030/README.md create mode 100644 evidence/indexer-255-blind-cue-20261030/patch/README.md create mode 100644 evidence/indexer-255-blind-cue-20261030/plan/accepted-receipt.json create mode 100644 evidence/indexer-255-blind-cue-20261030/plan/blind-author.json create mode 100644 evidence/indexer-255-blind-cue-20261030/plan/blind-author.json.sha256 create mode 100644 evidence/indexer-255-blind-cue-20261030/plan/protocol-draft.md create mode 100644 evidence/indexer-255-blind-cue-20261030/plan/publication-integrity.json create mode 100644 evidence/indexer-255-blind-cue-20261030/plan/publication-redactions.json create mode 100644 evidence/indexer-255-blind-cue-20261030/results/intent-review.json create mode 100644 evidence/indexer-255-blind-cue-20261030/results/source-label-review.json create mode 100644 evidence/indexer-255-blind-cue-20261030/validator/README.md create mode 100644 evidence/indexer-255-covered-cue-20261030/README.md create mode 100644 evidence/indexer-255-covered-cue-20261030/patch/README.md create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/accepted-receipt.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/author-capsules.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/curator-source-labels.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/evaluation-inputs.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/input-freeze.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/input-review.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/protocol-draft.md create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/publication-integrity.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/runner-freeze.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json.sha256 create mode 100644 evidence/indexer-255-covered-cue-20261030/plan/source-pins.json create mode 100644 evidence/indexer-255-covered-cue-20261030/results/consolidated-results.json create mode 100644 evidence/indexer-255-covered-cue-20261030/results/consolidated-results.md create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-01-cue.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-01-raw.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-02-cue.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-02-raw.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-03-cue.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-03-raw.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-04-cue.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-04-raw.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-05-cue.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-05-raw.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-06-cue.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/covered255-06-raw.json.gz create mode 100644 evidence/indexer-255-covered-cue-20261030/results/default-captures.json create mode 100644 evidence/indexer-255-covered-cue-20261030/results/independent-review.json create mode 100644 evidence/indexer-255-covered-cue-20261030/results/partial-results.json create mode 100644 evidence/indexer-255-covered-cue-20261030/results/report.md create mode 100644 evidence/indexer-255-covered-cue-20261030/results/results.json create mode 100644 evidence/indexer-255-covered-cue-20261030/results/run.log create mode 100644 evidence/indexer-255-covered-cue-20261030/validator/evaluate.py create mode 100644 evidence/indexer-255-token-v3-20261030/README.md create mode 100644 evidence/indexer-255-token-v3-20261030/patch/candidate.bundle create mode 100644 evidence/indexer-255-token-v3-20261030/patch/candidate.patch create mode 100644 evidence/indexer-255-token-v3-20261030/plan/pre-semantic-freeze.json create mode 100644 evidence/indexer-255-token-v3-20261030/plan/preparation-freeze.json create mode 100644 evidence/indexer-255-token-v3-20261030/plan/protocol.md create mode 100644 evidence/indexer-255-token-v3-20261030/plan/publication-integrity.json create mode 100644 evidence/indexer-255-token-v3-20261030/plan/source-pins.json create mode 100644 evidence/indexer-255-token-v3-20261030/plan/synthetic-contracts.json create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-default.json create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshdev01.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshdev02.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshdev03.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshdev04.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshdev05.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshdev06.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshnegative01.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-freshnegative02.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/baseline-summary.json create mode 100644 evidence/indexer-255-token-v3-20261030/results/candidate-default.json create mode 100644 evidence/indexer-255-token-v3-20261030/results/compatibility-tests.txt create mode 100644 evidence/indexer-255-token-v3-20261030/results/independent-review.json create mode 100644 evidence/indexer-255-token-v3-20261030/results/report.md create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshdev01.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshdev02.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshdev03.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshdev04.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshdev05.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshdev06.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshnegative01.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-freshnegative02.json.gz create mode 100644 evidence/indexer-255-token-v3-20261030/results/token-summary.json create mode 100644 evidence/indexer-255-token-v3-20261030/validator/compatibility_capture.py create mode 100644 evidence/indexer-255-token-v3-20261030/validator/evaluate_development.py create mode 100644 evidence/indexer-255-token-v3-20261030/validator/inputs/semantic-cases/development.json create mode 100644 evidence/indexer-255-token-v3-20261030/validator/inputs/semantic-cases/negative-controls.json diff --git a/evidence/indexer-255-blind-cue-20261030/README.md b/evidence/indexer-255-blind-cue-20261030/README.md new file mode 100644 index 000000000..134134dbe --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/README.md @@ -0,0 +1,5 @@ +# Blind task cue preparation: INCONCLUSIVE + +[Source-label decision](results/source-label-review.json):3 supported pairs below the frozen4-case minimum. Six authored task/cue pairs passed intent review, but no retrieval evaluation was run. Do not replace unsupported tasks or infer raw/cue effectiveness. Production baseline b3549ce1. + +Inputs/protocol are in plan/; review receipts in results/. accepted-receipt.json and blind-author.json are explicitly publication-redacted copies: only private local identifiers/paths were replaced. plan/publication-redactions.json records original and published SHA256. Frozen downstream input hashes and blind-author.json.sha256 intentionally retain original provenance; they are NOT asserted as the hashes of the redacted public copy. No task/cue wording or outcome was changed. Original copies remain locally retained. No runtime/candidate patch exists because evaluation never started; patch/README.md records that boundary. diff --git a/evidence/indexer-255-blind-cue-20261030/patch/README.md b/evidence/indexer-255-blind-cue-20261030/patch/README.md new file mode 100644 index 000000000..0da0bfbfe --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/patch/README.md @@ -0,0 +1 @@ +No candidate or runtime changes. Preparation stopped INCONCLUSIVE before paired retrieval. diff --git a/evidence/indexer-255-blind-cue-20261030/plan/accepted-receipt.json b/evidence/indexer-255-blind-cue-20261030/plan/accepted-receipt.json new file mode 100644 index 000000000..5d6c39e03 --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/plan/accepted-receipt.json @@ -0,0 +1,10 @@ +{ + "status": "COORDINATOR_ACCEPTED_BEFORE_CASE_AUTHORING_EVALUATION", + "accepted_at_utc": "2026-10-30T03:33:30.132560+00:00", + "protocol_sha256": "0dbe4843e50fc064934e98cad369024ae239b36c69772e2071d7e96c4eecbf17", + "baseline": "b3549ce1aea1556f76de1d2e14a4240474947b6b", + "scope": "One fixed paired raw-task vs manually extracted verbatim cue study; production scorer unchanged", + "author": "", + "next_gate": "Freeze six raw/cue pairs; independent intent review before source labelling; fewer than4 source-supported pairs stops INCONCLUSIVE without replacements", + "heldout": "Old six remain unused; no access needed" +} diff --git a/evidence/indexer-255-blind-cue-20261030/plan/blind-author.json b/evidence/indexer-255-blind-cue-20261030/plan/blind-author.json new file mode 100644 index 000000000..2b2df8169 --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/plan/blind-author.json @@ -0,0 +1,423 @@ +{ + "schema": "blind-manual-cue-authoring-v1", + "frozen_at_utc": "2026-10-30T03:34:44.915639+00:00", + "protocol_path": "/protocol-draft.md", + "protocol_sha256": "0dbe4843e50fc064934e98cad369024ae239b36c69772e2071d7e96c4eecbf17", + "author_access_attestation": { + "inputs_read": [ + "Assigned neutral engineering-task remit", + "protocol-draft.md", + "Intent reviewer coordination messages without catalog content" + ], + "not_accessed": [ + "InferRSI repository or catalog", + "skill titles", + "previous cases or results", + "source labels", + "scorer or search output", + "model service" + ], + "basis": "Self-reported process history, not forensic access isolation. General engineering knowledge used." + }, + "editing_rule": "Manually select verbatim OPERATION, OBJECT, CONSTRAINTS spans, then deterministically serialize them with semicolon-space. This is not an automatic semantic extractor. No synonyms, added keywords, answer hints, translations or catalog-informed edits.", + "offset_convention": "Zero-based Unicode code-point offsets, end-exclusive. All task characters happen to be ASCII. Removed spans partition all unselected raw text, including original separators; separators are reintroduced by serialization.", + "token_count_method": "Whitespace-delimited tokens via Python str.split(); descriptive counts only, not model or production-ranking tokenizer counts.", + "effort": { + "started_at_utc": "2026-10-30T03:33:14+00:00", + "frozen_at_utc": "2026-10-30T03:34:44.915639+00:00", + "elapsed_seconds": 90.915639, + "process": "One fresh authoring pass for six tasks followed by programmatic offset, coverage, serialization and identity assertions. No retrieval, catalog searches, scoring or outcome-driven revisions." + }, + "cases": [ + { + "case_id": "fresh255-01", + "intent": "Inference latency diagnosis", + "raw_task": "Could you help me with this? Diagnose whether queueing rather than model execution explains the high tail latency. Our text-generation endpoint serves short interactive requests alongside long background requests on one GPU. Keep the existing model and output quality unchanged, do not assume batching is the cause, and propose measurements that distinguish waiting time from execution time before recommending a configuration change.", + "cue": "Diagnose whether queueing rather than model execution explains the high tail latency.; Our text-generation endpoint serves short interactive requests alongside long background requests on one GPU.; Keep the existing model and output quality unchanged, do not assume batching is the cause, and propose measurements that distinguish waiting time from execution time before recommending a configuration change.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 29, + "end": 114, + "text": "Diagnose whether queueing rather than model execution explains the high tail latency." + }, + { + "slot": "OBJECT", + "start": 115, + "end": 224, + "text": "Our text-generation endpoint serves short interactive requests alongside long background requests on one GPU." + }, + { + "slot": "CONSTRAINTS", + "start": 225, + "end": 434, + "text": "Keep the existing model and output quality unchanged, do not assume batching is the cause, and propose measurements that distinguish waiting time from execution time before recommending a configuration change." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 29, + "text": "Could you help me with this? ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 114, + "end": 115, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + }, + { + "start": 224, + "end": 225, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + } + ], + "constraints_retained": [ + "Keep the existing model and output quality unchanged, do not assume batching is the cause, and propose measurements that distinguish waiting time from execution time before recommending a configuration change." + ], + "operation_and_object_retained": [ + "Diagnose whether queueing rather than model execution explains the high tail latency.", + "Our text-generation endpoint serves short interactive requests alongside long background requests on one GPU." + ], + "counts": { + "raw_characters": 434, + "cue_characters": 407, + "raw_tokens": 62, + "cue_tokens": 56 + }, + "compression_note": "No semantic information removed. Only politeness and inter-sentence whitespace removed/replaced; sentence punctuation retained verbatim.", + "raw_sha256": "d9bcf58de3a254646c12e0ec8ec9b80e7b4294a26e8e051c31ca63a3c754a116", + "cue_sha256": "47a391fbe286c5a3a702dff48c57b5542d76b094f4a61430de67b3f111588f4f" + }, + { + "case_id": "fresh255-02", + "intent": "Distributed training hang diagnosis", + "raw_task": "Identify likely causes of a distributed training hang and give a minimal diagnostic sequence; PyTorch DistributedDataParallel on four GPUs with gradient accumulation; do not disable gradient synchronization as a fix; preserve the effective batch size", + "cue": "Identify likely causes of a distributed training hang and give a minimal diagnostic sequence; PyTorch DistributedDataParallel on four GPUs with gradient accumulation; do not disable gradient synchronization as a fix; preserve the effective batch size", + "identity_control": true, + "spans": [ + { + "slot": "OPERATION", + "start": 0, + "end": 92, + "text": "Identify likely causes of a distributed training hang and give a minimal diagnostic sequence" + }, + { + "slot": "OBJECT", + "start": 94, + "end": 165, + "text": "PyTorch DistributedDataParallel on four GPUs with gradient accumulation" + }, + { + "slot": "CONSTRAINTS", + "start": 167, + "end": 250, + "text": "do not disable gradient synchronization as a fix; preserve the effective batch size" + } + ], + "removed_spans": [ + { + "start": 92, + "end": 94, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + }, + { + "start": 165, + "end": 167, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + } + ], + "constraints_retained": [ + "do not disable gradient synchronization as a fix; preserve the effective batch size" + ], + "operation_and_object_retained": [ + "Identify likely causes of a distributed training hang and give a minimal diagnostic sequence", + "PyTorch DistributedDataParallel on four GPUs with gradient accumulation" + ], + "counts": { + "raw_characters": 250, + "cue_characters": 250, + "raw_tokens": 35, + "cue_tokens": 35 + }, + "compression_note": "No semantic information removed. Byte-identical control; original slot delimiters are reinserted unchanged.", + "raw_sha256": "ef6d48dde1e99286b048e6d19301041f50824813b18c5c240647b7e8b1c4926b", + "cue_sha256": "ef6d48dde1e99286b048e6d19301041f50824813b18c5c240647b7e8b1c4926b" + }, + { + "case_id": "fresh255-03", + "intent": "Export dynamic-shape compatibility", + "raw_task": "Please help me work through the following. Explain how to export this model and verify that the exported program accepts the intended input shapes. The target API is torch.export.export, and the model takes token IDs shaped [batch, sequence] plus an attention mask with the same shape. Batch size must remain fixed at 1, sequence length must vary from 16 through 512 inclusive, invalid shapes must be rejected, and the answer must include a small validation example rather than switching to a different export API.", + "cue": "Explain how to export this model and verify that the exported program accepts the intended input shapes.; The target API is torch.export.export, and the model takes token IDs shaped [batch, sequence] plus an attention mask with the same shape.; Batch size must remain fixed at 1, sequence length must vary from 16 through 512 inclusive, invalid shapes must be rejected, and the answer must include a small validation example rather than switching to a different export API.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 43, + "end": 147, + "text": "Explain how to export this model and verify that the exported program accepts the intended input shapes." + }, + { + "slot": "OBJECT", + "start": 148, + "end": 285, + "text": "The target API is torch.export.export, and the model takes token IDs shaped [batch, sequence] plus an attention mask with the same shape." + }, + { + "slot": "CONSTRAINTS", + "start": 286, + "end": 514, + "text": "Batch size must remain fixed at 1, sequence length must vary from 16 through 512 inclusive, invalid shapes must be rejected, and the answer must include a small validation example rather than switching to a different export API." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 43, + "text": "Please help me work through the following. ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 147, + "end": 148, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + }, + { + "start": 285, + "end": 286, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + } + ], + "constraints_retained": [ + "Batch size must remain fixed at 1, sequence length must vary from 16 through 512 inclusive, invalid shapes must be rejected, and the answer must include a small validation example rather than switching to a different export API." + ], + "operation_and_object_retained": [ + "Explain how to export this model and verify that the exported program accepts the intended input shapes.", + "The target API is torch.export.export, and the model takes token IDs shaped [batch, sequence] plus an attention mask with the same shape." + ], + "counts": { + "raw_characters": 514, + "cue_characters": 473, + "raw_tokens": 84, + "cue_tokens": 77 + }, + "compression_note": "No semantic information removed. Only politeness and inter-sentence whitespace removed/replaced; sentence punctuation retained verbatim.", + "raw_sha256": "525c6f2067999ec6f1855e3e77752a33597b75dc3b2aa4d87220210447b46c87", + "cue_sha256": "67db4e34837f94c68cecb778214f4c27878de86faefac0efebda186d7152ec4a" + }, + { + "case_id": "fresh255-04", + "intent": "Training checkpoint recovery correctness", + "raw_task": "Plan a checkpoint-and-resume test; a single-GPU training run using AdamW, dropout, and shuffled minibatches; restore optimizer and random-number-generator state; compare the next ten losses with an uninterrupted run; do not claim bitwise reproducibility across different hardware", + "cue": "Plan a checkpoint-and-resume test; a single-GPU training run using AdamW, dropout, and shuffled minibatches; restore optimizer and random-number-generator state; compare the next ten losses with an uninterrupted run; do not claim bitwise reproducibility across different hardware", + "identity_control": true, + "spans": [ + { + "slot": "OPERATION", + "start": 0, + "end": 33, + "text": "Plan a checkpoint-and-resume test" + }, + { + "slot": "OBJECT", + "start": 35, + "end": 107, + "text": "a single-GPU training run using AdamW, dropout, and shuffled minibatches" + }, + { + "slot": "CONSTRAINTS", + "start": 109, + "end": 279, + "text": "restore optimizer and random-number-generator state; compare the next ten losses with an uninterrupted run; do not claim bitwise reproducibility across different hardware" + } + ], + "removed_spans": [ + { + "start": 33, + "end": 35, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + }, + { + "start": 107, + "end": 109, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + } + ], + "constraints_retained": [ + "restore optimizer and random-number-generator state; compare the next ten losses with an uninterrupted run; do not claim bitwise reproducibility across different hardware" + ], + "operation_and_object_retained": [ + "Plan a checkpoint-and-resume test", + "a single-GPU training run using AdamW, dropout, and shuffled minibatches" + ], + "counts": { + "raw_characters": 279, + "cue_characters": 279, + "raw_tokens": 36, + "cue_tokens": 36 + }, + "compression_note": "No semantic information removed. Byte-identical control; original slot delimiters are reinserted unchanged.", + "raw_sha256": "8267376b490315099ac8e1ed4aa2cf285abc19200ec614aa2c04457a075febc0", + "cue_sha256": "8267376b490315099ac8e1ed4aa2cf285abc19200ec614aa2c04457a075febc0" + }, + { + "case_id": "fresh255-05", + "intent": "Inference memory admission design", + "raw_task": "I would appreciate your help. Design an admission policy that prevents out-of-memory failures without silently dropping accepted requests. Our image-and-text inference service receives images with different resolutions and prompts with different token lengths, and several requests can be active on the same GPU. Account for input-dependent memory rather than using request count alone, state how to handle a request that cannot fit even when run by itself, and describe how to test the policy without requiring production traffic. Thanks.", + "cue": "Design an admission policy that prevents out-of-memory failures without silently dropping accepted requests.; Our image-and-text inference service receives images with different resolutions and prompts with different token lengths, and several requests can be active on the same GPU.; Account for input-dependent memory rather than using request count alone, state how to handle a request that cannot fit even when run by itself, and describe how to test the policy without requiring production traffic.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 30, + "end": 138, + "text": "Design an admission policy that prevents out-of-memory failures without silently dropping accepted requests." + }, + { + "slot": "OBJECT", + "start": 139, + "end": 312, + "text": "Our image-and-text inference service receives images with different resolutions and prompts with different token lengths, and several requests can be active on the same GPU." + }, + { + "slot": "CONSTRAINTS", + "start": 313, + "end": 531, + "text": "Account for input-dependent memory rather than using request count alone, state how to handle a request that cannot fit even when run by itself, and describe how to test the policy without requiring production traffic." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 30, + "text": "I would appreciate your help. ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 138, + "end": 139, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + }, + { + "start": 312, + "end": 313, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + }, + { + "start": 531, + "end": 539, + "text": " Thanks.", + "reason": "politeness", + "detail": "Polite closing." + } + ], + "constraints_retained": [ + "Account for input-dependent memory rather than using request count alone, state how to handle a request that cannot fit even when run by itself, and describe how to test the policy without requiring production traffic." + ], + "operation_and_object_retained": [ + "Design an admission policy that prevents out-of-memory failures without silently dropping accepted requests.", + "Our image-and-text inference service receives images with different resolutions and prompts with different token lengths, and several requests can be active on the same GPU." + ], + "counts": { + "raw_characters": 539, + "cue_characters": 503, + "raw_tokens": 79, + "cue_tokens": 73 + }, + "compression_note": "No semantic information removed. Only politeness and inter-sentence whitespace removed/replaced; sentence punctuation retained verbatim.", + "raw_sha256": "ee36503d3c192f10b6c85be111a0bea1445aef0c287f6bf1a34db903dc1b77e0", + "cue_sha256": "a34321b804aa1a57ad8da828b32478c4e9b75dcafbd1e05f2f56f2d9f51d21d7" + }, + { + "case_id": "fresh255-06", + "intent": "Attention numerical discrepancy investigation", + "raw_task": "Could you take a look at this? Investigate whether the observed output differences are expected numerical error or an implementation defect. A causal attention implementation in half precision disagrees with a full-precision reference most strongly on long sequences with padding. Check masking and padded positions as well as arithmetic precision, do not assume the optimized kernel is wrong, and provide a small reproducible comparison with explicit absolute and relative error measurements before suggesting a replacement.", + "cue": "Investigate whether the observed output differences are expected numerical error or an implementation defect.; A causal attention implementation in half precision disagrees with a full-precision reference most strongly on long sequences with padding.; Check masking and padded positions as well as arithmetic precision, do not assume the optimized kernel is wrong, and provide a small reproducible comparison with explicit absolute and relative error measurements before suggesting a replacement.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 31, + "end": 140, + "text": "Investigate whether the observed output differences are expected numerical error or an implementation defect." + }, + { + "slot": "OBJECT", + "start": 141, + "end": 280, + "text": "A causal attention implementation in half precision disagrees with a full-precision reference most strongly on long sequences with padding." + }, + { + "slot": "CONSTRAINTS", + "start": 281, + "end": 525, + "text": "Check masking and padded positions as well as arithmetic precision, do not assume the optimized kernel is wrong, and provide a small reproducible comparison with explicit absolute and relative error measurements before suggesting a replacement." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 31, + "text": "Could you take a look at this? ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 140, + "end": 141, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + }, + { + "start": 280, + "end": 281, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot delimiter is replaced by the mandated serialization delimiter; no semantic content is removed." + } + ], + "constraints_retained": [ + "Check masking and padded positions as well as arithmetic precision, do not assume the optimized kernel is wrong, and provide a small reproducible comparison with explicit absolute and relative error measurements before suggesting a replacement." + ], + "operation_and_object_retained": [ + "Investigate whether the observed output differences are expected numerical error or an implementation defect.", + "A causal attention implementation in half precision disagrees with a full-precision reference most strongly on long sequences with padding." + ], + "counts": { + "raw_characters": 525, + "cue_characters": 496, + "raw_tokens": 75, + "cue_tokens": 68 + }, + "compression_note": "No semantic information removed. Only politeness and inter-sentence whitespace removed/replaced; sentence punctuation retained verbatim.", + "raw_sha256": "4d386903bdb05c32dcb853128e531ad9e898d9ea8ea46a2c0c947311f4cd98bb", + "cue_sha256": "193bb70f0cd2ef507139f621c78f4f122fc287aafcb5adfcd44ba7e0b0761163" + } + ], + "gate_status": "Input author frozen. Independent intent review pending; source classification and retrieval not performed." +} diff --git a/evidence/indexer-255-blind-cue-20261030/plan/blind-author.json.sha256 b/evidence/indexer-255-blind-cue-20261030/plan/blind-author.json.sha256 new file mode 100644 index 000000000..d1fc134f7 --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/plan/blind-author.json.sha256 @@ -0,0 +1 @@ +ed81b75333efaab1d8834ff6f9d30f2b060b070212ee463d9b7395e0a0cfcfc3 blind-author.json diff --git a/evidence/indexer-255-blind-cue-20261030/plan/protocol-draft.md b/evidence/indexer-255-blind-cue-20261030/plan/protocol-draft.md new file mode 100644 index 000000000..cdfc3dc2a --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/plan/protocol-draft.md @@ -0,0 +1,47 @@ +# #255 input-expression feasibility study — prospective draft + +Status: DRAFT FOR COORDINATOR ACCEPTANCE before case authoring or retrieval. Owner accepted this direction at03:30 UTC2026-10-30; no scorer change or automatic query rewrite was authorized by this study. One bounded CPU comparison, six fresh development tasks. No paid/model/hardware calls, installs, external writes or old-heldout access. + +## Question and baseline +Can task-preserving, manually prepared `操作+对象+约束` relevance cues improve retrieval ordering compared with the same task expressed as a longer narrative, using unchanged production ranking? + +Pin production `b3549ce1aea1556f76de1d2e14a4240474947b6b` and the existing813-file source manifest SHA256 `9a1a7d9fda980602ca344a4cf8be10fbfa7eef96c2dc1feaea8eab75647c4215`. Refresh main before acceptance; if source/corpus changed, pin and disclose the new baseline before inputs rather than quietly comparing across snapshots. Runtime/source and corpus must be identical for both arms. Existing weighted-lexical-v1 only; no v2/v3 opt-in mode, code/scorer changes, field weights, filters, query tuning or metadata edits. + +## Roles and information barriers +1. A fresh input author with no catalog, target-label, old case wording or retrieval-result access authors exactly six plausible engineering tasks and concise cues. Supply only this protocol plus a broad neutral remit: inference/training engineering tasks involving a concrete operation, object and constraint; do not supply selected skill names, keyword lists, old failure examples or intended targets. Task author records an access attestation and cue-editing time/effort. +2. An independent intent reviewer checks each raw/cue pair BEFORE source labelling: operations/objects/constraints, negation, causal uncertainty, environment, thresholds and requested deliverable must agree. Reviewer does not rewrite cues or inject repository terminology. Disagreement marks the pair invalid; no replacement after seeing retrieval results. +3. A separate source-label reviewer may inspect the frozen six tasks and pinned corpus, then assigns partial positive IDs and exact source support. No rank calls, scorer simulation or candidate outputs. Do not change task/cue wording after seeing catalog matches. Record unlabelled/ambiguous cases honestly, not forced targets. +4. Evaluator receives the final input commitment only after all above receipts. One paired retrieval run; report both arms including misses. Old six sealed heldout cases remain sealed and are neither accessed nor repurposed. + +A role-separated author process can use subagents, but these are human/assistant-curated experimental inputs, NOT observed user traffic or an automatic normalizer. Attestations/history establish the intended barrier; do not claim forensic access isolation. + +## Fixed cue-editing rule (manual, auditable, no model rewrite service) +The author first writes the raw task as a natural narrative, then annotates verbatim spans into three ordered slots: + +- OPERATION: the actual action/question to answer, including uncertainty or requested diagnosis rather than turning it into a prescription. +- OBJECT: workload/component/data object and explicit environment identifiers needed to interpret it. +- CONSTRAINTS: ALL explicit correctness/safety/resource/performance conditions, negations, thresholds and required output. + +Construct the cue by joining those verbatim spans in order with `; `. Do not paraphrase, add synonyms/keywords, singularize, translate, remove negation, introduce desired answers or rename objects after catalog terms. Repeated exact spans may appear once; otherwise preserve the selected text. Remove only greetings, politeness, redundant framing or incidental chronology not used by the task. If meaningful information cannot be removed safely, retain it; a cue need not be short. Record every removed span and a reason from this fixed list, plus raw/cue character and token counts. This is a deterministic serialization of manually selected slots, NOT deterministic automatic semantic extraction. Report that distinction explicitly. + +To prevent an artificial advantage, raw tasks must not be padded with arbitrary unrelated vocabulary, intentionally bait substring matches, or hide a known skill title. At least two naturally concise tasks should act as identity/near-identity controls: if they already consist of operation/object/constraints, keep the wording unchanged. Do not search for tasks that produce a requested score. + +## Input counts and pre-evaluation validity gate +Exactly six fresh tasks, at least four distinct task intents, including at least two identity/near-identity controls within six. Distinctness reviewed semantically, not proven statistical independence. Avoid reusing previous case wording or known failed tasks; the coordinator can check overlap using IDs/hashes and coarse intent without disclosing old sealed labels to author. + +All six pairs must pass intent preservation. At least four of six must have source-supported positives; otherwise preparation yields INCONCLUSIVE coverage and STOP before retrieval. Freeze all six original pairs, all partial labels/ambiguities, source hashes, retained/removed-span maps and the eligible metric denominator. Do not replace source-uncovered cases just to manufacture success. Remaining unlabelled cases still run and are reported descriptively, not called failures or true negatives. No labels may be added after viewing output ranks for the gate calculation. + +## Retrieval settings and prospective gates +Both arms use `query=''`, no filters, `limit=5`, `context_bytes=262144`, same production `relevance` interface. Only the cue string differs. Paired outputs captured once per frozen pair; no retries/tuning/relabel after outcomes. + +- All pre-evaluation validity checks pass. +- On frozen source-labelled eligible pairs, no baseline positive Hit@5 is lost; Hit@5 is nondecreasing; MRR@5 is STRICTLY greater than raw-task baseline. Minimum benefit is ordinal/effect direction, not statistical confidence. Report absolute per-case rank changes, denominator, summed RR and MRR; no rounding into a pass. +- Identity controls yield exact serialized output parity when raw and cue are byte-identical. Near-identity controls remain descriptive pairs, not an exact-parity assertion. At least one byte-identical control is required. +- Existing six unchanged/default contract captures have exact parity against baseline; source/scorer hash equality and no code diff mandatory. +- Full indexed_skill mandatory resources, emitted bytes/hashes/revision, context-budget accounting and explicit omissions must pass in both arms; complete relevant delivery count must not decrease. Required suffixes alone are insufficient. +- Any valid negative gate result is FAIL. Missing/broken input identity or too few source-supported cases is INCONCLUSIVE. Stop; retain all outputs and no second rule/case replacement/search-until-pass. + +## Decision and limits +PASS supports only feasibility of this manually prepared input contract on a small curated set. It does not prove an automatic rewriting algorithm, lower user effort, speed, population accuracy, complete precision/recall, downstream agent benefit or hardware efficacy. Require reporting how much task-author effort was needed and any information that could not be compressed. No shipping caller burden, default change, promotion or #255 closure follows automatically. A next validation/implementation decision is separate. + +Previous cache/v2/v3 FAIL reports remain unchanged. The six old heldout cases stay unused regardless of this study's outcome. diff --git a/evidence/indexer-255-blind-cue-20261030/plan/publication-integrity.json b/evidence/indexer-255-blind-cue-20261030/plan/publication-integrity.json new file mode 100644 index 000000000..c7a37481c --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/plan/publication-integrity.json @@ -0,0 +1,12 @@ +{ + "README.md": "b44e6518244cb4fb51588a1ed080d363b28ca267e6c7363b939772349e728a9e", + "patch/README.md": "33a32a2d7dc0c4f14122e192bbcd6b4e58630aac858852054103e8f58afa6121", + "plan/accepted-receipt.json": "4b90d0d1b2cacd16e822f6cff78ea7532d1fc915a2ca366c00a1cad5f2f5d94f", + "plan/blind-author.json": "66bb2a2c47e18504d6e0650fbc4f06cc9e785e71f44840ef985e65e8e0e9e54c", + "plan/blind-author.json.sha256": "e36e17adb28b0cdd5eb863b706b39b6886f726164bc71348e44a4cee0b095e56", + "plan/protocol-draft.md": "0dbe4843e50fc064934e98cad369024ae239b36c69772e2071d7e96c4eecbf17", + "plan/publication-redactions.json": "7a5a859dea495dc2f52baf1de07b805370bf1b749a76f470885165783d2d31f3", + "results/intent-review.json": "1aa230da216f6d5ad918cd69dbf181cfec0525b4168f7dad72d0dc1d4304a627", + "results/source-label-review.json": "3ca52b5576fca03c7e536d6c19b4ff2ff2b0c88c6c8a63dfcdfdf2d5de5f586f", + "validator/README.md": "7a3ef259da87821a93308b026ee33b31eb3e828b0bf2d5443fad8e7d2b816cbc" +} diff --git a/evidence/indexer-255-blind-cue-20261030/plan/publication-redactions.json b/evidence/indexer-255-blind-cue-20261030/plan/publication-redactions.json new file mode 100644 index 000000000..de2f53caa --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/plan/publication-redactions.json @@ -0,0 +1,14 @@ +[ + { + "artifact": "plan/blind-author.json", + "original_sha256": "ed81b75333efaab1d8834ff6f9d30f2b060b070212ee463d9b7395e0a0cfcfc3", + "published_sha256": "66bb2a2c47e18504d6e0650fbc4f06cc9e785e71f44840ef985e65e8e0e9e54c", + "change": "Only local task identifier or absolute scratch path replaced by labelled placeholder. Frozen task/cue strings unchanged; original hashes in receipts refer to retained local original." + }, + { + "artifact": "plan/accepted-receipt.json", + "original_sha256": "7d99ed6d16846a788d6ac2410b5b93548814a83b318b373d91912d5ca4cd1121", + "published_sha256": "4b90d0d1b2cacd16e822f6cff78ea7532d1fc915a2ca366c00a1cad5f2f5d94f", + "change": "Only local task identifier or absolute scratch path replaced by labelled placeholder. Frozen task/cue strings unchanged; original hashes in receipts refer to retained local original." + } +] diff --git a/evidence/indexer-255-blind-cue-20261030/results/intent-review.json b/evidence/indexer-255-blind-cue-20261030/results/intent-review.json new file mode 100644 index 000000000..50c33efd8 --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/results/intent-review.json @@ -0,0 +1,48 @@ +{ + "reviewed_at_utc": "2026-10-30T03:35:10.365123+00:00", + "input_sha256": "ed81b75333efaab1d8834ff6f9d30f2b060b070212ee463d9b7395e0a0cfcfc3", + "status": "PASS_INTENT_PRESERVATION_BEFORE_SOURCE_LABEL_REVIEW", + "cases": [ + { + "id": "fresh255-01", + "verbatim_spans_valid": true, + "all_explicit_constraints_and_uncertainty_retained": true, + "identity_control": false + }, + { + "id": "fresh255-02", + "verbatim_spans_valid": true, + "all_explicit_constraints_and_uncertainty_retained": true, + "identity_control": true + }, + { + "id": "fresh255-03", + "verbatim_spans_valid": true, + "all_explicit_constraints_and_uncertainty_retained": true, + "identity_control": false + }, + { + "id": "fresh255-04", + "verbatim_spans_valid": true, + "all_explicit_constraints_and_uncertainty_retained": true, + "identity_control": true + }, + { + "id": "fresh255-05", + "verbatim_spans_valid": true, + "all_explicit_constraints_and_uncertainty_retained": true, + "identity_control": false + }, + { + "id": "fresh255-06", + "verbatim_spans_valid": true, + "all_explicit_constraints_and_uncertainty_retained": true, + "identity_control": false + } + ], + "limits": [ + "Reviewer has prior general repository knowledge but has not accessed source/catalog for these new pairs before this intent receipt. Author independently attests no catalog/old-case/rank access.", + "Four nonidentity cases remove only polite framing, not substantive narrative. This is a narrower politeness-removal/slot-serialization test, not demonstrated semantic compression. Do not generalize outcome to arbitrary normalization.", + "No query edits requested. Source labels next; preserve exact input hash." + ] +} diff --git a/evidence/indexer-255-blind-cue-20261030/results/source-label-review.json b/evidence/indexer-255-blind-cue-20261030/results/source-label-review.json new file mode 100644 index 000000000..f6d60b47e --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/results/source-label-review.json @@ -0,0 +1,114 @@ +{ + "reviewed_at_utc": "2026-10-30T03:36:39.961469+00:00", + "baseline": "b3549ce1aea1556f76de1d2e14a4240474947b6b", + "input_sha256": "ed81b75333efaab1d8834ff6f9d30f2b060b070212ee463d9b7395e0a0cfcfc3", + "intent_review_sha256": "1aa230da216f6d5ad918cd69dbf181cfec0525b4168f7dad72d0dc1d4304a627", + "method": "Catalog inventory and bounded source-text inspection/search only; no scorer, collect, ranking simulation or retrieval evaluation. Queries/labels never edited based on outputs.", + "cases": [ + { + "id": "fresh255-01", + "status": "SOURCE_SUPPORTED_PARTIAL_POSITIVE", + "relevant_ids": [ + "inferrsi.common.skills.assess_serving_preemption" + ], + "evidence": [ + { + "path": "src/inferrsi/data/skill_library/methods/assess-serving-preemption/SKILL.md", + "sha256": "0a5f48d9352c5bf460775ef47f9136829978811f4a16e84983e299782cae305d", + "start_line": 12, + "end_line": 25, + "quote": "## Distinguish the failed boundary\n\nEstablish what is late: first token, individual token gap, request completion, or a stated cohort's service. Obtain the exact percentile/attainment target and denominator. Then separate:\n- Waiting for the current whole batch to end\n- Inability to admit because reserved or live KV is full\n- Long first-iteration/prefill interference\n- Long accepted requests occupying service while short jobs queue\n- Waiting for state recovery or host/device transfer\n\nIteration-level batching can address the first without solving the others. Short-job preemption addresses service ordering but can worsen the total unfinished-state footprint. If prefill interference is the binding problem, the optional earlier `choose-prefill-decode-schedule` candidate addresses that separate question; `diagnose-kv-block-efficiency` addresses physical allocation/slack. Neither is required to consume this skill: if unavailable, report the diagnosed boundary and the missing current evidence rather than substituting a preemption recipe.\n\n## Evidence required for a candidate\n\nRecord model/KV format, actual engine revision, safe interruption boundary, request batch limit, input/output/context distributions, arrival bursts, device live/reserved/allocated bytes, active and suspended requests, host budget, transfer path, recovery time, and queue/phase/service timings. Keep per-tenant or priority-class obligations distinct from aggregate latency. Mark unavailable evidence explicitly." + } + ], + "limits": "Queue delay/service ordering and discriminating timing evidence directly relevant; not a complete diagnosis or current engine qualification." + }, + { + "id": "fresh255-02", + "status": "UNLABELLED_SCOPE_MISMATCH", + "relevant_ids": [], + "evidence": [ + { + "path": "src/inferrsi/data/skill_library/repositories/sglang/sub-skills/sglang-parallel-extension/SKILL.md", + "sha256": "18bd54ebdd629e1ba6dfa589f391c7cc3c5355785c2ae82f741b64ee8022464f", + "start_line": 20, + "end_line": 25, + "quote": "\nRuntime configuration is published into namespace bags; the raw ServerArgs record is not the effective decision source. Inspect the current native runtime-context contract before modifying config reads, overrides, or per-runner state.\n\nExpected result: topology/ownership diagram or precise patch boundary plus baseline comparisons. Validate one rank first when appropriate, then the intended groups and PD peers. Include idle ranks, uneven loads, cancellation, and error propagation in distributed checks.\n\nA distributed hang requires rank-specific evidence and collective-order inspection. A numerically wrong kernel requires a reduced input and reference comparison. Revert the affected backend/feature to the baseline; do not infer correctness from a successful import, launch, or faster microbenchmark. Plan the [validation gates](../../references/tuning-and-validation.md) before accepting the extension." + } + ], + "limits": "Nearby rank-specific collective guidance is SGLang extension validation, not PyTorch DistributedDataParallel training with gradient accumulation/effective-batch preservation. No sufficiently specific positive established; not proof no useful resource exists." + }, + { + "id": "fresh255-03", + "status": "UNLABELLED_NO_SPECIFIC_SOURCE_ESTABLISHED", + "relevant_ids": [], + "evidence": [], + "limits": "No specific torch.export.export dynamic-shape constraint/validation guidance established in bounded skill-library review. Do not substitute another export API or generic model adaptation." + }, + { + "id": "fresh255-04", + "status": "SOURCE_SUPPORTED_PARTIAL_POSITIVE", + "relevant_ids": [ + "inferrsi.common.skills.checkpoint_recovery_consistency" + ], + "evidence": [ + { + "path": "src/inferrsi/data/skill_library/methods/checkpoint-recovery-consistency/SKILL.md", + "sha256": "6b7db1eb2780dec27858cb7aa0a3c093c5b5dfa4c30261aebfeaa255213ff688", + "start_line": 25, + "end_line": 35, + "quote": "## Establish four independent acceptance questions\n\n| Question | Required evidence |\n|---|---|\n| Does the snapshot survive the declared failure? | Actual memory/storage/replica placement and helper lifetime |\n| Is one generation complete across required participants? | Step/iteration identity, expected shard/rank set, successful finalization |\n| Does that generation contain the application's complete state? | Model, optimizer and caller-required RNG/scheduler/data-position state contract |\n| Can the target environment restore it? | Matching format, world-size/replication assumptions and separately authorized restore evidence |\n\nNeither equal steps nor complete rank IDs verifies tensor contents or whole\napplication semantics. Record these as distinct evidence levels." + } + ], + "limits": "Direct model/optimizer/RNG/scheduler/data-position completeness contract useful for resume test; does not supply AdamW/dropout code or prove next-ten-loss or cross-hardware parity. Partial relevance, not complete task solution." + }, + { + "id": "fresh255-05", + "status": "UNLABELLED_SCOPE_MISMATCH", + "relevant_ids": [], + "evidence": [ + { + "path": "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/SKILL.md", + "sha256": "d99fc28d48127d3bc627f2a0cab6f3f16158a77da49428838a08865adaea9905", + "start_line": 40, + "end_line": 51, + "quote": "## Required evidence\n\nCollect the deployed revision, scheduler class, effective scheduler/cache configuration, connector class and role, KV-group layout, scheduling policy, speculative/encoder features, and concurrent-batch mode. Obtain a bounded request/step trace: queue/status, actual scheduled tokens, both remaining budgets, allocation result, preemption victim, pending-transfer/free state, and request timing. Separate unavailable observations from zero values. `Scheduler.make_stats` is gated by `log_stats`; its queue/KV fields are useful context but do not expose every branch reason (F7).\n\n## Decision procedure\n\n1. Establish the effective caps: running slots derive from `max_num_seqs`; admission uses `max_num_active_seqs` or its fallback; scheduling-token and input budgets are separate (F1). Record both, including draft-slot charges. Never treat a nonempty queue as proof of memory exhaustion.\n2. Trace the first blocking/skip branch for representative requests. Running requests are considered first. Token availability, context bounds, cadence, encoder constraints, and alignment can prevent work before KV allocation (F2). Distinguish a skipped request from a loop-ending failure.\n3. For a long prefill, check whether more than one request is eligible before attributing a cap to `long_prefill_token_threshold`; the singleton case disables it and the adaptive option can raise the cap (F2). Do not copy a default or prescribe a universal threshold.\n4. If `allocate_slots` returns `None`, inspect `has_pending_block_frees` and `_request_blocks_can_be_freed` before blaming victim selection. The source can stop allocation without preempting. Otherwise identify the actual priority/FCFS victim and, for an already-scheduled priority victim, restored token/input/encoder accounting (F3, F6).\n5. Reconstruct waiting admission separately: preemption earlier in the same step, pause state, KV-holding queue precedence, active-request cap, blocked status, and LoRA limit precede useful work (F4). For external-prefix lookup, distinguish unknown matches, zero matches, and positive asynchronous matches. Async admission reserves blocks while scheduling zero new tokens; its computed-token counter is not evidence of load completion (F5).\n6. Classify the observed limiting branch and one competing explanation. Produce one conditional hypothesis: adjust a documented cap only after checking the deployed configuration schema, or investigate connector progress instead. Predict which branch/metric should change and what latency, capacity, or recomputation trade-off could worsen. Do not change settings under this skill." + } + ], + "limits": "vLLM pinned scheduler branch diagnosis is related, but cannot be labelled a generic image-resolution/prompt-dependent admission-policy design with never-fit request handling and offline test. No target-runtime assumption added to raw task." + }, + { + "id": "fresh255-06", + "status": "SOURCE_SUPPORTED_PARTIAL_POSITIVE", + "relevant_ids": [ + "inferrsi.cuda.skills.diagnose_attention_bottlenecks" + ], + "evidence": [ + { + "path": "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/SKILL.md", + "sha256": "a25738dbb3b9daa15c5827cb536a20fe13f7c8b9dd14aa3fb7cfa7e132879431", + "start_line": 12, + "end_line": 20, + "quote": "Use when attention remains slow despite fusion/tiling, a larger tile or deeper pipeline regresses, low-precision throughput disappoints, or a proposed hardware port assumes that the paper's instructions transfer directly.\n\nObtain the actual kernel/library revision and device; forward/backward or inference phase; batch, query/KV lengths, head count and head dimension; causal/padding masks, dropout and MQA/GQA; input, accumulator and intermediate dtypes; output/gradient tolerance and task-quality requirements. Distinguish an attention kernel from a whole training step or serving request.\n\nRequest existing evidence for HBM bytes and allocation, shared-memory/register use and spills, independent CTA/work-tile counts, synchronization/atomic waits, Tensor Core/GEMM activity, scalar/special-function work, and exposed load/compute stalls. A low percentage of peak FLOP/s does not identify which is limiting. If these observations are unavailable, return conditional hypotheses and the missing evidence; do not initiate profiling or runs without authorization in the current task.\n\n## Decision procedure\n\n1. **Check semantics before costs.** Preserve stable online-softmax normalization, masks and dropout replay; require correct output and gradients at the approved tolerance. Dense exact attention, block-sparse attention and quantized attention have different contracts. Exact algebra does not imply bitwise-identical floating-point results. Do not turn the historical papers' pseudocode directly into an implementation without resolving their notation/boundary issues. [F1\u2013F3; sources, interpretation cautions]" + }, + { + "path": "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/SKILL.md", + "sha256": "a25738dbb3b9daa15c5827cb536a20fe13f7c8b9dd14aa3fb7cfa7e132879431", + "start_line": 35, + "end_line": 41, + "quote": "## Required output and proposed verification\n\nReturn: observed bottleneck and confidence; workload/semantic contract; one smallest candidate change; expected resource exchange; counter-signal; missing evidence; source ID; and the next authorization gate.\n\nFor a later authorized comparison, keep hardware/clock, stack, workload, dtype, mask/dropout and measurement boundary fixed. Report forward, backward and combined time separately; HBM bytes and allocation separately; fast-memory use/spills, active work and waits; preprocessing cost for precision changes; output/gradient error and any required task-quality result. State whether throughput counts useful matmuls, recomputation, causal masking and batch. Only claim application benefit after measuring that application boundary.\n\nReject or defer a proposal on wrong outputs/gradients, violated buffer lifetime, unverified compiler ordering, spills or memory overrun, unsupported primitives, unacceptable accuracy, or a gain that vanishes after including the omitted work. Empirical validation remains not_run; source-paper results do not establish local compatibility or efficacy." + } + ], + "limits": "Source requires mask/dtypes/tolerances and correctness before optimization, directly useful to numerical discrepancy investigation; does not implement the requested small comparison or universal tolerance." + } + ], + "source_supported_count": 3, + "required_minimum": 4, + "decision": "PREPARATION_INCONCLUSIVE_STOP_BEFORE_RETRIEVAL", + "heldout": "OLD_HELDOUT_UNTOUCHED", + "limits": [ + "Partial labels not exhaustive relevance truth or complete task coverage. Unlabelled is not irrelevant.", + "Do not replace tasks to force coverage or weaken4-case gate.", + "Intent reviewer had prior corpus knowledge; new author blind-access attestation and task input hash preserved.", + "No inference about raw-vs-cue effectiveness can be drawn because no paired retrieval was run." + ] +} diff --git a/evidence/indexer-255-blind-cue-20261030/validator/README.md b/evidence/indexer-255-blind-cue-20261030/validator/README.md new file mode 100644 index 000000000..2c042e1b1 --- /dev/null +++ b/evidence/indexer-255-blind-cue-20261030/validator/README.md @@ -0,0 +1 @@ +No retrieval validator was executed. Frozen preparation gates and source/intent reviews are the evidence; source-label-review.json records the stop before retrieval. diff --git a/evidence/indexer-255-covered-cue-20261030/README.md b/evidence/indexer-255-covered-cue-20261030/README.md new file mode 100644 index 000000000..702a21313 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/README.md @@ -0,0 +1,8 @@ +# Source-conditioned cue feasibility: neutral FAIL + +[Report](results/report.md):both arms Hit6/6, exactMRR29/36, complete relevant6/6; strictMRR improvement gate fails. Six source-conditioned synthetic cases, four mostly polite-framing edits and two byte-identical controls. Not broad normalization evidence. Earlier blind preparation-INCONCLUSIVE remains separate. + +Frozen production baseline6e6ee245 is identical in both arms. For authorized replay only, create a new output directory and run validator/evaluate.py BASELINE_ROOT PREP_ROOT OUTPUT_DIR with PREP_ROOT set to a new external copy of plan/ after the source-pins.json → source-manifest.json restoration described below. Do not overwrite frozen results. No runtime changes, scorer candidate, model/hardware experiment or #255 closure. Original local integrity inventory is replaced by plan/publication-integrity.json for relocation; frozen outputs/protocol/inputs/runners remain exact bytes. + +### Frozen preparation filename mapping +`plan/source-pins.json` is the exact original source-manifest.json snapshot (not a current-tree hash validator). For replay copy plan/ to a new external preparation directory and copy source-pins.json to source-manifest.json there; do not modify the evidence tree. Internal frozen references retain the original filename and hash. Publication-integrity validates both snapshot bytes, not historical corpus availability. diff --git a/evidence/indexer-255-covered-cue-20261030/patch/README.md b/evidence/indexer-255-covered-cue-20261030/patch/README.md new file mode 100644 index 000000000..f2c2eb207 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/patch/README.md @@ -0,0 +1 @@ +No candidate runtime patch: both arms used unchanged production6e6ee245; only the frozen relevance cue input differs. diff --git a/evidence/indexer-255-covered-cue-20261030/plan/accepted-receipt.json b/evidence/indexer-255-covered-cue-20261030/plan/accepted-receipt.json new file mode 100644 index 000000000..873eee5d3 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/accepted-receipt.json @@ -0,0 +1,8 @@ +{ + "status": "ACCEPTED_BEFORE_CAPSULES_AND_CASES", + "at_utc": "2026-10-30T03:43:39.735991+00:00", + "protocol_sha256": "4512e1ea3d56235b207e4926c0ed84e8eb3022a461830c919ad29810ee27b026", + "baseline": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "all_six_source_supported_required": true, + "previous_results_unchanged": true +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/author-capsules.json b/evidence/indexer-255-covered-cue-20261030/plan/author-capsules.json new file mode 100644 index 000000000..2ce338e51 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/author-capsules.json @@ -0,0 +1,44 @@ +{ + "status": "FROZEN_SOURCE_CONDITIONED_CAPSULES_BEFORE_TASK_AUTHORING", + "baseline": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "provenance": "Curator selected covered concrete decisions; labels/titles/catalog IDs omitted. Source passages expose technical terminology/answers, so this is not independent natural-user sampling.", + "instruction": "Use only these capsules and accepted protocol. Author six fresh task/raw-cue pairs, one per capsule, avoid copy-source answer wording in question; two concise controls, at least one exact identity. Do not inspect source map or catalog.", + "capsules": [ + { + "capsule_id": "capsule-01", + "excerpt": "**F**: `memory.high` triggers reclaim/throttling without invoking OOM;\n`memory.max` can invoke OOM; `memory.low` supplies best-effort protection.\n`memory.pressure` exposes PSI; `memory.events.local` excludes descendant\nevents.\n\n**P** triage for host-memory stalls (latency regression):\n1. Align `memory.pressure` (PSI), `memory.events` vs `memory.events.local`\n deltas (high / max / OOM), and the footprint mix of the group.\n2. Reclaim/throttle symptoms \u2192 draft a `memory.high` review.\n3. OOM risk \u2192 explicit `memory.max` review with OOM-risk assessment\n (raising `max` trades crashes for capacity).\n4. Protection needs \u2192 `memory.low` is best-effort only; do not rely on it\n as a guarantee.\n5. Track application outcomes and sibling pressure; additional headroom\n consumes host capacity.", + "boundary": "Proposed diagnosis only: distinguish host memory pressure, limits and best-effort protection; no settings changes or claimed measured benefit.", + "excerpt_sha256": "6b9c52eeea14351003bdba75b5f1dd99b419ef923fc48c27d472cd9f4a5449ce" + }, + { + "capsule_id": "capsule-02", + "excerpt": "Changing the card group is a contract change. It invalidates any previous baseline measurement taken on a different group. After a card-group change:\n- Re-measure the baseline on the new group in the same session window.\n- Do not compare new-group results to old-group baselines (cross-group absolute values are not comparable, for the same reason cross-window measurements are not comparable on a shared machine).", + "boundary": "Measurement-contract question only. Do not initiate device runs, recovery or driver changes.", + "excerpt_sha256": "9f14a05d00c4caf690e145f5cf6448ee9fbe52d4b6f82d6b7b0e7ea56c2d2e46" + }, + { + "capsule_id": "capsule-03", + "excerpt": "| Mode | Semantics | Implementation shape |\n|---|---|---|\n| `distribute` | spread execution evenly over all nodes | round-robin worker threads across nodes (`thread_n % n_nodes`) |\n| `isolate` | only spawn threads on the node execution started on | pin to the current node \u2014 NUMA-local, lowest cross-node traffic |\n| `numactl` | use the CPU map provided by numactl | re-apply the externally captured affinity cpuset |", + "boundary": "llama.cpp Linux NUMA mode semantics only, not a universal fastest-mode claim. No placement mutation.", + "excerpt_sha256": "eb035c5bca1cc4132da484433140331b1d8da9803d12cdfad3e9ffd525720940" + }, + { + "capsule_id": "capsule-04", + "excerpt": "3. **Check replay correctness first.** Require caller-managed stable replay buffers. The wrapper neither owns persistent input buffers nor copies new inputs into them. Propose `VLLM_LOGGING_LEVEL=DEBUG` before wrapper creation for a diagnostic reproduction: its address assertion covers only top-level positional tensor arguments, not keyword/nested inputs or semantic correctness. Escalate an address mismatch to the buffer-owning caller; never suppress it to obtain a timing. [F3]\n4. **Preserve lifetime and ordering.** Review offloader synchronization/join, graph-pool ownership, output/workspace weak references, and the FULL replay/update branch before proposing code changes. Do not remove synchronization, reorder update/replay, or generalize weak-output handling as a performance shortcut. Follow the branch-specific invariants in source-notes. [F4\u2013F5]", + "boundary": "Pinned vLLM-Ascend wrapper source-derived guidance; installed-stack compatibility and runtime efficacy unverified. No execution.", + "excerpt_sha256": "e58c8780c7863b5e2e980c0c82aaaef097740f4be4b2551e8490f50970aa9c63" + }, + { + "capsule_id": "capsule-05", + "excerpt": "3. **Choose a path-specific proposal.** F4: the host allocator is selected once. Default-path round/cache thresholds are explicitly inert with `pin_memory_expandable_segments=True`. P: in fresh-process trials only, consider `pinned_max_round_threshold_mb` for large rounding waste, or `pinned_max_cached_size_mb` for infrequently reused large buffers. Potential benefit is lower retained RAM; costs are less reuse and more allocation/free work. Require the pinned docs' TorchNPU 26.2.0/PyTorch 2.13.0 gate and verify the actual stack. Do not present the latter as a total-cache cap or permission to free in-flight buffers.\n\n4. **Match event-processing and expandable options to symptoms.** P: consider `pinned_use_background_threads` only when foreground event processing is material and its supported default-path implementation is verified; costs include CPU/thread activity. Consider host expandable segments for variable-size pressure only after its separate gates pass; the source uses 20 MiB physical segments, adding granularity/mapping costs. Do not transplant device `expandable_segments`, device split limits or 1 GiB page logic into host settings.", + "boundary": "Source-derived TorchNPU host-RAM allocator policy; gates and effective path must be checked. Not device HBM, total-cache quota or free-inflight authorization.", + "excerpt_sha256": "2dac103907442504227e2b2e3984df18845c4cb7d51aa05d3b2944608875851d" + }, + { + "capsule_id": "capsule-06", + "excerpt": "- Parallelize with bounded workers (`--max-workers 16` style), select only\n needed shards (`--include '{subset}/**'`).\n- `.incomplete` marker files mean in-flight shards, not corruption; wait or\n resume, do not re-download blindly.\n- Verify completeness structurally: shard numbering has no gaps **and** the\n set matches `*.safetensors.index.json` `weight_map` keys. On mismatch,\n cross-check weight_map and fetch only the missing shards.", + "boundary": "Structural download completeness only, not tensor correctness or model efficacy. No actual downloads requested.", + "excerpt_sha256": "10341da8e139eeb169ed90e0656cb655072f8d61ac7c19a38841fb80589280d0" + } + ] +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/curator-source-labels.json b/evidence/indexer-255-covered-cue-20261030/plan/curator-source-labels.json new file mode 100644 index 000000000..c108d7ff6 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/curator-source-labels.json @@ -0,0 +1,80 @@ +{ + "baseline": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "curated_at_utc": "2026-10-30T03:45:22.798091+00:00", + "selection_basis": "Six different covered engineering decisions, no ranking calls/computation/output inspection. Not selected by measured wins.", + "labels": [ + { + "capsule_id": "capsule-01", + "positive_ids": [ + "inferrsi.common.skills.cgroup_resource_controls" + ], + "source_path": "src/inferrsi/data/skill_library/hardware/host/cgroup-resource-controls/SKILL.md", + "source_sha256": "fd1f5a7e6a55714730044155f5b38c1d700383d4e16c3e91963bbfbe1c773af5", + "start_line": 73, + "end_line": 87, + "exact_excerpt": "**F**: `memory.high` triggers reclaim/throttling without invoking OOM;\n`memory.max` can invoke OOM; `memory.low` supplies best-effort protection.\n`memory.pressure` exposes PSI; `memory.events.local` excludes descendant\nevents.\n\n**P** triage for host-memory stalls (latency regression):\n1. Align `memory.pressure` (PSI), `memory.events` vs `memory.events.local`\n deltas (high / max / OOM), and the footprint mix of the group.\n2. Reclaim/throttle symptoms \u2192 draft a `memory.high` review.\n3. OOM risk \u2192 explicit `memory.max` review with OOM-risk assessment\n (raising `max` trades crashes for capacity).\n4. Protection needs \u2192 `memory.low` is best-effort only; do not rely on it\n as a guarantee.\n5. Track application outcomes and sibling pressure; additional headroom\n consumes host capacity.", + "boundary": "Proposed diagnosis only: distinguish host memory pressure, limits and best-effort protection; no settings changes or claimed measured benefit." + }, + { + "capsule_id": "capsule-02", + "positive_ids": [ + "inferrsi.ascend.skills.ascend_device_health" + ], + "source_path": "src/inferrsi/data/skill_library/hardware/ascend/ascend-device-health/SKILL.md", + "source_sha256": "03829039860ece35519f2e4c339a48b5014ec25e07a2c150a3efb6a3a4e35b4a", + "start_line": 109, + "end_line": 111, + "exact_excerpt": "Changing the card group is a contract change. It invalidates any previous baseline measurement taken on a different group. After a card-group change:\n- Re-measure the baseline on the new group in the same session window.\n- Do not compare new-group results to old-group baselines (cross-group absolute values are not comparable, for the same reason cross-window measurements are not comparable on a shared machine).", + "boundary": "Measurement-contract question only. Do not initiate device runs, recovery or driver changes." + }, + { + "capsule_id": "capsule-03", + "positive_ids": [ + "inferrsi.common.skills.os_process_placement" + ], + "source_path": "src/inferrsi/data/skill_library/hardware/host/os-process-placement/SKILL.md", + "source_sha256": "2003492e4d89fde0443b180d74933e764bd1979435e109c8d26e20eb8f6e5053", + "start_line": 80, + "end_line": 84, + "exact_excerpt": "| Mode | Semantics | Implementation shape |\n|---|---|---|\n| `distribute` | spread execution evenly over all nodes | round-robin worker threads across nodes (`thread_n % n_nodes`) |\n| `isolate` | only spawn threads on the node execution started on | pin to the current node \u2014 NUMA-local, lowest cross-node traffic |\n| `numactl` | use the CPU map provided by numactl | re-apply the externally captured affinity cpuset |", + "boundary": "llama.cpp Linux NUMA mode semantics only, not a universal fastest-mode claim. No placement mutation." + }, + { + "capsule_id": "capsule-04", + "positive_ids": [ + "inferrsi.ascend.skills.ascend_aclgraph_capture_replay" + ], + "source_path": "src/inferrsi/data/skill_library/hardware/ascend/ascend-aclgraph-capture-replay/SKILL.md", + "source_sha256": "d494fc7e539cbb7388189bd7b3f04bb5c4983fdd7a82484348aad1cee7f741f2", + "start_line": 32, + "end_line": 33, + "exact_excerpt": "3. **Check replay correctness first.** Require caller-managed stable replay buffers. The wrapper neither owns persistent input buffers nor copies new inputs into them. Propose `VLLM_LOGGING_LEVEL=DEBUG` before wrapper creation for a diagnostic reproduction: its address assertion covers only top-level positional tensor arguments, not keyword/nested inputs or semantic correctness. Escalate an address mismatch to the buffer-owning caller; never suppress it to obtain a timing. [F3]\n4. **Preserve lifetime and ordering.** Review offloader synchronization/join, graph-pool ownership, output/workspace weak references, and the FULL replay/update branch before proposing code changes. Do not remove synchronization, reorder update/replay, or generalize weak-output handling as a performance shortcut. Follow the branch-specific invariants in source-notes. [F4\u2013F5]", + "boundary": "Pinned vLLM-Ascend wrapper source-derived guidance; installed-stack compatibility and runtime efficacy unverified. No execution." + }, + { + "capsule_id": "capsule-05", + "positive_ids": [ + "inferrsi.ascend.skills.torchnpu_pinned_host_memory_lifecycle" + ], + "source_path": "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-pinned-host-memory-lifecycle/SKILL.md", + "source_sha256": "23e93ea7c98f99743509fdc04139d78ed2e7123c63e80b366c6beaba7eb70d0d", + "start_line": 28, + "end_line": 30, + "exact_excerpt": "3. **Choose a path-specific proposal.** F4: the host allocator is selected once. Default-path round/cache thresholds are explicitly inert with `pin_memory_expandable_segments=True`. P: in fresh-process trials only, consider `pinned_max_round_threshold_mb` for large rounding waste, or `pinned_max_cached_size_mb` for infrequently reused large buffers. Potential benefit is lower retained RAM; costs are less reuse and more allocation/free work. Require the pinned docs' TorchNPU 26.2.0/PyTorch 2.13.0 gate and verify the actual stack. Do not present the latter as a total-cache cap or permission to free in-flight buffers.\n\n4. **Match event-processing and expandable options to symptoms.** P: consider `pinned_use_background_threads` only when foreground event processing is material and its supported default-path implementation is verified; costs include CPU/thread activity. Consider host expandable segments for variable-size pressure only after its separate gates pass; the source uses 20 MiB physical segments, adding granularity/mapping costs. Do not transplant device `expandable_segments`, device split limits or 1 GiB page logic into host settings.", + "boundary": "Source-derived TorchNPU host-RAM allocator policy; gates and effective path must be checked. Not device HBM, total-cache quota or free-inflight authorization." + }, + { + "capsule_id": "capsule-06", + "positive_ids": [ + "inferrsi.common.skills.weight_loading_optimization" + ], + "source_path": "src/inferrsi/data/skill_library/methods/weight-loading-optimization/SKILL.md", + "source_sha256": "a1bf0e2ec066d5f30225c6cc5fb603f830f48eb5e2aee3fc3d084ed9d8aebe2f", + "start_line": 79, + "end_line": 85, + "exact_excerpt": "- Parallelize with bounded workers (`--max-workers 16` style), select only\n needed shards (`--include '{subset}/**'`).\n- `.incomplete` marker files mean in-flight shards, not corruption; wait or\n resume, do not re-download blindly.\n- Verify completeness structurally: shard numbering has no gaps **and** the\n set matches `*.safetensors.index.json` `weight_map` keys. On mismatch,\n cross-check weight_map and fetch only the missing shards.", + "boundary": "Structural download completeness only, not tensor correctness or model efficacy. No actual downloads requested." + } + ], + "overlap": "Coordinator recalled historical v1 DEV CPU-quota and weight-loading mmap cases. Before author delivery and any scoring, capsule01 changed from CPU quota to host-memory pressure/high-max-low semantics, capsule03 changed from affinity-measurement discipline to Linux NUMA mode semantics to distinguish from card-group contract and omit title crosslink. Same cgroup and weight-loading owner families remain familiar; weight-download completeness differs from mmap. This is source-conditioned DEV, not independent heldout." +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/evaluation-inputs.json b/evidence/indexer-255-covered-cue-20261030/plan/evaluation-inputs.json new file mode 100644 index 000000000..83f0e87c0 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/evaluation-inputs.json @@ -0,0 +1,125 @@ +{ + "baseline": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "cases": [ + { + "id": "covered255-01", + "raw_task": "Could you help with this investigation? Help me distinguish throttling, an out-of-memory limit, and memory protection when investigating a latency regression. The affected inference service runs in a Linux memory cgroup, and I can collect host-memory pressure and event counters for that group and its children. Give a diagnostic plan that separates local events from child activity and considers pressure on sibling workloads; explain the limits of any protection guarantee, but do not change settings or claim a measured improvement.", + "cue": "Help me distinguish throttling, an out-of-memory limit, and memory protection when investigating a latency regression.; The affected inference service runs in a Linux memory cgroup, and I can collect host-memory pressure and event counters for that group and its children.; Give a diagnostic plan that separates local events from child activity and considers pressure on sibling workloads; explain the limits of any protection guarantee, but do not change settings or claim a measured improvement.", + "identity_control": false, + "query": "", + "filters": {}, + "limit": 5, + "context_bytes": 262144, + "relevant_ids": [ + "inferrsi.common.skills.cgroup_resource_controls" + ], + "evidence_path": "src/inferrsi/data/skill_library/hardware/host/cgroup-resource-controls/SKILL.md", + "source_sha256": "fd1f5a7e6a55714730044155f5b38c1d700383d4e16c3e91963bbfbe1c773af5", + "source_lines": [ + 73, + 87 + ], + "source_limits": "Proposed diagnosis only: distinguish host memory pressure, limits and best-effort protection; no settings changes or claimed measured benefit." + }, + { + "id": "covered255-02", + "raw_task": "Decide whether our before-and-after performance comparison is valid and specify what evidence is needed; an accelerator experiment whose assigned card group changed between baseline and candidate measurements on a shared machine; provide a measurement plan only; do not run devices or change drivers", + "cue": "Decide whether our before-and-after performance comparison is valid and specify what evidence is needed; an accelerator experiment whose assigned card group changed between baseline and candidate measurements on a shared machine; provide a measurement plan only; do not run devices or change drivers", + "identity_control": true, + "query": "", + "filters": {}, + "limit": 5, + "context_bytes": 262144, + "relevant_ids": [ + "inferrsi.ascend.skills.ascend_device_health" + ], + "evidence_path": "src/inferrsi/data/skill_library/hardware/ascend/ascend-device-health/SKILL.md", + "source_sha256": "03829039860ece35519f2e4c339a48b5014ec25e07a2c150a3efb6a3a4e35b4a", + "source_lines": [ + 109, + 111 + ], + "source_limits": "Measurement-contract question only. Do not initiate device runs, recovery or driver changes." + }, + { + "id": "covered255-03", + "raw_task": "Explain which placement mode respects an externally supplied CPU affinity map and how the alternatives differ; llama.cpp on Linux with NUMA modes distribute, isolate, and numactl; describe thread placement only; do not change affinity or claim one mode is universally fastest", + "cue": "Explain which placement mode respects an externally supplied CPU affinity map and how the alternatives differ; llama.cpp on Linux with NUMA modes distribute, isolate, and numactl; describe thread placement only; do not change affinity or claim one mode is universally fastest", + "identity_control": true, + "query": "", + "filters": {}, + "limit": 5, + "context_bytes": 262144, + "relevant_ids": [ + "inferrsi.common.skills.os_process_placement" + ], + "evidence_path": "src/inferrsi/data/skill_library/hardware/host/os-process-placement/SKILL.md", + "source_sha256": "2003492e4d89fde0443b180d74933e764bd1979435e109c8d26e20eb8f6e5053", + "source_lines": [ + 80, + 84 + ], + "source_limits": "llama.cpp Linux NUMA mode semantics only, not a universal fastest-mode claim. No placement mutation." + }, + { + "id": "covered255-04", + "raw_task": "Please help me review this. Prepare a correctness review for replaying a captured graph with a new input and identify what a diagnostic reproduction could and could not establish. The component is a vLLM-Ascend graph wrapper, and the call can contain positional tensors as well as nested or keyword inputs. Check who is responsible for input storage and updates, include lifetime and ordering concerns, and keep this source-based rather than claiming installed-stack compatibility; do not run the reproduction or trade correctness checks for a better timing.", + "cue": "Prepare a correctness review for replaying a captured graph with a new input and identify what a diagnostic reproduction could and could not establish.; The component is a vLLM-Ascend graph wrapper, and the call can contain positional tensors as well as nested or keyword inputs.; Check who is responsible for input storage and updates, include lifetime and ordering concerns, and keep this source-based rather than claiming installed-stack compatibility; do not run the reproduction or trade correctness checks for a better timing.", + "identity_control": false, + "query": "", + "filters": {}, + "limit": 5, + "context_bytes": 262144, + "relevant_ids": [ + "inferrsi.ascend.skills.ascend_aclgraph_capture_replay" + ], + "evidence_path": "src/inferrsi/data/skill_library/hardware/ascend/ascend-aclgraph-capture-replay/SKILL.md", + "source_sha256": "d494fc7e539cbb7388189bd7b3f04bb5c4983fdd7a82484348aad1cee7f741f2", + "source_lines": [ + 32, + 33 + ], + "source_limits": "Pinned vLLM-Ascend wrapper source-derived guidance; installed-stack compatibility and runtime efficacy unverified. No execution." + }, + { + "id": "covered255-05", + "raw_task": "Could you advise on this memory issue? Propose how to investigate retained host RAM from large, rarely reused pinned buffers and decide which allocator options are relevant. The workload uses TorchNPU, and we have not yet verified the installed versions or whether pin_memory_expandable_segments=True is active. First establish the applicable version and allocator-path gates, describe the trade-offs of any proposed settings in fresh-process trials, and distinguish host allocation from device memory; do not run trials, promise a total-cache quota, or free buffers that are still in flight.", + "cue": "Propose how to investigate retained host RAM from large, rarely reused pinned buffers and decide which allocator options are relevant.; The workload uses TorchNPU, and we have not yet verified the installed versions or whether pin_memory_expandable_segments=True is active.; First establish the applicable version and allocator-path gates, describe the trade-offs of any proposed settings in fresh-process trials, and distinguish host allocation from device memory; do not run trials, promise a total-cache quota, or free buffers that are still in flight.", + "identity_control": false, + "query": "", + "filters": {}, + "limit": 5, + "context_bytes": 262144, + "relevant_ids": [ + "inferrsi.ascend.skills.torchnpu_pinned_host_memory_lifecycle" + ], + "evidence_path": "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-pinned-host-memory-lifecycle/SKILL.md", + "source_sha256": "23e93ea7c98f99743509fdc04139d78ed2e7123c63e80b366c6beaba7eb70d0d", + "source_lines": [ + 28, + 30 + ], + "source_limits": "Source-derived TorchNPU host-RAM allocator policy; gates and effective path must be checked. Not device HBM, total-cache quota or free-inflight authorization." + }, + { + "id": "covered255-06", + "raw_task": "Please help me check this download. Explain how to tell whether a sharded model download is complete and how to recover only what is missing. The download directory contains numbered safetensors shards, an index JSON, and some .incomplete marker files. Base the assessment on shard structure and the index rather than assuming the markers prove corruption; describe a bounded-concurrency recovery plan without downloading anything, and do not treat structural completeness as proof of tensor correctness or model quality.", + "cue": "Explain how to tell whether a sharded model download is complete and how to recover only what is missing.; The download directory contains numbered safetensors shards, an index JSON, and some .incomplete marker files.; Base the assessment on shard structure and the index rather than assuming the markers prove corruption; describe a bounded-concurrency recovery plan without downloading anything, and do not treat structural completeness as proof of tensor correctness or model quality.", + "identity_control": false, + "query": "", + "filters": {}, + "limit": 5, + "context_bytes": 262144, + "relevant_ids": [ + "inferrsi.common.skills.weight_loading_optimization" + ], + "evidence_path": "src/inferrsi/data/skill_library/methods/weight-loading-optimization/SKILL.md", + "source_sha256": "a1bf0e2ec066d5f30225c6cc5fb603f830f48eb5e2aee3fc3d084ed9d8aebe2f", + "source_lines": [ + 79, + 85 + ], + "source_limits": "Structural download completeness only, not tensor correctness or model efficacy. No actual downloads requested." + } + ] +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/input-freeze.json b/evidence/indexer-255-covered-cue-20261030/plan/input-freeze.json new file mode 100644 index 000000000..e6348b737 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/input-freeze.json @@ -0,0 +1,15 @@ +{ + "frozen_at_utc": "2026-10-30T03:47:12.322822+00:00", + "status": "ALL_INPUTS_FROZEN_BEFORE_RETRIEVAL; RUNNER_FREEZE_STILL_REQUIRED", + "files": { + "accepted-receipt.json": "3b4bd0536b1e99247314a8788238de9b12e0ab0ccaef8e52941394f2b08bc384", + "author-capsules.json": "5fa54fb0ec903c9839dc1e1d26e14cf8469c7ca7cd79843bd5147e7ca901b822", + "curator-source-labels.json": "b2e1dfde979206803058afaa9b7e4d4e75633bba7259a5f130eb35f5ac36eb71", + "evaluation-inputs.json": "24e822eaadcd4598435dac0e7cf77cc1dd73d8a6c50bc0f7c5982253b4a94fcc", + "input-review.json": "1e5eb6392e3e879524ce223c63673c8f495bbd8e97d0de35f165508eb557306c", + "protocol-draft.md": "4512e1ea3d56235b207e4926c0ed84e8eb3022a461830c919ad29810ee27b026", + "source-conditioned-author.json": "e8a52fb88791aa5a1cbe079d9629540dcd104894185955370bd3d65cb842b568", + "source-conditioned-author.json.sha256": "97674d5214fbd6c8dd672967677a43342abc66e6958a294434a73153c3e66e4a", + "source-manifest.json": "67a40dc08dcab6f8cafd008a3005e371b1a77bdc31e08f75b8c14335dfa60b56" + } +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/input-review.json b/evidence/indexer-255-covered-cue-20261030/plan/input-review.json new file mode 100644 index 000000000..36d387def --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/input-review.json @@ -0,0 +1,16 @@ +{ + "status": "PASS_SIX_INTENT_AND_SOURCE_SUPPORTED_BEFORE_RETRIEVAL", + "reviewed_at_utc": "2026-10-30T03:47:12.322312+00:00", + "baseline": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "author_input_sha256": "e8a52fb88791aa5a1cbe079d9629540dcd104894185955370bd3d65cb842b568", + "supported_count": 6, + "identity_controls": 2, + "no_input_or_label_edits": true, + "limits": [ + "All6 are source-conditioned synthetic cases, not unbiased user traffic.", + "Fourchanged pairs remove politeness only; not substantive narrative compression.", + "Card-group case uses generally transferable fixed-hardware comparison principle from Ascend-oriented source; not generic device/runtime certification.", + "Same owner-family familiarity for historical cgroupCPUquota and weightloadingmmap; mechanisms differ and no outcome-based selection used.", + "Partial positives not complete ground truth. Oldsealedheldout not accessed/executed." + ] +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/protocol-draft.md b/evidence/indexer-255-covered-cue-20261030/plan/protocol-draft.md new file mode 100644 index 000000000..a99324b5e --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/protocol-draft.md @@ -0,0 +1,35 @@ +# #255 source-conditioned cue feasibility — new prospective study + +Status: NEW PROTOCOL FOR COORDINATOR CONFIRMATION BEFORE CASE PREPARATION/EVALUATION. Owner continuation03:41 UTC2026-10-30. This does not replace or repair the preceding blind-task study's preparation-INCONCLUSIVE result (three supported pairs below its four-case minimum); retain that result and its exact inputs separately. + +## Identity and narrow question +Freshly fetched main `6e6ee245d9e92ee9365976f2e4e262304999f147` includes `knowledge(hardware): audit sources and deepen memory, graph and collective guidance (#262)`, parent `b3549ce1`. Pin this new baseline explicitly. Both arms must use this same corpus and unchanged production weighted-lexical-v1 runtime. The earlier study remains on its historicalb3549ce1; do not reattribute it to this new corpus. + +Question: on six deliberately source-covered synthetic tasks, does manual task-preserving operation/object/constraint extraction improve ranking relative to the full task narrative? This tests a conditional input-contract feasibility hypothesis, NOT organic user demand, coverage of the whole repository, unbiased retrieval accuracy or automatic rewriting. No new code/scorer, paid/model service, hardware experiment, broad service or default change. + +## Role-separated preparation +1. **Source curator** reads pinned source and selects exactly six distinct, covered task intents. For each, freeze partial positive skill IDs, exact source passages/line ranges and SHA256, accepted boundary and limits. Choose for distinct concrete engineering decisions, not keyword density or expected ranking. No retrieval calls, scorer computation, output inspection or choosing based on previous candidate results. Avoid old observed DEV and old sealed-heldout intents when possible; a coordinator may screen overlap without exposing sealed text to implementer or task author. Disclose unavoidable overlap as reduced independence rather than silently substituting after outcomes. +2. **Independent task author** receives only the six curated source passages and boundary limits stripped of skill titles, catalog IDs, file paths and metadata search tags. The author may see necessary technical API/device names in evidence; these cannot honestly be called blinded. No catalog access, retrieval ranks or previous task/outcome material. Write one plausible task per source capsule, then apply the exact extraction rule below. Do not copy source wording merely to match the index, leak the answer in the task, or invent unsupported capability. This is SOURCE-CONDITIONED synthetic authoring, not independent real-user sampling or blind-to-source labelling. +3. **Intent/label reviewer** checks task-to-source support and raw/cue intent equivalence before retrieval; source-positive IDs are those prospectively selected, not retrofitted from outputs. If a task is unsupported, changes the stated scope or fails intent preservation, stop preparation as INCONCLUSIVE; do not replace it to ensure a passing score. A factual pre-evaluation correction must be explicit and requires coordinator decision and refreeze before any run; no post-output edits. +4. Freeze all six complete raw/cue pairs, span maps, source labels/quotes/hashes, overlap/access attestations, runtime/source manifest and evaluation runner before any retrieval. Independent evaluator performs one paired CPU run. Old heldout content remains unused and undisclosed; no new mode or candidate is implemented. + +## Unchanged manual extraction rule +Select verbatim OPERATION, OBJECT and ALL CONSTRAINTS spans from the authored raw task. Join with `; ` in that order. Preserve uncertainty, environment/API identity, thresholds, negation, safety and requested deliverable. Remove only greetings, politeness, redundant framing or incidental chronology not used by the task; record every removed span and its permitted reason. No added keywords, synonyms, inflection, translation, schema-keywords or answer terms. Do not concatenate separately selected words to invent a new phrase. This is deterministic serialization of manually selected spans, not an automatic semantic extractor. + +Do not artificially pad tasks or bait substring matches. Include at least two naturally concise controls among six, with at least one raw/cue byte-identical. If all meaningful wording must be kept, keep it. Record task-author effort, character/whitespace-token counts and whether the only change was polite framing; do not claim broad narrative normalization if that is all this set tests. + +## Prospective evaluation and fixed gates +All six tasks must be source-supported and intent-valid before running. If any remains unsupported, preparation is INCONCLUSIVE without a retrieval attempt. This deliberately conditioned all-six coverage requirement is separate from the previous blind study's four-of-six threshold; it does not alter that study. + +Both arms: `query=''`, no filters, `limit=5`, `context_bytes=262144`, production `relevance` API; only the cue string differs. Runtime and source are identical. One capture per arm/task, no rewording or rerun after outcomes. Freeze runner before use; preserve all raw outputs, misses, resource omissions and errors. + +- No raw-arm labelled Hit@5 may be lost; Hit@5 nondecreasing; MRR@5 STRICTLY greater than raw baseline across all six. Report exact ranks and arithmetic without rounding into a pass. Labels are partial positives, not complete precision/recall truth. +- Byte-identical controls produce identical serialized output. Near-identity controls are reported descriptively rather than falsely requiring parity. +- Existing six default/unchanged-interface contract captures retain exact parity on the same pinned runtime, and no production-source diff is introduced. +- Full indexed_skill required-resource set, exact emitted bytes/hash/revision, budget accounting and explicit omissions pass in each arm; complete relevant delivery count must not decrease. Minimum suffixes are anchors, not exhaustive required sets. +- Any complete gate failure = FAIL; source/identity/execution incompleteness = INCONCLUSIVE. Stop, retain evidence and do not try another cue rule or swap cases until a separate prospective decision. + +## Interpretation +PASS would support only this manually prepared source-conditioned set. It cannot establish that arbitrary users phrase questions this way, the repository covers their tasks, human preparation is cheap, or an automatic normalizer works. Evidence capsules disclose answer/source familiarity as a design limitation; role separation reduces direct title/ID leakage but does not remove source-conditioning bias. Do not pool the six cases with earlier DEV or reuse their scores as independent replications. No timing or downstream task-success claim, no promotion/default change or automatic #255 closure. + +Previous performance/v2/v3 FAIL and blind-input preparation-INCONCLUSIVE remain visible. Preserve the old sealed six heldout cases untouched. diff --git a/evidence/indexer-255-covered-cue-20261030/plan/publication-integrity.json b/evidence/indexer-255-covered-cue-20261030/plan/publication-integrity.json new file mode 100644 index 000000000..e9a0aaffd --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/publication-integrity.json @@ -0,0 +1,36 @@ +{ + "README.md": "1b5e52d48db33641f7b20c5a224c4a807c20a2e34d6d4682d90845a60d0cf102", + "patch/README.md": "27335a4b5468dfb065d82c16c4431404a3208028c87cb4cf0c7ba0bc1329fa12", + "plan/accepted-receipt.json": "3b4bd0536b1e99247314a8788238de9b12e0ab0ccaef8e52941394f2b08bc384", + "plan/author-capsules.json": "5fa54fb0ec903c9839dc1e1d26e14cf8469c7ca7cd79843bd5147e7ca901b822", + "plan/curator-source-labels.json": "b2e1dfde979206803058afaa9b7e4d4e75633bba7259a5f130eb35f5ac36eb71", + "plan/evaluation-inputs.json": "24e822eaadcd4598435dac0e7cf77cc1dd73d8a6c50bc0f7c5982253b4a94fcc", + "plan/input-freeze.json": "305246e2c49ea47bea9dbe9dc412e5a8920acec735f01f445514938b8cf7b9c3", + "plan/input-review.json": "1e5eb6392e3e879524ce223c63673c8f495bbd8e97d0de35f165508eb557306c", + "plan/protocol-draft.md": "4512e1ea3d56235b207e4926c0ed84e8eb3022a461830c919ad29810ee27b026", + "plan/runner-freeze.json": "9363d36e0a21703916c7d7d9f2558d54d675e89299d05ca4ef705429ca3b2d52", + "plan/source-conditioned-author.json": "e8a52fb88791aa5a1cbe079d9629540dcd104894185955370bd3d65cb842b568", + "plan/source-conditioned-author.json.sha256": "97674d5214fbd6c8dd672967677a43342abc66e6958a294434a73153c3e66e4a", + "plan/source-pins.json": "67a40dc08dcab6f8cafd008a3005e371b1a77bdc31e08f75b8c14335dfa60b56", + "results/consolidated-results.json": "12792f311610fa291cadd6552cb3dc9929fe5e6bb017c53854c27db8a6d95f7a", + "results/consolidated-results.md": "6f5de8b61ff105db004ac68564ede561a866b3244c58789fcda736ed0efd7efd", + "results/covered255-01-cue.json.gz": "7c7fdeba31a7e2fe8e2236e04d15e61c377997de95c9698a9f47847cfb49f45d", + "results/covered255-01-raw.json.gz": "f3c85e4711ca4c8db6a81f7a29e72f5476a4421ce1d63e108ac66c330cf0f60d", + "results/covered255-02-cue.json.gz": "5e519f408f1dc23cbd92c91e0cd31c5552a7211f93b4ca64827a9d4a27a444e2", + "results/covered255-02-raw.json.gz": "5e519f408f1dc23cbd92c91e0cd31c5552a7211f93b4ca64827a9d4a27a444e2", + "results/covered255-03-cue.json.gz": "cca479a403d81671614a16cbb091f461e527807340e0158b1d30d8854800109f", + "results/covered255-03-raw.json.gz": "cca479a403d81671614a16cbb091f461e527807340e0158b1d30d8854800109f", + "results/covered255-04-cue.json.gz": "d74eb8080922b13ccf5f94cb4018953015b997bdc807148c812b9f44deb190bd", + "results/covered255-04-raw.json.gz": "7708794d729840f591c9bb5cbb91bbd5a79017b862ec93678a526a15ca8a1260", + "results/covered255-05-cue.json.gz": "c0534b72099981769c26f09393c5f120a8e038b4bf3c0f32774eb095e2abb877", + "results/covered255-05-raw.json.gz": "a7a6c946db65253085fcb67838f98a2f801d2099b9673e51a3ee35d9ffadb555", + "results/covered255-06-cue.json.gz": "11de82eb96df6c932cf52e5b4b67b7c82544b9883d686e89dab23a5f846c157e", + "results/covered255-06-raw.json.gz": "225e31bf129e0ad88fc070b79a7a8da07cb073019d3cc5f97062b61b9dbbb4b6", + "results/default-captures.json": "c40964f7296ef7e6d387bdc569b9a49fc93839010e79a66da426d28035b05d1e", + "results/independent-review.json": "3c57455dda4357b357f59e68095388a3e6859fd27c5b0fa7ad64ed1d40786b09", + "results/partial-results.json": "93caca3d01f7cce09d6d7fa78ba429cde16a860e9b6561d4cfd825be6a57b07c", + "results/report.md": "7af98da8eba7319c5d853b3c7932ab54dd434df50edb221c5de15aa98e7e7bd8", + "results/results.json": "5ef55a52de4ae32909881e5be4101f0d5a2eb8904aaa1185df9d798d99acacba", + "results/run.log": "869085edd6a815272527ff651fdd5eec4953ac44ffa167dbcc555ac2fd8cb95a", + "validator/evaluate.py": "566c9e2d3a63eb3d9b7e8f4b1e41ce1c5121e316c0ffa50ffc01fd0aca40c1af" +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/runner-freeze.json b/evidence/indexer-255-covered-cue-20261030/plan/runner-freeze.json new file mode 100644 index 000000000..766498435 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/runner-freeze.json @@ -0,0 +1,8 @@ +{ + "frozen_at_utc": "2026-10-30T03:48:25.146092+00:00", + "runtime": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "runner_sha256": "566c9e2d3a63eb3d9b7e8f4b1e41ce1c5121e316c0ffa50ffc01fd0aca40c1af", + "inputs_sha256": "24e822eaadcd4598435dac0e7cf77cc1dd73d8a6c50bc0f7c5982253b4a94fcc", + "input_freeze_sha256": "305246e2c49ea47bea9dbe9dc412e5a8920acec735f01f445514938b8cf7b9c3", + "retrieval_started": false +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json b/evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json new file mode 100644 index 000000000..e55efe34c --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json @@ -0,0 +1,409 @@ +{ + "schema": "source-conditioned-manual-cue-authoring-v1", + "status": "FROZEN_SOURCE_CONDITIONED_SYNTHETIC_INPUTS_BEFORE_INTENT_SOURCE_AUDIT", + "frozen_at_utc": "2026-10-30T03:46:41.865109+00:00", + "baseline": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "protocol_sha256": "4512e1ea3d56235b207e4926c0ed84e8eb3022a461830c919ad29810ee27b026", + "capsules_sha256": "5fa54fb0ec903c9839dc1e1d26e14cf8469c7ca7cd79843bd5147e7ca901b822", + "provenance": "Six fresh tasks, each grounded in one prospectively supplied sanitized source capsule. Source familiarity is explicit. Not blind source labelling, observed user traffic, independent real-user sampling, or evidence about the user-query distribution. Earlier blind-study artifacts are unchanged and not pooled or replaced.", + "access_attestation": { + "read_for_this_study": [ + "protocol-draft.md", + "author-capsules.json", + "Coordinator and curator instructions without source IDs or ranking results" + ], + "source_familiarity": "Author saw technical names, facts, boundaries and potential answers in all six source excerpts. Sanitizing titles/IDs does not remove source-conditioning bias.", + "prior_context": "This same agent authored the separate blind-input set. New protocol/coordinator instructions disclose its aggregate preparation-INCONCLUSIVE status. No prior per-case source labels, ranked outputs, old DEV cases or sealed heldout content were read. No prior tasks were reused.", + "not_accessed": [ + "Catalog or repository source", + "curator-source-labels", + "Skill titles or catalog IDs", + "Scorer implementation", + "Retrieval calls or outputs", + "Model services" + ], + "basis": "Self-reported process history, not forensic isolation." + }, + "manual_rule": "Verbatim OPERATION, OBJECT, and all CONSTRAINTS spans joined with semicolon-space. Deterministic serialization after manual span selection, not automatic semantic extraction. No cue synonyms, new terms, answer hints, translation or catalog-informed edits.", + "offset_convention": "Zero-based Unicode code-point offsets, end-exclusive. All raw text is ASCII. Selected and removed spans exactly partition the raw text; original separators are recorded as removed and the serialization delimiter inserted.", + "effort": { + "started_at_utc": "2026-10-30T03:45:30+00:00", + "frozen_at_utc": "2026-10-30T03:46:41.865109+00:00", + "elapsed_seconds": 71.865109, + "work": "One six-task authoring pass followed by programmatic source-capsule hash, span partition, verbatim serialization and identity checks. No retrieval or outcome revisions." + }, + "interpretation_limit": "The four non-control changes remove polite framing only and change separators. This set does not establish broad narrative normalization. Semantic information was not compressed.", + "cases": [ + { + "case_id": "covered255-01", + "capsule_id": "capsule-01", + "source_excerpt_sha256": "6b9c52eeea14351003bdba75b5f1dd99b419ef923fc48c27d472cd9f4a5449ce", + "intent": "Diagnose host-memory latency symptoms", + "raw_task": "Could you help with this investigation? Help me distinguish throttling, an out-of-memory limit, and memory protection when investigating a latency regression. The affected inference service runs in a Linux memory cgroup, and I can collect host-memory pressure and event counters for that group and its children. Give a diagnostic plan that separates local events from child activity and considers pressure on sibling workloads; explain the limits of any protection guarantee, but do not change settings or claim a measured improvement.", + "cue": "Help me distinguish throttling, an out-of-memory limit, and memory protection when investigating a latency regression.; The affected inference service runs in a Linux memory cgroup, and I can collect host-memory pressure and event counters for that group and its children.; Give a diagnostic plan that separates local events from child activity and considers pressure on sibling workloads; explain the limits of any protection guarantee, but do not change settings or claim a measured improvement.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 40, + "end": 158, + "text": "Help me distinguish throttling, an out-of-memory limit, and memory protection when investigating a latency regression." + }, + { + "slot": "OBJECT", + "start": 159, + "end": 311, + "text": "The affected inference service runs in a Linux memory cgroup, and I can collect host-memory pressure and event counters for that group and its children." + }, + { + "slot": "CONSTRAINTS", + "start": 312, + "end": 535, + "text": "Give a diagnostic plan that separates local events from child activity and considers pressure on sibling workloads; explain the limits of any protection guarantee, but do not change settings or claim a measured improvement." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 40, + "text": "Could you help with this investigation? ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 158, + "end": 159, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + }, + { + "start": 311, + "end": 312, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + } + ], + "constraints_retained": [ + "Give a diagnostic plan that separates local events from child activity and considers pressure on sibling workloads; explain the limits of any protection guarantee, but do not change settings or claim a measured improvement." + ], + "counts": { + "raw_characters": 535, + "cue_characters": 497, + "raw_whitespace_tokens": 80, + "cue_whitespace_tokens": 74 + }, + "raw_sha256": "00afcad041bb0d08b55e214038337d1b7328df5c686f160c377578eac9f308f0", + "cue_sha256": "f1e1015d23c46651683b22f691edf082fda0a178ddc453fef21b3692ce439464", + "compression_scope": "Only polite framing removed and original slot whitespace replaced; all substantive text retained." + }, + { + "case_id": "covered255-02", + "capsule_id": "capsule-02", + "source_excerpt_sha256": "9f14a05d00c4caf690e145f5cf6448ee9fbe52d4b6f82d6b7b0e7ea56c2d2e46", + "intent": "Assess a changed measurement contract", + "raw_task": "Decide whether our before-and-after performance comparison is valid and specify what evidence is needed; an accelerator experiment whose assigned card group changed between baseline and candidate measurements on a shared machine; provide a measurement plan only; do not run devices or change drivers", + "cue": "Decide whether our before-and-after performance comparison is valid and specify what evidence is needed; an accelerator experiment whose assigned card group changed between baseline and candidate measurements on a shared machine; provide a measurement plan only; do not run devices or change drivers", + "identity_control": true, + "spans": [ + { + "slot": "OPERATION", + "start": 0, + "end": 103, + "text": "Decide whether our before-and-after performance comparison is valid and specify what evidence is needed" + }, + { + "slot": "OBJECT", + "start": 105, + "end": 228, + "text": "an accelerator experiment whose assigned card group changed between baseline and candidate measurements on a shared machine" + }, + { + "slot": "CONSTRAINTS", + "start": 230, + "end": 299, + "text": "provide a measurement plan only; do not run devices or change drivers" + } + ], + "removed_spans": [ + { + "start": 103, + "end": 105, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + }, + { + "start": 228, + "end": 230, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + } + ], + "constraints_retained": [ + "provide a measurement plan only; do not run devices or change drivers" + ], + "counts": { + "raw_characters": 299, + "cue_characters": 299, + "raw_whitespace_tokens": 43, + "cue_whitespace_tokens": 43 + }, + "raw_sha256": "be5b0bde412e5264be433d9b8739ef428f4465f22b17af7ca2bc027974273675", + "cue_sha256": "be5b0bde412e5264be433d9b8739ef428f4465f22b17af7ca2bc027974273675", + "compression_scope": "Byte-identical control." + }, + { + "case_id": "covered255-03", + "capsule_id": "capsule-03", + "source_excerpt_sha256": "eb035c5bca1cc4132da484433140331b1d8da9803d12cdfad3e9ffd525720940", + "intent": "Interpret NUMA placement options", + "raw_task": "Explain which placement mode respects an externally supplied CPU affinity map and how the alternatives differ; llama.cpp on Linux with NUMA modes distribute, isolate, and numactl; describe thread placement only; do not change affinity or claim one mode is universally fastest", + "cue": "Explain which placement mode respects an externally supplied CPU affinity map and how the alternatives differ; llama.cpp on Linux with NUMA modes distribute, isolate, and numactl; describe thread placement only; do not change affinity or claim one mode is universally fastest", + "identity_control": true, + "spans": [ + { + "slot": "OPERATION", + "start": 0, + "end": 109, + "text": "Explain which placement mode respects an externally supplied CPU affinity map and how the alternatives differ" + }, + { + "slot": "OBJECT", + "start": 111, + "end": 178, + "text": "llama.cpp on Linux with NUMA modes distribute, isolate, and numactl" + }, + { + "slot": "CONSTRAINTS", + "start": 180, + "end": 275, + "text": "describe thread placement only; do not change affinity or claim one mode is universally fastest" + } + ], + "removed_spans": [ + { + "start": 109, + "end": 111, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + }, + { + "start": 178, + "end": 180, + "text": "; ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + } + ], + "constraints_retained": [ + "describe thread placement only; do not change affinity or claim one mode is universally fastest" + ], + "counts": { + "raw_characters": 275, + "cue_characters": 275, + "raw_whitespace_tokens": 41, + "cue_whitespace_tokens": 41 + }, + "raw_sha256": "824eab8170070bd47e061f025c5b21059673316f7dcc7ef03ff8d34a2916c14f", + "cue_sha256": "824eab8170070bd47e061f025c5b21059673316f7dcc7ef03ff8d34a2916c14f", + "compression_scope": "Byte-identical control." + }, + { + "case_id": "covered255-04", + "capsule_id": "capsule-04", + "source_excerpt_sha256": "e58c8780c7863b5e2e980c0c82aaaef097740f4be4b2551e8490f50970aa9c63", + "intent": "Review graph replay correctness before optimization", + "raw_task": "Please help me review this. Prepare a correctness review for replaying a captured graph with a new input and identify what a diagnostic reproduction could and could not establish. The component is a vLLM-Ascend graph wrapper, and the call can contain positional tensors as well as nested or keyword inputs. Check who is responsible for input storage and updates, include lifetime and ordering concerns, and keep this source-based rather than claiming installed-stack compatibility; do not run the reproduction or trade correctness checks for a better timing.", + "cue": "Prepare a correctness review for replaying a captured graph with a new input and identify what a diagnostic reproduction could and could not establish.; The component is a vLLM-Ascend graph wrapper, and the call can contain positional tensors as well as nested or keyword inputs.; Check who is responsible for input storage and updates, include lifetime and ordering concerns, and keep this source-based rather than claiming installed-stack compatibility; do not run the reproduction or trade correctness checks for a better timing.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 28, + "end": 179, + "text": "Prepare a correctness review for replaying a captured graph with a new input and identify what a diagnostic reproduction could and could not establish." + }, + { + "slot": "OBJECT", + "start": 180, + "end": 306, + "text": "The component is a vLLM-Ascend graph wrapper, and the call can contain positional tensors as well as nested or keyword inputs." + }, + { + "slot": "CONSTRAINTS", + "start": 307, + "end": 558, + "text": "Check who is responsible for input storage and updates, include lifetime and ordering concerns, and keep this source-based rather than claiming installed-stack compatibility; do not run the reproduction or trade correctness checks for a better timing." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 28, + "text": "Please help me review this. ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 179, + "end": 180, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + }, + { + "start": 306, + "end": 307, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + } + ], + "constraints_retained": [ + "Check who is responsible for input storage and updates, include lifetime and ordering concerns, and keep this source-based rather than claiming installed-stack compatibility; do not run the reproduction or trade correctness checks for a better timing." + ], + "counts": { + "raw_characters": 558, + "cue_characters": 532, + "raw_whitespace_tokens": 86, + "cue_whitespace_tokens": 81 + }, + "raw_sha256": "ba303f534fa4b61eddf9f9cff550ff131638b17d8d86ea5aff9da4de252d0824", + "cue_sha256": "057361325d0d9dcf3ec851c66c4545cdeb2fdff5abd6912307b41b1b27559846", + "compression_scope": "Only polite framing removed and original slot whitespace replaced; all substantive text retained." + }, + { + "case_id": "covered255-05", + "capsule_id": "capsule-05", + "source_excerpt_sha256": "2dac103907442504227e2b2e3984df18845c4cb7d51aa05d3b2944608875851d", + "intent": "Propose gated host allocator investigation", + "raw_task": "Could you advise on this memory issue? Propose how to investigate retained host RAM from large, rarely reused pinned buffers and decide which allocator options are relevant. The workload uses TorchNPU, and we have not yet verified the installed versions or whether pin_memory_expandable_segments=True is active. First establish the applicable version and allocator-path gates, describe the trade-offs of any proposed settings in fresh-process trials, and distinguish host allocation from device memory; do not run trials, promise a total-cache quota, or free buffers that are still in flight.", + "cue": "Propose how to investigate retained host RAM from large, rarely reused pinned buffers and decide which allocator options are relevant.; The workload uses TorchNPU, and we have not yet verified the installed versions or whether pin_memory_expandable_segments=True is active.; First establish the applicable version and allocator-path gates, describe the trade-offs of any proposed settings in fresh-process trials, and distinguish host allocation from device memory; do not run trials, promise a total-cache quota, or free buffers that are still in flight.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 39, + "end": 173, + "text": "Propose how to investigate retained host RAM from large, rarely reused pinned buffers and decide which allocator options are relevant." + }, + { + "slot": "OBJECT", + "start": 174, + "end": 311, + "text": "The workload uses TorchNPU, and we have not yet verified the installed versions or whether pin_memory_expandable_segments=True is active." + }, + { + "slot": "CONSTRAINTS", + "start": 312, + "end": 592, + "text": "First establish the applicable version and allocator-path gates, describe the trade-offs of any proposed settings in fresh-process trials, and distinguish host allocation from device memory; do not run trials, promise a total-cache quota, or free buffers that are still in flight." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 39, + "text": "Could you advise on this memory issue? ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 173, + "end": 174, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + }, + { + "start": 311, + "end": 312, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + } + ], + "constraints_retained": [ + "First establish the applicable version and allocator-path gates, describe the trade-offs of any proposed settings in fresh-process trials, and distinguish host allocation from device memory; do not run trials, promise a total-cache quota, or free buffers that are still in flight." + ], + "counts": { + "raw_characters": 592, + "cue_characters": 555, + "raw_whitespace_tokens": 86, + "cue_whitespace_tokens": 79 + }, + "raw_sha256": "05c6f3800ea5435bc40620175ac1e8861984e071643f0c723ae546d22cfd25d8", + "cue_sha256": "63f839a4d76b92359e7e082c1373885800ee7da2e94731a2d40ca49f50d166d3", + "compression_scope": "Only polite framing removed and original slot whitespace replaced; all substantive text retained." + }, + { + "case_id": "covered255-06", + "capsule_id": "capsule-06", + "source_excerpt_sha256": "10341da8e139eeb169ed90e0656cb655072f8d61ac7c19a38841fb80589280d0", + "intent": "Plan structural shard download verification", + "raw_task": "Please help me check this download. Explain how to tell whether a sharded model download is complete and how to recover only what is missing. The download directory contains numbered safetensors shards, an index JSON, and some .incomplete marker files. Base the assessment on shard structure and the index rather than assuming the markers prove corruption; describe a bounded-concurrency recovery plan without downloading anything, and do not treat structural completeness as proof of tensor correctness or model quality.", + "cue": "Explain how to tell whether a sharded model download is complete and how to recover only what is missing.; The download directory contains numbered safetensors shards, an index JSON, and some .incomplete marker files.; Base the assessment on shard structure and the index rather than assuming the markers prove corruption; describe a bounded-concurrency recovery plan without downloading anything, and do not treat structural completeness as proof of tensor correctness or model quality.", + "identity_control": false, + "spans": [ + { + "slot": "OPERATION", + "start": 36, + "end": 141, + "text": "Explain how to tell whether a sharded model download is complete and how to recover only what is missing." + }, + { + "slot": "OBJECT", + "start": 142, + "end": 252, + "text": "The download directory contains numbered safetensors shards, an index JSON, and some .incomplete marker files." + }, + { + "slot": "CONSTRAINTS", + "start": 253, + "end": 521, + "text": "Base the assessment on shard structure and the index rather than assuming the markers prove corruption; describe a bounded-concurrency recovery plan without downloading anything, and do not treat structural completeness as proof of tensor correctness or model quality." + } + ], + "removed_spans": [ + { + "start": 0, + "end": 36, + "text": "Please help me check this download. ", + "reason": "politeness", + "detail": "Polite request opening." + }, + { + "start": 141, + "end": 142, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + }, + { + "start": 252, + "end": 253, + "text": " ", + "reason": "redundant framing", + "detail": "Original inter-slot separator replaced by mandated semicolon-space serialization; no semantic information removed." + } + ], + "constraints_retained": [ + "Base the assessment on shard structure and the index rather than assuming the markers prove corruption; describe a bounded-concurrency recovery plan without downloading anything, and do not treat structural completeness as proof of tensor correctness or model quality." + ], + "counts": { + "raw_characters": 521, + "cue_characters": 487, + "raw_whitespace_tokens": 78, + "cue_whitespace_tokens": 72 + }, + "raw_sha256": "df71e136fa0d3e8acb447155cf2bafb02abd5037d7bf9408377f42658e9568b9", + "cue_sha256": "dca21e95755b0da6f3169a7f71fa27adf943834ea2b8d98fef2df4543cbb3902", + "compression_scope": "Only polite framing removed and original slot whitespace replaced; all substantive text retained." + } + ], + "audit_status": "Independent intent/source audit pending; author will not read source labels or alter inputs after catalog/result exposure." +} diff --git a/evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json.sha256 b/evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json.sha256 new file mode 100644 index 000000000..01be46316 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/source-conditioned-author.json.sha256 @@ -0,0 +1 @@ +e8a52fb88791aa5a1cbe079d9629540dcd104894185955370bd3d65cb842b568 source-conditioned-author.json diff --git a/evidence/indexer-255-covered-cue-20261030/plan/source-pins.json b/evidence/indexer-255-covered-cue-20261030/plan/source-pins.json new file mode 100644 index 000000000..fa60eb419 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/plan/source-pins.json @@ -0,0 +1,833 @@ +{ + "commit": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "files": { + "src/inferrsi/__init__.py": "606691627d4b346e60072208ada8d6b4df2409de190daffb7795c2cc24517e47", + "src/inferrsi/__main__.py": "935a1c1166b0c1ea35a82256345000bf2c73ded718d77773bc27a71ecce28f7d", + "src/inferrsi/_skill_selection.py": "4640399f4013425589f6702e2db844820619ba35967d1c3519978eb307168440", + "src/inferrsi/arguments.py": "4456600cf4a362cf069594fe36db46932cf5cb14ddd37683aaf3538f5cf76b4d", + "src/inferrsi/catalog.py": "da5d5b01fed6a4a7027c7249a5514c7fdefbeabd9911846add1f69ae3ce3fbe5", + "src/inferrsi/claim.py": "5f24c4fa91b48f0bb4d4554531607763fc8fc108e90f332816f06cfb520b5cc1", + "src/inferrsi/cli.py": "0bb83bce32171074506a15ea3ea0617456ad1477b53fd568dafb449f88877591", + "src/inferrsi/contracts.py": "03000cb9246ce8c0967147533f7ad25df918ba2674839801453ffb870f496490", + "src/inferrsi/data/knowledge_packs/README.md": "b877e67d9cccf0dcbe57419eeb3ff9374e5bd03ff8eec63adef1025c446140e9", + "src/inferrsi/data/knowledge_packs/dependency/diffusers/cuda/diffusion/group-offload-transfer-overlap.json": "9bec3d912192efa2f2c853d3fb70bdae21a75875630a02294fcd084b18c30414", + "src/inferrsi/data/knowledge_packs/dependency/flashattention/cuda/attention/generation-specific-dispatch.json": "90290d7bc80b1626863e0520c91bb196d93ebfe08190a450e9de59c6505ae8ad", + "src/inferrsi/data/knowledge_packs/dependency/flashinfer/cuda/llm/paged-decode-dispatch.json": "0f2986494fcc9b751df71e598fd61caa68e28bc4b0ac401e4cc763bc3f75283b", + "src/inferrsi/data/knowledge_packs/dependency/mlx/mlx/execution/cross-stream-dependency.json": "b829315e55adf8e11f0bd581d5f45dd130d7eb3f81ce7de532f63c7b9c27cbb5", + "src/inferrsi/data/knowledge_packs/dependency/mlx/mlx/execution/evaluation-completion.json": "19d2e506ac4f50895776a83a062059aa7a052175c8e4b21dd0d46e1a5a6716a1", + "src/inferrsi/data/knowledge_packs/dependency/mlx/mlx/execution/post-detachment-buffer-lifetime.json": "18d78c0e542dacb42ca33e5264d92aef80fa06d163fd16d4feafd5ed0827ab99", + "src/inferrsi/data/knowledge_packs/dependency/pytorch/cuda/compiler/cudagraph-shapes-and-lifetimes.json": "7fef4122ff794967e61f55d02a4a6b558d7e498d9513607f5ca86db6386928a8", + "src/inferrsi/data/knowledge_packs/dependency/transformers/common/llm/kv-cache-strategy-contracts.json": "a2df26052112a9f3fc6242b2bd636ab13991442db57e56646168d6c52032d38d", + "src/inferrsi/data/knowledge_packs/dependency/triton/common/kernel/bandwidth-fusion-resource-limits.json": "6e9673d1a600a6ad34820e4325f2a6417f44f0f96d8ed0bcf21466d998f19ee4", + "src/inferrsi/data/knowledge_packs/peer/cache_dit/common/diffusion/residual-cache-calibration.json": "bb9509ad0225a91b52bc6787477581d05f0ecd5e44fa59f08f718eea36a2ac45", + "src/inferrsi/data/knowledge_packs/peer/deepinfer/common/llm/bounded-windowed-replay.json": "43613225e9ccdbd34c0f7e3e0767887b9bbfd0f38b2c21684677d99e31a432f0", + "src/inferrsi/data/knowledge_packs/peer/deepinfer/common/llm/speculative-verification-budget.json": "a729e1fc00be44e1480a5dc65bbcdd58df8599681df74dbc651a5a49f27e9028", + "src/inferrsi/data/knowledge_packs/peer/deepinfer/common/llm/zero-overhead-deferred-scheduling.json": "ed5426af145f066f6183bd316c4073c46f324f5ee83aa9bd616387c0d0e7149c", + "src/inferrsi/data/knowledge_packs/peer/lmdeploy/cuda/llm/kv-quantization-capacity-cost.json": "873997b38981ccc03ff73e6fb84e96022f293a019843efd8c4aa50f27878ac9a", + "src/inferrsi/data/knowledge_packs/peer/qwen3_tts_engine/ascend/audio/codec-constants-and-state.json": "1cecd7905fef5af3ef8952a4d803900a7df91d662ebae34db47cc0dbf352d4e7", + "src/inferrsi/data/knowledge_packs/peer/qwen3_tts_engine/ascend/audio/fixed-customvoice-prompt.json": "ea5e8fdf54cb731b255b73aa0cf47ef53fac103baa2bd5246be45f95d54cb593", + "src/inferrsi/data/knowledge_packs/peer/qwen3_tts_engine/ascend/audio/graph-batching-state-ownership.json": "130741a9f7ac9d366784d6c4dd42860262235caff0c277de1e8a8f8ec933b37f", + "src/inferrsi/data/knowledge_packs/peer/sglang/cuda/llm/hierarchical-prefix-cache.json": "b50ca58df28d4343545d07adf0da23f8f181297b30aba7870e5690630e7d7315", + "src/inferrsi/data/knowledge_packs/peer/tensorrt_llm/cuda/llm/prefill-decode-disaggregation.json": "349856dd98628f94987e014889cd1b15d0e3ae6ab6c576cdde917f28fbafb102", + "src/inferrsi/data/knowledge_packs/peer/xdit/cuda/diffusion/parallelism-freshness-and-topology.json": "3674b5916cb7b384951bf3e449b6796b161878daabcc1d7e7f6d6f8ff861cc17", + "src/inferrsi/data/repo_packs/afd_plugin/pack.json": "00042abeabdc9c0e24f1a4edaba47e233df398aef0ad4e181fc70191d383da5f", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/README.md": "02394089cbb8dc02c6fbcf96d0c749fcbe5342f5a9df3aaecd73c748e51ce93b", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-aclgraph-capture-replay.json": "ebecae74a677bae9666a93ed2be828db2abd742a8065af2be5d8ad4dafe181c1", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-device-health.json": "dc2979b9a02ec46937dcb10aeb7e814206b022d5d41612797f428221a55a44d6", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-distributed-parallel.json": "269814a1fcb21d70d57f91a05d4a7cda8ae6da4d0849cea065212f9eb60e9fca", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-graph-mode.json": "6ba2b0f2948a2d691ad8898ae8861c7f6d05dff751ec773d1f69a2914786fb12", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-model-adaptation.json": "e7585f42ab83508897536c17b452c474c90bac14c483b67f1b40df04b93eaac3", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-operator-profiling.json": "e5c19ac97ae2306e2cfd0fd8e035f86d0eff77158d6326e906074da06fac3bc1", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-operator-tuning.json": "3dd78009d21f4063dfb180e1a018270700dd86611bf2f6ae0454e8db06ce2930", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-optimization-casebook.json": "ad76590acaf5eee3e7e9b8c1cd8787c7287361dbf0adf0a4a2f818813e6a1736", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-performance-analysis.json": "a067900ca10abd1088a32175edbac375e3141429dd8731fab93cdf49f2aa5d0c", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-video-diffusion-optimization.json": "e66fecf4ff3eeda95a0f6598c5f34de895084841dff97e0d5c16761b92e43d7a", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascendc-tiling-design.json": "32ac2c69ca949d9107e4af738aa49929bf42322bb04481aa8096870f32b18034", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/cann-attribution-overlap.json": "f663a87d179efec7e9c987de4d0a7f7d85b677ee00013958b459c76f16082ba6", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/torchnpu-device-memory-lifecycle.json": "91c8799ad5b9bf15467a21bc66cf140a6a936613bbeed117cb568e665da78d01", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/torchnpu-pinned-host-memory-lifecycle.json": "7beabe081115a244f145f1400e86d93733a8fe0274fe0551e0da47a2979bd073", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/assess-serving-preemption.json": "02521aad3508c4e770f02100fc9a19cde48ba53a04d94a24133066761ceca412", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/assess-split-backward-schedule.json": "fa952d45549bcfd5869a82c85ca55403c877696a1c35576023d202b18d6122d7", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-fixed-workload-claim.json": "e8f96ff65d9a8343330f879128f9e6bdefe96ad348257e9c9e8e7a34f60c6b46", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-h3-metal-fasth3-semantics.json": "98843783777d096c6d35a6d31dc4dc164691d6cfc659d44a485133a88efdcb84", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-h3-runtime-residency.json": "72f25d702005b7f79febdb119a3ff8337d91131693fa6b66ca4126d693800f8a", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-llama-runtime-state.json": "0369527294ae1d21d7686198c4f007137de73daa8fa1cd8bd40c5d0b7ac9296e", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-recurrent-kv-finalization.json": "f7b4134d90d0241bb437acb69c0da5e2467e95d53b580186ecfa1d8e26ef2dc9", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-sd-cpp-residency.json": "02980bf89ad6012dc7c2300a0af0f2ac9841bf918c44000e6df892e01bda0507", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-sglang-diffusion-lifetimes.json": "0f5914764b8e8a937e2862e040129a8638417f4a336ba52dd6f68e6bec668fd0", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-vllm-kv-lifetimes.json": "3338592a8ce4540ae44e61b28ae57294e42603ef8b99bb8e0a057c1dc688bbe9", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/bound-windowed-attention-replay.json": "987dd19dee9866ea2eba2c2bd661f1be70d87def9400bab37a492ea8df7e33f0", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/budget-speculative-verification.json": "6988ec46905e5c59235718a903543da2129bb279a3b54ea962850c980f23ab4a", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/calibrate-serving-simulation.json": "989525da10cb1c8a8f724de7c52649c877cc2fbca2ad445288db5740346e9836", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/cgroup-resource-controls.json": "12d29714fdb78de26571b1b313d2c08f742ae5807708b3513ce7496080e8c848", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/checkpoint-recovery-consistency.json": "f35156bb2eef14421a956cbcf9e1215a2e389db6e29edf53e7fdcf186103d8fb", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/choose-parallel-training-plan.json": "b2d6c847b1cf59e2c2c297b944157d7ed7bb21344988776945994845a83730ff", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/cite-check-downstream-pr.json": "3f949d221621f6a6385c057281a4215bc9997dfc9eb640d6134e95a6f5d53981", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/claim-contract.json": "b5e044419b7dcc0022b19c544112485e7de6a5658b7e161dcf9868b2870aea2c", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/comfy-ui.json": "c5c237d0006bb38dccbc5feeb5b5c425668b9c4a5d33137ea34ba5a9bb1e581f", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/competitor-scan.json": "c75c439125b26cde8d9c61cf964dcc6fe4a8eb3eb9590b5d3aa2bb4ad974cdb6", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/dcp-async-save-performance.json": "5cbbfb3884b58e900719ef7a30e1e7d17e65903d95000f7343bd5aee323ab80a", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/dense-performance-evidence.json": "49b4d4d40c74720e8cb1196a5a742b5f9c280bbd61e16df3f31287f583a067cb", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/diagnose-vllm-admission-pressure.json": "09257528fa037626409961fa96bdab372b5ed060073cd6bc284283e269176f5f", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/diffusers-invocation-state.json": "6b5afd25a1f0a37c828180f31098af0a068c9195933ea2d4e77e752af48a1b05", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/draft-acceptance-issue.json": "ddf283995dd58337e4805a34266b16cb0f83530d72de39e08c56e98d132a1a82", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/dwarfstar.json": "7c32fa29e9bae329da27a2b99659debf01342a5efa234ff1cd955233c78ed062", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/evaluate-elastic-serving-placement.json": "22b88dd244222ef02484e85e4f84462d0d815a330981cc804605bb1222ada55a", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/generation-cache-lifecycle.json": "941bc2034b553673953c69bfe86259ef9ae981fe010d8e043f7003648d8dee3f", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/host-memory-management.json": "38f9c8b423f0c6a81d3b89fef479ea1689163b7ad22218b4cf67d7cebd568607", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/host-overhead-optimization.json": "fb9413782af4d5bad5c98e72937958cad667e7cea52236672de88dc6def2f6b6", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/husky.json": "fa0742f91758526b24ee8e6d8e34d03eef49600ee2ea24439a0eeaaaa94ff9c4", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/inference-benchmark-design.json": "6c28676ac41066ac2adf2d636b2ceb6514fcb319fbef106a154f5e20235f8659", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/inference-optimization-casebook.json": "cdcb6d434e2178965e050d83fd08674440380cf933b4177bcf607d61c2a9eb08", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/kernel-writing-guide.json": "262af0d275ca506fe17960788cae0385f337afdeca5156ee475285c50c2e7ddc", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/kv-tier-management.json": "3beff9e39c92798a088742f15333ed9b1bc17b6e274cfe5d15b7a6d079acf3de", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/lazy-evaluation-stream-lifetimes.json": "fdf10896ead2f2d1b9a563ecf800d6ea6cf554f5134087ef4775aadde578eaa3", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/lily.json": "c18a1b798c20859900aef496ef55fb5154bbe751218c8a9eb5400b096b4409ba", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/lithos-metal.json": "efffb15e7d008cc61c700d242f3dabf1cbc271a8eb8fb77487ceebc5d6a6ac31", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/local-dream.json": "e03e426f7c1cc32745dd4fe37ca4d93ee7e22667002a87da746ab9632af2f316", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/mistral-rs.json": "16aa560a7e4eb3268b2d75c469a5ab1d45b0bc23e2aa7ddb557280855dd1d9e6", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/mlc-llm.json": "c5a431019f8fc55c0746b81c0eb1d0450d71e62883c9c6d2da029a958e5ca01a", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/mlx-swift-lm.json": "98b397fbaede93759c14be4fb9653da383fcd01fbc4c456c5c50abbced0454ba", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/npu-skill-factory.json": "626d6b934c4923c92d5f98ddf5d32e3f7c33a0526cc3154ab1fe357c33c11574", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/optimization-search-policy.json": "af4b2abdc0b89bc5a38f79e082e97f1e537cd6648ee4e8379652274568ab5e59", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/os-process-placement.json": "595c86452b42eb91607794882ceee92477d20cce3aa9cd660a8ff075876915f4", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/performance-ceiling-analysis.json": "24f7d2139809abd77311b99be82ad5ee78da3911a2b2f9a12be9e842e5275b53", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/plan-activation-residency.json": "f4699d0fbc52b91fc028140b3454b99de38a89e6028afe8bf3c8c0dc30f1a09a", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/project-maya.json": "4e77bda9eaa7f8a823351bf10fcdf7f09d8b07714c46b2264883c72e320aeae3", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/repository-evolution-analysis.json": "6c218d14c37c15a0f319fecbdc5096d186aab8a70e258cfd3a1657c6dc38798e", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/rsi-evidence.json": "31d55ced4a2a4f3d5ff4497f532ba653ad1274f69ece0b1c00d83e926465ddfd", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/skill-evolution-playbook.json": "dc68e6a1259677958ae9b0de5c95844a67a60dc6c4b312d209286ad8a3f9d192", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/splash.json": "6f98c43a3b7ea4ed83f5495bdb35b950372f37d0ef53cf0eedabe437b57f1226", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/storage-io-measurement.json": "529f800b16219ca8b4ad78d8d2122bb8f2765974f7edbe5d1026b4210ec89c63", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/training-input-pipeline.json": "e1f2f4117096a9c39a01dc15cdf39b5ea61fa422b473e643049e0fc4cb175e8e", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/training-resource-budget.json": "f5062359083c6cb004947c0c3f6e1bd52450ec3e92252454b5a399e0a0f292b2", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/video-diffusion-optimization.json": "f87459d7f207d17a071a2525a3463b6d9e911f7157762fbe437959884c051dcc", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/vllm-metal.json": "2e68f1a07220c637c6fa858bbb664a661e93888f65646f2da2809f5df1be1be7", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/weight-loading-optimization.json": "e2bdcb6e10e168e8ad4c1dec571b615581594daf33f7358db1f6b97ddc745b31", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/audit-afd-p2p-exchanges.json": "d8ffecf654576c0f6470c5cc9f68e8f2e65d494890e23f4c3220ec1212b8e6ea", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/audit-flare-session-lifecycle.json": "1c7da3acaf1f7702a76a790c0ec4fd5132cdbc8625b7afca684aac7165e87226", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/diagnose-attention-bottlenecks.json": "7f0135ef7920bb50fbe3c5d97fdeb2d2570674ade8245d302ff54a1490ea60a7", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/host-overhead-profiling.json": "68fe4623c829762376dfb789aae14e1dd22f01caeede33750d82d6b235b815af", + "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/reason-hopper-kernels.json": "b9276d6e621be4b5bd9e63c887b2fa9f6cf559b1b54f32f04cd270b8c7e4ba80", + "src/inferrsi/data/repo_packs/sglang/knowledge/README.md": "682e1673fa96c4424f8e1c203e1ef3af174090df4b0f4b00a08458cc835af050", + "src/inferrsi/data/repo_packs/sglang/knowledge/common/llm/parallelism-and-extension.json": "1253f5f01bcf1498703c7f34960f0c50580df5ba8f140af557a903e296ad81d3", + "src/inferrsi/data/repo_packs/sglang/knowledge/common/llm/runtime-radix-hicache.json": "5a0b2aed51649af214cdc1034f57650b7ce195c934a17452ee67a35131f80cdd", + "src/inferrsi/data/repo_packs/sglang/knowledge/common/llm/tuning-and-validation.json": "ef4d4f7182da4433d59d72dda0d21b4aeafadd73260be11ab8d4cb36c20fafc6", + "src/inferrsi/data/repo_packs/sglang/pack.json": "bce2e0c42796a9ef499d459c37b56d1d56f4b19344841359c534fca29c0359ce", + "src/inferrsi/data/repo_packs/sglang_omni/knowledge/README.md": "7cf067a6162ad39efa42c485c2c41eefaf417883bd7e4039e550c73b28448f7f", + "src/inferrsi/data/repo_packs/sglang_omni/knowledge/common/audio/serving-and-streaming-quality.json": "97fc1d5a11a39a0634dae9e9602a4ec47a4d2348e121076c2d5c836cf0692114", + "src/inferrsi/data/repo_packs/sglang_omni/knowledge/common/omni/extension-lifecycle-validation.json": "7da8dc5d2655099de2bcd5f0fa922d9e1bcb0bfd2f571f026a004a7f402a75b6", + "src/inferrsi/data/repo_packs/sglang_omni/knowledge/common/omni/pipeline-state-and-transport.json": "0c57692772019504264e39bf0444a69e20cff86f6e112b072c53cf7a4299cc82", + "src/inferrsi/data/repo_packs/sglang_omni/pack.json": "8e70336bc2aac0c74732a026337813652b5d5c6e1fc60f5571e9442345077b96", + "src/inferrsi/data/repo_packs/strata/knowledge/README.md": "b94b6accf0a2333b751f234d7c60c882aa02a25fb9271c5f75905584ccae86ce", + "src/inferrsi/data/repo_packs/strata/knowledge/common/llm/architecture-search-space.json": "2c5ad72d5bab4f7082fc3be1532c347444cde38f5a84639fe16b22134b68685e", + "src/inferrsi/data/repo_packs/strata/knowledge/common/llm/controlled-execution-tuning.json": "6a2bf611a432213919e1c237687507ceb0ab753cccad0e934dc77f86604805e9", + "src/inferrsi/data/repo_packs/strata/knowledge/common/llm/engine-validation-contract.json": "ef89775bc82965fe87a832c7ec8a5cf55cb9eba4ecfc6279caea9ce3b0410c41", + "src/inferrsi/data/repo_packs/strata/pack.json": "643b32defb8db9aa230f624856f4fb4b595b5c23db58d9453091f5420cff71c3", + "src/inferrsi/data/repo_packs/vllm/knowledge/README.md": "25bbde60f83028b9aa8647b8c5dbe30107a6a4531a2463fece99c4a5bb585774", + "src/inferrsi/data/repo_packs/vllm/knowledge/common/llm/bounded-serving-measurement.json": "fb00ddac14ef6b06f48da9ba335529bd55d5d83c2a2fe331f0aa1ca16afceb37", + "src/inferrsi/data/repo_packs/vllm/knowledge/common/llm/extension-correctness-gates.json": "4ea7083d277df205ea4c361bee87a8207951596e9ef6cfa136cc7d2aeab02f46", + "src/inferrsi/data/repo_packs/vllm/knowledge/common/llm/runtime-and-kv-ownership.json": "e6142c1065754716a5f26f42119722908dc8fff63e667c986d57f1227b8610bd", + "src/inferrsi/data/repo_packs/vllm/pack.json": "1705d96710249c4514c15d8d011b43c1a1ae7c15fbc9ddf11ef2d0e6b2ab7d07", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/README.md": "ab8234fe1d420b072038118fdeabdccdf62a13274d44ed58d79c53db745bd412", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/ascend/diffusion/minimax-h3-reference-kv-reuse.json": "80b853fc594d387ab48bed04dca245e0a22b8cdaf7c9b853551ab3bafa302e84", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/ascend/diffusion/minimax-h3-sp-head-buckets.json": "c4d29d1bceb5e2cf86151bf53c9dafb3d83428fb1e9d2a848d852bb8824bf857", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/ascend/diffusion/qwen-image-21-eager-t2i.json": "ef107d43cc448219eda4d64ab961b61cda6350e20d30d94de1ff7c4ffff7e775", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/common/audio/streaming-serving-measurement.json": "2680f32f28907f6abc7a7e1e3ecab4f46ee412f40f4898ed2f371ffadf47ae4d", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/common/diffusion/measurement-and-profiling.json": "c8b25583cd160024c7472a20debea34cb6d4bc79714b4bad2953555adc9f794e", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/common/diffusion/production-integration-gates.json": "649b49ff64d3e9e88bd620027dabf9d126ca69bbe91b448f28e845ecbe1f8e2f", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/common/diffusion/step-state-and-output-validation.json": "e1ffe28c4fa54af739cdef2fedf4755bba18e078f8380d4fde8138ea712e5778", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/common/diffusion/upstream-review-gates.json": "5127709bb85ce31008d19468e1b4fcb5454a71776f69f991841cd9ef7558f9c4", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/common/omni/stage-ownership-and-search.json": "e75d6c2829ae22881893f5da2ad7edba099fd64ccfb0fc93d30473e06e9d4d80", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/cuda/audio/concurrency-scaling-state-and-overlap.json": "cb47fabb232db81ed525cbb54371becc7e4a28b2bae9d8492f60dfb6f31563e8", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/cuda/diffusion/minimax-h3-adaln-schedule-cache.json": "ddbba3bb72b5789938595a82d3280e861f75f6ed54f05a1d2b7dcb1089d30f63", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/cuda/diffusion/minimax-h3-cuda-mxfp8.json": "e4c538f03f4ab90a4acc8e3d8721bbd226aec1ee9bde45757a7c27d3d970821d", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/cuda/diffusion/minimax-h3-fp32-modulation.json": "abb8d94a1b025f0e2c8e085275e96ee85d68aeb27cb12d0918e4647f8255b693", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/cuda/diffusion/minimax-h3-qk-norm-rope.json": "4c1c4acfb9cc0baa90bc28fed1903020ea1ea38755b84315711795db45e48bb6", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/cuda/diffusion/minimax-h3-ref2va-teacache.json": "8aeb3f99ac4227cf8b3a5cece13d938b19082e265a557eddae27b7e495bcc22e", + "src/inferrsi/data/repo_packs/vllm_omni/knowledge/cuda/diffusion/minimax-h3-vae-stacked-tiling.json": "8cc18eacbbfd8fc4d3a6b4152c4b584d559fc9b15377da56ef072e542d807c93", + "src/inferrsi/data/repo_packs/vllm_omni/pack.json": "58c971e9dcf6ac15752629ed4d9426aeb5b5d857fc37b5bcf921aa2e81c0cdd5", + "src/inferrsi/data/repo_packs/vllm_rlt/pack.json": "6097041b8d026740060e527f49b1b4e288315b1c3227f7583805b86d8fa415f7", + "src/inferrsi/data/research_profiles/minimax-h3.json": "c5f0fa7871710d80a55120724dbe95544054276e03de65508d6d6e5efdd446b6", + "src/inferrsi/data/skill_library/README.md": "74bd6c7f0201c5296530e263e1e66b0e1dfd231558eb8b6c01a4929b886fec2b", + "src/inferrsi/data/skill_library/frameworks/diffusers/diffusers-invocation-state/SKILL.md": "7581b56336d07213a87d01477793ae1a8acf0b7cf876fce36c9a761ee32c1ff4", + "src/inferrsi/data/skill_library/frameworks/diffusers/diffusers-invocation-state/metadata.json": "68ac7f64b7ab947fc2db664bc3990f102c1cc5539b42350aa5818d0bbf17d86c", + "src/inferrsi/data/skill_library/frameworks/diffusers/diffusers-invocation-state/references/ownership.md": "40688cc44183027efbf2fca8d3548c299cdf2e33fef54f76ab3549353eb9bd1b", + "src/inferrsi/data/skill_library/frameworks/diffusers/diffusers-invocation-state/references/source-map.md": "10562a75683bd9bd07ec2e37a1cbd0f93f2534d6f85b55a566adb2d97485215f", + "src/inferrsi/data/skill_library/frameworks/diffusers/diffusers-invocation-state/references/validation.md": "5a0b854b87d091d7d505b0bdd5c03330052507a851ab6edf35b93a6675f2d4f7", + "src/inferrsi/data/skill_library/frameworks/mlx/lazy-evaluation-stream-lifetimes/SKILL.md": "a95569bcc0da6e715fd74783a6a1e0489e92b680c582f15dafbf98df589d505a", + "src/inferrsi/data/skill_library/frameworks/mlx/lazy-evaluation-stream-lifetimes/metadata.json": "9c2293c8956508de987c886c7224d673d22912e7e915b026b05abdd287e97401", + "src/inferrsi/data/skill_library/frameworks/mlx/lazy-evaluation-stream-lifetimes/references/execution-lifetime.md": "c4bc41e08aca68f661325f61e6f0db1760a079dc362f295c847bdc374fee3bf6", + "src/inferrsi/data/skill_library/frameworks/mlx/lazy-evaluation-stream-lifetimes/references/source-map.md": "798b9cb89ed6b885eb47464ca9f137d2802a54571b9327e631d7742d3e5abd5d", + "src/inferrsi/data/skill_library/frameworks/mlx/lazy-evaluation-stream-lifetimes/references/validation.md": "ebfc00bf7d6ab0a1dc415953ae84d56ccdc713d5614aff85e433c4a843793bff", + "src/inferrsi/data/skill_library/frameworks/pytorch/dcp-async-save-performance/SKILL.md": "645139ee0c88ec865cad952e24cda35f4648d4b777b732c9b7d274b6c7830845", + "src/inferrsi/data/skill_library/frameworks/pytorch/dcp-async-save-performance/metadata.json": "db7ad368394ccbfdeff6a16e3423c300d51305b1f95ff5c3936df91738a8cc35", + "src/inferrsi/data/skill_library/frameworks/pytorch/dcp-async-save-performance/references/sources.md": "22afe4f4d77f441096cc657d55d763473bfcbea8fb531c8e493fe49ab84955f7", + "src/inferrsi/data/skill_library/hardware/README.md": "ac71975625c55d34491040084131ddc0420942778ba824fcf99c41bffa42e12b", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-aclgraph-capture-replay/SKILL.md": "d494fc7e539cbb7388189bd7b3f04bb5c4983fdd7a82484348aad1cee7f741f2", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-aclgraph-capture-replay/metadata.json": "71c68431663ed2336cccc985a354adab6b13b4cfd6123a18a5d8d53c28268509", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-aclgraph-capture-replay/references/source-notes.md": "6ffbfb68cc7e04923b4fbca2a73a7555b7c3b45a6f40819bb5f3213ef05cf88d", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-device-health/SKILL.md": "03829039860ece35519f2e4c339a48b5014ec25e07a2c150a3efb6a3a4e35b4a", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-device-health/metadata.json": "80d80c15514919826fa72d6f6cf26b76db8accd85d21187fc239232ca454e7bf", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-distributed-parallel/SKILL.md": "0b79d95e8d5abf0a822f8ae6bfa3779cbb40595c5b6f0fb934233275f5899ef8", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-distributed-parallel/metadata.json": "56ae2092fb4d6538603c1d3d3916f0a3f0eb443d23dad3217ebd74d48d208d94", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-distributed-parallel/references/awesome-ascend-communication-tests.md": "0cb27a3d24409171bb414d7ebf0c49ad62be5f46482f29624695496ba9eb3e63", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-distributed-parallel/references/hccl-LICENSE.md": "05205a02acebd671c78d3b876c1f6097b84cce89780f5d9bdc204bfbea92d0c1", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-distributed-parallel/references/hccl-allreduce-readset.json": "4a3d403986dfceaa28605f2f30b79545e1efdc27f35c88755402b75b4d13d7e2", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-distributed-parallel/references/hccl-allreduce.md": "4770bba0090ed5ead3d2fd3b2cce2d21ba708acae3e0b4d859cc503499da5b93", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-graph-mode/SKILL.md": "a7341b5bf3b43f32d6114e2109e5043e46f3ddeef9b7bb3b20c1c50236bab638", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-graph-mode/metadata.json": "3912bdfc721a703580a97a42ca13ac708396b17c4b600bf9e76375dd061fd29c", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-graph-mode/references/legacy-source-notes.md": "a51c655aff59741cd7421277bd71dffeb9907560950459ae0a776207e496de4a", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-graph-mode/references/torchair-LICENSE.md": "bc07d81fa332b6543463588a120518c57b5ce8582d3747de75d2f6b09b068c01", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-graph-mode/references/torchair-graph-path.md": "272424571ff439278c8f2675406eae7da9a6482c581973e24319739fa0e58348", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-graph-mode/references/torchair-graph-readset.json": "eb84cbd5c355a88ee013dc7e428b274162e0e13e85845b58526113b0d6a2b46b", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-model-adaptation/SKILL.md": "8fdf46fb2743b67a66bc069d22a45305a222debfb606777bc451b4b8f31d9cc6", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-model-adaptation/metadata.json": "be681a3206e5e183b4c9670c9d7784bcffce18c891449e5b15f94ca5f1324b9a", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-operator-profiling/SKILL.md": "401981cf7828edcab0c9ea882f7ecd83badfa3c2a95006e912cf99d67b3d6a12", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-operator-profiling/metadata.json": "efd37bb23acb500dad4ec8ebe7ddfe5c3f196374052825f923ac85da8445f06b", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-operator-tuning/SKILL.md": "38b151bc6b4e9734c6fa41efb7a30343559400c0c75bbdd26bd8a968b8ea4592", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-operator-tuning/metadata.json": "04d2002fc8a0a7becf86b0b73daaf2da8716ab466d7f988da43d41a10f26680e", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-optimization-casebook/SKILL.md": "647f5e9a288f2c4e1617ba53df59d9d827df749eb4fe86182d21a9c41175caf8", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-optimization-casebook/metadata.json": "f425f7c1abbd616387273e8932c6bd02f4b1da012f099286ad4171e0f6037b22", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-performance-analysis/SKILL.md": "a057b7f86a24f34a8f84abbbb4910d58d4e50ff47060e1c404600017e3febe89", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-performance-analysis/metadata.json": "9e705625c8308013c287576b0247da6f6116d817a4a535cbecff80abd6ea35ee", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-performance-analysis/references/cannbot-CANN-2.0-LICENSE.md": "89b1c114df62cfd183004f38d18d07f186436c3b37203dd69c3e84becf9d2282", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-performance-analysis/references/cannbot-stage-evidence.md": "f56e4125325c9c1b9235a1d64fd732861c7686444492422daff44ba8dd648be4", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-video-diffusion-optimization/SKILL.md": "53c21e64f0dd47f9510faef1f2c01e1283899787ba7ebfe70cdabd8e57a76f00", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-video-diffusion-optimization/metadata.json": "8c2b364298330751fd1252516159b16c27e90354e2a724782d2851e68e43cdb3", + "src/inferrsi/data/skill_library/hardware/ascend/ascend-video-diffusion-optimization/references/field-notes-video-diffusion.md": "dadac7b23462fdc325218c72ddf8a2ac553151761a5d3e45b854b53d2c8c6908", + "src/inferrsi/data/skill_library/hardware/ascend/ascendc-tiling-design/SKILL.md": "93aa1b775ced304cebfe6c4dec0503ddb2260ecb3cb01edc17ce329446c5ce2b", + "src/inferrsi/data/skill_library/hardware/ascend/ascendc-tiling-design/metadata.json": "f6d94f104cb70969024b2f4542078a240e200712c66279eca8b94f60bee1dd71", + "src/inferrsi/data/skill_library/hardware/ascend/cann-attribution-overlap/SKILL.md": "0e6f094dc554abea12e07def50f20b233b47127779a8aefad595b4ab1efd24c2", + "src/inferrsi/data/skill_library/hardware/ascend/cann-attribution-overlap/metadata.json": "acccc8eb86de0df6caf78a9b3c6db76a2a686adc4a5ba0029a4d62d50ff9a8f8", + "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-device-memory-lifecycle/SKILL.md": "8428df7157af024fa17cfe0b3818ed54bd9f468306dda46eb8d4f0edf4f3f230", + "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-device-memory-lifecycle/metadata.json": "c650dce88c07b636d68e063dbda4d319f6f7f3ecbcdd5e47f393cbfc3af7c71d", + "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-device-memory-lifecycle/references/source-notes.md": "80cba4d3a884e7ee2618326cf74b9f9c3a34e4d9cf443707f6bbe673f2d5ba65", + "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-pinned-host-memory-lifecycle/SKILL.md": "23e93ea7c98f99743509fdc04139d78ed2e7123c63e80b366c6beaba7eb70d0d", + "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-pinned-host-memory-lifecycle/metadata.json": "97836a38465106d816a9ace894a7b277d6d330f9accade8f8493ce6f0fb57ef9", + "src/inferrsi/data/skill_library/hardware/ascend/torchnpu-pinned-host-memory-lifecycle/references/source-notes.md": "435193590b4a2ba32e2e4c6fa9d7e8f889528d412cbbb48e35ec5433f7dab384", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/SKILL.md": "a25738dbb3b9daa15c5827cb536a20fe13f7c8b9dd14aa3fb7cfa7e132879431", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/metadata.json": "3abe626a6e4c73c943429f609ce2c62aa77aae7e1726475ebbbdfbe1794f6f7d", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/mechanisms.md": "fe08b2292fa587be3874774ddf41063b84c579a0085df422ec6710d8aa90b8b7", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/papers-20261015/INTEGRATION_NOTES.md": "371b01ee201ef51fecbfd6da892d517aaba295930b9395025f03f34e21c030a1", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/papers-20261015/NEXT_GATE_LEADS.md": "35b8b58ae5db02b2df51ccbe5cdf870a7383d17f345f9ee5eb7b0a4146dfc74b", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/papers-20261015/README.md": "e0b1ec1b39c10067f5ddce58320851ad089568c4b2296a24777389097cb5b388", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/papers-20261015/cases/io-reduction-can-plateau.md": "5cc35f514224ac6e6efd2da6db221bba468b2f4db66807295e67b240bcdfdba5", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/papers-20261015/cases/overlap-and-fp8-counter-signals.md": "80c8a60a6df55f3d84fab23e03567d8b38e23bcdbd63cc09881e46db1e2888ab", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/papers-20261015/cases/partitioning-after-fusion.md": "4d4cabe0991eab554dcfbd4fa9c8199e61fa4767709b0c4cd646e2588bb398a2", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/papers-20261015/knowledge/attention-cost-model-boundaries.md": "5ed8f888443e38ccb72545b6025447aab7b92936f78c151fed680e582126239b", + "src/inferrsi/data/skill_library/hardware/cuda/diagnose-attention-bottlenecks/references/sources.md": "53436e0de4e6dda2d29426591bf61f8526378cdc6f9ec7967b88b1bcd4c61e6f", + "src/inferrsi/data/skill_library/hardware/cuda/host-overhead-profiling/SKILL.md": "326e566fbe30d3ba04e4b50c3e87aad9df037f0ac4ad6fe129165ae97dc5f91d", + "src/inferrsi/data/skill_library/hardware/cuda/host-overhead-profiling/metadata.json": "76e34c1c64aba473a9e126b032a776417caa0f913f6ac3cf4dba3a5d123b1ee0", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/SKILL.md": "cec4e3aa1eb64c31c54b5f5ca40af2b61b7919d94be4174968581d5f752c0538", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/metadata.json": "7520da1cc97412631a600957ecb18aa5a7a4461ea21e76c237330180193ed898", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/fp8.md": "31d9c211c11c2224007abbdcd4059913c4a54833fe2d2f926411c5238fcd3501", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/licenses/cutlass-bsd.md": "42fec630f410aa308f70a51a89fadcd19586fa620f9831a32bee528a9a10000e", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/licenses/deepgemm-mit.md": "6c73a30c14a2938abaa6afe98ebb19e6d81dac5bd4ace0cb05c61c20afa37b85", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/licenses/kernelwiki-kda-mit.md": "84aab57158a914f448b38d8be29dd842b634a08c192d844f416a256beed4ae94", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/notices.md": "876ec016644bf5331b3f257985e126c0e61980e3bfd82569b7b0c3f6b2c6c64c", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/resources-and-scheduling.md": "1ce25b426736072435a1ead9a2a8e1f56df5d0abb8198e8c4fdcb34321db4964", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/source-inventory.json": "1dc09c895c970a0c9708158bcc6dd65cdb736274fd2c35d44542c70407d3849d", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/sources.md": "6b74b9e774f2a80db0860510d9e6940d36284430f29c1e124f115a9eaf25833d", + "src/inferrsi/data/skill_library/hardware/cuda/reason-hopper-kernels/references/synchronization.md": "4322f6b3c0e4368bf8c192b4ec752529767f50d19c0c38dad8fdf9cd781e41d9", + "src/inferrsi/data/skill_library/hardware/host/cgroup-resource-controls/SKILL.md": "fd1f5a7e6a55714730044155f5b38c1d700383d4e16c3e91963bbfbe1c773af5", + "src/inferrsi/data/skill_library/hardware/host/cgroup-resource-controls/metadata.json": "19e40763fedc20990651bb989c32a7693306c5c54af46c3d4be77fd4f87b6c03", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/SKILL.md": "4c8db9f603cd581d002e8f41da65af9cbd03699be05c4965a55de47e044e4dd8", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/metadata.json": "0d1fe7238bf3e744b463df5f7dc683110468ae266709e63f0d3edfaa0e2f110c", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/cpython-PSF-LICENSE.md": "33f1a470702f459c160751bf3188b3fa7462fc761a006e03e80ef3f0a7a01ed6", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/cpython-free-threading-readset.json": "46336623b3c573fad97d4c686d9836baab807adf10f4bea05352d7a46236e004", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/legacy-source-notes.md": "bb1c0fb7a4d1a0301ca9e699e733224f3dcf0ded3cfe13e612e5c04d48a8cab5", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/pytorch-LICENSE.md": "a8a2c6b67cf8a597ffaa5c82380a6bd1b82629c0417e00673d8013d662eb500a", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/pytorch-host-copy-readset.json": "881258c97edfee0a89f2392c2ff61cd7fe37ff8344f18620f281e841fb92cbc8", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/pytorch-host-copy.md": "fa9da5c39d37ebe44e5a336a7b88d7aece6a0f118ec47cb38271e29925e11117", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/vllm-ascend-LICENSE.md": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/vllm-ascend-native-offload-readset.json": "cc6c2011be746002ba3ff96ccefab1809863748ddd17eb102b75e7b0e134fe55", + "src/inferrsi/data/skill_library/hardware/host/host-memory-management/references/vllm-ascend-native-offload.md": "6c2a72b5ba3708a01d229e0576570837a617e6a42dbb0b5312a26a65a6c31542", + "src/inferrsi/data/skill_library/hardware/host/host-overhead-optimization/SKILL.md": "36ef88826a32ac3147b869001004ded17a8d5a491e25bfe105005ba39ea9d1eb", + "src/inferrsi/data/skill_library/hardware/host/host-overhead-optimization/metadata.json": "ae71c389dfdb1a19d267feecb4c6f1fbb4c9afad501ff6d8fab7e38b29bcc37a", + "src/inferrsi/data/skill_library/hardware/host/host-overhead-optimization/references/deepinfer-zero-overhead-scheduling.md": "f452bf40132c9195d739f1c86b3aa18857138c7ed0f1861af5853d93b9955924", + "src/inferrsi/data/skill_library/hardware/host/os-process-placement/SKILL.md": "2003492e4d89fde0443b180d74933e764bd1979435e109c8d26e20eb8f6e5053", + "src/inferrsi/data/skill_library/hardware/host/os-process-placement/metadata.json": "ec02995c075f0a540921f57b4846f2cafe334eb90f44389f17c3c50457c3e9c5", + "src/inferrsi/data/skill_library/hardware/host/os-process-placement/references/llama-numa-thread-readset.md": "748b254b3b043a5ddb0f480eb4a566854d27eedd7b111499863e9bf0a5a6951e", + "src/inferrsi/data/skill_library/hardware/host/storage-io-measurement/SKILL.md": "63b883c10a8d3e7d918abfc7175b72e2b401ff1e02697f94b8382ec1c8f369b7", + "src/inferrsi/data/skill_library/hardware/host/storage-io-measurement/metadata.json": "0a41c7b00978332b54ee1e4a7c1ade88ecde3e961128f24d1b4f7708caff5ff5", + "src/inferrsi/data/skill_library/hardware/source-inventory.json": "9e8ca783d8d9fa35fa80b3c045584bdf42578c81767da5c7703b15c901a2468d", + "src/inferrsi/data/skill_library/methods/assess-serving-preemption/SKILL.md": "0a5f48d9352c5bf460775ef47f9136829978811f4a16e84983e299782cae305d", + "src/inferrsi/data/skill_library/methods/assess-serving-preemption/metadata.json": "77ce5ba16245cbd80d46d0abdf80aaf26fc0924fa2d2a5624ff430de68a1daf0", + "src/inferrsi/data/skill_library/methods/assess-serving-preemption/references/source-notes.md": "f29fcecfba0490008a354c11b42403983fe165e56ff907ad61cc6040d2b6407f", + "src/inferrsi/data/skill_library/methods/assess-split-backward-schedule/SKILL.md": "1e64f28ea71672fb53c56f6108b87864738c6d03d6dcd32eedaef9e0625e96e3", + "src/inferrsi/data/skill_library/methods/assess-split-backward-schedule/metadata.json": "c6acae57d70190cea0e18c71c79127962181e58169e011df75d8635b3db4daa7", + "src/inferrsi/data/skill_library/methods/assess-split-backward-schedule/references/source-notes.md": "61b1609f71c37b61d136b8c4d39f793de87cffb1cf31c8ec737a1c3fa6fb1b4e", + "src/inferrsi/data/skill_library/methods/audit-fixed-workload-claim/SKILL.md": "2be89b1340a3deb978c8e1792d18aeecbe8f5de81d4daf542389f53826b8ebee", + "src/inferrsi/data/skill_library/methods/audit-fixed-workload-claim/metadata.json": "81edd75fa16939807548d0944e9203cfd7c0cb17e63463872d96ca2c1273d1d8", + "src/inferrsi/data/skill_library/methods/calibrate-serving-simulation/SKILL.md": "ac773c6f1c110a664dfca28a3ae9129b10c07614e60ca3640dea776220e7b352", + "src/inferrsi/data/skill_library/methods/calibrate-serving-simulation/metadata.json": "261ce9f644ea6eebb90c830f41fb8b320d2b401456e5bd8d494095a44b8620d0", + "src/inferrsi/data/skill_library/methods/calibrate-serving-simulation/references/source-notes.md": "9696d3c0ef96b6611787446bd6f96d4d6255ca8d107105de8c1d9af83edb9fa5", + "src/inferrsi/data/skill_library/methods/checkpoint-recovery-consistency/SKILL.md": "6b7db1eb2780dec27858cb7aa0a3c093c5b5dfa4c30261aebfeaa255213ff688", + "src/inferrsi/data/skill_library/methods/checkpoint-recovery-consistency/metadata.json": "4dc8659806539b4784ea9348a01d4194ac70d0bb297a916f90ff6419efa5c328", + "src/inferrsi/data/skill_library/methods/checkpoint-recovery-consistency/references/dlrover-persistence-replicas.md": "055f4357f79026fcbcc766bbe77db610376ec353623f8898f5d14a30ee69e7bc", + "src/inferrsi/data/skill_library/methods/checkpoint-recovery-consistency/references/sources.md": "9425b1aab963a2c8d35f3db897bd15ee69699bf5b0d0c8425c3c8bba3e9a0233", + "src/inferrsi/data/skill_library/methods/choose-parallel-training-plan/SKILL.md": "25d04aed9782b2a8ff1186828becdc7fce93c4418039ceaef9b8dcc5ec9bcd24", + "src/inferrsi/data/skill_library/methods/choose-parallel-training-plan/metadata.json": "c6acae57d70190cea0e18c71c79127962181e58169e011df75d8635b3db4daa7", + "src/inferrsi/data/skill_library/methods/choose-parallel-training-plan/references/source-notes.md": "9f9184d46b19312138a6e805e439e43dc0594a0cc6b46675255a582dc946ca5b", + "src/inferrsi/data/skill_library/methods/dense-performance-evidence/SKILL.md": "53cc1867a13f54d1006d50517dea8848869ca50df3f0cd610b2424cc8d18c933", + "src/inferrsi/data/skill_library/methods/dense-performance-evidence/metadata.json": "a0d1e3b17140295510a764045d1b222e19be3a3406e6d1e7dddaad49ff474490", + "src/inferrsi/data/skill_library/methods/evaluate-elastic-serving-placement/SKILL.md": "82d0099d3c33706f46c657d4fa7f76d3d486e019b36760d1de001921328a60cc", + "src/inferrsi/data/skill_library/methods/evaluate-elastic-serving-placement/metadata.json": "37379a4d4a058ca46da2b20a920dc01be9ec11e557c32b2332702ec76027f4b5", + "src/inferrsi/data/skill_library/methods/evaluate-elastic-serving-placement/references/source-notes.md": "ea416831fd7d0874e06d0a76fb0c7196df53072b717673a0cdf635db6bfd917b", + "src/inferrsi/data/skill_library/methods/inference-benchmark-design/SKILL.md": "59b5656e7d989b3cee8d6f95cd43be03053b1fb11c3a82bb49ab3d402f7aacee", + "src/inferrsi/data/skill_library/methods/inference-benchmark-design/metadata.json": "18310402a8ade03fd48ac687f79ba9d447871e90337de84c0e1bc15c0b827306", + "src/inferrsi/data/skill_library/methods/inference-benchmark-design/references/benchmark-commands.md": "0898424e0bff3a6246e1eeeda6abd6c5bd974c047fe32f3bbd5ab9d31ce17cd3", + "src/inferrsi/data/skill_library/methods/inference-benchmark-design/references/task-benchmark-selection.md": "0d4bb080a754e26846e81680023db0dff5e6a4c96be4327c411c3b72ac4ef8e2", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/SKILL.md": "89a6a82c692f7f5192f4d7f4c3a5ff08a4df3b1c4bdaa0aafb7e04292d8aa5b4", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/admission-drain-occupancy.json": "3319e23bbe2bd40e2d45fb89dc87bdc92d4df2b5ddd8086fcf84813b43885b7c", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/admission-drain-occupancy.md": "e88bbac5d253a8e7e3a3d5e21047f23f2970c11ac23887d4303ab94fca52dd27", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/drama3-rejected-directions.json": "2cc0a526fe0509551607a03e7626dd3d7844e643c4afb194837f75cddead8b12", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/drama3-rejected-directions.md": "6f143bc363a3290fc008c08e57cb075f1776d1c8cca8a6a59297d5b1fbbf61bf", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/qwen-ascend-rejected-directions.json": "b3d538f79c56724ccb2895cbf50cf2e6b0fec3979be62a684a8230cd932dff55", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/qwen-ascend-rejected-directions.md": "be396983812262515899a3e2ba4f01b23ff92e1b836881882c7580372b8ae552", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/qwen-b300-rejected-directions.json": "146ea1564a46ed03092c7dc5796b318fc05b04b1821105ee00eb7fa7fa1333e2", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/cases/qwen-b300-rejected-directions.md": "cce2930f544a0f78f21797fba4d8ded298e4a81f76c34d7977b0e31d361bc738", + "src/inferrsi/data/skill_library/methods/inference-optimization-casebook/metadata.json": "fb55067fb45970319787068a3206110641cceaf0ccbabd706be6d0b3d2afc2ed", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/SKILL.md": "360361f592ec3a24834198372cbf92aaedc1720404d182df94315eb0e01d58dd", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/cases/causal-conv1d-dispatch-state.md": "2eb67dd522021bb2234616d7f660e6ba99acb43676f48cb23141bc69bf3e0029", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/cases/hf-qwen35-gdn-binding.md": "b3a55af3f45f01c48e1cb18c8b029e5949a494c3e51dc444a5cccbad9acbba0a", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/cases/sglang-gdn-source-contract.json": "6c2586ec80698dba848ed09024954d060307be71c8701719af19df3b735cf595", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/cases/sglang-gdn-source-contract.md": "8b093faf0ab775d5605ecdd9653fb3689c2b839cba2641c5d5cda17c721bb2ac", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/cases/vllm-gdn-causal-conv-contract.md": "2f3dcee66e2dfe7a98bee21a36b892538998de5de3caf1bc63257137f9984236", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/cases/vllm-gdn-source-contract.json": "73f1a2d8fa89ce05aead2091a05a285b13cbdc314d05452c35c6a2ad15ffeff7", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/cases/vllm-gdn-source-contract.md": "7f9ebe8de7e55d3db2a119b6a56e15c37448fd7d4e022a47122a143206d31687", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/metadata.json": "c86f93f4eacde789e5438327d85b1de0bfe623fb87acad49306e47b7e8ef1261", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/akg-affine-tail-guards.md": "113deb2db10b171db3425bb3f1792bee763706b794c8cc2e222b4cc0d0114118", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/causal-conv1d-contract.md": "b3a6245cf5e9deeba0dffd4a15ddcf97da6a4315f4d3131921779438832663ad", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/hf-qwen35-gdn-binding.md": "848d3c99b47ef711e8820bbc4f6bcbd1db7211197811c9d855201025448d806b", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/hf-qwen35-gdn-source.json": "df3f4650b5cf92d4fd3d5a4cc8aefb91dd4b0c2affaa0c873138d5651c50e6bd", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/licenses/sglang-LICENSE.md": "1495e1e757ef4d0925a2350563cf5754bb23c51701a8ec4fb3c5cdcbedae6747", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/pplx-gdn-caller-context.json": "0219fc9ad785da4e638c1680bc9eaf28672aa32313824f52bdcaed61d29bca87", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/sglang-gdn-causal-conv-contract.md": "c9f27b0231ddec3d14d6fa0831d1494ffd8e11bd8ad704e04be3bc4a4ffc0e58", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/sglang-gdn-source-files.json": "4c7ec2cfd2c29297e185ce09b4d9b2040fbe3635943c112f9ebb71dca8ab381b", + "src/inferrsi/data/skill_library/methods/kernel-writing-guide/references/vllm-gdn-causal-conv-contract.md": "eec09a6e95983c46b67d5f066d34419c17819899f5d8e3c65f2f163f2ada0fde", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/SKILL.md": "dd275a0576e827353963aae7f0b09494d60d0b9a4a2884fe575c85249fa3131b", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/metadata.json": "4a61aab6b9984dacdccd657c17f2d959b3a6ffe74bfd2f1677438f3bb8f025d3", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/references/papers-20261015/INTEGRATION_NOTES.md": "157e74ba180426b279b548a729769f152bf18f9a78ffca4ebfcaf26b7d0c5292", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/references/papers-20261015/MECHANISMS.md": "18bb2f5d7e52773c516420a142edfb531d0b9c822a2934d60f3234ac1cb9d40e", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/references/papers-20261015/NEXT_GATE_LEADS.md": "16a264c7159f9c2c700ce8ba46e63f3e636b277c987da4970f6d2fa085fcb053", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/references/papers-20261015/knowledge/adaptation-interfaces.md": "5e761957cb5ecd93926e6ffc13deee7c830c6e8f0ee3c3846e9dd3b50dc74446", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/references/papers-20261015/references/source-notes.md": "54d83c3713045d59a48821bcf93598374ba4a630e3891ad39498f919317c4fb8", + "src/inferrsi/data/skill_library/methods/optimization-search-policy/references/papers-20261015/updates/optimization-search-policy.md": "d3db44fa9a6831b86a02c638b323ed943e69fe256866213f10d68c72d762879e", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/SKILL.md": "c5f78961c23e3c8d659f5675b522518ab06e1f2a8ea8bc74c5d428ffb41693d5", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/metadata.json": "60b5b24ead590b0fb222398fba47822bf6723690da683e256a450bb5c0eeb806", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/INTEGRATION_NOTES.md": "083e462e0a204dce599362d46712fcfb392d053c5cda56216e22e28d4b8fa0fa", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/MECHANISMS.md": "742c249082ceca230326f4407a40130fe624553b796ae5a157a8a4c15a7e1398", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/README.md": "17b2d1c7c14124d59ac8a0d5ad4200ad2803d991e784a1a98cd97188cc364999", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/READSET.md": "66459ce393858b2b2160f1e2973373bfc4b9902a12644631934b4ebe3140296a", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/STATIC_CHECKS.md": "cb0aa7d148352ebb7b1678fc42a557a099575054716a341dfa25b6a998029064", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/cases/decision-cases.md": "781a675a6533e0a18c044aaaee0d010da7013b6504654b8b8292a35176db801e", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/govern-optimization-experiments/procedure.md": "ce036a4d8a0908da204515c47e2ff9623548d09de264fa65bd58fedce52a78a0", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/govern-optimization-experiments/references/source-notes.md": "f9a8254e45473ddb2b73e576957b6d3db83c62b99dff1922f4d1e606e569559e", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/knowledge/bounds-predictions-and-decisions.md": "5780d6eb5257612ec45deb94f85f334a6ecabf7e466d1678706041f6549bda79", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/redirect-cross-layer-optimization/procedure.md": "6593a63fce9c474b515663a560c94b7df048dc5f6e77a95b8e54e4a64cd10a09", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/redirect-cross-layer-optimization/references/source-notes.md": "6ff3a7bc31f1172db92aedaf7df1f1aac688bf769227b583a4cd82bfad52da67", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/references/agentic-kernel.md": "7190573b85f94a4391bb0d887ccbd37a31b3f08bb0531114ad7afd72fe1567a7", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/references/flashvector.md": "3926369acd88ff3c370bee5718e74dd15f3219c3e4f6311095e30e917bffa4cf", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/references/inferencebench.md": "21f47111197a0b7f8d6384ea918d139dc8318a62ca3313ce060048271f50b639", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/references/prior-coverage.md": "35d47ac078591221fcb666219bcd824f9400fc17aafecdc0499d8336f7178238", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/papers-20261015/references/vidur.md": "d38602af5219f5feeb49e6cd6bf53d66098c77fad141dae676f1d8a6743cf25d", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/roofline-contract.md": "419ec4bcaec45ac579a133bce083d4f48779f26e664d7a86f720fa65f343b1d1", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/references/roofline-example.json": "597cd3205df043cff3ae9d15924c77934e8d8eb300c00c4840f6bb2921f90faf", + "src/inferrsi/data/skill_library/methods/performance-ceiling-analysis/scripts/roofline.py": "524de48a6764401695fe1444f1fa3d38f363069b0cd2fba4715a86ca4b28a5d4", + "src/inferrsi/data/skill_library/methods/plan-activation-residency/SKILL.md": "542d8a1e6963f5019986e1fbd79d3a247a045a51487c09313026087ac457c15e", + "src/inferrsi/data/skill_library/methods/plan-activation-residency/metadata.json": "c6acae57d70190cea0e18c71c79127962181e58169e011df75d8635b3db4daa7", + "src/inferrsi/data/skill_library/methods/plan-activation-residency/references/source-notes.md": "5ff52655cfd06fcf970ed2a7d4d4fe1c31115b102af2d41497de0c74848ed2b3", + "src/inferrsi/data/skill_library/methods/repository-evolution-analysis/SKILL.md": "61bc684d67d6c0876c4956057f11c88802cfc4b771553d00411634d8ea226b3d", + "src/inferrsi/data/skill_library/methods/repository-evolution-analysis/metadata.json": "98ef753a0e74c46f59a69ae267bdc0a5d293761e6f27edc1822fa8bd4548c4d6", + "src/inferrsi/data/skill_library/methods/repository-evolution-analysis/references/capability-presence-audit.md": "c21eb4a6aabe811a49a6540a34c54dbcfdcf7efae3052a79b54034c7838026a5", + "src/inferrsi/data/skill_library/methods/repository-evolution-analysis/references/rtk-consumer-path-transition.md": "a70b1d128fb5e0ac12292a290d624f218a0831d7581fe8980b62661473e0f2b7", + "src/inferrsi/data/skill_library/methods/skill-evolution-playbook/SKILL.md": "9cd37f21fe0d862069e4798edca8a04d59f8b840e55d521901594a63dddd9ba3", + "src/inferrsi/data/skill_library/methods/skill-evolution-playbook/metadata.json": "92b36338b9257e2e41b95e4370694d7de52ed84bc7971056b3bfced07b0993d8", + "src/inferrsi/data/skill_library/methods/training-input-pipeline/SKILL.md": "64bd2c6b795d966045d1d3cca55976d3d49b08b06df7c7e06a70c2824cf55b7e", + "src/inferrsi/data/skill_library/methods/training-input-pipeline/metadata.json": "80659099fce6a6ec05e9084b75452c877a5812e30f60a78f31ef8c7efcdc1bac", + "src/inferrsi/data/skill_library/methods/training-input-pipeline/references/sources.md": "60e0f3e88655d8e1d5eb4797f39ca4370deda01614f265b8d2ea4559d8ac020f", + "src/inferrsi/data/skill_library/methods/training-resource-budget/SKILL.md": "bdfa5a4ef37d9f303c3a23cd6f98c21137b97ac5ed58e0ed5fac6d71d33e52ef", + "src/inferrsi/data/skill_library/methods/training-resource-budget/metadata.json": "d42b614af9cee6ee0d4a25dc5d57c7b98438feed1e807a7c9f1755109a86e9cf", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/mindspeed-historical.md": "eb97f935ed30517a8fc9edec5e9cddc04f5d679d156c16d75bd29c534593360a", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/papers-20261015/INTEGRATION_NOTES.md": "c55c6ad2131ef788866411dcc7056f221420ebff30c95c6bc919b09a4818cb73", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/papers-20261015/cases/paper-grounded-cases.md": "19bd25b1a944adb2351ebc6b1d795150ea033041a44f6cc261e881677812a101", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/papers-20261015/knowledge/offload-delta.md": "f8740fc5c8bbbe5ac13ff1cfec7ca499569d0b46e8cd56cf1f5a44c3a5e72242", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/papers-20261015/notes/training-memory-scheduling.md": "9aa6d3e01452dff95c8a8940ff62ead8c146ce215c9175b78c9f2ef508a7b2de", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/papers-20261015/references/source-readset.md": "2a5c166767f56fa47e7eba7386f1f36da8cb73702e5b5bbe14d6a456ca9ebfae", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/sources.md": "6d248f58af8b350fc66c22898988d6f451ac60d03bcd805cd6e84df5e55174ac", + "src/inferrsi/data/skill_library/methods/training-resource-budget/references/stas-decision-notes.md": "f1a993e6c4ca9a035a2effcaf5500081f227b0cc56cc885a6b22fda0041fc744", + "src/inferrsi/data/skill_library/methods/video-diffusion-optimization/SKILL.md": "fc0e7baf9913ce7448247772a1e224a9cbd827492cf9459b1f17f492b9f67b70", + "src/inferrsi/data/skill_library/methods/video-diffusion-optimization/assets/campaign.template.json": "1a37f1d136612143ddab8f0cbbf424c80433b4da5312edb18d07c0b9d87ef657", + "src/inferrsi/data/skill_library/methods/video-diffusion-optimization/metadata.json": "b27d69142dfea5dd2820170475c2bf6cced2d5eefd1c43b3413c41849af0fd02", + "src/inferrsi/data/skill_library/methods/video-diffusion-optimization/scripts/evaluate_target.py": "9e84df051e03d567746fd73ae7243efb2f3c5ec806fef824d3c4d42a8eb9704c", + "src/inferrsi/data/skill_library/methods/weight-loading-optimization/SKILL.md": "a1bf0e2ec066d5f30225c6cc5fb603f830f48eb5e2aee3fc3d084ed9d8aebe2f", + "src/inferrsi/data/skill_library/methods/weight-loading-optimization/metadata.json": "6df47ea943e42a11807c54869774957ac2383266120caad730f788207403581c", + "src/inferrsi/data/skill_library/methods/weight-loading-optimization/references/fastsafetensors-transfer-readset.md": "5a39f14b102b0cee304541e011aa31e44e6b13527d1bee9987c3f3b66c064d3d", + "src/inferrsi/data/skill_library/methods/weight-loading-optimization/references/flare-preparation-boundary.md": "1d7922785a196bdbafdc9791fe79428465a5acc0292ca8f99446f8c764b35454", + "src/inferrsi/data/skill_library/methods/weight-loading-optimization/references/llama-loading-readset.md": "6c640f28ee3f0253a17b81461c865cb9f947367002cb75bf72550c4572d02e97", + "src/inferrsi/data/skill_library/repositories/afd-plugin/audit-afd-p2p-exchanges/SKILL.md": "a46110891eca860915e314d6921a22856d631453b22b17837fe30262d6780535", + "src/inferrsi/data/skill_library/repositories/afd-plugin/audit-afd-p2p-exchanges/metadata.json": "4e6100dfb9fc7bc00b19915f4fd38ad509704f2a609c658adf4d632d4e05b6c1", + "src/inferrsi/data/skill_library/repositories/afd-plugin/audit-afd-p2p-exchanges/references/afd-plugin-LICENSE.md": "0e8566ea362276878e1f38f97da49964dbea301c15d4aa9d727f97a4c39fd943", + "src/inferrsi/data/skill_library/repositories/afd-plugin/audit-afd-p2p-exchanges/references/source-notes.md": "5073d87450cb60d1b245308dff8807e73749c07de976d50f2fa26694fad81a72", + "src/inferrsi/data/skill_library/repositories/comfy-ui/LICENSE": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986", + "src/inferrsi/data/skill_library/repositories/comfy-ui/SKILL.md": "c993bd6ff8e9b5f82f39f175ec8242341136e4ee0808af414e1d94ad3e196c5e", + "src/inferrsi/data/skill_library/repositories/comfy-ui/metadata.json": "74742851a002a51c208362cdcd2a59fdab5d1734d8492b1f93fbec3cf21e0841", + "src/inferrsi/data/skill_library/repositories/comfy-ui/references/graph-cache-invalidation.md": "614c9a4e6943d24d7d7be7d632682ce8b1dcc239124a37d9dc1d487113772eac", + "src/inferrsi/data/skill_library/repositories/comfy-ui/references/model-residency.md": "014c68386e7cdfdb7b4f566836e8b2ff61bd5a5a506e7b4723f83fe80c5d4de7", + "src/inferrsi/data/skill_library/repositories/comfy-ui/references/repo-provenance.md": "ca996ef515af42a3ce304747fa3f12a31c00533deaace5ba2ce21aefa0a62e2e", + "src/inferrsi/data/skill_library/repositories/comfy-ui/references/validation-boundaries.md": "1913dedbeb558d872d6a0e015cc11d822910c3cb259a236db29fb60ad8a64263", + "src/inferrsi/data/skill_library/repositories/deepinfer/bound-windowed-attention-replay/SKILL.md": "4703beb6e5194ef2ff2c0b5ec69f64e35417a4bc0dfb50a10c80a920b77ef3b5", + "src/inferrsi/data/skill_library/repositories/deepinfer/bound-windowed-attention-replay/metadata.json": "014be24d0e669f4acbc0717dc323eec784026cf185186619d5a19d6d84496131", + "src/inferrsi/data/skill_library/repositories/deepinfer/bound-windowed-attention-replay/references/source-notes.md": "fd917bd5ac80bee9c9f4525f8e0300f6d67dc144e2a16632af42a67f3d53d098", + "src/inferrsi/data/skill_library/repositories/deepinfer/bound-windowed-attention-replay/references/validation.md": "60e71e70c5519bcdf6c171eec2be2f342e8801bedd746d6005f11adc646dfaff", + "src/inferrsi/data/skill_library/repositories/deepinfer/budget-speculative-verification/SKILL.md": "f157562d1edc905cb4fc07246567e3c5b844efb9fbf5fe39f0d40553a1b1a307", + "src/inferrsi/data/skill_library/repositories/deepinfer/budget-speculative-verification/metadata.json": "4d68bf4c1767eaee12ade963bbd551d0e61d1bcd81a984bb02fd3aae46965919", + "src/inferrsi/data/skill_library/repositories/deepinfer/budget-speculative-verification/references/source-notes.md": "6fa955022f16cd598f44fd6521901d1cb868b06cec545cabe2b82769a641b5d6", + "src/inferrsi/data/skill_library/repositories/deepinfer/budget-speculative-verification/references/validation.md": "673d93f6700052974b340fab25b3438e0e6344960569ac9abec7d7720f662288", + "src/inferrsi/data/skill_library/repositories/dwarfstar/LICENSE": "4a8a1358f5b048627d71e4988de0bafd386f4988991929629e6cb9e29b7b9b2f", + "src/inferrsi/data/skill_library/repositories/dwarfstar/SKILL.md": "a04a252ecdcd4710a3273595f4bd1f3eb8e24d5bb1bfe005f058a78388254dc9", + "src/inferrsi/data/skill_library/repositories/dwarfstar/metadata.json": "e1f0c2dc3d7ea9278039c2e8c3e8ca4f8e3aba33504b7784d628e903f0b5fc8c", + "src/inferrsi/data/skill_library/repositories/dwarfstar/references/repo-provenance.md": "7d72f9c85ee60fe003f5f5a585b52e9989ebcedca625b584fa39a976d4433998", + "src/inferrsi/data/skill_library/repositories/dwarfstar/references/repo-routing-metadata.json": "8e195b420b67151932af5f435c284f49677cc7863e650c83cfa9e762fd00db0b", + "src/inferrsi/data/skill_library/repositories/dwarfstar/references/source-identity.json": "a38fe07d003accd83b7626d7e189f7b49b4b73e7a223e4d441b0e33add5d9c91", + "src/inferrsi/data/skill_library/repositories/dwarfstar/scripts/request_template.py": "62e4cde002f2aebeaddd63e6e1f04fc727c271d2cbdaa00856158baadee5340b", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/qualification/SKILL.md": "3b8eb25f6b8e4729b48cce5619daa24422bee251f119ea7f9cc1faf0097ec6bb", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/qualification/references/troubleshooting.md": "cd832ab2a420490524251a042c0c83c2f75bbfdc12e914b91da8f91edf6860e9", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/qualification/references/verification-contract.md": "2801f6683c2974d1cfa5b86c6268fd33f175f1cbcc9ed85c932e9b3504fac3e1", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/runtime-memory/SKILL.md": "ad1d34d429baaa41fb72c94ff4e554b26b2f5b701cc4deed03f1d066c7d3fc52", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/runtime-memory/references/memory-ledger.md": "765915ecd3a318cc7908658d5a79bbdff615fc24409501febcb7ff8af65a1050", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/runtime-memory/references/troubleshooting.md": "42e4785b7d3c1375efa324583897327f28ef76c0b7788092da92095bddeb1440", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/serving-state/SKILL.md": "71c27212847146376d72e6cc6d22abe2f7eed56402c5917cd7dfcda0b2aa5982", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/serving-state/references/state-contracts.md": "8f74a07c947021e3069468268f6b5aa2548a17db518c5c0505b84dde73a1f31c", + "src/inferrsi/data/skill_library/repositories/dwarfstar/sub-skills/serving-state/references/troubleshooting.md": "c9eebe4109d418c4dfb9bb2425c145ebc1a52da9b665e0556149bc31a442e2fc", + "src/inferrsi/data/skill_library/repositories/flare-local-inference/audit-flare-session-lifecycle/LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "src/inferrsi/data/skill_library/repositories/flare-local-inference/audit-flare-session-lifecycle/SKILL.md": "02a5f7c18e44201215ecec17c6ac96b27be9148bcc189df287f39d1b372b7721", + "src/inferrsi/data/skill_library/repositories/flare-local-inference/audit-flare-session-lifecycle/metadata.json": "58716737446f46bd1de77aa323c5652f97277d44dd952c82b42399b2cb769b87", + "src/inferrsi/data/skill_library/repositories/flare-local-inference/audit-flare-session-lifecycle/references/diagnostics.md": "0908a0eae53a2e10775a8b6ee3e3944b2fa410174402b5a1a8c98eb674dd4b4d", + "src/inferrsi/data/skill_library/repositories/flare-local-inference/audit-flare-session-lifecycle/references/lifecycle.md": "107ebe3c22e5dba8007c3b8ea61149f10bc55c51b557a4230f3e5de859bb0f7c", + "src/inferrsi/data/skill_library/repositories/flare-local-inference/audit-flare-session-lifecycle/references/source-ledger.json": "61e51a97ffd7c1fa7866bdd440b024d0c5e0065635ac8d0ba53d2c69c7f9e470", + "src/inferrsi/data/skill_library/repositories/flare-local-inference/audit-flare-session-lifecycle/references/source-notes.md": "fc7ceb819b91ef1731d8b7783f543c92ef6bb5c97ef5f897c055824f8a560168", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/LICENSE": "663e51edcd9a3a8f858018ce6924ad2895a24c269c26c39ad75325bcd0f7e5bc", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/SKILL.md": "fdb4d9483c6efa836f9e59617da605fa9c2186e11c2041b05d5c81850ba0475d", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/metadata.json": "fe626a77af3f084f36fd73ffdb6f67976e7dceeafb94ba22078ef03c3a96cfae", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/THIRD_PARTY_NOTICES.md": "a0d77db7d2aca0eda811ab3c386cc32b3143f2c2609a042cf4642954f0f6fb09", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/minimax-h3-apple.md": "57ce01754ba96c378f13a91305ef3d418b926f99b2753f0af99315572bce063a", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/minimax-h3-weight-inventory.json": "fbaacaeec340d3ce893556ee864405a0746af4d13530a38cb3d5aa9d60929271", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/phase-residency.md": "2836a550eb2be7f5a862f51ec7b135ebd9715bf3c4faa84a7ecbc9d9c11f5d8d", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/precision-and-streaming.md": "7e166c89193f4c7aed852ec95346a2de2b5008dac002e2e1862be1b3e57f6093", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/source-identity.json": "730f8dd23648a3f8f47b9726cc613d893a79d1817d515eec609a9b06d8a9ff90", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/source-notes.md": "7304bf9369efc157dc7aa40686dd828cc14db45c49442e908b3d3cc4b329eb86", + "src/inferrsi/data/skill_library/repositories/h3-c/audit-h3-runtime-residency/references/validation.md": "0754873a758e048480938314894e25b504ae0c269549312e7f8e6020d83fe294", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/LICENSE": "663e51edcd9a3a8f858018ce6924ad2895a24c269c26c39ad75325bcd0f7e5bc", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/SKILL.md": "e5205de6eba52b3d1693666af755640697717e52ee7834e1ae30e4071b208d54", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/metadata.json": "86a67bb56110c3a9e191e0ff576194162e960cbddca0a99c593ea7aef8df8a4e", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/references/THIRD_PARTY_NOTICES.md": "a0d77db7d2aca0eda811ab3c386cc32b3143f2c2609a042cf4642954f0f6fb09", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/references/preflight.md": "5cf745005914c74b18a09f127d1d02ce0cb64f6cd7899501ce3cb40938c42a4c", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/references/repo-provenance.md": "6a4c14207223dcc2584f7133bd14ff4590c2258fc2bd44f3721b6bf63e3e35cf", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/references/semantic-contracts.md": "3f518160e8a227272e698486e6c67acd364af0d74755103ffc868b2d66052c20", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/references/source-identity.json": "b0e63197725c6a1baa4888ca3c48ccd4926b6e6f0f8bf781ae76ac97ffd1ceb1", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/references/source-notes.md": "f9430103644eacd9c55ace6f84d8587fc0bc063bfcd9cb60e6045b139a9fee05", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/references/troubleshooting.md": "ed552d87f9fb9fb2c56de64df61f3fc6e2333cb049116cd0736f784c8a327612", + "src/inferrsi/data/skill_library/repositories/h3-metal/audit-h3-metal-fasth3-semantics/scripts/audit_fasth3.py": "05bfb9348cf88a76f4fba8bc8a600fe54246d83a98c1685bc4847ace28e2fbac", + "src/inferrsi/data/skill_library/repositories/husky/SKILL.md": "ac86afdabf9adffb684cb635971934438724bdfde8628ec549727ea23c40cf3b", + "src/inferrsi/data/skill_library/repositories/husky/metadata.json": "9b720bc6fcb65b6dbddba36d6187b4bee86346a1bc633f55a75bd43dbe4fa04e", + "src/inferrsi/data/skill_library/repositories/husky/references/author-report.md": "4c1351ca42b2535a7c03c4da87706040650ef10d86eadcdb496e881a147fc0f7", + "src/inferrsi/data/skill_library/repositories/husky/references/repo-provenance.md": "37de912e2e2a36b44233560e6a8368b994428bff587ed4f04b1cb5fbaba0a9e7", + "src/inferrsi/data/skill_library/repositories/husky/references/source-availability.json": "d3523e53c89d4aee5bfaa17db84501aa4c4eddd59bcee486df5d48d3aa48173d", + "src/inferrsi/data/skill_library/repositories/husky/references/troubleshooting.md": "3948711437d25822d389dd857c72dc7fcc15727c9048d2e3eae3317d97aca6dd", + "src/inferrsi/data/skill_library/repositories/husky/references/verification-protocol.md": "83c5a966ed3f721b412b8d8417af8336c5a8c1e46044a888720936bf2f1deeab", + "src/inferrsi/data/skill_library/repositories/husky/scripts/audit_evidence_card.py": "291e62701ef7a37a5bfab963ea4e20abb94245bc015584223a101f18b1490895", + "src/inferrsi/data/skill_library/repositories/lily/LICENSE": "b9e2b50a48a09fb39dafa71ab1a11a6e87389addda17faa99d55f5f74a0001ac", + "src/inferrsi/data/skill_library/repositories/lily/NOTICE.md": "7a01e666044fb8aca1fd88c636bca43bcc95b8b1fecbe101dce4c7c80fbb5759", + "src/inferrsi/data/skill_library/repositories/lily/SKILL.md": "db815674d5d36964902041d310d3df844d00ab2e6bef0ce4b72ed2696ab2b9aa", + "src/inferrsi/data/skill_library/repositories/lily/metadata.json": "6d9d54e84f957881cc26894eb82ae666f106cfc6c505924f9a6fb6b35eab457f", + "src/inferrsi/data/skill_library/repositories/lily/references/repo-provenance.md": "96182f6cb3666f89adf1aed6e216c0a84ce3a04a0685a4257e286100ba8ee367", + "src/inferrsi/data/skill_library/repositories/lily/references/repo-routing-metadata.json": "f2f3becb51056e03081c7c4140e19572a6318c3d63015884df56eb49d38a00fc", + "src/inferrsi/data/skill_library/repositories/lily/references/source-identity.json": "4595559c11611c855be150919fca3eeb89e7f96c7a8dd133b9f79a5cd8e05e62", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/model-runtime/SKILL.md": "dc800f07fa0e82213483c7b848dea95d609386296006bfec7a34cbb194a83de6", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/model-runtime/references/model-and-memory.md": "d5a862303d646ebbaf745818caed8f96c7323cd442cb6d6e2aae00b0361080a1", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/model-runtime/references/troubleshooting.md": "b32fab02b561c3ab4e683abdfa80cd4a8f929c514147709febaa6b6d1df65909", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/model-runtime/scripts/screen_config.py": "5961bb6f31ceca43473683127b37faee268234040a013ae49bbb4898eacb6f04", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/qualification/SKILL.md": "0231b50b9bebb68d0fc5f2ce19aa7c6e5ffd498d8eef4cc00d39e82908cbbe91", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/qualification/references/troubleshooting.md": "01607534ce1f09fb046255c78f8c1c436aac61874b93b65a9d62f3eb480496c2", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/qualification/references/verification-contract.md": "6934779f67b878bf7cdb5f2cbe461f6716c243c662a29272c6db37f64cb317c7", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/qualification/scripts/audit_benchmark_record.py": "59534f58d46ad438c7bf88886a9b05a8716c922d817f2d9c58ff1b71ae50ee85", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/serving-cache/SKILL.md": "7e062ff9af76125ef08c98b4465e0439c66e9e237f0c39ea0285005cc5496cfb", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/serving-cache/references/api-and-session.md": "7262bb077c24f2f7549d450473ec7944829940d09cca89db9c12f37ac90d5db0", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/serving-cache/references/troubleshooting.md": "6e2f36d2f7ab9eae665d87a676e34c0ebd2f46f3df6fa5f2e589a306749a87b5", + "src/inferrsi/data/skill_library/repositories/lily/sub-skills/serving-cache/scripts/request_template.py": "d6b00c9f0b38c7fb0a0e52e396993a832542ea0aa6e2456026fabc0c39a4d33a", + "src/inferrsi/data/skill_library/repositories/lithos-metal/LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "src/inferrsi/data/skill_library/repositories/lithos-metal/SKILL.md": "4c71ba2f26c275829466bba2412738aa27799842e642c75cdfd36d9ed8713f7f", + "src/inferrsi/data/skill_library/repositories/lithos-metal/metadata.json": "ea2d4e73e33a49433a2834d19489653f828e56f69c4975cc32cf508176eb24ae", + "src/inferrsi/data/skill_library/repositories/lithos-metal/references/mlx-license.md": "ccfab7ccb2ea306f71531c8ca77bb55507606cd90768b1e32b8b52ab5b48cf01", + "src/inferrsi/data/skill_library/repositories/lithos-metal/references/notices.md": "b2c9d2481ef2c9d16b3240c951ae65db417e5d309cd06b7917db9d84fe175886", + "src/inferrsi/data/skill_library/repositories/lithos-metal/references/package-api.md": "4f3ecfabafb2a15eddf21ccf964b8c37635bbb7862418a2c404e7049c0fa2898", + "src/inferrsi/data/skill_library/repositories/lithos-metal/references/repo-provenance.md": "c0c7c3dd45eab0d55bcf154760156db58e8e365f9cfb2c6bd246dd6a06f3ef3c", + "src/inferrsi/data/skill_library/repositories/lithos-metal/references/source-notes.md": "110dbc995c7fc727632017d4c26c71df7ecf12d4df5d89df0cd4afd75c5892f2", + "src/inferrsi/data/skill_library/repositories/lithos-metal/references/troubleshooting.md": "1894bbe1a18018f81318b11e2150201ee97f3819f84a7a81f3cf5fb01549c165", + "src/inferrsi/data/skill_library/repositories/lithos-metal/references/upstream-notice.md": "cd80bddd6b6204dbc61c6ac762ed206c73d9264755d9884383d0860de29d185d", + "src/inferrsi/data/skill_library/repositories/lithos-metal/scripts/inspect_contract.py": "f8365f87af2135fcf0a2c8baaefac563c30989282fe080a02d958a37a215515c", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/compile-fusion/SKILL.md": "e0d927763f3774440abddefc45913528946cd29f7f089766fab47b212f9b6693", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/compile-fusion/metadata.json": "b3ff3702531e023b49beded950151ec1256aab4fbf4c02e9212ef0202d3ad72e", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/compile-fusion/references/mechanisms.md": "6173a8b73ec5138cb12791f108f3d5d83278a117d443d48187c842e16bdc6eff", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/compile-fusion/references/troubleshooting.md": "f18ca9324d9a80f2ba327a1ad4ccf84a01049080366fe12410f2800d5f178232", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/generation-state/SKILL.md": "bd8cd27ddb18a04c9e2b31ce9f16e676864133e160267473979de828b1915f63", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/generation-state/metadata.json": "dacba1953fad82b32b98f76bd48009b04109f1ae446cc68be522b02a64306157", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/generation-state/references/state-machine.md": "d812ad31d4e343539119cf82f8ce241fe14c691dd73398048893cc5de3ab8e22", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/generation-state/references/troubleshooting.md": "7ca629e66ef3b0a67077a7d2536befef683315ad01939728a9e6e7523cc8414c", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/serving-cache/SKILL.md": "01c38c2678d6e8292a3908bf5619b332432c5f1289fd5d5a67eb44a2141adb90", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/serving-cache/metadata.json": "2fca222efac7752e29f236f40a0bc38275045826b55955687e39c64ffb69f58f", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/serving-cache/references/troubleshooting.md": "52c6e27a76547475b5c66121f873f4d2c1662c811a69da64ce85614f1bd44749", + "src/inferrsi/data/skill_library/repositories/lithos-metal/sub-skills/serving-cache/references/workflows.md": "298d27d3c748fe22774b872ed0465b707e53812379a7a538c95f25d1727fc796", + "src/inferrsi/data/skill_library/repositories/llama-cpp/audit-llama-runtime-state/SKILL.md": "95e81b6bc096a954fa73139ea5bc001d1efa6c99747161da62f012b494e5c013", + "src/inferrsi/data/skill_library/repositories/llama-cpp/audit-llama-runtime-state/metadata.json": "1d30b31dc8352fc6a8d7b8abbef8118c840e47e5b90795dae0c758bf9717278c", + "src/inferrsi/data/skill_library/repositories/llama-cpp/audit-llama-runtime-state/references/source-notes.md": "3d12a401e9decb55a2f4f3b2bfa0d360ef5110f63a0469dfe285654e78054190", + "src/inferrsi/data/skill_library/repositories/lmcache/kv-tier-management/SKILL.md": "e4b78f368d70c8abb74a935acb910414015f1aeec1b50f7a295e836822ec4b27", + "src/inferrsi/data/skill_library/repositories/lmcache/kv-tier-management/metadata.json": "c221189b8d85fac3bd41ef1c7cd560f1aebc8cfa0381c182d1d571a7169be829", + "src/inferrsi/data/skill_library/repositories/local-dream/SKILL.md": "e51fd3c71d693070abeba57ca67dcca82c7347cb94eb98f43e7c455bcacbaa46", + "src/inferrsi/data/skill_library/repositories/local-dream/metadata.json": "ab33602252d0f5bb0797c3e1f12466b55a82aeaff10cd24e42a99a5224c8e593", + "src/inferrsi/data/skill_library/repositories/local-dream/references/android-lifecycle.md": "f85e5fce39f5de5f88548fd8c21978240c810f899e03ff05ed72eb3508ee5e36", + "src/inferrsi/data/skill_library/repositories/local-dream/references/native-contracts.md": "40206892f5e421f9d8edf303870f5c4aefa3e87123537178d45f438f3d04b7ce", + "src/inferrsi/data/skill_library/repositories/local-dream/references/packaging-and-abi.md": "9a19bca59e19c3bfbfc1a15f5fc756c13d954ace367812aeb000551f4484ad06", + "src/inferrsi/data/skill_library/repositories/local-dream/references/repo-provenance.md": "0b848082c0ce893d8ae26d779c5b663d914d1a208cb2293c4a84668cdde86293", + "src/inferrsi/data/skill_library/repositories/local-dream/references/source-identity.json": "b85f028bb96a37852e9d9780b5d5052fdd9c8f3a704ad391b6381adb58291347", + "src/inferrsi/data/skill_library/repositories/local-dream/references/upstream-license.md": "41003d4a74749c0220e33dd415042164b5a1093ed401f36277234f772d22d3d0", + "src/inferrsi/data/skill_library/repositories/local-dream/scripts/screen_declarations.py": "ccd7d0d55be9a47484ec3a74498d8edef8aba55287f92287775c8d82050c8932", + "src/inferrsi/data/skill_library/repositories/mistral-rs/LICENSE": "b40bb09c7b3b6f697a8920cf9d2cb3ff8cfcf77a0fcb6d264a92842b43c4dcae", + "src/inferrsi/data/skill_library/repositories/mistral-rs/SKILL.md": "8917b30fb86437dea7508275ccce1992194d6e0c4858d537a410bf1f900953d0", + "src/inferrsi/data/skill_library/repositories/mistral-rs/metadata.json": "5e88e2ca64b848b8177336351e03d1fbcb5c495fd54217daa83710ef6faccff0", + "src/inferrsi/data/skill_library/repositories/mistral-rs/references/apache-component-license.md": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "src/inferrsi/data/skill_library/repositories/mistral-rs/references/paged-component-notice.md": "a1718d8c5a25f15e61bea98a158880e96faa5b7174e82c4e1470fbacb23a3559", + "src/inferrsi/data/skill_library/repositories/mistral-rs/references/repo-provenance.md": "fab87dacbe0a7298e42137cab7409f443ece0dfefba60961040031e36d96adc8", + "src/inferrsi/data/skill_library/repositories/mistral-rs/references/repo-routing-metadata.json": "0debda77a8f6b1b1c06176e3c2447767c1953b9fe7e4c84ef01b3ac90735df70", + "src/inferrsi/data/skill_library/repositories/mistral-rs/references/scope-and-notices.md": "938203995f5e58cd6cefa278225b2d5a3ea7dc7f07cae86201f9fc71553ac020", + "src/inferrsi/data/skill_library/repositories/mistral-rs/references/source-identity.json": "6a8c0b0834228b3a298e7e548c9d8cb774c00f661135f51c12ee613efe1decf3", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/decode-contract/SKILL.md": "73620deb4efad4681da10a07bb982e180423bd69fec3572d16ab556c530b89ec", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/decode-contract/references/helper-contract.md": "802d8af65343eeb29b0950d3c305d0f24cb7a4298628ade5f7cdcf4358c9e228", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/decode-contract/references/layout-and-features.md": "6804a771ed0dd2d8d60613d52ef87d4297af2a6445b4fe61d08adeab4be331aa", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/decode-contract/references/troubleshooting.md": "a6de920f174d6918a72093921d344c700108b0c01e1f0d09f2b9051800b1fa7d", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/decode-contract/references/workspace-and-evidence.md": "7ac5028be6fd48f9c6cf067bf832efc8edd681195f2fece67ea119211bdac106", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/decode-contract/scripts/audit_decode_metadata.py": "de28f586f27278fee25f6c96f1e00ee63528cdf746f57c83bdf367c31c0f6e6b", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/prefill-contract/SKILL.md": "21015790789933e106f6ea929fd1778d862315520b55425213c679e9b7a44e95", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/prefill-contract/references/helper-contract.md": "607449105bf3bcbcfe785dc9448a7a587c7daeb528ca63e0cd959b074a9bc409", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/prefill-contract/references/prefill-and-metadata.md": "e8a738a668a23068b8ff1907d521a3a26f7090e7a791f3a715efdb6001338dc0", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/prefill-contract/references/troubleshooting.md": "f584a02528e2249f5d12f223d8933e9d40212e5aba8dbe545261164b00ed6f8b", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/prefill-contract/scripts/screen_prefill_metadata.py": "769366c19d621ec1b42c722ed224fa154a63c3410a0cffc9072a13abd9c71bbd", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/qualification/SKILL.md": "745d88dbf6c764f64f8b31763e57bef720788830ddf17b518456323000325fbb", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/qualification/references/prewarm-and-evidence.md": "6b72ae4b4599018ce2da5c54d0c28fadcafb7ce75b81ce4c18c06a440aab6056", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/qualification/references/troubleshooting.md": "d933bea6e9e493faa8cd0f4103ea33197ace7f7f901359f8cf0d6bab2edcdb4d", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/qualification/references/warmup-inventory.md": "1e7af7d63c6853ede4232b5a12cf68aba6597c4a305015366f1c2c917e3caf01", + "src/inferrsi/data/skill_library/repositories/mistral-rs/sub-skills/qualification/scripts/warmup_shape_inventory.py": "6aa920ca1cb534dec41f5dd2d833c3e760b234ab2c6439b6c4250b8a30b74055", + "src/inferrsi/data/skill_library/repositories/mlc-llm/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "src/inferrsi/data/skill_library/repositories/mlc-llm/SKILL.md": "e0fd1accb4216191c56e7e4a8074633f36d9063727c2546e0d2eed14220d8cf4", + "src/inferrsi/data/skill_library/repositories/mlc-llm/metadata.json": "c9927e284e44aa09733424c024409ec8efc9593520418bb7d2e53ef301363681", + "src/inferrsi/data/skill_library/repositories/mlc-llm/references/mlc-notice.md": "3a7dfb37bb96ce6f5a1cc0d6d4c8da3b8a35e6ec4692647ba0a37f6155c7e694", + "src/inferrsi/data/skill_library/repositories/mlc-llm/references/repo-provenance.md": "423f21e1de6d7ab2e11c0bdf540357efde025ae4535bdf76ed9770b1a59ba35a", + "src/inferrsi/data/skill_library/repositories/mlc-llm/references/repo-routing-metadata.json": "5309c27e7b60c4fe7aaef28bf6911e7e3c936b58b1a907aa8486bf0e40b4c0d0", + "src/inferrsi/data/skill_library/repositories/mlc-llm/references/scope-and-notices.md": "8c573c234f44a0808a731774921fb5228fc0844cd238496a2c4d61d0120bdc79", + "src/inferrsi/data/skill_library/repositories/mlc-llm/references/source-identity.json": "75e91b0f7fdac12466e62eedfb49baa6f1b3016111d7479aa2b04e5c799454b2", + "src/inferrsi/data/skill_library/repositories/mlc-llm/references/tvm-license.md": "e62264b483aca7a9f8c1ac69388b476971b43975ced90ac11dbd9e9c530edb46", + "src/inferrsi/data/skill_library/repositories/mlc-llm/references/tvm-notice.md": "967cd2fb97712c43271e2b1c4f636c4d8823898869f0f76f65bf8a3232584f0f", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/artifact-contract/SKILL.md": "933fdd05ca853f47e3ace024cf1e08df7511834c31676851c28803b6dcb1c681", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/artifact-contract/references/contract-mechanisms.md": "82187f4a1478352c68a5690101e9798973ef63f9b6d717e06188b03a1832bb8c", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/artifact-contract/references/helper-contract.md": "48492a36435ff1340a4db4e0959f052cd72683ced26bb8ab35baa84bd79ccd7b", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/artifact-contract/references/troubleshooting.md": "41b002a31b031a78ca372504de4c9cccc9353d6d80d989b8d62e56260c291e2e", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/artifact-contract/scripts/audit_artifact_declarations.py": "874a16cb16d75a14cb51b4fbe442f4fac46feb21ac242063f5f845a0fcbabaa4", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/metal-build-runtime/SKILL.md": "25dbd48f4fe84b7d759005d04a2aa9db33da987cafac7975a148e62cc9efae34", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/metal-build-runtime/references/helper-contract.md": "5428efd6dca0654a58e9e226805e15c9a9f1b3f1ef60db234139985d107acbfa", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/metal-build-runtime/references/modules-and-streams.md": "56faaf149f95ee821c242ccca8115a6f3b166d34392499798ae8532fcd10372d", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/metal-build-runtime/references/native-evidence.md": "133322e879fd9010a7513afd278d937838aa2ec97d593ed11d324cc59793374e", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/metal-build-runtime/references/targets-and-export.md": "547eb8e56af4f7b58415eb58c338ea1a33ff8edf8b58fa523700947dc7e04821", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/metal-build-runtime/references/troubleshooting.md": "e392b8329ed183bba5fd79fbd260c3fbfb389016ee71880a957741e71a0d59c0", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/metal-build-runtime/scripts/audit_apple_target_declarations.py": "d5bf16f7def4cfe28b143a700ca45a9636ddaeac12ead04cbaecdcc8b4b71aa5", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/runtime-kv-limits/SKILL.md": "6b4914cb60831c07d4c748162251c49fc16b229e0d62b4c5a5663719c45b16de", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/runtime-kv-limits/references/cache-lowering-and-evidence.md": "a118f5bc584ea885e8c573978eaf1e32d448910860b8135196c5c1acd42aee05", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/runtime-kv-limits/references/helper-contract.md": "da33306472cbda5a33605b80fe52d6cb1fa886b3b7eea13adbdf0ce8a6024c66", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/runtime-kv-limits/references/limits-and-workspace.md": "77105db95de2b8ea27ed6953b5441c8af061fb745ddb13d3904f8773fc21e879", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/runtime-kv-limits/references/troubleshooting.md": "b89255fc04507185bc8bcf74de779730b009b12d13bb38ad0193205dfed8e921", + "src/inferrsi/data/skill_library/repositories/mlc-llm/sub-skills/runtime-kv-limits/scripts/audit_kv_limit_declarations.py": "d82a6dda5f5931eb369003a5e1f419bfbdd82304766a18be8ea1e1849e26b77d", + "src/inferrsi/data/skill_library/repositories/mlx-lm/generation-cache-lifecycle/SKILL.md": "bf1177cb9985c12a9bf11edb64771018e1e314c4713920de8fd4a989ff70115f", + "src/inferrsi/data/skill_library/repositories/mlx-lm/generation-cache-lifecycle/metadata.json": "d86cecb615e93ba0f6be09d1ead102cd5a17068c07e1be2549ac5cd8f7519279", + "src/inferrsi/data/skill_library/repositories/mlx-lm/generation-cache-lifecycle/references/cache-stop.md": "bba6b5c73261065309cbcf11b1e591eef48916f0c79ceaaf74d98a9fa96b0992", + "src/inferrsi/data/skill_library/repositories/mlx-lm/generation-cache-lifecycle/references/generation-batch.md": "f16d3c57d45e63bcaffd3871aa41c76972ee11f7dbf1e12b45d9b170303cad9b", + "src/inferrsi/data/skill_library/repositories/mlx-lm/generation-cache-lifecycle/references/source-map.md": "91d26181f246307f2113f94b12ac9587d689b654dcd216e9f14b11cf5ebb650c", + "src/inferrsi/data/skill_library/repositories/mlx-lm/generation-cache-lifecycle/references/validation.md": "73b5dd347017baba519ecc85415aead9993c1751d116b9ba4f07689f58c5f783", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/LICENSE": "7b1d86acac816ce8192209d7e01141c129b4d48d474c15cc5fb4af62f497c323", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/SKILL.md": "501f73e7b327b04b6b80501b42b20dab1ac15c875817e6f4c4b66fe3e69b4fc4", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/metadata.json": "014131f345a28d3367313ed5a4cce858fe4c93d4d47a5f03eb89f609592e032f", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/references/repo-provenance.md": "f1b15edf89c597db0c3fc0bff7db6b2451924ce9273c39623bc0cbdccb568d31", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/references/repo-routing-metadata.json": "8fc804347771cd768a7ed027f2041d96c9832fe5f8c5869e6593a3021b1bef8b", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/references/scope-and-notices.md": "18e56805a8f275d35af3d8e42f3aa1525871b43400921a5d2dca4897c2047214", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/references/source-identity.json": "518da7bb64f22ff8ee6beb0e0f0579e7cd0da2fd70fa69fd8288294b0c08ba24", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/gated-delta-contract/SKILL.md": "04b97959b4e207380a06d932e9a557954a9fb9aa880c243439da6d4a981854ed", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/gated-delta-contract/references/helper-contract.md": "1358531257e00c0f9fb2eb9fb7a40f9d749f5435c90168c8923b6646353dce6f", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/gated-delta-contract/references/recurrence-and-state.md": "ff0ebbeacb8219d93a890418d18bdf2856e6326d67f974a7050de3a0e5a3c5a3", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/gated-delta-contract/references/troubleshooting.md": "3bbecbf91b241e7b37b3e8c753bf3fbcbdbba0b0f4d0ddf2f65eb653007f6cff", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/gated-delta-contract/references/verification-boundaries.md": "21b6fceb692f29b410dc967f82e31d0d082904cea827443ffc05f6f940191dfe", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/gated-delta-contract/scripts/audit_gated_delta_declarations.py": "3a256c37c867866e49dfdc2893cbb3f32d061e389fe4395555eff899bc0415ff", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/generation-lifecycle/SKILL.md": "7effaa20ddaf32e3b4008c95888ccd09bc2bbc3bb5ff17c710f989b36be49535", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/generation-lifecycle/references/evidence-schema.md": "d40e44910d8fc43ee3c731735902b1c1ba506c2ae972bb53dbacfaf37e38509e", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/generation-lifecycle/references/native-evidence.md": "3e9a630a30932989faea5f52b347318cb94c73c7d4d6c81c0465ccaee2818671", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/generation-lifecycle/references/ownership-and-termination.md": "56fdec7ebc89b5c217c7e5c203886bef1d3c2eb5794852897bdb5941ab1db2a0", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/generation-lifecycle/references/troubleshooting.md": "de28b8ca9cf95be2a4e5762f938acfadb6d4b53459dbf86df4b2b2ec64ec347f", + "src/inferrsi/data/skill_library/repositories/mlx-swift-lm/sub-skills/generation-lifecycle/scripts/audit_generation_evidence.py": "2aba6caf42ca1b3fc55299fd96419af8681c37750c21a7ba75205a43baa9c7b1", + "src/inferrsi/data/skill_library/repositories/project-maya/LICENSE": "574cffb7c57769a9271043ac0c2b07c5e7e7621cfb81081b901d8981e791d121", + "src/inferrsi/data/skill_library/repositories/project-maya/SKILL.md": "c619a3472be02147a847a24ca97c56afd8b56b6ffd22ce66fcae453155e34bab", + "src/inferrsi/data/skill_library/repositories/project-maya/metadata.json": "c9f7879ca512c07e9bdf6d1d1a52de055a0fa210b8838c205e27a34436324834", + "src/inferrsi/data/skill_library/repositories/project-maya/references/license-boundaries.md": "090839df90d6e96f55794c2ad821d7154dc6a6aa4211cdbb08a1e5f6f2e52a92", + "src/inferrsi/data/skill_library/repositories/project-maya/references/repo-provenance.md": "7bb6b6c14d1a9b77e906804505c723569f952e5d47559e636d2e6621994216bf", + "src/inferrsi/data/skill_library/repositories/project-maya/references/repo-routing-metadata.json": "0acbb111e92316e74d537200cd033f3d7d0f69972bf0953c8cea9dfb2ecb4a34", + "src/inferrsi/data/skill_library/repositories/project-maya/references/source-identity.json": "fc2287d5bde587cf040bbf515161d25e84a7bb42989cf01343582af67e4b8eeb", + "src/inferrsi/data/skill_library/repositories/project-maya/references/troubleshooting.md": "735d4bf3a3b243c29e6371af37dc06c1fa43b39a85811ba9714b911bf520ff67", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/model-runtime/SKILL.md": "1b68800cc2dd9b7b03cee3343fb8619135dc3563550cc20386606c295358df6f", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/model-runtime/references/model-and-memory.md": "ea7b905fa72cbfda5513f4c6ae77c552044af71e9313e396bcd3628884183bfb", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/model-runtime/references/notices.md": "6f6d9a96e1e67da6fe25f54482da0b69bd256fb688cc0956668f7319308f310e", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/model-runtime/references/troubleshooting.md": "97c00435d57a5b9067fe8e5885219d5818208a25f225a14c240d7160dcd697f7", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/model-runtime/scripts/audit_runtime_plan.py": "b096ec10c4f0e4b057997fe7b946007ab4c06dd263ab09d803e29e498601da00", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/qualification/SKILL.md": "5e264000198a9bbdded9c35db2df682e8eee4408ab741f18bc002e9be103b401", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/qualification/references/troubleshooting.md": "0c42256af4869e5cd1eb88fdaacfe65adf51dd180bdc03a2b9fccf220a19ccd8", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/qualification/references/verification-contract.md": "eaeb9319df27b66840cdfcba5c4788a287775d1493308517d9124fd0608eefec", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/qualification/scripts/summarize_decode_records.py": "cc0ac3c403aba79a131f631290d68e1640283e9f0d564aeef431b577824e3036", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/serving-state/SKILL.md": "830d8bccf6b36e1ad6cef899d5147afb74c0514516c68d02060bdfb550b56920", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/serving-state/references/api-and-history.md": "a51fa298017f266decd801441eb411fd68f7906a90a4b0d18083d1af31fc7d52", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/serving-state/references/native-state.md": "e5a7ee5e777998db0fb5422cf5b1ab18dbd67b4cbbfcfd6628ed6e40d8709c61", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/serving-state/references/troubleshooting.md": "97dea7b2d26fe165d2f64a1a63c91d099dddb2d3b95c16b667f5173b3ffa9d2d", + "src/inferrsi/data/skill_library/repositories/project-maya/sub-skills/serving-state/scripts/request_template.py": "d91b03fbbd7003012a92bd7259d39604b9a91ee5707da2d3366e7c0fb47edd6a", + "src/inferrsi/data/skill_library/repositories/sglang-omni/LICENSE": "a54c8553df5d4313d293d1aef3bf2f13952bda8b7c7a1fdd729b2bbe27ee6015", + "src/inferrsi/data/skill_library/repositories/sglang-omni/SKILL.md": "d75f5b2881b240ec2d9d4f5cc8e3f7d53e4378cb01732a2fb9699da2901ba38c", + "src/inferrsi/data/skill_library/repositories/sglang-omni/references/repo-provenance.md": "5e8dbe168a8885e209d4b4532944ffa7fead658b23fd6588054d57b22476f63b", + "src/inferrsi/data/skill_library/repositories/sglang-omni/references/repo-routing-metadata.json": "6820707cb9bd877d1635928cf5a0efe38e4fe37dc04036dc70d53e479ed9bf7c", + "src/inferrsi/data/skill_library/repositories/sglang-omni/references/snapshot.md": "0fb5d776349de845dc314f16ce73a06c9caf5db84dc1c293327d3b3ca1337c80", + "src/inferrsi/data/skill_library/repositories/sglang-omni/sub-skills/sglang-omni-architecture/SKILL.md": "766b2d66d2056dd779abd9e492cb3af6e25899298f44964f565509f130a7cb24", + "src/inferrsi/data/skill_library/repositories/sglang-omni/sub-skills/sglang-omni-architecture/references/runtime.md": "36bba9874fe054acc5217f9c265f5ae309c83943e0d46228370ae1bcdc69421e", + "src/inferrsi/data/skill_library/repositories/sglang-omni/sub-skills/sglang-omni-extension/SKILL.md": "9af38bca840d0004fc2ed049141476fc40fd40dcfa843f38a404a7a314c19425", + "src/inferrsi/data/skill_library/repositories/sglang-omni/sub-skills/sglang-omni-extension/references/integration.md": "6ce9383ca17bacff60a180f8fb8c43ea47eaa37117fb8da6051ad86135d228ef", + "src/inferrsi/data/skill_library/repositories/sglang-omni/sub-skills/sglang-omni-serving/SKILL.md": "990b6bdebfe22612de49dbebcb16810e8abef94d70691aa883b7937c85210eb6", + "src/inferrsi/data/skill_library/repositories/sglang-omni/sub-skills/sglang-omni-serving/references/recipes-and-tuning.md": "94afb762bbe185f58606154b3f0a5af56e7089cb84ea94e26cfcb9f93c95439f", + "src/inferrsi/data/skill_library/repositories/sglang/LICENSE": "1495e1e757ef4d0925a2350563cf5754bb23c51701a8ec4fb3c5cdcbedae6747", + "src/inferrsi/data/skill_library/repositories/sglang/SKILL.md": "f2b68d4cac90b5bc4d0e38cd17b9f5bec862e934668a459ee08f69a21b5fb72d", + "src/inferrsi/data/skill_library/repositories/sglang/audit-sglang-diffusion-lifetimes/LICENSE": "1495e1e757ef4d0925a2350563cf5754bb23c51701a8ec4fb3c5cdcbedae6747", + "src/inferrsi/data/skill_library/repositories/sglang/audit-sglang-diffusion-lifetimes/SKILL.md": "b0a4ba4751087126143ef86983798deb0ed00e24b6ff06bf6ef76a9df6e274f2", + "src/inferrsi/data/skill_library/repositories/sglang/audit-sglang-diffusion-lifetimes/metadata.json": "6ed57dfb4f25ecb34b81f2188b055e05d172ba2581e6a3b605b814b2f733a4d6", + "src/inferrsi/data/skill_library/repositories/sglang/audit-sglang-diffusion-lifetimes/references/source-notes.md": "d0fcfd1177ae2f351041c5b2abba7f5121cec133006d9e4dca8f74ddb567332d", + "src/inferrsi/data/skill_library/repositories/sglang/references/architecture-and-memory.md": "798e747022b7ec135cc4861c2c9ac44fb14b503bb77a0068ee7fbea494b764a7", + "src/inferrsi/data/skill_library/repositories/sglang/references/native-candidates.md": "abafcc9a34df196a6365145554887b8d37afb36c6e236c92e50a4a06c8a4ec93", + "src/inferrsi/data/skill_library/repositories/sglang/references/parallelism-and-extension.md": "e3be7f4b51264ac68682a64d264e4d96857d5bb9f9d99cae5f327c56984a9e6b", + "src/inferrsi/data/skill_library/repositories/sglang/references/repo-provenance.md": "534d95ae8d0b29bcbc8f6707b3d38fb964e31f5b66ba13517a9a6b8f309bbb38", + "src/inferrsi/data/skill_library/repositories/sglang/references/repo-routing-metadata.json": "b2b879c1cc42ddc2a5b95ae24115eb891562fa9a6e96d151f4ddf6f7719fe73c", + "src/inferrsi/data/skill_library/repositories/sglang/references/source-map.md": "c2adad64ceb0c305cdc4859c03012b3e0a4ab26cd0cb289bbd76e192b0cc3794", + "src/inferrsi/data/skill_library/repositories/sglang/references/tuning-and-validation.md": "49b3343b3292cc098a787de9d24d968b444d0ef4f73fedb5d8183390e8f39c9c", + "src/inferrsi/data/skill_library/repositories/sglang/sub-skills/sglang-parallel-extension/SKILL.md": "18bd54ebdd629e1ba6dfa589f391c7cc3c5355785c2ae82f741b64ee8022464f", + "src/inferrsi/data/skill_library/repositories/sglang/sub-skills/sglang-runtime-memory/SKILL.md": "33b1a65aba00fca819d2b6cc42202e7708e9155e4d8f4373a2387f4ee2f2fa3e", + "src/inferrsi/data/skill_library/repositories/sglang/sub-skills/sglang-tuning-validation/SKILL.md": "744b2ef9122101d3f50cbbb40fe020e2b3d3888adbe2d86041041e7c7ce424fc", + "src/inferrsi/data/skill_library/repositories/splash/LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "src/inferrsi/data/skill_library/repositories/splash/SKILL.md": "619b87c282dcec4befa319085764fb53fa506a05c6a7112500bcca662f059ece", + "src/inferrsi/data/skill_library/repositories/splash/THIRD_PARTY_NOTICES": "2fedf1277bf732f8435c3e3be2798f52f25f7e2bd4155865cb366da55b88e50b", + "src/inferrsi/data/skill_library/repositories/splash/metadata.json": "d4c679f474c31549156aad417e23c2802b9f4bc904472e5cb16916f2996b50ba", + "src/inferrsi/data/skill_library/repositories/splash/references/repo-provenance.md": "20e3462f1b6a8752eb0fa6f36e76867f142a49c1953f498f895e29c4fd4f0204", + "src/inferrsi/data/skill_library/repositories/splash/references/repo-routing-metadata.json": "287ae591f42949b8d33312659ec8303c47d5c73093c64c125edb1cf6ea8de8b9", + "src/inferrsi/data/skill_library/repositories/splash/references/source-identity.json": "2f778882ec440538a46f48332650412b446722246c8dc5690083f19da7dce61d", + "src/inferrsi/data/skill_library/repositories/splash/scripts/request_template.py": "086d773d42edf67c43cedae16974061b09ac66458ee47fe961fc01733f3b2a0e", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/qualification/SKILL.md": "4fddc39811c12ec4b3279ad68a8864b7f1ef80e838ea03788b54cb025a03ae16", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/qualification/references/troubleshooting.md": "dbd2179a48eb3fc0ecfd54c5df8a690d0cb2e1814acc19ac3b0aabf184092c92", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/qualification/references/verification-contract.md": "9efffa0ecfd3b6771dfce631137eccc6d939c3239f60b1fadcd0c6c1ed7700be", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/qualification/scripts/summarize_rounds.py": "107a844954e3909500c60eb1ca365ac9b5e7dc3d91122dbae46f402a5cef4e3b", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/runtime-planning/SKILL.md": "f0fe3d3f4053937767ae586559cc7fba89dacb6c896186a029fff220414e8d22", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/runtime-planning/references/memory-and-formats.md": "04edf10f4a965c512f6a262b1f8295f3c033d615849e49d21d3d94c78b549f2b", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/runtime-planning/references/troubleshooting.md": "5a1896f9fb01f6c8c9ef78d94f3c965d6d64e6b54223c6d7901eaed0548c5575", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/runtime-planning/scripts/parse_budget.py": "b3a3b0847280333c2bfbe5d03350dc866307d5290160ec64c7e3d462a34f6301", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/serving-cache/SKILL.md": "c16f911498e116ff9b31b5a6f0ddd3ae6517b51c0e9d079c337f36a5bcac1df8", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/serving-cache/references/state-and-api.md": "592603177473ac8e024b7dc19a3d3faedd7c1e0312137eab8bf9a62d2f567be6", + "src/inferrsi/data/skill_library/repositories/splash/sub-skills/serving-cache/references/troubleshooting.md": "4fda461042a3de43c109d7a3cec67542c7d61fe68412bf91606220f2e13e576e", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/LICENSE": "b53fa08f515cb5a6fff7b9fd8fcd0961a4b80df29d74372d25e1f9171aa042ee", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/SKILL.md": "4c04d39812fb566e3ecb5807c170d5c32848eb2b93a1f0fedcf66ba9a9c92860", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/metadata.json": "13ab6d874c4e3135be80ef7c3cb6bfd28fb9121012e0536831ec3705ccb8c5eb", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/references/loader-storage-boundaries.md": "c1ec047aa37fca6b374f9bfd750e8f30d45af1d48fe728db23873c0b84ad94e8", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/references/phase-residency.md": "7b537cb972347dd68e303960f142892346d8b19b884e4d08016ea36a23bdaa7a", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/references/source-identity.json": "af4830370b6eddc2d176a9ae14da4ab56a90b0fe048a01a89ee051df4365d8e9", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/references/source-notes.md": "c493af8f6fd11ab7c9a37c9eec78cac31d57c04403a790035efbb4fff99f4669", + "src/inferrsi/data/skill_library/repositories/stable-diffusion-cpp/audit-sd-cpp-residency/references/validation-boundaries.md": "3aaf79b36192bf8ff3e8f95ac90f2e769aa065dfac1fe70368824f3591849b8d", + "src/inferrsi/data/skill_library/repositories/strata/LICENSE": "949b9b0aada7476006469e58ee4ffb0e0f68c2d9137e90a356757b61a09d37f0", + "src/inferrsi/data/skill_library/repositories/strata/SKILL.md": "0e5daeb6409c916be45ecd7ce2531ea5f1c60a4a53e2b0ed25dc1e2cdc5c17ed", + "src/inferrsi/data/skill_library/repositories/strata/references/design-space-analysis.md": "11ecafe71530ddd4839268ea1b24b3361a3895012a705859ca06dae29fa72630", + "src/inferrsi/data/skill_library/repositories/strata/references/repo-provenance.md": "05f17d0ae996ad6c12314bdd29f3427574f6aa611ea60effd18598a0f386638b", + "src/inferrsi/data/skill_library/repositories/strata/references/repo-routing-metadata.json": "a10ba49b7e6565109b566c105e17551d042075a1ff649c6f371134e3b7402c74", + "src/inferrsi/data/skill_library/repositories/strata/references/trial-format.md": "92d8cf38549268ae4eef382890662d03e18a7dff858ad45ee5eb6f47eb39c8c0", + "src/inferrsi/data/skill_library/repositories/strata/references/troubleshooting.md": "7301cfa5a5f6cfbf9576c3845a96c6b4de8f8a6509f2330970a8e2e4669b3d5a", + "src/inferrsi/data/skill_library/repositories/strata/scripts/summarize_trials.py": "6a243a08da15659ced6519f49f52a49a675bd9e952740c3ab03dd21964eefbe2", + "src/inferrsi/data/skill_library/repositories/strata/sub-skills/design-space/SKILL.md": "857bea3c64db45dc035728a41523142ac65778b41f63092148b8ab936f971d76", + "src/inferrsi/data/skill_library/repositories/strata/sub-skills/design-space/references/design-space.md": "0a428dcd12d5290b554e9da6795a110f94d98f128771602e1ea5f608048b135e", + "src/inferrsi/data/skill_library/repositories/strata/sub-skills/tune-execution/SKILL.md": "cdf51c537e7237296d52ef6cda9f2e4c9d9ce3fc87265a369cd9eb7497c53512", + "src/inferrsi/data/skill_library/repositories/strata/sub-skills/tune-execution/references/tuning.md": "7b69aa7872d60dd3fb91e41b77a632572070dcf80dd5b5f6dc1722d8540177b1", + "src/inferrsi/data/skill_library/repositories/strata/sub-skills/validate-engine/SKILL.md": "90bfd975e25f18895ce0e85f6f35d24149ce026305a4d479aea4924510053460", + "src/inferrsi/data/skill_library/repositories/strata/sub-skills/validate-engine/references/validation.md": "dae846f4c47c68731b96ec1d50cb008c03871c72078f1c5b0f4a9423be9ba397", + "src/inferrsi/data/skill_library/repositories/vllm-metal/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "src/inferrsi/data/skill_library/repositories/vllm-metal/SKILL.md": "5f83b1b989e8dc239a6f34a6b3bd63872533ecc1404483a69dabfb1865648439", + "src/inferrsi/data/skill_library/repositories/vllm-metal/metadata.json": "63d51d1ace6b0ba503c28751a8ffbf9224038395f4146a94c775c628d8075470", + "src/inferrsi/data/skill_library/repositories/vllm-metal/references/repo-provenance.md": "970bda4d1081704aa82c94d6544a98bbf479430c4fc2c82a1a82f206043aa72a", + "src/inferrsi/data/skill_library/repositories/vllm-metal/references/repo-routing-metadata.json": "230a2b383bcf2855af4de50374c41f11b0b0841268ae45e424c1c97f679b477a", + "src/inferrsi/data/skill_library/repositories/vllm-metal/references/scope-and-notices.md": "aaef98eaea4cff56f39852e1d131163ebc01334e79034b1890f67a2660727d3e", + "src/inferrsi/data/skill_library/repositories/vllm-metal/references/source-identity.json": "9da529574e81f9f91d86c01153eb09a8b1e728dc5327c40364fff74085598c1f", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/cache-lifecycle/SKILL.md": "dbfb06896615dc994f4a0a1e3789904acdf512ec316cbab6347165b764bc592f", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/cache-lifecycle/references/cache-and-offload.md": "9829c14cf20f22575c44c1a0fcf18f63578443710e1a592c9fea709a43a3b888", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/cache-lifecycle/references/helper-contract.md": "56a7494b58c47e07d1c85471ddc6075b15e34dc7a852b937002416dbd55b65ce", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/cache-lifecycle/references/troubleshooting.md": "a4600c6d17a980b6442fc4c36f1c9ae148a2710c644126a9a898675b01f95366", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/cache-lifecycle/scripts/screen_pool_budget.py": "dd615f7d3239f48510ce83416fb14fba8d5da2b9017627bdd312567be1bd7956", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/platform-config/SKILL.md": "e2f5c5207b5c7665d3388d94fdace35e25f073a7833cbddaf14514a05f5ca5b9", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/platform-config/references/configuration.md": "69949b93f4f319145e37d1b28487e37bd4ef21622f3169583d9cff46234a9c76", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/platform-config/references/platform-and-loading.md": "7f11dc9e4bb9ae7bac25fcd6a2909cbea0eb2ae329e28ec9a7a2f4085c56e5cc", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/platform-config/references/troubleshooting.md": "837cef82321fa050af3f01804fe337b0a0462255261fea5c21158ecfa3d0c325", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/platform-config/scripts/check_environment_plan.py": "2603200fef87e3afad7820b84994f7e43e6041b45c17d0ed613d0d6229535bf2", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/qualification/SKILL.md": "37d9ae55ab4d0afd4ff8053c1955445e5a090188841ecc7941a5e22c5dd5eb39", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/qualification/references/dispatch-and-measurement.md": "360719d4253ad7e5a36823171d432aa8ca0f74d1ae565c7803af1990d99f2af9", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/qualification/references/record-schema.md": "f3cefb8b131613535dcacf30d130ffc2dea991acfb495adb4e1c7050046903d7", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/qualification/references/speculation-and-pipeline.md": "64faced7f31d489e9b0c4b9523a803ff1a76dca0f9315bdc6d0b83935bd338a4", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/qualification/references/troubleshooting.md": "a2e85696120ffc2af4249ac9c1e1b96320e02287e5099577c0474c025ab4f5f6", + "src/inferrsi/data/skill_library/repositories/vllm-metal/sub-skills/qualification/scripts/summarize_serving_records.py": "78e660a13a6a6941d006cb11fc2f401a34f489e54273860ae6a208dca6a6a3c2", + "src/inferrsi/data/skill_library/repositories/vllm-omni/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "src/inferrsi/data/skill_library/repositories/vllm-omni/SKILL.md": "df3e63dc28de2dac2aa92824fd88719159138650d96487332e0effca3f0e2a80", + "src/inferrsi/data/skill_library/repositories/vllm-omni/references/evidence.md": "ae0d51ba56b34ed81fba34de8fd3685bebf2f160b188fa53719936002881d220", + "src/inferrsi/data/skill_library/repositories/vllm-omni/references/repo-provenance.md": "43bbfe431434ca4ad6157ba35cbb9ce2d89e4065f427abfdd5f372f51ba0c9c9", + "src/inferrsi/data/skill_library/repositories/vllm-omni/references/repo-routing-metadata.json": "7784b4d98d096718c4f4cc42ce86d5ec113c469844e12de4690b0fccca59d329", + "src/inferrsi/data/skill_library/repositories/vllm-omni/sub-skills/omni-architecture/SKILL.md": "fb3ff50a7b9122a2545a97ef5179011237c4c4ca214dde7236ad7bf79a7c8623", + "src/inferrsi/data/skill_library/repositories/vllm-omni/sub-skills/omni-architecture/references/architecture.md": "db845eb4207ddeedb8ae381f1b91704a42cb53ba0ee6c7ee581510ba1a412190", + "src/inferrsi/data/skill_library/repositories/vllm-omni/sub-skills/omni-serving/SKILL.md": "8ab3209b838635395b22deca6aa879172016531d45c2374eb8e498e7f71bb40f", + "src/inferrsi/data/skill_library/repositories/vllm-omni/sub-skills/omni-serving/references/serving.md": "9bd5eff300d9755137a7600c8f7a7753bb22d09c8853e08062d7e535662ba8a3", + "src/inferrsi/data/skill_library/repositories/vllm-omni/sub-skills/omni-validation/SKILL.md": "93c83bc4b799b32f50ff54b870cbbde050a790af16d9b7b062039c4987c80148", + "src/inferrsi/data/skill_library/repositories/vllm-omni/sub-skills/omni-validation/references/abort-acknowledgment.md": "e95ae5b2cc410917ddf5e9066890d0bef9264104529bdca5ac12bdf56fe80ae3", + "src/inferrsi/data/skill_library/repositories/vllm-omni/sub-skills/omni-validation/references/validation.md": "1542061f9c76fff2acb6529a58238301484b0e23ec0c697d2fdf129e200ea973", + "src/inferrsi/data/skill_library/repositories/vllm-rlt/audit-recurrent-kv-finalization/LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "src/inferrsi/data/skill_library/repositories/vllm-rlt/audit-recurrent-kv-finalization/SKILL.md": "a468d75f25e77b96e6fb5376692f7a89c0464cc00d4df035f1dc6cc923f713cc", + "src/inferrsi/data/skill_library/repositories/vllm-rlt/audit-recurrent-kv-finalization/metadata.json": "db0b4593d7a6fbb898fdf11a1710b529abbade847ea57319843669b375b68fc8", + "src/inferrsi/data/skill_library/repositories/vllm-rlt/audit-recurrent-kv-finalization/references/NOTICE.md": "cca794656897ecdc37f983f7f23c4cd12306dbe3c9cd2f54fece6340753ae4cf", + "src/inferrsi/data/skill_library/repositories/vllm-rlt/audit-recurrent-kv-finalization/references/source-identity.json": "5e52db0a0bda4673b9aac46a3fc035b824780def72921fee6796edb2ed9fca65", + "src/inferrsi/data/skill_library/repositories/vllm-rlt/audit-recurrent-kv-finalization/references/source-notes.md": "0956f59cd9a1fac27da53228dd60c51a07b87639a43c09bfab296c4aeeceaab9", + "src/inferrsi/data/skill_library/repositories/vllm/LICENSE": "50e6751797c50dedd75ef1b8a0d9e42f5f8472e9fbce91f34718e9f97b0c780a", + "src/inferrsi/data/skill_library/repositories/vllm/SKILL.md": "6f36cee8293b5484fd387a798cd450ad10cc2dc64aaded529e3a71ef4ecbe45f", + "src/inferrsi/data/skill_library/repositories/vllm/audit-vllm-kv-lifetimes/SKILL.md": "4c3f27459df239f9f4fc971c559d4c9ddfbfebd70507a8a93be8eae59a30b69d", + "src/inferrsi/data/skill_library/repositories/vllm/audit-vllm-kv-lifetimes/metadata.json": "b43fc3a7ccae59c664fcdf9ff77962edcc07c2a3df8b59324db551642bd23e23", + "src/inferrsi/data/skill_library/repositories/vllm/audit-vllm-kv-lifetimes/references/source-notes.md": "3665b034594fc8cc767c408002f4e16f8803369242405027c7f37ce6c9ecebe9", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/SKILL.md": "d99fc28d48127d3bc627f2a0cab6f3f16158a77da49428838a08865adaea9905", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/metadata.json": "78459416734f61a8faa819d9a1a3ad7b9a985e8bf8e149813c604d15be6bb92f", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/INTEGRATION_NOTES.md": "82b24be82451ee121892f61575d0cf4ecb9920813a25ccb26cce2b45dda6d8b3", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/cases/migration-is-not-free-memory.md": "2ac168f2725cba7fc92dfcc67c01bf2258dff6a2dbe1ddb063bc60c175d82d0a", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/cases/parallelism-change-with-state-cost.md": "5accc81086e4500d66f894ef6af9951e1cbb76941f6c631aab5c5561a786d8d8", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/cases/preemption-under-kv-pressure.md": "462200a6d0b193ef01f32374a463e0f2838ca8edf33d9ab898def65ffd0b490a", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/knowledge/scheduling-state-boundaries.md": "d4ef29869959b835a5dcb06ddb2fd8e6cff49bb176994dc1d46eb9a852f6228d", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/notes/fastserve.md": "9b4e275843000ef453d508d9c3c9c3f8ea1de5545fbd01d7abe74baa8a4931a7", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/notes/llumnix.md": "f252ce33ac2db017701ca1d49813c5ec1996c4c92900cf35bb6bda7fc59c0f18", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/notes/loongserve.md": "7bc6d1e256d461b04acc8ed856cf99108faceda9cde729ab95bcca596fe019ca", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/notes/orca.md": "f5a3b5870d64226408a8fcda5d69483769d823f8a5efd7f11698c8da483ab195", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/references/fastserve-readset.md": "9866bd0c78b2b638998b3b632f6bae26aef032462c81abee336d309af5b07831", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/references/llumnix-readset.md": "3a2819d65ad24087c08530492ef39d8ea046ed1f780d53512f1d23e2b3578487", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/references/loongserve-readset.md": "f1a383e7bdbbd5a5a472d7f6e1292c8a17d4910ff736ca5a6aa422e1bee74f8c", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/papers-20261015/references/orca-readset.md": "a497ef23b7e60c0fbc15d95b7e07cd20547cfe56f37c24dfe6ed70d79ef7a3cf", + "src/inferrsi/data/skill_library/repositories/vllm/diagnose-vllm-admission-pressure/references/source-notes.md": "84033fd514773f10c0bddd9914fabb980497ba2b308f226a922c3e1888413827", + "src/inferrsi/data/skill_library/repositories/vllm/references/evidence-map.json": "dd8bbab5d285ed3a1a19d2f06ad84e8c444251690d8f673def3e2681765ef6c1", + "src/inferrsi/data/skill_library/repositories/vllm/references/repo-provenance.json": "4e705a964697712e950e02bedc41320806a41311b7f4dcf32f923d60b1d2e919", + "src/inferrsi/data/skill_library/repositories/vllm/references/repo-provenance.md": "6e841c38c35ff2cd6ff8139cb1a6c8f75701647897f1089a94a5c62928609941", + "src/inferrsi/data/skill_library/repositories/vllm/references/repo-routing-metadata.json": "a20b54f682eb52311e445ac62b95d1935c001296f5cf23b7764cb04477d535c9", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/architecture-search-space/SKILL.md": "2a945b5fddacfb90d1cd7cb2b2f767067d641061423a65e1c19afecec7f3c06a", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/architecture-search-space/references/capability-boundaries.md": "c8081d03f04f7481080c46c7dcf728962729bc122f49f9502d50cd1e3d04bcf3", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/architecture-search-space/references/runtime-and-invariants.md": "afa1f967545021f36bc1b59dbf6aa2c367f4d5ece4f08dce755e2017cf50dbe5", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/extend-validate/SKILL.md": "495679e5b99341bf80daeaacd2d4c2699aba16bc16c447cbd8d2fe17f7559798", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/extend-validate/references/change-boundaries-and-validation.md": "f7fdd2d699f09d96fbf5ca9382f9b56113c870db2688d8e1118eb8163519fc4a", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/operation-performance/SKILL.md": "0ef4d2e3a96cbb277557e169a3fc8edf0f0504aad03259771b432a33ee008f78", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/operation-performance/references/commands-and-measurements.md": "76ab51083b14595c49fa1c255cb7e5ebb996f14930a51ab3cbe864cc334b5f80", + "src/inferrsi/data/skill_library/repositories/vllm/sub-skills/operation-performance/references/experiment-decisions.md": "242593c0d386e57104b57a09bc7db97c2bbbcdb905bb68a397cfe612e07fb083", + "src/inferrsi/data/skill_library/skill-index.json": "b5a9f05bd8179644f3fea79d7eb04fe4a8baad9e8d68aa8d0f1db213cf633317", + "src/inferrsi/data/skill_library/workflows/cite-check-downstream-pr/SKILL.md": "485932cdf3b1fba5dc69be73e75d38f86a7b79442d26e82a296c963a7598d226", + "src/inferrsi/data/skill_library/workflows/cite-check-downstream-pr/metadata.json": "7a18f9dbb4894216802a44929b913990fc4bd8521cb60976d9435ee8f37e4265", + "src/inferrsi/data/skill_library/workflows/claim-contract/SKILL.md": "3af1dbbe81d91cb05fc2ef15a2ae25d7592a08558e1a5535f49c52f33a488c55", + "src/inferrsi/data/skill_library/workflows/claim-contract/metadata.json": "25c0137cf347f75d7ff8f8305d9ff5f055c6881ddf4b708f923c3176de16c153", + "src/inferrsi/data/skill_library/workflows/competitor-scan/SKILL.md": "0ede58ace65a9324a538b4816add1684f230ba536d4364fe5a5dd2c0bbed3776", + "src/inferrsi/data/skill_library/workflows/competitor-scan/metadata.json": "74b387e5df7b40cce9fd1ceee7ea1a26c258a4ed091144f2b366ef971895a2e8", + "src/inferrsi/data/skill_library/workflows/draft-acceptance-issue/SKILL.md": "ce983acfb7d7d3272775e7cf00c92e4ddadd97511b602575a76e5ab7ade01b56", + "src/inferrsi/data/skill_library/workflows/draft-acceptance-issue/metadata.json": "e97a665349f234d74baeaa20c6996bff990d0f45c40c0b7ac7283aa599cb951e", + "src/inferrsi/data/skill_library/workflows/inference-engine-research/SKILL.md": "364beed2ca617e71f4f955bbd024740d411b94eeb9557d7e055d4463cc22caba", + "src/inferrsi/data/skill_library/workflows/inference-engine-research/references/cross-repository-mechanisms.md": "28efa1b25f548763180b70d8d0ddebb7d4e7227df189f871fd233fe1d4881303", + "src/inferrsi/data/skill_library/workflows/inference-engine-research/references/import.md": "c8a57db94768cc6cd4193932def75ba67ec453e56ee0e54f176fb82f1af53091", + "src/inferrsi/data/skill_library/workflows/inference-engine-research/references/model-aware-preparation.md": "787c017aade68ee1133b979d636fa24062302cef6174c001171c963947ee8da4", + "src/inferrsi/data/skill_library/workflows/inference-engine-research/references/overview.md": "7ed0a966239b9481b82dd349245cfbfe966c030fc916771c91fd0692464ffc56", + "src/inferrsi/data/skill_library/workflows/inference-engine-research/references/repository-source-scope.md": "85202ca209171c50573c2fc209acb1e937d8211e1652e4ca9c6cc4bce04d03eb", + "src/inferrsi/data/skill_library/workflows/inference-engine-research/references/source-manifest.json": "0ce1678803d1ede6b485fb6b4b1c88aba909056ee6e3b5af691899ceb2056240", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/SKILL.md": "74cd863df2e80dc2bda1713d24207809173a3116f30325e3487e1e3517cfec1e", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/metadata.json": "073174963ca5c19c63d68843ccabdbf758f4c8b7ca61e3d7283affd6f88a753c", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/COMPARISON.md": "38587678a96581f5c2dc697d982127343565504bffa191352811dffcc165aa23", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/INTEGRATION_NOTES.md": "fbc4a96b6f6c477706eed83eaa4fcc29a14f881637629d6c004601ed049f2523", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/QA.md": "3f3785ec39a6938a5d1f2e874e99153fe92c0e666dd3e78a499c8b47d891346a", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/README.md": "221785e91c45588f82b3caab6d52f1ea1d102b16139c20a0802921e2789e6d28", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/UNREAD_LEADS.md": "6c1d87ebe491d27666703149eb05ad582c7e5aff77f0ac5c11a7b89c946f96ee", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/cases/methodology-counterexamples.md": "f9fc21753ea41eef77ca020d78d031e945e5dd835b5d09c5ff0e53749ceb2ca4", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/knowledge/evidence-routing.md": "406d5d74c3fef4c1a23d495492e21a084c3c46495a1a84b385703ed104358874", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/references/learning-to-commit.md": "9c2d1d738e896d05c00f53e6adf14c9df2501ecc3f0020e71b5a1c2192547086", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/references/protocol-details.md": "41298c6bde3a28f0712fa06a18bbc4ac59aea6d17cc9eb1318744f4121e3bab6", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/references/readset.md": "6f953d20d8958c68339c9ceeae348604d0fea3e9c6ccb9b64a63d3b210426a22", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/references/repo-to-skill.md": "5ebdac2a2bbbe6614f9d4096bc9895bd685acdf76414e2c3c1fb7b50d57c738d", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/references/skillopt.md": "148075daa67e19f4b4351710498438d17c279a9bce56b2d01cab26ff3be33e99", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/references/source-manifest.json": "716cd49ed01824ee9f6b6fc55ebf2b24fdd5d5a3e677f6e28e34a472616bbe25", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/references/trace2skill.md": "230d13b77ba819b5e3edee147523e8cad6bfce95afccc140fb4946d6c8747a2e", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/papers-20261015/updates/bounded-updates.md": "d02c5bd0109846d1e1987de074810321cb4af277cd3f66ab2ac268aadd5ee142", + "src/inferrsi/data/skill_library/workflows/npu-skill-factory/references/skill-factory-design-20261014.md": "fb8ce1ad83b7a6ddc657e89ee2eebb710873b213cfd85bdd6d823c8691b3cb9f", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/SKILL.md": "08f76e12f6f8e8893f03bcdc8152a96c0c99442e7faecbc2a67a18c632fcb243", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/metadata.json": "caf3ef265df71b3cbec31b6c4affb6ebe9278fba0626b23bc124825d2761e49a", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/references/loopx-goal-governance/LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/references/loopx-goal-governance/LICENSE-MIT.md": "1df1cf519b9e5d8acbbc72820299d7aa95afa1acbfc1f43a15109ad1d59975f3", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/references/loopx-goal-governance/NOTICE.md": "3c3c36a40e1d65f3a6b20ec3a97319cb753e857f1d120f302cd828e107120f6d", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/references/loopx-goal-governance/README.md": "c5802bb4d71fbf95e40a6a5282c0afcba594ab5b34d40bec97874928d8376a00", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/references/loopx-goal-governance/decision-cases.md": "c2c1d3d75c4fcb515dd36ff84d8dc940c25d54c5757a29a80d1af88eb8b66115", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/references/loopx-goal-governance/mechanisms.md": "4fa09099d362a8088fdb0e6a767f72aae6218b92fe5fd75b6fb78c2bb2a318fb", + "src/inferrsi/data/skill_library/workflows/rsi-evidence/references/loopx-goal-governance/source-ledger.json": "60294951d702db924119300d89f4ed01d970a7036e214aa0d04c78f6842f92d9", + "src/inferrsi/evaluation.py": "482c40710d428206c59fe3696703248cd86c4b3c7d19ad41017c1369bd6d780e", + "src/inferrsi/evidence_paths.py": "cc46231e0b8334ef5742defdda20e0093e22b30c86af59df1fb3ae4b5caa70fa", + "src/inferrsi/execution.py": "f43d8cbb4d43a72a7ff8a10b29a5fb9cf4cb22af54dd35943283c843fba0da92", + "src/inferrsi/harness/README.md": "0fd486efbf4752e9e93b118102244cb332ceea203dfa3628cb70fbf816b9a110", + "src/inferrsi/harness/__init__.py": "1006e4713003f44bfb32b2e385a918e1652b9e9833801e4555674a71e57fb0d5", + "src/inferrsi/harness/evaluation.py": "20d0c52145600a5d6b1e513b61f2fffaa459b83db194876be40726bd4f343a59", + "src/inferrsi/harness/improvement.py": "3faa0f5928a707a98f35f45d1ca18e226c898941e6a07b3829eebeb53e70aeb8", + "src/inferrsi/harness/reporting.py": "38c58f02c44e8c8aeacf46527e142be0e3142a83e4b2693246d0ca76c0ddd7c3", + "src/inferrsi/harness/runner.py": "d290fc87710e77c8e6069e95bb0d347016a393707592d2eed98f07951f2d0865", + "src/inferrsi/harness/scenarios/__init__.py": "4e97913c806077f0cadfeb29d986d2fa75b55ab8766cb86e6e3e9a195a9a1f5a", + "src/inferrsi/harness/scenarios/external.py": "f3f8d4fc516ebce81c26d82248e83f79b299eed0fc17ce73e2844995aea9c3f9", + "src/inferrsi/harness/scenarios/media.py": "67d979a3ed6f13a8e3e1e40a304f78e5a3e6c2556b3aa8a11c41156745d7050a", + "src/inferrsi/harness/skill_eval_diagnostic.py": "e25cfee943052aaefbddf3f545fe6d56d95ab1edb9723cd9353feeabc954ea9a", + "src/inferrsi/harness/skill_eval_engineering.py": "2f18a1ab96acfc84319eba05e94c2a073fd0dca83e4f82ad98142ba2fecda039", + "src/inferrsi/harness/skill_evaluation.py": "ca141c3d1272591e24797d1ee31bed3aa37d9a009897c88c2ce0b087f3da11ac", + "src/inferrsi/infra/README.md": "8a3d41ba68cc655ef1788456e532125123902523f858b8932398995cc9127719", + "src/inferrsi/infra/__init__.py": "8779897733779266841b0f79b84b1dc43f0fa57c013855c906c809829ecfc77c", + "src/inferrsi/infra/artifacts.py": "bcf3adf325e34e10a4ecb4baf0af855ddca3d77eff76de5b66e493baaa3d7eaf", + "src/inferrsi/infra/campaign.py": "be505fba1592611bd84ceaca55afbac027205413a2639baefa0c3bb343230209", + "src/inferrsi/infra/commands.py": "1890f115b3a2c5c6832173bf60432ad595bd6bf1c69783ecd460c6f8961194f1", + "src/inferrsi/infra/environment.py": "23a6716089c542617761b5a3fc67dde0af9e483212fc003f8577757fbc4ed2db", + "src/inferrsi/infra/executors/__init__.py": "327c3cd5c821c832ff260a41dba0ee1e439cdabefc9edfb9cad1cd38d14bc87a", + "src/inferrsi/infra/executors/local.py": "37bcbca9f3261c8c58a8bf806c9da40720b18d0676c82e8ed24c3901ac9bbe77", + "src/inferrsi/infra/http.py": "f65d6c2b55b6a89694caaf6dcdf7d74f417e9ced103eca1b3f218e305c6b6cb2", + "src/inferrsi/infra/inspection.py": "d1c66deb0cced529bca996d2f88b60f51fa3417ff1cae365c650fec808946ecd", + "src/inferrsi/infra/platforms/__init__.py": "dac68eb6edbff995f8afe477396d81efd5db93128978ceedaea1babf0dd3db08", + "src/inferrsi/infra/platforms/cuda.py": "9e0e4276e1b2984605493b14b82fba3e86f6635204719c318302e624f66f8b6f", + "src/inferrsi/infra/platforms/mlx.py": "f3b81470db28bd6183ccca2e763c5e079686bba6cdfe6c08ebe2cdf64216f2e3", + "src/inferrsi/infra/processes.py": "3b96ebc7a50913e78e86ff3dcba74c8ee8d03d547d9591ca6488f390ac1e6189", + "src/inferrsi/infra/targets/__init__.py": "1f3ea75dded7c6cc967754c7b6d4f30ef00da8191a749938aabc3c6bb8f86eb3", + "src/inferrsi/infra/targets/git.py": "abb93f9332db336298102e28c06b9a7553597d4d03b957358602f60d61b1aa65", + "src/inferrsi/inspection.py": "afa44bf4cdfbb58a318c21f9b292ca142d1bbb22750e35a4cc8244da5350ebb3", + "src/inferrsi/knowledge_operations.py": "c1a5f0756cc1cdad66d7b766f68405b622d85d65311546a952ab77b66f0bde44", + "src/inferrsi/knowledge_store.py": "70dfca059b0a682579206d4376d191667934b3ca869ae847098c4c6964d86abe", + "src/inferrsi/model/README.md": "a8a4fefbc943c97b2fac6c4a05e751c90b1e79d46de8fb59f500e92f8ddd5e34", + "src/inferrsi/model/__init__.py": "3c1dba4f5159fd9fbc8d4d96e2a83c8441491c1b1dc7b42031a3fc1782ed9d9f", + "src/inferrsi/model/anthropic_agent.py": "746db742467fee153427cc9d7e8a01b640bc13e5b9cd431e935f596a8e19b072", + "src/inferrsi/model/protocols/__init__.py": "5a2f54483b164de04e309dbebb87a700b213682b0f44a50d89a752dd71a4ce47", + "src/inferrsi/model/protocols/image.py": "251a1f8f885da2cd8e9d3baba766c525afe293091606b4e8668c43ba2cb7cb5f", + "src/inferrsi/model/protocols/metrics.py": "5b32e296a746b6de30cb0c89f23f730296b0087884c1acc2b6127c1295d4db7a", + "src/inferrsi/model/request_guard.py": "c2f8a2f822f32785327a2138ee7b0609896b180819d9d1cbe851534aa6198628", + "src/inferrsi/model/validators/__init__.py": "1d4b6ffa968e283219ddcc8a09de9280238a8d65ae2dc8cd2b60889877a8eb0b", + "src/inferrsi/model/validators/flare.py": "3696b0609c772f2222b448833608565a033123d7e92b11fbc545dd356fec590f", + "src/inferrsi/model/validators/image.py": "79470b6b06a22d53ec6c40636a0b3d821a2e6ee2f7bb7aed3dac7241504add1a", + "src/inferrsi/reporting.py": "1f771890ab3e69b1aa9246b548a7825596bdf904f6c395dd218208084266853d", + "src/inferrsi/research.py": "9bfe59dd17b5476c18ce50d671711053c62800521c50d6b710e8140a2b4dca04", + "src/inferrsi/runspec.py": "dca0952425caf42095ef0c7e2feb8ef4740cc422ecb61e777f203962d9b87709", + "src/inferrsi/skill_catalog.py": "dbbe107a105e13b0c288f48ad80f9b05e108606af379d243dfab85cdfc99cfb5", + "src/inferrsi/summary_chart.py": "d29023d60f6be804c1b01c9eb73765d4824d6c3bb870fe22c99a24544bc1d8bc" + } +} diff --git a/evidence/indexer-255-covered-cue-20261030/results/consolidated-results.json b/evidence/indexer-255-covered-cue-20261030/results/consolidated-results.json new file mode 100644 index 000000000..1fb68feba --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/results/consolidated-results.json @@ -0,0 +1,74 @@ +[ + { + "study": "Efficiency v1", + "baseline": "ab03f3ffb8f2e5bc02c304828c5c41890eef673e", + "candidate": "6da28494891b21cdc89f632d84d763bc997b7d15", + "protocol": "evidence/indexer-255-20261029/plan/protocol.json", + "report": "evidence/indexer-255-20261029/results/report.md", + "counts": "20 paired AB/BA groups ×10 paths; primary4 queries; accuracy8DEV+4heldout;6contracts", + "result": "FAIL: primary median reduction58.6105% (95%CI52.5395–61.3458%); CLIsearchp95+52.7193% exceeds20%guard", + "publication": "Published in #256, merge3731b731; runtime not promoted", + "protocol_sha256": "e4964329a20e6752b8149ab270733c0bbb258d0f948bdca9e86da6fe8f028956", + "report_sha256": "38186030ae6cf8a94d202c4c1d6ae41bad8b19d9060f63dd350ae8c66896cb2a" + }, + { + "study": "Efficiency confirmation v2 (not accuracy v2)", + "baseline": "ab03f3ffb8f2e5bc02c304828c5c41890eef673e", + "candidate": "6da28494891b21cdc89f632d84d763bc997b7d15", + "protocol": "evidence/indexer-255-20261029/plan/confirmation-v2.json", + "report": "evidence/indexer-255-20261029/results/report.md", + "counts": "120pairedCLIsearch samples;40separatebaseline/baselinecontrolpairs", + "result": "PointgatesPASS only: p50+9.9734%, p95−3.2103%;95%CIp50+1.2014…+20.9187%,p95−22.2255…+50.8618%; v1FAILunchanged, no promotion", + "publication": "Published in #256, same historical campaign; no pooled/replacement PASS", + "protocol_sha256": "40de4eefba8712d3d07f2e48049b0899c831f94bfcfa252c1f8841525a337fa4", + "report_sha256": "38186030ae6cf8a94d202c4c1d6ae41bad8b19d9060f63dd350ae8c66896cb2a" + }, + { + "study": "Accuracy whole-token v2", + "baseline": "1147c5bb41724826b64ad13cebc8a4dce5cc278b", + "candidate": "55a458328195335586eb6c6c1301ba34a8218e63", + "protocol": "evidence/indexer-255-token-v2-20261030/plan/accepted-protocol.json", + "report": "evidence/indexer-255-token-v2-20261030/results/report.md", + "counts": "6DEV+2nongatingdomaincases;8synthetic;6sealedheldoutNOTRUN", + "result": "FAIL: Hit4/6→5/6;MRR7/12(.583333)→13/24(.541667);complete4→5;38contexts/arm fidelityPASS", + "publication": "Published in #259, mergedabd1849; candidatepatch/bundle only", + "protocol_sha256": "6e72cf159003a1e85b0b4cdc42beee895494da294162e19adecfe963613de517", + "report_sha256": "4339cc0733ef8bed0a402f8b8008bfcaf3bdf5f2e1036ebd9efe9abeb0f6e347" + }, + { + "study": "Accuracy structured-string v3", + "baseline": "b3549ce1aea1556f76de1d2e14a4240474947b6b", + "candidate": "96788d26b57240e53c26fe5446b2062a62ee6d0e", + "protocol": "evidence/indexer-255-token-v3-20261030/plan/protocol.md", + "report": "evidence/indexer-255-token-v3-20261030/results/report.md", + "counts": "6reusedtrainingDEV+2domaincases;18synthetic;6sealedheldoutNOTRUN", + "result": "FAIL: Hit4/6→5/6;MRR7/12→8/15(.533333);complete4→5;51testsPASS;38contexts/arm fidelityPASS", + "publication": "Unpublished local complete evidence + candidatepatch/bundle; no runtimepromotion", + "protocol_sha256": "2adf6a226b4c3763e52dec159aaae9ec4ea0824f2b0b0bd37a92799ef06bf94d", + "report_sha256": "b58be2e52508d425ab5e0b34bf2bdb107bb32d8caff8749f1d194a16b520be8a" + }, + { + "study": "Blind-cue preparation", + "baseline": "b3549ce1aea1556f76de1d2e14a4240474947b6b", + "candidate": "None; production unchanged, no retrieval", + "protocol": "evidence/indexer-255-blind-cue-20261030/plan/protocol-draft.md", + "report": "evidence/indexer-255-blind-cue-20261030/results/source-label-review.json", + "counts": "6authoredraw/cuepairs;3source-supported <4minimum;0pairedretrievalruns", + "result": "PREPARATION INCONCLUSIVE: intent reviewpassed but coveragegatefailed; no replacements or effect claim", + "publication": "Unpublished preparation receipts and inputs; no retrievaldata to invent", + "protocol_sha256": "0dbe4843e50fc064934e98cad369024ae239b36c69772e2071d7e96c4eecbf17", + "report_sha256": "3ca52b5576fca03c7e536d6c19b4ff2ff2b0c88c6c8a63dfcdfdf2d5de5f586f" + }, + { + "study": "Source-conditioned covered-cue", + "baseline": "6e6ee245d9e92ee9365976f2e4e262304999f147", + "candidate": "None; identicalproductionruntime, cueinputonly", + "protocol": "evidence/indexer-255-covered-cue-20261030/plan/protocol-draft.md", + "report": "evidence/indexer-255-covered-cue-20261030/results/report.md", + "counts": "6coveredsyntheticpairs/12captures;2byteidenticalcontrols;4mostlyframingedits", + "result": "Neutral FAIL: Hit6/6→6/6;MRR29/36→29/36;complete6→6;strictMRRgainfalse;29contexts/arm fidelityPASS", + "publication": "Unpublished frozenprep,runner,rawgzip,metrics,independentaudit; productionunchanged", + "protocol_sha256": "4512e1ea3d56235b207e4926c0ed84e8eb3022a461830c919ad29810ee27b026", + "report_sha256": "7af98da8eba7319c5d853b3c7932ab54dd434df50edb221c5de15aa98e7e7bd8" + } +] diff --git a/evidence/indexer-255-covered-cue-20261030/results/consolidated-results.md b/evidence/indexer-255-covered-cue-20261030/results/consolidated-results.md new file mode 100644 index 000000000..14a58cbf6 --- /dev/null +++ b/evidence/indexer-255-covered-cue-20261030/results/consolidated-results.md @@ -0,0 +1,16 @@ +# #255 consolidated results + +Evidence delivery is not accepted efficiency/accuracy gain. Keep #255 open. This table consolidates existing artifacts only; no new experiment was run for packaging. Historical outcomes and distinct baselines remain intact. + +| Study | Samples | Result | Evidence | +|---|---|---|---| +| Efficiency v1 | 20 paired AB/BA groups ×10 paths; primary4 queries; accuracy8DEV+4heldout;6contracts | FAIL: primary median reduction58.6105% (95%CI52.5395–61.3458%); CLIsearchp95+52.7193% exceeds20%guard | [Report](../../../evidence/indexer-255-20261029/results/report.md) | +| Efficiency confirmation v2 (not accuracy v2) | 120pairedCLIsearch samples;40separatebaseline/baselinecontrolpairs | PointgatesPASS only: p50+9.9734%, p95−3.2103%;95%CIp50+1.2014…+20.9187%,p95−22.2255…+50.8618%; v1FAILunchanged, no promotion | [Report](../../../evidence/indexer-255-20261029/results/report.md) | +| Accuracy whole-token v2 | 6DEV+2nongatingdomaincases;8synthetic;6sealedheldoutNOTRUN | FAIL: Hit4/6→5/6;MRR7/12(.583333)→13/24(.541667);complete4→5;38contexts/arm fidelityPASS | [Report](../../../evidence/indexer-255-token-v2-20261030/results/report.md) | +| Accuracy structured-string v3 | 6reusedtrainingDEV+2domaincases;18synthetic;6sealedheldoutNOTRUN | FAIL: Hit4/6→5/6;MRR7/12→8/15(.533333);complete4→5;51testsPASS;38contexts/arm fidelityPASS | [Report](../../../evidence/indexer-255-token-v3-20261030/results/report.md) | +| Blind-cue preparation | 6authoredraw/cuepairs;3source-supported <4minimum;0pairedretrievalruns | PREPARATION INCONCLUSIVE: intent reviewpassed but coveragegatefailed; no replacements or effect claim | [Report](../../../evidence/indexer-255-blind-cue-20261030/results/source-label-review.json) | +| Source-conditioned covered-cue | 6coveredsyntheticpairs/12captures;2byteidenticalcontrols;4mostlyframingedits | Neutral FAIL: Hit6/6→6/6;MRR29/36→29/36;complete6→6;strictMRRgainfalse;29contexts/arm fidelityPASS | [Report](../../../evidence/indexer-255-covered-cue-20261030/results/report.md) | + +Exact baselines, candidate revisions, protocol/report repository paths and SHA256 are in [consolidated-results.json](consolidated-results.json). Timing confirmation v2 is distinct from accuracy v2: its point-gate pass and broad uncertainty never replace timingv1FAIL. Accuracyv3 DEV is known training diagnostics, not independent validation. The newer sealed six-case heldout was never evaluated or exposed to the implementer; its authors/source reviewers necessarily accessed it for preparation. It differs from the historical four-case heldout used in the initial efficiency assessment. No sealed content is included here. + +Published campaigns #256/#259 are linked, not modified. This follow-up archives v3FAIL, blind-cue preparationINCONCLUSIVE and covered-cue neutralFAIL together. No production source change, runtime promotion, new algorithm, cost or issue-closure claim. Partial positives do not establish complete Recall/precision, population accuracy, speed nonregression, or downstream-agent benefit. Any further hypothesis is a separate prospective decision. diff --git a/evidence/indexer-255-covered-cue-20261030/results/covered255-01-cue.json.gz b/evidence/indexer-255-covered-cue-20261030/results/covered255-01-cue.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..f5bbc89cc28e084a4c803405e8bae020ee0d3812 GIT binary patch literal 285562 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