Hatcher Actions: आपका संवैधानिक निर्णय
Actions Hatcher इकोसिस्टम के गुणवत्ता गेट हैं—संवैधानिक न्यायाधीश जो यह निर्धारित करते हैं कि आपका कोड आपके मानकों को पूरा करता है या नहीं। वे वर्कफ़्लो या प्रक्रियाएं नहीं हैं; वे परमाणु, नियतात्मक सत्यापनकर्ता हैं जो एक सरल प्रश्न का उत्तर देते हैं: "पास या फेल?"
Actions क्या हैं?
Actions हैं:
- परमाणु सत्यापनकर्ता: एकल-उद्देश्य जांच जो एक विशिष्ट पहलू को मान्य करती है
- नियतात्मक: समान इनपुट के लिए हमेशा समान परिणाम उत्पन्न करते हैं
- बाइनरी: केवल "पास" या "फेल" (विवरण के साथ) लौटाते हैं
- तेज़: जटिल प्रसंस्करण के लिए नहीं, तेज़ प्रतिक्रिया के लिए डिज़ाइन किए गए
वे अंतिम चेकपॉइंट हैं जो सुनिश्चित करते हैं कि कोड का प्रत्येक टुकड़ा आपके प्रोजेक्ट के संविधान का सम्मान करता है।
पदानुक्रम में भूमिका
Actions को समझने के लिए Hatcher दर्शन में उनके स्थान को समझने की आवश्यकता होती है:
- Playbooks (रणनीति): परिभाषित करें कि आप क्या मानक लागू करना चाहते हैं
- Autopilots (रणनीति): उन मानकों को कैसे लागू करना है निष्पादित करें
- Actions (निर्णय): मान्य करें कि क्या कार्यान्वयन मानकों को पूरा करता है
# पूर्ण प्रवाह
playbook: 'हम TypeScript के साथ Vue 3 का उपयोग करते हैं'
autopilot: 'TypeScript के साथ एक Vue 3 कंपोनेंट उत्पन्न करें'
actions: 'शुद्धता सत्यापित करने के लिए type-check, lint और test चलाएं'
मुख्य Actions
Hatcher सार्वभौमिक गुणवत्ता गेट के लिए आवश्यक Actions प्रदान करता है:
टाइप सुरक्षा Actions
actions:
- name: types:validate
description: TypeScript संकलन सत्यापित करें
command: tsc --noEmit
pass_criteria: exit_code == 0
- name: types:strict
description: सख्त TypeScript नियम लागू करें
command: tsc --strict --noEmit
pass_criteria: exit_code == 0
कोड गुणवत्ता Actions
actions:
- name: lint:check
description: सत्यापित करें कि कोड लिंटिंग मानकों को पूरा करता है
command: eslint . --max-warnings 0
pass_criteria: exit_code == 0
- name: format:verify
description: कोड फॉर्मेटिंग जांचें
command: prettier --check .
pass_criteria: exit_code == 0
टेस्टिंग Actions
actions:
- name: test:unit
description: यूनिट टेस्ट चलाएं
command: npm test
pass_criteria: exit_code == 0
- name: test:integration
description: इंटीग्रेशन टेस्ट चलाएं
command: npm run test:integration
pass_criteria: exit_code == 0
- name: coverage:verify
description: सुनिश्चित करें कि टेस्ट कवरेज थ्रेशोल्ड को पूरा करता है
command: npm run test:coverage
pass_criteria: coverage >= 80
सुरक्षा Actions
actions:
- name: security:audit
description: ज्ञात कमजोरियों की जांच करें
command: npm audit --audit-level=moderate
pass_criteria: exit_code == 0
- name: secrets:scan
description: सुनिश्चित करें कि कोड में कोई सीक्रेट नहीं है
command: trufflehog scan .
pass_criteria: no_secrets_found
प्रदर्शन Actions
actions:
- name: bundle:size
description: बंडल साइज़ सीमाएं सत्यापित करें
command: bundlesize
pass_criteria: all_bundles_under_limit
- name: performance:lighthouse
description: Lighthouse स्कोर की जांच करें
command: lighthouse-ci
pass_criteria:
performance: >= 90
accessibility: >= 95
कस्टम Actions
अपने hatcher.config.json
में प्रोजेक्ट-विशिष्ट Actions परिभाषित करें:
{
"actions": {
"custom:api-contracts": {
"description": "API अनुबंधों को मान्य करें",
"command": "./scripts/validate-api.sh",
"pass_criteria": "exit_code == 0"
},
"custom:db-migrations": {
"description": "डेटाबेस माइग्रेशन सत्यापित करें",
"command": "npm run migrate:verify",
"pass_criteria": "exit_code == 0"
},
"custom:i18n-complete": {
"description": "अनुवाद पूर्णता जांचें",
"command": "i18n-validator",
"pass_criteria": "missing_keys == 0"
}
}
}
Action निष्पादन
व्यक्तिगत Actions
मांग पर विशिष्ट Actions चलाएं:
# एक एकल action चलाएं
hatcher action run test:unit
# वर्बोस आउटपुट के साथ चलाएं
hatcher action run lint:check --verbose
# कस्टम पैरामीटर के साथ चलाएं
hatcher action run coverage:verify --threshold=90
Action समूह
संबंधित Actions को एक साथ निष्पादित करें:
# सभी टेस्ट actions चलाएं
hatcher action run-group testing
# pre-commit actions चलाएं
hatcher action run-group pre-commit
# डिप्लॉयमेंट सत्यापन चलाएं
hatcher action run-group deploy-checks
Action कॉन्फ़िगरेशन
अपने कॉन्फ़िगरेशन में Action समूह परिभाषित करें:
{
"actionGroups": {
"pre-commit": [
"format:verify",
"lint:check",
"types:validate",
"test:unit"
],
"pre-deploy": [
"test:integration",
"coverage:verify",
"security:audit",
"bundle:size"
],
"quality": ["lint:check", "types:strict", "coverage:verify"]
}
}
Action परिणाम
Actions संरचित प्रतिक्रिया प्रदान करते हैं:
{
"action": "test:unit",
"status": "fail",
"duration": 3420,
"details": {
"total_tests": 142,
"passed": 140,
"failed": 2,
"failures": [
{
"test": "UserService.authenticate",
"error": "Expected true, received false",
"file": "services/user.spec.ts",
"line": 47
}
]
},
"suggestion": "कमिट करने से पहले असफल टेस्ट ठीक करें"
}
Autopilots के साथ इंटीग्रेशन
Autopilots गुणवत्ता चेकपॉइंट के रूप में Actions का उपयोग करते हैं:
# एक Autopilot वर्कफ़्लो में
name: फीचर कार्यान्वयन
steps:
- name: कोड उत्पन्न करें
action: ai.create
- name: गुणवत्ता चेकपॉइंट
action: run.actions
actions:
- lint:check # पास होना चाहिए
- types:validate # पास होना चाहिए
- test:unit # पास होना चाहिए
fail_fast: true # पहली विफलता पर रुकें
- name: यदि गुणवत्ता पास हो गई तो कमिट करें
action: git.commit
condition: ${steps.quality_checkpoint.passed}
Action नीतियां
परिभाषित करें कि Actions कब अनिवार्य हैं:
{
"policies": {
"pre-commit": {
"required": ["lint:check", "types:validate"],
"recommended": ["test:unit"]
},
"pre-merge": {
"required": ["test:unit", "test:integration", "coverage:verify"],
"threshold": {
"coverage": 80,
"performance": 85
}
},
"pre-deploy": {
"required": ["security:audit", "test:integration", "bundle:size"],
"block_on_failure": true
}
}
}
सर्वोत्तम प्रथाएं
Action डिज़ाइन सिद्धांत
- एकल जिम्मेदारी: प्रत्येक Action बिल्कुल एक चीज़ को मान्य करता है
- तेज़ निष्पादन: Actions को सेकंड में पूरा होना चाहिए, मिनटों में नहीं
- स्पष्ट विफलता संदेश: विफलताओं पर कार्रवाई योग्य प्रतिक्रिया प्रदान करें
- नियतात्मक: समान इनपुट हमेशा समान परिणाम उत्पन्न करता है
- कोई साइड इफेक्ट नहीं: Actions मान्य करते हैं लेकिन संशोधित नहीं करते
प्रदर्शन अनुकूलन
- समानांतर निष्पादन: स्वतंत्र Actions को एक साथ चलाएं
- वृद्धिशील जांच: संभव होने पर केवल बदली गई फ़ाइलों को मान्य करें
- कैशिंग: अपरिवर्तित कोड के लिए परिणाम कैश करें
- शीघ्र निकास: महत्वपूर्ण उल्लंघनों पर तेज़ी से विफल हों
त्रुटि हैंडलिंग
Actions को स्पष्ट, कार्रवाई योग्य त्रुटि संदेश प्रदान करना चाहिए:
{
"action": "lint:check",
"status": "fail",
"message": "कोड गुणवत्ता मुद्दों का पता चला",
"fixes": {
"automatic": "12 मुद्दों को स्वतः ठीक करने के लिए 'npm run lint:fix' चलाएं",
"manual": "3 मुद्दों को मैनुअल हस्तक्षेप की आवश्यकता है",
"details": [
{
"file": "src/components/Header.vue",
"line": 25,
"rule": "no-unused-vars",
"message": "'oldValue' परिभाषित है लेकिन कभी उपयोग नहीं किया गया"
}
]
}
}
संवैधानिक निर्णय की शक्ति
Actions आपके कोड गुणवत्ता के संरक्षक हैं—गैर-परक्राम्य मानक जिन्हें कोड के प्रत्येक टुकड़े को पूरा करना होगा। वे सुझाव या दिशानिर्देश नहीं हैं; वे आपके कोडबेस के संवैधानिक कानून हैं।
सत्यापन (Actions) को कार्यान्वयन (Autopilots) और रणनीति (Playbooks) से अलग करके, Hatcher कोड गुणवत्ता सुनिश्चित करने के लिए एक स्पष्ट, रखरखाव योग्य और स्केलेबल प्रणाली बनाता है।
याद रखें: Actions बनाते या संशोधित नहीं करते—वे न्याय करते हैं। और उनका निर्णय अंतिम है।
अपने मानकों को स्वचालित रूप से लागू करें
अटूट सत्यापन नियम बनाएं जो आपकी कोड गुणवत्ता की रक्षा करते हैं