Autonomia ops — status i pytania otwarte

Data testów: 2026-07-18 Zakres: pełna autonomia operacyjna bez self-evolution (system nie przepisuje samego siebie). Kanoniczny runbook: ../autonomy-cli-runbook.md Plan publish: ../plans/docs-subactor-com-publish.md Architektura intentów: intent-orchestration-and-fallbacks.md Rekomendowane rozwiązanie: autonomy-recommended-solution.md ADR (Faza 0): adr/README.md Roadmapa: ../plans/autonomy-implementation-roadmap.md Baseline tego dokumentu: commit 5894906 (snapshot diagnostyczny; nie mieszać z refaktorem orchestratora).


1. Aktualna sytuacja

Docelowa pętla:

NL → intent → plan (ticket / recipe) → deploy (urirun) → verify → NL

Co działa w pętli (dziś)

EtapStanDowód
NL → intent (frazy docs)Działasubactor ask … --json → pack SSOT / docs-httpdocs-sync.pl.aql (source=intent-pack-registry po unit 3; wcześniej nlp-uri-phrase)
Intent → ticket + planDziałaTicket PLF-353, plan proposed (bez --execute)
Plan → AQLDziała (founder)founder_admin_bypass przy SUBACTOR_ADMIN_TOKEN
Dry-run deployDziałaRecipe docs-httpdocs-sync: methods + sync plan (~12 plików)
Live applyCzęściowoBrama apply/grant OK; SFTP OK; formalny origin release rel_20260718T085927Z_a7f1328e na docs docroot; cert + DNS HITL
Verify HTTPS publiczneFail / mismatchdocs.subactor.comGitHub Pages, nie Plesk; TLS SAN bez docs.subactor.com
Zamknięcie pętli NLCzęścioweIntent+plan OK; brak wiarygodnego „opublikowano i widać na HTTPS”

Mapa stacku (skrót)

WarstwaRolaUwaga
Founder CLI subactorHealth, ask, tickets, plansControl :8091 healthy
Orchestrator subactor-runRecipe / topo URIDry-run domyślnie
urirun-nodeplesk://… HOWSFTP: paramiko in image (PR6); FTP: available; prod publish requires SFTP
Vault / credentialsLease do FTP/SFTPNie logowane; apply zależy od vault+transport
DNS / TLSPrawda „co serwuje domenę”docs ≠ subactor.com (Plesk 217.160.250.222)

OpenRouter / LLM: tylko intent (opcjonalnie). Upload jest deterministyczny (connector + vault + PLESK_SYNC_APPLY).

Poza zakresem tego dokumentu: self-evolution (system przepisujący własny kod, kontrakty lub politykę bez ludzkiego procesu change).


2. Wyniki testów (2026-07-18)

Środowisko: lokalny Docker platform (hr-control, planfile, urirun-node, …); founder token załadowany z platform/.env (wartość nie zapisana tutaj).

#TestWynikFakty (bez sekretów)
1subactor healthPASS{"ok":true,"service":"organization-control"}
2subactor ask "…" --jsonPASSsource=intent-pack-registry (unit 3) lub legacy nlp-uri-phrase, model docs-httpdocs-sync.pl.aql, situation docsdocs.subactor.com
3subactor ask "…" (propose)PASSTicket PLF-353, plan plan_mrpyf6eq_53aae9b275, status proposed
4Recipe dry-run docs-httpdocs-sync.urirun.jsonPASSMethods OK; dry-run files_planned=12; recommended transport ftp
5Recipe --execute bez PLESK_SYNC_APPLYPASS (brama)Apply step: plesk_sync_apply_required — upload zablokowany zgodnie z polityką
6Live apply z PLESK_SYNC_APPLY=1PASS (origin)Formal release-upload→activate na /docs.subactor.com (grants+plan_hash); bramy wyczyszczone po apply; cert nadal HITL
7https://docs.subactor.com/ (strict TLS)FAILcurl 60: cert CN=*.github.io, brak SAN dla docs.subactor.com
8Treść / kto serwuje (curl -k)INFOserver: GitHub.com, Jekyll; CNAME → subactor.github.io / 185.199.*
9Porównanie subactor.comINFOA → 217.160.250.222 (Plesk); docs nie wskazuje Pleska
10Kontener urirun: paramiko / doctorPASSparamiko yes; doctor production_publish_ready=true; methods sftp+ftp ok
11Apply deny bez grant/killPASS--executeautonomy_mutations_disabled
12Drift + sync --check + unitPASS*sync OK po align step-catalog; core sibling vs pin wymaga bump; orchestrator 24/24; plesk 64/64

Wniosek: ścieżka NL → intent → ticket/plan → dry-run jest żywa. Ścieżka apply → publiczne HTTPS na Plesku nie jest zamknięta (DNS/TLS + transport/timeout). Nie twierdzimy o udanym live publish.


3. Problemy ops

ProblemObjawSkutek dla autonomii
DNS docs → GitHub PagesCNAME subactor.github.ioSync do Plesk httpdocs nie zmienia tego, co widzi świat
TLS SAN mismatchCert *.github.io vs hostname docs.subactor.comStrict verify / automatyczny health check pada
Brak paramiko w urirun-node~~sftp.available=false~~ → fixed (Compose rebuild 2026-07-18)SFTP ready; FTP fallback nadal opt-in
Timeout apply (~30s)Live FTP sync failRecipe --execute z bramą i tak nie domyka publish
PLESK_SYNC_APPLY unsetDomyślnie bezpiecznieFounder musi świadomie ustawić bramę na nodzie
Docroot /httpdocsRecipe targetuje primary httpdocsPreferuj subdomain docroot /docs.subactor.com (utworzony 2026-07-18)
Domain/subscription preflightBrak automatycznego kroku „domena + TLS na Plesku”NL obiecuje publish bez gwarancji infrastruktury
Vault ensureCzęsto ręczneAutonomia urywa się na brakującym plesk-sftp / FTP
urirun-lan-gateway unhealthyDocker statusPotencjalny szum ops / ścieżki LAN
Secrets ownershipTokeny w .env, vault w browser-agentBrak jasnego „kto rotuje / kto lease’uje z CLI”

4. Problemy produktowe / platformowe (nie ops)

Krótko — szczegóły w intent-orchestration-and-fallbacks.md:

ProblemSkutek
Intent wiring zduplikowany (frazy, AQL, step-catalog, recipe, Planfile)Partial (PR3): pack SSOT + derived sync; Planfile nadal osobno
Brak intent pack SSOTClosed (PR2): registry istnieje; dual-run do PR10
Orchestrator NL stub ≠ pełna multi-step recipe--nl nie zastępuje ticketu z uri_processes
Fail-fast runTask bez optional / on_failClosed (PR4 core) — hardening ticket/rollback w toku
Kontrakty autonomii w API to głównie TestQL onboardingBrak produkcyjnego kontraktu „docs publish”
Multi-goal NL (treść + publish) niepełneIntent trafia w sync; generacja treści nie jest w tym samym łańcuchu
Misroute LLM bez trafienia frazyHistorycznie modele onboardingowe — łata phrase map + packs

5. Pytania do rozstrzygnięcia

Checklist decyzji pod pełną autonomię poza self-evolution. (Self-evolution: out of scope — jawnie wykluczone.) Evidence implementacji: autonomy-implementation-status.md.

Governance / apply

Prawda domeny i weryfikacja

Zdolności i connectorzy

Pack required_capabilities ⊆ live plesk://host/doctor/query/report and ⊆ AQL (catalog capability→OQL/URI + actor contract allows; CI --aql-only). Control ask/propose + POST /api/apply-grants fail-closed (capability_unavailable / preflight_failed / capability_not_in_aql). See capability-tooling-evaluation.md. Nie wymaga letsencrypt (brak claimu publicznego LE).

Secrets / vault

Scope produktu

Poza zakresem (nie rozstrzygamy tu)

autonomii przez samego agenta — wykluczone.


6. Definition of done — „pełna autonomia (bez ewolucji)”

Mierzalne kryteria. Wszystkie muszą być prawdziwe dla reprezentatywnego celu (np. docs publish) oraz dla nowego celu z katalogu intent packs bez ręcznego „sklejania” N plików poza packiem.

#KryteriumJak zmierzyć
D1NL founder → poprawny named intent bez OpenRouter (phrase) lub z LLM tylko przy braku frazysubactor ask --json → oczekiwany model_name
D2Intent → ticket z pełnym uri_processes (nie pojedynczy URI stub)Planfile / plan proposed z multi-step
D3Dry-run zawsze przed live mutateRecipe/policy; assert w TestQL
D4Live apply tylko przy jawnej bramie + kontrakcie/aktorzeBez PLESK_SYNC_APPLYplesk_sync_apply_required; z bramą → upload OK
D5Wymagane connector capability green przed obietnicą sukcesuPreflight: methods, vault, domain, TLS
D6Publiczny verify po applycurl -fsS https://<domain>/ HTTP 200 + oczekiwany fingerprint treści
D7DNS/TLS zgodne z celem publishDig + cert SAN zawierają hostname
D8Failure → ticket / escalate, nie ciche okStatus planu + Planfile history
D9Zero sekretów w ticketach, recipe, logach NLAudit / grepowalne ścieżki
D10Nowy cel z intent pack bez driftu N kopiiJeden pack → phrases + allow + recipe ref
D11Self-evolution wyłączoneBrak URI/procesu „rewrite self”; change tylko przez ludzki change process

Minimum dla docs.subactor.com: D1–D9 spełnione przy DNS→Plesk (lub świadomej decyzji „zostajemy na GitHub Pages” i wtedy sync Plesk nie jest częścią DoD publicznego HTTPS).


7. Powiązane dokumenty

DocRola
../autonomy-cli-runbook.mdCLI / pętla NL→URI
../plans/docs-subactor-com-publish.mdPlan + wcześniejsze wyniki testów publish
../deployment/PLESK.mdOps path docs → httpdocs
../deployment/docs-httpdocs-sync.urirun.jsonRecipe dry-run/apply
intent-orchestration-and-fallbacks.mdIntent packs, policy, fallbacki
autonomy-recommended-solution.mdKanoniczna rekomendacja autonomii
adr/README.mdADR Phase 0 (do akceptacji)
../plans/autonomy-implementation-roadmap.mdFazy 0–8 + kolejność zmian
../plans/intent-capability-fallbacks.mdKrótka nota planowa
../../platform/docs/URI_PROCESS_AUTONOMY.mdAQL / OQL / URI
../../platform/docs/AUTONOMY_CONTRACTS.mdKontrakty autonomii
../../www/deployment/PLESK.mdWzorzec www → subactor.com (działający)

Wygenerowano po praktycznych testach CLI/recipe/DNS (2026-07-18). Bez sekretów.