Skip to main content
कोई भी काम तब तक “पूरा” नहीं है जब तक आप एक ऐसा चेक न चला सकें — एक test, एक build exit code, एक screenshot। Forge के verification gates प्रत्येक एक और catch जोड़ते हैं। प्रति-task miss rate 1 − p और gate catch rate c के साथ, silent misses (1 − p)(1 − c) तक गिर जाते हैं, और यहाँ हर gate एक और c है।
Verification घटाता है, प्रमाणित नहीं करता। Crew verifiers और hallucinated-symbol flag review burden कम करते हैं; वे कोड को सही साबित नहीं करते। Tests और मानव सुधार हमेशा जीतते हैं।

स्वतंत्र सत्यापन — forge verify

एक स्वतंत्र gate: यह repo के वास्तविक tests चलाता है, hallucinated symbols flag करता है, और provenance जाँचता है।
--deep (v0.19+) एक multi-lens consensus तक escalate करता है: बदलाव को कई स्वतंत्र verification lenses से गुज़रना पड़ता है, केवल एक से नहीं।
forge verify --deep एक binary pass/fail के बजाय एक चार-अवस्था वाला status रिपोर्ट करता है:
  • PASS — हर lens सहमत हुआ और core forge verify tests status भी PASS है। केवल यही state verified मानी जाती है।
  • FAIL — कम-से-कम एक lens ने वास्तविक failure रिपोर्ट किया।
  • INCOMPLETE — कोई lens पूरा नहीं हो सका (timeout, crash, missing dependency)। कुछ भी disprove नहीं हुआ, पर कुछ prove भी नहीं हुआ।
  • NOT_CONFIGURED — इस repo के लिए कोई lenses wired नहीं हैं, इसलिए --deep के पास check करने को कुछ नहीं था।
PASS-implies-base-PASS नियम जानबूझकर है: एक हरा deep consensus कभी भी एक लाल base run से आगे नहीं निकल सकता, इसलिए base test lens पर INCOMPLETE या NOT_CONFIGURED deep result को उसी के अनुरूप downgrade कर देता है।

Hallucinated-symbol flag — forge atlas has

forge atlas has <symbol> hallucination check है: यदि मॉडल किसी ऐसे symbol को call करता है जो code graph में नहीं है, तो gate उसे flag करता है।
Atlas जानबूझकर plain JSON है — Codex, Cursor, Gemini, और Aider .forge/atlas.json को CLI या plain jq के ज़रिए पढ़ते हैं, बिना किसी MCP dependency के।

Spec-as-contract — forge spec

व्यवहार को एक spec से pin करें और उससे drift पहचानें:

Skill-gate — forge scan

किसी skill या MCP server को install करने से पहले, उसे injection, RCE, या exfiltration के लिए जाँचें:
Clean scan safety certification नहीं है। Built-in heuristic केवल known attack shapes (critical) और कुछ high-severity patterns को पकड़ता है; pass का मतलब है “कोई critical signature नहीं मिला”, “install करने के लिए सुरक्षित” नहीं। हमेशा source, permissions, package provenance, और network behaviour ख़ुद review करें। एक high-severity finding को safe के रूप में मार्क नहीं किया जाता, भले ही यह hard-block न करे। External scanner opt-in है और जब तक आप उसे enable न करें, कोई network call नहीं करता।

Hardening — forge harden

Secrets और unsafe changes को बाहर रखने वाले security controls को wire करें:

Commit-level gate — forge precommit

forge precommit (v0.19+) एक commit-level gate है — यह commit time पर verification floor चलाता है ताकि आंशिक या unverified काम land होने से पहले पकड़ा जाए।

Completion gate — test evidence अनिवार्य

Stop-path completion gate (देखें क्रॉस-सेशन मेमोरी) अब एजेंट के handoff को इस बात के प्रमाण के रूप में स्वीकार नहीं करता कि code changes पूरे हो चुके हैं। किसी भी ऐसे सेशन के लिए जिसने source code को छुआ है, gate वास्तविक test evidence माँगता है:
  • सेशन के diff में बदली गई एक test file, या
  • मौजूदा बदलावों के विरुद्ध रिकॉर्ड किया गया एक ताज़ा passing forge verify
अकेला forge handoff snapshot gate को संतुष्ट नहीं करता — यह intent रिकॉर्ड करता है, verification नहीं। यदि दोनों में से कोई भी प्रमाण मौजूद नहीं है, तो gate एक बार एक repair checklist के साथ ब्लॉक करता है:
Doc-only, config-only, और अन्य non-code सेशन प्रभावित नहीं होते — test-evidence अनिवार्यता केवल तभी लागू होती है जब सेशन का diff वास्तव में code बदलता है।

UI checks — forge uicheck

Deterministic UI checks, पहले तीन lenses के लिए कोई LLM नहीं और कोई screenshots नहीं:
इसे forge taste के साथ जोड़ें ताकि एक visual direction चुनें (brutalist, corporate, editorial, minimalist, playful) और design gate की thresholds को parameterize करें।