Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Dohledat ke změně kontextové dokumenty, kterých se týká

Vypište dokumenty s rozsahem kontextu, zjistěte, které platí pro cestu a proč, a před přistáním zjistěte, kterých dokumentů se sada změn dotýká.

zaručeno Znalosti repozitářepokročilýmaintainerreviewerjen pro čtení

Situace

Kontext není jeden soubor. Adresář nese vlastní dokument, kořen další a změna hluboko ve stromu může spadat pod dokument, o kterém nikdo neví, že ho psal. Když se dokument změní, kterých cest a kterých projekcí se to týká? Hádání je způsob, jak zastaralé pravidlo přežije kontrolu.

Co spouštíte

  • context list: každý dokument s rozsahem, jeho rozsah a složení
  • context resolve <path> a context explain <path>: co se vztahuje na cestu, v jakém pořadí a proč
  • context affected: dokumenty, kterých se sada změn dotýká, z gitu
  • context check-sync: ověř strom, potom projekce vůči jejich razítkům, potom dotčenou množinu

Scénář

setup: installed
given:
  - 'a repository with Majordomus installed and projections generated, and one commit of work'
steps:
  - id: list
    run: ['context', 'list']
    note: 'every scoped document: id, path, scope, composition, providers, status'
    expect:
      exit: 0
      stdout_contains: ['ai.layer']
  - id: resolve
    run: ['context', 'resolve', 'lib']
    note: 'the documents that apply to a path, root to target, in effective order with provenance'
    expect:
      exit: 0
      stdout_contains: ['^01  ai.layer']
  - id: explain
    run: ['context', 'explain', 'lib']
    note: 'the same, with why each applies and why each candidate was left out'
    expect:
      exit: 0
      stdout_contains: ['ai.layer']
  - id: affected
    run: ['context', 'affected']
    note: 'which documents the working tree’s changes touch; nothing is changed here, so nothing is affected'
    expect:
      exit: 0
      tree_unchanged: true
  - id: sync
    run: ['context', 'check-sync']
    note: 'the tree validates, every projection matches its stamp, and nothing is affected'
    expect:
      exit: 0
      stdout_contains: ['in sync']
then:
  - 'resolution is deterministic: the same path gives the same ordered list'
  - 'a change under a scope names the document that governs it'
  - 'the projections are checked against the documents they were rendered from'

Výsledek

Každá cesta má jednu deterministickou odpověď na „co mě řídí“, každá změna má jednu odpověď na „čeho jsem se dotkl“ a projekce vykreslená z dokumentu, který se mezitím změnil, se hlásí, nepovažuje se za důvěryhodnou.

Scénář

Provedeno proti skutečnému nástroji v repozitáři připraveném pomocí installed, při každém generování tohoto webu. To, co následuje, není popis toho, co by se mělo stát; je to to, co se stalo.

dáno

  • repozitář s nainstalovaným Majordomem a vygenerovanými projekcemi a jeden commit práce

kdy

  1. 1majordomus context list
  2. 2majordomus context resolve lib
  3. 3majordomus context explain lib
  4. 4majordomus context affected
  5. 5majordomus context check-sync

pak

  • překlad je deterministický: stejná cesta dá stejný uspořádaný seznam
  • změna v rámci rozsahu pojmenuje dokument, který ji řídí
  • projekce se kontrolují proti dokumentům, ze kterých byly vykresleny

Co nástroj udělal

Důkaz běhu, z něhož byla tato stránka vygenerována: pass, 5 kroků. Výstup je normalizován: cesta repozitáře, časová razítka, id a doby trvání jsou zástupné hodnoty; nic dalšího se neupravuje.

Testováno v test/cases/94_use_cases.sh, který spouští každý scénář a odmítne krok, jehož zaznamenaný výstup není tím, co vyprodukoval.

  1. každý dokument s rozsahem: id, cesta, rozsah, složení, poskytovatelé, stav

    ai.layer                     .ai/README.md                                subtree   final   *              active
    ai.repo                      .ai/repo/README.md                           subtree   extend  *              active
    ai.repo.adrs                 .ai/repo/adrs/README.md                      subtree   extend  *              active
    ai.repo.applications         .ai/repo/applications/README.md              subtree   extend  *              active
    ai.repo.deployments          .ai/repo/deployments/README.md               subtree   extend  *              active
    ai.repo.features             .ai/repo/features/README.md                  subtree   extend  *              active
    ai.repo.knowledge            .ai/repo/knowledge/README.md                 subtree   extend  *              active
    ai.repo.profiles             .ai/repo/profiles/README.md                  subtree   extend  *              active
    ai.repo.project              .ai/repo/project/README.md                   subtree   extend  *              active
    ai.repo.prompts              .ai/repo/prompts/README.md                   subtree   extend  *              active
    ai.repo.rules                .ai/repo/rules/README.md                     subtree   extend  *              active
    ai.repo.sessions             .ai/repo/sessions/README.md                  subtree   extend  *              active
    ai.repo.skills               .ai/repo/skills/README.md                    subtree   extend  *              active
    ai.repo.use-cases            .ai/repo/use-cases/README.md                 subtree   extend  *              active
    ai.repo.why                  .ai/repo/why/README.md                       subtree   extend  *              active
    ai.repo.workflows            .ai/repo/workflows/README.md                 subtree   extend  *              active
    ai.repo.knowledge.candidates .ai/repo/knowledge/candidates/README.md      subtree   extend  *              active
    ai.repo.knowledge.curated    .ai/repo/knowledge/curated/README.md         subtree   extend  *              active
    ai.repo.rules.project        .ai/repo/rules/project/README.md             subtree   extend  *              active
    • exit 0
    • stdout_contains /ai.layer/
  2. dokumenty, které platí pro cestu, od kořene k cíli, v efektivním pořadí s původem

    # effective context for lib
    01  ai.layer                   .ai/README.md                              subtree   final   *
    • exit 0
    • stdout_contains /^01 ai.layer/
  3. totéž, s důvodem, proč se každý uplatňuje a proč byl každý kandidát vynechán

    # effective context for lib
    01  ai.layer                   .ai/README.md                              subtree   final   *
        applies: the tree root; the target is outside .ai/
    
    # left out
    (nothing: every candidate applies)
    
    # order
    depth (tree root first), then order, then path; never the order the filesystem lists files in
    fingerprint <sha><hash16>ef77ca97
    • exit 0
    • stdout_contains /ai.layer/
  4. kterých dokumentů se změny pracovního stromu dotýkají; nic se tu nemění, takže nic není dotčeno

    • exit 0
  5. strom projde validací, každá projekce odpovídá svému razítku a nic není dotčeno

    OK   context     .ai/ — 19 document(s) validate
    OK   context     AGENTS.md — projection for agents matches its stamp and the policy as it is
    OK   context     CLAUDE.md — projection for claude-code matches its stamp and the policy as it is
    OK   context     GEMINI.md — projection for gemini matches its stamp and the policy as it is
    context check-sync: in sync (19 document(s), 3 projection(s), 0 affected)
    • exit 0
    • stdout_contains /in sync/

Proč to nástroj ví

Řetězec od této stránky ke kódu: případ užití jmenuje příkazy, pravidla a tvrzení; každé pravidlo se dispatchuje z registru a každé tvrzení jmenuje test, který ho dokazuje; scénář výše provedl příkazy. Nic v tomto řetězci není text o záměru.

Pravidla, díky nimž platí

Uplatněné záruky

Související případy užití

Vypočteno z toho, co sdílejí: tvrzení, pravidla, příkazy, kategorie, aplikace. Tento seznam nikdo neudržuje.

Okamžiky, na které to odpovídá

Prohledává názvy a popisy všech stránek, které tento web publikuje.