fix(skill): surface excluded .ts file drift in structured results#168
Merged
Conversation
scan_tools_directory now returns ScanResult { tools, warnings } instead
of a bare Vec<ParsedToolFile>. Warnings for .ts files excluded due to
missing _meta.json sidecar entries now flow through to both the CLI's
skill --format json output (SkillWriteResult::warnings) and the MCP
generate_skill JSON-RPC response (GenerateSkillResult::warnings),
instead of being visible only via tracing::warn!.
Closes #161
BREAKING CHANGE: scan_tools_directory's return type changed from
Vec<ParsedToolFile> to ScanResult, and GenerateSkillResult gained a new
required warnings field.
bug-ops
enabled auto-merge (squash)
July 9, 2026 19:01
bug-ops
force-pushed
the
fix/161-skill-drift-warnings
branch
from
July 9, 2026 19:01
3a6a953 to
2fbe449
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
scan_tools_directorynow returnsScanResult { tools, warnings }instead of a bareVec<ParsedToolFile>;.tsfiles excluded for lacking a_meta.jsonsidecar entry are now collected as warnings instead of only being logged viatracing::warn!.skill --format jsonoutput (SkillWriteResult::warnings) and the MCP server'sgenerate_skillJSON-RPC response (GenerateSkillResult::warnings), so structured callers (not just log-tailing operators) can detect the drift.ScanError::StaleMetadata) is unchanged.Breaking change
scan_tools_directory's return type changed, andGenerateSkillResultgained a new requiredwarningsfield (mitigated with#[serde(default)]for forward-compatible deserialization). Documented under[Unreleased] ### Breakingin CHANGELOG.md.Closes #161
Test plan
cargo +nightly fmt --checkcargo +stable clippy --all-targets --all-features --workspace -- -D warningscargo nextest run --all-features --workspace --no-fail-fast(728/728 pass)cargo test --doc --all-features --workspaceRUSTDOCFLAGS="--deny rustdoc::broken_intra_doc_links" cargo doc --no-deps --workspace.tsfile surfaced in parserScanResult.warnings, CLISkillWriteResultJSON output, and MCPgenerate_skillJSON-RPC response