सेशन एंकरिंग
SessionStart पर (src/session.js), Forge प्रति सेशन एक बार HEAD रिकॉर्ड करता है,
सप्ताह-पुराने सेशन artifacts को छाँटता है, और एक ताज़ा ओरिएंटेशन इंजेक्ट करता है:
सीखे गए पाठ
पिछले सुधारों से खनन किए गए Cortex पाठ।
एंकर किया गया लक्ष्य
घोषित लक्ष्य, ताकि ड्रिफ़्ट को उसके विरुद्ध मापा जा सके।
हैंडऑफ़ स्नैपशॉट
सीमित
.forge/state.md जो पिछले सेशन ने लिखा था।हाल के कमिट्स + बदलाव
हाल के कमिट्स और uncommitted बदलाव — प्रमाण, प्राथमिकताएँ नहीं।
कम्प्लीशन गेट
केवल एक Stop-path guard जवाब दे सकता है वह हैcompletion-gate.sh
(src/gate.js)। यह सिंक्रोनसली चलता है; पाठ-खनन cortex.sh stop डिटैच्ड रहता है
और कभी ब्लॉक नहीं कर सकता।
बदला हुआ सेट सेशन-स्कोप्ड है: उन कमिट्स की फ़ाइलें जिनका committer समय सेशन शुरू होने
पर या उसके बाद है, साथ ही working-tree बदलाव माइनस वह गंदगी जो SessionStart पर
स्नैपशॉट की गई थी — इसलिए पहले से मौजूद संपादन, ब्रांच स्विच, और git pull कभी एजेंट पर
नहीं थोपे जाते।
यदि कोड बदला और उसके साथ कोई doc या state artifact नहीं आया, तो gate एक बार ब्लॉक करता है
एक repair checklist को कारण के रूप में देते हुए। बाकी हर मामले में यह allow करता है, और
हर आंतरिक त्रुटि allow करती है (fail-open)।
FORGE_STOPGATE=0 इसे अक्षम करता है।forge verify।
अकेला forge handoff snapshot अब code-change branch of the gate को clear नहीं करता।
Repair checklist उन टूल्स की ओर इशारा करता है जो काम पूरा करते हैं:
हैंडऑफ़ और निर्णय
दो स्टोर्स सेशनों में ज्ञान बनाए रखते हैं:
दोनों write पर secrets को अस्वीकार करते हैं।
state.md हर सेशन शुरू होने पर पुनः इंजेक्ट होता है;
decisions.md को पहले पढ़ा जाता है, इससे पहले कि कुछ ऐसा फिर से तय किया जाए जो पिछले सेशन
ने तय किया था।
Diff-आधारित docs sweep
forge docs sync diff-आकार वाले प्रश्न का उत्तर देता है: बदले गए identifiers (paths,
definitions, और called symbols, जोड़ी गई और हटाई गई लाइनों से) प्रत्येक doc artifact
के विरुद्ध swept → UPDATED / STALE (file:line hits के साथ) / VERIFIED-UNAFFECTED, कारण
रिकॉर्ड होने के साथ। यह एक शुद्ध रिपोर्टर है; कम्प्लीशन गेट दाँत प्रदान करता है।