Skip to content

fix: match .yml as well as .yaml in the four sites that discover YAML files - #1741

Open
elhoim wants to merge 4 commits into
danielmiessler:mainfrom
elhoim:fix/yaml-extension-coverage
Open

fix: match .yml as well as .yaml in the four sites that discover YAML files#1741
elhoim wants to merge 4 commits into
danielmiessler:mainfrom
elhoim:fix/yaml-extension-coverage

Conversation

@elhoim

@elhoim elhoim commented Aug 3, 2026

Copy link
Copy Markdown

4 commits, one per fix, so each can be cherry-picked independently. Each was verified to apply cleanly onto 47df8ee by itself.

Commit Fix
343bfca list .yml suites, not just .yaml
05d8658 resolve a suite saved as .yml
53fdad9 include .yml when scanning USER/SECURITY for docs
2fef266 count .yml files toward tab freshness

Four places that discover YAML files matched only .yaml, so a file written as .yml was skipped in silence. Nothing is broken in the shipped tree — every writer in the codebase emits .yaml — so this only affects hand-authored files, which is where a silent skip is least expected and hardest to diagnose.

The two Evals sites are the ones that matter. Both search the user's own suites directory, and both fail quietly:

  • 343bfcaskills/Evals/Tools/SuiteManager.ts:94. listSuites() walks Suites/{Capability,Regression}/. A .yml suite simply never appeared, with no error.
  • 05d8658skills/Evals/Tools/EvalRunner.ts:85. resolveSuite() searched USER_SUITES and SKILL_SUITES for .yaml only, returned null, and runSuite turns that into a soft "Suite not found" result rather than a throw — so the run reported a missing suite for a file sitting right there. .yaml is still tried first, so precedence is unchanged if both ever exist.

The other two are lower risk but the same shape:

  • 53fdad9LIFEOS/TOOLS/DocCheck.ts:167. Already accepted .yaml in USER/SECURITY/; a .yml policy file dropped out of the doc check, which reads as "checked and clean" rather than "never looked at".
  • 2fef266PULSE/modules/tab-freshness.ts:171. The expanded specs include user-authored data directories (HEALTH/, FINANCES/, BUSINESS/, LOCAL/), so a .yml there was invisible to freshness and a tab could report stale while the newest file in it was the one just edited.

Five sibling sites already handle both and were left alone: DocCrossRefIntegrity.ts:196,210, RebuildArchSummary.ts:59, InstallEngine.ts:339, ReferenceCheck.ts:301, CrossVendorAudit.ts:183. This change brings the remaining four in line with them rather than introducing a new convention.


Testing. Both Evals fixes were verified with a real before/after, by dropping a ymltest.yml suite into Suites/Regression/ in each tree and running the actual functions:

resolveSuite  before: "Suite not found: ymltest"   after: resolves and runs
listSuites    before: [core-behaviors]             after: [ymltest, core-behaviors]

The probe files were removed afterwards; the diff is the four one-line changes only. All four touched files transpile clean under bun build --no-bundle.

Note on overlap. #1739 also touches EvalRunner.ts, in runSuite around lines 113 and 146. This change is in resolveSuite at line 85, so the two do not collide, but they are worth porting in either order rather than concurrently.

elhoim added 4 commits August 3, 2026 07:19
listSuites() reads Suites/{Capability,Regression}/, which includes the user's
own suites. A suite saved as .yml was silently absent from every listing with
no error to explain it. The writers in this skill all emit .yaml, so this only
ever affected hand-authored files — which is exactly where the surprise lands.
resolveSuite() searched USER_SUITES as well as the shipped directory, but only
for .yaml. A user suite written as .yml returned null, which runSuite turns into
a soft "Suite not found" result rather than a throw — so the run reported a
missing suite for a file sitting right there.

.yaml is still tried first, so precedence is unchanged where both exist.
The scan already accepted .yaml there. A policy file written as .yml dropped
out of the doc check silently, which reads as "checked and clean" rather than
"never looked at".
The expanded specs include user-authored data directories (HEALTH/, FINANCES/,
BUSINESS/, LOCAL/). A .yml file there was invisible to freshness, so a tab could
report stale while the file the user had just edited was the newest thing in it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant