Skip to content

fix(skill): surface excluded .ts file drift in structured results#168

Merged
bug-ops merged 1 commit into
masterfrom
fix/161-skill-drift-warnings
Jul 9, 2026
Merged

fix(skill): surface excluded .ts file drift in structured results#168
bug-ops merged 1 commit into
masterfrom
fix/161-skill-drift-warnings

Conversation

@bug-ops

@bug-ops bug-ops commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • scan_tools_directory now returns ScanResult { tools, warnings } instead of a bare Vec<ParsedToolFile>; .ts files excluded for lacking a _meta.json sidecar entry are now collected as warnings instead of only being logged via tracing::warn!.
  • Warnings flow through to the CLI's skill --format json output (SkillWriteResult::warnings) and the MCP server's generate_skill JSON-RPC response (GenerateSkillResult::warnings), so structured callers (not just log-tailing operators) can detect the drift.
  • The existing hard-error path for missing files (ScanError::StaleMetadata) is unchanged.

Breaking change

scan_tools_directory's return type changed, and GenerateSkillResult gained a new required warnings field (mitigated with #[serde(default)] for forward-compatible deserialization). Documented under [Unreleased] ### Breaking in CHANGELOG.md.

Closes #161

Test plan

  • cargo +nightly fmt --check
  • cargo +stable clippy --all-targets --all-features --workspace -- -D warnings
  • cargo nextest run --all-features --workspace --no-fail-fast (728/728 pass)
  • cargo test --doc --all-features --workspace
  • RUSTDOCFLAGS="--deny rustdoc::broken_intra_doc_links" cargo doc --no-deps --workspace
  • New/updated tests cover: orphaned .ts file surfaced in parser ScanResult.warnings, CLI SkillWriteResult JSON output, and MCP generate_skill JSON-RPC response

@github-actions github-actions Bot added area: cli CLI commands and interface area: bridge MCP bridge and integration crate: mcp-cli Changes to mcp-cli crate (command-line interface) type: documentation Documentation changes (*.md, docs/, comments) breaking change Contains breaking API changes (requires major version bump) release Release preparation (changelog, version bumps) labels Jul 9, 2026
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
bug-ops enabled auto-merge (squash) July 9, 2026 19:01
@bug-ops
bug-ops force-pushed the fix/161-skill-drift-warnings branch from 3a6a953 to 2fbe449 Compare July 9, 2026 19:01
@bug-ops
bug-ops merged commit 63c00f1 into master Jul 9, 2026
17 checks passed
@bug-ops
bug-ops deleted the fix/161-skill-drift-warnings branch July 9, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: bridge MCP bridge and integration area: cli CLI commands and interface breaking change Contains breaking API changes (requires major version bump) crate: mcp-cli Changes to mcp-cli crate (command-line interface) release Release preparation (changelog, version bumps) type: documentation Documentation changes (*.md, docs/, comments)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

skill: extra .ts file drift is only reported via tracing::warn!, invisible to generate_skill JSON-RPC callers and skill --format json callers

1 participant