Commit Graph

10 Commits

Author SHA1 Message Date
Bo b9d64d1719 feat(install): install.sh per-runtime detection + informative degrade (soc-vuu6.31 #install-single-runtime) (#380)
## Why

`install.sh` line 100 used `command -v claude || command -v codex` —
failing only when ZERO runtimes are present. Single-runtime users got
the warning skipped, then ran straight at the README mixed-model example
and hit failures. Council non-negotiable #3 + GOALS.md North Star line
13 ("install to first validated flow in under 5 minutes") both name
this. Codex auth model-mismatch (gpt-5.2-codex unsupported by ChatGPT
account) hit it for real earlier this session.

## What

Replace the single-line OR-detect with per-runtime detection:

```text
Detected Claude Code: yes/no. Detected Codex CLI: yes/no.
AgentOps will use [mixed-model | single-runtime] mode.
To unlock mixed-model judging, install [other]: [link]
```

Four cases handled:
- both present → mixed-model mode
- Claude only → single-runtime mode + Codex install link
- Codex only → single-runtime mode + Claude install link
- neither → existing warning preserved + both links

Total diff: 20 lines added, 5 changed in `scripts/install.sh`.

## Test

5 bats tests, all passing. Cover each runtime combination by stubbing
`claude` / `codex` / `curl` on PATH; assert detection lines + mode line
+ correct install link. Stub `curl` exits 1 so script bails at the
network step after the detection block runs, capturing the output we
want without touching the network.

Self-dogfood: re-run install.sh from this worktree → "Detected Claude
Code: yes. Detected Codex CLI: yes. AgentOps will use mixed-model mode."

## Acceptance

Per bead BDD: "Given a user with Claude Code installed but not Codex
CLI, When install.sh runs, Then output reads runtime-by-runtime
detection + mode + install-the-other one-liner. Install completes
without bouncing." ✓ (covered by test 2).

Closes-scenario: soc-vuu6.31#install-single-runtime
Bounded-context: BC5-Runtime
Evidence: scripts/install.sh
Evidence: tests/scripts/install-sh-runtime-detection.bats

Co-authored-by: Codex <codex@example.invalid>
2026-05-20 22:55:21 +00:00
Bo d58debb0e8 fix(ci): retire pre-push-gate-wired job — unblocks PRs post soc-g2r9 (soc-bbvw) (#359)
## Summary

**Unblocks PRs #320 + #358 (and all future PRs)** by retiring the
now-meaningless `pre-push-gate-wired` CI check that PR #357 (soc-g2r9)
left dangling.

PR #357 removed the gate invocation from `.githooks/pre-push`, but I
missed that the matching CI check `pre-push-gate-wired` was still
asserting that invocation existed. Every PR since #357 fails on this
check. Caught by the cron-loop after observing both #320 and #358 fail
with identical FAILURE on `pre-push-gate-wired`.

This is exactly the kind of regression the soc-eqjd CI-side AP#7
enforcement (PR #358) would catch in the future — but soc-eqjd is itself
one of the blocked PRs, so we need this unblock first.

Closes: (partial — `soc-bbvw` kept open for remainder; this is the
minimum-CI-unblock subset)

## Fitness delta

- PRs blocked on `pre-push-gate-wired` regression: **2 (#320, #358) →
0** (target post-merge)
- CI jobs total: **66 → 65** (manifest + workflow + summary needs +
summary echo + AGENTS render all in lockstep)
- Lines deleted: **236** (199-line orphan script + 14-line orphan bats +
23 misc)

## What changes

| File | Change |
|---|---|
| `.github/workflows/validate.yml` | Remove `pre-push-gate-wired` job
block (13 lines); remove from `summary.needs`; remove summary echo |
| `docs/contracts/ci-jobs.yaml` | Remove `pre-push-gate-wired` manifest
entry |
| `AGENTS.md` | Auto-regen (65 → 64 rows) |
| `scripts/check-pre-push-gate-wired.sh` | **DELETE** (199 lines;
verified the now-removed gate chain) |
| `tests/scripts/check-pre-push-gate-wired.bats` | **DELETE** (14 lines;
tested the deleted script) |
| `scripts/install.sh` | Remove "Step 3/3: Verifying pre-push gate
wiring"; renumber to Step 1/2 + 2/2 |

## What's NOT in this PR (Wave 1 remainder)

Intentionally narrow scope. The following stay for a follow-up PR under
`soc-bbvw`:

- `scripts/pre-push-gate.sh` (2200+ lines; the gate body itself)
- `tests/scripts/pre-push-gate.bats` (55-test suite)
- The ~12 other gate-only `scripts/check-*.sh` helpers (need per-file
caller audit)
- `scripts/check-test-fixture-parity.sh` (asserts helper-stubs; needs
disposition decision)

Reason for splitting: those 14+ files have N callers each that need
audit. Three hours of risk vs. five minutes of unblock. Cheap fix first;
heavy sweep next.

## Sibling pattern

Job removal mirrors `scripts/add-validate-job.sh`'s 5-touchpoint
additive shape, run backwards: yaml manifest entry + validate.yml block
+ summary needs + summary echo + AGENTS render — all in lockstep.

## Verification

- `python3 -c "yaml.safe_load(...)"` on both yaml files: parses cleanly
- `scripts/generate-ci-jobs-table.sh --check`: PASS (64 rows)
- `shellcheck scripts/install.sh`: clean
- No remaining `check-pre-push-gate-wired` references outside this PR's
diff (grep audit)

## Why this PR fires the cron-loop's value

This is the second self-correction PR I've shipped in this session — the
first (PR #356, soc-o5kq) added AP#7 as documentation; this one fixes a
regression I introduced one PR ago. The mechanical AP#7 check landing in
PR #358 will catch this exact failure mode going forward. Until then,
the human-in-the-loop (operator's cron-loop nudging me to check PR
status) caught it.

Discovered-from: soc-g2r9

Bounded-context: BC0-foundations (CI gate retirement, Wave 1 minimum
subset)
Evidence: shellcheck

Co-authored-by: Codex <codex@example.invalid>
2026-05-19 20:44:49 +00:00
Boden Fuller b8c5a3761b feat(agentops): make 3.0 hookless-first
Add DDD skill-domain contracts, hook lease inventory, replacement ports, artifact-first RPI skill boundaries, and release exact-SHA validation. Demote ao inject to a compatibility adapter and remove prompt-only default hooks.
2026-05-16 09:43:08 -04:00
Boden Fuller 98dd4f9c2f feat(installer): add dev bootstrap mode 2026-05-03 16:29:58 -04:00
Boshu2 56d42fe51c fix(install): stop copying skills to ~/.claude/skills
The install script was copying skills to ~/.claude/skills/ which is wrong.
Claude Code users get skills through the plugin system. This script
should only install the Codex plugin.
2026-03-20 20:40:32 -04:00
Boden Fuller e0e21e3535 feat: add native Codex plugin install support 2026-03-07 07:30:08 -05:00
Boden Fuller 9da36b33f5 refactor: remove npx skills — replace with native curl installers
skills/update/SKILL.md: bash <(curl .../install.sh) replaces npx
skills-codex/update/SKILL.md: curl install-codex.sh for Codex
scripts/install.sh: git archive download, no npm required
scripts/extract-release-notes.sh: remove npx from update hint
cli/cmd/ao/doctor.go: update "no skills found" message
cli/cmd/ao/seed.go: update skills install reference
skills/quickstart/SKILL.md: update troubleshooting command
skills/quickstart/references/troubleshooting.md: same
skills-codex/quickstart/references/troubleshooting.md: same
validate.sh (both): grep for install.sh instead of npx
All docs/AGENTS.md/README.md/CLAUDE.md: replace npx references
2026-02-27 09:15:00 -05:00
Boden Fuller 4fd2512c87 refactor: flatten CLI namespace and liquidate debt
Remove 5 namespace parent commands (know, work, quality, settings, start)
and register all 49 leaf commands directly on rootCmd. Flat namespace is
simpler for users; GroupID-based help provides visual grouping without
requiring namespace tokens.

Namespace flattening (184 files):
- Delete know.go, work.go, quality.go, settings.go, start.go
- Invert deprecatedCommands map (old namespace paths → flat paths)
- Update 127 consumer files (hooks, skills, docs, scripts, tests)

Debt liquidation (7 items from post-mortem):
- Fix 62 broken smoke test invocations
- Delete 118 LOC dead deprecatedAlias code
- Widen doctor scan to docs/, scripts/, and subdirectories
- Expand expectedCmds test to all 49 commands (floor 45)
- Add bidirectional expectedCmds sync check
- Create sweep-namespace-references.sh automation
- Fix EXPECTED_COMMANDS array to list flat commands
- Escape sed variables in sweep script

All Go tests pass (36s). All conformance checks pass.
2026-02-26 09:27:38 -05:00
Boden Fuller bdf112ba7f feat: align codex skill docs and hook command mappings 2026-02-26 05:48:41 -05:00
Boden Fuller 37d4b5b2ae Merge branch 'codex/rpi-supervisor-cli' into main 2026-02-21 19:41:50 -05:00