54shitaimzf/dsh-price-less ↗★ 1

dsh-price-less

DSH 上下文管理插件:任务边界、项目帧、自动判别与上下文优化(开发中,R2 判别域 P8–P14b1 已施工) 适合做任务结构化与上下文压缩实验,当前仍在开发中,请先阅读仓库说明确认稳定性。

패키지
dsh-price-less
호환성
미검증
Harness peer 범위
>=0.1.3-alpha.1 <2 || >=0.1.5-alpha.0 <2
Cordis peer 범위
>=4.0.0-rc <5
버전
0.0.1
라이선스
MIT
최근 업데이트
2026. 9. 10.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:54shitaimzf/dsh-price-less

Usage

/init I am building a context management plugin
/init confirm

/task Design the command face
/task
/task close

/optimize-prompt
  • /init is only a proposal; /init confirm persists the brief. Cancel any time with /init cancel.
  • /task opens a new task; later messages are classified as continuation or new task by intent detection (when enabled); /task close marks the end, which is what triggers boundary compaction.
  • /optimize-prompt or the star button opens a preview first: it applies only after you confirm, and your edited version is final.
  • Any step can fail without changing anything — the worst case is that nothing happened.

Configuration

Configuration is grouped under shear (tool shear), compression (compaction) and discriminator (intent detection / auxiliary model). Use the GUI settings card, or write ~/.dsh/settings.yaml directly:

context-economy:
  shear:
    enabled: true
  compression:
    boundary: true
    pressure: true
    pressureRatio: 0.35      # pressure valve = ratio × main-model context window
    domainTokens: 125000     # assumed window when the main model declares none
    retainTokens: 10000      # hot-tail budget
    thresholdTokens: 100000  # absolute safety net
    archiveCapTokens: 10000  # archive hard cap (digest only)
  discriminator:
    auto: false              # intent detection is off by default
    # provider: deepseek-official
    # model: deepseek-v4-flash-vision-exp
    # reasoningEffort: high
KeyTypeDefaultDescription
shear.enabledbooleantrueTool-shear master switch
compression.boundarybooleantrueTask-boundary compaction
compression.pressurebooleantruePressure-path compaction
compression.pressureRationumber0.35Pressure valve = ratio × main-model context window
compression.domainTokensnumber125000Assumed window when the main model declares none
compression.retainTokensnumber10000Hot-tail budget
compression.thresholdTokensnumber100000Absolute safety net
compression.archiveCapTokensnumber10000Archive hard cap (digest only)
discriminator.autobooleanfalseAutomatic intent-detection master switch
discriminator.provider / modelstringunsetAuxiliary LLM route; set both to override, empty = follow the session model
discriminator.reasoningEffortstringunsetAuxiliary reasoning effort; unset = follow the model default

The schema declares no default for provider/model, and the plugin ships no built-in default model either (2026-09-10: the previously hard-coded id was date-expired, and "the plugin guessing a model id" is itself a drift source). Left empty, auxiliary calls (intent detection, /init, star section, boundary compaction) follow the current session model (provider/model of the latest request). On the first message of a session there is no request record yet, so discrimination is skipped and an observable CE_JUDGE_NO_ROUTE fact is emitted (/init and the star button report "model not configured" instead); from the second message on it follows the session model automatically. Setting both values overrides all of this. Enabling discriminator.auto or using /init, the star button, or boundary compaction may invoke the auxiliary LLM. This can incur API costs and may send relevant prompt content to the configured provider.