dsh-doublecheck 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.es.md +199 -220
- package/README.hi.md +199 -228
- package/README.md +199 -225
- package/README.pt.md +199 -220
- package/README.zh.md +201 -225
- package/lib/domain/gate.d.ts +263 -0
- package/lib/domain/gate.js +658 -0
- package/lib/domain/projection.d.ts +8 -3
- package/lib/domain/projection.js +12 -0
- package/lib/domain/report.d.ts +2 -2
- package/lib/domain/stages.d.ts +1 -1
- package/lib/events.d.ts +46 -4
- package/lib/grill/index.d.ts +1 -1
- package/lib/guard/command.d.ts +2 -2
- package/lib/guard/command.js +3 -0
- package/lib/guard/gate.d.ts +170 -0
- package/lib/guard/gate.js +518 -0
- package/lib/guard/index.d.ts +15 -3
- package/lib/guard/index.js +81 -4
- package/lib/guard/prose.d.ts +17 -0
- package/lib/guard/prose.js +14 -0
- package/lib/guard/review.d.ts +2 -2
- package/lib/index.d.ts +10 -9
- package/lib/index.js +1 -0
- package/lib/invariant.d.ts +3 -1
- package/lib/invariant.js +15 -0
- package/lib/types.d.ts +8 -1
- package/lib/types.js +2 -0
- package/package.json +52 -6
- package/skills/delivery-proof/SKILL.md +12 -0
- package/strict.patch.yml +37 -0
package/README.hi.md
CHANGED
|
@@ -1,287 +1,258 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# dsh-doublecheck
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
**DeepSeek Harness के लिए डिलीवरी गुणवत्ता-द्वार: आवश्यकताओं की पड़ताल करें, कार्यान्वयन का परीक्षण करें, डिलीवरी साबित करें — फिर deliverable / rework required निर्णय से हैंडऑफ़ को नियंत्रित करें।**
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
[](https://www.npmjs.com/package/dsh-doublecheck)
|
|
7
|
-
[](LICENSE)
|
|
8
|
-
[](https://github.com/topics/dsh-plugin)
|
|
9
|
-
[](https://github.com/PerryLink/dsh-doublecheck/actions/workflows/ci.yml)
|
|
7
|
+
*पहली एडिट से पहले आवश्यकताओं की पड़ताल होती है; डिलीवरी साबित की जाती है, दावा नहीं किया जाता।*
|
|
10
8
|
|
|
11
|
-
[
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](https://github.com/topics/dsh-plugin)
|
|
11
|
+
[](#)
|
|
12
|
+
[](https://github.com/PerryLink/dsh-doublecheck/actions)
|
|
13
|
+
[](https://github.com/PerryLink/dsh-doublecheck/releases)
|
|
14
|
+
[](https://www.npmjs.com/package/dsh-doublecheck)
|
|
15
|
+
[](https://www.npmjs.com/package/dsh-doublecheck)
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
[English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
</div>
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
- अनुशासित टीमें यही इंसानों के साथ करती हैं: आवश्यकता-समीक्षा → असफल परीक्षण → सफल परीक्षण → आत्म-समीक्षा → डिलीवरी-प्रमाण। एजेंट भी उसी चक्र के हक़दार हैं — हार्नेस द्वारा लागू, भरोसे से नहीं।
|
|
21
|
+
---
|
|
19
22
|
|
|
20
|
-
##
|
|
23
|
+
## अनुकूलता
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
संरचित spec सेशन और वर्कस्पेस में दर्ज
|
|
29
|
-
```
|
|
25
|
+
| सतह | स्थिति |
|
|
26
|
+
|---|---|
|
|
27
|
+
| Harness | DeepSeek Harness `0.1.0-rc.6` |
|
|
28
|
+
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
29
|
+
| प्लेटफ़ॉर्म | सभी (शुद्ध host; कोई नेटिव कोड नहीं, स्वयं का कोई सीधा नेटवर्क अनुरोध नहीं) |
|
|
30
|
+
| मॉडल | कोई भी (guard स्वयं कभी मॉडल नहीं बुलाता; critic और reviewer चरण harness subagent के रूप में चलते हैं) |
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|---|---|---|
|
|
33
|
-
| **grill** | छह आवश्यकता-आयामों की पड़ताल; सहमति तक कार्यान्वयन से इनकार। | ✅ v0.1 |
|
|
34
|
-
| **design** | `doublecheck_spec` से spec दर्ज। | ✅ v0.1 |
|
|
35
|
-
| **red** | असफल परीक्षण अंतर साबित करता है; कार्यान्वयन संपादनों को यह लॉग में दर्ज चाहिए। | ✅ v0.2 |
|
|
36
|
-
| **green** | संपादनों के बाद पास होने वाला परीक्षण चक्र पूरा करता है। | ✅ v0.2 |
|
|
37
|
-
| **review** | एक फ़ॉर्क किया गया विरोधी-आलोचक spec के विरुद्ध डिलीवरी का ऑडिट करता है। | ✅ v0.3 |
|
|
38
|
-
| **verify** | `doublecheck_report` + प्रति-आयाम सत्यापन वर्कफ़्लो डिलीवरी साबित करते हैं। | ✅ v0.4 |
|
|
39
|
-
|
|
40
|
-
## विशेषताएँ
|
|
41
|
-
|
|
42
|
-
- 🔥 **`grill-requirements` स्किल** — Agent Skills प्रारूप में पैक की गई स्किल, जो DSH की मूल `ask_user_question` UI से कार्य की छह आयामों (**लक्ष्य, दायरा, स्वीकृति-मानदंड, विफलता-स्थितियाँ, प्राथमिकताएँ, निषेध**) पर पड़ताल करती है, सहमति तक कोड लिखने से इनकार करती है और अनुबंध दर्ज करती है।
|
|
43
|
-
- 🧰 **पूरे चक्र के लिए चरण-स्किल्स** — `red-green-tdd` (असफल परीक्षण लिखें, red चलाएँ, लागू करें, green चलाएँ), `delivery-review` (green के बाद spec के विरुद्ध प्रतिकूल आत्म-समीक्षा) और `delivery-proof` (पूर्णता घोषित करने से पहले प्रमाण को डिलीवरी रिपोर्ट में समेकित करें) `grill-requirements` से जुड़ गए: छहों चरणों में मॉडल-मार्गदर्शन है, सिर्फ़ पहले में नहीं।
|
|
44
|
-
- 📜 **`doublecheck_spec` टूल** — सहमत spec को सेशन लॉग में दर्ज करता है और वर्कस्पेस में markdown प्रति लिखता है, ताकि अनुबंध बातचीत के बाद भी बचा रहे। खाली या केवल-व्हाइटस्पेस आयाम कमिट पर अस्वीकार होते हैं (v0.6): spec गिनने से पहले grill को छहों आयाम निपटाने होंगे।
|
|
45
|
-
- 🔄 **कार्य-बदलाव पर फिर grill** — दर्ज spec अपने ही कार्य को कवर करता है: नवीनतम spec के बाद उपयोगकर्ता का नया सीधा अनुरोध उस फ़ॉलो-अप के लिए grill द्वार फिर खोल देता है, पुराने अनुबंध को चुपचाप विरासत में लेने के बजाय।
|
|
46
|
-
- 🛡️ **अनुशासन गार्ड** — टूल पॉलिसी पाइपलाइन पर एक नरम द्वार। अस्पष्ट कार्य + spec नहीं + `edit`/`write` की ओर बढ़ना → `intensity` के अनुसार **याद दिलाना**, **मानव अनुमोदन माँगना** या **रोकना**।
|
|
47
|
-
- 🟥🟩 **Red/green प्रमाण-द्वार** (`modules.tdd`) — सेशन लॉग पर कड़ी जाँचें: कार्यान्वयन संपादन के लिए पिछले पास होने वाले परीक्षण के बाद से एक **असफल परीक्षण लॉग में दर्ज** होना चाहिए (परीक्षण फ़ाइलें लिखना हमेशा अनुमत है — red चरण ऐसे ही घटता है), और जो टर्न संपादनों के साथ पर बिना किसी पास होने वाले परीक्षण के समाप्त होता है, उसमें green अनुस्मारक इंजेक्ट होता है। कस्टम guard टूल बॉक्स से बाहर काम करते हैं: द्वार `file_path` और `path` दोनों argument-कुंजियाँ पढ़ते हैं, और जो कॉल कोई फ़ाइल नहीं बताती वह कार्यान्वयन संपादन नहीं मानी जाती।
|
|
48
|
-
- 👁️ **विरोधी-समीक्षा** (`modules.adversary`) — जब डिलीवरी green पर पहुँच जाती है, तब एक फ़ॉर्क किया गया आलोचक उप-एजेंट (DSH का मूल उप-एजेंट सीम, डिफ़ॉल्ट `fork` provider) प्रतिकूल रुख़ के साथ दर्ज spec के विरुद्ध सेशन का ऑडिट करता है और blocker-प्रथम क्रम में संरचित निष्कर्ष लौटाता है। `remind` आलोचना इंजेक्ट करता है; `warn`/`block` इसके अलावा एक राउंड चलाकर मॉडल से निष्कर्षों का उत्तर दिलवाते हैं। `adversaryModel` आलोचक को अलग मॉडल पर भेजता है; आलोचक की टूल allowlist डिफ़ॉल्ट रूप से read-only है। निष्कर्ष टिकाऊ `doublecheck-review` संदेश-स्रोत पर सवार होते हैं। आलोचक के निपटने के बाद समीक्षा फिर सक्रिय हो जाती है: नवीनतम समीक्षा-रिकॉर्ड के बाद कार्यान्वयन संपादन अगला राउंड चलाते हैं, और टर्न रद्द करने पर चालू आलोचक बाधित होता है।
|
|
49
|
-
- 🌐 **पूरी तरह स्थानीयकृत मॉडल सतह** — पैकेज द्वारा इंजेक्ट या उत्तर दिए गए हर मॉडल-दृश्य वाक्य (अनुस्मारक, अस्वीकृति/पूछताछ फ़ीडबैक, समीक्षा-steering, स्विच सूचनाएँ, `/doublecheck` उत्तर, आलोचक का कार्य-प्रॉम्प्ट) `language: 'en' | 'zh'` का सम्मान करते हैं; वर्कस्पेस spec/report दस्तावेज़ अपने स्थिर अंग्रेज़ी शीर्षक रखते हैं।
|
|
50
|
-
- 📊 **Doublecheck रिपोर्ट + सत्यापन वर्कफ़्लो** (`doublecheck_report`, v0.4) — सेशन के अनुशासन-प्रमाण (spec, red/green समयरेखा, समीक्षा-निष्कर्ष, संपादन) को एक डिलीवरी रिपोर्ट में समेकित करता है, जिसमें व्युत्पन्न निर्णय होता है (`grill → draft → red → green → objections/verified → proven/challenged/unverified`), वर्कस्पेस में लिखी जाती है। `verify` के साथ, प्रति-आयाम जाँचकर्ता DSH के वर्कफ़्लो सीम से चलते हैं (`verifyMode: all` हर आयाम के लिए एक समानांतर जाँचकर्ता लॉन्च करता है; `single` एक संयुक्त जाँचकर्ता चलाता है) और उनके निर्णय रिपोर्ट में समाहित होते हैं — `proven` के लिए हर आयाम का निर्णय ज़रूरी है।
|
|
51
|
-
- 🚦 **डिलीवरी द्वार** — टर्न-सीमा पर, जो डिलीवरी बिना दर्ज `doublecheck_report` के green पर पहुँची है, उसे पूर्णता घोषित करने से पहले रिपोर्ट-अपेक्षित अनुस्मारक मिलता है; सफल रिपोर्ट चरण को `verify` पर बढ़ा देती है।
|
|
52
|
-
- 🔁 **टिकाऊ स्थिति** — मॉडल को दिखने वाली हर चीज़ (spec, अनुस्मारक, अस्वीकृति-फ़ीडबैक, समीक्षा-निष्कर्ष, `/doublecheck on|off` स्विच) सेशन लॉग में दर्ज होती है; द्वारों के निर्णय केवल लॉग से निकलते हैं (`tool/call` + `tool/result`, Code Mode उप-प्रेषण सहित), इसलिए पुनः आरंभ या फ़ॉर्क की गई सेशन भी वैसा ही व्यवहार करती हैं। `remindOnce` भी टिकाऊ है: जिस सेशन को अनुस्मारक मिल चुका, उसे दोबारा कभी नहीं मिलता, रीस्टार्ट के बाद भी। स्विच-fold इंक्रीमेंटल snapshot पर चलता है, इसलिए लंबी सेशनों में प्रति टूल-कॉल O(नए इवेंट) ही खर्च होता है।
|
|
53
|
-
- ⌨️ **`/doublecheck` सेशन कमांड** — `status` प्रभावी स्विच, कॉन्फ़िगर किए मॉड्यूल, प्रवर्तन-तीव्रता और folded चरण-तथ्य (spec, परीक्षण-रंग, समीक्षा, संपादन-संख्या) बताता है; `report` डिलीवरी रिपोर्ट वहीं fold करता है; `on|off` टिकाऊ `doublecheck/state` ओवरराइड लिखता है और स्विच-सूचना इंजेक्ट करता है।
|
|
54
|
-
- 📚 **`doublecheck_skills` टूल** — आधिकारिक स्किल-रजिस्ट्री सीम से पैकेज की स्किल्स सूचीबद्ध व लोड करता है।
|
|
55
|
-
- 🔒 **सख़्त overlay** — `strict.patch.yml` एक patch परत में सभी द्वारों को `block` तीव्रता पर चालू कर देता है (पैकेज के साथ शिप होता है)।
|
|
56
|
-
- 🧩 **स्वतंत्र invariant साथी** — `dsh-doublecheck/invariant` पंक्ति एक वास्तविक उप-पथ निर्यात है: guard लोड किए बिना host के `invariants` रजिस्ट्री से पैकेज-स्वामित्व वाले लेखन-पथ विरोधाभासों (spec/report/review आकार) की रिपोर्ट करती है।
|
|
57
|
-
|
|
58
|
-
## डेमो
|
|
59
|
-
|
|
60
|
-
`intensity: block` और सभी द्वार सक्षम के साथ एक वास्तविक headless रन, टिकाऊ सेशन लॉग से दर्ज की गई ट्रांसक्रिप्ट:
|
|
32
|
+
## आपको क्या मिलता है
|
|
61
33
|
|
|
62
|
-
|
|
63
|
-
dsh --profile demo headless "把这个项目里最慢的代码直接改快,别问我任何问题,直接改文件。"
|
|
64
|
-
```
|
|
34
|
+
`dsh-doublecheck` दो plugin पंक्तियाँ स्थापित करता है जो एक ही टिकाऊ सत्र लॉग से पढ़ती और लागू करती हैं:
|
|
65
35
|
|
|
66
|
-
1.
|
|
67
|
-
|
|
68
|
-
2. मॉडल spec (`doublecheck_spec`) दर्ज करता है, एक असफल परीक्षण लिखता है (परीक्षण फ़ाइलें हमेशा संपादन-योग्य होती हैं) और उसे चलाता है — लॉग `[exit code: 1]` दर्ज करता है, red चरण।
|
|
69
|
-
3. कार्यान्वयन संपादन अब पास होते हैं; बाद का रन `4 passed` दर्ज करता है, green चरण।
|
|
70
|
-
4. फ़ॉर्क किया गया आलोचक डिलीवरी का ऑडिट करता है; उसके गंभीरता-टैग वाले निष्कर्ष इंजेक्ट होते हैं, और `warn`/`block` एक राउंड चलाते हैं ताकि मॉडल उनका उत्तर दे।
|
|
71
|
-
5. `doublecheck_report` सब कुछ एक markdown रिपोर्ट में समाहित कर देता है, जिसमें व्युत्पन्न निर्णय होता है — `proven` जब हर प्रति-आयाम सत्यापन जाँच पास होती है, `challenged` जब कोई जाँचकर्ता आपत्ति करता है।
|
|
36
|
+
1. **`doublecheck-grill`** — आवश्यकताओं की भट्टी: बंडल की गई `grill-requirements` skill, साथ ही मॉडल-मुखी `doublecheck_skills`, `doublecheck_spec` और `doublecheck_report` उपकरण, तथा प्रति-आयाम सत्यापन वर्कफ़्लो।
|
|
37
|
+
2. **`doublecheck-guard`** — अनुशासन guard: grill द्वार, लाल/हरा साक्ष्य द्वार, प्रतिकूल समीक्षा, `/doublecheck` और `/gate` कमांड, `doublecheck.gate` सेटिंग्स नेमस्पेस, तथा चार-चरण डिलीवरी द्वार।
|
|
72
38
|
|
|
73
|
-
|
|
39
|
+
दोनों मिलकर **अनुशासन लूप** लागू करते हैं — *grill → design → red → green → review → verify*:
|
|
74
40
|
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
|
|
41
|
+
```text
|
|
42
|
+
grill ──▶ design ──▶ red ──▶ green ──▶ review ──▶ verify
|
|
43
|
+
│
|
|
44
|
+
└─ छह आवश्यकता आयाम, सहमति द्वार,
|
|
45
|
+
संरचित spec सत्र + कार्यक्षेत्र में प्रतिबद्ध
|
|
78
46
|
```
|
|
79
47
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
48
|
+
| चरण | अर्थ |
|
|
49
|
+
|---|---|
|
|
50
|
+
| **grill** | छह आवश्यकता आयामों की पड़ताल करें; सहमति तक कार्यान्वयन से इनकार करें। |
|
|
51
|
+
| **design** | तय किया गया spec `doublecheck_spec` के माध्यम से प्रतिबद्ध किया जाता है। |
|
|
52
|
+
| **red** | कार्यान्वयन एडिट से पहले एक असफल परीक्षण रन अंतर साबित करता है। |
|
|
53
|
+
| **green** | एडिट के बाद एक सफल परीक्षण रन लूप बंद करता है। |
|
|
54
|
+
| **review** | एक फ़ोर्क किया गया प्रतिकूल आलोचक spec के विरुद्ध डिलीवरी का ऑडिट करता है। |
|
|
55
|
+
| **verify** | `doublecheck_report` + प्रति-आयाम सत्यापन वर्कफ़्लो डिलीवरी साबित करते हैं। |
|
|
86
56
|
|
|
87
|
-
|
|
57
|
+
## त्वरित शुरुआत
|
|
88
58
|
|
|
89
59
|
```sh
|
|
90
|
-
|
|
91
|
-
|
|
60
|
+
# 1. install the bundle into your profile
|
|
61
|
+
dsh plugin --profile web add "github:PerryLink/dsh-doublecheck#main"
|
|
92
62
|
|
|
93
|
-
|
|
63
|
+
# or from npm (published releases)
|
|
64
|
+
dsh plugin --profile web add dsh-doublecheck
|
|
94
65
|
|
|
95
|
-
|
|
96
|
-
dsh --profile
|
|
66
|
+
# 2. restart and verify the row
|
|
67
|
+
dsh --profile web --dump-config | grep -E -A3 'id: doublecheck-(grill|guard)'
|
|
97
68
|
```
|
|
98
69
|
|
|
99
|
-
|
|
70
|
+
दोनों पंक्तियाँ (`doublecheck-grill` और `doublecheck-guard`) प्रोफ़ाइल के साथ स्वतः सक्रिय हो जाती हैं।
|
|
100
71
|
|
|
101
|
-
|
|
102
|
-
dsh plugin --profile <name> remove dsh-doublecheck
|
|
103
|
-
```
|
|
72
|
+
## इंस्टॉल और अनइंस्टॉल
|
|
104
73
|
|
|
105
|
-
|
|
74
|
+
- **git चैनल** (नवीनतम `main`): `dsh plugin --profile web add "github:PerryLink/dsh-doublecheck#main"` — `prepare` स्क्रिप्ट केवल उत्पादन निर्भरताओं के साथ बिल्ड करती है।
|
|
75
|
+
- **npm चैनल** (प्रकाशित रिलीज़): `dsh plugin --profile web add dsh-doublecheck`।
|
|
76
|
+
- **tarball चैनल**: इस repo में `pnpm pack`, फिर `dsh plugin --profile web add ./dsh-doublecheck-<version>.tgz`।
|
|
77
|
+
- **अनइंस्टॉल**: `dsh plugin --profile web remove dsh-doublecheck` (या प्रोफ़ाइल पैच से पंक्तियाँ हटाएँ)।
|
|
106
78
|
|
|
107
|
-
|
|
79
|
+
बिना कॉन्फ़िगरेशन वाले सख्त मोड के लिए (हर द्वार `block` तीव्रता पर चालू, द्वार कवरेज आवश्यक), bundle पैच के ऊपर शामिल ओवरले लागू करें: `dsh --profile web --patch ./node_modules/dsh-doublecheck/strict.patch.yml`।
|
|
108
80
|
|
|
109
|
-
|
|
110
|
-
- टिकाऊ सत्र स्विच (`/doublecheck on|off` → `doublecheck/state`) को host की `ignorable` लेखन-सतह चाहिए (rc.6 के बाद का harness): rc.6 hosts options bag अनदेखा कर देते हैं और इवेंट required-on-read रहता है, इसलिए harness अपग्रेड होने तक इन-मेमोरी स्विच बेहतर है।
|
|
81
|
+
## कॉन्फ़िगरेशन
|
|
111
82
|
|
|
112
|
-
|
|
83
|
+
सभी ट्यून करने योग्य चीज़ें Schemastery `Config` फ़ील्ड हैं (cordis.yml से बदलने योग्य)। id-लक्षित ओवरराइड पूरी पंक्ति बदल देता है — आपको जो भी कुंजी चाहिए उसे दोबारा घोषित करें। `cordis.patch.yml` हर कुंजी को इनलाइन दस्तावेज़ित करता है; Schema डिफ़ॉल्ट ही ट्यूनिंग डिफ़ॉल्ट का एकमात्र स्रोत हैं।
|
|
113
84
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
85
|
+
| कुंजी | डिफ़ॉल्ट | अर्थ |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| `specFile` | `'doublecheck-spec.md'` | प्रतिबद्ध spec markdown के लिए कार्यक्षेत्र फ़ाइल (grill पंक्ति)। |
|
|
88
|
+
| `reportFile` | `'doublecheck-report.md'` | डिलीवरी रिपोर्ट के लिए कार्यक्षेत्र फ़ाइल (grill पंक्ति)। |
|
|
89
|
+
| `reportVerify` | `true` | डिफ़ॉल्ट रूप से सत्यापन वर्कफ़्लो चलाएँ (grill पंक्ति)। |
|
|
90
|
+
| `verifyProvider` | `'fork'` | प्रति-आयाम जाँचकर्ताओं के लिए subagent प्रदाता (grill पंक्ति)। |
|
|
91
|
+
| `verifyMode` | `'all'` | `all` = प्रति आयाम एक समानांतर जाँचकर्ता; `single` = एक संयुक्त जाँचकर्ता (grill पंक्ति)। |
|
|
92
|
+
| `intensity` | `'remind'` | grill, लाल/हरा और समीक्षा द्वारों की प्रवर्तन शक्ति (`remind` / `warn` / `block`)। |
|
|
93
|
+
| `enableByDefault` | `true` | बिना `/doublecheck on\|off` रिकॉर्ड वाले सत्रों के लिए मास्टर स्विच। |
|
|
94
|
+
| `language` | `'en'` | इंजेक्ट किए गए अनुस्मारक/अस्वीकार/समीक्षा/द्वार गद्य की भाषा (`en` / `zh`)। |
|
|
95
|
+
| `guardTools` | `['edit', 'write']` | दोनों द्वारों द्वारा निगरानी किए जाने वाले म्यूटेशन उपकरण नाम। |
|
|
96
|
+
| `vagueTaskMaxChars` | `200` | इससे लंबे कार्य कभी अस्पष्ट नहीं माने जाते। |
|
|
97
|
+
| `remindOnce` | `true` | प्रत्येक अनुस्मारक प्रति सत्र अधिकतम एक बार इंजेक्ट करें (रीस्टार्ट के बाद भी टिकाऊ)। |
|
|
98
|
+
| `testToolNames` | `['bash', 'pwsh']` | शेल उपकरण नाम जो परीक्षण चला सकते हैं। |
|
|
99
|
+
| `testCommandPatterns` | *(pnpm/npm/yarn/bun test, pytest, go/cargo/make test, node --test, deno test, uv run pytest)* | किसी कमांड को परीक्षण रन गिने जाने के लिए मेल खाने वाले regex। |
|
|
100
|
+
| `testFilePatterns` | *(परीक्षण dirs, `*.test.*` / `*.spec.*`)* | परीक्षण फ़ाइलों की पहचान करने वाले regex — हमेशा संपादन योग्य, लाल द्वार से मुक्त। |
|
|
101
|
+
| `modules.grill` | `true` | बंद करने पर grill द्वार अक्षम हो जाता है। |
|
|
102
|
+
| `modules.tdd` | `true` | चालू करने पर लाल/हरा साक्ष्य द्वार सक्षम होते हैं। |
|
|
103
|
+
| `modules.adversary` | `false` | चालू करने पर हरे पर फ़ोर्क किए गए आलोचक समीक्षा सक्षम होती है। |
|
|
104
|
+
| `adversaryModel` | `null` | आलोचक मॉडल मार्ग; `null` = मुख्य मॉडल स्वयं समीक्षा करता है। |
|
|
105
|
+
| `adversaryProvider` | `'fork'` | वह subagent प्रदाता जिस पर आलोचक चलता है। |
|
|
106
|
+
| `adversaryMaxFindings` | `5` | सत्र में इंजेक्ट किए गए निष्कर्षों की सीमा (1–20)। |
|
|
107
|
+
| `adversaryTools` | `['read', 'glob', 'grep']` | आलोचक उपकरण अनुमति-सूची; इसे केवल-पढ़ने योग्य रखें। |
|
|
108
|
+
| `adversaryTimeoutMs` | `120000` | एक आलोचक रन के लिए कठोर समय बजट। |
|
|
109
|
+
| `gate.enabled` | `true` | द्वार पैनल और टर्न-सीमा लाल सूचना के लिए मास्टर स्विच। |
|
|
110
|
+
| `gate.planSuggestion` | `true` | लाल रिपोर्टों में प्लान-मोड पुनः-जाँच सुझाव जोड़ें। |
|
|
111
|
+
| `gate.reportFile` | `'gate-report.md'` | द्वार रिपोर्ट के लिए कार्यक्षेत्र फ़ाइल। |
|
|
112
|
+
| `gate.requirements.checklist` | *(छह spec-आयाम प्रश्न)* | प्लग करने योग्य मुख्य-प्रश्न सूची: `{ id, question, specDimension, required }`। |
|
|
113
|
+
| `gate.requirements.minConfirmed` | `6` | न्यूनतम अनिवार्य प्रश्न जिन्हें पास करना होगा (1..अनिवार्य संख्या)। |
|
|
114
|
+
| `gate.requirements.interrogateTool` | `'ask_user_question'` | वह उपकरण नाम जिसकी कॉलें पूछताछ साक्ष्य गिनी जाती हैं। |
|
|
115
|
+
| `gate.tests.requirePassingRun` | `true` | नवीनतम परीक्षण रन का पास न होना (या अनुपस्थित) लाल बत्ती है। |
|
|
116
|
+
| `gate.tests.allowFailingRuns` | `0` | नवीनतम हरे के बाद लाल से पहले अनुमत असफल रन। |
|
|
117
|
+
| `gate.tests.requireCoverage` | `false` | चालू करने पर परीक्षण आउटपुट में कवरेज साक्ष्य आवश्यक। |
|
|
118
|
+
| `gate.tests.minCoveragePct` | `80` | न्यूनतम कवरेज प्रतिशत (0–100)। |
|
|
119
|
+
| `gate.consistency.*` | `provider: 'fork'`, `model: null`, `tools: ['read','glob','grep']`, `timeoutMs: 120000`, `maxFindings: 5` | स्थानीय संगति समीक्षक के नॉब (`model: null` = मुख्य मॉडल)। |
|
|
120
|
+
| `gate.review.engine` | `'auto'` | `auto` = उपस्थित होने पर dsh-auto-review के निर्णय रिकॉर्ड, अन्यथा स्थानीय समीक्षक; `local` = हमेशा स्थानीय। |
|
|
121
|
+
| `gate.review.provider` | `'fork'` | स्थानीय समीक्षा समीक्षक का प्रदाता (इसके `model`/`tools`/`timeoutMs`/`maxFindings` `gate.consistency.*` से मेल खाते हैं)। |
|
|
122
|
+
|
|
123
|
+
गलत कॉन्फ़िगरेशन लोड पर ज़ोर से विफल होता है: अमान्य regex, खाली या दोहराई गई नाम सूचियाँ, सीमा से बाहर थ्रेशोल्ड और दोहराए गए सूची id चुपचाप कुछ न करने के बजाय त्रुटि फेंकते हैं। `strict.patch.yml` सभी-द्वार-अवरोध ओवरले है जो guard पंक्ति को `intensity: block`, सभी मॉड्यूल चालू और कवरेज आवश्यकता सक्षम करके दोबारा घोषित करता है।
|
|
124
|
+
|
|
125
|
+
## उपकरण और सतहें
|
|
126
|
+
|
|
127
|
+
| सतह | प्रकार | नोट्स |
|
|
128
|
+
|---|---|---|
|
|
129
|
+
| `doublecheck_skills` | उपकरण | skill रजिस्ट्री इंटरफ़ेस के माध्यम से पैकेज की चार बंडल skills को सूचीबद्ध और लोड करता है। |
|
|
130
|
+
| `doublecheck_spec` | उपकरण | छह-आयाम spec को सत्र लॉग और कार्यक्षेत्र markdown कॉपी में प्रतिबद्ध करता है। |
|
|
131
|
+
| `doublecheck_report` | उपकरण | अनुशासन साक्ष्य को डिलीवरी रिपोर्ट में मोड़ता है (वैकल्पिक प्रति-आयाम सत्यापन वर्कफ़्लो)। |
|
|
132
|
+
| `/doublecheck status\|report\|on\|off` | कमांड | स्विच, मॉड्यूल, तीव्रता, चरण तथ्य, मुड़ी हुई रिपोर्ट, और टिकाऊ on/off ओवरराइड। |
|
|
133
|
+
| `/gate status\|run\|config` | कमांड | लाइव सूची प्रगति, तय deliverable/rework रिपोर्ट, और प्रभावी कॉन्फ़िग। |
|
|
134
|
+
| `grill-requirements`, `red-green-tdd`, `delivery-review`, `delivery-proof` | skill | सभी छह लूप चरणों को कवर करने वाली बंडल अनुशासन skills। |
|
|
135
|
+
| `doublecheck.gate` | सेटिंग्स नेमस्पेस | प्लग करने योग्य सूची, सेटिंग्स-सक्षम UI को उजागर (`expose: true`, `applies: restart`)। |
|
|
136
|
+
| `strict.patch.yml` | ओवरले | `block` तीव्रता पर हर द्वार चालू और कवरेज आवश्यकता, एक पैच परत में। |
|
|
137
|
+
| `dsh-doublecheck/invariant` | सहयोगी पंक्ति | host `invariants` रजिस्ट्री के माध्यम से पैकेज-स्वामित्व वाले लेखन-पथ विरोधाभासों की रिपोर्ट करता है। |
|
|
118
138
|
|
|
119
|
-
##
|
|
139
|
+
## द्वार चरण
|
|
120
140
|
|
|
121
|
-
|
|
122
|
-
|---|---|
|
|
123
|
-
| `--dump-config` में `# == dsh-doublecheck` परत नहीं | bundle patch ग़ायब है या कोई पंक्ति `disabled` है — profile का patch क्रम और पंक्ति ids जाँचें। |
|
|
124
|
-
| gates कभी प्रतिक्रिया नहीं देते | `/doublecheck status` चलाएँ: सत्र स्विच बंद हो सकता है, या guard पंक्ति के सारे `modules.*` false हैं। |
|
|
125
|
-
| "Adversary review did not run: the subagents seam is not mounted" | इस profile संयोजन में subagent प्रदाता नहीं — एक लगाएँ (spine संयोजन लाते हैं) या `modules.adversary` बंद करें। |
|
|
126
|
-
| `doublecheck_report` में `verification: null` | `workflowEngine` seam ग़ायब है या run अस्वीकृत/रुका — रिपोर्ट अनुमान लगाने के बजाय यही कहती है। |
|
|
127
|
-
| रिपोर्ट कहती है `unverified` | सत्यापन चला पर हर spec आयाम का फ़ैसला नहीं मिला — `verify: true` से दोबारा चलाएँ; `proven` के लिए छहों चाहिए। |
|
|
141
|
+
डिलीवरी द्वार सत्र के टिकाऊ साक्ष्य को एक कॉन्फ़िगर करने योग्य चार-चरण सूची में एकत्र करता है और एक **deliverable / rework required** निर्णय तय करता है। हर चरण केवल सत्र लॉग को मोड़ता है (रीप्ले ही स्थिति है), इसलिए एक रन रिज़्यूम या फ़ोर्क के बाद समान रूप से पुनः व्युत्पन्न होता है।
|
|
128
142
|
|
|
129
|
-
|
|
143
|
+
| चरण | जाँचें | साक्ष्य स्रोत | मॉडल लागत |
|
|
144
|
+
|---|---|---|---|
|
|
145
|
+
| आवश्यकता पूछताछ | मुख्य-प्रश्न सूची एक-एक करके पुष्ट (डिफ़ॉल्ट रूप से छह spec-आयाम प्रश्न) | प्रतिबद्ध `doublecheck_spec` + `ask_user_question` कॉलें | कोई नहीं |
|
|
146
|
+
| परीक्षण साक्ष्य | नवीनतम रन रंग, हरे के बाद असफल रन, वैकल्पिक कवरेज थ्रेशोल्ड | सत्र लॉग में शेल परीक्षण रन (`[exit code: N]`, कवरेज प्रतिशत) | कोई नहीं |
|
|
147
|
+
| कार्यान्वयन संगति | diff ↔ आवश्यकता मैपिंग: हर एडिट को किसी spec आयाम की सेवा करनी चाहिए | स्थानीय फ़ोर्क समीक्षक (संरचित निष्कर्ष, केवल-पढ़ने वाले उपकरण) | एक subagent |
|
|
148
|
+
| समीक्षा निष्कर्ष | डिलीवरी निर्णय; `engine: auto` उपस्थित होने पर dsh-auto-review के टिकाऊ निर्णय रिकॉर्ड का उपभोग करता है, अन्यथा स्थानीय समीक्षक | `autoReview/verdict` / `autoReview/rejection` इवेंट, या स्थानीय फ़ोर्क समीक्षक | एक subagent (स्थानीय) |
|
|
130
149
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
```yaml
|
|
134
|
-
- id: doublecheck-grill
|
|
135
|
-
config:
|
|
136
|
-
specFile: 'specs/doublecheck-spec.md' # डिफ़ॉल्ट: 'doublecheck-spec.md'
|
|
137
|
-
reportFile: 'specs/doublecheck-report.md' # डिफ़ॉल्ट: 'doublecheck-report.md'
|
|
138
|
-
reportVerify: true # डिफ़ॉल्ट रूप से सत्यापन वर्कफ़्लो चलाएँ
|
|
139
|
-
verifyProvider: 'fork' # प्रति-आयाम जाँचकर्ताओं के लिए provider
|
|
140
|
-
verifyMode: 'all' # 'all' = प्रति आयाम समानांतर जाँचकर्ता; 'single' = एक संयुक्त
|
|
141
|
-
reportTestToolNames: ['bash', 'pwsh']
|
|
142
|
-
reportTestCommandPatterns:
|
|
143
|
-
- '(?:^|[;&|]\s*)(?:(?:pnpm|npm|npx|yarn|bun)(?:\s+run)?\s+(?:test|vitest|jest|mocha)(?:\s|$))'
|
|
144
|
-
- '(?:^|[;&|]\s*)(?:(?:pytest|go\s+test|cargo\s+test|make\s+test|ctest)(?:\s|$))'
|
|
145
|
-
- '(?:^|[;&|]\s*)(?:node\s+--test(?:\s|$))'
|
|
146
|
-
- '(?:^|[;&|]\s*)(?:deno\s+test|uv\s+run\s+pytest)(?:\s|$)'
|
|
147
|
-
reportMutationTools: ['edit', 'write']
|
|
148
|
-
reportTestFilePatterns:
|
|
149
|
-
- '(^|[\\/])(tests?|__tests__|specs?)([\\/]|$)'
|
|
150
|
-
- '\\.(test|spec)\\.[A-Za-z0-9]+$'
|
|
151
|
-
|
|
152
|
-
- id: doublecheck-guard
|
|
153
|
-
config:
|
|
154
|
-
intensity: warn
|
|
155
|
-
modules:
|
|
156
|
-
grill: true
|
|
157
|
-
tdd: true # red/green प्रमाण-द्वार (v0.2)
|
|
158
|
-
adversary: true # फ़ॉर्क किए आलोचक की समीक्षा (v0.3)
|
|
159
|
-
adversaryModel: null
|
|
160
|
-
adversaryProvider: 'fork' # वह उप-एजेंट provider जिस पर आलोचक चलता है
|
|
161
|
-
adversaryMaxFindings: 5 # सेशन में इंजेक्ट होने वाली निष्कर्ष-सीमा
|
|
162
|
-
adversaryTools: ['read', 'glob', 'grep'] # आलोचक की टूल allowlist (read-only)
|
|
163
|
-
adversaryTimeoutMs: 120000 # एक आलोचक रन के लिए कठोर बजट
|
|
164
|
-
guardTools: ['edit', 'write']
|
|
165
|
-
vagueTaskMaxChars: 200
|
|
166
|
-
remindOnce: true
|
|
167
|
-
language: en # 'en' | 'zh'
|
|
168
|
-
enableByDefault: true
|
|
169
|
-
testToolNames: ['bash', 'pwsh']
|
|
170
|
-
testCommandPatterns:
|
|
171
|
-
- '(?:^|[;&|]\s*)(?:(?:pnpm|npm|npx|yarn|bun)(?:\s+run)?\s+(?:test|vitest|jest|mocha)(?:\s|$))'
|
|
172
|
-
- '(?:^|[;&|]\s*)(?:(?:pytest|go\s+test|cargo\s+test|make\s+test|ctest)(?:\s|$))'
|
|
173
|
-
- '(?:^|[;&|]\s*)(?:node\s+--test(?:\s|$))'
|
|
174
|
-
- '(?:^|[;&|]\s*)(?:deno\s+test|uv\s+run\s+pytest)(?:\s|$)'
|
|
175
|
-
testFilePatterns:
|
|
176
|
-
- '(^|[\\/])(tests?|__tests__|specs?)([\\/]|$)'
|
|
177
|
-
- '\\.(test|spec)\\.[A-Za-z0-9]+$'
|
|
178
|
-
```
|
|
150
|
+
लाल बत्तियाँ असफल जाँचें हैं (अनुपस्थित spec, असफल नवीनतम रन, न्यूनतम से कम कवरेज, अनमैप एडिट, blocker/major निष्कर्ष) — हर एक पुनः-कार्य सुझाव रखता है। चेतावनियाँ और छोड़े जाने कभी निर्णय नहीं बदलते। द्वार [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) को कमज़ोर निर्भरता के रूप में एकीकृत करता है: `review.engine: auto` उपस्थित होने पर उसके निर्णय रिकॉर्ड मोड़ता है और अन्यथा स्थानीय समीक्षक पर घट जाता है; द्वार कभी अनुमोदन अनुरोध संश्लेषित नहीं करता।
|
|
179
151
|
|
|
180
|
-
|
|
152
|
+
## उदाहरण रिपोर्ट
|
|
181
153
|
|
|
182
|
-
|
|
154
|
+
`/gate run` यह markdown लौटाता है — इसे PR विवरण में चिपकाएँ:
|
|
183
155
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
| `remind` (डिफ़ॉल्ट) | कॉल जारी रहती है; अनुस्मारक परिणाम-संदर्भ के साथ अगले मॉडल अनुरोध में जाता है। |
|
|
187
|
-
| `warn` | कॉल अप्रूवल सीम से एकबारगी मानव अनुमोदन हेतु रोकी जाती है (कोई चैनल न होने पर अस्वीकार)। |
|
|
188
|
-
| `block` | कॉल अस्वीकार होती है; फ़ीडबैक मॉडल को पहले अनुशासन सुधारने की ओर भेजता है। |
|
|
156
|
+
````markdown
|
|
157
|
+
# Delivery gate report
|
|
189
158
|
|
|
190
|
-
|
|
159
|
+
> **Verdict: rework required** — 2 red item(s)
|
|
160
|
+
> The gate is red. Re-open the work in plan mode to re-check the open items before delivering.
|
|
191
161
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
| `guardTools` | `['edit', 'write']` | वे परिवर्तन-टूल नाम जिन पर दोनों द्वार नज़र रखते हैं। |
|
|
200
|
-
| `vagueTaskMaxChars` | `200` | इससे लंबे कार्य कभी अस्पष्ट नहीं माने जाते। फ़ाइल, पथ, URL, अंडरस्कोर कीवर्ड या हाइफ़न युक्त कीवर्ड बताने वाले छोटे कार्य ठोस होते हैं। |
|
|
201
|
-
| `remindOnce` | `true` | प्रत्येक द्वार का अनुस्मारक प्रति सेशन अधिकतम एक बार — रीस्टार्ट के बाद भी टिकाऊ (लॉग से folded)। |
|
|
202
|
-
| `testToolNames` | `['bash', 'pwsh']` | वे शेल टूल नाम जो परीक्षण चला सकते हैं। |
|
|
203
|
-
| `testCommandPatterns` | *(pnpm/npm/yarn/bun test, pytest, go/cargo/make test, node --test, deno test, uv run pytest)* | वे regex जिनसे मेल खाने पर कमांड परीक्षण-रन माना जाता है। |
|
|
204
|
-
| `testFilePatterns` | *(परीक्षण डायरेक्टरियाँ, `*.test.*` / `*.spec.*`)* | वे regex जो परीक्षण फ़ाइलें पहचानते हैं — हमेशा संपादन-योग्य, red द्वार से मुक्त। |
|
|
205
|
-
| `adversaryModel` | `null` | आलोचक मॉडल मार्ग; `null` = मुख्य मॉडल स्वयं समीक्षा करता है। |
|
|
206
|
-
| `adversaryProvider` | `'fork'` | वह उप-एजेंट provider नाम जिस पर आलोचक चलता है। |
|
|
207
|
-
| `adversaryMaxFindings` | `5` | सेशन में इंजेक्ट होने वाले निष्कर्षों की सीमा (1–20)। |
|
|
208
|
-
| `adversaryTools` | `['read', 'glob', 'grep']` | आलोचक की टूल allowlist; इसे read-only रखें। |
|
|
209
|
-
| `adversaryTimeoutMs` | `120000` | एक आलोचक रन के लिए कठोर समय-बजट। |
|
|
162
|
+
## 1. Requirements interrogation — PASS
|
|
163
|
+
- [✔] **What outcome must the delivery produce?** — spec dimension "goal" committed
|
|
164
|
+
- [✔] **What is in scope, and what is out of scope?** — spec dimension "scope" committed
|
|
165
|
+
- [✔] **Which observable checks prove the work is done?** — spec dimension "acceptanceCriteria" committed
|
|
166
|
+
- [✔] **What can go wrong, and what is the correct behavior in each case?** — spec dimension "failureModes" committed
|
|
167
|
+
- [✔] **What is traded when goals conflict; what is optional?** — spec dimension "priorities" committed
|
|
168
|
+
- [✔] **What does the user explicitly not want?** — spec dimension "nonGoals" committed
|
|
210
169
|
|
|
211
|
-
|
|
170
|
+
## 2. Test evidence — FAIL
|
|
171
|
+
- [✔] **passing test run** — latest test run passed
|
|
172
|
+
- [✔] **failing cases after green** — 0 failing run(s) after green (allowed: 0)
|
|
173
|
+
- [✖] **coverage evidence** — 61% coverage below the 80% minimum — rework: raise coverage above the configured minimum
|
|
212
174
|
|
|
213
|
-
|
|
175
|
+
## 3. Implementation consistency — WARN
|
|
176
|
+
- [⚠] **[minor] src/telemetry.ts touched without a requirement** — [minor] the edit adds a metric no spec dimension covers
|
|
214
177
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
| `reportFile` | `'doublecheck-report.md'` | वह वर्कस्पेस फ़ाइल जो रिपोर्ट markdown प्राप्त करती है। |
|
|
218
|
-
| `reportVerify` | `true` | टूल के `verify` फ़्लैग का डिफ़ॉल्ट। |
|
|
219
|
-
| `verifyProvider` | `'fork'` | वह उप-एजेंट provider जिस पर प्रति-आयाम जाँचकर्ता चलते हैं। |
|
|
220
|
-
| `verifyMode` | `'all'` | `all` = प्रति आयाम एक समानांतर जाँचकर्ता; `single` = एक संयुक्त जाँचकर्ता (एक उप-एजेंट, सस्ता)। |
|
|
221
|
-
| `reportTestToolNames` / `reportTestCommandPatterns` | *(guard पंक्ति के समान डिफ़ॉल्ट)* | रिपोर्ट-स्कोप परीक्षण-रन वर्गीकरण। |
|
|
222
|
-
| `reportMutationTools` / `reportTestFilePatterns` | *(guard पंक्ति के समान डिफ़ॉल्ट)* | रिपोर्ट-स्कोप कार्यान्वयन-संपादन वर्गीकरण। |
|
|
178
|
+
## 4. Review conclusion — PASS
|
|
179
|
+
- [✔] **dsh-auto-review conclusion** — 3 call(s) approved by dsh-auto-review (latest risk: low)
|
|
223
180
|
|
|
224
|
-
|
|
181
|
+
## Red items
|
|
182
|
+
1. **tests/coverage** — 61% coverage below the 80% minimum — *rework: raise coverage above the configured minimum*
|
|
183
|
+
2. **consistency/finding-1** — [minor] the edit adds a metric no spec dimension covers — *rework: src/telemetry.ts touched without a requirement*
|
|
225
184
|
|
|
226
|
-
##
|
|
185
|
+
## Audit
|
|
186
|
+
- review engine: dsh-auto-review
|
|
187
|
+
- generated at: 2026-08-14T12:00:00.000Z
|
|
188
|
+
- counts, ids, and verdicts only: no file contents or session text are embedded, and recognized secrets are redacted.
|
|
189
|
+
````
|
|
227
190
|
|
|
228
|
-
|
|
229
|
-
|---|---|
|
|
230
|
-
| पैक की गई स्किल्स | `ctx.skills.registerProvider()` — स्किल क्षमता सीम, `source: bundled` |
|
|
231
|
-
| सूची/लोड टूल | `ctx.tools.register()` — `doublecheck_skills` |
|
|
232
|
-
| spec + वर्कस्पेस फ़ाइल | `doublecheck_spec` टूल + वैकल्पिक `ctx.fs` लेखन |
|
|
233
|
-
| आवश्यकता-द्वार | `tools/pre-execute` वॉटरफ़ॉल — `allow` / `ask` (अप्रूवल सीम) / `deny` |
|
|
234
|
-
| red द्वार | `tools/pre-execute` वॉटरफ़ॉल — कार्यान्वयन संपादनों से पहले असफल-परीक्षण प्रमाण की कड़ी जाँच |
|
|
235
|
-
| अनुस्मारक इंजेक्शन | `tools/post-execute` वॉटरफ़ॉल — `additionalContexts` → `user/message` के रूप में दर्ज |
|
|
236
|
-
| green द्वार | `agent/turn-stopping` serial — जब संपादनों में पास होने वाला परीक्षण न हो तो समापन अनुस्मारक इंजेक्ट करता है |
|
|
237
|
-
| विरोधी-समीक्षा | `ctx.subagents.start()` — संरचित findings schema वाला forked आलोचक, green पर इंजेक्ट; `warn`/`block` एक राउंड steer करते हैं |
|
|
238
|
-
| डिलीवरी रिपोर्ट | `doublecheck_report` टूल — सेशन-लॉग fold + वर्कस्पेस markdown |
|
|
239
|
-
| सत्यापन वर्कफ़्लो | `ctx.workflowEngine.start()` — प्रति spec आयाम एक समानांतर जाँचकर्ता, संरचित जाँचें |
|
|
240
|
-
| टिकाऊ स्थिति | `tool/call` + `tool/result` + `tool/code-dispatch` + इंजेक्टेड संरचित स्रोतों पर सेशन-लॉग fold; model-visible ⟺ logged |
|
|
241
|
-
| सेशन कमांड | `ctx.commands.register()` — `/doublecheck status|report|on|off`; `on|off` टिकाऊ `doublecheck/state` सेशन इवेंट लिखता है |
|
|
242
|
-
| आंतरिक इवेंट | `doublecheck/spec`, `doublecheck/reminder`, `doublecheck/review`, `doublecheck/report` (declaration merging से typed, `@mode emit`) |
|
|
243
|
-
|
|
244
|
-
agent-loop में कोई बदलाव नहीं। हर पंजीकरण प्रतिवर्ती `ctx.effect` / `ctx.on` / सेवा `register()` है।
|
|
245
|
-
|
|
246
|
-
## मॉडल क्या देखता है
|
|
247
|
-
|
|
248
|
-
- `grill-requirements` स्किल सेशन स्किल-कैटलॉग में शामिल होती है और अंतर्निहित `skill` टूल (या `doublecheck_skills`) से लोड होती है।
|
|
249
|
-
- `ask_user_question` उपयोगकर्ता से पूछने का DSH का मूल तरीका बना रहता है; स्किल केवल उसका निर्देशन करती है (और provider-रहित headless में गद्य-प्रश्नों पर उतर आती है)।
|
|
250
|
-
- अनुस्मारक `{kind:'plugin'}` संदर्भ के रूप में आते हैं, इसलिए ट्रांसक्रिप्ट UI उन्हें इंजेक्शन मेटाडेटा के रूप में दिखाते हैं।
|
|
251
|
-
- आलोचक के स्थिर होने के बाद विरोधी-आलोचना उसी तरह आती है, गंभीरता-टैग वाले निष्कर्षों के साथ; `warn`/`block` के तहत चक्र एक राउंड चलाया जाता है ताकि मॉडल उनका उत्तर दे।
|
|
252
|
-
- `doublecheck_report` समेकित रिपोर्ट को टूल परिणाम के रूप में लौटाता है (spec, परीक्षण समयरेखा, समीक्षा, सत्यापन, निर्णय), इसलिए «डिलीवरी साबित करना» एक कॉल की दूरी पर है।
|
|
253
|
-
- `/doublecheck` ट्रांसक्रिप्ट में सीधे उत्तर देता है: `status` स्विच, मॉड्यूल, तीव्रता और चरण-तथ्य दिखाता है, `report` folded रिपोर्ट छापता है, `on|off` सेशन स्विच बदलता है।
|
|
254
|
-
|
|
255
|
-
## सेशन कमांड
|
|
191
|
+
## अनुमतियाँ और डेटा
|
|
256
192
|
|
|
257
|
-
|
|
258
|
-
/doublecheck
|
|
259
|
-
|
|
193
|
+
- **पढ़ता है**: सत्र लॉग (`tool/call` / `tool/result` / `tool/code-dispatch`, इंजेक्ट किए गए `user/message` स्रोत, और बाहरी `autoReview/*` निर्णय रिकॉर्ड) केवल प्रक्रिया के भीतर; वैकल्पिक प्लान-मोड सेवा स्थिति।
|
|
194
|
+
- **लिखता है**: सत्र कार्यक्षेत्र में `doublecheck-spec.md`, `doublecheck-report.md` और `gate-report.md` (पथ कॉन्फ़िगर करने योग्य) `ctx.fs` इंटरफ़ेस के माध्यम से; टिकाऊ `doublecheck/state` और `doublecheck/gate` सत्र इवेंट।
|
|
195
|
+
- **मॉडल कॉलें**: द्वार के संगति और स्थानीय-समीक्षा चरण (प्रत्येक `/gate run` पर एक-एक subagent), वैकल्पिक प्रतिकूल समीक्षा, और `doublecheck_report` सत्यापन वर्कफ़्लो subagent रन शुरू करते हैं; इसके अलावा कुछ भी मॉडल या नेटवर्क नहीं बुलाता।
|
|
196
|
+
- **कभी नहीं छूता**: क्रेडेंशियल, पर्यावरण चर, या सत्र कार्यक्षेत्र के बाहर कोई फ़ाइल। workshop मेनिफ़ेस्ट केवल `filesystem:read` और `filesystem:write` घोषित करता है। द्वार रिपोर्टें केवल गणना, id और निर्णय रखती हैं; समीक्षक पाठों में पहचाने गए रहस्य भंडारण या प्रदर्शन से पहले संपादित (redacted) कर दिए जाते हैं।
|
|
260
197
|
|
|
261
|
-
|
|
262
|
-
- `report` — सेशन लॉग से डिलीवरी रिपोर्ट वहीं fold करता है (कोई सत्यापन वर्कफ़्लो नहीं; वह रास्ता `doublecheck_report` टूल का है)।
|
|
263
|
-
- `on` / `off` — टिकाऊ `doublecheck/state` इवेंट लिखता है (रीस्टार्ट, रिज़्यूम और फ़ॉर्क के बाद भी बचा रहता है — replay ही state है) और मॉडल-दृश्य स्विच सूचना इंजेक्ट करता है।
|
|
198
|
+
## सुरक्षा सीमाएँ
|
|
264
199
|
|
|
265
|
-
|
|
200
|
+
- **मॉडल-दृश्य ⟺ लॉग किया गया।** हर इंजेक्ट किया गया अनुस्मारक, समीक्षा और द्वार सूचना मानक चैनलों से होकर सत्र लॉग में पहुँचती है; टिकाऊ spec/state/gate तथ्य उपकरण परिणामों या `SessionEventMap` सदस्यों से चलते हैं।
|
|
201
|
+
- **बंद-विफल / ज़ोर से विफल।** guard और द्वार कॉन्फ़िग `apply` में मान्य होता है (assertions फेंकते हैं); जो समीक्षक या प्रतिकूल इंटरफ़ेस नहीं चल सकता वह नकली निर्णय के बजाय ईमानदार "unavailable"/छोड़ने की सूचना के रूप में तय होता है।
|
|
202
|
+
- **ऑडिट-सुरक्षित रिपोर्टें।** द्वार और डिलीवरी रिपोर्टें केवल गणना, id और निर्णय दर्ज करती हैं — कोई फ़ाइल सामग्री या सत्र पाठ नहीं — और मॉडल-निर्मित निष्कर्ष पाठ भंडारण या प्रदर्शन से पहले एक रहस्य-संपादक से गुज़रते हैं।
|
|
203
|
+
- **स्वयं का कोई नेटवर्क नहीं।** प्लगइन कोई सीधा नेटवर्क अनुरोध नहीं करता; आलोचक और समीक्षक subagent harness subagent इंटरफ़ेस से चलते हैं।
|
|
204
|
+
- **dsh-auto-review पर कमज़ोर निर्भरता।** यह कभी import या कठोरता से आवश्यक नहीं होता; द्वार उसके टिकाऊ निर्णय रिकॉर्ड मोड़ता है और स्थानीय समीक्षक पर घट जाता है, और कभी अनुमोदन अनुरोध संश्लेषित नहीं करता।
|
|
266
205
|
|
|
267
|
-
##
|
|
206
|
+
## ज्ञात सीमाएँ
|
|
268
207
|
|
|
269
|
-
|
|
208
|
+
- **rc.6 पर टिकाऊ लेखन।** `/doublecheck on\|off` → `doublecheck/state` और `/gate run` → `doublecheck/gate` को host की `ignorable` append सतह (rc.6 के बाद) चाहिए; rc.6 host पर विकल्प बैग अनदेखा होता है और इवेंट आवश्यक-पढ़ने बना रहता है, इसलिए स्विच स्मृति में रहता है और द्वार रिकॉर्ड केवल कमांड परिणाम + कार्यक्षेत्र फ़ाइल में रहता है, जब तक harness उन्नत नहीं होता।
|
|
209
|
+
- **वैकल्पिक इंटरफ़ेस।** `doublecheck.gate` सेटिंग्स नेमस्पेस केवल तब पंजीकृत होता है जब सेटिंग्स सेवा माउंट हो; `/gate status` की प्लान-मोड पंक्ति वैकल्पिक `ctx.planMode` पढ़ती है (इसके बिना `unknown` दिखाती है); प्रतिकूल समीक्षा को `ctx.subagents` चाहिए; सत्यापन को `workflowEngine` चाहिए।
|
|
210
|
+
- **स्थानीय अवनति।** जब dsh-auto-review अनुपस्थित हो या इस सत्र में उसके कोई निर्णय रिकॉर्ड न हों, तो `gate.review.engine: auto` स्थानीय समीक्षक पर घट जाता है — रिपोर्ट निर्णय गढ़ने के बजाय कारण बताती है।
|
|
270
211
|
|
|
271
212
|
## विकास
|
|
272
213
|
|
|
273
214
|
```sh
|
|
274
|
-
pnpm install
|
|
275
|
-
pnpm run
|
|
276
|
-
pnpm run
|
|
277
|
-
pnpm run test
|
|
278
|
-
pnpm run
|
|
215
|
+
pnpm install # node ^22.19 || >=24
|
|
216
|
+
pnpm run build # tsc --noEmitOnError (lib/ is committed)
|
|
217
|
+
pnpm run prepare # tsc --noEmitOnError (git-install channel)
|
|
218
|
+
pnpm run prepublishOnly # build + full test suite
|
|
219
|
+
pnpm run typecheck # tsc --noEmit + tests tsconfig
|
|
220
|
+
pnpm run lint # eslint src tests
|
|
221
|
+
pnpm test # vitest run
|
|
222
|
+
pnpm run test:coverage # vitest run --coverage
|
|
223
|
+
pnpm run pack:check # build + pack the tarball
|
|
279
224
|
```
|
|
280
225
|
|
|
281
|
-
##
|
|
226
|
+
## विषय
|
|
227
|
+
|
|
228
|
+
`dsh`, `dsh-plugin`, `deepseek-harness`, `engineering-discipline`, `requirements`, `guard`, `skill`, `quality-gate`, `delivery-gate`
|
|
282
229
|
|
|
283
|
-
|
|
230
|
+
## योगदानकर्ता
|
|
231
|
+
|
|
232
|
+
- [@PerryLink](https://github.com/PerryLink) — निर्माता और अनुरक्षक: grill → design → red → green → review → verify अनुशासन लूप, चार-चरण डिलीवरी द्वार, पाँच-भाषा दस्तावेज़, और CI/रिलीज़ पाइपलाइन।
|
|
233
|
+
|
|
234
|
+
## PerryLink DSH Plugin Family
|
|
235
|
+
|
|
236
|
+
यह परियोजना [PerryLink](https://github.com/PerryLink) द्वारा अनुरक्षित [15 DeepSeek Harness प्लगइनों](https://github.com/PerryLink) में से एक है। यदि यह आपकी मदद करता है, तो बाकी भी संभवतः करेंगे:
|
|
237
|
+
|
|
238
|
+
| Plugin | One-liner |
|
|
239
|
+
|---|---|
|
|
240
|
+
| [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors |
|
|
241
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard + delivery quality gate: requirements grill, test gates, adversary review, /gate deliverable/rework panel |
|
|
242
|
+
| [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Durable background child agents with a Web UI sidebar, messaging and interrupt |
|
|
243
|
+
| [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | LSP diagnostics, formatting, completion, code actions and rename over language servers |
|
|
244
|
+
| [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Claude Code outputStyles-equivalent runtime style switching |
|
|
245
|
+
| [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore |
|
|
246
|
+
| [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | Claude Code-style declarative allow/deny/ask permission rules with audit |
|
|
247
|
+
| [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | Second-model auto-review on the approval chain, fail-closed by default |
|
|
248
|
+
| [dsh-memento](https://github.com/PerryLink/dsh-memento) | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool |
|
|
249
|
+
| [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | Security-audit skill pack: secret scan, dependency and supply-chain review |
|
|
250
|
+
| [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | Pin sessions in the Web sidebar with durable ordering |
|
|
251
|
+
| [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | Terminal-style input history for the web composer: arrows, Ctrl+R search |
|
|
252
|
+
| [dsh-github](https://github.com/PerryLink/dsh-github) | GitHub PR/issues integration for DSH, every write gated by approval |
|
|
253
|
+
| [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | Plugin-development knowledge base as an on-demand agent skill |
|
|
254
|
+
| [dsh-claude-move](https://github.com/PerryLink/dsh-claude-move) | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH |
|
|
284
255
|
|
|
285
256
|
## लाइसेंस
|
|
286
257
|
|
|
287
|
-
[Apache
|
|
258
|
+
[Apache License 2.0](LICENSE) © 2026 dsh-doublecheck contributors
|