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.

automation — Automatizace repozitáře jsou skriptované schopnosti nad typovaným Rustem, ne shell

Schopnost může být skriptovaná (ADR 0069): skript Rhai uvnitř spustitelného souboru v Rustu orchestruje typované schopnosti přes jediný registr, dosáhne na každý povrch projekcemi, které už existují, běží v sandboxu s deklarovaným a vynucovaným stropem efektů a shell se zmenšuje migrací pod kontrolou, která odmítne nový shell bez deklarované výjimky.

AKTIVNÍ 3 of 6 issues done

připraveno
2
blokováno
1
aktivní
0
verify
0
hotovo
3
zrušeno
0

Problém

Automatizace repozitáře žije v shellu a každá opakující se třída vad, kterou si tento repozitář o sobě zaznamenal, má shellový případ: příznak BSD/GNU, který se na runneru chová jinak, pipeline, jejíž počet se ztratí v subshellu, kontrola, která nepřečte vlastní vzor a hlásí čisto, třídění, jehož pořadí závisí na locale. Audit z 2026-09-15 klasifikoval 223 jednotek: scripts/ci je 44 souborů a 6 017 řádků, ostatní skripty a bin 82 souborů a 14 860 řádků, lib 45 souborů a 19 513 řádků a 216 shellových testovacích případů 30 872 řádků. Podle dispozice je 97 doménová logika, která patří do jádra v Rustu, 32 orchestrace, 34 lepidlo, 3 mrtvé, 14 generované a 43 platformní adaptéry. Uživatel nástroje potřebuje Bash, aby cokoli z toho spustil, a Perl se do stromu dostává přes shasum na macOS.

Výsledek

Schopnost může být skriptovaná (ADR 0069): skript Rhai uvnitř spustitelného souboru v Rustu orchestruje typované schopnosti přes jediný registr, dosáhne na každý povrch projekcemi, které už existují, běží v sandboxu s deklarovaným a vynucovaným stropem efektů a shell se zmenšuje migrací pod kontrolou, která odmítne nový shell bez deklarované výjimky.

Aktuální stav

Není vložen žádný interpret. Každá orchestrace je shellový skript, logika baseline-ratchet je zkopírována do deseti kontrol scripts/ci, nic neodmítá nový shellový soubor a Perl je dosažitelný přes shasum.

Cílový stav

Sandboxovaný engine je součástí programu; skriptovaná schopnost je druh zjištěný indexem a registrovaný v jediném registru, spustitelný přes majordomus run a promítaný jako každá schopnost; nic nespouští Perl; nový shell pod řízenými cestami se bez výjimky odmítne a inventář migrace se sleduje; první shellové kontroly jsou skriptované schopnosti nad typovaným Rustem.

Rozsah

  • apps/majordomus-cli
  • podíl
  • skripty
  • lib
  • bin
  • .ai/repo
  • dokumentace
  • test
  • SECURITY.md

Mimo rozsah

  • Transliterace shellových skriptů do Rhai. Doménová logika se přesouvá do typovaných schopností v Rustu; skript jen orchestruje schopnosti
  • Obecná schopnost shell nebo exec, nebo jakákoli funkce, která bere řetězec příkazu
  • Perl, Python nebo Node jako přenositelná vrstva

Kritéria přijetí

  • Skript Rhai běží jen uvnitř sandboxového enginu, s vypnutým eval, bez hodin, s omezenou prací a zrušitelností
  • Skriptovaná schopnost deklarovaná ve vrstvě se objeví v registru, výpisu schopností, OpenAPI a MCP bez úpravy kdekoli jinde
  • Skript volající schopnost, jejíž účinek přesahuje jeho vlastní deklarovaný účinek, se za běhu odmítne
  • Žádný sledovaný soubor nevolá Perl, drží to kontrola
  • Nový shellový soubor pod řízenou cestou bez položky výjimky je odmítnut a inventář migrace je strojově čitelný

Validace

  • majordomus plan validate
  • bin/majordomus-cli capabilities validate
  • bin/majordomus-cli generate --check
  • bash test/run.sh 383_a_scripted_capability_runs

Požadované důkazy

  • sandbox_engine_proved
  • scripted_capability_projected_everywhere
  • effect_ceiling_enforced
  • no_perl
  • new_shell_refused

Úkoly

Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.

issuestatusvlnazávisí nanázev
I1800 HOTOVO 0 — Sandboxovaný engine, ve kterém běží skriptovaná schopnost
I1801 PŘIPRAVENO 1 I1800 Skriptovaná schopnost je druh, zjišťovaný a registrovaný, spustitelný a promítaný jako jakákoli schopnost
I1802 HOTOVO 0 — Nic nespouští Perl
I1803 HOTOVO 0 — Nový shell se odmítne bez deklarované výjimky a inventář migrace je sledován
I1804 BLOKOVÁNO 2 I1801 První shell skripty se stanou skriptovanými schopnostmi nad typovaným Rustem
I3160 PŘIPRAVENO 0 — A behavioural case can be written as a Rust integration test over a disposable repository, and the continuity cases are the first ported

Graf

graf závislostí automatizacez .ai/repo/project
flowchart LR
    I1800["I1800<br/>The sandboxed engine a scripted capability runs in"]:::done
    I1801["I1801<br/>A scripted capability is a kind, discovered and registered, runnable and projected like any capability"]:::ready
    I1802["I1802<br/>Nothing runs Perl"]:::done
    I1803["I1803<br/>New shell is refused without a declared exemption, and the migration inventory is tracked"]:::done
    I1804["I1804<br/>The first shell scripts become scripted capabilities over typed Rust"]:::blocked
    I3160["I3160<br/>A behavioural case can be written as a Rust integration test over a disposable repository, and the continuity cases are the first ported"]:::ready
    I1800 --> I1801
    I1801 --> I1804
    classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
    classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
    classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
    classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
    classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
    classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px

Kanonický záznam: .ai/repo/project/milestones/automation.yaml. Přečtěte ho zpět pomocí majordomus plan show automation.

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