Commit Graph

32 Commits

Author SHA1 Message Date
Bo 1601467387 chore(docs): gut dead-mechanism context poison from agent-facing docs (ag-sjz8 #gut-poison) (#764)
## What

Gut **context poison** — agent-facing docs that route a working agent at
DEAD mechanisms. This poisoned a live fleet-operating session (the bo
driver building the go-dark supervisor) into proposing `ao rpi` as a
continuity-loop worker. Found via a 5-way parallel poison fan-out.

**Scope: operational-surgical** (Bo's explicit call). Gut the
agent-facing *operational* guidance + *factual* errors; **LEAVE** the
README/`docs/3.0.md` product narrative (Gas-City-as-reference-substrate
is coherent, ADR-backed product design — a different altitude from Bo's
live fleet).

## Changes (10 files, surgical)

**Tier A — operational guidance (the poison that bit me):**
- `CLAUDE.md` Session Constraints: "route multi-phase work through `ao
rpi`" → the live substrate (NTM + MCP Agent Mail + `continuity-loop`);
`gc` reframed as optional-out-of-session, **not** the live substrate.
Kept the accurate "bridge REMOVED" + "load-bearing legacy" lines.
- `AGENTS.md`: dropped the deleted "scheduling daemon" (ADR-0009).
- `AGENTS-RUNTIME.md`: `ao rpi serve --help` → the real `ao` command
surface.

**Tier B — hookless-factual** (3.0 installs no hooks by default):
hookless banners on `ARCHITECTURE.md` + `reference.md` (surgical vs.
rewriting diagram internals); corrected SessionStart-hook prose in
`context-packet.md` + `vs-claude-flow.md`.

**Tier C — retired `/dream` shown as live:** marked retired in
`evolve`/`harvest`/`using-agentops` (compounding moved to Gas City).
`curate` **intentionally left** — its `--mode=dream` is the forward
replacement, not poison.

## Guardrails
- Does **not** claim `ao rpi` was deleted — the command still compiles
(`loop`/`phased`/`serve` exist); only its role as the *live workflow* is
corrected.
- registry.json unaffected (skill **bodies** only; `generate-registry.sh
--check` = OK).

## Evidence
`bash scripts/generate-registry.sh --check` → OK. Diff is 20 insertions
/ 16 deletions across 10 files.

Bounded-context: BC1-Corpus (agent-facing context docs)
Evidence: this PR diff + the parallel fan-out inventory
Closes: ag-sjz8

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-06 09:44:45 -04:00
Bo cfee2b078a docs(convergence): first-class Convergence section — The Reading + Ledger + Google SRE map (ag-4hf7 #google-sre-convergence) (#650)
## What

Establishes a first-class **`docs/convergence/`** section: the record of
the industry independently arriving at the structure AgentOps already
runs — kept distinct from the competitor map. Three surfaces:

1. **`the-reading.md`** — the *living thesis*. The argument (with
mechanism, firm-vs-forming consensus table, honest moat-risk, and a "how
to read a new signal" rubric) that the industry is converging and
**why**.
2. **`ledger.md`** — the dated *receipts* table (who/when/which
invariant). Seeded with Google SRE 2026.
3. **`google-sre.md`** — the per-party *encoding map*: 11 convergence
points → real AgentOps loci (8 encoded · 2 partial · 1 gap).
4. **`index.md`** — section hub framing the three.

## Why first-class, not under comparisons/

A vindication record is the *inverse* of a competitor grid — wrong to
parent it under "vs the competition." Radar = competitors in our lane;
Convergence = independents arriving from outside it. Promoted to its own
top-level nav section (`git mv`, history preserved; permalinks updated;
cross-links rewired both ways).

## Gaps surfaced (filed as beads)

| Bead | Point | Work |
|---|---|---|
| `ag-fjbu` | #3 | Adopt Bronze/Silver/Gold eval-tiering +
True-vs-Observed-Precision naming |
| `ag-wrom` | #8 | Formalize an L0–L4-style autonomy ladder for AgentOps
dispatch |
| `ag-7278` | #11 | Council: does coherent-arc need a fix-forward escape
hatch? (Google is ahead) |

## Verification

- All relative links across the convergence section + comparisons
pointers resolve.
- mkdocs nav + documentation-index updated; renames preserve history.

Closes-scenario: ag-4hf7#google-sre-convergence
Bounded-context: BC1-Corpus
Evidence: docs/convergence/the-reading.md
2026-05-31 18:48:45 +00:00
Bo 631b34465d docs(3.0): ag-p7j W3 — reframe peripheral docs to in-session (ag-p7j) (#528)
## What

Worker 3 of the ag-p7j 3-way swarm reconciling stale daemon/scheduler
references for AgentOps 3.0. This worker owns the **peripheral docs**
(comparisons, examples, runbooks, plans, brainstorms, the daemon-jobspec
RFC) — pure prose edits only.

The standalone daemon (`ao daemon` / `agentopsd`), scheduler (`ao
schedule`), and overnight runner (`ao overnight`) were **deleted** in
the 3.0 rearchitecture
([ADR-0009](https://github.com/boshu2/agentops/blob/main/docs/adr/ADR-0009-daemon-deletion-in-session-only.md)).
AgentOps is **in-session only**; out-of-session orchestration is
delegated to the **Gas City reference City**. This PR mirrors
`docs/3.0.md` across the peripheral surface.

## Files changed (12)

- **Comparisons** — reframe the "off-API daemon" *feature* claim to
off-API/off-vendor **in-session operation + Gas City out-of-session
dispatch**; drop the deleted `dream-run-contract` link:
  - `docs/comparisons/competition-rpi-memory-pipelines.md`
  - `docs/comparisons/competitive-radar.md`
  - `docs/comparisons/vs-everything-claude-code.md`
  - `docs/comparisons/vs-tons-of-skills.md`
- **Examples** — replace `ao daemon`/`ao schedule` snippets with
mayor-driven `ao rpi` dispatch on the reference City; reframe
"daemon-first" → "automation-first out-of-session orchestration":
  - `docs/examples/agentops-3-council-demo-storyboard.md`
  - `docs/examples/agentops-3-domain-practice-packet.md`
  - `docs/agentops-3-explainer-kit.md`
- **Patterns** — rewrite Pattern C from `ao daemon` log tailing to
**substrate (Gas City) event tailing**:
  - `docs/patterns/completion-notifications.md`
- **Runbooks** — add 3.0 historical banners, neutralize `ao daemon jobs
submit`/`agentopsd`/`ao overnight` instructions, drop deleted
daemon-contract refs; host systemd timer reframed as host-OS timing (not
an AgentOps scheduler):
  - `docs/runbooks/nightly-evolution.md`
  - `docs/runbooks/autonomy-runtime-cycle-1.md`
- **Plans / Brainstorms** — dated historical artifacts: one-line
historical note + neutralize only active "use `ao overnight`"
instructions; remove the deleted `agentopsd` code-map reference:
  - `docs/plans/2026-05-11-evolution-roadmap.md`
-
`docs/brainstorms/2026-04-12-compiled-knowledge-workspace-requirements.md`

`docs/rfcs/0002-jobspec-openapi-v0.md` already carried the requested
superseded/historical banner (body retained), so it needed no change.

## Gate results

- `markdownlint --config .markdownlint.json` (12 changed files):
**PASS**
- `tests/docs/validate-doc-release.sh`: **PASS**
- `mkdocs build --strict`: **PASS** (0 warnings/errors attributable to
changed files)
- All 13 new ADR/contract relative links resolve; **no links to deleted
daemon contracts** remain.
- Grep of changed files for `ao daemon|agentopsd|ao schedule|ao
overnight|ao plans|ao watch`: only historical banners, explicit
disavowals ("no AgentOps daemon"), surviving real script names
(`scripts/install-nightly-scheduler.sh`), and dated-brainstorm
descriptive context covered by its banner. No active "use X"
instructions remain.
- diff stat: 164 insertions / 101 deletions — proportionate, no
anomalous data loss.

Closes-scenario: ag-p7j#w3-peripheral
Bounded-context: BC1-Corpus
Evidence: docs/comparisons/competitive-radar.md
2026-05-24 21:20:11 -04:00
Bo f331c036ed Wave 1A-D: factory-claim-ledger reconciliation (soc-e4ulx) (#264)
* fix(reconcile): backfill README claim anchors (Wave 1A — soc-2ie9k)

Add markers for 5 ledger rows previously orphaned by soc-nybd README rewrite.
Validator scripts/check-factory-claim-ledger.sh now exits 0.

* feat(reconcile): extend claim ledger to Wave-0 comparison docs (Wave 1B — soc-s805h)

Add anchors plus ledger rows for the Wave-0-refreshed comparison docs that
lacked coverage: competitive-radar.md, vs-everything-claude-code.md, and
vs-tons-of-skills.md. Validator scripts/check-factory-claim-ledger.sh stays
at exit 0.

trust-factory.md and wiki-for-agents.md are Wave-0-shipped but live outside
the validator's hardcoded source set. Coverage there is deferred to Wave
1C/1D, where the source-set widening is in scope; details captured in
.agents/crank/SHARED_TASK_NOTES.md.

* feat(reconcile): extend ledger source-set to Wave-0 docs (Wave 1B follow-up — soc-s805h)

Add docs/trust-factory.md and docs/wiki-for-agents.md to the validator's
collect_repo_sources() set so the issue's listed Files: line is fully covered.
Add markers + ledger rows for AOP-CLAIM-TRUST-FACTORY-FIVE-STEP-PRIMITIVE
and AOP-CLAIM-WIKI-FOR-AGENTS-CORPUS-COMPILATION.

The ledger JSON diff is large because jq normalized inline `source` keys
to multi-line — semantics unchanged.

Validator scripts/check-factory-claim-ledger.sh exits 0.

* ci(reconcile): wire factory-claim-ledger validator as advisory job (Wave 1C — soc-lmww1)

Adds `factory-claim-ledger-strict (advisory)` job to .github/workflows/validate.yml:
- runs `bash scripts/check-factory-claim-ledger.sh` via continue-on-error: true
- emits {run_id, pr_number, verdict, surfaces_touched, timestamp} JSON observation
- publishes observation as workflow artifact (not committed to repo)
- merged_anyway / ledger_updated backfill is Wave 1E concern, documented in-job

Also adds `tests/integration/test-factory-claim-ledger-ci-job.sh` to lock in the
job shape (T1-T6 contract assertions) for Wave 1E to invert when promoting to
blocking.

Validator stays at exit 0 on this branch.

* docs(reconcile): document operator workflow for claim ledger (Wave 1D — soc-4ou2q)

Add an Operator Workflow section to the factory-claim-ledger contract doc
covering all five closed enums (validation_level, release_posture,
evidence_status, authority_state, promotion_state), how to add/update/retire
claim rows, what each --strict failure mode means in operator terms, and a
worked example using AOP-CLAIM-TRUST-FACTORY-FIVE-STEP-PRIMITIVE.

Also update the Source Set list to include docs/trust-factory.md and
docs/wiki-for-agents.md (added in Wave 1B follow-up).

Validator: PASS. mkdocs build --strict: exit 0.

* ci(reconcile): wire factory-claim-ledger-strict into summary + AGENTS parity (Wave 1C followup — soc-lmww1)

The Wave 1C commit (82260e97) added the factory-claim-ledger-strict
advisory job to validate.yml but skipped two parity surfaces:

- summary.needs did not list it, so the aggregator never waited for it
  and AGENTS↔workflow set-diff parity (validate-ci-policy-parity.sh)
  flagged drift.
- AGENTS.md "CI Jobs" + "Advisory Job Triage SLAs" tables had no
  matching row, so the validator's blocking/non-blocking set diff
  reported the new job as a workflow-only addition.

Fix:

- validate.yml: add factory-claim-ledger-strict to summary.needs and to
  the summary echo block. The job stays advisory because of its own
  step-level continue-on-error: true.
- AGENTS.md: add it to the prose non-blocking list (line 72) and both
  the SLA table and the CI Jobs table — the SLA table sets a 14d
  triage SLA and explicitly defers blocking promotion to Wave 1E.

Validated:

- bash scripts/validate-ci-policy-parity.sh -> PASS (46 jobs;
  6 non-blocking)
- bash scripts/test-ci-deterministic-gates.sh -> 4/4 pass
- bash tests/integration/test-factory-claim-ledger-ci-job.sh -> 6/6 pass
- bash scripts/check-factory-claim-ledger.sh -> PASS

* fix(eval): bump pre-push-gate-governance bats count 50->51 after ce9d42f8

Commit ce9d42f8 (fix(pre-push): keep fast two-pass advisory scoped) added
a 51st BATS test ("pre-push-gate.sh --fast two-pass keeps pass 2 fast and
skips evals for non-eval changes") but did not update the contract-canary
expectation in evals/agentops-core/pre-push-gate-governance.json, which
still pinned "1..50". Result: agentops-core.pre-push-gate-governance
canary failed locally with:

  pre-push-bats-suite: stdout does not contain "1..50"

bats tests/scripts/pre-push-gate.bats reports 1..51 with all tests
passing, so the count is correct; the eval pin just needs to track it.

Validated:

- bats tests/scripts/pre-push-gate.bats -> 51/51 pass, "1..51" first line
- bash scripts/pre-push-gate.sh --fast -> Pass 1 PASSED, Pass 2 PASSED
- contract canaries gate flips from FAIL -> ok
2026-05-07 22:50:36 -04:00
Bo ab479e2670 docs(positioning): wiki-framing sweep across all surface docs (soc-9xn0) (#262)
* docs(positioning): wave 1 — README hero rewrite to wiki framing (soc-nybd)

Apply the locked decisions D1–D10 from the positioning doc-sweep packet:

- D1 headline: "A wiki for your agents. Built so you own the moat."
- D2 wiki-framing opener; D3 moat statement + "shovel" anchor
- D4 non-positioning ("AgentOps is not a coding harness")
- D5 receipts block (timestamped 2026-05-04 stable snapshot)
- D6 enterprise-pattern statement (pattern claim, no company names)
- D7 "What if the labs ship this natively?" section before Contributing
- D8 Notion vs AgentOps comparison table (7 rows)
- D9 SE → Context translation table (11 rows) replacing prior SDLC/CDLC table
- D10 line budget: 420 → 295 lines

Drops: intra-page nav bar, Validate/Nightly badges (stars retained),
"Competitive Positioning" section, 12-Factor Doctrine 4-tier table (now
single sentence linking 12factoragentops.com), mermaid diagram, AOP-CLAIM
markers, cross-runtime <details> block.

Forward references to docs/wiki-for-agents.md and docs/trust-factory.md
will resolve when Wave 4 lands those new files.

Source: .agents/discovery/2026-05-07-positioning-doc-sweep.md
Epic: soc-9xn0

* docs(positioning): wave 2 — strategic doc alignment to wiki framing (soc-ylp9, soc-rnbf, soc-x3b6, soc-b1r3)

Align PRODUCT.md, GOALS.md, docs/index.md, docs/agentops-brief.md with
the README's locked positioning thesis.

PRODUCT.md (soc-ylp9):
- Mission opener: wiki framing replaces "keeps the books / compiles the
  context / compounds the corpus"
- "What the Product Actually Is" leads with wiki framing before four-layer model
- New "What if the labs ship this natively?" section (D7 verbatim with
  "Anthropic's Managed Agents")
- Evidence section timestamped: corpus wipe on 2026-05-07, durability fix
  tracked in soc-rv5p
- Cross-links to docs/trust-factory.md (forward to Wave 4)
- last_reviewed: 2026-05-06 → 2026-05-07

GOALS.md (soc-rnbf):
- Lede: "A wiki for your agents — repo-native, version-controlled,
  mechanically maintained"
- New North Star: "The wiki maintains itself: every session contributes to
  .agents/ by default"
- New directive #11: corpus durability (tag corpus-state, soc-rv5p)
- All 10 prior directives preserved

docs/index.md (soc-x3b6):
- Hero rebuilt: D1 headline + subhead + D2 wiki framing + D3 italicized
  moat + "AgentOps is the shovel. Start digging."
- mkdocs hero buttons (Install / See It Work / GitHub) preserved
- Body sections unchanged

docs/agentops-brief.md (soc-b1r3):
- Opener swapped to D2 + D3 (wiki framing + shovel anchor)
- New "What if the labs ship this natively?" paragraph (D7 verbatim)
- See-also forward links to docs/trust-factory.md, docs/wiki-for-agents.md

Source: .agents/discovery/2026-05-07-positioning-doc-sweep.md
Epic: soc-9xn0

* docs(comparisons): wave 3 — comparison surface refresh + 2 new lane docs

Refresh 3 existing comparison docs to current competitive state and add
2 new comparison docs covering volume-marketplace and cross-harness lanes.

Refresh:
- competitive-radar.md (soc-33kk): 7-competitor lane table, 6 differentiators
  (persistent corpus, off-API daemon, multi-model council, model-independent
  phase routing, context-engineering vocabulary, honest empirical disclosure),
  5-lane segmentation, last_reviewed → 2026-05-07
- vs-compound-engineer.md (soc-al8s): CE current state (37 skills/51 agents/
  7-phase/10-target), new model-independent phase routing row, last_reviewed
  added
- vs-superpowers.md (soc-zhig): Anthropic marketplace fact, 29K+ stars, wiki
  framing in cross-session memory section (25-year-old idea), last_reviewed
  added

NEW:
- vs-tons-of-skills.md (soc-fmkw): volume-marketplace lane comparison —
  Tons-of-Skills (425 plugins, 2,810 skills, 200 agents, CCPI grading) vs
  AgentOps as different categories. 90 lines.
- vs-everything-claude-code.md (soc-jhtu): cross-harness-parity lane
  comparison — everything-claude-code (48 subagents, 182 skills, 5-runtime
  DRY parity) vs AgentOps's per-phase model routing. Includes credibility-
  move flag on the unverified 140K+ stars / 21K+ forks claim. 181 lines.

Source: .agents/discovery/2026-05-07-positioning-doc-sweep.md, council
research at .agents/council/2026-05-07-research-readme-positioning.md
Epic: soc-9xn0

* docs(positioning): wave 4 — bridge docs + index update (soc-momx, soc-envj, soc-e031)

Two new bridge documents that complete the positioning surface, plus the
documentation index update to make all 4 new docs reachable.

NEW docs/trust-factory.md (soc-momx, 112 lines, 854 words):
The 5-step trust-factory primitive (Identity → Reproducibility → Evaluation
→ Evidence → Recovery) mapped to AgentOps mechanisms. Bridge document for
engineering leads in regulated environments who think in trust-factory
vocabulary already. Pairs with the wiki framing as the alternative buyer
view.

NEW docs/wiki-for-agents.md (soc-envj, 93 lines, 824 words):
Standalone wiki framing — "wikis aren't new, the novel part is making the
discipline mechanical so it actually happens." Uses the D8 Notion comparison
table verbatim, covers the .agents/ directory layout, and explains why most
wikis fail (write-tax + bitrot) and how AgentOps inverts the pattern.

docs/documentation-index.md (soc-e031):
- Added "Bridge / framing docs" sub-list under Four Product Layers with
  trust-factory.md and wiki-for-agents.md (visible above the fold)
- Added vs-tons-of-skills.md and vs-everything-claude-code.md to existing
  Comparisons section (alphabetical with other vs-* entries)
- 222 → 226 entries; 309 → 316 lines

Source: .agents/discovery/2026-05-07-positioning-doc-sweep.md
Epic: soc-9xn0

* docs(positioning): wave 5 — body doc cross-links + light framing align (soc-igqq, soc-chkd, soc-cout)

Light touch on three linked body docs to align with the wiki framing
without restructuring their substance.

docs/cdlc.md (soc-igqq):
- Lede leads with "Software engineering took 50 years..." + the 11-row
  SE→Context translation table (D9 verbatim)
- "CDLC" acronym deferred to body intro after the table establishes the
  concept (acronym kept in 11+ body uses)
- Companion docs section cross-links to wiki-for-agents.md, trust-factory.md
- 248 → 273 lines

docs/the-science.md (soc-chkd):
- Practitioner-facing pointer under TL;DR: "see [Trust Factory]" +
  "[A wiki for your agents]"
- Companion docs section
- 671 → 678 lines, science content intact

docs/positioning/devops-for-vibe-coding.md (soc-cout):
- Primary tagline → wiki framing ("A wiki for your agents — built so you
  own the moat"); secondary recast as DevOps-lineage tagline
- Category line acknowledges DevOps lineage as historical, not category label
- Date 2026-01-31 → 2026-05-07; version 1.2.0 → 1.3.0
- Cross-link to ../wiki-for-agents.md
- DevOps argument preserved (14 DevOps mentions intact, 6-differentiators
  table untouched)
- 343 → 351 lines

Source: .agents/discovery/2026-05-07-positioning-doc-sweep.md
Epic: soc-9xn0

* docs(positioning): wave 6 — fix mkdocs --strict link warnings (soc-uc3w)

The wave 4 bridge docs and wave 3 competitive-radar refresh used relative
links that escape the mkdocs docs/ tree:

- ../README.md and ../PRODUCT.md cross-links → switched to absolute
  https://github.com/boshu2/agentops/blob/main/{README,PRODUCT}.md
  (matches existing docs/documentation-index.md convention)
- ../../.agents/council/ research link → demoted to plain-text path
  reference (the .agents/ tree is gitignored runtime state, not a
  publishable doc surface)

Verified: scripts/docs-build.sh --check now exits 0 with "OK: mkdocs
build --strict passed". Five strict-mode warnings cleared.

Wave 6 validation results (12-item checklist):
- mkdocs --strict: PASS
- competitive-freshness: PASS (8/8 docs ≤45 days)
- README ≤ 300: 295 lines
- D1-D10 visible across README, PRODUCT, GOALS, docs/index, docs/agentops-brief, docs/wiki-for-agents
- Cross-links: README→{wiki-for-agents, trust-factory}, PRODUCT→{trust-factory, wiki-for-agents}
- New comparison docs (vs-tons-of-skills, vs-everything-claude-code) exist
  and are linked from competitive-radar.md and documentation-index.md
- "operational discipline" residues are historical-only (release notes,
  origin-story, devops-for-vibe-coding messaging hierarchy)

Note: ao goals measure shows ambient fails unrelated to this sweep — the
tool is cwd-sensitive and reports "No such file or directory" for scripts
that exist (separate bug, not introduced by this work).

Source: .agents/discovery/2026-05-07-positioning-doc-sweep.md
Epic: soc-9xn0
2026-05-07 21:04:47 -04:00
Bo 2e4653938b feat: factory claim ledger with proof taxonomy (soc-kizn.1) (#256)
* feat(docs,scripts,tests): factory claim ledger with proof taxonomy (soc-kizn.1)

Lands the claim-to-proof ledger for the factory reconcile program (epic
soc-kizn). Maps every claim-bearing paragraph in 9 public source docs to its
current evidence, missing proof, owner issue, validation level, release
posture, and anti-overclaim wording. Enforced mechanically.

Scaffolded contract:
- docs/contracts/factory-claim-ledger.md — operator-facing contract doc
- docs/contracts/factory-claim-ledger.schema.json — JSON Schema with closed
  enums for validation_level, release_posture, evidence_status,
  authority_state, promotion_state
- docs/contracts/factory-claim-ledger.example.json — 24-row authoritative
  ledger covering README, PRODUCT, GOALS, docs/index, docs/agentops-brief,
  docs/assurance-profile, docs/software-factory, docs/comparisons/**,
  docs/contracts/factory-*.md
- docs/assurance-profile.md — new authoring surface; high-assurance posture
  doc with three claim markers
- scripts/check-factory-claim-ledger.sh — validator (--strict mode rejects
  unledgered high-claim paragraphs in scanner sources, mismatched markers,
  orphan rows, L2/L3 rows without evidence_artifacts, unknown enum values)
- tests/fixtures/factory-claim-ledger/ — positive + 4 negative fixtures
  (missing-marker, orphan-row, unknown-enum, l2-no-evidence) exercise the
  validator's reject paths under --strict

Source-doc claim markers:
- GOALS.md, PRODUCT.md, README.md, docs/index.md, docs/agentops-brief.md,
  docs/software-factory.md, docs/contracts/factory-admission.md,
  docs/contracts/factory-yield-ledger.md, and 4 docs/comparisons/* now carry
  <!-- agentops:claim:AOP-CLAIM-* --> markers adjacent to the matching claim
  paragraphs

Acceptance: bash scripts/check-factory-claim-ledger.sh --strict exits 0;
the bead validation block requires this and the new fixture suite verifies
strict-mode reject paths.

Anti-overclaim discipline: L0/L1 claims stay described as
roadmap/contracted_l0/locally_checked_l1; only L2/L3 rows with
evidence_artifacts may use "validated" wording in source docs.

* fix(tests): add demoted-claim row to positive fixture (soc-kizn.1)

Bead acceptance requires fixtures cover downgrade/demotion behavior. Adds
FIXTURE-DEMOTED-CLAIM with promotion_state=demoted, evidence_status=stale,
validation_level=L0, release_posture=roadmap, plus matching README marker.

Validator --strict still PASS.

* fix(docs): keep claim ledger validator path mkdocs-safe

* chore(docs): normalize claim ledger fixture endings

* fix(docs): add four-layers claim row + marker (rebase fixup, soc-kizn.1)

Rebase onto main pulled in sx99's new four-layers paragraph in
docs/agentops-brief.md (line 11), which contains "validated" without a
marker. Adds AOP-CLAIM-BRIEF-FOUR-LAYERS row to the ledger and injects the
matching marker. Validator --strict back to PASS.
2026-05-07 17:58:23 -04:00
Boden Fuller 88f6b83350 docs(positioning): close yjzp.9 with empirical Δ=0; pivot honest claims (epic soc-sx99)
Closes soc-yjzp.9 (workbench A/B counter-stat) by publishing the empirical
result instead of a placeholder positive number, and lands the Wave 1 doc
honesty pivot from the epic soc-sx99 strategic audit.

# Empirical result (soc-yjzp.9)

ao eval run --baseline-mode=both produced Δ=+0.0000 across 12 workbench
cases (skill-on 12/12, skill-off 12/12). At v1 task difficulty (off-by-one
bugs, simple validators, basic SQLi) the AgentOps hook layer is non-
differentiating — the substrate doesn't surface skill value at this floor.
The honest publishable line is the zero, not a fabricated positive number.
Substrate v2 (realistic agent task difficulty) is roadmap; that's a
multi-week design effort tracked in plan-2026-05-04, not a yjzp.9-sized
bead. Counter-stat artifact tracked at
evals/workbench/results/2026-05-06-yjzp9-counterstat.json.

# Doc honesty pivot (soc-sx99 Wave 1)

Strategic audit at .agents/research/2026-05-07-agentops-strategic-positioning.md
found 5 audit-pivot-re-audit cycles in 6 weeks with byte-identical "remaining
gap" wording across PRODUCT.md versions. Operator-confirmed decisions:

- PRODUCT.md: drop the unsupported "4,940 learnings, 1,195 patterns, 40
  planning rules" line (no on-disk corpus reconciles, including the user
  vault). Replace with qualitative claim. Cite Δ=+0.0000 with substrate
  framing in the Anthropic Managed Agents Outcomes row. Reframe pattern-
  to-skill row as deferred (synthesis layer; .agents/skill-drafts/ does
  not exist on disk despite earlier "review-only draft generation" claim).

- GOALS.md: three-gap contract proof table reframed. Gap 1 stays
  Currently Enforcing (hook-preflight, go-vet-clean, go-complexity-
  ceiling, security-gate, contract-compatibility). Gap 2 + 3 split:
  scripts that go green in CI/pre-push stay enforcing; flywheel-
  compounding (long-cycle, corpus-state by design), flywheel-proof
  (cross-session evidence), compile-freshness, goals-validate,
  wiring-closure move to a Roadmap column with "declared, not yet
  enforced" framing. Honesty rule documented above the table.

- README.md: hero reframed to "context compiler + validation harness
  with cross-runtime skill packaging. The daemon is the always-on
  dream." Surfaces the schedulable daemon (already shipped via
  ao schedule + ao daemon + nightly.yml + the user's headless dream/
  evolution sessions) as a co-equal flagship rather than a power-user
  feature.

- docs/comparisons/competition-rpi-memory-pipelines.md: Outcomes row
  matches the new PRODUCT.md framing.

# Why this lands together

Per the recurrence finding (f-2026-05-07-positioning-audit-cycle-
recurrence): filing more beads to fix the gaps without dropping the
overpromised claims first is what produces the audit cycle. The claim
removal precedes the gap-fill work. soc-sx99 epic Waves 2 (daemon
surfacing recipe pack) and 3 (gap-filler jobs: feedback-loop --drain,
pattern filename repair) follow as separate PRs.

# Verification

bash tests/docs/validate-doc-release.sh: PASS

# Cross-references

- Closes: soc-yjzp.9
- Epic: soc-sx99 (this is Wave 1, doc honesty)
- Research: .agents/research/2026-05-07-agentops-strategic-positioning.md
- Finding: f-2026-05-07-positioning-audit-cycle-recurrence (registered)
- Related: soc-x7hy (MemRL signal strengthening, filed earlier today)
2026-05-07 01:22:40 -04:00
Boden Fuller cd35aec2d6 docs(parity): reframe Outcomes as shipped at three scopes (post-council)
3-judge independent council audit (post-mortem, .agents/council/2026-05-06-post-mortem-soc-yjzp.md)
found AgentOps already has Outcomes capability at three scopes:

  1. Project — GOALS.md (rubric) + ao goals measure (each gate runs as
     separate subprocess, cli/internal/goals/measure.go:132-164) + /evolve
     (iterates worst-failing gate until pass, skills/evolve/SKILL.md:379-388)
  2. Plan — /pre-mortem council judges as separate-context graders with
     PASS/WARN/FAIL verdict + retry-on-FAIL up to 3 attempts
  3. Code — /vibe council judges, same separate-context grading shape

Update PRODUCT.md Market Convergence row and docs/comparisons capability
mapping to reflect "Shipped" rather than "Partial." Original framing
("unifying ao outcomes run verb is in flight") was based on assuming a
missing primary surface; council audit found that surface to be a thin
façade over already-shipped capability, not a primary gap.

The actual remaining work is the proof-point counter-stat (AgentOps
skill-on vs skill-off A/B against eval workbench), not the capability.
Filed as soc-yjzp.9. Closes soc-yjzp.6 wontfix with the same logic.

Refs: post-mortem at .agents/council/2026-05-06-post-mortem-soc-yjzp.md
Closes-issues: soc-yjzp.6 (wontfix)
Refs-epic: soc-yjzp
2026-05-07 01:22:40 -04:00
Boden Fuller 7a7a5f054a docs(parity): refresh comparison surfaces for Anthropic Managed Agents launch (epic soc-yjzp Wave 1)
Anthropic shipped dreaming + outcomes + multiagent orchestration + webhooks in
Managed Agents on 2026-05-06. PRODUCT.md's Strategic Bet frames this as the
validation event for the off-API + cross-vendor wedge, not a competitive
threat. Refresh comparison surfaces while the announcement window is fresh.

- docs/comparisons/competition-rpi-memory-pipelines.md: add Anthropic Managed
  Agents (May 2026) section after Karpathy LLM Wiki Pattern; add row to
  comparison matrix; close Bottom Line with off-API + cross-vendor wedge
  (mechanical acceptance: grep for 'off.API|cross-vendor|off the API' in
  the new section returns 3 matches, ≥2 required by pre-mortem fix).
- PRODUCT.md: bump last_reviewed to 2026-05-06; add Managed Agents Dreaming
  and Outcomes rows to Market Convergence table; tweak post-table paragraph
  to namecheck the launch as the textbook example of harness-layer
  commoditization.
- skills/{dream,evolve,forge}/SKILL.md + skills-codex/{dream,evolve}/SKILL.md:
  add cross-vendor analog line so readers arriving from the announcement
  immediately recognize the equivalent.
- skills-codex/*/.agentops-generated.json: hash regen via
  scripts/regen-codex-hashes.sh.

Note: skills-codex/forge/SKILL.md was reverted by a linter (intentional —
likely a template/length constraint upstream); codex-parity-drift and
competitive-freshness gates pass locally.

Closes-issues: soc-yjzp.1, soc-yjzp.2, soc-yjzp.3
Refs-epic: soc-yjzp

Artifacts:
- .agents/design/2026-05-06-design-managed-agents-parity.md (PASS 2.8/3.0)
- .agents/research/2026-05-06-managed-agents-parity.md
- .agents/plans/2026-05-06-managed-agents-parity.md
- .agents/council/2026-05-06-pre-mortem-managed-agents-parity.md (WARN, 6 fixes propagated)
2026-05-07 01:22:40 -04:00
Boden Fuller 08edbc84a8 docs: align vocabulary to three-layer product model across docs and README
Replace "bookkeeping, validation, primitives, and flows" with the three
product layers (Context Compiler, Validation Gates, Knowledge Flywheel) in
core docs, README skills table, and comparison docs. Adds three-layer
comparison tables to all 5 vs-*.md files and a navigation section to
documentation-index.md.
2026-05-04 15:08:33 -04:00
Boden Fuller 342a8fc010 release: restore prep state and plan zero-trust gate 2026-05-02 20:10:30 -04:00
Bo 9b08fb933d refactor(cli): go cli quality discovery batch (gc-bridge, json contracts, leaf-help smoke) (#162)
* docs: add go cli quality discovery plan

* fix(cli): harden gc bridge version parsing

* docs(go): align complexity policy with gates

* docs(cli): classify command surface

* fix(cli): enforce json output contracts

* feat(cli): expand completion coverage

* refactor(cli): pilot badge options writer

* refactor(cli): inject contradict output writer

* refactor(cli): inject notebook update writer

* fix(cli): enable gc runtime smoke coverage

* fix(cli): align gc bridge with gascity v1

* Release v2.39.0

* fix(tests): align next-work schema test with widened type enum

Commit ed35c47f added `docs` and `chore` to the script's VALID_TYPES,
but tests/scripts/check-next-work-schema-rows.bats:42 still used
`type:"docs"` as its supposed-to-be-rejected example, so the test
now passes through the validator — `bats-tests` has been red on
main since.

Switch the rejected-type example to `finding`, which is still
outside the enum and is also the canonical example cited in the
script's own header comment ("type=finding ... caught at push time").

Local: 11/11 in tests/scripts/check-next-work-schema-rows.bats pass.

* docs: capture finding generator postmortem (#157)

* fix(rpi): sort verdicts deterministically in context and status helpers (#158)

BuildPhaseContext and JoinVerdicts iterated the verdicts map directly,
producing non-deterministic output across runs. Sort keys before
rendering so prompt injection and status logs are reproducible.

Closes council finding W-7 (context-orchestration-leverage batch). The
related buildHandoffContext path was already fixed to delegate to
FormatVerdicts (which sorts); this completes the remaining helpers.

- cli/internal/rpi/status.go: sort keys in JoinVerdicts
- cli/internal/rpi/phased_context.go: sort keys in BuildPhaseContext
- tests: replace "ordering not deterministic" waivers with exact-order
  asserts and add a 50-run stability check

https://claude.ai/code/session_01Qw4bZvXUNuLs8Rp1j1homB

Co-authored-by: Claude <noreply@anthropic.com>

* fix(codex): audit noisy hook injections (#159)

* docs: add competitive radar (#160)

* feat(agents): harden operator control plane (#161)

* docs(discovery): plan agents control plane hardening

* feat(agents): harden operator control plane

* Release v2.39.0

* fix(tests): align next-work schema test with widened type enum

Commit ed35c47f added `docs` and `chore` to the script's VALID_TYPES,
but tests/scripts/check-next-work-schema-rows.bats:42 still used
`type:"docs"` as its supposed-to-be-rejected example, so the test
now passes through the validator — `bats-tests` has been red on
main since.

Switch the rejected-type example to `finding`, which is still
outside the enum and is also the canonical example cited in the
script's own header comment ("type=finding ... caught at push time").

Local: 11/11 in tests/scripts/check-next-work-schema-rows.bats pass.

* docs: capture finding generator postmortem (#157)

* fix(rpi): sort verdicts deterministically in context and status helpers (#158)

BuildPhaseContext and JoinVerdicts iterated the verdicts map directly,
producing non-deterministic output across runs. Sort keys before
rendering so prompt injection and status logs are reproducible.

Closes council finding W-7 (context-orchestration-leverage batch). The
related buildHandoffContext path was already fixed to delegate to
FormatVerdicts (which sorts); this completes the remaining helpers.

- cli/internal/rpi/status.go: sort keys in JoinVerdicts
- cli/internal/rpi/phased_context.go: sort keys in BuildPhaseContext
- tests: replace "ordering not deterministic" waivers with exact-order
  asserts and add a 50-run stability check

https://claude.ai/code/session_01Qw4bZvXUNuLs8Rp1j1homB

Co-authored-by: Claude <noreply@anthropic.com>

* fix(codex): audit noisy hook injections (#159)

* docs: add competitive radar (#160)

* fix(merge): drop unused AgentsDoctorError ref and prune allowlist entries without production refs

---------

Co-authored-by: Claude <noreply@anthropic.com>

* fix(merge): resolve conflicts by taking PR's refactored contradict/codex_runtime, main's overnight test schema

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-26 23:09:48 -04:00
Bo aae3f1a434 docs: add competitive radar (#160) 2026-04-26 22:58:33 -04:00
Boden Fuller 4db4fded24 Release v2.39.0 2026-04-26 22:15:14 -04:00
Boden Fuller 8b1bdc1c30 fix(docs): repair strict docs links 2026-04-26 09:41:54 -04:00
Boden Fuller f53305efa5 docs(comparisons): add competition memory pipeline RPI 2026-04-25 18:15:19 -04:00
Boden Fuller 5b9cd5520c Release v2.38.0 2026-04-22 19:35:48 -04:00
Boden Fuller 816a36d83f docs: align box-drawing vertical lines in ASCII art
Systematic pass over 104 markdown files with box-drawing characters.
Fixed 15 files where interior `│` / outer `┌┐└┘` / divider `┬┴` columns
were off by 1-2 cols from their reference row. Zero content changes —
only whitespace and `─` fill chars moved to recover column alignment.

## Files fixed

**docs/** — CI-CD.md, agentops-system-map.md, brownian-ratchet.md,
context-packet.md, curation-pipeline.md, the-science.md,
comparisons/README.md, comparisons/vs-claude-flow.md

**skills/** — SKILL-TIERS.md, swarm/SKILL.md,
crank/references/fire.md, standards/references/test-pyramid.md

**skills-codex/** — crank/references/fire.md,
quickstart/references/full-catalog.md,
standards/references/test-pyramid.md

## Common failure modes found

- Off-by-one closing corners (e.g., `└───────── ┘` with stray space → `└──────────┘`)
- Box width vs content width mismatch (interior row 1-2 chars wider than its `┌┐` box)
- Diverging canonical widths across rows (widened the narrow rows rather
  than truncate content)
- T-junctions (`┬` / `┴`) not aligned with `│` rows above/below

## Scope preserved

- Tree diagrams (`├── file.md` / `│   └── child.md`) — intentional
  variable-width indentation, left alone
- Markdown pipe tables — not ASCII art, not touched
- Content of labels/box text — unchanged

Verified: `scripts/docs-build.sh --check` (mkdocs strict) passes clean.
2026-04-19 15:11:31 -04:00
Boden Fuller cc6750c4e8 feat(docs,skills): rebuild Pages site with MkDocs Material + harden RPI orchestrator delegation contract
## Docs site — boshu2.github.io/agentops

- Replace Jekyll minima with MkDocs Material (slate dark palette default)
- Landing hero scoped to .landing-hero (no gradient bleed on inner pages)
- Section landings (getting-started, architecture, reference, contracts, levels) with narrative ledes
- Generate skill catalog + per-skill pages from skills/*/SKILL.md at build
- Generate CLI reference from cli/docs/ at build (fails build on missing source)
- Fix every internal link via one-shot migration (scripts/migrations/2026-04-19-fix-docs-links.py)
- Wire mkdocs build --strict into pre-push gate (Check 25a)
- Replace .github/workflows/pages.yml with .github/workflows/docs.yml (actions/deploy-pages)
- README + docs/CONTRIBUTING updated with docs-build toolchain on-ramp
- tests/docs/validate-links.sh patched to understand mkdocs-generated paths

## RPI orchestrator strict-delegation contract

- Strict sub-skill delegation is now the default for /rpi, /discovery, /validation. No --full flag — always on.
- Canonical contract in skills/shared/references/strict-delegation-contract.md (plus Codex mirror)
- Forged learning with detection phrases + corrective actions (ao-inject-ready)
- Rename --no-lifecycle -> --no-scaffold in /discovery (Claude + Codex) with deprecation alias through v2.40.0
- Harden inline-work hotspots with orchestrator-owned markers in /crank STEPS 3a.3, 6.5, 8.7 + Inline Work Policy footer
- Flag consistency: --auto and --interactive scopes documented; --complexity syntax formalized
- CHANGELOG [Unreleased] documents + scaffolds; runtime hook enforcement explicitly deferred

## fix(hooks): go-test-precommit skips when no Go files staged

- Previously ran go vet + go build unconditionally, blocking non-Go commits when Go toolchain was missing or at a different version
- Now checks staged diff and exits cleanly if no *.go or go.{mod,sum,work} files are staged
- Applied to both hooks/ (source) and cli/embedded/hooks/ (synced)

Provenance: full RPI lifecycle with strict delegation at every phase boundary (Phase 1 Skill(discovery) -> Phase 2 Skill(crank) -> Phase 3 Skill(validation) -> Skill(vibe), Skill(post-mortem), Skill(retro)).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 10:37:58 -04:00
Boden Fuller a5b6f468fb Release v2.37.2 2026-04-15 20:09:11 -04:00
Boden Fuller 98671975ef Release v2.37.1 2026-04-15 00:13:04 -04:00
Boden Fuller e612076027 Release v2.37.0 2026-04-14 17:58:10 -04:00
Boden Fuller a08bc54abc Release v2.36.0 2026-04-09 23:43:51 -04:00
Boden Fuller 4fe431914a docs: remove devops tagline from framing 2026-04-09 14:13:09 -04:00
Boden Fuller f8592472d5 docs: align operational layer framing 2026-04-09 14:09:20 -04:00
Boden Fuller 3e6fef727e fix(ci): remove duplicate frontmatter in vs-superpowers, fix index.md links
- vs-superpowers.md had duplicate YAML frontmatter causing markdownlint MD003
- index.md used permalink routes instead of file paths, breaking doc-release link checker
2026-04-08 11:32:05 -04:00
Boden Fuller 743b5f2300 docs(comparisons): refresh competitive analysis + GitHub Pages SEO
- Update all 5 comparison docs to April 2026 state:
  GSD v1.34 (advisor mode, multi-repo), Compound Engineer (stack-aware routing),
  Claude-Flow rebranded to Ruflo v3.5 (complete rebuild), Superpowers (skills
  repo split, 3 new platforms), SDD going mainstream (AWS Kiro, GitHub Spec Kit)
- Add SEO frontmatter (title, description, permalink) to all comparison docs
- Add Jekyll _config.yml with sitemap + seo-tag plugins
- Add GitHub Pages deploy workflow (docs/comparisons paths trigger)
- Add index.md landing page with comparison matrix

Implements: na-gtm.16
2026-04-08 11:26:22 -04:00
Boden Fuller 03a97978c5 fix(docs): align ASCII box-drawing diagrams across 23 files
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
2026-03-29 07:55:25 -04:00
Boshu2 401a80310c feat(skills): post-mortem quick wins from competitive integration
- Auto-copy references to skills-codex in regen-codex-hashes.sh
- Add line-count check and codex parity step to plan template
- Add --fast-path flag to plan Flags table
- Create reviewer-config-example.md for council
- Major rewrite of vs-gsd.md (GSD v1.27 is no longer lightweight)
- Moderate update of vs-compound-engineer.md (ideation, refresh, 10 runtimes)
2026-03-21 16:40:32 -04:00
Boden Fuller 378614573c docs: sharpen positioning and restore compound engineer comparison 2026-03-07 06:57:44 -05:00
Boden Fuller ce037a4466 docs: consolidate RPI to 3-phase model, fix stale references and vs-gsd pipeline 2026-02-22 14:52:52 -05:00
Boden Fuller 37d4b5b2ae Merge branch 'codex/rpi-supervisor-cli' into main 2026-02-21 19:41:50 -05:00