Commit Graph

56 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 8ad6747913 chore(ao): delete the ao evolve CLI surface (ag-llni slice 1) (#724)
**Slice 1 of ag-llni** — retire `ao rpi`/`ao evolve` (orchestration is
no longer an in-CLI engine). This PR removes the **`ao evolve`** half;
the `rpi*.go` + phased web is slice 2.

**Architecture (operator-confirmed 2026-06-04):** orchestration is
two-tier — *inner loop* (one session) = skills/CLIs/native-subagents +
**Workflows** (`.claude/workflows/operating-loop.js` + `bead-crank.js` —
the Claude encoding of inner-orchestration that was mis-shaped as
`rpi`/`evolve`); *outer loop* (many sessions) = **NTM +
mcp-agent-mail**. Codex inner-loop = NTM + agent-mail for now. Leaf CLIs
(`corpus`/`goals`/flywheel/knowledge loops = BC1 corpus), NTM, and
agent-mail all stay.

### Changes
- Deleted `ao evolve` + 4 subcommands (`config`, `next-work`, `blocked`,
`write-stop-marker`) — 10 files.
- Relocated the one non-evolve coupling, `countCronHistoryRows`, into
its sole consumer `cron_self_adjust.go`.
- Removed `evolve` from the `cobra_commands_test.go` golden
`expectedCmds` list (2 sites).
- Regenerated `cli/docs/COMMANDS.md` (−125 lines) +
`docs/cli-skills-map.md`.

### Verification
- `go build ./...` green · `go vet ./cmd/ao` clean · **`go test
./cmd/ao` = 9251 pass**.
- Net: 13 files, −2192 LOC.

Bounded-context: BC5-Runtime
Closes-scenario: ag-llni#delete-evolve-cli
Evidence: cli/cmd/ao/cron_self_adjust.go
Test-Removal-Reason: ao evolve CLI surface retired (ag-llni) —
orchestration moved to .claude/workflows + NTM; the 5 deleted
evolve_*_test.go covered now-deleted command code, not kept behavior.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-06-05 00:21:53 +00: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 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 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 c4e83b787a feat(skills/shared): cross-harness skill parity reference (soc-1wsr #knowledge-parity-rule) (#337)
## What
New file: `skills/shared/references/cross-harness-skill-parity.md` (155
lines) + 1-line References-list entry in `skills/shared/SKILL.md`.

Codifies: a skill must carry the same **intent, knowledge, BDD/Gherkin,
and observable behavior** across Claude Code and Codex. Only the
*implementation* adapts. `audit-codex-parity.sh` green is
necessary-not-sufficient — a trimmed baseline is invisible to the audit.

## Why
The audit script enforces structural drift against the established
baseline, but if that baseline was itself a trimmed copy (9 of 19
reference files, omitting whole mechanisms like
convergence/healing/hypothesis tracking), the audit silently approves
the gap. This actually happened with the codex evolve skill (soc-y5vh.8
retro). The rule wasn't captured anywhere a future agent would find
before re-trimming.

## Sibling pattern
Follows `skills/swarm/references/shared-checkout-discipline.md` (PR
#333) shape.

## Fitness-delta
| Metric | Before | After |
|---|---|---|
| shared references | 51 | 52 |
| knowledge-parity rules anchored | 0 | 1 |
| codex frontmatter strictness rule | 0 | 1 |
| legitimate-vs-defect implementation adaptations table | 0 | 5 rows |

## Validation
- pre-push-gate.sh --fast: **passed (44 skipped)**

## Closes
Closes-scenario: soc-1wsr#knowledge-parity-rule
Evidence: skills/shared/references/cross-harness-skill-parity.md

## Provenance
Sources (2 anchored):
`.agents/learnings/2026-05-16-cross-harness-skill-parity.md` +
`.agents/learnings/2026-05-10-codex-frontmatter-is-strict-name-description.md`.
Narrower cross-harness-only scope (the other 3 'cross-vendor bucket'
learnings belong to different clusters: cross-vendor-duel-converges →
/council, claude-app-default-readonly → already in docs/contracts/,
cli-command-dual-generator → already CI-encoded).

Co-authored-by: Codex <codex@example.invalid>
2026-05-20 13:26:46 +00:00
Bo 6f757d927d feat(skills/shared): substring-rename-overreach reference (soc-sqof #cross-skill-mirror) (#336)
## What
Mirrors `docs/learnings/2026-05-13-substring-sed-rename-overreach.md`
(from /evolve cycle 126) into `skills/shared/references/` so any skill
(/evolve, /crank, /refactor, /standards) can reference the pre-rename
checklist.

## Why
The substring-overreach rule was authored from a real cycle-126 bug
(`QueueClaim → QueueLease` sed caught 5 unrelated identifiers). It's
promoted in docs/learnings/ but no skill references it. Putting the
mirror in skills/shared/ makes it available cross-skill.

## Sibling pattern
Follows `skills/swarm/references/shared-checkout-discipline.md` (PR
#333) shape: Worked example → The Rule → Worked Pattern (bash) →
Anti-pattern Signal → When This Matters Most → See Also.

## Fitness-delta
| Metric | Before | After |
|---|---|---|
| shared references | 50 | 51 |
| pre-rename checklists cross-skill | 0 | 1 |
| worked rename anti-pattern examples | 0 | 4 |

## Validation
- pre-push-gate.sh --fast: **passed (43 skipped)**

## Closes
Closes-scenario: soc-sqof#cross-skill-mirror
Evidence: skills/shared/references/substring-rename-overreach.md

## Provenance
Cluster #5 of 2026-05-18 Track-C mining pass.

Co-authored-by: Codex <codex@example.invalid>
2026-05-20 12:52:13 +00:00
Bo d69f9f0c13 feat(architecture): intent-to-loop hexagon doc + BDD skill scaffolding (soc-4d0r) (#321)
## What

Foundation slice for the **soc-qk4b** epic ('TDD-crank all skills into
intent-to-loop hexagons'). The epic description listed these artifacts
as 'What already exists' — but they were never committed to main.
Without them, the 6 sub-issues (`soc-qk4b.1` through `.6`) cannot start.

## New

`docs/architecture/intent-to-loop-hexagon.md` — process-level hexagon
connecting [Ports and
Adapters](../blob/main/docs/architecture/ports-and-adapters.md)
(structure) to [Operating
Loop](../blob/main/docs/architecture/operating-loop.md) (execution).
Defines the 8-port chain with driving/driven/guard adapters and
done-state rules:

```
Intent
  -> shape_intent      -> AcceptanceExample
  -> persist_intent    -> WorkItem / Bead
  -> plan_slices       -> Slice
  -> execute_slice     -> implementation
  -> execute_wave      -> wave packet
  -> validate_acceptance -> CriterionVerdict
  -> record_evidence   -> Evidence
  -> steer_goal        -> LearningDisposition
```

## Skill changes

Source-of-truth in `skills/`, mirrored to `skills-codex/` (re-hashed via
`scripts/regen-codex-hashes.sh`):

| Skill | Change |
|---|---|
| `plan` | Require Gherkin block or upstream-scenario link for
feature/bug/product-facing behavior issues; `hexagon:` boundary block
for non-trivial plans and beads. |
| `discovery`, `rpi`, `validate`, `validation`, `beads`,
`shared/validation-contract` | Reference the intent-to-loop hexagon as
the boundary contract. |

## Doc plumbing

- `docs/architecture/{index,operating-loop,ports-and-adapters}.md` +
`docs/contracts/skill-ports-and-adapters.md`: cross-link to new hexagon.
- `docs/templates/{intent-issue,slice-validation}.md`: carry hexagon
block into intent issues and slice validation plans.
- `mkdocs.yml`, `docs/documentation-index.md`: register new doc in nav.

## AGENTS.md

- bd integration block regenerated (`v:1 profile:full hash:f65d5d33`).
- Session Completion section added with **conditional** `bd dolt push`
wording — passes `scripts/validate-bd-closeout-contract.sh`.

## Validation

- ✅ `scripts/pre-push-gate.sh --fast`: passed (1 pre-existing warn on
`scenarios/trace` executable-spec link integrity, unrelated)
- ✅ `scripts/validate-bd-closeout-contract.sh`: passes
- ✅ `scripts/regen-codex-hashes.sh`: 7 manifest hashes updated for
parity
- ✅ All 8 codex JSON files: syntactically valid
- ✅ Self-review per pre-commit hook: no removed error handling, no
changed defaults, no silent data loss

## Origin

Discovered during analysis of merged branch
`refactor/council-mode-taxonomy-soc-ml4l` (PR #293) on 2026-05-18 — the
BDD/hexagon scaffolding sat uncommitted in the worktree after #293
merged. Filed as `soc-4d0r` with `discovered-from: soc-qk4b`. This PR
lands the work cleanly off fresh `main`.

## Unblocks

- soc-qk4b (epic)
- soc-qk4b.1 — Control ledger for 77-skill hexagon crank
- soc-qk4b.2 — Loop priority skills (hexagon/TDD crank)
- soc-qk4b.3 — Factory priority skills
- soc-qk4b.4 — Corpus priority skills
- soc-qk4b.5 — Validation priority skills
- soc-qk4b.6 — Runtime priority skills

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

Co-authored-by: Codex <codex@example.invalid>
2026-05-18 16:48:14 -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 8c731aef64 fix(ci): make skill validate-contracts billboard-aware (clears 4 CI failures)
#275's billboard refactor thinned process-skill SKILL.md files and moved
detail into references/, but the validate contracts still grepped SKILL.md.

skill-lint + smoke-test: relax content-presence checks in crank/implement/
  post-mortem/swarm validate.sh to scan the skill as a unit (SKILL.md +
  references/); structural/identity checks stay SKILL.md-only. test-first-smoke
  updated to match relocated SPEC/TEST WAVE + Step 0/4 headings.
skill-lint line caps: trim flywheel 310 -> 286 (cap 300), using-agentops
  261 -> 239 (cap 250) by removing redundant prose, no content lost.
skill-integrity: link 3 orphaned references (crank/branch-isolation,
  validation/flags + release-readiness-gates).
codex parity: regenerate stale skills-codex source hashes (77 skills).

Local: run-all.sh PASS, heal.sh --strict clean, smoke-test PASS.
2026-05-15 16:30:32 -04:00
Boden Fuller 302be5e16d feat(practice): pass-6 backfill — 10 more practices: declarations + sync-hooks
Adds practices: frontmatter to the remaining 10 missing skills under skills/
(pr-implement, pr-plan, pr-research, pr-retro, reverse-engineer-rpi, shared,
skill-auditor, skill-builder, system-tuning, using-agentops). After pass 6:
75 with practices / 679 missing. Zero skills under skills/ remain missing —
pass-7+ will broaden into non-skill primitives (hooks, evals, schemas,
scripts). Embedded using-agentops re-synced via make sync-hooks; codex
parity hashes regen'd.
2026-05-10 22:53:46 -04:00
Boden Fuller a7a51f2c16 feat(standards): codify skill tier caps and codex registration 2026-05-03 23:00:11 -04:00
Boden Fuller 4560397d3e fix(docs): promote agents learning references 2026-05-03 10:39:10 -04:00
Boden Fuller 557e4af9ec feat(codex): cap skills-codex description catalog and add --repair-shape audit
Adds a 2400-char aggregate budget for skills-codex/*/SKILL.md `description:`
fields in tests/skills/test-token-budgets.sh, then trims each skill's description
to fit (catalog now 2146/2400). Both Claude and Codex SKILL.md descriptions
are kept in sync; codex .agentops-generated.json hashes regenerated.

Adds --repair-shape to scripts/audit-codex-hooks.sh: when ~/.codex/hooks.json
is missing or in legacy-flat shape, rewrites it from hooks/codex-hooks.json
with the active plugin_root (read from .agentops-codex-install.json) and
backs up any prior file. Covered by new test_repairs_legacy_flat_shape.

Memory decay (4 .agents/ files) bumped by the SessionStart inject hook.
2026-04-30 15:16:59 -04:00
Claude b0fa4fd9a9 fix(ci): regen skills-codex/shared hashes + drop brittle regex pin
CI failures from PR #150's first push:

1. codex-runtime-sections (validate-codex-generated-artifacts step)
   "shared: manifest generated_hash drift detected"
   "shared: marker generated_hash drift detected"
   Cycle 7 edited skills-codex/shared/references/strict-delegation-contract.md
   without regenerating the manifest hash. Ran scripts/regen-codex-hashes.sh
   which updated hashes for 1 skill (shared).

2. bats-tests (tests/scripts/evolve-coverage-delta.bats)
   The "parser uses the same regex anchors as the script" assertion grepped
   the script for a literal regex string, but the test's escaping of the
   literal didn't survive bats's preprocessor — the assertion failed even
   though the script's regex was correct.

   Replaced with an awk-based assertion that just confirms the script's
   coverage extraction line still includes "grep -oE" + "coverage:" + the
   "?%" anchor fragment. Robust against unrelated whitespace/quote shape
   changes; still catches a regression that drops the % suffix.

Verified locally: full bats tests/scripts/*.bats and tests/hooks/*.bats
suites green; validate-codex-generated-artifacts.sh passes.
2026-04-26 06:31:34 +00:00
Claude bb61927184 fix(codex): rewrite Skill() to \$skill notation in delegation contract
Codex DAG steps in skills-codex/ should use Codex's \$skill invocation
syntax, not Claude's Skill() tool form. The shared
strict-delegation-contract.md mirror still carried 12 Skill() references,
flagged by the vibe judge on 2026-04-19.

Rewrites in skills-codex/shared/references/strict-delegation-contract.md:
- Skill(skill="<name>", ...) → \$<skill> <args> (matches converter.sh's
  rule: s/Skill\(skill="([^"]+)"...)/$1 \$2/)
- Three concrete examples in the Positive Pattern section now show
  \$discovery, \$crank, \$validation invocations (not Skill(skill=...))
- Anti-Pattern section talks about Codex sub-agent spawns (not Agent())
  since that's the closest Codex equivalent
- Anti-Pattern table renames "Skill() vs Agent()" → "Codex sub-agents
  vs \$<skill> invocations" with corresponding cell updates

Verification:
- skills/shared/references/strict-delegation-contract.md (Claude variant)
  is unchanged — still uses Skill() syntax which is correct for Claude
- bash scripts/audit-codex-parity.sh → passed
- bash skills/heal-skill/scripts/heal.sh --strict → clean

Closes the council-finding next-work item:
  "Sweep skills-codex/ DAG bodies for Skill() to \$skill notation"
2026-04-26 05:45:57 +00:00
Boden Fuller fc863c9d9f Refresh Codex skills for GPT-5.5 2026-04-24 21:56:40 -04:00
Boden Fuller 0496441989 Reduce skill catalog context footprint 2026-04-24 00:52:27 -04:00
Boden Fuller 836eb9d1b2 fix(ci): commit forged learnings + regen codex shared hash
doc-release-gate was failing because skills/rpi/SKILL.md and siblings link
to .agents/learnings/2026-04-19-orchestrator-compression-anti-pattern.md
which lived only in a local gitignored dir. Force-add the file (other
learnings in .agents/learnings/ are force-added too).

codex-runtime-sections was failing because skills-codex/shared/SKILL.md
was edited in 2385dbd4 to link the strict-delegation contract but the
manifest hash wasn't regenerated. Run scripts/regen-codex-hashes.sh.

Also force-add .agents/learnings/2026-04-19-quick-strict-delegation-70min-meta-change.md
(referenced from the 2026-04-19 post-mortem report; same ignored-dir issue).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 11:07:27 -04:00
Boden Fuller 2385dbd4fb fix(ci): resolve 7 CI failures from cc6750c4
## doc-release-gate (link validation)
- tests/docs/validate-links.sh: fix canonical-path assignment bug where
  inline `|| fallback` never fires if the outer $() assignment itself
  does not fail. Rewrite as explicit if-else so mkdocs-generated paths
  (docs/skills/*.md, docs/cli/*.md) resolve correctly in CI environments
  where those directories don't exist on disk.

## skill-lint + skill-integrity + go-build (TestSkillContract_ReferencesLinkedInSKILLMD)
- Add strict-delegation-contract.md link to skills/shared/SKILL.md and
  skills-codex/shared/SKILL.md Reference Documents sections (heal.sh
  --strict requires every references/*.md to be linked in its SKILL.md).
- Extend tests/skills/lint-skills.sh regex to support ../shared/references/
  paths in addition to skills/<name>/references/ — matches heal.sh behavior.

## markdownlint
- Disable MD030 (list-marker-space) in .markdownlint.json. Material theme
  grid-cards syntax uses 3 spaces after `-` which is standard for multi-line
  items; markdownlint default of 1 space conflicts. 61 violations → 0.

## contract-compatibility-gate + smoke-test (next-work parity)
- .agents/rpi/next-work.jsonl: fix invalid enum values for the
  2026-04-19-rpi-dag-hardening entry. Type "enhancement" → "process-improvement",
  source values normalized to valid enum (council-finding, retro-learning,
  backlog-processing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 11:01:52 -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 2bfeb5bd35 docs(constraints): clarify active constraint inputs 2026-04-13 09:52:30 -04:00
Boden Fuller 98e581989c codex: retire stale artifact provenance metadata 2026-04-01 13:10:42 -04:00
Boden Fuller 0b3b29c6c2 docs: align repo front doors and codex artifact guidance 2026-04-01 13:10:42 -04:00
Boden Fuller 45db7ab97b feat(skills): apply Claude Code architecture lessons — retry budgets, stability flags, quality signals, orchestration pattern
Inspired by patterns discovered in Claude Code's npm source map leak:

- Add hook failure budget to lib/hook-helpers.sh (MAX_CONSECUTIVE_HOOK_FAILURES=3,
  configurable via AGENTOPS_HOOK_FAILURE_CAP) — prevents runaway hook loops
- Add metadata.stability field (experimental|stable) to skill frontmatter schema
  with heal.sh validation (H010) and skill-conventions documentation
- Add quality-signals.sh hook detecting repeated prompts and correction patterns,
  logging to .agents/signals/session-quality.jsonl with defined schema
- Document orchestration-as-prompt as a first-class pattern in shared references,
  linked from crank, swarm, evolve, rpi skills with codex parity
2026-04-01 08:07:39 -04:00
Boden Fuller 3f6bb2bda4 chore(codex): sync Codex skills for 6 new lifecycle skills
Add Codex variants (SKILL.md, prompt.md, markers) for test, review,
refactor, deps, perf, and scaffold. Wire cross-references in 8 existing
Codex skill copies. Update catalog and manifest.
2026-03-27 19:39:12 -04:00
Boshu2 8365584399 feat(skills): implement 5 post-mortem improvements via parallel swarm
- Mirror-reference script (scripts/mirror-codex-references.sh) for automated skills→codex sync
- Confidence scoring in athena Mine/Grow with 0.3-0.9 weighted scale and auto-promotion
- SHARED_TASK_NOTES bridge in crank orchestrator for cross-worker context
- PostToolUse write-time quality hook for Write/Edit anti-pattern detection
- Plan mutation JSONL audit trail in crank for drift analysis
- 15 reference docs across 10 skills from competitive analysis
- All codex mirrors updated, embedded hooks synced
2026-03-21 21:46:38 -04:00
Boshu2 fea2b6a300 fix(codex): revert auto-copy of Claude-primitive references to skills-codex
The regen-codex-hashes.sh auto-copy feature copied reference files
containing Claude-specific primitives (TeamCreate, backend-claude-teams)
into codex skills, causing parity audit failures. Revert the script
change and remove all auto-copied files. Keep only the reviewer-config
example that was intentionally created.
2026-03-21 16:45:27 -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 b5316baef7 fix: align codex skill bundle with runtime contract 2026-03-21 10:08:27 -04:00
Boshu2 7d5162591b fix: harden codex runtime skill parity 2026-03-18 16:19:51 -04:00
Boshu2 8e59cf1389 fix(skills-codex): audit + fix 60+ findings, strengthen CI gates
Skills content fixes:
- Add metadata.tier to all 54 skills-codex/ frontmatter
- Fix wrong-directory cross-refs in 11 skills (skills/ → ../)
- Remove Claude primitive leakage from 13 skills (TaskCreate,
  AskUserQuestion, read_file, Agent tool, claude-code-latest-features)
- Fix dead refs, link missing references, remove orphaned Claude files
- Fix malformed ..$X link syntax in brainstorm, codex-team, rpi, validation
- Minor skills/ fixes: release refs, using-agentops count, push sections

CI gate hardening (false-pass elimination):
- heal.sh: scan skills-codex/, add MISSING_TIER/MALFORMED_LINK/DUPLICATE_REF
- audit-codex-parity.py: +7 Claude primitive patterns, +WRONG_XREF_DIR
- validate-links.sh: add skills-codex/ to scan scope (726 → 1117 links)
- validate-codex-generated-artifacts.sh: frontmatter check, invoke audit
2026-03-15 13:51:49 -04:00
Boshu2 92d05099ca chore(skills-codex): regenerate artifact hashes + sync CLI docs
- Update generated_hash in manifest and markers for 8 changed skills
- Regenerate CLI reference doc (date bump)
- Include .agents utility counter updates
2026-03-14 21:44:25 -04:00
Boshu2 cdd985a6dc fix(skills-codex): sync BF pyramid parity + remove Claude backend cross-contamination
- Add BF1/BF2/BF4 bug-finding level selection to implement, post-mortem, validation
- Delete orphaned backend-claude-teams.md from council, research, shared, swarm
- Remove dead references from research/SKILL.md, shared/SKILL.md
- Remove dead converter sed rule for backend-claude-teams.md rename
- Add Reference Documents section to swarm/SKILL.md
- Update swarm validate.sh to check only backend-codex-subagents
2026-03-14 21:39:20 -04:00
Boshu2 4eb9de5dfd fix(codex): fix stale validation scripts and top-level md rewriting
- plan/scripts/validate.sh: stop grepping for TaskList/TaskCreate,
  check for generic task tracking instead
- swarm/scripts/validate.sh: stop grepping for TeamDelete, check for
  generic cleanup patterns instead
- converter: rewrite top-level .md files (not just subdirectory .md),
  fixes shared/validation-contract.md (was 12 Claude refs, now 0)
- Regen all 54 codex skills
- Full sweep: 0 Claude primitives across all codex files
2026-03-14 10:07:36 -04:00
Boshu2 1332005911 fix(converter): strip task primitives instead of mapping to unavailable tools
todo_write and update_plan are NOT available as Codex tools (empirically
verified via codex exec). Previous mapping was wrong — now strips all
Task*/Team*/SendMessage lines instead.

Also:
- Add Skill(skill="X") → $X rewrite rule
- Add Skill() invocation check to conformance validator
- Update contract doc with corrected mapping table
- Regen all 54 codex skills: 0 conformance failures, 0 SKILL.md primitives
2026-03-14 10:01:36 -04:00
Boshu2 f41e6d6a5a fix(converter): rewrite reference files through codex_rewrite_text
Reference .md files in skills-codex/ were copied verbatim from source,
bypassing all converter rewrite rules. Now .md files in references/,
scripts/, and other subdirs are processed through codex_rewrite_text()
during passthrough copy.

Empirically validated: Codex agent confirms 0 Claude primitives in
converted reference files (was 107). Remaining gap: crank/swarm
orchestration patterns need full Codex-native rewrites (not converter
fixes) — tracked separately.

Validated with: codex exec -s read-only (gpt-5.4)
2026-03-14 03:29:04 -04:00
Boshu2 e046774f90 fix(converter): map Claude primitives to Codex equivalents instead of stripping
Previous approach stripped all Claude primitive lines. Now maps to real
Codex tools where equivalents exist:
- TaskCreate → todo_write
- TaskList/TaskUpdate/TaskGet → update_plan
- Edit tool → apply_patch
- Read tool → read_file
- Grep tool → rg
- Glob tool → glob_file_search
- Agent(subagent_type=Explore) → explorer role
- TeamCreate/SendMessage → strip (truly absent in Codex)

Update contract doc with Codex built-in tools table and mapping.
Update conformance validator to accept mapped tool names.
Regenerate all 54 codex skills.

Sources: developers.openai.com/codex/skills, /multi-agent, /cli/reference
2026-03-14 03:15:42 -04:00
Boshu2 7cab831185 fix(converter): strip Claude primitives from codex output instead of renaming
- Remove TaskCreate/TaskList/TaskUpdate/TeamCreate/SendMessage lines entirely
  (lowercase-hyphenated forms don't exist in Codex either)
- Fix skill path rewrite: ~/.claude/skills/ → ~/.agents/skills/ (Codex discovery)
- Conformance validator: 124 primitive references → 0
- Regenerate all 54 codex skills
2026-03-14 03:03:28 -04:00
Boshu2 62ce8b0d1c feat(skills): ag-wug epic + codex converter parity regen
- Add output_contract, effort tables, sparse checkout guidance to skills
- Update claude-code-latest-features.md across all skills
- Regenerate all 54 codex skills with improved converter rules
- Codex parity: 107 → 8 findings (92% reduction)
2026-03-14 02:27:59 -04:00
Boshu2 0e62657856 docs(flywheel): close prevention-ratchet validation loop 2026-03-10 07:44:59 -04:00
Boshu2 d01aa1e894 chore: sync codex bundle after merge 2026-03-09 21:41:07 -04:00
Boshu2 d4bd76f0aa chore: preserve canonical root local changes 2026-03-09 16:56:09 -04:00
Test 54fababc0d fix(agentops): land audit follow-ups and codex sync 2026-03-08 10:53:35 -04:00
Boden Fuller 9205270833 Harden local codex skill validation 2026-03-07 13:26:49 -05:00
Boden Fuller e0e21e3535 feat: add native Codex plugin install support 2026-03-07 07:30:08 -05:00
Bo b75bee0911 chore: automate codex skill parity (#72) 2026-03-05 20:43:27 -05:00
Boden Fuller 772b149839 fix(ci): resolve all 6 failing validate workflow jobs
- validate-ci-policy-parity: add doctor-check, learning-coherence,
  skill-lint rows to AGENTS.md CI table and blocking policy text
- codex-runtime-sections: remove Claude-only claude-cli-verified-commands.md
  references from skills-codex/shared
- cli-docs-parity: regenerate COMMANDS.md for flag renames
- cli-integration: add go-test-precommit and go-vet-post-edit hook tests
- skill-schema: fix tier values (athena: advanced→knowledge,
  push: starter→execution)
- skill-lint: fix Claude feature coverage regex for relative paths,
  converter ref text, post-mortem/vibe line count via reference extraction,
  quickstart Examples section, 4 validate.sh hardcoded path fixes
- learning-coherence: fix pipefail+grep interaction and accept string
  confidence values (high/medium/low) alongside numeric
2026-03-02 07:30:30 -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 b91c4428a1 Release v2.19.0 2026-02-26 23:21:18 -05:00