Skip to content

[Feature]: Show skill indicator for command-invoked messages with ignored parts #1213

@bdruth

Description

@bdruth

Summary

When a slash command's template is marked synthetic: true in OpenCode, the user message has no visible parts and is dropped entirely. A companion ignored: true text part (e.g. "Running skill: onboarding") is also discarded because isUserVisiblePart filters out ignored parts. Users get no visual feedback that a skill was triggered.

Problem / goal

Users invoking slash commands should see a short confirmation of what skill was triggered, without the full template cluttering the chat.

Primary user(s)

  • Bob (IT / power user)
  • Susan (non-technical)
  • Other team roles

OpenCode primitive alignment

The TextPart schema already supports synthetic and ignored boolean fields (packages/opencode/src/session/message-v2.ts). This is a companion to anomalyco/opencode#15805 which proposes marking command template parts as synthetic: true and emitting a short ignored: true companion part. OpenWork just needs to surface that ignored part instead of discarding it.

Alignment with VISION/PRINCIPLES/PRODUCT

Keeps the chat clean and focused while preserving transparency about what triggered the assistant's response.

Testability

  1. Configure a skill in OpenCode
  2. Invoke it via slash command
  3. Verify the full template text does not appear in the chat
  4. Verify a short italic indicator (e.g. "Running skill: onboarding") appears in the user message area

Ready to build it yourself?

Yes

Additional context

Upstream dependency: anomalyco/opencode#15805. Implementation is ~20 lines in message-list.tsx — extract ignored text parts before the "no renderable parts" check and render as a subtle indicator.

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