mirror of
https://github.com/boshu2/agentops.git
synced 2026-09-14 15:08:13 +08:00
ao-pre-reduction@5b334a13f
11 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5995beb417 |
docs(doctrine): reconcile 3.0.md tooling-floor wording with the bd/git floor (ag-60jd #tooling-floor-reconcile) (#790)
## What
`docs/3.0.md:168` (Non-goals) read **"No new required tooling; `bd`, the
ratchet, and the `ao` CLI carry the load,"** which sounded like
*nothing* was required and contradicted two settled statements:
- `AGENTS-WORKFLOW.md` / CLAUDE.md doctrine: **"No bead, no PR"** (bd is
load-bearing for the canonical workflow).
- `docs/dependencies.md:14`: **`bd` → "Required for tracked work."**
This restates the floor in one consistent form across the doctrine
surfaces:
> `git` + an agent runtime stay **hard-required**, `bd` is **required
for the bead-tracked workflow** ("No bead, no PR"), and the ratchet +
`ao` CLI carry the rest.
## Why this is the only change needed
The README rewrite already removed the old "bd = Optional" requirements
table the bead cited (README:128). The current surfaces are already
aligned:
- `README.md:86` — "The only hard requirement is an agent runtime and
`git`."
- `docs/dependencies.md:14` — `bd` = "Required for tracked work";
`ao`/`bd` recommended (line 32).
- `AGENTS.md` — no contradicting "bd optional" statement.
So `docs/3.0.md:168` was the last outlying statement. One line changed.
## Verification
- `markdownlint-cli2 docs/3.0.md` → 0 errors.
- `scripts/pre-push-gate.sh --fast` → passed (2 pre-existing warn-only
F1.6 items, unrelated).
Closes-scenario: ag-60jd#tooling-floor-reconcile
Bounded-context: BC5-Runtime
Evidence: docs/3.0.md
|
||
|
|
6072dceac5 |
docs(substrate): reconcile doctrine — skill-dispatch + drop Gas City reference (ag-88y5 #docs-skills-dispatch-reframe) (#696)
## What Two bounded doctrine-reconciliation slices (one coherent arc): **ag-88y5** — the out-of-session dispatch unit is the `/rpi`·`/evolve` **skill**, not the `ao rpi`/`ao evolve` CLI. Per the 3.0 skills-are-the-runtime thesis (using-ntm #693 already frames it this way), re-narrate the **live** doctrine surfaces so the substrate spawns an agent that *runs the /rpi skill* over a bead: - docs/3.0.md, docs/architecture/canonical-loop-model.md, docs/runbooks/nightly-evolution.md - skills/using-agentops, skills/agent-native, skills/domain/references/factory.md Historical surfaces (MIGRATION-3.0, ADR-0009, release notes) + CLI-reference left as-is; the actual `ao rpi`/`ao evolve` CLI removal is the **ag-iowf** epic (live automation callers — overnight-evolve, release-smoke — must migrate first). **ag-ogp5** — drop the 4 docs still asserting Gas City as THE reference substrate → NTM+MCP+managed-agents: - docs/ARCHITECTURE.md, docs/SCHEMAS.md, docs/contracts/agents-write-surfaces.md, docs/patterns/completion-notifications.md (Pattern C) The ~37 historical/illustrative GC refs are intentionally retained (per ag-ogp5 scope). ## Verification regen-all --check, embedded-sync, heal --strict, registry-drift, codex-rpi-contract, codex-artifacts --scope head — all green. Closes-scenario: ag-88y5#docs-skills-dispatch-reframe Bounded-context: BC4-Factory Evidence: docs/3.0.md |
||
|
|
37c86dc282 |
docs(doctrine): re-narrate out-of-session substrate Gas City → NTM+MCP+managed-agents (ag-vg40 #substrate-renarration) (#676)
## What The **doctrine slice** of the ACFS-prune (operator-authorized 2026-06-02). Re-narrates AgentOps's out-of-session story. **Kept (the sovereignty floor — unchanged):** AgentOps = the in-session loop + compounding context; ships no daemon/scheduler/overnight-runner; delegates out-of-session execution to a *swappable substrate*. The in-session/out-of-session boundary and the "substrate owns when/where/who-supervises/coordination" split stay. **Changed (the reference substrate):** Gas City → the adopted ACFS trio — **NTM** (local tmux swarm) + **MCP** (`ao mcp serve`, shipped) + **managed-agents** (`ao agent`). "AgentOps IS a Gas City reference config" → "AgentOps adopts NTM+MCP+managed-agents; it still owns no core, it just doesn't own or reference Gas City." This is the deep-dive's "adopt the substrate, don't own it." ## Changes (7 files, +25 / −120) - `docs/3.0.md` — substrate table row; replaced the "Gas City reference City" section with "Running the loop out of session" (the three substrate options); Olympus comparison rows; sovereignty-floor line - `docs/architecture/canonical-loop-model.md` — Factory-driver framing, ASCII diagram, boundary table, dispatch paragraph - `docs/cdlc.md`, `docs/architecture/fungibility-charter.md` — substrate one-liners - **deleted** `docs/architecture/gc-posture.md` + reconciled its 4 inbound links (both index files, documentation-index, fungibility-charter) ## Scope boundaries - **ADR-0009 left historical** — decision records are immutable; it records the *then*-rationale. - **`thesis-stability` not tripped** — that gate guards the product thesis (README/PRODUCT/GOALS), not the substrate detail. (Its current FAIL is pre-existing README/PRODUCT/GOALS tagline drift, unrelated to this PR.) - **Follow-up `ag-124p`** (separate PR): the code/config strip — `packs/agentops` + `city.toml` + `skills/using-gc` + `cli/hooks/claude.json` gc-wiring. ## Note This is outward-facing doctrine — opened for your review rather than auto-merged. PR #5 this session; you authorized continuing past the scope ceiling for the prune. Closes-scenario: ag-vg40#substrate-renarration Bounded-context: BC1-Corpus Evidence: docs/3.0.md |
||
|
|
dde214825b |
docs(3.0): ag-p7j W1 — delete daemon contracts, regen generated docs, reframe skills (ag-p7j) (#529)
W1 (structural) of the 3-way ag-p7j doc-sweep. Owns shared/generated/structural artifacts + skills + contracts. Disjoint from W2 (#527, core narrative) and W3 (#528, peripheral docs), both already merged; this branch is rebased on top of them. ## Deleted (deleted-surface docs) - `docs/contracts/{agentops-daemon,ao-watch,daemon-idempotency,dream-run-contract,agent-worker,ao-outcomes,openclaw-consumer-api,gascity-integration}.md` - `docs/code-map/agentopsd-codebase-map.md` - `gascity-integration.md` deleted because it described the OLD daemon↔GasCity adapter (`ao daemon run --executor-policy=gascity`, daemon ledger, OpenClaw consumer endpoints). The current GC story is the using-gc skill + the reference City. - Removed every deleted doc's row from `docs/documentation-index.md`, `docs/contracts/index.md`, and `mkdocs.yml` nav. ## Regenerated (generators, not hand-edited) - `docs/cli-surface.{md,json}` via `check-cmdao-surface-parity.sh --write-surface` — daemon/schedule/overnight/plans/watch/factory rows gone (live `ao` binary no longer registers them; the docs were stale). - `registry.json`, `skills/catalog.json`, SKU catalog, codex `.agentops-generated.json` hashes + manifest. - Skill counts verified in sync (81 skills). ## Reframed to in-session / GC / hookless - Skills: `dream` (+codex twin, neutralized literal `agentopsd`/`ao schedule`/`ao overnight`/`ao watch`/`ao plans` while keeping the retirement message), `compile` (+codex), `scaffold/recommended-reading` (+codex), `discovery/best-practices`, `validation/best-practices`. - Generated narrative: `docs/SKILLS.md` /dream block, `docs/ARCHITECTURE.md` dream paragraph, `skills/SKILL-TIERS.md` dream row. - Contracts prose: `docs/contracts/ubiquitous-language.md`, `docs/contracts/agents-write-surfaces.md` (kept catalog rows for surviving load-bearing-lane subdirs; dropped deleted-command references in descriptions). ## 3.0.md:150 Restored the strong claim: "...gone from the CLI **and from live doc prose** (only historical surfaces — ADRs, the CHANGELOG, release notes, and the 3.0 migration record — still name them, by design)"; kept the `validate-sku-catalog-drift` linkage-gate mention. ## Collateral (minimal dead-link repairs to my deleted targets) - `docs/daemon-migration.md` (gascity-integration link → dependencies.md), `cli/README.md` (dropped dream-run-contract link). The comparisons-file dead link was resolved by W3's merge. ## Gates (all green locally) doc-release (2765 links, 0 broken) · contract-compatibility (0 failures) · structural-floor · agents-write-surfaces · registry --check · validate-sku-catalog-drift · validate-ci-policy-parity · validate-skill-cli-snippets · validate-codex-runtime-sections · codex parity (5 skills) + regen-codex-hashes --check · skill-catalog drift · cli-skills-map · markdownlint (changed files) · mkdocs --strict · `cd cli && go build ./...` Closes-scenario: ag-p7j#w1-structural Bounded-context: BC1-Corpus Evidence: docs/3.0.md |
||
|
|
fcc036fb8b |
docs(3.0): honest 'docs match reality' claim — north-star truthful about the doc-prose tail (1 stale claim → 1 accurate claim) (#526)
docs/3.0.md:150 claimed daemon prose was gone from ALL live docs; ~10 narrative docs still reference it (tracked ag-p7j). Reworded to claim what is true (CLI + skill snippets + core docs clean) + point at the tracked tail and the validate-sku-catalog-drift linkage gate. Surfaced by the cc/cod release-readiness duel. Closes-scenario: ag-p7j#north-star-honesty Bounded-context: BC1-Corpus Evidence: docs/3.0.md |
||
|
|
3c6fd05dd0 |
fix(docs): unbreak mkdocs --strict — drop deleted HOOKS.md emit (ag-u46) (#521)
docs.yml (mkdocs build --strict) has failed 3x on main since #511. - gen_cli_reference.py emitted cli/docs/HOOKS.md (deleted with hooks) -> mkdocs FATAL. Removed the emit, the index Hooks card, and stale hook prose. - docs/3.0.md linked ../PRODUCT.md / ../GOALS.md (outside docs tree) -> strict warnings. Repointed to GitHub blob URLs. Verified: mkdocs build --strict builds clean locally (0 warnings). Closes-scenario: ag-u46#mkdocs-fix Bounded-context: BC1-Corpus Evidence: docs/_hooks/gen_cli_reference.py |
||
|
|
52930e05ff |
docs(3.0): honest doctrine — AgentOps is in-session, GC/Olympus own out-of-session (#3.0-honest-doctrine) (#518)
Lands the honest AgentOps 3.0 doctrine so the repo's narrative matches the shipped code: the daemon is **deleted**, AgentOps is the **in-session** agent operating loop + context compiler, and out-of-session orchestration is delegated to a substrate (the reference **Gas City City** or **Olympus**). ## What landed - **`docs/3.0.md`** (north star, rewritten): in-session-only identity; honest GC reference-City section — dispatch is **mayor-driven** today, order-auto-dispatch is a labeled **GC-upstream maturity gap** (`soc-5jwah`), not turnkey; two reference implementations table (AgentOps-on-GC has **no** daemon; Olympus **kept** its daemon because it is a sovereign product); e2e-proof evidence cited. - **`docs/architecture/canonical-loop-model.md`** (new): one loop body, two drivers, one inner tick, one config. Evolve (in-session, AgentOps-shipped) vs Factory (out-of-session, substrate-owned); crank/swarm placed as in-session steps. - **`docs/adr/ADR-0009-daemon-deletion-in-session-only.md`** (new, Accepted): the daemon-deletion decision — DELETE-not-deprecate rationale (AgentOps has no core to protect; Olympus kept its daemon because it's sovereign), the rejected *deprecate-keep-standalone* alternative, the sovereignty tradeoff (always-on requires GC), the e2e GC dispatch gap. References `soc-j7a5q`. - **`skills/domain/references/`**: loop-family vocabulary (loop, evolve, factory, rpi, autodev, context-compiler) as 6 entries + INDEX rows + SKILL.md links. - **README**: "Two ways to use it" reframed to **in-session vs out-of-session**; deleted-command prose (`ao daemon` / `ao schedule` / `ao overnight`) reframed to in-session + GC reference. - **`packs/agentops`**: dispatch relabeled mayor-driven; order-auto-dispatch GC-upstream gap (`soc-5jwah`) called out in `bead-dispatch.toml`, `rpi-dispatch.toml`, and `FINALIZE-NOTES.md`. `gc config show --validate` still exits 0. - Reconciled stale `agentopsd` prose in `skills/scope` + `skills/session-bootstrap`. ## Gates - `heal.sh --strict`: clean - doc-release gate: succeeded (link validation PASS, 0 broken) - `gc config show --validate --city .`: exit 0 - markdownlint: 0 errors - `generate-registry.sh --check`: up to date - codex parity (domain): passed - `go build ./...`: success **Do not merge** — the operator reviews `docs/3.0.md` before tagging. Closes-scenario: soc-j7a5q#3.0-honest-doctrine Bounded-context: BC1-Corpus Evidence: .agents/discovery/2026-05-24-gvkj6-e2e-proof.md |
||
|
|
e431339c40 |
feat(hookless)!: remove all hooks — skills + CLI only (soc-57b7f #remove-all-hooks) (#511)
## What AgentOps 3.0 goes **fully hookless**. This removes the entire hook product surface — the product is now skills + the `ao` CLI with **zero hooks**. CI is the authoritative gate. ## Deleted - `hooks/` — 46 hook scripts + `hooks.json` + examples (whole directory) - `cli/embedded/hooks/` + embedded `hooks.json` + `embedded/lib/hook-helpers.sh` - `lib/hook-helpers.sh` - `ao hooks` CLI command: `cli/cmd/ao/hooks.go`, `hooks_run.go` + 5 hook test files; `cli/internal/bridge/hooks.go`; `cli/internal/doctor/fix_hooks.go` + test - Codex hook manifest (`hooks/codex-hooks.json`) + handler/audit scripts (`scripts/audit-codex-hooks.sh`, `install-dev-hooks.sh`, `test-hooks-output.sh`, `test-codex-hookless-lifecycle.sh`, `test-hookless-rpi-phased.sh`) - Hook lease surface: `docs/contracts/hook-lease-*`, `schemas/hook-lease.v1.schema.json`, `scripts/check-hook-lease-inventory.sh`, `check-hook-port-replacements.sh`, `generate-hook-lease-inventory.py` - Hook docs: `docs/HOOKS.md`, `cli/docs/HOOKS.md`, `docs/architecture/hook-noise-audit.md`, `docs/contracts/hook-runtime-contract.md` - `tests/hooks/` (whole dir) + hook test scripts; 5 hook eval suites + fixtures ## CI gates removed `hook-preflight`, `validate-hooks-doc-parity`, `hook-output-schema-lint` (+ scripts/bats), the hook eval suites, the `test-runtime-codex-smoke` / `test-codex-native-install` / `test-codex-plugin-install` hook-handler assertions, the cli-integration hook-lifecycle steps, the bats `tests/hooks/*` glob + orphan-hooks audit, and the `--with-hooks` install path. `embedded-sync` now validates only lib/skills. Both summary `needs:` lists + the summary echo + `docs/contracts/ci-jobs.yaml` updated; `validate-ci-policy-parity` passes (66 rows). `.codex-plugin/plugin.json` drops the "Hooks" capability. ## Load-bearing PRESERVED (reported, not forced) - **`cli/cmd/ao/codex_runtime.go`** — the codex runtime *lifecycle profile* (`HookCapable`/`HookConfigured` detection) is a runtime-capability abstraction used by 6 `validate-codex-*` CI gates, distinct from the hook product. Deleting it is a separate refactor. - **`hooks-authoring` skill** + `schemas/hooks-manifest.v1.schema.json` — reframed as an opt-in "author your own hooks" guide. Deleting the skill cascades into catalog/domain-map/dispositions/context-map golden files (skill-count sync), out of scope for the hook-product removal. - **`scripts/pre-push-gate.sh`** — retired local gate (not in CI); self-skips deleted hook scripts via `[[ -x ]]` guards; its 55 bats tests still pass. - Domain-enforcement audit keeps the `enforced`-mode schema for backward-compatible JSON readers, but the hookless resolver only returns `audited`/`unavailable`. ## Verification `go build` / `go vet` clean; `go test ./...` = **11849 passed, 0 failed** (68 pkgs). gofmt clean on all touched files. Green: registry `--check` (0 hooks), `regen-codex-hashes --check`, `validate-ci-policy-parity`, `check-wiring-closure`, `validate-embedded-sync`, `validate-manifests`, `validate-agents-split`, `doc-release` (0 broken links), `generate-cli-reference --check`, `heal.sh --strict`, codex/claude/plugin smoke tests, baseline-audit (0 stale). Diff: 231 files, +354 / −39803. Closes-scenario: soc-57b7f#remove-all-hooks Bounded-context: BC5-Runtime Evidence: .github/workflows/validate.yml |
||
|
|
3ac00e5337 |
docs(3.0): mark none-a-noise-injector met — 7 noise hooks deleted (soc-cul67 #hookless-docs) (#496)
## What Flips the docs/3.0.md **"Hooks audited for noise"** acceptance box from `[ ]` to `[x]`. The 7 noise-injector hooks were **deleted outright** across `soc-e2ju0` S1–S3 (they were value-negative: A/B Δ=0) — not flipped to opt-in. 46 hooks remain, all gates or bounded adapters, none a noise-injector. ## Changes - **docs/3.0.md** — acceptance box `[ ]` → `[x]`; note now states the 7 noise-injectors were deleted (S1–S3), 46 hooks remain. The "Every AgentOps bead worked or closed" box intentionally left `[ ]`. The doctrine "default install works with zero hooks" line and the S2–S5 follow-on note are untouched (S4 default-install is not done yet). - **docs/architecture/hook-noise-audit.md** — summary reframed: original 53-hook audit (14 gate / 25 bounded-adapter / 14 noise) → current 46-hook reality (20 gate / 26 bounded-adapter / **0 noise**). The 14 "noise" entries split into 7 true noise-injectors (deleted) + 7 conditional injectors (reclassified as gates). Noise-injector table → all 7 deleted with their stage; gates list 14→20 (`go-vet-post-edit` removed — it was deleted, not a surviving gate); bounded-adapters 25→26; resolution note replaces the pending follow-on. - **docs/3.0-readiness.md** — hooks box `[ ]` → `[x]`; net 4/6 → 5/6 boxes met; W3 row and remaining-work refreshed. - **docs/documentation-index.md** — audit one-liner refreshed (no longer implies noise-injectors exist). - **skills/hooks-authoring/SKILL.md** — added a hookless-first guardrail: hooks are gates/bounded-adapters, never noise-injectors. Codex artifact + manifest source_hash regenerated for this skill only. ## Gates (all green) - `validate-hooks-doc-parity.sh` — PASS - `validate-codex-generated-artifacts.sh` — PASS (was failing on the SKILL.md edit; fixed via scoped hash regen) - `check-codex-parity-drift.sh` — PASS; `audit-codex-parity.sh --skill hooks-authoring` — PASS - `markdownlint` on all 6 touched md — PASS - `heal.sh --strict skills/hooks-authoring` — clean - Deleted-hook grep on docs/3.0.md + docs/HOOKS.md — empty (only historical mentions remain in the audit doc) Closes-scenario: soc-cul67#hookless-docs Bounded-context: BC1-Corpus Evidence: docs/3.0.md |
||
|
|
eacf6415d3 |
docs(3.0): 3.0-readiness level-set + update acceptance boxes (soc-hplds #w4-levelset) (#481)
W4 (final wave) of the 3.0 reconciliation. Honest level-set against docs/3.0.md after W0-W3. - **docs/3.0-readiness.md (NEW)** — wave-by-wave outcomes, box-by-box status, `ao goals measure` snapshot (**85.7%, 26/31**; both fails non-blocking: 1 infra-flake, 1 warn-only), named remaining work. - **docs/3.0.md** — acceptance boxes updated to true status: **4 of 6 met** (north-star-single-source, docs-match-reality, hexagon-complete, loop-executable); 2 open with tracking beads (hooks-none-noise → `soc-e2ju0`; every-bead → coherence/ledger beads remain). - documentation-index.md cataloged. The reconciliation met its mandate: **docs match reality, hexagon complete, hooks audited.** The 2 open boxes have named beads, not unknowns. NOTE: claude-review infra-red (weekly limit, resets May 25) — operator-authorized bypass when sole red. Closes-scenario: soc-hplds#w4-levelset Bounded-context: BC1-Corpus Evidence: docs/3.0-readiness.md |
||
|
|
4dd53dffa3 |
docs(3.0): canonical 3.0 north star + weave into sources of truth (soc-25sgs #3.0-north-star) (#468)
W0 of the 3.0 reconciliation (operator-ratified). Grounds the repo before reconciliation work. - **docs/3.0.md (NEW)** — single source of truth: the SDLC↔CDLC loop (BDD/Gherkin planning → tests → bounded build through ports → both-ends behavior+contract validation → feedback → ratchet), the BDD/DDD/Hexagonal/TDD waist, context density, and a precise hookless-first explanation (hooks = quiet adapters, not noise-injectors). + 3.0-ready acceptance + non-goals. - Woven into README, PRODUCT.md, GOALS.md, CLAUDE.md, docs/documentation-index.md, mkdocs.yml nav. Pure grounding: no code, no bead closes, no features. Links verified; additions-only. NOTE: claude-review infra-red (weekly limit, resets May 25) — operator-authorized bypass when sole red. Closes-scenario: soc-25sgs#3.0-north-star Bounded-context: BC1-Corpus Evidence: docs/3.0.md |