अनुरूपता गेट
इकोसिस्टम का स्वास्थ्य सत्यापित करने के लिए Apothem अनुरूपता गेट चलाएँ।
src/apothem/conformity/gate.py पर स्थित अनुरूपता गेट, ऑपरेटर द्वारा लिखे गए
हर आर्टिफ़ैक्ट के विरुद्ध पंद्रह-बार प्री-एमिशन गेट (M1-M15) का यांत्रिक अंश
चलाता है।
इस पृष्ठ की कमांड एक Apothem चेकआउट मानती हैं, इसलिए आप जो भी कमांड चलाएँ, उसके
आगे PYTHONPATH=src लगाएँ। स्क्रिप्ट इंस्टॉल के बाद PYTHONPATH=src की जगह
PYTHONPATH="$HOME/.apothem/src" का उपयोग करें।
गेट चलाना
गेट डिफ़ॉल्ट रूप से परामर्शी है: यह निष्कर्षों की रिपोर्ट करता है और 0
के साथ बाहर निकलता है, इसलिए कोई स्थानीय रन आपको कभी अवरुद्ध नहीं करता। किसी
अवरोधक निष्कर्ष पर गैर-शून्य के साथ बाहर निकलने के लिए --strict जोड़ें (या
APOTHEM_CONFORMITY_STRICT=1 सेट करें) — यही वह मोड है जिसका उपयोग CI और
pre-commit किसी उल्लंघनकारी बदलाव को विफल करने के लिए करते हैं।
# Advisory: report every validator's findings across the repo, exit 0
PYTHONPATH=src python -m apothem.conformity.gate --all .
# Strict: exit non-zero (code 2) when a blocking finding is present
PYTHONPATH=src python -m apothem.conformity.gate --all --strict .निकास कोड: 0 स्वच्छ (या परामर्शी), 2 सख़्त मोड में निष्कर्ष-अवरोध, 3 एक
उपयोग त्रुटि: कोई अज्ञात फ़्लैग या वैलिडेटर नाम, कोई ऐसी फ़ाइल जो मौजूद नहीं है,
या कोई ऐसी रूट डायरेक्टरी जो मौजूद नहीं है। --help पूरा उपयोग विवरण प्रिंट
करता है और 0 के साथ बाहर निकलता है। हर स्टैंडअलोन वैलिडेटर वही --help
स्वीकार करता है और किसी अज्ञात फ़्लैग या लुप्त रूट पर 3 के साथ बाहर निकलता है।
. जैसा कोई सापेक्ष रूट किसी भी वैलिडेटर के चलने से पहले एक निरपेक्ष पथ में हल
किया जाता है, इसलिए --all . और --all "$PWD" एक ही वृक्ष का निरीक्षण करते
हैं। प्रत्येक वैलिडेटर inspected रिपोर्ट करता है — उसने कितने टारगेट की जाँच
की — और --all उस गिनती को हर परिणाम प्रविष्टि में कॉपी करता है। जिस वैलिडेटर
ने कुछ भी निरीक्षण नहीं किया, वह passed: false रिपोर्ट करता है, ताकि कोई गलत
वर्किंग डायरेक्टरी चुपचाप पास न हो सके। दो प्लान-सूट वैलिडेटर एक अपवाद हैं:
प्लान सूट gitignore किए गए .apothem/plans/ वृक्ष में रहते हैं, इसलिए वे एक
स्वच्छ चेकआउट पर empty_scope_expected: true रिपोर्ट करते हैं और फिर भी पास
होते हैं। वर्कफ़्लो वैलिडेटर भी यही करते हैं जब प्रोजेक्ट में अभी तक कोई
.github/workflows/ डायरेक्टरी नहीं होती, और कमिट-सब्जेक्ट वैलिडेटर तब करता है
जब रूट में कोई कमिट इतिहास नहीं होता।
छह वैलिडेटर रिपॉज़िटरी रूट से शुरू होते हैं और जिन फ़ाइलों की वे जाँच करते हैं उनके लिए पूरे वृक्ष में खोज करते हैं:
agents-md-coverage-grep
agnosticism-grep
dynamism-grep
freshness-token-grep
plain-language-grep
reference-token-grepये नेस्टेड git चेकआउट, जैसे वर्कट्री, सबमॉड्यूल और नेस्टेड क्लोन, को छोड़ देते
हैं, और उन डायरेक्टरियों को भी छोड़ देते हैं जिनमें निर्भरताएँ, वर्चुअल
एनवायरनमेंट, कैश या बिल्ड आउटपुट होते हैं, जैसे node_modules, venv और dist।
no-global-plans-grep में भटकी-योजनाओं की जाँच भी किसी नेस्टेड चेकआउट पर रुक
जाती है। इनमें से किसी का भी रन उसी चेकआउट पर रिपोर्ट करता है जिसकी ओर उसे
इंगित किया गया था, और किसी अन्य पर नहीं। जो वैलिडेटर एक निश्चित फ़ोल्डर पढ़ता
है, जैसे src/apothem/ के अंतर्गत naming-grep, वह उस फ़ोल्डर के नीचे का सब कुछ
पढ़ता है।
गेट बार
| बार | जाँच | प्रकार |
|---|---|---|
| M1 | होस्ट-प्रोजेक्ट अज्ञेयता | तर्क-आधारित |
| M2 | संपादकीय प्रकटीकरण | तर्क-आधारित |
| M3 | दस गुणवत्ता आयाम | यांत्रिक + तर्क-आधारित |
| M4 | स्व-अनुप्रयोग | तर्क-आधारित |
| M5 | प्राधिकार (कोई गढ़ी हुई पहचान / एंडपॉइंट / सीक्रेट नहीं) | यांत्रिक |
| M6 | विशेषज्ञता समावेशन | तर्क-आधारित |
| M7 | विकल्प एनोटेशन | यांत्रिक |
| M8 | निश्चयात्मकता | यांत्रिक |
| M9 | दृश्य उत्तोलन | यांत्रिक + तर्क-आधारित |
| M10 | द्विदिश बंधन | यांत्रिक |
| M11 | एजाइल स्प्रिंट | तर्क-आधारित |
| M12 | चरण रिपोर्टिंग और कैनोनिकल लेआउट | यांत्रिक + तर्क-आधारित |
| M13 | कोड शिल्प | यांत्रिक |
| M14 | प्रणालीगतता | यांत्रिक + तर्क-आधारित |
| M15 | प्रोडक्शन-तैयार | यांत्रिक + तर्क-आधारित |
लक्षित जाँचें
# List every registered validator
PYTHONPATH=src python -m apothem.conformity.gate --list
# Run one per-write validator against one file
PYTHONPATH=src python -m apothem.conformity.gate --check multi-surface-coherence src/apothem/rules/my-rule.md
# Run one standalone validator over a root directory
PYTHONPATH=src python -m apothem.conformity.gate --check naming-grep .
# Run every per-write validator against one file
PYTHONPATH=src python -m apothem.conformity.gate src/apothem/rules/my-rule.mdप्रति-लेखन वैलिडेटर जाँचने के लिए फ़ाइल लेता है, या मानक इनपुट से सामग्री पढ़ने
के लिए --stdin; दोनों में से कोई न होने पर वह मानक इनपुट पर इनपुट की प्रतीक्षा
करता है, इसलिए टर्मिनल से चलाते समय फ़ाइल पास करें। स्टैंडअलोन वैलिडेटर एक रूट
डायरेक्टरी लेता है (छोड़ दिए जाने पर वर्तमान डायरेक्टरी)। --list दिखाता है कि
हर वैलिडेटर किस समूह से संबंधित है।
--hook मोड (python -m apothem.conformity.gate --hook) हार्नेस-प्रेषित एंट्री
पॉइंट है: यह stdin से एक टूल-इनपुट JSON पेलोड पढ़ता है और लंबित लेखन के विरुद्ध
प्रति-लेखन मैचर शृंखला चलाता है। यही वह रूप है जिसे डिप्लॉय किया गया
PreToolUse हुक कॉल करता है; आप इसे शायद ही कभी हाथ से कॉल करते हैं।
हुक मोड डायरेक्टरियों के एक सेट तक सीमित है। यह मैचर शृंखला केवल उन लेखनों पर चलाता है जिनका टारगेट उनमें से किसी एक के अंतर्गत आता है; हर दायरे से बाहर का लेखन शॉर्ट-सर्किट होकर एक मौन पास बन जाता है। डिफ़ॉल्ट दो रूट हैं:
~/.claude Claude Code
$CODEX_HOME Codex (~/.codex when CODEX_HOME is not set)उन्हें बदलने के लिए APOTHEM_CONFORMITY_SCOPE को किसी डायरेक्टरी पर सेट करें:
# Run the per-write matcher chain against one project tree instead
export APOTHEM_CONFORMITY_SCOPE=/path/to/projectकोई हुक जो कुछ भी न करता प्रतीत हो, वह सामान्यतः विफलता के बजाय दायरे की चूक होता है — पहले लेखन के टारगेट को ऊपर दिए गए दायरों से मिलाकर जाँचें।
CI एकीकरण
.github/workflows/ci.yml का quality जॉब main पर पुश पर, और main की ओर उन पुल रिक्वेस्ट पर जो उस जॉब द्वारा देखे जाने वाले पथों को छूती हैं, गेट को सख़्त मोड में चलाता है (python -m apothem.conformity.gate --all . --strict)। अलग .github/workflows/conformity.yml वर्कफ़्लो फ़िक्स्चर स्वीप चलाता है (tests/conformity-scenarios/verify.py --strict)।