xarleyn/dsh-doc-impact0

dsh-doc-impact

Deterministic documentation impact engine for DeepSeek Harness

包名
dsh-doc-impact
版本
0.2.1
许可证
MIT
最近更新
2026年8月28日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xarleyn/dsh-doc-impact

Workspace configuration

Create .dsh/doc-impact.yml in the project the agent works on:

version: 1

defaults:
  mode: remind            # remind | require-review | require-resolution | require-update
  scope: turn             # turn | session
  changeDetection: auto   # auto | git | filesystem

rules:
  - id: auth-docs
    description: Authentication behavior documentation
    code:
      include:
        - packages/auth/**
        - packages/server/src/auth/**
      exclude:
        - "**/*.test.ts"
    docs:
      - docs/authentication.md
    direction: code-to-docs     # code-to-docs | docs-to-code | bidirectional
    relation: documents         # documents | specification | synchronized | related
    mode: require-resolution

  # Concise form is also accepted:
  - id: configuration-contract
    code: [packages/config/**]
    docs: [docs/configuration.md]
    direction: bidirectional
    relation: specification

Personal overrides belong in .dsh/doc-impact.local.yml (add it to .gitignore):

disabledRules:
  - legacy-docs

Plugin-level defaults (profile patch)

- insert:
    - id: doc-impact
      name: dsh-doc-impact
      config:
        enabled: true
        configFile: .dsh/doc-impact.yml
        defaults:
          mode: remind
        safety:
          maxReminderRounds: 2
          onLimit: allow        # allow | warn | error
        changeDetection:
          maxSnapshotFiles: 10000
        debug: false

Plugin Configuration UI

The plugin ships a browser half (lib/client.js, exports "./client"), so Settings → Plugins → Plugin Configuration shows a "Doc Impact" card bound to the doc-impact settings namespace. It follows the first-party card model:

  • staged edits — nothing writes before Save; Discard drops drafts;
  • the header carries an unsaved badge while drafts exist;
  • Save stays disabled until there is something to write (and while a draft is invalid or a save is in flight);
  • every field shows whether saving would leave a user-layer override and, when one stands, a per-field Reset that reverts to the composition layer.

Editable fields: enabled, configFile, default mode, maxReminderRounds, onLimit, maxSnapshotFiles, debug. The profile patch row's config: acts as the composition base under these user edits; the engine reads the merged view live (toggling enabled silences the plugin without a restart).