Commit Graph

65 Commits

Author SHA1 Message Date
Bo 6d5d111faf feat(skills): land four-vendor skill corpus (#803)
## Summary
- Lands the AgentOps skill corpus across source and Codex wrappers,
including Gemini image targets.
- Integrates the skill branch onto current origin/main and refreshes
generated manifests/catalogs.
- Normalizes local next-work queue enum drift and fixes shellcheck in
alias-collision validation.

## Validation
- bash scripts/regen-all.sh --check
- bash scripts/validate-skill-schema.sh
- bash tests/skills/test-token-budgets.sh
- bash tests/skills/run-all.sh
- bash scripts/audit-codex-parity.sh && bash
scripts/validate-codex-override-coverage.sh && bash
scripts/validate-codex-generated-artifacts.sh --scope worktree && bash
scripts/validate-codex-api-conformance.sh && bash
scripts/validate-codex-runtime-sections.sh && bash
scripts/lint-codex-native.sh
- bash skills/heal-skill/scripts/heal.sh --strict
- PRE_PUSH_SKIP_MKDOCS=1 bash scripts/pre-push-gate.sh --fast

MkDocs strict remains skipped locally via the documented
PRE_PUSH_SKIP_MKDOCS=1 override because the repo currently emits
repo-wide strict-link warnings unrelated to this landing; CI remains
authoritative.
2026-06-06 23:44:42 -04:00
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 78fc0e64f5 docs: de-hook the 6 big operator/architecture docs (ag-t1ca #big-files) (#711)
## What

Completes the hooks-runtime decoupling (ag-t1ca) — the 6 large files,
each de-hooked by a dedicated verify-first pass (no `hooks/` dir, no
`hooks.json`, `ao hooks` absent, hook `.sh` files absent; CI = the
authoritative gate).

| File | Reframe |
|---|---|
| ARCHITECTURE.md | hooks-as-enforcement / `hooks/ # 12 hook scripts`
dir / "Session Hooks" → CI gates + `ao` commands + "Session Lifecycle";
82-skill breakdown intact |
| agentops-system-map.md | "52 Skills/121 CLI/13 hook entries" →
"82/76/hookless (CI-gated)"; hook-enforcement section → hookless mapping
|
| context-lifecycle.md | hook-file citations → real mechanisms (CI gate
+ `/pre-mortem`,`/validate`,`/post-mortem` + `ao constraint`/`ao
findings`) |
| leverage-points.md | "3 active hooks"/push-gate/pre-mortem-gate → CI
gates + skill steps; resolved the doc's own active-vs-guardrail
contradiction |
| troubleshooting.md | "Hooks aren't running" / "push gate hook" / `ao
hooks test` → hookless guidance; **ROADMAP.md link kept** (audit's
"broken link" was a false positive) |
| INCIDENT-RUNBOOK.md | Scenario C "Hook Scripts Fail" + Per-Hook Kill
Switches → 3.0 "Skills Not Loading / CI Gate Failing";
`AGENTOPS_HOOKS_DISABLED` kept only as user-authored-hooks opt-out |
| agentops-brief.md | "73 shared skills/12 Hook Events"/"Startup hooks"
→ 82 skills, hookless lifecycle |

## Verification (aggregate, by me — not just subagent self-reports)
- `markdownlint -c .markdownlint.json` (all docs) → **0 errors**
- `tests/docs/validate-links.sh` → **0 broken** (2902 checked)
- `scripts/sync-skill-counts.sh --check` → clean (ARCHITECTURE.md gate
target intact)
- residual hooks-as-live-runtime grep across all 7 → only correct
negation/opt-in framing remains
- net −41 lines (reframe, not gutting)

Closes-scenario: ag-t1ca#big-files
Bounded-context: BC1-Corpus
Evidence: docs/ARCHITECTURE.md
2026-06-03 22:05:09 -04:00
Bo 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
2026-06-03 12:11:23 +00:00
Bo 59b2391b6d feat(skills): add AgentOps-owned using-ntm substrate-orchestration skill (ag-zaoj #using-ntm-skill) (#693)
## What

Adds an **AgentOps-owned, shippable `using-ntm` skill** — the missing
NTM leg of the `NTM + MCP + managed-agents` substrate doctrine
(**ag-zaoj**). Until now `automation-shape-routing` pointed **by name**
at the *proprietary* `ntm`/`vibing-with-ntm` skills, which AgentOps
can't ship — a dangling pointer for standalone users. This is original
content modeled on (not copied from) those.

## The seam: skills are the runtime, not the CLI

The skill teaches driving the open `ntm` CLI as the out-of-session
substrate: **NTM spawns Claude/Codex panes that run the `/rpi` and
`/evolve` *skills*** over a bead queue. It explicitly does **not** use
`ao rpi`/`ao evolve` CLI subprocesses — those terminal wrappers are
retired; the substrate dispatches the whole loop as one invocable skill.

## What lands (15 files, +~440)

- `skills/using-ntm/SKILL.md` + `skills-codex/using-ntm/SKILL.md` (twin)
— the new skill.
- `automation-shape-routing` (+ codex twin) — dangling
`ntm`/`vibing-with-ntm` pointers now route to the owned `/using-ntm`;
`ntm` stays as the CLI tool.
- Six derived surfaces regenerated: `registry.json`, skill-domain-map,
SKU catalog, codex hashes/manifest, context-map; + skill-disposition row
and skill-count bumps (80 → 81) in PRODUCT / ARCHITECTURE / SKILLS /
domain-map / BDD-Gherkin.

## E2E verification (against the real `ntm` CLI)

Per the directive (no `ao rpi`/`ao evolve`): verified every `ntm`
subcommand the skill cites exists
(`spawn/send/activity/attach/doctor/deps/kill/health`) and **fixed the
documented flag to the real `--pane=N` syntax** (it had `--pane N`).
`ntm doctor` runs (bv ✓ / bd ✓ / am ⚠). `docs/cli-surface.*` drift
excluded (pre-existing, unrelated).

## Follow-up (not in this PR)

`ao rpi`/`ao evolve` CLI are slated for retirement; `docs/3.0.md` + the
recent Gas City-prune PRs still reference `ao rpi <bead>` as the
dispatch unit and need a skills-not-CLI reconciliation pass.

## Verification

- `regen-all.sh --check` ALL GREEN · registry-drift PASS · codex parity
PASS · skill-isolation/size PASS · markdownlint 0.

Closes-scenario: ag-zaoj#using-ntm-skill
Bounded-context: BC4-Factory
Evidence: skills/using-ntm/SKILL.md

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-06-03 00:19:22 +00:00
Bo b830d163c4 feat(skills): bd-first memory migration — Phase 1 audit (ag-5u50 #phase1-audit) (#691)
## Phase 1 — read-only memory-layer audit (the first arc of epic
`ag-5u50`)

First slice of the **bd-first-memory-migration** skill: a generic,
3-phase AgentOps skill that consolidates fragmented agent-memory layers
(Claude `MEMORY.md`, ao/flywheel, `.agents/*`, openclaw) onto **bd** as
the single source of truth, then GC/retires the rest. This PR ships the
**read-only audit half** — it cannot mutate anything; it produces the
Gate A manifest a human approves before any later migration.

### What's in it (beads ag-5u50.5–.9)
- **`.5` scaffold** — `SKILL.md` (trigger-matched) + references +
`scripts/`.
- **`.6` data model** — `references/DATA-MODEL.md`: type taxonomy
(fact/feedback/project/episodic/procedural), per-memory fields,
decay/utility formula, maturity ladder **wired to eviction** (the fix
for ao's 99%-provisional stall).
- **`.7` scanner** — `scripts/audit_scan.py`: read-only inventory of
every layer (counts, bytes, dup-rate, maturity), `--json`/`--human`.
- **`.8` classifier** — `scripts/classify.py`: keep/drop manifest
(authored=keep, `-pend-`/dups=drop, bloated `MEMORY.md`=drop), dry-run.
- **`.9` Gate A report** — `scripts/audit_report.py`: current-state
table + manifest summary + **reversibility plan naming every later
destructive action and its rollback**.

### Verification
- **6 hermetic L2 tests** (`tests/test_phase1_audit.py`), no `bd`/`ao`
CLI dependency — all green.
- **5 Gherkin scenarios** (`references/audit.feature`).
- Scripts are 100-col clean and `py_compile`-verified.
- **Live-validated** against a real fragmented box: the scanner
auto-found 2 bloated `MEMORY.md` indexes + the 62k-file /
99%-provisional / dup-pile signals.
- Context-map regenerated; drift gate green.

### Scope guardrails
Read-only only. No Phase-2/3 (migrate / GC / retire) code here — those
are gated behind Gate A and ship in later PRs. The destructive dogfood
on the live box stays human-gated (Gate C).

Closes-scenario: ag-5u50#phase1-audit
Bounded-context: BC1-Corpus
Evidence: skills/bd-first-memory-migration/tests/test_phase1_audit.py
2026-06-02 17:10:17 -04:00
Bo 7455382416 refactor(gc): strip Gas City coupling; adopt NTM+MCP+managed-agents (ag-124p) (#679)
## What

Operator-authorized (Bo, 2026-06-02). Strips the remaining **Gas City**
(`gastown`) coupling from AgentOps and reconciles the **split-doctrine
state** on `main` that the #672–#676 post-mortem flagged: canonical docs
(#676) said NTM+MCP+managed-agents while user-facing docs still
described Gas City as the reference substrate.

The out-of-session substrate is now uniformly **NTM** (local tmux swarm)
+ **MCP** (`ao mcp serve`, shipped) + **managed-agents** (`ao agent`).
AgentOps adopts a substrate; it owns none. Closes **ag-124p** (and
resolves **ag-h93p** — the claude.json gc-hook decouple).

## Deleted (load-bearing surfaces, per the bead's verified scope)

- `packs/agentops/` (the reference City) + root `city.toml`
- `skills/using-gc` + `skills-codex/using-gc` (+
`tests/scripts/using-gc-skill.bats`)
- `gc prime/nudge/mail/hook` wiring in `cli/hooks/claude.json` → now
hookless, matching 3.0 doctrine

## Doc sweep (the split-doctrine fix the post-mortem required)

- **README.md, docs/MIGRATION-3.0.md, docs/dependencies.md,
docs/activation-profiles.md** re-narrated to the substrate trio (the
four files the verdict named)
- AGENTS.md / CLAUDE.md substrate bullets; `dream` skill (+codex twin)
retirement pointer; `shared` / `agent-native` / `using-agentops`
cross-refs; skill-dispositions, context-map, sku-catalog, google-sre
convergence map

## Regenerated derived surfaces

Skill counts (81→80), `registry.json`, `skills/catalog.json`,
context-map, skill-domain-map, codex hashes (14) + manifest, SKILL-TIERS
— all via the generators, validated drift-free.

## Scope boundaries / follow-ups

- **`cli/internal/doctor/fix_bridges.go`** still carries a gc-bridge
detector/fixer subsystem. Out of the bead's verified scope; degrades
gracefully (stat-checks, returns empty when `gc`/`city.toml` absent);
removing it is a test-backed Go change → **follow-up bead**.
- **CLAUDE.md "Gas City bridge — REMOVED"** note kept intentionally:
it's an anti-re-coupling record, not substrate-framing.
- The local-only **bd-closeout** pre-push check (not in CI) is a
pre-existing gap on `main` (its AGENTS.md has no `bd dolt push` line) —
untouched here.
- `thesis-stability` gate FAIL, if present, is the pre-existing
README/PRODUCT/GOALS tagline drift, unrelated to this PR (my
README/PRODUCT edits are the dependency table + skill-count numbers, not
the tagline).

## Verification

`go build ./...` + `go vet` green · skill schema (80/80) + integrity
(heal --strict clean) + lint suite (0 fail) + codex parity green ·
sku-catalog & context-map drift gates green · zero broken markdown links
to deleted paths.

Closes-scenario: ag-124p#gc-coupling-strip
Bounded-context: BC5-Runtime
Evidence: docs/MIGRATION-3.0.md
2026-06-02 09:06:41 -04:00
Bo 03d2aaa8d7 feat(skills): add /agent-native — make out-of-session agents AgentOps-native, hooklessly (ag-2wln #agent-native) (#616)
## What

First child of **ag-7s9fo** (Make Managed/SDK agents AgentOps-native).
Adds the **/agent-native** dual-runtime skill documenting the **hookless
reframe** of the retired "port the ~50 hooks" idea.

An out-of-session Claude (Managed Agent / Agent SDK loop / self-hosted
sandbox) becomes AgentOps-native via three things — **never hooks**:
1. **Bundle AgentOps skills** into the Agent definition (same `skills/`
files, no fork).
2. **Expose the `ao` CLI as a callable tool** (MCP/shell-tool) so the
loop self-bootstraps + self-validates.
3. **Gate outputs through the SAME CI** as interactive work.

Extends `standards` + `converter`. The SDK hooks become an *optional
thin adapter*, never the enforcement boundary. Managed Agents are NOT
ZDR → no holdout/PII in the agent definition.

## How

Built through the hardened scaffold (ag-cw2y → ag-ekyq → ag-j4l1) — all
6 derived surfaces regenerated in one shot (registry, domain-map,
context-map, counts, codex twin+manifest+marker, dispositions
BC5-Runtime, SKILL-TIERS, using-agentops catalog, embedded sync).
Reverted the swept-in pre-existing drift (6 codex hashes + cli-surface)
per the changed-files-scoped triage.

Caught + fixed an `INVALID_AO_CMD` heal finding: `ao standards` isn't a
command — `standards` is a loaded checklist enforced via `ao validate` +
CI (corrected the references).

## Scope note

The skill documents the *intended* `ao agent bundle` / `ao mcp serve` /
`agent-output-validate.yml` surfaces — those are the sibling child beads
(ag-jspr, ag-higd, ag-mptr). This PR is the skill-doc slice only.

## Evidence

- `heal.sh --strict skills/agent-native` → clean
- `audit-codex-parity.sh --skill agent-native` → pass
- `validate-codex-generated-artifacts.sh --scope worktree` → pass
- `generate-{registry,skill-domain-map}.sh --check` → clean;
`check-registry-drift.sh` → no drift

Closes-scenario: ag-2wln#agent-native
Bounded-context: BC5-Runtime
Evidence: skills/agent-native/SKILL.md
2026-05-29 23:28:11 -04:00
Bo 79a4558902 feat(skills): add /eval-outcomes — Outcomes as a holdout-safe projection of the locked eval substrate (ag-hdqu0.8 #eval-outcomes-skill) (#613)
## What

Adds the **/eval-outcomes** dual-runtime skill — the user-facing
documentation wrapper for the already-merged `ao eval outcomes
compile/ingest` capability (the Outcomes epic ag-hdqu0, capability beads
.1/.2/.4/.5/.6/.7/.9 all merged). This is the final ag-hdqu0 child.

eval-outcomes documents Outcomes as a **grading transport** that EXTENDS
`validation` + `ratchet` — a *projection* of the locked eval substrate
(`SCHEMA.md`), never an alternate bar. Holdout `target`/`ground_truth`
never leaves the boundary (Managed Agents are not ZDR).

## How

Built through the ag-cw2y scaffold + the 6-surface new-skill discipline
in one shot:
- `skills/eval-outcomes/SKILL.md` + `skills-codex/eval-outcomes/`
(parity_only twin + prompt.md)
- override catalog + manifest/marker (`register-new-codex-skill.sh`)
- dispositions row (BC2 Validation) + SKILL-TIERS row + using-agentops
catalog
- registry.json SKU catalog + domain-map + context-map + narrative
counts + embedded sync

Reverted pre-existing-main drift swept in by generators (6 unrelated
codex artifact hashes, cli-surface.*) per the changed-files-scoped
triage.

## Evidence

- `audit-codex-parity.sh --skill eval-outcomes` → pass
- `heal.sh --strict skills/eval-outcomes` → clean
- `validate-codex-override-coverage.sh` → 80 skills pass
- `validate-codex-generated-artifacts.sh --scope worktree` → pass
- `generate-{registry,skill-domain-map,context-map}.sh --check` → clean;
`check-registry-drift.sh` → no drift

(Local fast pre-push gate references a missing
`scripts/audit-codex-hooks.sh` — pre-existing gate-infra drift absent on
main, not this PR; CI is the authoritative gate.)

Closes-scenario: ag-hdqu0.8#eval-outcomes-skill
Bounded-context: BC2-Validation
Evidence: skills/eval-outcomes/SKILL.md
2026-05-29 21:35:17 -04:00
Bo 606ae03b84 feat(skills): add /burndown — bounded epic-completion loop (ag-3yl8 #burndown-skill) (#600)
## What
Adds **`/burndown`** — the bounded, finite-end counterpart to open-ended
`/evolve`. Drives a finite target (epic / set of epics / explicit bead
list) to *every in-scope bead merged on main* via bounded `/rpi` cycles,
then **STOPS**.

## Why (the gap it fills)
| Command | Shape |
|---|---|
| `/evolve` | open-ended compounding loop — goes dormant, never
*completes* |
| `/crank` | parallel-**wave** one-shot fan-out |
| `/autodev` | contract layer only (not a loop) |
| **`/burndown`** | **serial, resumable, finite-end drive-to-merge
loop** |

## Per-cycle (idempotent — cron / ScheduleWakeup / in-session)
reconcile one outstanding tick-PR (CI-green→merge, pending→skip,
red→fix) → completion-check (all in-scope merged → DONE/STOP) → pick ONE
in-scope ready bead → drive in a worktree → PR with trailers → loop.
Finite stops: target merged · `--max-cycles=N` · operator
STOP/`--hold-merges` · genuine blocker.

This is the generalized, named form of the cron loop we validated
landing PR #599.

## Dual-runtime + gates
- `skills/burndown/SKILL.md` (canonical) +
`skills-codex/burndown/SKILL.md` (Codex-native).
- `audit-codex-parity.sh --skill burndown` **PASS**; `heal.sh --strict`
**PASS**.
- Skill counts synced 76→77 (SKILL-TIERS, PRODUCT, docs/SKILLS,
docs/ARCHITECTURE, using-agentops catalog); `context-map.md`
regenerated; embedded skills synced; `go build ./...` success.

Closes-scenario: ag-3yl8#burndown-skill
Bounded-context: BC5-Runtime
Evidence: skills/burndown/SKILL.md
2026-05-29 21:06:19 -04:00
Bo e4e32a3374 feat(orchestration): dual-runtime OrchestrationPort foundation (ag-nk67 #orchestration-foundation) (#598)
## What

The **dual-runtime OrchestrationPort foundation** — the seam that gates
the
`[EPIC] AgentOps × Claude Managed Agents integration (dual-runtime)`
application epics.
Implements the 3-category model (Claude Workflow / NTM swarm / plain
skill) behind a
single `OrchestrationPort` with safe degradation **NTM → Claude-native →
beads floor**
and a global `AGENTOPS_ORCHESTRATION=off` opt-out.

Derived from a live 3-legged spike (`~/dev/agentops-3cat-spike/`): safe
degradation is
solvable at the selection layer; parallel buys quality/independence not
wall-clock at
small N; NTM is a multi-vendor control plane that runs Claude/Codex as
panes.

## What's in it (10 slices, agent-team driven)

- **Port + adapters** — `cli/internal/ports/orchestration.go` (idiomatic
to existing ports pattern) + new `cli/internal/orchestration/` pkg:
`Selector`, `ntm_probe` (capability detection via `ntm
--robot-capabilities`, not `command -v`), `beads_floor` +
`OrchestrationResult` parity type, degradation-conformance test.
- **Live CLI** — `ao orchestrate select` (`--pin`/`--opt-out`/`--json`);
COMMANDS.md regenerated.
- **Contracts** — `schemas/orchestration-{backend,result}.v1` + paired
`docs/contracts/` docs (structural-floor gated: 41 contracts).
- **Prose** — swarm/shared/crank rewritten NTM>native>beads; **gc
demoted** (soc-2rtm0); `rpi_phased_stream.go` doc-comment fixed.
- **Skills** — `automation-shape-routing` (the 3-category router) +
`workflow-builder` + meta-skill authoring chain wired (`context_rel`);
skill counts synced.
- `lib/orchestrate-select.sh` selector seam.

## Verification (local)

`go build ./...` clean · `go vet` clean · **56 Go tests pass**
(orchestration 31, ports 10, cmd/ao orchestrate 15) · structural-floor
PASS (41) · `lib/orchestrate-select.sh --self-test` 6/6 · live command:
`--json`→claude (NTM absent), `--opt-out`→beads, `--pin claude`→claude.

## Notes

- Bundles the foundation + the routing/authoring skills as one coherent
dual-runtime arc.
- NTM/Claude executors are stubs (the parity contract is real); concrete
executors land in the application epics this gates.
- Two-ladders distinction preserved (spawn-backend ladder A vs CLI
phase-executor ladder B) — see `docs/contracts/orchestration-ports.md`.

Closes-scenario: ag-nk67#orchestration-foundation
Bounded-context: BC5-Runtime
Evidence: cli/internal/orchestration/conformance_test.go
2026-05-29 18:42:45 +00:00
Bo de0699a493 feat(skills): operating-loop-workflow skill ships the workflow to plugin users (agentops-7m7a #plugin-deliver-operating-loop) (#595)
## What
Adds a `operating-loop-workflow` skill that delivers the
`operating-loop` Workflow-tool script to **installed plugin users** and
invokes it.

## Why
Claude Code plugins do **not** load `.claude/workflows/*.js` (recognized
components are `skills/`, `commands/`, `agents/`, `hooks/`, …). PR #594
force-added the script so it *ships in the plugin cache*, but an
installed user still wouldn't see `/operating-loop`. This skill is the
delivery vehicle.

## How
On `/operating-loop-workflow`, the skill:
1. Idempotently copies
`${CLAUDE_PLUGIN_ROOT}/.claude/workflows/operating-loop.js` →
`~/.claude/workflows/operating-loop.js` (copy-if-newer; never clobbers
user edits).
2. Invokes `Workflow({name:'operating-loop', args})` (supports
`{mode:'plan'}` for the plan-only half).

Named `operating-loop-workflow` (not `operating-loop`) to avoid
colliding with the workflow's own auto-surfaced `/operating-loop` in the
dev repo.

## Registries updated
- `skills/SKILL-TIERS.md` row + `sync-skill-counts.sh` (→ 76 total, 66
user-facing)
- `docs/contracts/skill-dispositions.yaml` + regenerated
`docs/reference/agentops-skill-domain-map.md` (76/76)
- `docs/contracts/context-map.md`,
`docs/reference/agentops-domain-evolution-bdd.md` count

## Validation
- `scripts/pre-push-gate.sh --fast` passed (registry-drift,
skill-domain-map golden gate, domain-evolution plan all green)
- `generate-skill-domain-map.sh`: 76 skills, 76 dispositions, clean

Closes-scenario: agentops-7m7a#plugin-deliver-operating-loop
Bounded-context: BC3-Loop
Evidence: docs/reference/agentops-skill-domain-map.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-29 02:30:09 +00:00
Bo b4c6aec361 feat(skills)!: 3.0 consolidation — merge 4, cut 2, resolve 6 keep-flags (81→75) (#533)
## AgentOps 3.0 skill consolidation — reconcile-and-tighten

Resolves all 12 skills flagged `merge-review`/`cut-review` in
`docs/contracts/skill-dispositions.yaml` per the operator-approved
dispositions. **Zero capability loss** — every merged skill's content
lives in its target as a mode/section.

### MERGE (4) — content folded into target, source removed
| Source | Target | How |
|---|---|---|
| expert-council | council | `--mode=debate` (alias triggers documented
in council) |
| oss-docs | doc | `--mode=oss` (refs + `audit-oss-docs.sh` copied into
`doc/`) |
| readme | doc | `--mode=readme` (`readme-craft.md`; `bootstrap`
consumer repointed readme→doc) |
| pr-retro | post-mortem | `--scope=pr` (`pr-scope.md` + gh PR-outcome
mining) |

### CUT (2) — genuinely redundant, no live consumer
- **pr-plan** — folds into `/plan` + `/pr-research`; pr-* chain
repointed.
- **update** — install-script concern; refresh note added to
`using-agentops` + install one-liner.

### KEEP — resolved 6 flags (rationale in `skill-dispositions.yaml`)
`validate` + `curate` (designed-future canonical validator/miner; epic
`soc-cp7pv` GO/REVERT is a separate decision) · `security` (release-gate
driver, distinct from security-suite) · `converter` (packaging adapter
skill-builder consumes) · `knowledge-activation` (outer-loop
operationalization) · `grafana-platform-dashboard` (marketplace
specialization).

### Result
**81 → 75 skills** (65 user-facing + 10 internal). Trunk regenerated
once: skill-counts, skill-catalog, skill-domain-map, context-map,
registry, sku-catalog, codex hashes, embedded-sync. Evals repointed to
absorbed locations.

### Gates verified locally (all green)
lint-skills · heal.sh --strict · skill-schema · skill-frontmatter ·
skill-dependency-check · scenario-test-linkage ·
validate-context-map-drift · check-registry-drift · generate-registry
--check · skill-domain-map golden · validate-sku-catalog-drift ·
bounded-contexts-drift · ci-policy-parity · codex
parity/override-coverage/manifest/generated-artifacts/skill-parity/runtime-sections/backbone/lifecycle
· regen-codex-hashes --check · embedded-sync · validate-skill-count ·
markdownlint · shellcheck (--severity=error) · `cd cli && go build && go
vet && go test ./cmd/ao` (9126 passed).

Closes-scenario: ag-cons#consolidation
Bounded-context: BC1-Corpus
Evidence: .agents/discovery/2026-05-24-skill-consolidation-plan.md
2026-05-24 23:17:27 -04:00
Bo 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
2026-05-24 21:55:17 -04:00
Bo ad69fec1d7 feat(skills): using-gc agent guide + complete tool-dependency declaration (ag-p4p) (#523)
## What

Builds the GC on-ramp for AgentOps 3.0: a `using-gc` skill that guides
agents on the `gc` (Gas City) CLI exactly like the `bd` protocol guides
them, plus a complete, accurate tool-dependency declaration. **Additive
— no existing behavior changed.**

THE MODEL (operator): "use gc like we use bd" — skills GUIDE agents on
the gc workflow; `ao` does NOT wrap gc. gc is a guided out-of-session
dependency, same as bd.

## Changes

1. **New skill `skills/using-gc/`** — agent-facing guide to running
AgentOps on Gas City, mirroring the bd-protocol style. Covers the gc
primitives (City/`city.toml`, Rig, Pack, Agent, Order, Formula, mayor +
refinery), the end-to-end workflow (`gc start` → `gc rig add` → the
mayor-driven dispatch loop: `bd ready` → `gc sling <rig>/refinery
<bead>` → worker runs `ao rpi <bead>`), cron `exec` Orders for
maintenance (`ao compile`/`ao maturity`), and is HONEST about the
order-auto-dispatch gap (no per-fire var-binding → dispatch is
mayor-driven today; order-auto-dispatch is an upstream-GC item,
soc-5jwah). References the real pack at `packs/agentops/` and
`docs/3.0.md`. Two reference docs + a `.feature` (linked +
`@covered-by:` a new bats test).

2. **Complete dependency declaration** — derived from `ao doctor` tool
checks (`ao`, `awk`, `bash`, `bd`, `cass`, `gc`, `git`, `tmux`) +
`scripts/install*.sh` + the shared fallback table. Classified REQUIRED
(ao, git, runtime), TRACKING (bd + Dolt), ORCHESTRATION (gc,
out-of-session), PR/CI (gh), BUILD-FROM-SOURCE (go), UTILITIES (jq, rg,
curl, openssl, sha256sum, tmux, cass). Landed in: `docs/dependencies.md`
(canonical detail, catalogued in documentation-index), a README
"Requirements" section (summary), and the expanded
`skills/shared/SKILL.md` fallback table (now includes gc, gh, go, jq,
rg).

3. **Fixed stale `using-agentops/SKILL.md:212`** — the runtime-mode `gc`
row described the DELETED `runtime=gc` auto-executor ("ao rpi
auto-selects gc executor", "gc event bus"). Reframed to the mayor-driven
reference City: gc dispatches whole `ao rpi`/`ao evolve` loops; there is
no in-CLI `runtime=gc` mode.

4. **Brief gc pointer** in repo `CLAUDE.md` + `AGENTS.md` near the bd
section, pointing to the using-gc skill (no skill content duplicated).

## Gates (all green locally)

- `sync-skill-counts.sh`: 80→81 total, 9→10 internal — PASS, verified
consistent.
- `validate-context-map-drift`: regenerated
docs/contracts/context-map.md — matches.
- Codex twin `skills-codex/using-gc/` created (`$skill` notation, no
Claude primitives); registered across the 4 catalog surfaces;
`regen-codex-hashes.sh` clean; `audit-codex-parity` PASS; 81 codex
artifacts.
- `generate-registry.sh` (81 skills) — up to date.
- skill-domain-map disposition added (BC5 Runtime) + regenerated golden
— matches; registry-drift narrative counts fixed (80→81).
- plugin-load-test (no symlinks — references copied), skill-schema
(81/81), skill-frontmatter (81/81), skill-dependency-check, heal.sh
--strict (clean), scenario-test-linkage (PASS, new .feature linked via
bats), markdownlint (0 errors), doc-release-gate (PASS).
- New bats test `tests/scripts/using-gc-skill.bats` (5/5).
- Codex description aggregate budget bumped 2700→2800 (catalog grew to
81; same precedent as the 2600→2700 bump when expert-council landed).
- `cd cli && go build && go vet && go test ./cmd/ao/` green (embedded
using-agentops copy synced via `make sync-hooks`).

Closes-scenario: ag-p4p#gc-onramp
Bounded-context: BC5-Runtime
Evidence: skills/using-gc/SKILL.md
2026-05-24 19:39:54 -04:00
Bo 1a7e2cb748 feat(ao session bootstrap): universal init prompt (soc-vuu6.25 #ao-session-bootstrap) (#390)
## Summary

`ao session bootstrap` — every agent spawned into an AgentOps repo runs
this first. Output shape is identical regardless of model (the
fungibility contract: swap Claude for Codex on any bead without
re-orienting).

## What

Four fail-open substeps emit fields in
`schemas/session-bootstrap.v1.schema.json`:

| Field | Source | Fallback |
|---|---|---|
| `agents_md_read` + `agents_siblings_read` | `AGENTS.md` +
post-soc-vuu6.3 siblings | `false` / empty array |
| `onboard_phase` | `onboard --auto` (soc-vuu6.9 future) |
`skipped:not-implemented` |
| `ready_beads_count` | `bd ready --json` | `null` |
| `mail_unread_count` | mcp-agent-mail | `null` (wiring is follow-up
bead) |

## Why

The fungibility philosophy mandates one init prompt for every agent
regardless of type. Today every operator hand-rolls orientation; two
agents spawned by two different operators don't share a starting frame.
`ao session bootstrap` is the operational primitive that closes the gap.
Tiny (~270 LOC including helpers), fail-open, deterministic.

## Files

- New: `cli/cmd/ao/session_bootstrap.go` + `_test.go` (8 cases)
- New: `schemas/session-bootstrap.v1.schema.json` (draft-07)
- New: `skills/session-bootstrap/SKILL.md` +
`skills-codex/session-bootstrap/SKILL.md` (mirrored)
- Catalog: `skills/SKILL-TIERS.md`, `skills/using-agentops/SKILL.md`,
`skills-codex/using-agentops/SKILL.md`
- Regenerated: `cli/docs/COMMANDS.md` (sub 196→197, all 269→270),
`registry.json` (cli_commands 173→174),
`PRODUCT.md`/`docs/ARCHITECTURE.md`/`docs/SKILLS.md` (count sync 79→80),
`evals/agentops-core/cli-command-surface-{matrix.json,fixtures/cli-command-surface-smoke.sh}`
(fixture bump)

## Verification

```
cd cli && go build ./... && go test ./cmd/ao/ -run TestSessionBootstrap -count=1
# 8 passed
bash evals/agentops-core/fixtures/cli-command-surface-smoke.sh
# cli-command-headings: top=73 sub=197 all=270 / cli-help-matrix-ok
bash tests/docs/validate-doc-release.sh
# PASS: doc-release gate succeeded
```

Closes-scenario: soc-vuu6.25#ao-session-bootstrap
Bounded-context: BC5-Runtime
Evidence: cli/cmd/ao/session_bootstrap.go
Evidence: cli/cmd/ao/session_bootstrap_test.go
Evidence: schemas/session-bootstrap.v1.schema.json
Evidence: skills/session-bootstrap/SKILL.md
2026-05-21 04:27:09 +00:00
Bo 772d13b8ce feat(skills): ship-loop — bot-paired internal-PR fast-lane cycle (soc-b0nn) (#332)
## What

Promote the 2026-05-18 session pattern from `docs/learnings` (PR #331)
into an invokable skill. Operators can now type `/ship-loop` to load the
discipline; future agents in fresh sessions can invoke it via Skill
tool.

## Distinct from pr-* family

The existing `pr-*` skills (`pr-research`, `pr-plan`, `pr-implement`,
`pr-validate`, `pr-prep`, `pr-retro`) are **tier=contribute** —
fork-based OSS contribution workflow. Their window is `fork`, output is
`code changes on fork branch`.

`ship-loop` is **tier=execution** — internal repo, branch off main,
auto-merge back to main. Sibling skill family, not a replacement.

## What it captures

| Section | Content |
|---|---|
| **9-step cycle** | claim → branch off fresh main → first failing test
→ minimal impl → `pre-push --fast` → commit → push → `gh pr merge
--squash --auto` → `bd close` |
| **Gate sequence** | pre-push --fast, claude-review (auto-fires on PR
open), validate.yml, gh-merge-chain |
| **Anti-patterns (5)** | Bundling pre-existing fixes,
copy-rewrite-leaves-dead-vars, asserting local-only state in CI,
branches off out-of-date main, skipping the failing-test-first step |
| **Failure modes (F1–F5 + meta)** | Each with mechanical guard already
landed this session |
| **Pair mechanics** | claude-review auto-fires on `pull_request:
opened/synchronize` — no @claude mention required |
| **gh-merge-chain dogfooding** | When and how to invoke the multi-PR
sequencer |

## Files

- `skills/ship-loop/SKILL.md` (177 lines)
- `skills/ship-loop/scripts/validate.sh` (78 lines; 17/17 self-checks
PASS)
-
`skills/ship-loop/references/{anti-patterns,examples,gh-merge-chain,test-shape}.md`
- `skills-codex/ship-loop/SKILL.md` (95 lines, slim frontmatter)
- `skills-codex/ship-loop/prompt.md` (35 lines, Codex Execution Profile)

## Registry inventory updates (all automated)

| File | Change |
|---|---|
| `skills/SKILL-TIERS.md` | New row under execution tier |
| `docs/contracts/skill-dispositions.yaml` | BC5 Runtime /
driving-adapter / keep |
| `docs/reference/agentops-skill-domain-map.md` | Regenerated, 78 → 79 |
| `docs/reference/agentops-domain-evolution-bdd.md` | Count 78 → 79 |
| `PRODUCT.md`, `docs/ARCHITECTURE.md`, `docs/SKILLS.md` | Synced via
`scripts/sync-skill-counts.sh` |

**The registries-drift remediation arc (soc-zxia) is paying off** —
adding a new skill costs 5 inventory doc updates, ALL automated and
gate-checked. Pre-push gate caught and the operator (me) fixed each one
mechanically.

## Validation

- ✅ `bash skills/ship-loop/scripts/validate.sh`: 17/17 PASS
- ✅ `scripts/pre-push-gate.sh --fast`: passed (1 pre-existing
scenarios/trace warn, unrelated)
- ✅ `tests/docs/validate-doc-release.sh`: link validation PASS
(synthesis doc reference uses GitHub URL since PR #331 isn't merged yet)
- ✅ `scripts/check-registry-drift.sh`: PASS
- ✅ `scripts/generate-skill-domain-map.sh`: 79 skills / 5 BCs / 79
dispositions

## Discovered

2026-05-18 session, immediately after [PR
#331](https://github.com/boshu2/agentops/pull/331) (docs/learnings
synthesis). User asked: "shouldn't we turn this into a skill?" — yes.
This is the executable form.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Codex <codex@example.invalid>
2026-05-19 00:56:38 +00:00
Bo b3774cf139 refactor(council): brainstorm/debate/verdict mode taxonomy (soc-ml4l) (#293)
* docs(readme): lead with problem/solution and the executable-spec chain

* feat(skills): add expert-council — adversarial persona council

Named domain-expert personas duel via the dueling-idea-wizards route (verdict -> 0-1000 cross-scoring -> reveal -> score matrix). judgment tier. Slated for absorption into council --mode=debate per soc-ml4l.

* docs(council): add council-modes.feature acceptance spec for soc-ml4l

* refactor(council): formalize brainstorm/debate/verdict mode taxonomy

Refactor `council` into the three-mode taxonomy settled by the 2026-05-17
cross-vendor taxonomy duel (soc-ml4l). `--mode` selects one of exactly three
deliberation patterns — brainstorm (diverge), debate (contend), verdict
(converge); verdict is the default. `--focus`/`--depth`/`--runtime`/`--roster`
are orthogonal knobs, never modes.

- New `references/modes.md` — full taxonomy, mode-invariant lifecycle
  (convene/brief/deliberate/synthesize/record), knob aliases.
- Rename the `--debate` flag (a verdict intensifier) to `--adversarial`;
  the word `debate` now names the contend mode. `debate-protocol.md` ->
  `adversarial-protocol.md`.
- Absorb `expert-council` as `--mode=debate`: move `dueling-route.md` into
  `council/references/`; `expert-council` is now a 1-release thin alias ->
  `/council --mode=debate`.
- `research` verb folds into brainstrom (`--focus=research`); `validate`
  stays a verdict alias.
- Sync codex twins, SKILL-TIERS, using-agentops catalog, validate.sh
  behavioral checks, codex hashes.

Acceptance: every scenario in council/references/council-modes.feature holds.

---------

Co-authored-by: Codex <codex@example.invalid>
2026-05-17 19:33:07 -04: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 3e374d842d feat(product): codify AgentOps 3 launch path 2026-05-10 23:22:14 -04:00
Boden Fuller 28fd87add5 feat(skills): tracer-bullet shape for skills/domain ubiquitous-language corpus
A library skill that holds the shared vocabulary for building software with AI
agents in this repo. Existing skills (research, plan, crank, validate, ...)
are verbs; this skill holds the nouns and the discipline they operate on.

Tracer-bullet scope, not yet canonical:

- 6 structural primitives (Entry, Index, Citation, Primitive, Slice,
  Anti-Pattern) — the minimum bricks every later entry must compose from
- 1 test entry (Tracer Bullet) defined using ONLY citations to the 6 above;
  if the test entry reconstructs its concept end-to-end from the linked
  entries, the corpus architecture has cleared its first proof
- INDEX.md catalog + growth rules; promoting draft→canonical requires
  operator approval; adding a 7th structural primitive requires written
  rationale

Naming choice: corpus catalog is references/INDEX.md; the entry describing
the Index concept lives at references/index-primitive.md to survive
case-insensitive filesystems.

Follows the skills/standards/ precedent (library skill loaded JIT via Read).
Not wired to ao inject — that command is deprecated v3.0 (cli/cmd/ao/inject.go:153);
new entries are loaded by explicit reference from SKILL.md.

Gates verified locally:
- skills/heal-skill --strict: every references/*.md linked from SKILL.md
- validate-skill-schema.sh: 75/75 pass
- sync-skill-counts.sh: SKILL-TIERS.md / PRODUCT.md / docs/SKILLS.md /
  docs/ARCHITECTURE.md bumped 74 → 75 user-facing 65 → 66
- audit-codex-parity.sh --skill domain: passed
- markdownlint on skills/domain/: clean
2026-05-10 15:16:31 -04:00
Boden Fuller 81c2f3eca9 chore: sharpen go toolchain and hook skills 2026-05-09 22:42:27 -04:00
Bo d81f54bf47 feat(skills): skill-builder + skill-auditor pair (epic soc-9bak) (#237)
* feat(skills): add skill-builder/auditor foundation (I1, I2)

Wave 1 of soc-9bak (skill-builder + skill-auditor pair).

I1: skills/skill-builder/references/skill-template.md
- Canonical SKILL.md template extracted from anthropics/financial-services
  @ commit bb4a2b3e53cf27f8900b33ed6a2d95ed32e57f1d
- 15-check auditor checklist (7 wrap heal-skill Pass-1 + 8 NEW Pass-2)
- PRODUCT.md alignment mapping per design hardening
- Pre-mortem F1 applied: description-multiline -> description-has-triggers
  (3 valid forms: YAML | block, Triggers/Use-when markers, metadata.triggers array)

I2: schemas/{build,audit}-report.json
- Output contracts for both skills
- Audit report enum encodes the 8 NEW Pass-2 check ids (description-has-triggers,
  constraints-frontloaded, rationale-present, verification-checkpoints,
  output-spec-explicit, quality-rubric, references-modularization, trigger-clarity)

Refs: .agents/plans/2026-05-06-skill-builder-auditor-plan.md
      .agents/council/2026-05-06-pre-mortem-skill-builder-auditor.md (WARN, 5 amendments propagated)

* feat(skills): implement skill-builder + skill-auditor (I3, I4)

Wave 2 of soc-9bak.

I3 — skill-builder (159-line SKILL.md):
- Mode dispatcher (build.sh): from-scratch | from-template | absorb-external | from-pattern
- from-pattern carries explicit alpha/passthrough disclaimer (pre-mortem F2)
- Template materializer (init.sh): renders SKILL.md skeleton from references/skill-template.md
- Codex parity day-1: writes both skills-codex/<name>/SKILL.md AND prompt.md
- Auto-trims skill_api_version from codex SKILL.md (F5; converter is content-only)
- Post-build self-audit (build.sh tail invokes skill-auditor)

I4 — skill-auditor (158-line SKILL.md):
- Pass 1: wraps bash skills/heal-skill/scripts/heal.sh --check (delegation, not reimplementation)
- Pass 2: 8 NEW check_* functions
  1. check_description_has_triggers (3 valid forms — F1 fix)
  2. check_constraints_frontloaded
  3. check_rationale_present
  4. check_verification_checkpoints
  5. check_output_spec_explicit
  6. check_quality_rubric
  7. check_references_modularization (conditional, >400 lines)
  8. check_trigger_clarity
- Verdict: fails>0=FAIL, warns>0=WARN, else PASS
- JSON output conforms to schemas/audit-report.json
- Severity downgrade: description-has-triggers and trigger-clarity FAIL->WARN
  after running against existing AgentOps skills (real-but-cosmetic gap, not
  blocker) — documented in references/audit-checks.md

Validation:
- bash skills/skill-builder/scripts/validate.sh => PASS (159 lines)
- bash skills/skill-auditor/scripts/validate.sh => PASS (158 lines)
- audit on heal-skill -> WARN (not FAIL — F1 fix verified)
- audit on forge -> FAIL (correctly flags missing Output Specification section)
- audit on council -> WARN (not FAIL — F1 fix verified)

Refs: .agents/plans/2026-05-06-skill-builder-auditor-plan.md
      .agents/research/2026-05-06-financial-services-skill-template.md

* feat(skills): implement skill-builder + skill-auditor (I3, I4)

Wave 2 of soc-9bak.

I3 — skill-builder (159-line SKILL.md):
- Mode dispatcher (build.sh): from-scratch | from-template | absorb-external | from-pattern
- from-pattern carries explicit alpha/passthrough disclaimer (pre-mortem F2)
- Template materializer (init.sh): renders SKILL.md skeleton from references/skill-template.md
- Codex parity day-1: writes both skills-codex/<name>/SKILL.md AND prompt.md
- Auto-trims skill_api_version from codex SKILL.md (F5; converter is content-only)
- Post-build self-audit (build.sh tail invokes skill-auditor)

I4 — skill-auditor (158-line SKILL.md):
- Pass 1: wraps bash skills/heal-skill/scripts/heal.sh --check (delegation, not reimplementation)
- Pass 2: 8 NEW check_* functions (description-has-triggers (3 valid forms — F1 fix),
  constraints-frontloaded, rationale-present, verification-checkpoints,
  output-spec-explicit, quality-rubric, references-modularization, trigger-clarity)
- Verdict: fails>0=FAIL, warns>0=WARN, else PASS
- JSON output conforms to schemas/audit-report.json
- Severity downgrade applied uniformly across SKILL.md, audit.sh, audit-checks.md:
  description-has-triggers and trigger-clarity FAIL->WARN (real-but-cosmetic
  gaps observed on heal-skill/forge/council during pilot test)

Validation:
- bash skills/skill-builder/scripts/validate.sh => PASS (159 lines)
- bash skills/skill-auditor/scripts/validate.sh => PASS (158 lines)
- audit on heal-skill -> WARN
- audit on council -> WARN
- audit on forge -> FAIL (correctly flags missing Output Specification section)

Refs: .agents/plans/2026-05-06-skill-builder-auditor-plan.md
      .agents/research/2026-05-06-financial-services-skill-template.md

* feat(skills): wave 3 — codex parity, catalog wiring, integration tests (I5-I7)

I5: codex parity for skill-builder/skill-auditor (slim frontmatter, prompt.md, .agentops-generated.json)
I6: catalog entries in skills/using-agentops/SKILL.md + skills-codex/using-agentops/SKILL.md
I7: 26 bats integration tests (12 builder + 14 auditor) + known-good/known-bad fixtures

Bug fixes during validation:
- audit.sh constraints-frontloaded check: awk END{exit 1} overrode in-rule exit 0; fixed via found flag
- audit.sh summary printf: grep -c | head -1 (was '|| echo 0' producing two-line value)

Closes soc-9bak.5, soc-9bak.6, soc-9bak.7

* feat(skills): wave 5 — refactor discovery + validation toward unified template (I9)

Pilot refactor of 2 Tier-S skills per Tier-S audit recommendations
(.agents/audits/2026-05-06-tier-s-pilot.md):

- discovery: add ## Output Specification section listing 5 artifact paths
  (research, plan, council, latest+per-run execution packets). Verdict FAIL→WARN.
- validation: add ## Output Specification (compact one-line); move ## Troubleshooting
  to references/troubleshooting.md to stay under 248-line CI limit. Verdict FAIL→WARN.
- skills-codex/* mirrored. validation codex SKILL.md additionally moved
  ## Phase Summary Format to references/ to stay under budget.

Skipped (out of scope, see audit report):
- plan (description over budget already)
- crank (669 lines, full slim refactor needed)
- heal-skill (already WARN, no FAIL to fix)

26/26 bats integration tests still passing. Codex parity audit clean.

Closes soc-9bak.8 (pilot baseline already documented), soc-9bak.9

* feat(skills): wave 6 — closure for skill-builder/skill-auditor pair (I10)

Closure work:
- post-mortem written to .agents/post-mortems/2026-05-06-skill-builder-auditor-pilot.md
- skills/SKILL-TIERS.md: 2 new entries under Cross-Vendor & Meta
- sync-skill-counts.sh ran clean: counts updated in PRODUCT.md, README.md,
  docs/SKILLS.md, docs/ARCHITECTURE.md, using-agentops/SKILL.md
- docs/documentation-index.md: 3 new links (skill-builder, skill-auditor, pilot audit)
- skills/heal-skill/SKILL.md + skills-codex/heal-skill/SKILL.md: ## See Also section
  cross-linking to skill-builder + skill-auditor
- skills-codex parity: full catalog rows + manifest entries + .agentops-generated.json
  + references/ and scripts/ copied alongside SKILL.md (heal-skill convention)
- tests/skills/test-token-budgets.sh: bumped CODEX_DESC_TOTAL_FAIL_CHARS 2400 → 2500
  (avg ~33 chars per skill * 73 skills = 2409, with safety margin)

Pre-push gate (--fast): Pass 1 PASSED (29 skipped advisory checks).

Closes soc-9bak.10
Epic soc-9bak: complete (10/10 issues, 6/6 waves, 4 commits on crank/soc-9bak)

* fix(ci): unblock skill-builder/auditor PR CI checks

Pre-existing drift on main exposed by this PR (which touches skills/, triggering CI checks that earlier merges path-filtered around):

- evals/agentops-core/cli-command-surface-matrix.json: bump expected CLI surface from top=63 sub=155 all=218 → top=63 sub=156 all=219 (one subcommand added since last bump)
- evals/agentops-core/fixtures/cli-command-surface-smoke.sh: same bump
- .github/workflows/validate.yml: eval harness dry-run task name go-build → go-01 (harness no longer has go-build)
- registry.json: regenerated to reflect 73 skills, 41 hooks, 50 stores, 61 evals (was stale)
- tests/scripts/pre-push-gate.bats: add make_stub for scripts/test-evolve-cycle-smoke.sh (added by PR #241 but bats stub list wasn't updated)

All fixes verified locally. None affect skill-builder/skill-auditor work directly — they unblock CI to land that work.

* fix(ci): regenerate registry.json without local .agents/ pollution

CI runs in clean checkout where .agents/ is empty (gitignored). The previous registry.json was committed from a dev environment with populated .agents/, causing CI's regenerated registry to differ on file_count fields for knowledge stores.

Now committed registry has knowledge_stores=0 to match CI's clean-checkout view.

Verified: generate-registry.sh --check passes when .agents/ is empty.

Closes the registry-check failure on PR #237 CI.

* fix(ci): registry.json matches CI clean-checkout state (knowledge_stores=2)

CI's clean checkout has tracked .agents/nightly/ and .agents/rpi/ — these
must appear in registry.json or registry-check fails. The previous attempt
emptied them entirely. This restores the correct CI-equivalent state.

Verified locally with: rm -rf .agents && git checkout HEAD -- .agents/ &&
bash scripts/generate-registry.sh --check (now passes).
2026-05-06 17:08:29 -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 256ff4868b feat(skills): absorb 9 jsm/ACFS Tier 1.5 patterns + new system-tuning skill
Pattern-adopted methodology from 9 jsm/ACFS skills (utility map score >=0.4)
into the AgentOps catalog as references on existing skills, one new top-level
skill, plus a build script and an operator runbook.

- skills/system-tuning/ - NEW utility skill (kill hierarchy, whack-a-mole
  anti-pattern, agent-swarm cleanup) with codex twin and skill-level LICENSE.md
  attribution. Distinct from skills/perf/ to avoid forward/backward methodology
  conflation.
- skills/bug-hunt/ - +2 refs (audit-fix-rescan cycle, convergence criteria)
- skills/research/ - +2 refs (onboarding methodology, data flow from entry
  points)
- skills/release/ - +3 refs (gh-actions CI patterns, release automation,
  changelog-as-research-artifact)
- skills/scope/ - +1 ref (destructive-command-guard patterns)
- skills/bootstrap/ - +1 ref (related runbooks index)
- skills/scaffold/ - +1 ref (forward-looking recommended-reading pointer
  including mcp-server-design with explicit absorption trigger)
- scripts/build-rg.sh + docs/rg-optimized.md - operator-build pattern for
  ripgrep with PCRE2
- docs/runbooks/path-rationalization.md - shell PATH audit and cleanup runbook

Catalog updates: skills/SKILL-TIERS.md adds system-tuning as utility-tier;
skills/using-agentops/SKILL.md catalog edit; sync-skill-counts and sync-hooks
ran for downstream PRODUCT.md, docs/SKILLS.md, docs/ARCHITECTURE.md, and
cli/embedded/skills/using-agentops/SKILL.md mirror.

Constraints honored:
- 4-runtime parity: every skills/ change has skills-codex/ counterpart
- Pattern-adoption only: NO verbatim phrases >5 consecutive words from jsm
  sources (one canonical pattern title "Whack-a-Mole Anti-Pattern" attributed
  via LICENSE.md)
- Per-file footer attribution for enhancement-only refs; skill-level LICENSE.md
  for system-tuning
- skills/perf/ untouched
- mcp-server-design content NOT absorbed (deferred to agentopsd MCP transport
  via discoverability pointer)

.gitignore now excludes .agents/ globally - workspace runtime state is no
longer git-tracked.

Validation: 7x audit-codex-parity PASS, heal-skill --strict clean,
sync-skill-counts PASS (62 user-facing + 9 internal = 71 codex), shellcheck
clean, pre-push-gate --fast passed.
2026-05-03 18:56:23 -04:00
Boden Fuller 41b31d087e chore: sync generated artifacts after Wave 1 (COMMANDS.md, embedded hooks, skill counts, cobra registration)
Orchestrator post-wave step. Mechanical updates triggered by Wave 1
landings (soc-irg1.1 through .3):

- cli/cmd/ao/cobra_commands_test.go: add 'scope' and 'skills' to both
  expectedCmds lists (TestCobraCommandTreeRegistration +
  TestCobraExpectedCmdsMatchRegistration), so the cobra registration
  conformance test passes with the new ao subcommands.
- cli/docs/COMMANDS.md: regenerated by scripts/generate-cli-reference.sh
  to include ao scope and ao skills subcommands.
- cli/embedded/hooks/{hooks.json,edit-scope-guard.sh}: re-synced via
  cd cli && make sync-hooks (per CLAUDE.md sync-hooks rule). Wave 2 (I5)
  pre-mortem amendment will re-verify embedded copies after the mass
  refactor.
- skills/SKILL-TIERS.md: add /scope row under Primitives table.
- docs/SKILLS.md, docs/ARCHITECTURE.md, PRODUCT.md: skill counts synced
  by scripts/sync-skill-counts.sh from 69 → 70 (and user-facing 60 → 61).

All Wave 1 issues now closeable. Codex parity audit passes. Full
go test ./... green.
2026-05-02 08:15:51 -04:00
Boden Fuller 86a822bb44 Re-architect AgentOps hooks around JIT context 2026-04-28 16:06:14 -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 a8cca4d15c chore(skills): refresh llm wiki artifacts 2026-04-11 22:36:24 -04:00
Boden Fuller a1a58bfb28 docs(skills): add autodev contract skill 2026-04-11 21:57:03 -04:00
Boden Fuller 765d0891cb feat(skills): ship dream interactive surface 2026-04-10 09:04:21 -04:00
Boden Fuller 8adb8b7773 docs: align README-linked docs with current framing 2026-04-09 23:03:30 -04:00
Boden Fuller aef1efab3f feat(validation): add Stage 4 behavioral validation — holdout scenarios + satisfaction scoring
Add the missing validation tier between council/vibe (Stage 3) and production
(Stage 5). Inspired by StrongDM's Digital Twin Universe and Shield AI's
SITL/HITL/VITL fidelity ladder.

New capabilities:
- Holdout isolation hook: PreToolUse gate blocks agent access to .agents/holdout/
  unless AGENTOPS_HOLDOUT_EVALUATOR=1 (prevents reward hacking)
- Scenario schema: schemas/scenario.v1.schema.json defines holdout scenario format
- Verdict extension: satisfaction_score (0.0-1.0) and satisfaction_breakdown added
  as optional fields to verdict schema (v4)
- Scenario skill: /scenario for authoring and managing holdout scenarios
- Validation pipeline: STEP 1.8 inserted for behavioral validation
- Vibe exposure: weighted_score now exposed as satisfaction_score
- CLI commands: ao scenario init|list|validate with 11 passing tests
- Planning rule: schema wave ordering for additionalProperties:false
2026-04-05 08:35:31 -04:00
Boden Fuller 1074636493 feat(skills): add /red-team skill — persona-based adversarial validation (ag-fwd)
Thin orchestrator that spawns context-restricted agents to probe whether
docs and skills actually work when someone with constraints tries to use
them. Complements /council (expert judgment) and /vibe (code quality)
with consumer-side usability testing.

- Add skills/red-team/ with SKILL.md (336L) and 4 reference docs
- Add red-team preset to council personas (4 personas: OnCall, NewHire, Agent, Consumer)
- Add /red-team to using-agentops catalog and SKILL-TIERS.md
- Sync skill counts to 65 across all docs
- stability=experimental, v1 surfaces: docs + skills only

Codex gpt-5.4 reviewed discovery plan; all 5 critiques addressed in v2.
2026-04-02 11:39:01 -04:00
Bo 69630a8de0 feat: add knowledge activation skill and CLI surfaces (#87)
* feat: add knowledge activation skill and CLI surfaces

* chore: sync embedded skills and codex artifact hashes

* test: cover quality signals hook in bats suite
2026-04-01 20:53:17 -04:00
Boden Fuller 0030790283 feat(skills): encode evidence-driven anti-patterns, unify flywheel metrics, add normalization defect detection
- Create global ~/.agents/MEMORY.md with 7 universal principles and top patterns
- Unify sigma/rho/delta definitions across skills/docs/code (code is truth)
- Add normalization defect scan to Athena defrag (placeholder, stacked frontmatter, bundled, dupes)
- Add anti-pattern pre-flight to /plan (dead infra, brainstorm-as-plan, 40% context, commit cadence)
- Expand pre-mortem from top-5 to top-8 FAIL patterns (dead infra activation, rollback maps, four-surface closure)
- Add 4 new forge uncaptured lesson categories (normalization defects, promotion pipeline, taxonomy, stale contradictions)
- Add normalization defect check to post-mortem four-surface closure
- Fix pre-existing broken link in flywheel-diagnostics.md (regex in code block)
- Sync all changes to skills-codex with Codex-specific adaptations preserved
2026-03-30 15:27:49 -04:00
Boden Fuller e2feefac0e feat(cli): add ao harvest for cross-rig knowledge consolidation
New `ao harvest` command walks all .agents/ directories across the
workspace, extracts learnings/patterns/research, deduplicates by
content hash, and promotes high-confidence items to the global hub.

- cli/internal/harvest: walker, extract, catalog packages (25 tests)
- cli/cmd/ao/harvest.go: cobra command with --roots, --promote-to,
  --min-confidence, --dry-run, --json flags
- skills/harvest: /harvest skill with governance reference
- skills-codex/harvest: codex parity
- config: HarvestRoots field in PathsConfig
- docs: skill counts synced to 61 (52 user-facing)
2026-03-30 11:01:49 -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
Boden Fuller b41bcda083 feat(skills): add 6 lifecycle skills and wire cross-references
Add test, review, refactor, deps, perf, and scaffold skills to fill
gaps in the developer lifecycle for engineers working with coding agents.

New skills:
- /test: test generation, coverage analysis, TDD workflow
- /review: incoming PR and agent output review (SCORED checklist)
- /refactor: safe, verified refactoring with regression testing
- /deps: dependency audit, update, vulnerability scan, license check
- /perf: profiling, benchmarking, regression detection, optimization
- /scaffold: project scaffolding, component generation, CI setup

Wired 8 existing skills to reference the new ones:
- complexity → /refactor (next step for CC > 20 targets)
- security → /deps (OWASP A06 dep vuln scanning)
- vibe → /test, /perf (coverage gaps and perf review)
- release → /deps (pre-flight vuln check)
- evolve → /test, /refactor, /deps, /perf (work generators)
- implement → /test (TDD accelerator)
- bug-hunt → /refactor, /perf (complex/perf bug escalation)
- quickstart → /scaffold (new project next step)

Skill count: 45 → 51 user-facing (60 total with 9 internal).
2026-03-27 19:18:10 -04:00
Boshu2 b3b9fc12e9 fix: dedupe codex native skill installs 2026-03-12 19:54:34 -04:00
Boshu2 d6aafb4bf2 docs: update skill descriptions for v2.24.0 capabilities
Add v2.24.0 feature descriptions to README, docs/SKILLS.md,
docs/ARCHITECTURE.md, using-agentops catalog, and docs/CHANGELOG.md.
Fixes CI doc-release-gate failure (missing docs/CHANGELOG.md entry).
2026-03-12 16:10:38 -04:00
Boshu2 029f3ecb08 docs: fix broken links and orphaned docs from README restructure
- GLOSSARY: fix broken anchor #knowledge-flywheel → #pillar-4-knowledge-flywheel
- GLOSSARY: update #the-rpi-workflow → #the-phased-lifecycle
- ARCHITECTURE: rename "The RPI Workflow" → "The Phased Lifecycle"
- INDEX: add evolve-setup.md, ENV-VARS.md, SKILL-ROUTER.md, and 5 other orphaned docs
- context-lifecycle: fix source column to self-reference instead of README
2026-03-11 17:47:54 -04:00
Boshu2 0c1d4f6308 docs: align lifecycle docs with primitive chain audit 2026-03-11 12:37:24 -04:00
Boshu2 7cee74c1f2 feat(skills): decompose /rpi into /discovery + /validation phase orchestrators
Create 3-layer skill architecture: primitives → phase orchestrators → thin /rpi wrapper.

New skills:
- /discovery: brainstorm → ao search → research → plan → pre-mortem (gate)
- /validation: vibe → post-mortem → retro → forge (flywheel)

/rpi rewritten from 393-line monolith to ~200-line thin wrapper that delegates
to /discovery → /crank → /validation with complexity classification, --from
routing, and optional loop.

Pre-mortem: 4-judge deep council → WARN, all HIGH findings fixed.
2026-03-10 12:23:43 -04:00
Boden Fuller 18c0db867c Hotfix Codex install docs and Athena metadata 2026-03-07 15:30:07 -05:00
Boden Fuller 4abd2a69be docs(context): sweep remaining ao inject references across docs/tests/scripts
Wave 3 of context-enforcement-phase3: replace ao inject workflow
guidance with ao lookup across documentation, test fixtures, and
scripts. Remaining 32 references are legitimate (inject command
implementation, CHANGELOG history, CLI reference tables, test
fixtures for command detection).

Files updated:
- 11 core docs (context-packet, seed-definition, leverage-points, etc.)
- 7 workflow diagram docs (brief, system-map, cli-skills-map, HOOKS, etc.)
- 4 scripts (proof-run, test-flywheel, check-skill-flag-refs, etc.)
- 3 shell tests (proof-run e2e, token-budgets, no-compaction)
- 1 Go test (json_validity_test.go)
- Production code: metrics_nudge.go, metrics_flywheel.go, hooks.go
2026-03-07 11:59:18 -05:00
Boden Fuller b68a739331 feat(context): replace ao inject with signpost network + on-demand ao lookup
Kill the pre-loaded inject blob pattern. Context is now delivered via:
- AGENTS.md signpost files in .agents/ subdirectories (navigation)
- ao lookup --query for on-demand learnings retrieval
- session-start.sh emits a pointer instead of a blob

Issues 1-8 of context-enforcement-phase3 plan:
1. Root .agents/AGENTS.md signpost + .gitignore restructure
2. Six directory signposts (learnings, patterns, plans, council, handoff, rpi)
3. session-start.sh and worktree-setup.sh no longer call ao inject
4. Skills updated: recover, evolve, crank, swarm, council, SKILL-TIERS
5. CLAUDE.md zero-context startup references .agents/AGENTS.md
6. context-contract-check hook deleted + CI/BATS refs removed
7. ao inject stderr deprecation notice + ao lookup help improved
8. Flywheel docs updated (ARCHITECTURE.md, knowledge-flywheel.md)
2026-03-07 11:03:13 -05:00
Boden Fuller e7d06a0ab3 feat(skills): redesign post-mortem as knowledge lifecycle processor (na-9zz)
Post-mortem evolves from 2-step wrapper (council + retro) to 6-phase
knowledge lifecycle: council → extract → process → activate → retire → harvest.

Key changes:
- Post-mortem SKILL.md: 588→983 lines with Phases 2-5 (backlog processing,
  activation to MEMORY.md, stale learning retirement)
- Retro SKILL.md: 406→106 lines, slimmed to quick-capture only
- Session-start hook: 275→193 lines, stripped to manual-only mode
- New references: backlog-processing.md, activation-policy.md
- Migrated references: context-gathering.md, output-templates.md (retro→post-mortem)
- Updated 7 catalog/doc files for retro→post-mortem routing
- Codex mirrors and embedded copies synced

Net -937 lines. All validation gates pass.
2026-03-03 20:52:01 -05:00
Boden Fuller 96b62f20fb chore: stage council V2 contract wiring and skill-codex updates
Wire 6-judge analytics recommendations into skill contracts, add push
skill, sync embedded hooks, and update docs/product metadata.
2026-03-02 06:48:56 -05:00
Boden Fuller 420aac444c feat(athena): Wave 1 — ao mine, ao defrag, /athena skill (ag-co7.1–3)
Implements the first three issues of the Athena Knowledge Intelligence Engine:

- ao mine: extracts knowledge signal from git history, .agents/research/
  orphans, and code complexity hotspots. Outputs JSON to .agents/mine/.
  Supports --sources, --since (26h/7d/etc), --output, --quiet, --dry-run.

- ao defrag: prunes orphan learnings, deduplicates near-duplicates via
  trigram overlap, sweeps oscillating evolve goals from cycle-history.jsonl.
  Outputs JSON to .agents/defrag/. All operations non-destructive by default.

- /athena skill: orchestrates Mine → Grow → Defrag cycle with LLM-driven
  validation of existing learnings against current code, cross-domain
  synthesis, gap identification, and report generation.

Also: adds mine+defrag to cobra command registration test, syncs skill
counts from 50→51 across all docs, updates embedded skill copy.

Pre-mortem fixes applied: SinceSeconds as int64 (not time.Duration),
co-change algorithm clarified as files-in-≥3-commits sorted by frequency.
2026-03-01 08:08:01 -05:00