Skip to content

zeph_subagent::filter_skills applies no trust filter at all #6713

Description

@bug-ops

Description

Found by impl-critic (M4) during review of PR #6712 (#6707/#6706 fix). zeph_subagent::filter_skills (crates/zeph-subagent/src/filter.rs:503) builds a subagent's visible skill list with no trust-level filtering whatsoever — Blocked and Quarantined skills alike are passed through unfiltered. This is unrelated to the #6710/#6701 fix (which addressed active_skill_names/matching in zeph-core's assembly.rs) and unrelated to #6712's mention-picker fix (skill_catalog_items, also zeph-core) — this is a separate code path in zeph-subagent.

#6706's original complaint ("an AutoSkill draft... will still surface in matching and be reported to the user/subagent as an available skill by name") explicitly named the subagent listing surface, but neither #6710 nor #6712 touched zeph-subagent.

Reproduction Steps

  1. Have a skill with Blocked or Quarantined trust in the registry.
  2. Spawn a subagent whose skill visibility is built via zeph_subagent::filter_skills.
  3. Inspect the skill list the subagent receives.

Expected Behavior

filter_skills should apply the same trust-aware filtering as the parent-agent surfaces it: at minimum, exclude Blocked (and, per the resolution converged on in #6710/#6712, either exclude or annotate Quarantined consistent with whatever listing surface filter_skills feeds).

Actual Behavior

No trust filter is applied — Blocked and Quarantined skills appear identically to Trusted ones in the subagent's skill list.

Environment

Related

Metadata

Metadata

Assignees

Labels

P3Research — medium-high complexitybugSomething isn't workingsecuritySecurity-related issueskillszeph-skills crate

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions