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.

external-workspaces — Externí pracovní prostor se čte tak, jako tento repozitář čte cokoli jiného, a jeho obsah se nikdy nestane veřejným omylem

Workspace je deklarovaný objekt vrstvy — dodavatel, identita, co operátor povolil, který profil prohlížeče k němu dosáhne, jaké schopnosti se u něj očekávají — a jede na stávajícím kind pipeline na každý povrch bez kódu, který by ho zvlášť ošetřoval. Jeho obsah synchronizuje Node vrstva nástrojů, která už řídí systémový prohlížeč, ukládá se pod `.ai/local/workspaces/`, každý záznam nese původ a úroveň podpory a čte se zpět přes právě jednu schopnost tvarovanou jako `continuity`: poskytuje se, nikdy nepublikuje. Synchronizace je inkrementální od trvalého checkpointu, idempotentní při opakování, při porušení pozorované smlouvy selže uzavřeně a nikdy nikam nezapíše přihlašovací údaj.

AKTIVNÍ 1 of 12 issues done

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

Problém

Operátor drží práci ve workspace hostovaných dodavatelem — nejdřív ChatGPT Project, další později — a nemá k ní strojový přístup. Cokoli se tam rozhodne, je neviditelné pro každý nástroj, který tento repozitář má: nelze to hledat, citovat, přenést do předávky ani propojit s rozhodnutím, které z toho vzešlo. Zřejmá náprava je špatná hned dvakrát. Scrapování stránky vytvoří korpus bez identity, bez provenience a bez možnosti rozlišit změnu od nového vykreslení; a vestavění korpusu do vrstvy tak, jak se staví sledovaný obsah, by na veřejném webu publikovalo tělo soukromé konverzace, kterou dodavatel drží pod ověřenou relací. ADR 0025 stanoví tvar: katalog workspace je výrok samotného repozitáře a je sledován; obsah je stavem tohoto checkoutu a sledován není.

Výsledek

Workspace je deklarovaný objekt vrstvy — dodavatel, identita, co operátor povolil, který profil prohlížeče k němu dosáhne, jaké schopnosti se u něj očekávají — a jede na stávajícím kind pipeline na každý povrch bez kódu, který by ho zvlášť ošetřoval. Jeho obsah synchronizuje Node vrstva nástrojů, která už řídí systémový prohlížeč, ukládá se pod `.ai/local/workspaces/`, každý záznam nese původ a úroveň podpory a čte se zpět přes právě jednu schopnost tvarovanou jako `continuity`: poskytuje se, nikdy nepublikuje. Synchronizace je inkrementální od trvalého checkpointu, idempotentní při opakování, při porušení pozorované smlouvy selže uzavřeně a nikdy nikam nezapíše přihlašovací údaj.

Aktuální stav

Neexistuje nic. Není žádný druh workspace, adaptér, úložiště, schopnost ani kontrola. Repozitář ovládá prohlížeč — Playwright nad systémovým Chrome, v `scripts/lib/ui-audit.mjs` a `scripts/lib/cockpit-probe.mjs`, napojený do CI a čistě přeskakující tam, kde Chrome chybí — a nemá vůbec žádnou konvenci pro držení přihlašovacích údajů, jen negativní, která shodí sestavení webu, dostane-li se do vykresleného výstupu řetězec tvaru tajemství.

Cílový stav

`majordomus workspaces` vypíše, co je deklarováno a co je synchronizováno, s věkem a úrovní podpory každého. Synchronizace je jeden příkaz ve vrstvě nástrojů, obnovitelný, omezený a prokazatelný ze sanitizovaných fixtures v CI bez doteku živého účtu. Přidání druhého dodavatele znamená napsat adaptér a deklaraci, ne upravovat každého konzumenta. Nic pod `.ai/local/workspaces/` se nedostane na web, do vygenerované dokumentace ani do žádné publikované projekce a dokazuje to kontrola, ne věta, která to slibuje.

Rozsah

  • .ai/repo/adrs
  • .ai/repo/project
  • .ai/repo/rules/project
  • .ai/repo/policy.yaml
  • .ai/repo/ci/gates.yaml
  • apps/majordomus-cli/src/capability/builtin
  • share/kinds.yaml
  • share/allow
  • share/schemas
  • skripty
  • dokumentace
  • test/cases

Mimo rozsah

  • Jakýkoli zápis k vendorovi — neodešle se žádná zpráva, nenahraje žádný soubor, nepřejmenuje žádná konverzace
  • Jakákoli závislost přidaná do majordomus-cli; hranice z ADR 0025 je podstatou
  • Jakékoli přihlašovací údaje, cookie, token nebo autorizační hlavička uložené kdekoli ve stromu nebo ve stavovém adresáři
  • Jakékoli obcházení autentizace, výzev k vícefázovému ověření, limitů četnosti nebo kontrol proti zneužití
  • Publikování synchronizovaného obsahu na web nebo do jakékoli veřejné projekce
  • Druhý adaptér dodavatele dřív, než je první prokázán

Kritéria přijetí

  • Deklarace workspace je sledovaný objekt deklarovaného druhu, uzavřený povolovacím souborem, popsaný schématem, a dostane se na povrch objektů bez kódu, který by ho zvlášť ošetřoval
  • Každý synchronizovaný záznam nese svou upstream identitu, lokální identitu nezávislou na názvu, hash obsahu, transport, který jej vytvořil, a úroveň podpory, vše jako typovaná pole, ne próza
  • Úložiště pod .ai/local/workspaces/ má deklarované rozvržení, checkpoint, strop retence v politice a sekci doctor, která ho měří
  • Synchronizace pokračuje od svého checkpointu, při přehrání vytvoří stejné úložiště a záznam odstraněný upstreamem označí, místo aby ho tiše smazala
  • Pozorovaný kontrakt, který se poruší, selže uzavřeně a vrátí se k transportu prohlížeče; částečný parse se nikdy neperzistuje
  • CI dokazuje mapovač a synchronizaci ze sanitizovaných fixtures, bez živého účtu a bez sítě
  • Žádný přihlašovací údaj se nedostane do repozitáře, adresáře stavu, fixture, logu ani snapshotu a kontrola to greppuje
  • Kontrola selže, jestliže majordomus-cli získá závislost, a kontrola selže, jestliže jakákoli publikovaná projekce sahá do .ai/local/workspaces/
  • Subsystém je zdokumentován v docs/ a každé pravidlo, které uvádí, vynucuje kontrola, kterou CI spouští

Validace

  • bash test/run.sh
  • bin/majordomus doctor
  • cargo test --workspace --all-features
  • majordomus generate --check

Požadované důkazy

  • workspace_kind_declared
  • identity_and_provenance_typed
  • store_bounded
  • sync_idempotent
  • fails_closed
  • fixtures_prove_it
  • credentials_isolated
  • boundary_gated
  • rules_enforced

Rizika

  • Soukromý povrch dodavatele není kontrakt a změní se bez upozornění. Cokoli, co považuje pozorovaný tvar za kanonický, se rozbije hlasitě a hůř, i tiše. Pozorovaný tvar je detail transportu s otiskem a stavem kompatibility; kanonický model je model tohoto repozitáře.
  • Synchronizovaný korpus je největší těleso textu, jaké tento repozitář kdy držel, a jediné, které nenapsal. Každý mechanismus, který prochází soubory, o něm musí být výslovně informován, protože žádný si ho sám nevšimne.
  • Vzdálenost mezi čtením vlastního autorizovaného pracovního prostoru a automatizací webu dodavatele je politika, ne technikálie. Deklarace jmenuje, co bylo autorizováno; adaptér to nikdy nepřekročí.
  • Vrstva nástrojů je devDependency tohoto checkoutu, ne součást vydaného nástroje. Funkce, která funguje jen tam, kde je nainstalováno node_modules, to musí říci, místo aby vypadala rozbitě.

Ú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
I1301 HOTOVO 0 — Workspace je deklarovaný objekt vrstvy; lokální je jen jeho obsah
I1302 PŘIPRAVENO 1 I1301 Identita, původ a úroveň podpory jsou typovaná pole, ne próza
I1303 BLOKOVÁNO 2 I1302 Úložiště je omezené, měřené a neviditelné pro každou publikovanou projekci
I1304 BLOKOVÁNO 2 I1302 Transport prohlížeče je ten, který tento repozitář už řídí
I1305 BLOKOVÁNO 3 I1304 Pozorovaný kontrakt má otisk, stav kompatibility a fixture
I1306 BLOKOVÁNO 4 I1303, I1305 Synchronizace se obnoví, bez újmy se opakuje a řekne, jak je aktuální
I1307 BLOKOVÁNO 4 I1302, I1305 Podoba ChatGPT se mapuje z důkazů a nikdy se nestane kanonickým modelem
I1308 BLOKOVÁNO 3 I1303 Podíl spustitelného souboru je jedna schopnost, utvářená jako continuity
I1309 BLOKOVÁNO 4 I1303, I1308 Hranice, které tento milník prosazuje, jsou kontroly, ne věty
I1310 BLOKOVÁNO 5 I1308, I1309 Subsystém je zdokumentován tam, kde ho člověk hledá, a plán je uzavřen vůči repozitáři
I3100 PŘIPRAVENO 0 — What the ChatGPT project decided is promoted into the layer, each record naming the conversation and message it came from
I3173 BLOKOVÁNO 7 I1307, I1308, I3281, I3284 A synced workspace conversation proposes candidate records that cite their conversation and message, and nothing becomes canonical without an act

Graf

graf závislostí external-workspacesz .ai/repo/project
flowchart LR
    I1301["I1301<br/>A workspace is a declared object of the layer; only its content is local"]:::done
    I1302["I1302<br/>Identity, provenance and support level are typed fields, not prose"]:::ready
    I1303["I1303<br/>The store is bounded, measured and invisible to every published projection"]:::blocked
    I1304["I1304<br/>The browser transport is the one this repository already drives"]:::blocked
    I1305["I1305<br/>An observed contract has a fingerprint, a compatibility state and a fixture"]:::blocked
    I1306["I1306<br/>A sync resumes, repeats itself without harm, and says how fresh it is"]:::blocked
    I1307["I1307<br/>The ChatGPT shape is mapped from evidence and never becomes the canonical model"]:::blocked
    I1308["I1308<br/>The executable's share is one capability, shaped like continuity"]:::blocked
    I1309["I1309<br/>The boundaries this milestone asserts are gates, not sentences"]:::blocked
    I1310["I1310<br/>The subsystem is documented where a person looks, and the plan is closed against the repository"]:::blocked
    I3100["I3100<br/>What the ChatGPT project decided is promoted into the layer, each record naming the conversation and message it came from"]:::ready
    I3173["I3173<br/>A synced workspace conversation proposes candidate records that cite their conversation and message, and nothing becomes canonical without an act"]:::blocked
    I1301 --> I1302
    I1302 --> I1303
    I1302 --> I1304
    I1302 --> I1307
    I1303 --> I1306
    I1303 --> I1308
    I1303 --> I1309
    I1304 --> I1305
    I1305 --> I1306
    I1305 --> I1307
    I1307 --> I3173
    I1308 --> I1309
    I1308 --> I1310
    I1308 --> I3173
    I1309 --> I1310
    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/external-workspaces.yaml. Přečtěte ho zpět pomocí majordomus plan show external-workspaces.

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