Add DeepSeek Harness (DSH) integration - #4336
Open
AnInteger wants to merge 1 commit into
Open
Conversation
Add a skills-based integration for DeepSeek Harness (DSH), the agent runtime behind the dsh CLI and Web GUI. DSH discovers project skills one level deep from .dsh/skills (its native root, provider rank 100) and .agents/skills (rank 200), using speckit-<name>/SKILL.md directory bundles with name/description frontmatter — the same agentskills.io layout SkillsIntegration already scaffolds. Users invoke skills via the '/'-trigger input in the DSH Web GUI (/speckit-specify <description>); the harness injects the rendered <skill_content> into the turn. Project AGENTS.md guidance is loaded natively by DSH, so no context-file handling is needed. - Install skills to .dsh/skills/speckit-<name>/SKILL.md (isolated static root; multi-install safe alongside other agents) - CLI dispatch via 'dsh --profile headless "<prompt>"' one-shot mode - Register 'dsh' in ALWAYS_SLASH_AGENTS so init output and hook messages render /speckit-<command> invocations - Add init next-steps hint, catalog entry, issue-template lists, devcontainer install step, docs table row - Verify with the real dsh-skill-filesystem provider: all 10 skills discovered as user- and model-invocable, bodies loadable Assisted-by: DeepSeek Harness (model: glm-5.3, supervised)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a skills-based integration for DeepSeek Harness (DSH) — the agent runtime behind the
dshCLI and its Web GUI. Closes #4334.How DSH consumes Spec Kit
DSH discovers skills one level deep from
.dsh/skills(its native project root, highest provider rank) and.agents/skills, usingspeckit-<name>/SKILL.mddirectory bundles withname/descriptionfrontmatter — the same agentskills.io layoutSkillsIntegrationalready scaffolds. Users invoke skills through the/-trigger input (e.g./speckit-specify <feature description>); the harness injects the rendered skill content into the turn. ProjectAGENTS.mdguidance is loaded natively by DSH, so no context-file handling is needed in the integration.What changed
src/specify_cli/integrations/dsh/SkillsIntegrationsubclass: installs to.dsh/skills/, slash-style invocations, CLI dispatch viadsh --profile headless "<prompt>",multi_install_safe(isolated.dsh/root coexists with other agents)src/specify_cli/integrations/__init__.py_register(), alphabetical)src/specify_cli/_invocation_style.pydshadded toALWAYS_SLASH_AGENTSso init output and hook messages render/speckit-<command>src/specify_cli/commands/init.pyintegrations/catalog.jsonTestCatalogParitygreen).github/ISSUE_TEMPLATE/*test_issue_template_agent_lists_match_runtime_integrations)docs/reference/integrations.mdtests/integrations/test_integration_dsh.pySkillsIntegrationTestssuite,build_exec_argsregression, DSH-discovery compatibility invariants (kebab-case names,name+descriptionfrontmatter, one-level-deep bundles), multi-install isolation, hook invocation renderingNo
templates/commands/*.mdfiles are touched, so no existing command behavior changes.Test selection reasoning
src/specify_cli/integrations/dsh/__init__.pyspecify init --integration dshsrc/specify_cli/integrations/__init__.pyspecify init/integration installsrc/specify_cli/_invocation_style.pydshadded toALWAYS_SLASH_AGENTSsrc/specify_cli/commands/init.pyspecify initoutputManual test results
Agent: DeepSeek Harness (
dshCLI v0.1.1-rc.2, headless profile) | OS/Shell: Linux (WSL2) / bashspecify init --integration dsh --script sh(T1).dsh/skills/speckit-<name>/SKILL.md; next-steps panel shows thedsh webhint and/speckit-<command>usage;integration listshows dsh (CLI required: yes, multi-install safe: yes);integration uninstall dshremoved all 10 tracked files cleanly/speckit-constitution(T2)dsh --profile headless "/speckit-constitution …"; the skill loaded through the/-token gesture boundary; the agent created.specify/memory/constitution.mdwith a sync impact report and self-validated; exit 0/speckit-specify(T3)create-new-feature.shran and createdspecs/001-markdown-notes-cli/; generatedspec.md(user stories with priorities, Given/When/Then acceptance scenarios, 11 functional requirements) andchecklists/requirements.md; the agent ran the requirements checklist and reported all items passing; exit 0Additional evidence:
@deepseek-ai/dsh-skill-filesystemFileSystemSkillProvideragainst a scaffolded project: all 10speckit-*skills discovered from theproject-dshroot withinvocation: {modelInvocable: true, userInvocable: true}; full skill bodies loadable throughprovider.get()..venv/bin/python -m pytest tests -q: 7231 passed / 156 skipped. The 25 failures are pre-existing PowerShell-encoding environment failures, reproduced identically on a cleanmaincheckout of this machine (verified viagit stash), unrelated to this change.AI disclosure
This PR was implemented with AI assistance (DeepSeek Harness, model: glm-5.3) under human supervision: the integration approach and each design decision (target directory, multi-install safety, CLI dispatch, invocation style) were presented for review and approved by the filer before submission, and all changes and manual test evidence were personally reviewed and re-verified. The commit carries an
Assisted-by:trailer to the same effect.