During the development and debugging of DeepSeek Harness (DSH), tracking skill triggers and tool calls is a common requirement. Models sometimes self-report status, which can make log data unreliable. To solve this problem, a solution based on engine logs rather than model self-reporting is needed to show skill and tool usage below each response.

dsh-skill-trail is a DSH plugin used to render compact trail information in the chat interface.

What Is It

The plugin runs in DeepSeek Harness and renders a trail below each assistant response. It shows which skills were triggered (🧠) and which tools were actually used (✓) or failed (✗). The data source is engine logs, not model output.

  • Maintainer: Bryan-cmf
  • Category: Memory
  • License: MIT

Core Features

  • Render Trail: Display compact skill and tool badges below each assistant response.
  • Zero Model Self-Reporting: The data is fully based on projection folding of engine logs and does not rely on model output.
  • Engine Log Based: Logs are processed through the session-projection unit to ensure data authenticity.
  • Structured and Replayable: The data is structured and supports replay through caching and backfilling.
  • Per-turn Display: Each response displays the trail for its corresponding turn.
  • Skill-aware: Skill tool calls are rendered as 🧠 and show the resolved skill name.
  • Collapsible Session Logs: Supports collapsing session logs.

Installation and Enablement

The plugin requires DSH version >= 0.1.0-rc.6.

Installation Path A (Recommended):
Configure dsh.profile.bundles in the project’s package.json and add the plugin to it:

{
  "dsh": {
    "profile": {
      "bundles": ["@bryan-cmf/dsh-skill-trail"]
    }
  }
}

After installing and restarting DSH, the projection unit is registered globally, and the client renderer displays the trail in each conversation.

Typical Usage

Configuration Example:
You can limit the number of turns and calls per turn in the configuration:
* maxTurns=500: Maximum number of turns retained per session.
* maxCallsPerTurn=50: Maximum number of triggered entries per turn.

Getting Projection Values:
Use useProjection('skillTrail') to retrieve structured data. The return type is Record<turn, { triggered, used, failed }>.

{
  "12": {
    "triggered": [
      {
        "name": "skill",
        "skill": "ak-hk-stock-dd",
        "status": "ok",
        "callId": "call_1"
      }
    ],
    "used": {
      "skill": 1,
      "read": 3,
      "bash": 2
    },
    "failed": ["web_search"]
  }
}

Use Cases and Notes

  • Dependencies: The plugin depends on @deepseek-ai/cordis, react, zod, and other peerDependencies.
  • Version Status: The current version is 0.1.4-alpha.0, in Alpha status.
  • Replacement: The plugin has been replaced by @bryan-cmf/dsh-skill-ledger. This repository is archived and retained only as a design history record.

Conclusion

dsh-skill-trail implements zero model self-reporting skill and tool trail tracking by projecting engine logs, providing a structured and replayable data view. Since it has been replaced by a new plugin, refer to the design history record for more information.

  • GitHub: https://github.com/Bryan-cmf/dsh-skill-trail
  • Directory Page: https://www.skillhub.cn/plugins/Bryan-cmf/dsh-skill-trail