mustflow 2.31.0 → 2.32.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mustflow",
3
- "version": "2.31.0",
3
+ "version": "2.32.0",
4
4
  "description": "Agent workflow documents and CLI for mustflow repository roots.",
5
5
  "type": "module",
6
6
  "license": "MIT-0",
@@ -185,6 +185,12 @@ source_locale = "en"
185
185
  revision = 3
186
186
  translations = {}
187
187
 
188
+ [documents."skill.heuristic-candidate-selection"]
189
+ source = "locales/en/.mustflow/skills/heuristic-candidate-selection/SKILL.md"
190
+ source_locale = "en"
191
+ revision = 1
192
+ translations = {}
193
+
188
194
  [documents."skill.astro-code-change"]
189
195
  source = "locales/en/.mustflow/skills/astro-code-change/SKILL.md"
190
196
  source_locale = "en"
@@ -559,13 +565,13 @@ translations = {}
559
565
  [documents."skill.security-privacy-review"]
560
566
  source = "locales/en/.mustflow/skills/security-privacy-review/SKILL.md"
561
567
  source_locale = "en"
562
- revision = 21
568
+ revision = 22
563
569
  translations = {}
564
570
 
565
571
  [documents."skill.security-regression-tests"]
566
572
  source = "locales/en/.mustflow/skills/security-regression-tests/SKILL.md"
567
573
  source_locale = "en"
568
- revision = 11
574
+ revision = 12
569
575
  translations = {}
570
576
 
571
577
  [documents."skill.search-ad-content-authoring"]
@@ -121,6 +121,7 @@ routes. Event routes stay inactive until their event occurs.
121
121
  | --- | --- | --- | --- | --- | --- | --- |
122
122
  | Code changes need review before report | `.mustflow/skills/code-review/SKILL.md` | Diff and task goal | Changed files | behavior and regression | `test`, `test_related`, `test_audit`, `lint` | Findings or no-issue note |
123
123
  | An unfamiliar codebase area needs an evidence-based map before planning, implementation, or reporting | `.mustflow/skills/codebase-orientation/SKILL.md` | User request, target area, relevant instructions, and current source, test, schema, template, configuration, or documentation files | Read-only orientation notes and any smallest follow-up edit chosen from inspected evidence | stale documentation, wrong ownership boundary, or invented architecture claim | `changes_status`, `changes_diff_summary`, `mustflow_check` | Scope inspected, entrypoints, flow map, ownership boundaries, verification options, risks, unknowns, and smallest safe next step |
124
+ | Large-scope code, docs, tests, content, log, data, or refactor work needs cheap-signal candidate selection before reading or editing many files | `.mustflow/skills/heuristic-candidate-selection/SKILL.md` | User goal, target scope, file-role boundaries, cheap signals, exclusions, scoring factors, batch limit, and verification contract | Candidate discovery, scoring, read plan, bounded batch edits, and directly synchronized surfaces | token waste, false positives, generated-file noise, unimportant cleanup, hallucinated source content, oversized diff, or missed high-impact file | `changes_status`, `changes_diff_summary`, `test_related`, `docs_validate_fast`, `test_release`, `mustflow_check` | Selection goal, excluded surfaces, cheap signals, scored candidates, selected batch, skipped/deferred files, verification, and remaining selection risk |
124
125
  | A coding task has missing intent, scope, domain, data, security, UX, dependency, architecture, or verification decisions that cannot be safely inferred from repository evidence | `.mustflow/skills/clarifying-question-gate/SKILL.md` | User request, inspected repository evidence, unresolved decisions, reversibility classification, recommended option, and tradeoffs | Blocking questions, safe assumptions, and the smallest safe implementation boundary | over-questioning, lazy questions, expensive wrong assumptions, user-owned decision drift, data loss, auth bypass, public-contract drift, dependency bloat, or unverifiable completion | `changes_status`, `changes_diff_summary`, `mustflow_check` | Repository evidence inspected, blocking questions with recommendations, safe assumptions, selected scope, verification, and remaining ambiguity |
125
126
  | A task chooses, migrates, rewrites, or justifies a primary language, runtime, framework, compile target, or execution environment | `.mustflow/skills/runtime-target-selection/SKILL.md` | Current runtime surfaces, target options, product or system need, environment constraints, migration boundary, smoke targets, and performance or reliability claims | Decision records, skill procedures, route metadata, migration plans, command-contract proposals, tests, fixtures, docs, and smallest selected migration scaffold | language-preference rewrite, unsupported runtime target, unusable build loop, cache or artifact blowup, missing smoke target, deployment drift, or false performance claim | `changes_status`, `changes_diff_summary`, `docs_validate_fast`, `test_related`, `test_release`, `mustflow_check` | Decision boundary, candidate targets, environment and build-loop evidence, smoke targets, migration boundary, calibrated claims, verification, and remaining runtime-target risk |
126
127
  | Non-trivial code work needs early structure decisions around domain rules, public contracts, external I/O, operational safety, failure handling, concurrency, data flow, or future change cost | `.mustflow/skills/structure-first-engineering/SKILL.md` | User request, target files, project context, core boundary, data flow, expected failures, public contracts, I/O surfaces, and verification contract | Risk block, focused boundaries, DTOs, adapters, pure functions, error models, tests, and directly synchronized docs or contracts | under-designed hard boundary, speculative abstraction, vague service layer, mixed I/O and domain rules, hidden partial failure, or untestable behavior | `changes_status`, `changes_diff_summary`, `test_related`, `test`, `lint`, `build`, `docs_validate_fast`, `test_release`, `mustflow_check` | Work risk, structure decision, data flow, failure model, I/O and concurrency boundaries, tests, verification, and remaining structure risk |
@@ -0,0 +1,165 @@
1
+ ---
2
+ mustflow_doc: skill.heuristic-candidate-selection
3
+ locale: en
4
+ canonical: true
5
+ revision: 1
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: heuristic-candidate-selection
9
+ description: Apply this skill when a large folder, repository, documentation set, or refactor request needs cheap-signal candidate selection before reading or editing many files.
10
+ metadata:
11
+ mustflow_schema: "1"
12
+ mustflow_kind: procedure
13
+ pack_id: mustflow.core
14
+ skill_id: mustflow.core.heuristic-candidate-selection
15
+ command_intents:
16
+ - changes_status
17
+ - changes_diff_summary
18
+ - test_related
19
+ - docs_validate_fast
20
+ - test_release
21
+ - mustflow_check
22
+ ---
23
+
24
+ # Heuristic Candidate Selection
25
+
26
+ <!-- mustflow-section: purpose -->
27
+ ## Purpose
28
+
29
+ Prevent agents from opening every file in a large scope before they know which files are likely to matter.
30
+
31
+ Use cheap repository signals to rank candidate files, calibrate the ranking with small samples, read only the selected batch, and verify that the selected change actually improved the targeted risk.
32
+
33
+ <!-- mustflow-section: use-when -->
34
+ ## Use When
35
+
36
+ - The user asks to find sparse, stale, incomplete, weak, outdated, duplicate, oversized, risky, or refactor-worthy files across a broad folder or repository.
37
+ - A request such as "fill in thin docs", "improve weak documents", "refactor files with too much code", "clean up this folder", "audit this area", or "find what to fix first" would otherwise tempt the agent to read many files.
38
+ - The task needs candidate discovery before implementation, especially for documentation sets, content collections, tests, frontend components, backend services, logs, data files, migrations, or monorepo packages.
39
+ - The next safe edit depends on separating file discovery, target selection, precise reading, and modification.
40
+ - The user values efficient navigation, bounded context, or batch-by-batch work over a broad manual sweep.
41
+
42
+ <!-- mustflow-section: do-not-use-when -->
43
+ ## Do Not Use When
44
+
45
+ - The task names one or two exact files and the required edit is already clear.
46
+ - A failing command, stack trace, or reproduction path already identifies the first files to inspect; use `repro-first-debug` or `failure-triage`.
47
+ - The task is only to orient in an unfamiliar area without ranking candidates; use `codebase-orientation`.
48
+ - The task is only to choose a local precedent after the target file is known; use `pattern-scout`.
49
+ - The user explicitly asks for exhaustive manual review of every file and accepts the cost.
50
+
51
+ <!-- mustflow-section: required-inputs -->
52
+ ## Required Inputs
53
+
54
+ - User goal, target scope, and whether the output should be analysis-only, candidate list, or implementation batch.
55
+ - File-type and role boundaries, such as source, tests, docs, schemas, configs, generated files, assets, logs, data, migrations, or package surfaces.
56
+ - Cheap signals available without reading every full file: file names, sizes, line counts, symbol or heading outlines, changed-file summaries, recent churn, inbound or outbound dependency hints, search hits, TODO-like markers, entrypoints, schema or config centrality, test proximity, user-facing routes, and generated-file markers.
57
+ - Exclusion rules for generated output, vendored code, lockfiles, snapshots, build artifacts, caches, and intentionally tiny adapter, index, barrel, or marker files.
58
+ - Risk and importance factors for the domain, such as user-visible route, public API, schema ownership, money, permission, data mutation, external I/O, runtime configuration, search exposure, internal-link centrality, or recent work-in-progress.
59
+ - Batch limit, folder quota, confidence threshold, and verification intents relevant to the selected surface.
60
+
61
+ <!-- mustflow-section: preconditions -->
62
+ ## Preconditions
63
+
64
+ - The task matches the Use When conditions and does not match the Do Not Use When exclusions.
65
+ - Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
66
+ - Candidate selection is needed before reading complete files.
67
+ - Missing cheap-signal sources can be reported without inventing a ranking.
68
+
69
+ <!-- mustflow-section: allowed-edits -->
70
+ ## Allowed Edits
71
+
72
+ - Analysis-only mode may produce a ranked candidate list, read plan, batch plan, and excluded-surface notes without changing files.
73
+ - Implementation mode may edit only the selected bounded batch and directly synchronized files required by the chosen change.
74
+ - Add or update lightweight audit helpers, fixtures, or docs only when the repository already has an appropriate owned surface or the user asked for reusable automation.
75
+ - Do not read, summarize, or modify a whole large folder just because it is in scope.
76
+ - Do not modify generated files, external dependencies, lockfiles, snapshots, or broad shared utilities unless the selected task explicitly requires that surface and the matching skill allows it.
77
+ - Do not fill unknown source material, book summaries, external facts, API behavior, or domain claims from model memory. Mark such targets as `needs_source`, `needs_runtime_check`, or `needs_domain_decision`.
78
+
79
+ <!-- mustflow-section: procedure -->
80
+ ## Procedure
81
+
82
+ 1. Define the selection job.
83
+ - Restate the user goal, target scope, intended deliverable, batch size, and whether edits are allowed now.
84
+ - Decide whether candidates should optimize for risk, importance, certainty, repair value, or low-cost cleanup.
85
+ 2. Classify file roles before scoring.
86
+ - Separate human-authored source from generated output, dependency folders, build artifacts, caches, snapshots, lockfiles, vendored code, and intentionally small glue files.
87
+ - Treat config, schema, route, permission, payment, data mutation, migration, queue, webhook, cache, and external-adapter files as high-impact even when small.
88
+ 3. Gather cheap signals before opening full files.
89
+ - Prefer file metadata, changed-file summaries, search hits, symbol or heading outlines, import or dependency hints, route maps, schema names, test names, warning summaries, and bounded head or tail previews.
90
+ - Use configured command receipts and declared generated maps only as evidence or navigation aids; they do not replace current files or command contracts.
91
+ - For documentation and content, score body-like content separately from frontmatter, imports, exports, component wrappers, links, images, quotes, code blocks, placeholders, and duplicated descriptions.
92
+ - For code, score churn, entrypoint proximity, dependency centrality, missing nearby tests, TODO-like markers, type bypasses, exception density, mutation paths, async or concurrency hints, config and schema ownership, and public-contract exposure.
93
+ 4. Build a candidate score instead of using one metric.
94
+ - Combine risk, importance, certainty, and estimated fix cost.
95
+ - Calibrate small-file findings by file role so index files, barrel exports, type declarations, marker files, and config shims are not treated as broken merely because they are short.
96
+ - For large-file refactors, prefer symbol outlines, export lists, responsibility clusters, churn, dependency centrality, and test coverage gaps before reading the whole file.
97
+ - For documentation gaps, compare each file to its sibling folder pattern and expected document role before calling it thin.
98
+ 5. Avoid tunnel vision.
99
+ - Limit candidates per folder or package so one noisy directory does not consume the whole batch.
100
+ - Include a small random or representative sample from lower-scored files to expose blind spots in the scoring formula.
101
+ - Select good sibling examples as references before editing weak files.
102
+ 6. Choose the read batch.
103
+ - Produce a ranked list with path, score drivers, role classification, likely risk, and why this candidate is worth reading now.
104
+ - Select only the top bounded batch plus any directly required sibling examples or one-step dependencies.
105
+ - Keep candidate selection separate from editing; do not justify edits by retrofitting the ranking after reading.
106
+ 7. Read precisely.
107
+ - Open only selected files, relevant symbols, relevant sections, head or tail previews, and direct dependencies needed to validate the candidate.
108
+ - If a candidate proves healthy, mark it `skipped_healthy` and move on instead of forcing a change.
109
+ - If evidence is insufficient, mark it `needs_source`, `needs_runtime_check`, `needs_domain_decision`, or `needs_larger_scope` rather than guessing.
110
+ 8. Edit the selected batch only when implementation is in scope.
111
+ - Preserve frontmatter, imports, exports, public APIs, routes, schemas, component contracts, and file identity unless the chosen change explicitly requires them.
112
+ - For documents with missing source evidence, add safe scaffolding such as reading questions, verification prompts, known context, application ideas, and follow-up checks instead of invented summaries.
113
+ - For code refactors, keep behavior-preserving changes separate from behavior changes and activate narrower code, test, security, data, UI, or pattern skills as soon as their trigger appears.
114
+ 9. Verify and re-audit.
115
+ - Run the narrowest configured verification intents that cover the changed surfaces.
116
+ - Compare the post-change state to the original selection signals when an audit score, warning count, TODO count, test proximity, or candidate risk was the reason for the work.
117
+ - Stop if the diff grows beyond the selected batch, the scoring evidence was wrong, or verification fails and needs triage.
118
+
119
+ <!-- mustflow-section: postconditions -->
120
+ ## Postconditions
121
+
122
+ - Broad-scope work starts from cheap signals and a bounded candidate list, not full-file reading.
123
+ - Selected candidates have explicit score drivers, role classification, and read reasons.
124
+ - Healthy candidates can be skipped without edits.
125
+ - Edited files stay inside the selected batch and directly required synchronized surfaces.
126
+ - The final report distinguishes selected, modified, skipped, deferred, and unsafe-to-guess candidates.
127
+
128
+ <!-- mustflow-section: verification -->
129
+ ## Verification
130
+
131
+ Use configured oneshot command intents when available:
132
+
133
+ - `changes_status`
134
+ - `changes_diff_summary`
135
+ - `test_related`
136
+ - `docs_validate_fast`
137
+ - `test_release`
138
+ - `mustflow_check`
139
+
140
+ Use narrower configured test, build, documentation, package, or mustflow intents when they better prove the selected surface. Do not invent verification commands from package scripts, external advice, or model memory.
141
+
142
+ <!-- mustflow-section: failure-handling -->
143
+ ## Failure Handling
144
+
145
+ - If cheap signals are unavailable or contradictory, report the missing evidence and fall back to a smaller manual sample instead of reading the whole scope.
146
+ - If many candidates tie, use folder quotas, importance factors, and representative sampling rather than expanding the batch until it becomes unreviewable.
147
+ - If generated files, lockfiles, snapshots, vendored code, or build output dominate the candidate list, tighten exclusions and restart candidate selection.
148
+ - If selected documentation lacks trustworthy source material, do not summarize the missing source; mark the file for source-backed follow-up or add only safe reading and verification scaffolding.
149
+ - If a refactor candidate touches a public API, schema, config, permission, money, data, external I/O, or migration boundary, activate the narrower matching skill before editing.
150
+ - If the batch diff becomes too large or mixes unrelated concerns, stop and report a smaller next batch.
151
+
152
+ <!-- mustflow-section: output-format -->
153
+ ## Output Format
154
+
155
+ - Selection goal and mode
156
+ - Target scope and excluded surfaces
157
+ - Cheap signals gathered
158
+ - Scoring factors and calibration sample
159
+ - Ranked candidates with score drivers
160
+ - Selected read batch and batch limits
161
+ - Files modified, skipped healthy, or deferred with reason
162
+ - Post-change audit or comparison result when applicable
163
+ - Command intents run
164
+ - Skipped checks and reasons
165
+ - Remaining selection, evidence, or batch-size risk
@@ -132,6 +132,12 @@ route_type = "primary"
132
132
  priority = 20
133
133
  applies_to_reasons = ["unknown_change", "code_change"]
134
134
 
135
+ [routes."heuristic-candidate-selection"]
136
+ category = "general_code"
137
+ route_type = "primary"
138
+ priority = 55
139
+ applies_to_reasons = ["unknown_change", "code_change", "docs_change", "test_change", "behavior_change", "performance_change", "ui_change", "data_change"]
140
+
135
141
  [routes."clarifying-question-gate"]
136
142
  category = "general_code"
137
143
  route_type = "adjunct"
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skill.security-privacy-review
3
3
  locale: en
4
4
  canonical: true
5
- revision: 21
5
+ revision: 22
6
6
  lifecycle: mustflow-owned
7
7
  authority: procedure
8
8
  name: security-privacy-review
@@ -167,6 +167,8 @@ Catch security, privacy, and disclosure risks introduced by ordinary code, docum
167
167
  - Store processed event identifiers to avoid duplicate effects. Keep provider event payloads, request bodies, and response bodies out of ordinary logs and dead-letter records unless they are redacted and have a retention rule.
168
168
  22. For database-as-a-service, storage bucket, or realtime rules, check that server-side policies are default-deny, ownership-scoped, and not left in public read/write development mode.
169
169
  23. For input sinks, check parameterized queries, ORM binding, static command maps, output encoding, HTML/Markdown rendering boundaries, unsafe dynamic evaluation, XML/YAML/Markdown parser options, redirect and sort parameters, page-size limits, and framework escape hatches.
170
+ - For escaping, quoting, encoding, or sanitization alerts, identify the exact output domain first: URL component, URL path segment, HTML, SQL, shell argument, regular expression, Markdown, JSON, XML, YAML, log line, or filename. Prefer a structured, domain-aware encoder, parser, query binder, or URL API over manual string replacement.
171
+ - If custom escaping is unavoidable, prove that repeated metacharacters, backslashes, separators, quotes, existing encoded sequences, and reserved characters are handled according to that domain. Treat single-occurrence string replacement, non-global regular expressions, partial slash or quote handling, and `encodeURI` versus `encodeURIComponent` confusion as scanner-worthy patterns until reviewed.
170
172
  24. For file upload and download, check MIME and content signatures, size limits, storage outside executable web roots, SVG/HTML/PDF rendering rules, image or document metadata, filename controls, Unicode confusion, path traversal, download authorization, and resource limits for resizing, archive extraction, or document conversion.
171
173
  - Prefer server-generated asset ids or hash-like storage keys over user filenames in storage paths. Keep original filenames as metadata only.
172
174
  - For private files, avoid returning permanent public URLs or raw storage keys. Recheck authorization before issuing a short-lived signed download URL.
@@ -190,6 +192,7 @@ Catch security, privacy, and disclosure risks introduced by ordinary code, docum
190
192
  31. For agent configuration, MCP/tool setup, prompt files, external instructions, or AI context settings, activate `external-prompt-injection-defense` and check hidden instruction text, suspicious Unicode controls, broad filesystem or shell permissions, network egress, sensitive context inclusion, and over-privileged service tokens.
191
193
  32. For filesystem changes, distinguish lexical containment from the real target. Check symlinks, generated state, package contents, and file APIs that may follow links before claiming a path stays inside the repository.
192
194
  33. For code-scanning alerts, group findings by root cause and rule. Fix the underlying pattern, not only the exact flagged line, and separate repository-setting alerts such as branch protection or maintainer activity from code changes.
195
+ - For incomplete escaping or encoding findings, search the same sink class for adjacent ad hoc sanitizer patterns such as first-occurrence `.replace`, non-global replacement, hand-escaped slashes, quotes, backslashes, path separators, or mixed URL encoders. Replace the pattern with a domain-owned transformation and add a regression test or narrow source-pattern guard when the behavior is release-sensitive.
193
196
  34. For workflow scanner alerts, check action pinning, `persist-credentials`, job-level permissions, reusable workflow permissions, fork pull-request secret exposure, artifact upload boundaries, and privileged identity timing before treating the warning as cosmetic.
194
197
  35. For pinned action references, distinguish tag objects from the commit that implements the tag. Verify pinned SHAs against the action repository so scanner tooling does not report an imposter or non-member commit.
195
198
  36. For dependency scanner alerts, separate production dependency manifests from fixtures, examples, generated test repositories, and intentionally vulnerable samples. Narrow the scan scope before treating fixture-only alerts as product vulnerabilities.
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skill.security-regression-tests
3
3
  locale: en
4
4
  canonical: true
5
- revision: 11
5
+ revision: 12
6
6
  lifecycle: mustflow-owned
7
7
  authority: procedure
8
8
  name: security-regression-tests
@@ -63,6 +63,7 @@ Convert security-sensitive behavior changes into safe negative tests that preser
63
63
  - Any project context or public contract that defines privacy, authorization, upload, callback, payment, or tenant rules.
64
64
  - The executable, shell, filesystem, package, or workflow boundary that should reject repository-controlled input.
65
65
  - Static-analysis rule identifier, flagged location, source-to-sink path, and the intended defensive outcome after the fix.
66
+ - Escaping or encoding domain, dangerous metacharacters, repeated occurrences, existing encoded or reserved characters, and expected canonical output when the finding involves sanitization.
66
67
  - Existing fuzzing or property-based testing libraries, package metadata, lockfiles, and test-runner conventions when generated-input tests are added.
67
68
 
68
69
  <!-- mustflow-section: preconditions -->
@@ -111,7 +112,9 @@ Convert security-sensitive behavior changes into safe negative tests that preser
111
112
  - untrusted metadata override where a repository-controlled field, nested duplicate, component, owner, stage, tier, role, or exemption value is treated as trusted ownership or authorization evidence
112
113
  - invalid-but-present security control values where `false`, `0`, `{}`, `[]`, empty strings, or type-mismatched placeholders satisfy required policy fields
113
114
  - release or package-publishing pipeline code execution before artifact publication
114
- - incomplete escaping, quoting, encoding, or sanitization where the safe behavior can be asserted without invoking a real shell or network target
115
+ - incomplete escaping, quoting, encoding, sanitization, or single-occurrence string replacement where the safe behavior can be asserted without invoking a real shell or network target
116
+ - Include repeated metacharacters, mixed safe and unsafe characters, leading or trailing separators, and domain-specific reserved characters in the smallest representative cases.
117
+ - Prefer asserting the canonical output or denied side effect from the project-owned encoder, URL builder, query binder, or renderer. Use source-pattern guards only when the runtime behavior is difficult to isolate, and do not assert scanner wording, line number, or severity.
115
118
  - stack trace or internal error exposure through a user-visible API, report, dashboard, or command output
116
119
  - insecure password storage, custom cryptography, weak hash use, insecure randomness, or predictable reset or invite tokens
117
120
  - disabled certificate validation, insecure HTTP downgrade, or missing HTTPS enforcement for sensitive traffic
@@ -1,6 +1,6 @@
1
1
  id = "default"
2
2
  name = "default"
3
- version = "2.31.0"
3
+ version = "2.32.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"
@@ -19,6 +19,7 @@ creates = [
19
19
  ".mustflow/skills/behavior-preserving-refactor/SKILL.md",
20
20
  ".mustflow/skills/code-review/SKILL.md",
21
21
  ".mustflow/skills/codebase-orientation/SKILL.md",
22
+ ".mustflow/skills/heuristic-candidate-selection/SKILL.md",
22
23
  ".mustflow/skills/clarifying-question-gate/SKILL.md",
23
24
  ".mustflow/skills/completion-evidence-gate/SKILL.md",
24
25
  ".mustflow/skills/evidence-stall-breaker/SKILL.md",
@@ -144,6 +145,7 @@ minimal = [
144
145
  "behavior-preserving-refactor",
145
146
  "code-review",
146
147
  "codebase-orientation",
148
+ "heuristic-candidate-selection",
147
149
  "clarifying-question-gate",
148
150
  "completion-evidence-gate",
149
151
  "evidence-stall-breaker",
@@ -210,6 +212,7 @@ patterns = [
210
212
  "behavior-preserving-refactor",
211
213
  "code-review",
212
214
  "codebase-orientation",
215
+ "heuristic-candidate-selection",
213
216
  "clarifying-question-gate",
214
217
  "completion-evidence-gate",
215
218
  "evidence-stall-breaker",
@@ -287,6 +290,7 @@ oss = [
287
290
  "behavior-preserving-refactor",
288
291
  "code-review",
289
292
  "codebase-orientation",
293
+ "heuristic-candidate-selection",
290
294
  "clarifying-question-gate",
291
295
  "completion-evidence-gate",
292
296
  "evidence-stall-breaker",
@@ -379,6 +383,7 @@ team = [
379
383
  "behavior-preserving-refactor",
380
384
  "code-review",
381
385
  "codebase-orientation",
386
+ "heuristic-candidate-selection",
382
387
  "clarifying-question-gate",
383
388
  "completion-evidence-gate",
384
389
  "evidence-stall-breaker",
@@ -457,6 +462,7 @@ product = [
457
462
  "behavior-preserving-refactor",
458
463
  "code-review",
459
464
  "codebase-orientation",
465
+ "heuristic-candidate-selection",
460
466
  "clarifying-question-gate",
461
467
  "completion-evidence-gate",
462
468
  "evidence-stall-breaker",
@@ -540,6 +546,7 @@ library = [
540
546
  "behavior-preserving-refactor",
541
547
  "code-review",
542
548
  "codebase-orientation",
549
+ "heuristic-candidate-selection",
543
550
  "clarifying-question-gate",
544
551
  "completion-evidence-gate",
545
552
  "evidence-stall-breaker",