Skip to content

Split skill usage from skill surfacing in Skills Graph #180

@antejavor

Description

@antejavor

Summary

Skills Graph currently records skills returned by list/search operations through the same usage relationship as skills that were actually retrieved or read from a valid local Skill Definition.

We have resolved the domain distinction:

  • Skill Usage: a session used a skill during its work, such as through get_skill or reading a valid SKILL.md Skill Definition.
  • Skill Surfacing: a skill appeared in a list/search result without proving the agent used it.

Problem

Today, surfaced skills can be recorded through the same USED_SKILL relationship with actions such as list_skills_result. That weakens future recommendation and evolution signals because being shown to an agent is not the same as being used by an agent.

Proposed direction

Introduce separate graph semantics:

(:Session)-[:USED_SKILL]->(:Skill)
(:Session)-[:SURFACED_SKILL]->(:Skill)

Keep USED_SKILL for actual use:

  • get_skill
  • valid local SKILL.md reads
  • other explicit skill retrieval/application events

Use SURFACED_SKILL for weaker exposure signals:

  • list_skills results
  • search_skills results
  • search_by_name results

Notes

This follows the context docs in context-graph/skills-graph/CONTEXT.md, where Skill Usage and Skill Surfacing are distinct terms.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions