Skip to content
dsh.fish
Bundle

dsh-spec-gate

规格门插件:模糊需求访谈暴露假设(歧义评分收敛)+ 不可变 Seed 规格锁定 + 交付前验收门。借鉴 Ouroboros 访谈门/三段验证思想,与 dsh-cybernetics 协同(验收失败事件喂控制论回路)。

Source
boomzikazita
License
MIT
Updated
Updated yesterday

Readme

# dsh-spec-gate

Specification gate plugin for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh). Turns vague requirements into locked, verifiable specifications before work begins — and refuses to hand over deliverables that don't meet them.

Borrows two ideas from Ouroboros, adapted for content production (writing / analysis / reports):

- **Interview gate**: vague request → Socratic questioning to expose hidden assumptions → ambiguity score (converged at ≤ 0.2 before proceeding)
- **Acceptance gate**: before delivery, mechanically check the draft against the locked Seed (keyword coverage, hard constraints, word count) + semantic alignment hint for the agent

Pairs with [dsh-cybernetics](https://github.com/boomzikazita/dsh-cybernetics): acceptance failures are written to the events log and feed the cybernetic feedback loop.

## Tools

| Tool | Purpose |
|------|---------|
| `spec_interview_assess` | Ambiguity scoring: judge 8 dimensions (audience / purpose / format / data / scope / tone / acceptance / deadline) as clear / assumed / missing; returns score + questions to ask |
| `spec_seed_build` | Lock an immutable Seed (goal / dimensions / acceptance criteria / constraints) after the interview converges; hash-keyed, never overwritten |
| `spec_gate_evaluate` | Pre-delivery acceptance: mechanical checks against the Seed + AC coverage hints; fails closed |

## Install

```bash
dsh plugin --profile web add github:boomzikazita/dsh-spec-gate
```

## Configure

```yaml
# cordis.patch.yml (or the plugin's own bundle patch)
- insert:
    - id: spec-gate
      name: 'dsh-spec-gate'
      config:
        seedsDir: '~/.dsh/spec-gate/seeds'
        eventsLog: '~/.dsh/spec-gate/events.jsonl'
        convergeThreshold: 0.2
        hardGate: false  # block write/edit before a Seed exists (default off)
```

## Usage Flow

1. Vague request arrives → run `spec_interview_assess` → clarify missing dimensions until score ≤ 0.2
2. Lock the spec: `spec_seed_build` → returns `seed_id`
3. Produce the deliverable
4. Verify: `spec_gate_evaluate(draft, seed_id)` → only hand over on pass

## License

MIT

Install

dsh plugin --profile web add github:boomzikazita/dsh-spec-gate

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source