> ## Documentation Index
> Fetch the complete documentation index at: https://forgekit-docs-mintlify-efdb1a73.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# क्रॉस-सेशन मेमोरी

> सेशन एंकरिंग, कम्प्लीशन गेट, हैंडऑफ़ स्नैपशॉट, और डिसीज़न लॉग — वह परत जो सेशन एम्नेसिया और आंशिक कार्य को खत्म करती है।

यह परत जिन दो विफलता मोड्स को खत्म करने के लिए है: **आंशिक कार्य** (कोड बदलाव उन artifacts
के बिना जो उस पर निर्भर हैं) और **सेशन एम्नेसिया** (अगला सेशन उस बात को फिर से मान लेता है
जो इस सेशन को पता थी)। निर्देश सही व्यवहार की *संभावना* बढ़ाते हैं; डिटर्मिनिस्टिक हुक्स
एक *न्यूनतम स्तर* की गारंटी देते हैं।

## सेशन एंकरिंग

`SessionStart` पर (`src/session.js`), Forge प्रति सेशन एक बार `HEAD` रिकॉर्ड करता है,
सप्ताह-पुराने सेशन artifacts को छाँटता है, और एक ताज़ा ओरिएंटेशन इंजेक्ट करता है:

<CardGroup cols={2}>
  <Card title="सीखे गए पाठ" icon="graduation-cap">
    पिछले सुधारों से खनन किए गए Cortex पाठ।
  </Card>

  <Card title="एंकर किया गया लक्ष्य" icon="bullseye">
    घोषित लक्ष्य, ताकि ड्रिफ़्ट को उसके विरुद्ध मापा जा सके।
  </Card>

  <Card title="हैंडऑफ़ स्नैपशॉट" icon="camera">
    सीमित `.forge/state.md` जो पिछले सेशन ने लिखा था।
  </Card>

  <Card title="हाल के कमिट्स + बदलाव" icon="code-commit">
    हाल के कमिट्स और uncommitted बदलाव — प्रमाण, प्राथमिकताएँ नहीं।
  </Card>
</CardGroup>

एक ताज़ा सेशन प्राथमिकताओं पर नहीं, प्रमाण पर ओरिएंट होता है।

## कम्प्लीशन गेट

केवल एक Stop-path guard जवाब दे सकता है वह है `completion-gate.sh`
(`src/gate.js`)। यह सिंक्रोनसली चलता है; पाठ-खनन `cortex.sh stop` डिटैच्ड रहता है
और कभी ब्लॉक नहीं कर सकता।

बदला हुआ सेट **सेशन-स्कोप्ड** है: उन कमिट्स की फ़ाइलें जिनका committer समय सेशन शुरू होने
पर या उसके बाद है, साथ ही working-tree बदलाव माइनस वह गंदगी जो `SessionStart` पर
स्नैपशॉट की गई थी — इसलिए पहले से मौजूद संपादन, ब्रांच स्विच, और `git pull` कभी एजेंट पर
नहीं थोपे जाते।

<Note>
  यदि कोड बदला और उसके साथ कोई doc या state artifact नहीं आया, तो gate **एक बार ब्लॉक करता है**
  एक repair checklist को कारण के रूप में देते हुए। बाकी हर मामले में यह allow करता है, और
  हर आंतरिक त्रुटि allow करती है (fail-open)। `FORGE_STOPGATE=0` इसे अक्षम करता है।
</Note>

Repair checklist उन टूल्स की ओर इशारा करता है जो काम पूरा करते हैं:

```bash theme={null}
forge docs sync                      # sweep the diff for stale doc mentions
forge handoff "<done>" --next "<next>"   # write the bounded session snapshot
forge decide "<decision> — <reason>"     # record a choice so no session re-decides it
```

## हैंडऑफ़ और निर्णय

दो स्टोर्स सेशनों में ज्ञान बनाए रखते हैं:

| स्टोर                 | सिमैंटिक्स                                                                                 |
| --------------------- | ------------------------------------------------------------------------------------------ |
| `.forge/state.md`     | एक सीमित **rewrite** (स्नैपशॉट) — लोडर लागत हमेशा `O(bound)` रहती है।                      |
| `.forge/decisions.md` | Append-only **ADR-lite** (`D-####`) जिसके साथ एक machine-readable decision ledger twin है। |

दोनों write पर secrets को अस्वीकार करते हैं। `state.md` हर सेशन शुरू होने पर पुनः इंजेक्ट होता है;
`decisions.md` को पहले पढ़ा जाता है, इससे पहले कि कुछ ऐसा फिर से तय किया जाए जो पिछले सेशन
ने तय किया था।

```bash theme={null}
forge handoff "<what's done>" --next "<what's next>"
forge decide "<decision> — <reason>"
forge decide                 # read the log before re-deciding
```

## Diff-आधारित docs sweep

`forge docs sync` diff-आकार वाले प्रश्न का उत्तर देता है: बदले गए identifiers (paths,
definitions, और called symbols, जोड़ी गई *और* हटाई गई लाइनों से) प्रत्येक doc artifact
के विरुद्ध swept → UPDATED / STALE (file:line hits के साथ) / VERIFIED-UNAFFECTED, कारण
रिकॉर्ड होने के साथ। यह एक शुद्ध रिपोर्टर है; कम्प्लीशन गेट दाँत प्रदान करता है।

<Warning>
  `recall` और `cortex` केवल file-and-prompt मेमोरी हैं — **weight-level** learning **नहीं**।
  Consolidation एक summarizer है जो hallucinate कर सकता है, इसलिए यह advisory,
  मानव-समीक्षा-योग्य, और secret-free बना रहता है।
</Warning>
