repository.scope
Deklarace rozsahu tak, jak byla přečtena, odkud pochází (vlastní repozitáře, nebo výchozí z distribuce) a každý sledovaný soubor sečtený proti ní: kolik jich je uvnitř, kolik venku z každého důvodu a které.
Deklarace rozsahu tak, jak byla přečtena, odkud pochází (vlastní repozitáře, nebo výchozí z distribuce) a každý sledovaný soubor sečtený proti ní: kolik jich je uvnitř, kolik venku z každého důvodu a které.
- query
- behaviorally_verified
- module repository
- #repository
- #scope
- #introspection
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_scope zdroj majordomus://scope |
| HTTP | GET /api/v1/scope operationId repository.scope |
| příkazová řádka | majordomus scope |
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 · ScopeReport
| vlastnost | typ | povinné | popis |
|---|---|---|---|
| deklarace | reference | ano | Deklarace tak, jak byla přečtena. |
| původ | reference | ano | repository, když manifest pojmenovává sekci rozsahu, distribution pro výchozí. |
| path | string | ano | Soubor, z něhož byla deklarace přečtena. |
| sledováno | reference | ano | Každý sledovaný soubor posouzený podle jména a velikosti, spočítaný; vyloučené vypsané. |
JSON Schema
{
"$defs": {
"Category": {
"additionalProperties": false,
"description": "One category of `out`: pathspecs and file-name patterns.",
"properties": {
"names": {
"default": [],
"description": "Patterns matched against the file name alone.",
"items": {
"type": "string"
},
"type": "array"
},
"paths": {
"default": [],
"description": "Pathspecs anchored at the repository root.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"Declaration": {
"additionalProperties": false,
"description": "`scope.yaml`, typed. Unknown keys are refused by the type and by the `scope` schema.",
"properties": {
"in": {
"description": "The allow-list: pathspecs anchored at the repository root.",
"items": {
"type": "string"
},
"type": "array"
},
"out": {
"$ref": "#/$defs/Out",
"description": "What is never read; wins over `in`."
},
"version": {
"description": "The format version; only `SCOPE_VERSION` is read.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"version",
"in",
"out"
],
"type": "object"
},
"Fixtures": {
"additionalProperties": false,
"description": "The `fixtures` category: where fixtures live and how large one may be.",
"properties": {
"max_bytes": {
"description": "A fixture over this many bytes is out.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"names": {
"default": [],
"description": "Patterns matched against the file name alone.",
"items": {
"type": "string"
},
"type": "array"
},
"paths": {
"default": [],
"description": "Pathspecs anchored at the repository root.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"max_bytes"
],
"type": "object"
},
"Origin": {
"description": "Where the declaration was read from.",
"oneOf": [
{
"const": "repository",
"description": "The repository's own, named by the manifest's `scope` section.",
"type": "string"
},
{
"const": "distribution",
"description": "The distribution's default, because the repository declares none.",
"type": "string"
}
]
},
"Out": {
"additionalProperties": false,
"description": "The `out:` mapping: every category optional, each the reason a path is out.",
"properties": {
"archive": {
"anyOf": [
{
"$ref": "#/$defs/Category"
},
{
"type": "null"
}
],
"description": "Archives."
},
"binary": {
"default": false,
"description": "Content that is not text (a NUL byte in the first window) is out, whatever the name says.",
"type": "boolean"
},
"database_dump": {
"anyOf": [
{
"$ref": "#/$defs/Category"
},
{
"type": "null"
}
],
"description": "Database dumps."
},
"fixtures": {
"anyOf": [
{
"$ref": "#/$defs/Fixtures"
},
{
"type": "null"
}
],
"description": "Fixtures are read up to a size; over it they are data, not context."
},
"generated": {
"anyOf": [
{
"$ref": "#/$defs/Category"
},
{
"type": "null"
}
],
"description": "Generated assets: changed by changing the source and regenerating."
},
"image": {
"anyOf": [
{
"$ref": "#/$defs/Category"
},
{
"type": "null"
}
],
"description": "Images."
},
"max_bytes": {
"description": "A file over this many bytes is out, whatever it is.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"paths": {
"default": [],
"description": "Never read, by path: version control, the local half, dependencies, build outputs.",
"items": {
"type": "string"
},
"type": "array"
},
"pdf": {
"anyOf": [
{
"$ref": "#/$defs/Category"
},
{
"type": "null"
}
],
"description": "PDF documents."
},
"secret": {
"anyOf": [
{
"$ref": "#/$defs/Category"
},
{
"type": "null"
}
],
"description": "Secrets: never read, never served, never quoted; a tracked one is reported."
},
"video": {
"anyOf": [
{
"$ref": "#/$defs/Category"
},
{
"type": "null"
}
],
"description": "Video."
}
},
"type": "object"
},
"OutFile": {
"description": "One tracked file that is out.",
"properties": {
"path": {
"description": "Repository-relative.",
"type": "string"
},
"reason": {
"$ref": "#/$defs/Reason",
"description": "Why."
},
"rule": {
"description": "The rule that decided; absent for `undeclared`.",
"type": [
"string",
"null"
]
}
},
"required": [
"path",
"reason"
],
"type": "object"
},
"Reason": {
"description": "Why a path is out. The order is the order the rules decide in.",
"oneOf": [
{
"const": "path",
"description": "Named under `out.paths`.",
"type": "string"
},
{
"const": "secret",
"description": "A secret.",
"type": "string"
},
{
"const": "generated",
"description": "A generated asset.",
"type": "string"
},
{
"const": "archive",
"description": "An archive.",
"type": "string"
},
{
"const": "image",
"description": "An image.",
"type": "string"
},
{
"const": "video",
"description": "Video.",
"type": "string"
},
{
"const": "pdf",
"description": "A PDF document.",
"type": "string"
},
{
"const": "database_dump",
"description": "A database dump.",
"type": "string"
},
{
"const": "undeclared",
"description": "Matches no `in` pathspec.",
"type": "string"
},
{
"const": "fixture_over_limit",
"description": "A fixture over `out.fixtures.max_bytes`.",
"type": "string"
},
{
"const": "over_limit",
"description": "Over `out.max_bytes`.",
"type": "string"
},
{
"const": "binary",
"description": "Content with a NUL byte in its first `SNIFF_BYTES`: not text.",
"type": "string"
}
]
},
"Tally": {
"description": "Every tracked file against the scope, counted.",
"properties": {
"by_reason": {
"additionalProperties": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"description": "How many are out for each reason present.",
"type": "object"
},
"files": {
"description": "How many tracked files were judged.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"in": {
"description": "How many are in.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"out": {
"description": "How many are out.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"out_files": {
"description": "Every tracked file that is out, with its reason and the rule that decided.",
"items": {
"$ref": "#/$defs/OutFile"
},
"type": "array"
}
},
"required": [
"files",
"in",
"out",
"by_reason",
"out_files"
],
"type": "object"
}
},
"description": "The scope: the declaration as read, its origin, and every tracked file against it.",
"properties": {
"declaration": {
"$ref": "#/$defs/Declaration",
"description": "The declaration as read."
},
"origin": {
"$ref": "#/$defs/Origin",
"description": "`repository` when the manifest names a scope section, `distribution` for the default."
},
"path": {
"description": "The file the declaration was read from.",
"type": "string"
},
"tracked": {
"$ref": "#/$defs/Tally",
"description": "Every tracked file judged by name and size, counted; the out ones listed."
}
},
"required": [
"origin",
"path",
"declaration",
"tracked"
],
"title": "ScopeReport",
"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.
Okamžiky, na které to odpovídá
- našli dva agenty, kteří opravují stejnou chybu ve dvou větvích Dva pracovníci stráví každý den na jedné vadě, protože vlastnictví bylo implicitní a ani jeden neviděl druhého.
- sledoval, jak jeden worker záměrně vrátil změnu jiného workera Worker uvidí na své cestě nevysvětlenou změnu, usoudí, že je špatná, a odstraní ji — správně, podle důkazů, které měl.
- měl dvě relace zapisující do jednoho checkoutu, aniž o sobě jedna věděla Dva workeři v jednom pracovním stromu se vidí jen jako nevysvětlené změny souborů a každý z nich druhého považuje za šum.
- našel podstatnou změnu, kterou nikdy nepožadoval žádný úkol, ticket ani plán Práce přichází bez vymezeného kontraktu, takže její rozsah, kritéria přijetí i vlastnictví se rozhodují až zpětně.