Skip to content

feat(setup): S3 — ./setup one-click orchestrator (one-click-installer) - #447

Merged
artyhoo merged 1 commit into
stagingfrom
worktree-oci-s3-setup
Jun 10, 2026
Merged

feat(setup): S3 — ./setup one-click orchestrator (one-click-installer)#447
artyhoo merged 1 commit into
stagingfrom
worktree-oci-s3-setup

Conversation

@artyhoo

@artyhoo artyhoo commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Summary

Stage S3 of the one-click-installer umbrella (plan Task 5, after S2 #443/#444/#445). Adds the single entry point ./setup: preflight → framework (install.sh) → companions (manifest × engine, consent-first) → runtime-bridge (guided-detect), with --yes/--all/--dry-run.

Delta from plan (sanctioned by the plan's own «Manifest-parse note», T-OCI-A): the inline pipe-split awk/sed parser is replaced by a tab parser (while IFS=$'\t' read -r name detect install kind) — the shipped manifest (#443) is tab-delimited (single tab, no padding; header = format contract). Inner pipes in detect_cmd survive intact. The plan-mandated parse sub-test against the REAL manifest rows is included (proven non-vacuous: superpowers occurs 0 times in install.sh's own dry-run output — the assertion can only pass via the manifest→engine path).

Changes

  • New setup (repo root, executable, 48 LOC) — plan Step 3 verbatim except the tab parser block.
  • New tests/install-sh/setup-orchestrator.test.sh — plan's 5 assertions + 2 parse-proof assertions (output mentions superpowers; no command not found). TDD red PASS=2 FAIL=5 → green PASS=7 FAIL=0.

Prior-art consult

  • Trailer carried per kickoff §7: Prior-art: aif-handoff installMcpServer precedent (spec §11; same pattern as commit ecb6457 / PR #311). Root-level setup is outside the capability-gate detection scope (packages/ + deps only); no new deps.
  • No new capability area; no SSOT edits (S4 Task 6 owns row docs(skills): sync shipped prose to C-1 resolution (close DN-1) #84).

Test plan

  • bash tests/install-sh/setup-orchestrator.test.sh → PASS=7 FAIL=0 (worker verify-trace, red phase pasted)
  • Regression: manifest-parse PASS=4 / engine PASS=5 / bridge-guided PASS=3 / no-companion-blocks PASS=4
  • bash -n setup → exit 0 (compensating check: pre-commit's bash -n gate covers only *.sh; extensionless setup bypasses it)
  • E2E dry-run in throwaway project: preflight ✓×4, framework dry-run, ⊝ superpowers already present — skipping, [dry-run] would run bridge guided-detect, ✅ ./setup complete (dry-run)., exit 0, dir contains only its own package.json
  • CI ci-success (runs on PR)

§1.7 Self-discipline check (REQUIRED if PR touches discipline-bearing files)

§1.7 Skipped: executable orchestrator script + its test only; no rules, principles, templates or discipline-bearing docs touched.

🟢 Простыми словами

Появилась одна команда ./setup: она проверяет инструменты, ставит сам фреймворк, потом по табличке-манифесту предлагает поставить компаньоны (сначала проверив — может уже стоят), и в конце помогает поднять «мост» к aif. Флаги: --yes — не спрашивать, --dry-run — только показать план, ничего не трогая. Покрыто 7 проверками.

Observations (out of scope, follow-ups)

  • Acceptance delta: kickoff §5 S3 literal says «PASS=5»; actual PASS=7 — two parse-proof assertions added per the plan's own Manifest-parse note mandate. Stage-gate criterion = PASS=7 FAIL=0.
  • setup.d/bridge-guided.sh:32 cwd-relative path bug (S2 artifact, untouched): bash packages/runtime-bridge/scripts/setup-runtime-bridge.sh breaks when a consumer runs ./setup from their project dir with bridge state=up. Needs $HERE-anchoring or install-layout-aware resolution — candidate for S4/S5 or a standalone one-liner PR.
  • Legacy setup.sh at repo root still documented in README/INSTALL-FOR-AI — Task 8 (S4 docs) territory.

… bridge)

Prior-art: aif-handoff installMcpServer precedent (spec §11; same pattern as commit ecb6457 / PR #311).
@artyhoo
artyhoo enabled auto-merge (squash) June 10, 2026 12:56
@artyhoo
artyhoo merged commit 5ec8dc4 into staging Jun 10, 2026
22 checks passed
@artyhoo
artyhoo deleted the worktree-oci-s3-setup branch June 10, 2026 13:00
artyhoo added a commit that referenced this pull request Jun 10, 2026
…with ./setup reality

Carried fixes from S4 GO: (1) BFR §1.1 opt-in seam is now the ./setup
companion-manifest flow (companion blocks left install.sh in S1 #442;
./setup + setup.d shipped #443-#447); (2) doc-authority-hierarchy §2
install.sh:138-152 citation updated to the verified SHIPPED_DOCS
copy/validate range install.sh:89-128.
artyhoo added a commit that referenced this pull request Jun 10, 2026
…ring (one-click-installer S5) (#452)

SCOPE 1: setup.d/bridge-guided.sh:32 had two bugs in the state=up branch:
(a) bare relative path to setup-runtime-bridge.sh broke when cwd != repo
root (lib is sourced, so $0 is the caller); (b) consumers installed via
install.sh have no packages/runtime-bridge/ at all -> unconditional fail.
Fix (Option C, dual-implementation §3 graceful degrade): resolve root via
BASH_SOURCE, run the script by absolute path when present (framework
repo), else print a docs/runtime-bridge-setup.md pointer and return 0.
Paired-negative (script absent) + positive (script present, cwd=/tmp)
cases added to tests/install-sh/bridge-guided.test.sh; falsifier
verified: new cases FAIL=3 against the old lib code.

SCOPE 2: .github/workflows/audit-self.yml — wire the 5 install-sh tests
from S1-S3 (#443-#447) as per-file steps in principles-meta-tests, after
the runtime-bridge opt-IN gate step (convention from #445).
transform-internal-refs.test.sh was already wired; not duplicated.

Plan Task 9 verification: full install-sh suite green (6 files, all
FAIL=0), e2e dry-run in /tmp throwaway wrote nothing, shellcheck clean
(2 pre-existing SC2317 info on the lib-only sentinel pattern, intended).

Prior-art: skipped — graceful-fallback fix + CI wiring + verification, no new capability (./setup shipped S3, spec §11).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant