## What
Round-3 Gas City doctrine sweep — **docs/ slice** (user-facing operator
instructions) (**ag-r6g1**). Four docs told the reader to *"point the
reference Gas City at the repo"* to run the loop out of session;
re-narrated to the canonical substrate **NTM + MCP + managed-agents**
per [`docs/3.0.md`](docs/3.0.md).
## Surfaces (4 files, +14 −14)
- `docs/agentops-3-youtube-starter-series.md` — out-of-session demo beat
+ measurement field.
- `docs/wiki-for-agents.md` — the always-on compounding line.
- `docs/CI-CD.md` — the unattended-Dream line +
scheduled-private-Dream-runs section (dropped the Gas-City-specific
`city.toml`/`packs/`/`exec` Order mechanics).
- `docs/agentops-3-pmf-evidence-loop.md` — out-of-session step +
engagement checklist.
## Scope (sprawl-controlled)
Triaged to **live present-tense operator instructions only**. Left
already-correct architectural "ships no daemon / delegates to a
substrate" framing intact. **ag-r6g1 stays OPEN** — the operator
runbooks (`nightly-evolution`, `autonomy-runtime-cycle-1`, which carry
deeper GC-specific mayor/refinery/Order mechanics) and descriptive
comparison/example/explainer mentions are deferred to a later slice.
## Verification
- markdownlint 0 errors · `regen-all.sh --check` ALL GREEN (docs-only;
no derived-surface drift).
Closes-scenario: ag-r6g1#docs-slice
Bounded-context: BC1-Corpus
Evidence: docs/CI-CD.md
## Summary
Hooks were removed in AgentOps 3.0 and
`scripts/validate-hooks-doc-parity.sh` was deleted. ag-jov (PR #575)
fixed the `docs-release-governance` eval canary; this PR completes the
cleanup for **operational docs** that still instructed readers to run
the deleted script.
- `AGENTS-WORKFLOW.md` — drop the "Hook/docs parity" pre-push checklist
item; renumber 8–15 → 7–14.
- `docs/cli-skills-map.md` — drop the regenerate step that ran the
deleted script; renumber.
- `docs/release-e2e-checklist.md` — drop the parity-check line.
- `docs/CI-CD.md` — remove the `validate-hooks-doc-parity` node from the
CI job-graph diagram (box width preserved).
- `docs/LOOP-BUDGET.md` — remove the `validate-hooks-doc-parity`
loop-budget row.
Adds `tests/scripts/docs-no-dangling-hooks-doc-parity.bats` as a
regression guard over `docs/` + `AGENTS-WORKFLOW.md`, excluding
historical records (`docs/CHANGELOG.md`, `docs/releases/*`).
## Scope / out of scope
In scope: operational doc references to the deleted script (docs bounded
context).
Out of scope (owned by the **soc-g2r9** local-pre-push-gate retirement
arc, whose orphaned files are deleted *wholesale* by its deletion waves
— not hand-patched): `scripts/pre-push-gate.sh` and
`tests/scripts/pre-push-gate.bats` references. See
`docs/contracts/local-pre-push-gate-retirement.md`.
## Test plan
- [x] `bats tests/scripts/docs-no-dangling-hooks-doc-parity.bats` —
fails before the doc edits (5 refs), passes after.
- [x] `bash tests/docs/validate-links.sh` — 2788 links checked, 0
broken.
- [x] `markdownlint` on all 5 edited docs — clean.
- [x] `bats tests/scripts/validate-agents-split.bats` — 7/7 pass
(AGENTS-WORKFLOW.md edit safe).
Closes-scenario: ag-c2i#operational-docs-no-dangling-hooks-parity-ref
Bounded-context: BC1-Corpus
Evidence: bats tests/scripts/docs-no-dangling-hooks-doc-parity.bats
Route status/quickstart/release/beads through ao reconcile before backlog selection or release-health claims. Correct release-tag CI skip docs, regenerate registry, and clarify the reconcile release-tag next action.
## Summary
- keep release-tag Validate strict for unexpected skipped release lanes
- explicitly allow PR-only evidence checks to skip on tag pushes
- update release-tag CI bats coverage and CI docs so the policy is
locked
## Evidence
- `python3 - <<'PY' ... yaml.safe_load(.github/workflows/validate.yml)`
- `bats tests/scripts/validate-release-tag-full-ci.bats`
- `bash tests/scripts/test-ci-policy-parity.sh`
- `bash scripts/validate-ci-policy-parity.sh`
- `git diff --check`
- `scripts/pre-push-gate.sh --fast`
## Notes
This fixes the release-health contradiction where `v3.0.1` published
successfully but tag Validate failed because PR-only AP#7 was skipped on
a tag event.
Add the new eval-workbench-verify job to AGENTS.md CI jobs table and
docs/CI-CD.md job dependency diagram. Fixes validate-ci-policy-parity
drift after the new CI job was added.
Codify the policy distinction between pre-merge blocking and post-merge advisory
CI jobs so warn-only red stops training agents to ignore CI. Covers items 2, 3,
33, 34, 38, 40 from .agents/research/2026-05-03-top-50-ci-failures.md.
Changes:
- .github/workflows/validate.yml:
- Rename advisory display names from "(warn-only)" to "(advisory)" for
agentops-eval-advisory, security-toolchain-gate, doctor-check, and
check-test-staleness.
- Mark swarm-evidence as advisory: add `name: swarm-evidence (advisory)`,
`continue-on-error: true`, and remove from summary fail-condition.
- security-toolchain-gate install step now uses 3-attempt
exponential-backoff retry per item 40 (covers transient trivy/hadolint
network timeouts).
- AGENTS.md:
- Add "Advisory Job Triage SLAs" subsection with per-job SLA + escalation
rule (eval-advisory: 7d release-blocking when stale,
security-toolchain-gate: 14d, doctor-check: 30d, check-test-staleness:
info-only, swarm-evidence: info-only).
- Update inline non-blocking list and swarm-evidence row to reflect new
advisory status. validate-ci-policy-parity.sh now reports
38 jobs / 5 non-blocking (was 4).
- Document the retrieval-bench warn-then-fail ratchet promotion criterion
(14 consecutive nightlies of nightly_p_at_5 >= baseline_p_at_5).
- docs/CI-CD.md:
- Update "Soft Gates" table to include swarm-evidence and triage SLA column.
- Add "Retrieval-bench ratchet" subsection with promotion criterion,
baseline source (.agents/rpi/baseline-precision.json), 30-day staleness
fallback to 0.30, and explicit observational-only note (the
14-consecutive-nightly counter is not yet wired into automation; promotion
remains a manual decision).
- .agents/rpi/baseline-precision.json (new, force-tracked via .gitignore
re-include): seeds baseline_p_at_5 = 0.30 with metadata documenting owner,
promotion rule, fallback, and stale_after_days = 30.
- .gitignore: add re-include for .agents/rpi/baseline-precision.json and
remove the redundant late `.agents/` directory rule that was overriding
the earlier child-pattern re-includes.
H2 BRANCH-PROTECTION AUDIT (per soc-z7qq acceptance criteria):
$ gh api repos/boshu2/agentops/branches/main/protection \
--jq '.required_status_checks.contexts'
-> {"message":"Branch not protected","status":"404"}
Result: main is NOT protected on github.com/boshu2/agentops, so the
display-name renames carry zero required-check impact. No manual update
command needed. If branch protection is later enabled and any of the
renamed jobs (agentops-eval-advisory, security-toolchain-gate, doctor-check,
check-test-staleness, swarm-evidence) become required contexts, the GitHub
check name now ends in " (advisory)" — the workflow job ID is unchanged,
so required_status_checks.contexts must reference the job ID, not the
display name. The CI policy parity script keys on job IDs, not display
names, so no parity drift was introduced.
The 14-consecutive-nightlies ratchet is intentionally observational. A
follow-up bead is needed to wire the consecutive-green counter into
automation before promoting retrieval-bench to blocking.
Validation:
- python3 -c "import yaml; yaml.safe_load(open('.github/workflows/validate.yml'))"
-> OK
- bash scripts/validate-ci-policy-parity.sh
-> CI_POLICY_PARITY: PASS (38 jobs; 5 non-blocking)
- bash scripts/pre-push-gate.sh --fast
-> pre-push gate (fast): passed (40 skipped)
* feat(nightly): include current CI/PR/incident context in nightly RPI brief
scripts/nightly-rpi-brief.sh previously only ingested past Nightly PR
bodies and scheduled Nightly run results. The autonomous RPI prompt
issue produced from that brief had no signal about (a) whether the
current Validate workflow is green on main, (b) what PRs are open and
their check-rollup state, (c) open Nightly-failure incidents, or (d)
whether the prompt issue itself already exists. As a result the
$agentops:rpi --auto target list could miss live CI blockers entirely.
This change:
- Adds --validate-workflow flag (default "Validate")
- Captures four new structured artifacts via capture_optional_array
helper that tolerates gh failures: validate-runs.json, open-prs.json,
open-incidents.json, prompt-issues.json
- Threads new fields into summary.json: current_ci, open_prs,
open_incidents, prompt_issue, ranked stabilization_targets
- Adds tests/scripts/nightly-rpi-brief.bats covering the happy path
with mocked gh fixtures (~80 LOC fixtures + assertions)
- Updates docs/CI-CD.md to describe the new inputs and outputs
* chore(knowledge): nightly decay metadata + new f-2026-05-02-006 finding
- Routine decay/reward updates from running ao processes:
.agents/learnings/{2026-04-07,2026-04-19,2026-04-27}*.md
.agents/patterns/pre-tag-ci-validation.md
.agents/findings/f-2026-04-30-002.md (hit_count 2 -> 3, last_cited
2026-05-03)
- New finding f-2026-05-02-006 in registry: release helpers must filter
semver tags. Source: 2026-05-02 full-changelog post-mortem.
- RPI state files (execution-packet, ranked-packet, next-work) +
.agents/ao/last-processed brought current.
docs/INDEX.md (contract catalog) and docs/index.md (MkDocs landing) shared the
same case-folded name on case-insensitive filesystems, leaving the working tree
in a phantom-modified state and breaking contract-compatibility-gate when the
script read whichever file the OS resolved at run time.
Resolves TASK-1 + TASK-2 of .agents/plans/2026-04-26-resolve-docs-index-case-collision.md:
- Move catalog content from HEAD:docs/INDEX.md into docs/documentation-index.md
- Repoint contract validators (scripts/check-contract-compatibility.sh,
scripts/contract-orphans-allowlist.txt) and their tests at the new path
- Update navigation references across README.md, AGENTS.md, CLAUDE.md, and the
docs/ tree (newcomer-guide, CONTRIBUTING, CI-CD, plans/, positioning/,
templates/, contract examples)
- Replace stale docs/README.md mentions in CLAUDE.md / AGENTS.md / repo-execution
profile example with docs/index.md (the actual MkDocs landing)
Verification:
- bash scripts/check-contract-compatibility.sh -> 0 failures, 24 contracts catalogued
- bash tests/scripts/test-contract-compatibility-gate.sh -> 7/7 PASS (verified pre-rebase)
- bash tests/skills/test-repo-native-orchestration.sh -> 28/28 PASS (verified pre-rebase)
- git ls-files | awk casefold-dup scan -> empty
TASK-3 (casefold-collision guard script) and TASK-4 (worktree disposition) from
the plan remain to be done in a follow-up.
Adds a blocking windows-smoke job, native PowerShell smoke script, Windows docs updates, and moves a Unix-only RPI lock permission test out of the Windows test path.
Rename the athena skill to compile — a descriptive name that communicates
what it actually does. Extend with Karpathy's LLM Knowledge Bases architecture:
- New compile phase: LLM reads raw .agents/ artifacts and produces interlinked
markdown wiki at .agents/compiled/ with index.md, log.md, backlinks
- New lint phase: detects contradictions, orphan pages, stale claims, coverage gaps
- Pluggable compute backend via AGENTOPS_COMPILE_RUNTIME (ollama|claude|openai)
- Hash-based incremental compilation (only recompile changed sources)
- compile.sh engine with security fixes (no shell injection, path traversal guard)
- Full rename across 93 files: skills, docs, CLI, tests, hooks, scripts, codex
Existing Mine → Grow → Defrag cycle preserved as phases within the larger
compile workflow. No vector DB — compiled wiki IS the retrieval layer.
Fix right-side │ border alignment in box diagrams. Three fix types:
- Trailing space adjustment for border alignment
- Box border widening for content that exceeded width
- Bottom border dash count matching top border