microsoft / microsoft/SkillOpt

Proposal: add a version-gated DeepSeek Harness transcript source to SkillOpt-Sleep

Open
#225 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
17.3k
Forks
1.6k
Avg merge
2d 7h
Merged PRs (30d)
17

Description

Motivation

DeepSeek Harness (DSH) now persists event-sourced sessions, but SkillOpt-Sleep has no DSH transcript source. The recently merged OpenCode source provides a useful precedent for adding a narrow, privacy-conscious harvester independently from an execution backend or plugin.

DSH is currently a developer preview (0.1.0-rc.5) and its session header is version 0, so this integration should be explicitly experimental and fail closed rather than claim forward compatibility.

Proposed MVP

  • Add an explicit --source dsh and --dsh-session-root; do not add DSH to auto discovery yet.
  • Read sessions locally and read-only, accepting only the tested DSH schema/version.
  • Keep root-session visible user/assistant text, short tool names, working directory, timestamps, and immutable session feedback records.
  • Exclude reasoning/chunk events, tool arguments/results, file payloads, request/provider/account metadata, child sessions, and SkillOpt-created replay sessions.
  • Normalize accepted sessions into the existing SessionDigest contract and preserve the current redaction boundary.
  • Add sanitized fixtures and tests for valid sessions, corruption, unknown versions, filtering, redaction, CLI/config routing, and documentation.

Design question

Would maintainers prefer the smallest direct importer for version-0 JSONL (with a documented policy for DSH's default zstd files), or a versioned sanitized export produced by a thin DSH plugin? Direct import is smaller and has no plugin prerequisite; an exporter is a more durable format boundary and can include DSH's separate message-feedback store.

Non-goals

  • A DSH execution backend or tool-aware agentic replay
  • A DSH UI/plugin bundle
  • Automatic skill adoption
  • Recovering message-level feedback from DSH's sidecar when using raw session logs
  • Compatibility with unknown future DSH session versions

Acceptance criteria

  • Harvesting is local, read-only, and requires no DSH model login or running daemon.
  • Unknown or malformed schemas are skipped with a clear warning; no partial permissive parse.
  • since, project, limit, child-session, and replay-session filters have tests.
  • Sensitive event payloads never enter SessionDigest or fixtures.
  • Existing harvest sources remain unchanged and the full test/documentation checks pass.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the recently merged OpenCode source and the existing SessionDigest contract, then inspect the CLI/config routing and current harvest-source tests and fixtures. Done means a version-gated, read-only DSH source with sanitized fixtures, filtering and redaction coverage, clear handling of malformed or unknown schemas, and passing documentation checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, testing, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.