shell.check
Každá shellová jednotka pod bin/, lib/, scripts/, share/, .githooks/ a .claude/hooks/ — podle řádku interpretu nebo názvu .sh, tak jak by ji commitoval git, odkazy se nesledují — proti .ai/repo/automation/inventory.jsonl: nedeklarovaná jednotka, záznam, jehož jednotka zmizela, výjimka bez důvodu nebo podmínky odstranění, dispozice mimo A-F, duplikát a záznam mimo kanonické pořadí jsou každé zjištění, které pojmenovává soubor a nápravu. Čte jen strom a index gitu; žádný build a žádná síť.
Každá shellová jednotka pod bin/, lib/, scripts/, share/, .githooks/ a .claude/hooks/ — podle řádku interpretu nebo názvu .sh, tak jak by ji commitoval git, odkazy se nesledují — proti .ai/repo/automation/inventory.jsonl: nedeklarovaná jednotka, záznam, jehož jednotka zmizela, výjimka bez důvodu nebo podmínky odstranění, dispozice mimo A-F, duplikát a záznam mimo kanonické pořadí jsou každé zjištění, které pojmenovává soubor a nápravu. Čte jen strom a index gitu; žádný build a žádná síť.
- query
- behaviorally_verified
- module shell
- #shell
- #governance
- #migration
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_shell_check |
| HTTP | GET /api/v1/shell/check operationId shell.check |
| příkazová řádka | majordomus shell check |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
vstup · Prázdné
Žádné vlastnosti: schopnost nebere žádný vstup.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}výstup · ShellReport
| vlastnost | typ | povinné | popis |
|---|---|---|---|
| výjimky | object | ano | Kolik výjimek inventář deklaruje, podle dispozice. |
| zjištění | array | ano | Každý nález v kanonickém pořadí. Prázdný seznam je úspěšná odpověď. |
| řízeno | array | ano | Adresáře, jejichž shellové jednotky se musí deklarovat. |
| inventář | string | ano | Přečtený inventář, relativně ke kořeni repozitáře. |
| naměřeno | boolean | ano | Zda se strom vůbec dal změřit. false není úspěch: důvod říká, co měření zastavilo, a volající, který se na tuto zprávu podmiňuje, musí odmítnout. |
| průchody | boolean | ano | true, když byl strom změřen a nic se nenašlo. |
| důvod | string | null | ne | Proč se strom nedal změřit, když se nedal. |
| records | integer | ano | Kolik záznamů inventář drží, shellových či nikoli. |
| jednotky | array | ano | Každá shellová jednotka pod řízenými adresáři v kanonickém pořadí. |
JSON Schema
{
"$defs": {
"ShellFinding": {
"description": "One thing the check refuses, with what to do about it.",
"properties": {
"code": {
"description": "The finding's code: `shell.undeclared`, `shell.stale`, `shell.missing_field`,\n`shell.invalid_disposition`, `shell.invalid_unit`, `shell.exemption_not_shell`,\n`shell.duplicate`, `shell.out_of_order` or `shell.malformed`.",
"type": "string"
},
"line": {
"description": "The line of the inventory the finding is about, when it is about one.",
"format": "uint",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"message": {
"description": "What is wrong, in a sentence.",
"type": "string"
},
"path": {
"description": "The file the finding is about: the shell unit, or the inventory itself.",
"type": "string"
},
"remedy": {
"description": "What to do about it.",
"type": "string"
}
},
"required": [
"code",
"path",
"message",
"remedy"
],
"type": "object"
},
"ShellUnit": {
"description": "One shell unit the tree carries.",
"properties": {
"dialect": {
"description": "The shell the unit is written for: the interpreter its first line names, or\n`sourced` for a `*.sh` file with no interpreter line.",
"type": "string"
},
"disposition": {
"description": "The disposition its inventory record carries, when it has one.",
"type": [
"string",
"null"
]
},
"path": {
"description": "The path, relative to the repository root.",
"type": "string"
}
},
"required": [
"path",
"dialect"
],
"type": "object"
}
},
"description": "The verdict of one check of the tree.",
"properties": {
"exemptions": {
"additionalProperties": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"description": "How many exemptions the inventory declares, by disposition.",
"type": "object"
},
"findings": {
"description": "Every finding, in canonical order. Empty is the passing answer.",
"items": {
"$ref": "#/$defs/ShellFinding"
},
"type": "array"
},
"governed": {
"description": "The directories whose shell units must be declared.",
"items": {
"type": "string"
},
"type": "array"
},
"inventory": {
"description": "The inventory read, relative to the repository root.",
"type": "string"
},
"measured": {
"description": "Whether the tree could be measured at all. `false` is not a pass: the reason says\nwhat stopped the measurement, and a caller that gates on this report must refuse.",
"type": "boolean"
},
"passes": {
"description": "`true` when the tree was measured and nothing was found.",
"type": "boolean"
},
"reason": {
"description": "Why the tree could not be measured, when it could not.",
"type": [
"string",
"null"
]
},
"records": {
"description": "How many records the inventory holds, shell or not.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"units": {
"description": "Every shell unit under the governed directories, in canonical order.",
"items": {
"$ref": "#/$defs/ShellUnit"
},
"type": "array"
}
},
"required": [
"measured",
"inventory",
"governed",
"units",
"records",
"exemptions",
"findings",
"passes"
],
"title": "ShellReport",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- vypnuto — každé volání spustí handler
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.