@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/CHANGELOG.md +69 -0
- package/README.es.md +171 -81
- package/README.fr.md +161 -76
- package/README.hi.md +123 -67
- package/README.it.md +184 -81
- package/README.ja.md +116 -72
- package/README.md +91 -23
- package/README.pt-BR.md +179 -93
- package/README.zh.md +122 -75
- package/housekeeping.config.example.json +3 -1
- package/package.json +1 -1
- package/rules/atlas-map.md +6 -1
- package/rules/github-actions.md +7 -3
- package/src/analyze.mjs +148 -41
- package/src/cli.mjs +85 -2
- package/src/collect.mjs +78 -5
- package/src/config.mjs +22 -4
- package/src/load.mjs +62 -6
- package/src/report.mjs +13 -9
- package/src/schema.sql +35 -1
- package/src/workflow-risks.mjs +160 -2
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"
|
|
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
|
-
एक बार
|
|
24
|
+
एक बार में सभी रिपॉजिटरी की सीआई स्थिति, खुली समस्याओं और पुल अनुरोधों,
|
|
25
|
+
रिलीज़, संस्करण टैग, वर्कफ़्लो फ़ाइलें, शाखा सुरक्षा, सुरक्षा अलर्ट,
|
|
26
|
+
लॉकफ़ाइलें और एक्शन बिलिंग को SQLite में एकत्र किया जाता है, फिर उन सभी का लिखित
|
|
27
|
+
नियमों के अनुसार ऑडिट किया जाता है।
|
|
24
28
|
|
|
25
29
|
यह एक साथ पूरी संस्था के लिए उत्तर देता है:
|
|
26
30
|
|
|
27
31
|
- कौन सी डिफ़ॉल्ट शाखाएँ लाल हैं, और क्या यह एक टूटी हुई मुख्य शाखा या पुरानी इतिहास है?
|
|
28
|
-
- कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, क्योंकि एक आवश्यक जाँच
|
|
32
|
+
- कौन से पुल अनुरोध कभी भी मर्ज नहीं हो सकते, क्योंकि एक आवश्यक जाँच कुछ भी नहीं दे रही है और उन्हें रोक रही है?
|
|
29
33
|
- रिपॉजिटरी की अपनी सेटिंग्स कौन से डिप्लॉय को अस्वीकार करती हैं?
|
|
30
|
-
- `package.json`, गिट टैग और
|
|
34
|
+
- `package.json`, गिट टैग और एनपीएम रजिस्ट्री कहाँ अलग हो गए हैं?
|
|
31
35
|
- कौन से वर्कफ़्लो एक्शन लागत नियमों का उल्लंघन करते हैं, उनकी लागत क्या थी, और किन कार्यों ने इसे खर्च किया?
|
|
32
|
-
-
|
|
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`
|
|
41
|
-
| संग्रह | GitHub GraphQL,
|
|
110
|
+
| परिवहन | `gh` सीएलआई | इसमें पहले से ही आपका टोकन है। उपकरण कभी भी क्रेडेंशियल संग्रहीत या नहीं मांगता है। |
|
|
111
|
+
| संग्रह | GitHub GraphQL, पृष्ठबद्ध | एक क्वेरी रिपॉजिटरी के एक पृष्ठ के लिए मेटाडेटा, खुली समस्याओं, खुले पुल अनुरोधों, रिलीज़ और फ़ाइल ट्री लौटाती है। एक पृष्ठ जो समय समाप्त करना जारी रखता है, उसे आधा कर दिया जाता है और उसी कर्सर से फिर से पूछा जाता है। |
|
|
42
112
|
| एक्शन रन | REST | GraphQL में कोई एक्शन सतह नहीं है। |
|
|
43
|
-
| एक्शन लागत | बिलिंग
|
|
44
|
-
| रनर दरें |
|
|
45
|
-
| भंडारण | अंतर्निहित `node:sqlite` के माध्यम से
|
|
46
|
-
| सत्य का स्रोत | `data/snapshots/*.json` | कच्चा, तुलना करने योग्य और केवल जोड़ने योग्य। डेटाबेस
|
|
47
|
-
|
|
|
113
|
+
| एक्शन लागत | बिलिंग एपीआई प्लस प्रति-कार्य अवधि | इनवॉइस में यह बताया गया है कि कौन सी रिपॉजिटरी है; केवल कार्यों में यह बताया गया है कि कौन सा वर्कफ़्लो है। GitHub के `/timing` एंडपॉइंट शून्य लौटाते हैं, इसलिए प्रति-कार्य योग को फिर से बनाया जाता है और फिर इनवॉइस के साथ मिलान किया जाता है। |
|
|
114
|
+
| रनर दरें | इनवॉइस से पढ़ी गई | बिल की गई दर, सूची मूल्य से भिन्न हो सकती है, और स्रोत में एक स्थिर मान हर संख्या को गलत बताएगा। |
|
|
115
|
+
| भंडारण | SQLite, अंतर्निहित `node:sqlite` के माध्यम से | कोई अंतर्निहित बिल्ड चरण नहीं। |
|
|
116
|
+
| सत्य का स्रोत | `data/snapshots/*.json` | कच्चा, तुलना करने योग्य और केवल जोड़ने योग्य। डेटाबेस प्राप्त किया गया है: `npm run rebuild` इसे ऑफ़लाइन पुनर्निर्मित करता है। |
|
|
117
|
+
| स्वीप लॉग | `data/sweeps.jsonl` | प्रत्येक स्वीप के लिए एक पंक्ति, जिसमें विफल स्वीप और नए कुछ भी नहीं खोजने वाले स्वीप शामिल हैं। |
|
|
48
118
|
|
|
49
|
-
स्नैपशॉट अपरिवर्तनीय और
|
|
119
|
+
स्नैपशॉट अपरिवर्तनीय और संचयी होते हैं, इसलिए दो तिथियों के बीच का विचलन एक `JOIN` है।
|
|
50
120
|
|
|
51
|
-
##
|
|
121
|
+
## आवश्यकताएं
|
|
52
122
|
|
|
53
123
|
- Node.js 22.5 या बाद का संस्करण।
|
|
54
|
-
- [GitHub CLI](https://cli.github.com/), साइन इन
|
|
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
|
-
|
|
166
|
+
`npm link` के बिना एक क्लोन में, प्रत्येक `hk <command>` `node src/cli.mjs <command>` है।
|
|
95
167
|
|
|
96
|
-
`npm run rebuild` डेटाबेस और रिपोर्ट को डिस्क पर
|
|
168
|
+
`npm run rebuild` डेटाबेस और रिपोर्ट को पहले से डिस्क पर मौजूद स्नैपशॉट से फिर से प्राप्त करता है, बिना किसी नेटवर्क एक्सेस के।
|
|
97
169
|
|
|
98
|
-
एक पूर्ण
|
|
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` वह संगठन है
|
|
114
|
-
- `metaRepos` वे रिपॉजिटरी हैं जिनमें संगठन डिफ़ॉल्ट, संपत्ति या उपकरण होते हैं, न कि
|
|
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` (जहां डेटा, रिपोर्ट और कॉन्फ़िगरेशन
|
|
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
|
-
**एक
|
|
196
|
+
**एक स्वीप जो लिखता है वह संवेदनशील है। `data/` या `reports/` को सार्वजनिक रिपॉजिटरी में कमिट न करें।**
|
|
125
197
|
|
|
126
|
-
एक स्नैपशॉट निजी रिपॉजिटरी के नाम और विवरण,
|
|
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` में रहते हैं। प्रत्येक नियम उस लिखित नियम का हवाला देता है जिसे वह लागू करता है, इसलिए एक निष्कर्ष को एक मानक के खिलाफ तर्क दिया जा सकता है, न कि स्वाद के खिलाफ। इस रिपॉजिटरी में
|
|
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
|
-
- **एक लाल डिफ़ॉल्ट
|
|
162
|
-
- **इतिहास
|
|
163
|
-
- **एक आवश्यक
|
|
164
|
-
- **एक
|
|
165
|
-
-
|
|
166
|
-
-
|
|
215
|
+
- **एक लाल डिफ़ॉल्ट शाखा एक लाल पुल-अनुरोध शाखा नहीं है।** एक विफल Dependabot शाखा बैकलॉग है; डिफ़ॉल्ट शाखा पर एक विफल `push` रन ब्रेक है। रन का इवेंट यह तय करता है कि कौन सा है।
|
|
216
|
+
- **इतिहास ब्रेक नहीं है।** एक वर्कफ़्लो जिसे केवल रिलीज़-केवल ट्रिगर में ले जाया गया है, वह हमेशा अपनी पिछली डिफ़ॉल्ट-शाखा विफलता को रखता है। एक हटाई गई वर्कफ़्लो अपने रन को रखता है। न तो यह एक लाइव दोष है।
|
|
217
|
+
- **एक आवश्यक जांच जो कुछ भी उत्सर्जित नहीं कर सकती है, वह एक जांच नहीं है जो यहां नहीं चली।** एक कहता है कि आवश्यकता को छोड़ दें; दूसरा कहता है कि ट्रिगर को ठीक करें। मरम्मत एक-दूसरे का खंडन करती है।
|
|
218
|
+
- **एक पुल अनुरोध जिसे ट्रिगर ने छोड़ दिया है, वह एक संघर्षपूर्ण अनुरोध नहीं है।** GitHub संघर्ष वाले पुल अनुरोध पर कोई भी पुल-अनुरोध वर्कफ़्लो नहीं चलाता है, इसलिए इसकी लापता जांच ट्रिगर के बारे में कुछ भी नहीं कहती है। उस एक को एक रीबेस की आवश्यकता है।
|
|
219
|
+
- **एक विफल रन एक रद्द किया गया रन नहीं है।** `cancel-in-progress` का उद्देश्य पुराने रन को समाप्त करना है, इसलिए रद्द किए गए मिनट आमतौर पर समवर्ती नियम काम कर रहे होते हैं।
|
|
220
|
+
- **सकल लागत शुद्ध लागत नहीं है।** GitHub सार्वजनिक रिपॉजिटरी को पूरी कीमत पर मापता है और उन्हें शून्य पर छूट देता है। सकल वास्तविक गणना है; शुद्ध वास्तविक धन है। उन्हें कभी भी जोड़ा नहीं जाता है।
|
|
221
|
+
- **मापा नहीं गया साफ नहीं है।** एक रिपॉजिटरी GitHub स्कैनिंग रिपोर्ट शून्य अलर्ट दिखा रहा है। एक रिपॉजिटरी जिस पर लागत पास नहीं पहुंचा, उसमें कोई लागत पंक्ति नहीं है। दोनों को अज्ञात के रूप में रिपोर्ट किया जाता है।
|
|
167
222
|
|
|
168
|
-
गंभीरता एक स्वास्थ्य स्कोर
|
|
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
|
-
-
|
|
230
|
+
- **केवल-पढ़ने योग्य।** कलेक्टर GraphQL क्वेरी और REST `GET` जारी करता है। यह कभी भी किसी सेटिंग को मर्ज, पुश, रिलीज़, प्रकाशित या संपादित नहीं करता है।
|
|
175
231
|
- **कोई क्रेडेंशियल नहीं।** प्रमाणीकरण वह है जो `gh` पहले से ही रखता है। इसके बारे में कुछ भी डिस्क पर नहीं लिखा जाता है।
|
|
176
|
-
- **कोई टेलीमेट्री नहीं।** संपर्क किए गए एकमात्र होस्ट GitHub
|
|
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
|
-
प्रत्येक नियम का दोनों दिशाओं में परीक्षण किया जाता है: वह आकार जो सक्रिय होना चाहिए, और पड़ोसी आकार जो सक्रिय नहीं होना चाहिए। एक अलग
|
|
243
|
+
प्रत्येक नियम का दोनों दिशाओं में परीक्षण किया जाता है: वह आकार जो सक्रिय होना चाहिए, और पड़ोसी आकार जो सक्रिय नहीं होना चाहिए। एक अलग सत्यापनकर्ता अपने स्वयं के माध्यम से लाइव GitHub से निष्कर्षों का एक नमूना पुनः प्राप्त करता है, और जब कोई डेटाबेस या नेटवर्क नहीं होता है, तो जोर से छोड़ देता है।
|
|
188
244
|
|
|
189
245
|
## लाइसेंस
|
|
190
246
|
|
|
191
|
-
|
|
247
|
+
एमआईटी। [LICENSE](LICENSE) देखें।
|
|
192
248
|
|
|
193
249
|
---
|
|
194
250
|
|
|
195
|
-
<a href="https://mcp-tool-shop.github.io/"
|
|
251
|
+
<a href="https://mcp-tool-shop.github.io/">एमसीपी टूल शॉप</a> द्वारा निर्मित
|