microsoft / microsoft/SkillOpt
Proposal: add a version-gated DeepSeek Harness transcript source to SkillOpt-Sleep
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 dshand--dsh-session-root; do not add DSH toautodiscovery 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
SessionDigestcontract 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
SessionDigestor fixtures. - Existing harvest sources remain unchanged and the full test/documentation checks pass.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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