mustflow 2.112.13 → 2.113.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,11 +2,11 @@
2
2
  mustflow_doc: skill.vector-search-integrity-review
3
3
  locale: en
4
4
  canonical: true
5
- revision: 2
5
+ revision: 4
6
6
  lifecycle: mustflow-owned
7
7
  authority: procedure
8
8
  name: vector-search-integrity-review
9
- description: Apply this skill when vector search, semantic search, RAG retrieval mechanics, embeddings, vector databases, ANN indexes, exact versus approximate search, filters, metadata payloads, namespaces, tenants, named vectors, hybrid search, reranking, recall, latency, quantization, HNSW, IVF, pgvector, Qdrant, Milvus, Weaviate, OpenSearch kNN, or retrieval golden-set behavior is created, changed, reviewed, or failing. Use rag-pipeline-triage first when a RAG failure is not yet localized to retrieval versus parsing, context assembly, prompt, generation, citation, or answerability.
9
+ description: Apply this skill when vector search, semantic search, RAG retrieval mechanics, embeddings, vector databases, ANN indexes, exact versus approximate search, filters, metadata payloads, chunk text variants, namespaces, tenants, named vectors, hybrid search, reranking, recall, latency, quantization, HNSW, IVF, pgvector, Qdrant, Milvus, Weaviate, OpenSearch kNN, or retrieval golden-set behavior is created, changed, reviewed, or failing. Use rag-pipeline-triage first when a RAG failure is not yet localized to retrieval versus parsing, context assembly, prompt, generation, citation, or answerability.
10
10
  metadata:
11
11
  mustflow_schema: "1"
12
12
  mustflow_kind: procedure
@@ -68,13 +68,16 @@ filters, reranking, and latency evidence all agree for the same query contract.
68
68
  - Retrieval symptom classification: ingestion missing, write not visible, wrong results, empty
69
69
  results, low recall, tenant leak, duplicate chunks, stale deletes, slow search, reranker drift, or
70
70
  generated answer drift.
71
- - Query contract ledger: query text or safe fixture id, embedding model and revision, preprocessing
72
- version, vector dimension, vector norm, metric, collection, namespace, tenant, named vector,
73
- filters, `top_k`, candidate count, consistency level, ANN parameters, hybrid weights, and reranker
74
- settings.
75
- - Ingestion ledger: source id, chunk id, deterministic vector id, embedding version, payload shape,
76
- write count, unique id count, direct lookup count, indexed count, deleted or tombstoned count, and
77
- visibility lag.
71
+ - Query contract ledger: query text or safe fixture id, query family, embedding model and revision,
72
+ preprocessing version, chunker version, contextual header policy, synthetic question policy,
73
+ vector dimension, vector norm, metric, collection, namespace, tenant, named vector, metadata
74
+ payload fields and types, ACL prefilter, filters, `top_k`, candidate count, consistency level,
75
+ ANN parameters, hybrid weights, MMR or fusion settings, and reranker settings.
76
+ - Ingestion ledger: source id, stable doc id, chunk id, parent document genealogy, deterministic
77
+ vector id, original text hash, index text, prompt text, embedding text, contextual header, title,
78
+ heading path, document type, status, authority, aliases, exact keywords, synthetic questions,
79
+ embedding version, content hash, embedding hash, payload shape, write count, unique id count,
80
+ direct lookup count, indexed count, deleted or tombstoned count, and visibility lag.
78
81
  - Quality ledger: golden queries, expected ids, acceptable alternatives, exact-search result,
79
82
  ANN result, recall at k, MRR, empty rate, duplicate rate, filtered result count, and before/after
80
83
  comparison.
@@ -95,10 +98,12 @@ filters, reranking, and latency evidence all agree for the same query contract.
95
98
  <!-- mustflow-section: allowed-edits -->
96
99
  ## Allowed Edits
97
100
 
98
- - Add or tighten embedding versioning, preprocessing versioning, vector validation, deterministic
99
- IDs, namespace or tenant selection, metadata indexes, filter construction, exact-search checks,
100
- ANN parameters, reranker candidate counts, golden-set tests, metrics, docs, fixtures, and
101
- retrieval contract tests.
101
+ - Add or tighten embedding versioning, preprocessing and chunker versioning, vector validation,
102
+ deterministic IDs, contextual retrieval headers, synthetic question fields,
103
+ original/index/prompt/embedding text separation, namespace or tenant selection, metadata payload
104
+ field typing, metadata indexes, ACL prefilter construction, exact-search checks, ANN parameters,
105
+ hybrid score ledgers, RRF or MMR settings, reranker candidate counts, golden-set tests, metrics,
106
+ docs, fixtures, and retrieval contract tests.
102
107
  - Add focused synthetic fixtures that encode expected retrieval behavior, filtered retrieval,
103
108
  tenant separation, duplicate handling, and exact-versus-ANN comparison.
104
109
  - Do not change embedding models, rebuild large indexes, tune ANN parameters, disable filters, widen
@@ -116,38 +121,56 @@ filters, reranking, and latency evidence all agree for the same query contract.
116
121
  all-zero vectors, extreme norms, and model or preprocessing version mismatches.
117
122
  4. Keep embedding model identity exact. Model name alone is not enough; include revision, tokenizer,
118
123
  pooling, prefix policy, max length, HTML cleanup, chunking, and normalization.
119
- 5. Compare exact search with approximate search on the same query and filter. If exact search is
124
+ 5. Separate original, index, prompt, and embedding text. Original text is the citation source,
125
+ index text may include titles, aliases, contextual retrieval summaries, and generated questions,
126
+ prompt text is the compact model payload, and embedding text is the vector input. Do not collapse
127
+ these fields unless the product intentionally accepts that tradeoff.
128
+ 6. Check chunk graph and recursive retrieval shape. Source ids, parent document ids, parent chunk
129
+ ids, previous and next chunk ids, section paths, summary layers, and contextual retrieval
130
+ headers should be available when small chunks need larger context for answer generation. Stable
131
+ ids must survive renames, storage moves, and reindex jobs so citations, deletes, feedback logs,
132
+ and eval sets keep the same lineage.
133
+ 7. Check chunk size and overlap as quality levers, not defaults. Tiny chunks that lose the subject,
134
+ huge chunks that average unrelated meanings, and large overlap that fills top-k with duplicates
135
+ each need separate recall and diversity evidence.
136
+ 8. Validate contextual headers and synthetic questions. Headers should disambiguate product,
137
+ version, document status, authority, section, and entity; synthetic questions should reflect real
138
+ user phrasing without being cited as original source. Keep original, enriched retrieval text, and
139
+ LLM-visible metadata distinct so search bait does not become generated evidence.
140
+ 9. Compare exact search with approximate search on the same query and filter. If exact search is
120
141
  wrong, stop tuning ANN and inspect embeddings, preprocessing, metric, payload, and expectations.
121
- 6. Compare filter-free search, filter-only count, filtered exact search, and filtered ANN search.
142
+ 10. Compare filter-free search, filter-only count, filtered exact search, and filtered ANN search.
122
143
  Empty filtered results often mean filter construction, metadata typing, payload indexing, or
123
144
  post-filter candidate loss rather than bad embeddings.
124
- 7. Confirm collection, namespace, tenant, alias, and named vector. Directly inspect the problem id
145
+ 11. Confirm collection, namespace, tenant, alias, and named vector. Directly inspect the problem id
125
146
  or safe synthetic id in the same search surface the app uses.
126
- 8. Check deterministic upsert ids. Source id, chunk index, tenant, and embedding version should not
147
+ 12. Check deterministic upsert ids. Source id, chunk index, tenant, and embedding version should not
127
148
  accidentally duplicate chunks or overwrite all chunks with one id.
128
- 9. Separate write success from search visibility. Check direct lookup, exact search, ANN search,
149
+ 13. Separate write success from search visibility. Check direct lookup, exact search, ANN search,
129
150
  indexed count, consistency, segment state, and visibility lag.
130
- 10. Check deletes and updates. Deletion marks, tombstones, compaction, vacuum, stale segments, and
151
+ 14. Check deletes and updates. Deletion marks, tombstones, compaction, vacuum, stale segments, and
131
152
  old chunks can keep appearing after API success.
132
- 11. Review metric and normalization. Cosine, dot product, and L2 are different contracts unless
153
+ 15. Review metric and normalization. Cosine, dot product, and L2 are different contracts unless
133
154
  the vectors are intentionally normalized and the index operator matches.
134
- 12. Tune ANN only after the exact and filter contracts are correct. Evaluate recall and p95 latency
155
+ 16. Tune ANN only after the exact and filter contracts are correct. Evaluate recall and p95 latency
135
156
  across parameter sweeps instead of changing one value blindly.
136
- 13. Treat build-time index parameters as recall ceilings. If search-time parameters cannot recover
157
+ 17. Treat build-time index parameters as recall ceilings. If search-time parameters cannot recover
137
158
  recall, the index may need rebuild policy, not a larger query knob.
138
- 14. Review quantization and rescoring. Compare full-precision exact results with compressed-index
159
+ 18. Review quantization and rescoring. Compare full-precision exact results with compressed-index
139
160
  candidates and confirm enough candidates reach full-precision reranking.
140
- 15. For hybrid search, store dense score, sparse or keyword score, normalized score, fusion method,
141
- and final score. Do not add incompatible raw scores directly without a deliberate combiner.
142
- 16. For reranking, record pre-rerank and post-rerank ids and ranks. If the right document never
161
+ 19. For hybrid search, store dense score, sparse or keyword score, normalized score, fusion method,
162
+ RRF or MMR settings when used, and final score. Do not add incompatible raw scores directly
163
+ without a deliberate combiner. Preserve exact product codes, API names, error codes, ticket IDs,
164
+ and dates in lexical fields instead of smoothing them into natural-language embedding text.
165
+ 20. For reranking, record pre-rerank and post-rerank ids and ranks. If the right document never
143
166
  enters the candidate set, the reranker cannot recover it.
144
- 17. Avoid deep ANN pagination as a product contract. Use cursor, filters, grouping, or ordinary
167
+ 21. Avoid deep ANN pagination as a product contract. Use cursor, filters, grouping, or ordinary
145
168
  sorted indexes for deep browsing instead of pretending vector search has cheap random offsets.
146
- 18. Split cold and warm latency, server search time and client wait, vector DB time and reranker
169
+ 22. Split cold and warm latency, server search time and client wait, vector DB time and reranker
147
170
  time, and single-query latency from concurrent load.
148
- 19. Inspect shard, replica, segment, compaction, flush, indexing, memory, disk, and cache state when
171
+ 23. Inspect shard, replica, segment, compaction, flush, indexing, memory, disk, and cache state when
149
172
  p99 or intermittent quality varies across nodes.
150
- 20. Add a golden-set gate when the project has a test surface. Include easy, hard, filtered,
173
+ 24. Add a golden-set gate when the project has a test surface. Include easy, hard, filtered,
151
174
  tenant-scoped, rare-name, synonym, short-query, long-query, and sparse-data cases.
152
175
 
153
176
  <!-- mustflow-section: postconditions -->
@@ -155,6 +178,10 @@ filters, reranking, and latency evidence all agree for the same query contract.
155
178
 
156
179
  - The retrieval symptom, query contract, ingestion contract, quality ledger, performance ledger, and
157
180
  privacy boundary are explicit.
181
+ - Original/index/prompt/embedding text separation, stable source/doc/chunk ids, parent document
182
+ genealogy, payload field typing, ACL prefiltering, contextual headers, synthetic questions,
183
+ chunk graph, content hashes, embedding hashes, exact lexical safeguards, and hybrid or rerank
184
+ ledgers are explicit where relevant.
158
185
  - Exact search, ANN, filters, metadata, namespaces, tenants, named vectors, IDs, deletes, metric,
159
186
  normalization, quantization, hybrid search, reranking, shards, consistency, and latency are fixed
160
187
  or reported where relevant.
@@ -199,8 +226,8 @@ of inventing live diagnostics.
199
226
  - Vector search integrity reviewed
200
227
  - Retrieval symptom, query contract, ingestion ledger, quality ledger, performance ledger, and
201
228
  privacy boundary
202
- - Exact versus ANN, filter, metadata, namespace, tenant, id, delete, metric, normalization,
203
- quantization, hybrid, reranker, shard, consistency, and latency findings
229
+ - Exact versus ANN, filter, metadata, text-variant, namespace, tenant, id, delete, metric,
230
+ normalization, quantization, hybrid, MMR, reranker, shard, consistency, and latency findings
204
231
  - Fix applied or recommended
205
232
  - Evidence level: golden-set evidence, configured-test evidence, static review risk, manual-only,
206
233
  missing, or not applicable
@@ -1,6 +1,6 @@
1
1
  id = "default"
2
2
  name = "default"
3
- version = "2.112.13"
3
+ version = "2.113.0"
4
4
  description = "Minimal workflow for LLM agents to read, edit, and verify their work in a repository."
5
5
  common_root = "common"
6
6
  locales_root = "locales"