@mcptoolshop/housekeeping 1.3.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.hi.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.md">English</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
2
+ <a href="README.md">English</a> | <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
3
  </p>
4
4
 
5
5
  <p align="center">
@@ -10,7 +10,8 @@
10
10
 
11
11
  <p align="center">
12
12
  An operational-health warehouse for a GitHub organization.<br>
13
- One sweep, one SQLite database, findings you can argue with.
13
+ One sweep, one SQLite database, findings you can argue with,<br>
14
+ and the whole-organization view an AI agent needs to coordinate every repository.
14
15
  </p>
15
16
 
16
17
  <p align="center">
@@ -20,38 +21,107 @@
20
21
  <a href="https://mcp-tool-shop-org.github.io/housekeeping/handbook/"><img src="https://img.shields.io/badge/Handbook-read-blue" alt="Handbook" /></a>
21
22
  </p>
22
23
 
23
- एक बार स्कैन करने पर, प्रत्येक रिपॉजिटरी की सीआई स्थिति, खुली समस्याओं और पुल अनुरोधों, रिलीज़, संस्करण टैग, वर्कफ़्लो फ़ाइलों, शाखा सुरक्षा, सुरक्षा अलर्ट, लॉकफ़ाइलों और एक्शन बिलिंग को SQLite में एकत्र किया जाता है, फिर उन सभी का लिखित नियमों के अनुसार ऑडिट किया जाता है।
24
+ एक बार में सभी रिपॉजिटरी की सीआई स्थिति, खुली समस्याओं और पुल अनुरोधों,
25
+ रिलीज़, संस्करण टैग, वर्कफ़्लो फ़ाइलें, शाखा सुरक्षा, सुरक्षा अलर्ट,
26
+ लॉकफ़ाइलें और एक्शन बिलिंग को SQLite में एकत्र किया जाता है, फिर उन सभी का लिखित
27
+ नियमों के अनुसार ऑडिट किया जाता है।
24
28
 
25
29
  यह एक साथ पूरी संस्था के लिए उत्तर देता है:
26
30
 
27
31
  - कौन सी डिफ़ॉल्ट शाखाएँ लाल हैं, और क्या यह एक टूटी हुई मुख्य शाखा या पुरानी इतिहास है?
28
- - कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, क्योंकि एक आवश्यक जाँच अवरुद्ध हो रही है?
32
+ - कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, क्योंकि एक आवश्यक जाँच कुछ भी नहीं दे रही है और उन्हें रोक रही है?
29
33
  - रिपॉजिटरी की अपनी सेटिंग्स कौन से डिप्लॉय को अस्वीकार करती हैं?
30
- - `package.json`, गिट टैग और npm रजिस्ट्री कहाँ अलग हो गए हैं?
34
+ - `package.json`, गिट टैग और एनपीएम रजिस्ट्री कहाँ अलग हो गए हैं?
31
35
  - कौन से वर्कफ़्लो एक्शन लागत नियमों का उल्लंघन करते हैं, उनकी लागत क्या थी, और किन कार्यों ने इसे खर्च किया?
32
- - किन रिपॉजिटरी में ऐसी सलाहें हैं जिन्हें GitHub के अपने अलर्ट काउंट में शामिल नहीं किया गया है?
36
+ - कौन सी रिपॉजिटरी ऐसी सलाहें रखती हैं जिन्हें GitHub का अपना अलर्ट काउंट नहीं दिखाता है?
33
37
 
34
38
  यह एक ऑडिट उपकरण है, न कि एक सुधारक। यह GitHub को पढ़ता है और कुछ भी नहीं बदलता है।
35
39
 
36
- ## यह इस तरह से क्यों बनाया गया है
40
+ ## प्रत्येक रिपॉजिटरी पर एक एजेंट
41
+
42
+ दर्जनों रिपॉजिटरी वाली संस्था के पास कोई एक जगह नहीं है जहाँ उसकी
43
+ स्थिति मौजूद हो। हाउसकीपिंग वह जगह है, और इसका एमसीपी सर्वर, `hk-mcp`, इसे एक एआई एजेंट को सौंपता है। इसके साथ, एक एजेंट पूरी
44
+ संस्था के लिए समन्वयक के रूप में कार्य कर सकता है:
45
+
46
+ 1. **स्वीप।** `hk refresh` प्रत्येक रिपॉजिटरी का एक स्नैपशॉट लेता है।
47
+ 2. **ट्राइएज।** एजेंट पूछता है कि क्या लाल है, क्या अवरुद्ध है और क्या बदतर हो गया है,
48
+ और ऐसे उत्तर प्राप्त करता है जो पहले से ही एक टूटी हुई मुख्य शाखा को पुरानी इतिहास से और
49
+ एक अटकी हुई पुल अनुरोध को एक संघर्षपूर्ण अनुरोध से अलग बताते हैं।
50
+ 3. **एक लहर की योजना बनाएं।** एक `hk_sql` क्वेरी हर उस रिपॉजिटरी को ढूंढती है जिसमें समान
51
+ आकार है, इसलिए एक सुधार एक शिकार के बजाय प्रति रिपॉजिटरी एक पुल अनुरोध बन जाता है।
52
+ 4. **काम करें।** हाउसकीपिंग कभी भी नहीं लिखता है। एजेंट अपने स्वयं के उपकरणों के साथ, अपनी अनुमति के तहत और आपकी समीक्षा के साथ पुल अनुरोध खोलता है।
53
+ 5. **सत्यापित करें।** फिर से स्वीप करें। निष्कर्ष चला गया है या नहीं, और दो स्नैपशॉट के बीच का परिवर्तन एक क्वेरी है।
54
+
55
+ एक एजेंट एक या दो कॉल में जिन प्रश्नों का उत्तर देता है:
56
+
57
+ - कौन सी डिफ़ॉल्ट शाखाएँ लाल हैं, और कौन सा कार्य और चरण विफल रहा?
58
+ - कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, और क्या ट्रिगर या संघर्ष को दोष देना चाहिए?
59
+ - कौन सी रिपॉजिटरी एक उत्पादन सलाह रखती हैं जिसके लिए GitHub कोई अलर्ट नहीं दिखाता है?
60
+ - कौन से अनुसूचित वर्कफ़्लो शेड्यूल के लिए नियमों का उल्लंघन करते हैं, और कैसे?
61
+ - एक्शन की लागत क्या थी, और किस कार्य ने इसे खर्च किया?
62
+ - पिछली स्वीप के बाद से क्या बदल गया?
63
+
64
+ | उपकरण | यह क्या उत्तर देता है |
65
+ |---|---|
66
+ | `hk_summary` | नवीनतम स्वीप के लिए कुल: रिपॉजिटरी, मुद्दे, पुल अनुरोध, वर्कफ़्लो, निष्कर्ष। |
67
+ | `hk_findings` | कोड, गंभीरता, श्रेणी या रिपॉजिटरी द्वारा निष्कर्ष; जब फ़िल्टर नहीं किया जाता है तो कोड द्वारा गणना। एक लाल मुख्य शाखा के निष्कर्ष में उस कार्य और चरण का नाम होता है जो विफल रहा। |
68
+ | `hk_ci` | वे रिपॉजिटरी जिनकी डिफ़ॉल्ट शाखा लाल है और वे वर्कफ़्लो जो विफल रहे; साथ ही विफल शेड्यूल, विफल पुल-अनुरोध शाखाएँ और ऐसी रिपॉजिटरी जिनमें कोई सीआई नहीं है। |
69
+ | `hk_repo` | एक पूरी रिपॉजिटरी: निष्कर्ष, वर्कफ़्लो, खुले पुल अनुरोध और मुद्दे। |
70
+ | `hk_backlog` | पूरी संस्था में खुले पुल अनुरोध या मुद्दे, सबसे पुराने पहले। |
71
+ | `hk_health` | प्रति रिपॉजिटरी एक स्वास्थ्य स्कोर, सबसे खराब पहले। |
72
+ | `hk_cost` | एक्शन खर्च, रिपॉजिटरी, वर्कफ़्लो या कार्य द्वारा, सकल और शुद्ध अलग-अलग। |
73
+ | `hk_sql` | वेयरहाउस के विरुद्ध एक रीड-ओनली `SELECT` या `WITH` स्टेटमेंट। |
74
+ | `hk_schema` | `hk_sql` क्वेरी लिखने के लिए तालिकाएँ और कॉलम। |
75
+
76
+ प्रत्येक उत्तर नवीनतम स्नैपशॉट से आता है, जो रीड-ओनली है। एक विफल कॉल एक संरचित त्रुटि लौटाता है, कभी भी स्टैक ट्रेस नहीं।
77
+
78
+ ### इसे कनेक्ट करें
37
79
 
38
- | लेयर | विकल्प | तर्क |
80
+ ```json
81
+ {
82
+ "mcpServers": {
83
+ "housekeeping": { "command": "hk-mcp", "env": { "HK_HOME": "/path/to/warehouse" } },
84
+ "atlas": { "command": "atlas", "args": ["mcp"] }
85
+ }
86
+ }
87
+ ```
88
+
89
+ `HK_HOME` वह निर्देशिका है जिससे आप स्वीप करते हैं। एक क्लोन से, `"command": "node", "args": ["/path/to/housekeeping/src/mcp.mjs"]` का उपयोग करें। दूसरा
90
+ सर्वर [एटलस](https://github.com/dogfood-lab/testing-os/tree/main/packages/atlas) है,
91
+ जो एक समय में एक रिपॉजिटरी के बारे में उसी एजेंट को उत्तर देता है (नीचे देखें)। विंडोज पर, `cmd /c` के माध्यम से वैश्विक रूप से स्थापित कमांड शुरू करें।
92
+
93
+ ## हाउसकीपिंग और एटलस
94
+
95
+ [एटलस](https://github.com/dogfood-lab/testing-os/tree/main/packages/atlas)
96
+ (`@dogfood-lab/atlas`) एक रिपॉजिटरी को मैप करता है: इसके भाग, और इसके द्वार, जिसका अर्थ है
97
+ प्रत्येक वर्कफ़्लो जिसमें यह क्या चलाता है, प्रकाशित करता है और तैनात करता है। मानचित्र को `atlas/` के रूप में प्रतिबद्ध किया जाता है और सीआई में जाँच की जाती है। हाउसकीपिंग संगठन दृश्य है। दोनों को एक साथ काम करने के लिए बनाया गया है।
98
+
99
+ - **प्रत्येक मानचित्र, स्वीप किया गया।** एक स्वीप प्रत्येक रिपॉजिटरी के प्रतिबद्ध मानचित्र को अन्य सभी के साथ पढ़ता है, और रिपोर्ट करता है कि किन रिपॉजिटरी में कोई नहीं है, कौन से `atlas check` कभी नहीं चलाते हैं, और किनमें बाकी संगठन द्वारा पिन किए गए से अलग इंजन है।
100
+ - **जहां एक लाल रन विफल रहा।** जब एक डिफ़ॉल्ट शाखा लाल होती है, तो निष्कर्ष उस कार्य और चरण का नाम देता है जो विफल रहा और, मानचित्र के माध्यम से, उस चरण द्वारा चलाया जाने वाला कमांड, ताकि मरम्मत सही फ़ाइल में शुरू हो।
101
+ - **मानचित्र से डिप्लॉय तथ्य।** एक कार्य जिस वातावरण में तैनात होता है, वह मानचित्र से लिया जाता है जहां यह एक को रिकॉर्ड करता है, इसलिए दोनों उपकरण एक ही वर्कफ़्लो को एक ही तरह से पढ़ते हैं।
102
+ - **पूरे बेड़े में चेतावनी।** एटलस एक वर्कफ़्लो चरण को चिह्नित करता है जो चलने से पहले विफल हो जाएगा, जैसे कि एक उपकरण जिसे उस कार्य द्वारा स्थापित की तुलना में एक नए रनटाइम की आवश्यकता होती है। रिपोर्ट में ये सभी एक साथ सूचीबद्ध हैं।
103
+
104
+ दोनों सर्वरों वाले एक एजेंट "ये बारह रिपॉजिटरी अवरुद्ध हैं" (हाउसकीपिंग) से "यह वर्कफ़्लो, कार्य और वे फ़ाइलें हैं जिन तक एक परिवर्तन पहुंचेगा" (एटलस) तक जाता है, बिना प्रत्येक रिपॉजिटरी को मैन्युअल रूप से खोले।
105
+
106
+ ## यह इस तरह क्यों आकार दिया गया है
107
+
108
+ | परत | विकल्प | कारण |
39
109
  |---|---|---|
40
- | परिवहन | `gh` CLI | इसमें पहले से ही आपका टोकन है। उपकरण कभी भी क्रेडेंशियल संग्रहीत या मांगता नहीं है। |
41
- | संग्रह | GitHub GraphQL, पेज किया गया | एक क्वेरी एक पृष्ठ की रिपॉजिटरी के लिए मेटाडेटा, खुली समस्याएं, खुले पुल अनुरोध, रिलीज़ और फ़ाइल ट्री लौटाती है। एक ऐसा पृष्ठ जो लगातार समय समाप्त हो रहा है, उसे आधा कर दिया जाता है और उसी कर्सर से फिर से पूछा जाता है। |
110
+ | परिवहन | `gh` सीएलआई | इसमें पहले से ही आपका टोकन है। उपकरण कभी भी क्रेडेंशियल संग्रहीत या नहीं मांगता है। |
111
+ | संग्रह | GitHub GraphQL, पृष्ठबद्ध | एक क्वेरी रिपॉजिटरी के एक पृष्ठ के लिए मेटाडेटा, खुली समस्याओं, खुले पुल अनुरोधों, रिलीज़ और फ़ाइल ट्री लौटाती है। एक पृष्ठ जो समय समाप्त करना जारी रखता है, उसे आधा कर दिया जाता है और उसी कर्सर से फिर से पूछा जाता है। |
42
112
  | एक्शन रन | REST | GraphQL में कोई एक्शन सतह नहीं है। |
43
- | एक्शन लागत | बिलिंग API प्लस प्रति-कार्य अवधि | चालान में बताया गया है कि कौन सी रिपॉजिटरी है; केवल कार्यों में बताया गया है कि कौन सा वर्कफ़्लो। GitHub के `/timing` एंडपॉइंट शून्य लौटाते हैं, इसलिए प्रति-कार्य योग को फिर से बनाया जाता है और फिर चालान के साथ मिलान किया जाता है। |
44
- | रनर दरें | चालान से पढ़ें | एक बिल की गई दर सूची मूल्य से भिन्न हो सकती है, और स्रोत में एक स्थिर मान हर संख्या को गलत बताएगा। |
45
- | भंडारण | अंतर्निहित `node:sqlite` के माध्यम से SQLite | कोई देशी बिल्ड चरण नहीं। |
46
- | सत्य का स्रोत | `data/snapshots/*.json` | कच्चा, तुलना करने योग्य और केवल जोड़ने योग्य। डेटाबेस व्युत्पन्न है: `npm run rebuild` इसे ऑफ़लाइन पुनर्निर्मित करता है। |
47
- | स्कैन लॉग | `data/sweeps.jsonl` | प्रत्येक स्कैन के लिए एक पंक्ति, जिसमें वे स्कैन भी शामिल हैं जो विफल रहे और वे स्कैन जिनमें कुछ भी नया नहीं मिला। |
113
+ | एक्शन लागत | बिलिंग एपीआई प्लस प्रति-कार्य अवधि | इनवॉइस में यह बताया गया है कि कौन सी रिपॉजिटरी है; केवल कार्यों में यह बताया गया है कि कौन सा वर्कफ़्लो है। GitHub के `/timing` एंडपॉइंट शून्य लौटाते हैं, इसलिए प्रति-कार्य योग को फिर से बनाया जाता है और फिर इनवॉइस के साथ मिलान किया जाता है। |
114
+ | रनर दरें | इनवॉइस से पढ़ी गई | बिल की गई दर, सूची मूल्य से भिन्न हो सकती है, और स्रोत में एक स्थिर मान हर संख्या को गलत बताएगा। |
115
+ | भंडारण | SQLite, अंतर्निहित `node:sqlite` के माध्यम से | कोई अंतर्निहित बिल्ड चरण नहीं। |
116
+ | सत्य का स्रोत | `data/snapshots/*.json` | कच्चा, तुलना करने योग्य और केवल जोड़ने योग्य। डेटाबेस प्राप्त किया गया है: `npm run rebuild` इसे ऑफ़लाइन पुनर्निर्मित करता है। |
117
+ | स्वीप लॉग | `data/sweeps.jsonl` | प्रत्येक स्वीप के लिए एक पंक्ति, जिसमें विफल स्वीप और नए कुछ भी नहीं खोजने वाले स्वीप शामिल हैं। |
48
118
 
49
- स्नैपशॉट अपरिवर्तनीय और योज्य होते हैं, इसलिए दो तिथियों के बीच का विचलन `JOIN` है।
119
+ स्नैपशॉट अपरिवर्तनीय और संचयी होते हैं, इसलिए दो तिथियों के बीच का विचलन एक `JOIN` है।
50
120
 
51
- ## आवश्यकताएँ
121
+ ## आवश्यकताएं
52
122
 
53
123
  - Node.js 22.5 या बाद का संस्करण।
54
- - [GitHub CLI](https://cli.github.com/), साइन इन किया हुआ (`gh auth status`) एक ऐसे खाते के रूप में जो संगठन को पढ़ सकता है। बिलिंग और सुरक्षा अलर्ट पढ़ने के लिए संबंधित एक्सेस की आवश्यकता होती है; इसके बिना स्कैन "मापा नहीं गया" रिकॉर्ड करता है और आगे बढ़ता है। यह कभी भी गुम अनुमति को एक स्वच्छ परिणाम के रूप में रिकॉर्ड नहीं करता है।
124
+ - [GitHub CLI](https://cli.github.com/), साइन इन (`gh auth status`) एक ऐसे खाते के रूप में जो संगठन को पढ़ सकता है। बिलिंग और सुरक्षा अलर्ट पढ़ने के लिए संबंधित एक्सेस की आवश्यकता होती है; इसके बिना स्वीप "मापा नहीं गया" रिकॉर्ड करता है और आगे बढ़ता है। यह कभी भी किसी छूटी हुई अनुमति को एक स्पष्ट परिणाम के रूप में रिकॉर्ड नहीं करता है।
55
125
  - विंडोज या लिनक्स। इसे विंडोज पर विकसित किया गया है और इसके परीक्षण CI में लिनक्स पर चलते हैं। macOS को काम करना चाहिए और इसका परीक्षण नहीं किया गया है।
56
126
 
57
127
  ## उपयोग
@@ -62,9 +132,9 @@ mkdir warehouse && cd warehouse # housekeeping keeps its data here
62
132
  hk refresh your-org # collect, load, analyze, write reports/AUDIT-<date>.md
63
133
  ```
64
134
 
65
- सेटिंग्स को बनाए रखने के लिए, उस निर्देशिका में `housekeeping.config.json` रखें (कॉन्फ़िगरेशन देखें); फिर `hk refresh` को किसी तर्क की आवश्यकता नहीं होगी।
135
+ स्वीपों के बीच सेटिंग्स को बनाए रखने के लिए, उस निर्देशिका में एक `housekeeping.config.json` रखें (कॉन्फ़िगरेशन देखें); फिर `hk refresh` को किसी तर्क की आवश्यकता नहीं है।
66
136
 
67
- या इसे क्लोन से चलाएं, जो अपने डेटा को क्लोन में रखता है:
137
+ या इसे एक क्लोन से चलाएं, जो इसके डेटा को क्लोन में रखता है:
68
138
 
69
139
  ```bash
70
140
  git clone https://github.com/mcp-tool-shop-org/housekeeping.git
@@ -84,6 +154,8 @@ hk findings # findings grouped by severity and code
84
154
  hk health # per-repository health score, worst first
85
155
  hk repo <name> # one repository in full
86
156
  hk prs # every open pull request by age
157
+ hk branches # branches by state: merged, moved after merge, no PR
158
+ hk watch # open PRs, alerts and branches for a short watch list
87
159
  hk versions # package.json against git tag against npm
88
160
  hk actions # every workflow and its rule flags
89
161
  hk cost # Actions cost, gross and net side by side
@@ -91,13 +163,13 @@ hk sql "SELECT ..." # one read-only statement
91
163
  hk help # every command and flag
92
164
  ```
93
165
 
94
- एक क्लोन में जिसमें `npm link` नहीं है, प्रत्येक `hk <command>` `node src/cli.mjs <command>` होता है।
166
+ `npm link` के बिना एक क्लोन में, प्रत्येक `hk <command>` `node src/cli.mjs <command>` है।
95
167
 
96
- `npm run rebuild` डेटाबेस और रिपोर्ट को डिस्क पर पहले से मौजूद स्नैपशॉट से पुनर्निर्मित करता है, बिना किसी नेटवर्क एक्सेस के।
168
+ `npm run rebuild` डेटाबेस और रिपोर्ट को पहले से डिस्क पर मौजूद स्नैपशॉट से फिर से प्राप्त करता है, बिना किसी नेटवर्क एक्सेस के।
97
169
 
98
- एक पूर्ण स्कैन कुछ सौ API कॉल करता है। `refresh` को लूप में न चलाएं।
170
+ एक पूर्ण स्वीप कुछ सौ API कॉल करता है। `refresh` को लूप में न चलाएं।
99
171
 
100
- परिणाम मानक आउटपुट पर जाते हैं; प्रगति और त्रुटियां मानक त्रुटि पर जाती हैं। प्रत्येक त्रुटि एक कोड और एक संकेत प्रिंट करती है। निकास कोड: 0 ठीक, 1 उपयोगकर्ता त्रुटि, 2 रनटाइम त्रुटि, 3 आंशिक (स्कैन समाप्त हो गया, अंतराल के साथ)।
172
+ परिणाम मानक आउटपुट पर जाते हैं; प्रगति और त्रुटियां मानक त्रुटि पर जाती हैं। प्रत्येक त्रुटि एक कोड और एक संकेत प्रिंट करती है। निकास कोड: 0 ठीक, 1 उपयोगकर्ता त्रुटि, 2 रनटाइम त्रुटि, 3 आंशिक (स्वीप समाप्त हो गया, अंतराल के साथ)।
101
173
 
102
174
  ## कॉन्फ़िगरेशन
103
175
 
@@ -110,71 +182,55 @@ hk help # every command and flag
110
182
  }
111
183
  ```
112
184
 
113
- - `org` वह संगठन है जिसे स्कैन करना है। `hk refresh <org>` इसे ओवरराइड करता है। दोनों में से किसी के बिना, स्कैन शुरू करने से इनकार कर देगा।
114
- - `metaRepos` वे रिपॉजिटरी हैं जिनमें संगठन डिफ़ॉल्ट, संपत्ति या उपकरण होते हैं, न कि एक शिप किया गया उत्पाद। वे उन निष्कर्षों से छूट प्राप्त हैं जो केवल किसी उत्पाद के लिए समझ में आते हैं: गुम README, LICENSE और समान फ़ाइलें, कोई वर्कफ़्लो नहीं होना और कोई रिलीज़ नहीं होना।
185
+ - `org` वह संगठन है जिसका स्वीप किया जाना है। `hk refresh <org>` इसे ओवरराइड करता है। दोनों में से किसी के बिना, स्वीप शुरू करने से इनकार कर देगा।
186
+ - `metaRepos` वे रिपॉजिटरी हैं जिनमें संगठन डिफ़ॉल्ट, संपत्ति या उपकरण होते हैं, न कि कोई शिप किया गया उत्पाद। वे उन निष्कर्षों से छूट प्राप्त हैं जो केवल किसी उत्पाद के लिए समझ में आते हैं: लापता README, LICENSE और इसी तरह की फाइलें, कोई वर्कफ़्लो नहीं होना और कोई रिलीज़ नहीं होना।
115
187
 
116
188
  एक गलत फ़ाइल एक त्रुटि है, कभी भी एक मौन डिफ़ॉल्ट नहीं: एक अज्ञात कुंजी, एक गलत प्रकार या टूटा हुआ JSON रन को रोक देता है।
117
189
 
118
190
  एक क्लोन से चलाएं, हाउसकीपिंग `data/`, `reports/` और कॉन्फ़िगरेशन फ़ाइल को क्लोन में रखता है। एक स्थापित पैकेज के रूप में चलाएं, यह उन्हें उस निर्देशिका में रखता है जिससे आप इसे चलाते हैं, या `HK_HOME` में जब वह सेट हो।
119
191
 
120
- पर्यावरण: `HK_HOME` (जहां डेटा, रिपोर्ट और कॉन्फ़िगरेशन रहते हैं), `HK_CONFIG` (कॉन्फ़िगरेशन पथ), `HK_DB` (डेटाबेस पथ), `HK_LOG` (`silent`, `normal`, `verbose` या `debug`), `HK_COST_REPOS` और `HK_COST_BUDGET` (प्रति-कार्य लागत सीमा), `GH_PATH` (`gh` का पथ)।
192
+ पर्यावरण: `HK_HOME` (जहां डेटा, रिपोर्ट और कॉन्फ़िगरेशन मौजूद हैं), `HK_CONFIG` (कॉन्फ़िगरेशन पथ), `HK_DB` (डेटाबेस पथ), `HK_LOG` (`silent`, `normal`, `verbose` या `debug`), `HK_COST_REPOS` और `HK_COST_BUDGET` (प्रति-कार्य लागत पास पर सीमाएं), `GH_PATH` (`gh` का पथ)।
121
193
 
122
194
  ## डेटा को निजी रखें
123
195
 
124
- **एक स्कैन जो लिखता है वह संवेदनशील है। `data/` या `reports/` को सार्वजनिक रिपॉजिटरी में कमिट न करें।**
196
+ **एक स्वीप जो लिखता है वह संवेदनशील है। `data/` या `reports/` को सार्वजनिक रिपॉजिटरी में कमिट न करें।**
125
197
 
126
- एक स्नैपशॉट निजी रिपॉजिटरी के नाम और विवरण, प्रत्येक खुली सुरक्षा अलर्ट जिसमें वह पैकेज है जिसका वह उल्लेख करता है, वर्कफ़्लो फ़ाइलें और एक्शन बिलिंग रिकॉर्ड करता है। GitHub जानबूझकर एक सार्वजनिक रिपॉजिटरी की सुरक्षा अलर्ट को सभी से छिपा देता है, सिवाय इसके रखरखावकर्ताओं के; एक प्रकाशित स्नैपशॉट उस सूची को दे देगा।
198
+ एक स्नैपशॉट निजी रिपॉजिटरी के नाम और विवरण, उस पैकेज के साथ प्रत्येक खुली सुरक्षा अलर्ट, वर्कफ़्लो फ़ाइलें और एक्शन बिलिंग रिकॉर्ड करता है। GitHub जानबूझकर एक सार्वजनिक रिपॉजिटरी की सुरक्षा अलर्ट को उसके रखरखावकर्ताओं के अलावा सभी से छिपा देता है; एक प्रकाशित स्नैपशॉट उस सूची को दे देगा।
127
199
 
128
200
  इस रिपॉजिटरी का `.gitignore` `data/`, `reports/` और `housekeeping.config.json` को बाहर करता है। इतिहास को बनाए रखने के लिए, जो स्नैपशॉट का बिंदु है, अपने स्वयं के एक निजी रिपॉजिटरी से उपकरण चलाएं और उन्हें वहां कमिट करें।
129
201
 
130
- ## MCP सर्वर
131
-
132
- `hk-mcp` (या क्लोन में `npm run mcp`) stdio के माध्यम से डेटाबेस को सेवा प्रदान करता है, इसलिए एक सहायक बिना मल्टी-मेगाबाइट स्नैपशॉट पढ़े प्रश्न पूछ सकता है:
133
-
134
- `hk_summary` · `hk_findings` · `hk_ci` · `hk_repo` · `hk_backlog` · `hk_health` · `hk_cost` · `hk_sql` · `hk_schema`
135
-
136
- ```json
137
- {
138
- "mcpServers": {
139
- "housekeeping": { "command": "hk-mcp", "env": { "HK_HOME": "/path/to/warehouse" } }
140
- }
141
- }
142
- ```
143
-
144
- `HK_HOME` वह निर्देशिका है जिससे आप डेटा लेते हैं। क्लोन से, इसके बजाय `"command": "node", "args": ["/path/to/housekeeping/src/mcp.mjs"]` का उपयोग करें।
145
-
146
- `hk_sql` एक एकल `SELECT` या `WITH` कथन स्वीकार करता है और डेटाबेस को केवल-पढ़ने के लिए खोलता है। एक विफल कॉल एक संरचित त्रुटि लौटाती है, कभी भी स्टैक ट्रेस नहीं।
147
-
148
202
  ## निष्कर्ष
149
203
 
150
- नियम `src/analyze.mjs` में रहते हैं। प्रत्येक नियम उस लिखित नियम का हवाला देता है जिसे वह लागू करता है, इसलिए एक निष्कर्ष को एक मानक के खिलाफ तर्क दिया जा सकता है, न कि स्वाद के खिलाफ। इस रिपॉजिटरी में शिप किए गए नियम [`rules/`](rules/) में हैं:
204
+ नियम `src/analyze.mjs` में रहते हैं। प्रत्येक नियम उस लिखित नियम का हवाला देता है जिसे वह लागू करता है, इसलिए एक निष्कर्ष को एक मानक के खिलाफ तर्क दिया जा सकता है, न कि स्वाद के खिलाफ। इस रिपॉजिटरी में भेजे गए नियम [`rules/`](rules/) में हैं:
151
205
 
152
- - [`rules/github-actions.md`](rules/github-actions.md): पाथ फ़िल्टर, रनर, मैट्रिक्स आकार, वर्कफ़्लो फ़ाइल सीमा, समवर्तीता।
153
- - [`rules/shipcheck-product-standards.md`](rules/shipcheck-product-standards.md): सीआई को पास होना चाहिए, शिप गेट, संस्करण।
206
+ - [`rules/github-actions.md`](rules/github-actions.md): पथ फ़िल्टर, रनर, मैट्रिक्स आकार, वर्कफ़्लो फ़ाइल सीमा, समवर्ती।
207
+ - [`rules/shipcheck-product-standards.md`](rules/shipcheck-product-standards.md): CI को पास होना चाहिए, शिप गेट, संस्करण।
154
208
  - [`rules/repo-first.md`](rules/repo-first.md): डिफ़ॉल्ट शाखा।
155
- - [`rules/atlas-map.md`](rules/atlas-map.md): प्रत्येक रिपॉजिटरी का एक प्रतिबद्ध मानचित्र, सीआई में जांचा गया।
209
+ - [`rules/atlas-map.md`](rules/atlas-map.md): प्रत्येक रिपॉजिटरी का एक कमिट किया गया मानचित्र, CI में जांचा गया।
156
210
 
157
- ये किसी एक संगठन के मानक हैं। यदि आपके मानक अलग हैं, तो नियम फ़ाइल और नियम को बदलें।
211
+ ये एक संगठन के मानक हैं। यदि आपके भिन्न हैं, तो नियम फ़ाइल और नियम दोनों को बदलें।
158
212
 
159
- नियम उन चीजों को अलग रखने का ध्यान रखते हैं जो समान दिखती हैं, क्योंकि उन्हें एक साथ मिलाने से शोर उत्पन्न होता है:
213
+ नियम उन चीजों को अलग रखने का ध्यान रखते हैं जो समान दिखती हैं, क्योंकि उन्हें मिलाने से शोर पैदा होता है:
160
214
 
161
- - **एक लाल डिफ़ॉल्ट शाखा, लाल पुल-अनुरोध शाखा नहीं है।** एक विफल डिपेंडबॉट शाखा बैकलॉग है; डिफ़ॉल्ट शाखा पर एक विफल `push` रन, खराबी है। रन का इवेंट यह तय करता है कि कौन सा।
162
- - **इतिहास खराबी नहीं है।** केवल रिलीज़ के लिए ट्रिगर करने वाले वर्कफ़्लो को स्थानांतरित करने से, इसकी पिछली डिफ़ॉल्ट-शाखा विफलता हमेशा बनी रहती है। एक हटाई गई वर्कफ़्लो अपनी रन को बरकरार रखती है। न तो यह कोई सक्रिय दोष है।
163
- - **एक आवश्यक जांच, जो कुछ भी उत्सर्जित नहीं कर सकती, वह जांच नहीं है जो यहां नहीं चली।** एक कहता है कि आवश्यकता को छोड़ दें; दूसरा कहता है कि ट्रिगर को ठीक करें। दोनों मरम्मत एक-दूसरे का खंडन करते हैं।
164
- - **एक विफल रन, रद्द किया गया रन नहीं है।** `cancel-in-progress` का उद्देश्य पुराने रन को समाप्त करना है, इसलिए रद्द किए गए मिनट आमतौर पर समवर्तीता नियम के काम करने का परिणाम होते हैं।
165
- - **कुल लागत, शुद्ध लागत नहीं है।** GitHub सार्वजनिक रिपॉजिटरी को पूरी कीमत पर मापता है और उन्हें शून्य पर छूट देता है। कुल वास्तविक कंप्यूट है; शुद्ध वास्तविक धन है। उन्हें कभी भी जोड़ा नहीं जाता है।
166
- - **जो मापा नहीं गया, वह साफ नहीं है।** एक रिपॉजिटरी जिसे GitHub स्कैन नहीं कर रहा है, उसमें शून्य अलर्ट होते हैं। एक रिपॉजिटरी जिसकी लागत सीमा तक नहीं पहुंची, उसमें कोई लागत पंक्ति नहीं है। दोनों को अज्ञात के रूप में रिपोर्ट किया जाता है।
215
+ - **एक लाल डिफ़ॉल्ट शाखा एक लाल पुल-अनुरोध शाखा नहीं है।** एक विफल Dependabot शाखा बैकलॉग है; डिफ़ॉल्ट शाखा पर एक विफल `push` रन ब्रेक है। रन का इवेंट यह तय करता है कि कौन सा है।
216
+ - **इतिहास ब्रेक नहीं है।** एक वर्कफ़्लो जिसे केवल रिलीज़-केवल ट्रिगर में ले जाया गया है, वह हमेशा अपनी पिछली डिफ़ॉल्ट-शाखा विफलता को रखता है। एक हटाई गई वर्कफ़्लो अपने रन को रखता है। न तो यह एक लाइव दोष है।
217
+ - **एक आवश्यक जांच जो कुछ भी उत्सर्जित नहीं कर सकती है, वह एक जांच नहीं है जो यहां नहीं चली।** एक कहता है कि आवश्यकता को छोड़ दें; दूसरा कहता है कि ट्रिगर को ठीक करें। मरम्मत एक-दूसरे का खंडन करती है।
218
+ - **एक पुल अनुरोध जिसे ट्रिगर ने छोड़ दिया है, वह एक संघर्षपूर्ण अनुरोध नहीं है।** GitHub संघर्ष वाले पुल अनुरोध पर कोई भी पुल-अनुरोध वर्कफ़्लो नहीं चलाता है, इसलिए इसकी लापता जांच ट्रिगर के बारे में कुछ भी नहीं कहती है। उस एक को एक रीबेस की आवश्यकता है।
219
+ - **एक विफल रन एक रद्द किया गया रन नहीं है।** `cancel-in-progress` का उद्देश्य पुराने रन को समाप्त करना है, इसलिए रद्द किए गए मिनट आमतौर पर समवर्ती नियम काम कर रहे होते हैं।
220
+ - **सकल लागत शुद्ध लागत नहीं है।** GitHub सार्वजनिक रिपॉजिटरी को पूरी कीमत पर मापता है और उन्हें शून्य पर छूट देता है। सकल वास्तविक गणना है; शुद्ध वास्तविक धन है। उन्हें कभी भी जोड़ा नहीं जाता है।
221
+ - **मापा नहीं गया साफ नहीं है।** एक रिपॉजिटरी GitHub स्कैनिंग रिपोर्ट शून्य अलर्ट दिखा रहा है। एक रिपॉजिटरी जिस पर लागत पास नहीं पहुंचा, उसमें कोई लागत पंक्ति नहीं है। दोनों को अज्ञात के रूप में रिपोर्ट किया जाता है।
167
222
 
168
- गंभीरता एक स्वास्थ्य स्कोर निर्धारित करती है: गंभीर 40, उच्च 15, मध्यम 6, निम्न 2, सूचना 0, जो 100 से घटाया जाता है। स्कोर गुणवत्ता के बजाय ध्यान को रैंक करता है।
223
+ गंभीरता एक स्वास्थ्य स्कोर चलाती है: गंभीर 40, उच्च 15, मध्यम 6, निम्न 2, जानकारी 0, 100 से घटाया गया। स्कोर गुणवत्ता के बजाय ध्यान को रैंक करता है।
169
224
 
170
- [हैंडबुक](https://mcp-tool-shop-org.github.io/housekeeping/handbook/) में प्रत्येक निष्कर्ष, कमांड, त्रुटि कोड और तालिका सूचीबद्ध है।
225
+ [हैंडबुक](https://mcp-tool-shop-org.github.io/housekeeping/handbook/)
226
+ इसमें सभी निष्कर्ष, कमांड, त्रुटि कोड और तालिकाएँ सूचीबद्ध हैं।
171
227
 
172
228
  ## सुरक्षा
173
229
 
174
- - **केवल पढ़ने के लिए।** कलेक्टर GraphQL क्वेरी और REST `GET` जारी करता है। यह कभी भी किसी सेटिंग को मर्ज, पुश, रिलीज़, प्रकाशित या संपादित नहीं करता है।
230
+ - **केवल-पढ़ने योग्य।** कलेक्टर GraphQL क्वेरी और REST `GET` जारी करता है। यह कभी भी किसी सेटिंग को मर्ज, पुश, रिलीज़, प्रकाशित या संपादित नहीं करता है।
175
231
  - **कोई क्रेडेंशियल नहीं।** प्रमाणीकरण वह है जो `gh` पहले से ही रखता है। इसके बारे में कुछ भी डिस्क पर नहीं लिखा जाता है।
176
- - **कोई टेलीमेट्री नहीं।** संपर्क किए गए एकमात्र होस्ट GitHub API हैं, `gh` के माध्यम से, और संस्करण और सलाह की जानकारी के लिए npm रजिस्ट्री।
177
- - **यह जो संग्रहीत करता है** वह संवेदनशील भाग है: "डेटा को निजी रखें" देखें।
232
+ - **कोई टेलीमेट्री नहीं।** संपर्क किए गए एकमात्र होस्ट GitHub एपीआई हैं, जो `gh` के माध्यम से, और संस्करण और सलाह की जानकारी के लिए npm रजिस्ट्री हैं।
233
+ - **यह क्या संग्रहीत करता है** यह संवेदनशील भाग है: "डेटा को निजी रखें" देखें।
178
234
 
179
235
  [SECURITY.md](SECURITY.md) में वर्णित अनुसार किसी भेद्यता की रिपोर्ट करें।
180
236
 
@@ -184,12 +240,12 @@ hk help # every command and flag
184
240
  npm test
185
241
  ```
186
242
 
187
- प्रत्येक नियम का दोनों दिशाओं में परीक्षण किया जाता है: वह आकार जो सक्रिय होना चाहिए, और पड़ोसी आकार जो सक्रिय नहीं होना चाहिए। एक अलग सत्यापनकर्ता, अपने स्वयं के परिवहन के माध्यम से, लाइव GitHub से निष्कर्षों का एक नमूना फिर से प्राप्त करता है, और जब कोई डेटाबेस या नेटवर्क नहीं होता है, तो जोर से छोड़ देता है।
243
+ प्रत्येक नियम का दोनों दिशाओं में परीक्षण किया जाता है: वह आकार जो सक्रिय होना चाहिए, और पड़ोसी आकार जो सक्रिय नहीं होना चाहिए। एक अलग सत्यापनकर्ता अपने स्वयं के माध्यम से लाइव GitHub से निष्कर्षों का एक नमूना पुनः प्राप्त करता है, और जब कोई डेटाबेस या नेटवर्क नहीं होता है, तो जोर से छोड़ देता है।
188
244
 
189
245
  ## लाइसेंस
190
246
 
191
- MIT. [LICENSE](LICENSE) देखें।
247
+ एमआईटी। [LICENSE](LICENSE) देखें।
192
248
 
193
249
  ---
194
250
 
195
- <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a> द्वारा निर्मित।
251
+ <a href="https://mcp-tool-shop.github.io/">एमसीपी टूल शॉप</a> द्वारा निर्मित