Plan: docs → docs.subactor.com (NL → publish)

Goal: make this founder CLI prompt work end-to-end:

subactor ask "stwórz dokumentację w folderze docs i opublikuj na docs.subactor.com"

Mirror of the proven www → subactor.com path (www/deployment/PLESK.md).

Steps (implementation order)

#WorkStatus target
1Allowlist basename docs in bridge planner + urirun-connector-plesk _source_allowedrequired
2Recipe docs/deployment/docs-httpdocs-sync.urirun.json + Planfile importrequired
3NL phrases in agents/nlp-uri-phrases.yaml + deterministic control intent (docs-sync-intent)required
4AQL model docs-httpdocs-sync.pl.aql + llm-organization-intents + step-catalog + bot ALLOW MODELrequired
5Minimal public landing docs/index.html (do not wipe existing markdown)required
6Domain on Plesk + DNS (today CNAME → GitHub Pages; Plesk needs A/CNAME → subscription)ops
7Dry-run sync → apply with PLESK_SYNC_APPLY=1 + founder tokentest
8Verify https://docs.subactor.com/ (TLS SAN must include docs host)verify

Pipeline

NL (subactor ask)
  → deterministic phrase / intent model docs-httpdocs-sync.pl.aql
  → Planfile ticket uri_processes (methods → dry-run → apply)
  → AQL gate (project-operator / founder bypass)
  → urirun plesk://host/site/command/sync
  → SFTP/FTP upload to docs.subactor.com /httpdocs

OpenRouter / llm-gateway: intent only. Upload is connector + vault + apply env gate.

Safety

Operator commands

# Intent only
subactor ask "stwórz dokumentację w folderze docs i opublikuj na docs.subactor.com" --json

# Deterministic recipe (dry-run)
cd ~/github/subactor/orchestrator
node bin/subactor-run.mjs --recipe ../docs/deployment/docs-httpdocs-sync.urirun.json

# Live apply (urirun-node host)
export PLESK_SYNC_APPLY=1
node bin/subactor-run.mjs --recipe ../docs/deployment/docs-httpdocs-sync.urirun.json --execute

DNS note

As of this plan, docs.subactor.com resolves to GitHub Pages (*.github.io). Plesk publish writes the subscription httpdocs for that domain name; public HTTPS only shows Plesk content after DNS (and TLS cert) point at the Plesk host (same pattern as subactor.com217.160.250.222).

Test results (2026-07-18)

CheckResult
subactor ask "…" --jsonOK — docs-httpdocs-sync.pl.aql, deterministic phrase map
subactor ask "…"OK — ticket PLF-352, plan proposed
Recipe dry-run (docs-httpdocs-sync.urirun.json)OK — methods + sync plan (~10 files), FTP available
Live apply (PLESK_SYNC_APPLY=1)FAIL — urirun subprocess timeout 30s on FTP upload (vault/FTP path)
https://docs.subactor.com/Serves GitHub Pages (Jekyll); TLS SAN mismatch on strict verify

Ops follow-ups: add docs.subactor.com on Plesk + DNS/TLS; raise urirun exec timeout or fix FTP/SFTP (paramiko) for apply; prefer addon docroot /docs.subactor.com so primary /httpdocs is not overwritten.

Powiązane (rekomendacja autonomii)