# agent-prompt-kit

<!-- md-i18n:switcher -->
**अन्य भाषाओं में:** [English](README.md) · [Deutsch](README.de.md) · [中文](README.zh.md) · हिन्दी · [Español](README.es.md) · [Русский](README.ru.md)

**अब तक किए गए काम को अगले काम के लिए विशेषज्ञ वातावरण में बदलें। एक ही कमांड मौजूदा सत्र और रनटाइम के संबंधित सत्रों को पढ़ती है, एक Task Card और एक Domain Card लिखती है, और ऐसा वर्कस्पेस या सेव्ड एजेंट बनाती है जिसमें नियम, स्वीकृति-मानदंड, किए हुए उदाहरण और पिछले काम का भंडार पहले से मौजूद हो। चौदह मॉड्यूल, मशीन द्वारा जाँचे गए।**

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Modules](https://img.shields.io/badge/modules-14-6f42c1)](PROMPT.md)
[![Lint](https://img.shields.io/badge/lint-prompt__lint.py-informational)](tools/prompt_lint.py)
[![Experience](https://img.shields.io/badge/experience-reuse-0f766e)](skills/experience-reuse/SKILL.md)
[![Rules](https://img.shields.io/badge/lint%20rules-27-brightgreen)](tools/prompt_lint.py)
[![रूसी संस्करण](https://img.shields.io/badge/lang-EN%20%2F%20RU-0ea5e9)](README.ru.md)

<img src="https://github.com/paulmann/agent-prompt-kit/raw/main/assets/social-preview.png"
     alt="agent-prompt-kit — एक पोर्टेबल सिस्टम प्रॉम्प्ट जो एजेंट को विषय का विशेषज्ञ बनाता है"
     width="100%">

अच्छा उत्तर चैट के साथ ही खत्म हो जाता है। अगली बार जब वही तरह का काम आता है, नया सत्र शून्य से
शुरू होता है: वही खोज, वही बंद रास्ते, वही सवाल। यह किट उस पुनरावृत्ति को सस्ता बनाता है — ज़्यादा
याद रखकर नहीं, बल्कि पीछे एक **पंजीकृत कार्य-वातावरण** छोड़कर।

एक कमांड, एक परिणाम: एक डायरेक्टरी — वर्कस्पेस या सेव्ड एजेंट — जिसमें उस तरह के काम के नियम,
परखने योग्य स्वीकृति-मानदंड वाला डोमेन कार्ड, किए हुए उदाहरण जिनमें एक विफलता भी शामिल है, पिछले
काम का भंडार, और अगली विंडो के लिए शुरुआती प्रॉम्प्ट पहले से मौजूद हों।

| कमांड क्या करती है | यह क्यों मायने रखता है |
|---|---|
| मौजूदा सत्र **और रनटाइम के संबंधित सत्र** पढ़ती है | सामग्री असली काम है, उसका वर्णन नहीं |
| काम शुरू करने से पहले Task Card + Domain Card लिखती है | विषय मान लिया नहीं जाता, घोषित किया जाता है |
| वातावरण की डायरेक्टरी हर हिस्से के साथ बनाती है | अगला दौर पहले कदम से नहीं, ग्यारहवें कदम से शुरू होता है |
| पंजीकरण का कदम बताती है, हर रनटाइम के लिए अलग | HARNESS: एक क्लिक; AutoClaw2: रीलोड; इसके अलावा कुछ कहना ही बग है |
| शुरुआती प्रॉम्प्ट सौंपती है | हैंडऑफ के बिना डायरेक्टरी संग्रहालय है, कार्यस्थल नहीं |

इस रिपॉज़िटरी में रनटाइम से जुड़ा हर दावा इस बात के साथ चिह्नित है कि वह यहाँ मापा गया है या किसी
सत्र से रिपोर्ट हुआ है — देखें [`docs/INSTALL.md`](docs/INSTALL.md)।

> **स्थिति।** यहाँ का हर आंकड़ा 2026-10-24 को संस्करण 1.2.0 पर
> `python tools/prompt_lint.py` से मापा गया है। लंबी मार्गदर्शिकाएँ [`docs/`](docs/) और
> [Wiki](https://github.com/paulmann/agent-prompt-kit/wiki) में हैं।

## विषय-सूची

- [यह क्या है](#यह-क्या-है)
- [संख्याओं में](#संख्याओं-में)
- [इंस्टॉलेशन](#इंस्टॉलेशन)
- [रनटाइम](#रनटाइम)
- [उपयोग](#उपयोग)
- [चौदह मॉड्यूल](#चौदह-मॉड्यूल)
- [अनुभव का पुनः उपयोग](#अनुभव-का-पुनः-उपयोग)
- [गुणवत्ता गेट](#गुणवत्ता-गेट)
- [पोर्टेबिलिटी](#पोर्टेबिलिटी)
- [दस्तावेज़ीकरण](#दस्तावेज़ीकरण)
- [भाषाएँ](#भाषाएँ)
- [विकास](#विकास)
- [योगदान](#योगदान)
- [लाइसेंस](#लाइसेंस)

## यह क्या है

एक फ़ाइल, `PROMPT.md`, और उसे भरोसेमंद बनाने तथा अपने हिसाब से ढालने के लिए ज़रूरी सामग्री।

| हिस्सा | यह आपको क्या देता है |
|---|---|
| [`PROMPT.md`](PROMPT.md) | सिस्टम प्रॉम्प्ट: 14 मॉड्यूल, 14 स्व-जाँच, 10 अपरिवर्तनीय नियम |
| [`AGENTS.md`](AGENTS.md) | वही अनुबंध मशीन के लिए उपयुक्त रूप में, उन कोडिंग एजेंट के लिए जो रिपॉज़िटरी के नियम पढ़ते हैं |
| [`skills/experience-reuse/`](skills/experience-reuse/SKILL.md) | M13 कौशल: वर्कफ़्लो, लागू होने की जाँच-सूची, चार रिकॉर्ड टेम्पलेट, एक सुरक्षा नीति |
| [`tools/experience.py`](tools/experience.py) | अनुभव भंडार और उसकी एक-कमांड पुनःप्राप्ति, स्कीमा और सीक्रेट जाँच के साथ |
| [`memory/`](memory/README.md) | रिकॉर्ड कहाँ रहते हैं; किट के साथ तीन साफ़ किए गए उदाहरण आते हैं |
| [`tools/prompt_lint.py`](tools/prompt_lint.py) | मॉड्यूल की पूर्णता, अनुवादों का जोड़ा, प्लेसहोल्डर, लिंक, सीक्रेट, संस्करण का मेल, M13 और गेट की चौड़ाई जाँचता है |
| [`examples/EXAMPLES.md`](examples/EXAMPLES.md) | तीन डोमेन, एक ही ढाँचा: सामान्य मामला, अस्पष्ट मामला, विफलता का मामला |
| [`docs/`](docs/) | डिज़ाइन का तर्क, अनुकूलन प्रोटोकॉल, QA चेकलिस्ट, लक्ष्य के विरुद्ध सत्यापन |

प्रॉम्प्ट पाँच ठोस समस्याएँ हल करता है, इसी क्रम में:

1. **विषय का भटकाव** — एजेंट पास के, आसान सवाल का जवाब दे देता है। इसका तोड़ Task Card (M1) और
   Domain Card (M2) हैं, जो किसी भी कार्रवाई से पहले मौजूद होने चाहिए।
2. **गढ़ा हुआ संदर्भ** — ऐसे थ्रेड के बारे में «जैसा हमने पहले चर्चा की», जिसे कभी पढ़ा ही नहीं गया।
   इसका तोड़ Context Ledger (M3) और तीन प्रमाण-लेबल (M4) हैं।
3. **असत्यापनीय दावे** — बिना किसी अवलोकन के «यह काम करता है»। इसका तोड़ कार्य-चक्र (M5), क्षमता
   तालिका (M6) और गेट (M8) हैं।
4. **दोहराया गया काम** — वही कार्य फिर से शून्य से किया जाना, क्योंकि पिछला प्रयास कहीं सामने नहीं
   आया। इसका तोड़ अनुभव भंडार और उसकी लागू-होने की जाँच (M13) है।
5. **पुनः उपयोग की लागत** — नया डोमेन आया तो प्रॉम्प्ट फिर से लिखना पड़े। इसका तोड़ विशेषज्ञता
   प्रोटोकॉल (M10) है: एक कार्ड, एक उदाहरण फ़ाइल, एक स्वीकृति पंक्ति।

## संख्याओं में

इस ट्री में 2026-10-24 को मापा गया:

| सतह | मान | माप का स्रोत |
|---|---:|---|
| प्रॉम्प्ट में मॉड्यूल | 14 | `PROMPT.md`, शीर्षक `M0`…`M13` |
| स्व-जाँच पंक्तियाँ | 14 | `grep -c '^\*\*Check:\*\*' PROMPT.md` |
| अपरिवर्तनीय नियम | 10 | `PROMPT.md`, अनुभाग "Invariants" |
| गुणवत्ता-गेट परीक्षण | 12 | `PROMPT.md`, अनुभाग M8 |
| लिंटर में अलग नियम आईडी | 27 | `grep -o 'add("[a-z]*", "[a-z.-]*"' tools/prompt_lint.py \| sort -u` |
| अनुभव स्व-परीक्षण | 13 | `python tools/experience.py selftest` |
| किए हुए उदाहरण | 3 + 3 साफ़ किए गए रिकॉर्ड | `examples/`, `skills/experience-reuse/examples/` |
| रनटाइम निर्भरताएँ | 0 | `tools/` में imports |

## इंस्टॉलेशन

```bash
git clone https://github.com/paulmann/agent-prompt-kit.git
cd agent-prompt-kit

python tools/prompt_lint.py            # exit 0 means the document is structurally complete
```

सिर्फ़ Python 3.11+ चाहिए। कोई पैकेज नहीं, कोई सेवा नहीं, कोई खाता नहीं।

## रनटाइम

एक ही प्रक्रिया, तीन अलग तंत्र। मॉडल क्या कर सकता है और इंसान को क्या करना है — यह हर रनटाइम में
अलग है, और यह तालिका बताती है कि कौन-सा कहाँ है — इस मशीन पर मापा गया, या सत्र से रिपोर्ट बतौर
चिह्नित।

| रनटाइम | कमांड | मॉडल क्या करता है | इंसान क्या करता है | सत्यापित |
|---|---|---|---|---|
| **AutoClaw2** | `/agent-prompt-kit` (और `/skill:agent-prompt-kit` भी) | कौशल को `%USERPROFILE%\.pi\agent\skills\` में और कमांड को `...\prompts\` में लिखता है | रीलोड करता है ताकि संसाधन-स्नैपशॉट फिर से बने | ऐप बंडल में मापा गया |
| **HARNESS** | `/agent-prompt-kit` | पूरी वर्कस्पेस डायरेक्टरी, हर फ़ाइल के साथ, बनाता है | एक क्लिक: डायरेक्टरी को वर्कस्पेस के रूप में जोड़ें | तंत्र यहाँ मापा गया; क्लिक रिपोर्ट किया गया |
| **SagaAI** | — | `PROMPT.md` को कार्य-अनुबंध के रूप में पेस्ट करें | जैसा रनटाइम माँगे | **सत्यापित नहीं**: इंस्टॉलर अनुमान नहीं लगाता |

```bash
python tools/install.py --runtime autoclaw2 --check    # files plus registration state
python tools/install.py --runtime autoClaw2 --write    # install, backup anything it replaces
python tools/install.py --runtime harness  --write
```

इंस्टॉलर कभी किसी मैनुअल कदम को पूरा हुआ नहीं बताता। HARNESS में वह क्लिक लिखकर दिखाता है;
AutoClaw2 में वह संसाधन-मैनिफ़ेस्ट जाँचता है और जब तक रीलोड न हो, `NOT READY` कहता है। पूरा तंत्र
और जालों की तालिका: [`docs/INSTALL.md`](docs/INSTALL.md)।

## उपयोग

1. `PROMPT.md` खोलें।
2. YAML हेडर के नीचे का सारा हिस्सा अपने एजेंट के सिस्टम प्रॉम्प्ट फ़ील्ड में पेस्ट करें।
3. एजेंट को असली अनुरोध दें। उसे Task Card, Domain Card, डिलीवरेबल, प्रमाण-लेबल और गेट पंक्ति के
   साथ जवाब देना होगा।

प्रॉम्प्ट जानबूझकर टूल-निरपेक्ष है — देखें [पोर्टेबिलिटी](#पोर्टेबिलिटी)। तीन असंबंधित डोमेन में
किया हुआ उत्तर [`examples/EXAMPLES.md`](examples/EXAMPLES.md) में है।

## चौदह मॉड्यूल

| मॉड्यूल | यह किस सवाल का जवाब देता है | किससे सत्यापित |
|---|---|---|
| M0 | यह किसकी आवाज़ है, और किन दो चरणों में? | विषय एक वाक्य में नामित है |
| M1 | असल में पूछा क्या जा रहा है? | Task Card, हर फ़ील्ड भरी हुई या `unknown` |
| M2 | कौन-सा विशेषज्ञ चाहिए, और क्या सत्यापित होना चाहिए? | Domain Card, स्वीकृति शर्त परखने योग्य |
| M3 | कौन-सा संदर्भ मौजूद है, और वह कितना अच्छा है? | Context Ledger, हर दावे के साथ एक स्रोत |
| M4 | जो मैं जानता हूँ उसे लेबल कैसे करूँ? | `[fact]` / `[inference]` / `[assumption]` |
| M5 | बिना कुछ तोड़े काम कैसे करूँ? | चक्र: frame → retrieve → plan → act → verify → record |
| M6 | मैं क्या इस्तेमाल कर सकता हूँ, और क्या मना है? | क्षमता तालिका, सुरक्षा नियम |
| M7 | उत्तर का ढाँचा क्या है? | पाँच अनुभाग और वैकल्पिक रूप से पुनः उपयोग किए अनुभव का अनुभाग |
| M8 | पता कैसे चले कि काम पूरा है? | बारह-मदों का गेट, एक पंक्ति में रिपोर्ट |
| M9 | यह प्रॉम्प्ट कैसे तोड़ा जाता है? | सोलह विफलता-प्रकार और उनके तोड़ |
| M10 | इसे नए डोमेन पर कैसे लगाऊँ? | एक कार्ड, एक उदाहरण फ़ाइल, एक स्वीकृति पंक्ति |
| M11 | अच्छा उत्तर कैसा दिखता है? | तीन किए हुए उदाहरण |
| M12 | भेजने से पहले क्या जाँचूँ? | पाँच सवाल, हर एक का जवाब एक पंक्ति में |
| M13 | पहले किए काम को दोबारा करने से कैसे बचूँ? | योजना से पहले पुनःप्राप्ति, लागू-होने का निर्णय, साफ़ किया भंडार |

## अनुभव का पुनः उपयोग

M13 «यह हम पहले कर चुके हैं» को उम्मीद की जगह एक टूल कॉल बना देता है:

```bash
python tools/experience.py search "add nullable column to list endpoint" --limit 5
```

```text
query: add nullable column to list endpoint  ·  2 candidate(s)
  [ 25] recipe    add-nullable-column-to-list-endpoint validated overlap 5, validated, high confidence, verified 2d ago
  [ 11] failure   retry-migration-until-it-passes    validated overlap 1, validated, prior failure: read before acting
```

हर पंक्ति अपनी रैंक का कारण साथ लाती है, इसलिए एजेंट किसी उम्मीदवार को अंदाज़े पर नहीं, प्रमाण पर
अस्वीकार कर सकता है। पुनः उपयोग छह सवाल तय करते हैं — लक्ष्य, वातावरण, मान्यताएँ, सत्यापन का
दायरा, सुरक्षा, ताज़गी — और बिना बताया गया अनुकूलन अंधी नकल माना जाता है।

भंडार क्या अस्वीकार करता है, यह उसके अपने परीक्षणों से मापा गया है: ऐसा रिकॉर्ड जिसमें टोकन जैसा
लिटरल हो, ऐसी रेसिपी जिसमें `Rollback` अनुभाग न हो, ऐसा रिकॉर्ड जिस पर `validated` अंकित हो पर
`last_verified_at` न हो। किस पर चेतावनी देता है: 180 दिन से पुराना सत्यापन, लगभग-समान शीर्षक। जो
कभी नहीं करता: हटाना — रिकॉर्ड को अप्रचलित किया जाता है और उनके स्थानापन्न का इशारा दिया जाता है।

## गुणवत्ता गेट

एजेंट को एक पंक्ति छापनी होती है, उदाहरण के लिए `gate 12/12` या
`gate 10/12 — 6, 9 failed: <reason>`। बारह परीक्षण M8 में परिभाषित हैं; व्यवहार में सबसे अधिक
विफल होने वाले दो ये हैं:

- **#4 प्रमाण का दायरा** — ऐसा तथ्यात्मक दावा जो Context Ledger में कभी दर्ज नहीं हुआ;
- **#6 सत्यापन** — बिना किसी कमांड या अवलोकन के «यह काम करता है»।

गेट पंक्ति सजावट नहीं है: इसी से उत्तर उस इंसान के लिए जाँचने योग्य बनता है जिसने एजेंट को काम करते
नहीं देखा। `docs/QA.md` उन्हीं बारह परीक्षणों को इंसानी समीक्षा-सूची में बदलता है।

## पोर्टेबिलिटी

प्रॉम्प्ट में किसी टूल का नाम नहीं आता। क्षमताएँ वर्ग के नाम से लिखी जाती हैं और हर रनटाइम में तय
होती हैं:

| क्षमता वर्ग | उदाहरण मैपिंग |
|---|---|
| `read-files` | read टूल, शेल `cat`, एडिटर बफ़र |
| `write-files` | write/patch टूल, heredoc, इनलाइन सुझाव |
| `run-commands` | शेल, सैंडबॉक्स, CI रनर |
| `web-search` | सर्च टूल, ब्राउज़र, उपयोगकर्ता द्वारा दिए गए फ़ेच किए URL |
| `publish` | git push, पैकेज रजिस्ट्री, wiki API |

अगर किसी रनटाइम में कोई क्षमता नहीं है, तो प्रॉम्प्ट साफ़-साफ़ पीछे हटता है (M6): वह सामग्री
माँगता है, आर्टिफ़ैक्ट को टेक्स्ट के रूप में बनाता है, या बता देता है कि कौन-सी क्षमता नहीं है। वह
कभी दिखावा नहीं करता।

सत्यापित आयात-लक्ष्य: AutoClaw2, HARNESS, SagaAI, और कोई भी एजेंट जो सिस्टम प्रॉम्प्ट स्वीकार करता
है। मशीन के लिए उपयुक्त रूप [`AGENTS.md`](AGENTS.md) है।

## दस्तावेज़ीकरण

| दस्तावेज़ | सामग्री |
|---|---|
| [`docs/DESIGN.md`](docs/DESIGN.md) | मॉड्यूल क्यों, कौन-से निर्णय अस्वीकार हुए और क्यों |
| [`docs/ADAPTATION.md`](docs/ADAPTATION.md) | नए डोमेन में पंद्रह मिनट में विशेषज्ञता |
| [`docs/QA.md`](docs/QA.md) | गेट से निकली समीक्षा-सूची |
| [`docs/VALIDATION.md`](docs/VALIDATION.md) | मूल लक्ष्य, एक-एक आवश्यकता और हर एक की जाँच के साथ |
| [`examples/EXAMPLES.md`](examples/EXAMPLES.md) | तीन डोमेन, तीन कार्ड, तीन गेट पंक्तियाँ |

## भाषाएँ

अंग्रेज़ी फ़ाइलें मानक हैं; रूसी अनुवादों पर `.ru.md` प्रत्यय रहता है — यही परंपरा GitHub खुद
इस्तेमाल करता है। दोनों को `tools/prompt_lint.py` मिलाकर रखता है, और जब किसी दस्तावेज़ का जोड़ा न
हो तो बिल्ड विफल कर देता है।

| अंग्रेज़ी | रूसी |
|---|---|
| [README.md](README.md) | [README.ru.md](README.ru.md) |
| [PROMPT.md](PROMPT.md) | [PROMPT.ru.md](PROMPT.ru.md) |
| [AGENTS.md](AGENTS.md) | [AGENTS.ru.md](AGENTS.ru.md) |
| [docs/VALIDATION.md](docs/VALIDATION.md) | [docs/VALIDATION.ru.md](docs/VALIDATION.ru.md) |

## विकास

```bash
python tools/prompt_lint.py            # structural contracts
python tools/prompt_lint.py --json     # machine-readable findings
```

प्रॉम्प्ट बदलना:

1. `PROMPT.md` संपादित करें; मॉड्यूल पहचानकर्ता स्थिर रखें — टूल और समीक्षाएँ उन्हीं के नाम से हवाला
   देती हैं।
2. उसी कमिट में `PROMPT.ru.md` भी अपडेट करें।
3. front matter में `version` बढ़ाएँ और `CHANGELOG.md` में प्रविष्टि जोड़ें; लिंटर दोनों की तुलना
   करता है।
4. लिंट चलाएँ, जब तक वह `0` पर बाहर न निकले।

## योगदान

देखें [CONTRIBUTING.md](CONTRIBUTING.md)। सुरक्षा नीति: [SECURITY.md](SECURITY.md)।

## लाइसेंस

[MIT](LICENSE)।
