# लुन्हेंग (lunheng-article-pipeline) — बहु-एजेंट दीर्घ-लेख पाइपलाइन

> 版本：v18.2.8（DSH bundle：package.json + cordis.patch.yml + lib/index.js）

> 🌐 [English](README.md) ｜ [中文](README.zh.md) ｜ [Español](README.es.md) ｜ [Português](README.pt.md) ｜ **हिन्दी**（यह फ़ाइल）

> एक DeepSeek Harness (DSH) बंडल जो माँग पर एक एजेंट स्किल पंजीकृत करता है। यह स्किल दीर्घ लेखन — शोध-पत्र, उद्योग विश्लेषण, व्यावसायिक समीक्षा और लंबे लेख — को **मानव-सहभागिता वाली 9-भूमिका पाइपलाइन** में बदल देती है।

## What this is

लुन्हेंग एक लेखन पाइपलाइन है, पाठ जनरेटर नहीं। यह दीर्घ लेख के उत्पादन को 6 चरणों में 9 स्वतंत्र भूमिकाओं (T1–T9) में बाँटती है, उन्हें DSH के `subagent` कॉल से संचालित करती है, और प्रमाण-आधार, प्रति-तर्क समीक्षा, स्वतंत्र लेखा-परीक्षण तथा मानव जाँच-बिंदुओं सहित परिणाम देती है।

नौ भूमिकाएँ स्वतंत्र और अप्रतिस्थाप्य हैं: T1 साहित्य खोज, T2 आँकड़ा खोज, T3 प्रकरण खोज, T4 विश्लेषण, T5 लेखन, T6 समालोचक साथी, T7 लेखा-परीक्षक, T8 अंतिम जाँच (समन्वयक स्वयं करता है), T9 सहकर्मी समीक्षा।

## When to use it

- आपको ऐसा दीर्घ लेख चाहिए (2000 अक्षरों से अधिक) जो परीक्षण में टिके, और आप 1–3 घंटे प्रतीक्षा कर सकते हैं।
- विषय में तथ्य, आँकड़े या अनेक दृष्टिकोण हैं, अतः मत-मात्र नहीं बल्कि प्रमाण-आधार चाहिए।
- आप मानव जाँच-बिंदु चाहते हैं: लिखने से पहले रूपरेखा की पुष्टि, और अंतिम प्रारूप की समीक्षा।

## When not to use it

लुन्हेंग **प्रकाशित** प्रमाण जुटाती है और आपके दिए प्रमाण को समाहित करती है। निम्नलिखित स्वयं नहीं कर सकती; सामग्री पहले दें या दूसरा साधन चुनें:

- **प्रथम-हस्त आँकड़ा संग्रह** — प्रयोग, सर्वेक्षण, साक्षात्कार, क्षेत्र-कार्य।
- **सांख्यिकीय विश्लेषण** — परिणाम उद्धृत कर सकती है, पर SPSS/R/Python नहीं चलाती।
- **चार्ट हेतु कच्चा आँकड़ा संग्रह** — दृश्यांकन बनाती है; स्क्रैपिंग, OCR और वाक्-लेखन हेतु अलग साधन चाहिए।
- **मौलिक चित्र या वीडियो** — DSH में चित्र-जनन अंतर्निहित नहीं; आवरण स्थानीय SVG या आपकी दी फ़ाइल से बनते हैं।
- **कोड निष्पादन** — पाइपलाइन केवल अनुमत स्क्रिप्ट चलाती है; शेष हेतु आपकी स्पष्ट अनुमति आवश्यक है।

सरल नियम: पूछें कि प्रमाण पहले से **प्रकाशित** है या नहीं। हाँ हो तो लुन्हेंग जुटाएगी; न हो तो पहले दें।

## What you get

| मद | विवरण |
|---|---|
| साहित्य कार्ड `[Lxx]` | प्रकाशित स्रोत, A/B/C विश्वसनीयता श्रेणी और पूर्ववर्ती सूची |
| आँकड़ा कार्ड `[Dxx]` | मान, स्रोत, वर्ष, ताज़गी श्रेणी, विश्वास स्तर और परस्पर विरोधी मान साथ-साथ |
| प्रकरण कार्ड `[Cxx]` | घटना-संरचना (कौन/कब/क्या/प्रत्येक पक्ष), या स्पष्ट `[C-空]` रिक्त चिह्न |
| विश्लेषण रूपरेखा | तर्क-धारा, दावा-प्रमाण मानचित्रण, प्रति-तर्क योजना, भार-वाहक प्रमाण |
| प्रारूप | क्रमिक संस्करण, AI-चिह्न सफ़ाई सहित, प्रत्येक स्वतंत्र लेखक से |
| रिपोर्ट | समालोचना (C1–C7), लेखा-परीक्षा (G0–G14), सहकर्मी समीक्षा (6 आयाम + पत्रिकाएँ) |
| अंतिम उपज | `final/定稿.md`, चित्र, प्रमाण-पुंज, वितरण टिप्पणियाँ, M-द्वार रिपोर्ट |
| DSH एकीकरण (bundle स्थापना पर) | दो **केवल-पठन** उपकरण — `lunheng_m_gate` (M-द्वार यांत्रिक पूर्व-जाँच) और `lunheng_char_count` (शुद्ध चीनी अक्षर गणना); सूची में न हों तो पहले की तरह `pwsh` से वही स्क्रिप्ट चलाएँ (एक ही स्रोत)। मानव आदेश `/lunheng-status` (`run/<परियोजना>/status.md` पढ़ता है; मॉडल संदेश नहीं बनाता)। **तंत्र-फ़ाइल लेखन सुरक्षा**: वैश्विक guard स्किल पैकेज को लक्षित `write`/`edit` प्रकार की उपकरण-कॉल अस्वीकार करता है, अतः सत्र चुपचाप पाइपलाइन के अपने नियम नहीं बदल सकता। **सीमा स्पष्ट रूप से**: guard केवल **उपकरण-कॉल** देखता है — `pwsh`/उप-प्रक्रियाएँ **इस द्वार से नहीं गुज़रतीं**; स्वामी की छूट `LUNHENG_ALLOW_MECH_EDIT=1` (या `config: { allowMechanismEdit: true }`) है। प्लगइन **Config** (परिनियोजन स्विच, आपकी profile में इस प्लगइन की पंक्ति पर) `quiet`, `allowMechanismEdit`, `scriptTimeoutMs`, `scriptMaxOutputBytes` कवर करता है — वही नियंत्रण जो `LUNHENG_QUIET` / `LUNHENG_ALLOW_MECH_EDIT` env देते हैं, पर profile के साथ संस्करणित और समीक्षायोग्य; **अवैध config लोड के समय ज़ोरदार विफल होता है**, चुपचाप डिफ़ॉल्ट पर नहीं लौटता। |

## Pipeline overview

```text
चरण 0  विषय          विषय, लंबाई, उद्धरण-प्रारूप तय; बाह्य सेवाओं की सहमति
चरण 1  खोज           T1 साहित्य ∥ T2 आँकड़े ∥ T3 प्रकरण (वास्तविक समानांतर, स्वतंत्र)
द्वार T2.5            आँकड़ा प्रविष्टियाँ ≥ ब्रीफ़ की माँग; विश्वास स्तर पूर्ण
चरण 2  विश्लेषण       T4 विश्लेषक → विश्लेषण रूपरेखा
चरण 2.5 रूपरेखा       मानव समीक्षा (चक्र में)
चरण 3  लेखन          T5 लेखक → प्रारूप v1
चरण 3.5 दृष्टि        मानव प्रथम-हस्त संदर्भ देता है (चक्र में) → प्रारूप v2
चरण 3.6 समालोचना     T6 समालोचक साथी → C1–C7 रिपोर्ट
चरण 4  लेखा-परीक्षा   T7 परीक्षक → G0–G14 रिपोर्ट और संशोधन सूची
चरण 4.2 संशोधन        लेखक + संशोधन टिप्पणियाँ (≤2 चक्र, स्वतंत्र लेखक)
चरण 4.5 समीक्षा       T9 सहकर्मी समीक्षा + G14 AI-चिह्न द्वार (समानांतर); चित्र
द्वार T7.5            नवीनतम परीक्षा + P0/P1 सूची + M-द्वार exit 0 + पृथक्करण
चरण 5  अंतिम जाँच     T8 (समन्वयक द्वारा) → अंतिम पाठ, प्रमाण-पुंज, वितरण टिप्पणियाँ
```

**त्रिकोणीय प्रमाण-आधार** (`[L]` + `[D]` + `[C]`) — प्रत्येक दावा साहित्य, आँकड़ों और घटना-दावों हेतु प्रकरणों से जुड़ना चाहिए। **स्वतंत्र लेखा-परीक्षा** — परीक्षक कभी संपादन नहीं करता। **चार मानव बिंदु** — चरण 0, 2.5, 3.5 और 5।

## Repository layout

```text
lunheng-article-pipeline/                 # पैकेज ही रिपॉज़िटरी है
├── package.json              # main (lib/index.js) + dsh.bundle.patch घोषित करता है
├── cordis.patch.yml          # बंडल परत: स्व-पंजीकरण पंक्ति + 3 स्तरीय subagent उपकरण (LUNHENG_* सेट होने पर ही लदते हैं)
├── lib/index.js              # प्लगइन प्रवेश: स्किल + केवल-पठन उपकरण + तंत्र-लेखन गार्ड + /lunheng-status
├── skills/lunheng-article-pipeline/       # स्किल का मुख्य भाग (एक निर्देशिका)
│   ├── SKILL.md              # स्किल प्रवेश (भूमिकाएँ, द्वार, निष्पादन सीमाएँ)
│   ├── AGENTS.md             # संचालक पुस्तिका
│   ├── QUICKSTART.md         # पाँच मिनट में आरंभ
│   ├── README.md             # स्किल-स्तरीय रीडमी (चीनी)
│   ├── references/           # 9 भूमिका कार्ड, टेम्पलेट, द्वार-एल्गोरिद्म, पत्रिका-कोश
│   └── scripts/              # निर्भरता-रहित .mjs सत्यापन स्क्रिप्ट (संख्या: स्किल की श्वेतसूची पंक्ति देखें)
├── scripts/                  # रिपॉज़िटरी द्वार: पैकेजिंग सतह + यांत्रिक स्वच्छता + पैकेज स्मोक
├── tests/                    # node --test सूट (स्क्रिप्ट + प्रवेश स्मोक)
├── docs/                     # स्थापना, उपयोग, संरचना, faq, समस्या-निवारण
├── examples/preset/          # मॉडल-स्तर नोट्स और स्थापना मार्गदर्शिका
├── README.md                 # अंग्रेज़ी स्रोत
├── README.zh.md README.es.md README.pt.md README.hi.md
├── SECURITY.md CHANGELOG.md CONTRIBUTING.md LICENSE
```

प्लगइन प्रवेश `skills/lunheng-article-pipeline/SKILL.md` को स्किल के रूप में पंजीकृत करता है और `resourceBase` उसी निर्देशिका की ओर इंगित करता है, अतः `references/**` और `scripts/**` किसी भी कार्य-निर्देशिका से उसके सापेक्ष हल होते हैं।

patch परत दो काम करती है: **इस पैकेज के लिए एक पंक्ति जोड़ती है** (`- id: lunheng-article-pipeline` / `name: lunheng-article-pipeline`) — यही पंक्ति loader को `lib/index.js` आयात करने पर बाध्य करती है, और वही स्किल पंजीकृत करता है — तथा तीन स्तरीय subagent उपकरण जोड़ती है, जो **डिफ़ॉल्ट रूप से नहीं लदते** (कोई भी `LUNHENG_{RETRIEVAL,STRONG,AUDIT}_{PROVIDER,MODEL}` या `LUNHENG_TIERING=on` सेट करने पर लदते हैं, `off` पर बलपूर्वक अनलोड)। **यह पंक्ति भार-वाहक है**: इसके बिना प्रवेश कभी आयात नहीं होता और स्किल दिखती नहीं (v18.0.0 का दोष, 18.0.1 में ठीक; `tests/bundle-contract.test.mjs` द्वारा सुरक्षित)।

### Documentation

| फ़ाइल | सामग्री |
|---|---|
| `docs/installation.md` | स्थापना व सत्यापन |
| `docs/usage.md` | उपयोग प्रवाह (चरण व आर्टिफ़ैक्ट संरचना) |
| `docs/architecture.md` | संरचना (9 भूमिकाएँ, त्रिकोणीय प्रमाण, G0–G14 लेखा-परीक्षा, M-gate) |
| `docs/introduction.md` | प्लगइन परिचय |
| `docs/faq.md` | सामान्य प्रश्न |
| `docs/troubleshooting.md` | स्थापना/सत्यापन समस्या-निवारण (लक्षण → कारण → उपाय) |
| `SECURITY.md` | सुरक्षा नीति व विश्वास-सीमा |
| `CHANGELOG.md` | संस्करण इतिहास |
| `CONTRIBUTING.md` | रखरखाव व प्रकाशन मार्गदर्शिका |

### Publishing (maintainers)

संस्करण **केवल tag से** प्रकाशित होते हैं; स्थानीय `npm publish` वर्जित है (यह CI द्वारों और OIDC provenance को दरकिनार करता है, और npm संस्करण कभी अधिलेखित नहीं हो सकता)।

```sh
git tag v18.2.8 && git push origin v18.2.8   # एक बार में एक ही tag (GitHub: >3 tag एक push में कोई workflow नहीं चलाता)
# publish.yml क्रम: द्वार 1 सुसंगति → द्वार 2 पैकेजिंग → द्वार 3 स्वच्छता → द्वार 4 पैकेज स्मोक → स्क्रिप्ट परीक्षण
#   → tag/संस्करण समानता → idempotency गार्ड → OIDC publish --provenance --tag dsh → प्रकाशन-पश्चात लेखा-परीक्षा
```

## Install

**बंडल के रूप में** (अनुशंसित; प्रवेश स्किल + C-समूह क्षमताएँ पंजीकृत करता है, और patch परत स्तरीय साधन **लाद सकती है** — डिफ़ॉल्ट रूप से लदे नहीं, देखें [Model routing](#model-routing)):

```sh
dsh plugin --profile web add lunheng-article-pipeline
dsh --profile web --dump-config   # "# == lunheng-article-pipeline" परत दिखती है
```

नया `dsh` `dsh.bundle` घोषणा देखते ही निर्भरता को `dsh.profile.bundles` में जोड़ देता है — स्थापित करें और `dsh web` पुनः आरंभ करें। केवल शुद्ध npm/pnpm स्थापना या पुराने संस्करणों में मैनुअल प्रविष्टि चाहिए।

**सादे स्किल निर्देशिका के रूप में** (स्थापना नहीं; होस्ट स्किल-मूल की निगरानी करता है और बदलाव पर तुरंत ताज़ा करता है — मोड एक का `SKILL.md` entry के `apply` समय पढ़ा गया स्नैपशॉट है, इसलिए सामग्री बदलने पर प्लगइन पुनःलोड या नया सत्र आवश्यक है):

```sh
# स्किल निर्देशिका (रिपॉज़िटरी रूट नहीं) को किसी भी DSH स्किल-मूल में प्रतिलिपि करें:
#   $DSH_HOME/skills/lunheng-article-pipeline        (उपयोगकर्ता, rank 400)
#   <प्रोजेक्ट>/.dsh/skills/lunheng-article-pipeline (प्रोजेक्ट, rank 100)
```

सादी निर्देशिका में `dsh.bundle` घोषणा नहीं होती, अतः `dsh plugin add` उसे केवल निर्भरता मानकर स्थापित करता है और **कोई परत सक्रिय नहीं होती**। स्किल निर्देशिका की प्रतिलिपि ही समर्थित मार्ग है।

### Requirements

| मद | आवश्यकता |
|---|---|
| DSH | `dsh` CLI उपलब्ध; `- insert:` पंक्तियों हेतु DSH 5.5.0+ |
| Node | `^22.19.0 \|\| >=24.0.0` (DSH न्यूनतम; `package.json` का `engines` देखें) |
| pnpm | स्थापना/विस्थापन हेतु आवश्यक (`dsh plugin` pnpm को सौंपता है) |
| प्लेटफ़ॉर्म | Windows / macOS / Linux (स्क्रिप्ट निर्भरता-रहित) |

### Uninstall

```sh
dsh plugin --profile <profile> remove lunheng-article-pipeline
```

विस्थापन पर `cordis.patch.yml` की 4 `- insert:` पंक्तियाँ (स्व-पंजीकरण + तीन स्तरीय) और प्रवेश द्वारा पंजीकृत स्किल — दोनों हट जाती हैं, कोई अवशेष नहीं। यदि आपने स्किल निर्देशिका किसी स्किल-मूल में भी प्रतिलिपि की थी, तो उसे अलग से हटाएँ।

## Model routing

DSH में मॉडल मार्ग `settings.yaml` तय करता है; `subagent` सत्र-मॉडल विरासत में लेता है, अतः एकल-मॉडल विन्यास बिना सेटिंग चलता है। भूमिका-अनुसार स्तरीकरण हेतु बंडल तीन स्तरीय साधन लाद सकता है — **डिफ़ॉल्ट रूप से बंद** (जब सभी स्तर विरासत में हों तो वे अंतर्निहित `subagent` के पूर्णतः समान हैं, अतः बिना शर्त लादना प्रति-सत्र तीन उपकरण-स्कीमा व्यर्थ व्यय करता है):

| साधन | भूमिकाएँ | क्षमता |
|---|---|---|
| `subagent_retrieval` | T1 साहित्य / T2 आँकड़े / T3 प्रकरण | सस्ता और तेज़ |
| `subagent_strong` | T4 विश्लेषण / T5 लेखन | प्रबल तर्कण |
| `subagent_audit` | T6 समालोचना / T7 लेखा-परीक्षा / T9 समीक्षा / G14 संसूचक | शीर्ष स्तर, लागत घटाकर नहीं |

`LUNHENG_{RETRIEVAL,STRONG,AUDIT}_PROVIDER` और `LUNHENG_{RETRIEVAL,STRONG,AUDIT}_MODEL` से अधिलेखन करें: **इनमें से कोई भी सेट करने पर तीनों पंक्तियाँ भी लद जाती हैं** (मौजूदा स्तरीकरण विन्यास जैसा था वैसा ही काम करता रहता है)। प्रदाता और मॉडल स्वतंत्र क्षेत्र हैं (प्रदाता बदलने पर दोनों आवश्यक); `LUNHENG_TIERING=on` बिना कोई मॉडल तय किए पंक्तियाँ लादता है (दृश्यता जाँचने हेतु उपयोगी), और `LUNHENG_TIERING=off` तीनों स्तरों को विरासत पर लौटाकर उन्हें अनलोड कर देता है। स्तर-साधन अनुपलब्ध हो तो प्रेषण अंतर्निहित `subagent` पर लौटता है। देखें `examples/preset/README.md` और `docs/installation.md`।

## Data and external services

पाइपलाइन निम्नलिखित तृतीय-पक्ष को भेजती है:

| क्रिया | भेजी सामग्री | प्राप्तकर्ता |
|---|---|---|
| `web_search` / `web_fetch` | खोज शब्द, लक्ष्य URL | DSH-विन्यस्त खोज और पठन प्रदाता |
| मॉडल अनुमान | साहित्य, आँकड़ा और प्रकरण कार्ड; रूपरेखा; प्रारूप | सक्रिय मॉडल प्रदाता |
| चित्र-जनन (वैकल्पिक, बंद) | विषय और ब्रांड प्रॉम्प्ट | चित्र MCP, केवल आपके सक्षम करने पर |

समन्वयक को चरण 0 में ये प्रेषण बताकर स्पष्ट सहमति लेनी होती है। गोपनीय विषयों हेतु: शब्दावली अनाम करें, आवरण स्थानीय SVG रखें (शून्य बाह्य कॉल), और स्थानीय मॉडल एंडपॉइंट चुनें। कोई मद अस्वीकार हो तो कार्य चरण 0 पर लौटता है।

## Verification status

| लेख | परिमाण | परिणाम |
|---|---|---|
| ब्रांड-संगति लेख (2026-08) | ~7900 अक्षर, 15 स्रोत + 54 आँकड़े | प्रमाण-पुंज; 8 निष्कर्ष बंद |
| मौलिकता-विरोधाभास लेख (2026-08) | ~9500 अक्षर, 12 स्रोत + 34 आँकड़े + 6 प्रकरण | पूरे चक्र में कुल 4 संशोधन चक्र, A- श्रेणी, प्रकाशित |
| शिक्षक-क्षेत्र पत्र (2026-08) | ~12000 अक्षर, 18 स्रोत + 47 आँकड़े + 9 प्रकरण | लेखा-परीक्षा चक्र 2 उत्तीर्ण |
| जनरेटिव AI छात्र-लेखन टिप्पणी (2026-08) | ~2000 अक्षर, 12 स्रोत + 26 आँकड़े | त्रि-दिशा समानांतर खोज; M-द्वार exit 0 |
| फ़ॉर्मेल्डिहाइड बंदगोभी लेख (2026-08) | ~4200 अक्षर, 12 स्रोत + 29 आँकड़े + 4 प्रकरण | M-द्वार exit 0; 6 नियम समाहित |
| संकल्पना और आदर्श-विचार पत्र (2026-09) | ~6280 अक्षर, 18 स्रोत + 15 आँकड़े, 0 प्रकरण | 2 लेखा-परीक्षा चक्र, 23/30 लघु संशोधन, वास्तविक P0 = 0 |

> **यह तालिका कैसे पढ़ें (दो मानदंड जो आसानी से मिल जाते हैं)**: ① «संशोधन चक्र» उस **पूरे चक्र के सभी लेखक-पास** गिनता है (चरण 3.5 → v2, T6 समालोचना-सुधार, G14 चक्र, लेखा-परीक्षा लूप), जबकि पाइपलाइन की अपनी सीमा (**≤2 चक्र**) केवल **चरण 4.2 के लेखा-परीक्षा लूप** पर लागू होती है — दोनों संख्याएँ एक ही बात नहीं नापतीं; ② परिणाम **प्रत्येक चक्र के समय दर्ज ऐतिहासिक मान हैं, उस समय के स्क्रिप्ट संस्करण के साथ** — वर्तमान स्क्रिप्ट से पुनरुत्पाद्य नहीं। संग्रहीत परियोजनाओं पर आज पैकेज की स्क्रिप्ट चलाने पर, उदाहरणार्थ, फ़ॉर्मेल्डिहाइड बंदगोभी लेख `exit 2` तथा 5 P0 (M-Form-6/10, M-Exist-7/9, M-Integrity-1) देता है: उनमें से तीन द्वार उस चक्र के **बाद** जोड़े गए थे। इस तालिका को «तब पाइपलाइन ने क्या उत्पादित किया» के रूप में पढ़ें, «वर्तमान द्वार-समूह इन परियोजनाओं को उत्तीर्ण करता है» के रूप में नहीं।

## Known limitations

- **चीनी प्राथमिकता।** भूमिका-प्रॉम्प्ट, उपज, फ़ाइल-नाम और प्रवाह डिफ़ॉल्ट रूप से चीनी में हैं।
- **डिफ़ॉल्ट रूप से जाल-सत्यापन नहीं।** भुगतान-आधारित स्रोत न मिलने से संख्यात्मक जाँच प्रायः «मानव समीक्षा हेतु लंबित» रहती है।
- **स्वतंत्र परीक्षा की लागत है।** पूर्ण चक्र में 15+ उप-एजेंट भेजे जाते हैं; व्यय मुख्यतः संदर्भ-पठन में होता है।
- **M-द्वार में असत्य-धनात्मक संभव।** अंतिम जाँच को `script_exit_raw` अंकित करके `exit` निर्णय का कारण देना चाहिए, न कि exit 0 हेतु दस्तावेज़ बदलना।
- **वास्तविक समीक्षा का विकल्प नहीं।** T9 रिपोर्ट केवल प्रस्तुति-पूर्व अनुकरण है।

## License

MIT License
