Commit Graph

13 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 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 450f06f62f docs(skills): autodev reads as config not loop (soc-ozoqh #autodev-config) (#572)
## Summary

Reposition the `/autodev` skill so it reads as **config, not a loop**,
per the canonical vocabulary rule
`skills/domain/references/autodev.md:9,13` — autodev is the
config/intent layer the loop reads each tick, and its description must
never lead with "bounded autonomous dev loops".

- `skills/autodev/SKILL.md`: new `description:` leads with managing the
PROGRAM.md/AUTODEV.md contract and names autodev as the config layer
Evolve and Factory read; "Loop position" prose reframed so the drivers
run the loop, autodev does not.
- `skills-codex/autodev/SKILL.md`: codex mirror description synced.
- Regenerated derived artifacts: `skills/catalog.json`, `registry.json`,
`docs/contracts/context-map.md`, codex hash manifest/marker (autodev
only).
- No command logic changes. Scenario 2 (factory-noun de-collision)
re-sliced to `ag-0qz` (premise drifted — no `ao factory` command
exists).

## Test plan

- [x] `bats tests/scripts/autodev-skill-positioning.bats` (new gate, 6/6
— pins the description + body + derived catalogs + codex mirror to the
config-not-loop rule; written failing-first)
- [x] `scripts/validate-codex-generated-artifacts.sh --scope head`
(parity + manifest)
- [x] `scripts/validate-context-map-drift.sh`,
`scripts/check-skill-catalog-drift.sh`,
`scripts/check-registry-drift.sh`
- [x] `skills/heal-skill/scripts/heal.sh --strict` (autodev clean)

Closes-scenario: soc-ozoqh#autodev-reads-as-config-not-loop
Bounded-context: BC1-Corpus
Evidence: bats tests/scripts/autodev-skill-positioning.bats;
skills/domain/references/autodev.md:13
2026-05-28 06:34:13 -04:00
Bo 892eb45bdb chore(codex): regen 8 drifted codex hashes from #503-#508 (soc-z5mbz #regen-8-codex-hashes) (#509)
Skill-dir edits across #503-#508 (.feature additions, SKILL.md links,
heal.sh) changed source dirs but the regenerated codex source_hashes
were never committed; CI codex gate is --scope-head so cross-PR
accumulation slipped through. `regen-codex-hashes.sh` → 'All hashes up
to date'. 9 files, hash strings only.

NOTE: claude-review infra-red (weekly limit) — operator-authorized
bypass when sole red.

Closes-scenario: soc-z5mbz#regen-8-codex-hashes
Bounded-context: BC1-Corpus
Evidence: skills-codex/.agentops-manifest.json
2026-05-24 00:19:09 -04:00
Bo cdb6d16102 feat(autodev): executable acceptance for the bounded autonomous loop (soc-s1nhu #autodev-hexagon) (#452)
soc-qk4b skill-hexagon-crank — peripheral skill. /autodev (supporting,
consumes evolve + rpi) lacked a .feature.

- skills/autodev/references/autodev.feature (NEW): contract-bounded
unattended loop (PROGRAM.md/AUTODEV.md); manages-not-replaces /evolve +
/rpi (delegates); loop discipline holds under autonomy
- linked in SKILL.md; registry regenerated

consumes [evolve, rpi] already filled — acceptance-only (produces:[] is
defensible: orchestrator, artifacts come from delegated loops).

How tested: lint-skills ✓ autodev (146 lines); scenarios --lint 0
errors; codex parity passed; registry up to date.
Sibling: acceptance-only crank like /pr-validate #451.

NOTE: claude-review infra-red (weekly limit, resets May 25) —
operator-authorized bypass when sole red.

Closes-scenario: soc-s1nhu#autodev-hexagon
Bounded-context: BC3-Loop
Evidence: skills/autodev/references/autodev.feature
2026-05-23 05:19: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 b4927fcbee feat(practice): pass-3 backfill — 13 more practices: declarations + harvest
Adds practices: frontmatter to 13 next-batch skills: autodev, beads, bootstrap,
codex-team, compile, converter, deps, doc, dream, evolve, grafana-platform-dashboard,
heal-skill, hooks-authoring.

scripts/validate-practice-citations.sh:
  with practices field: 39 (was 26)
  missing practices field: 715 (was 728)
  invalid slug citations: 0

Pass-1 + pass-2 learnings applied: schema accepts practices, codex twins
untouched, .agents/ session artifacts not committed. next-work appended with
pass-4 candidates (uses valid post-mortem-finding source enum).

Local pre-push fast gate: green.

🤖 Generated via /evolve cycle 1.
2026-05-10 20:40:18 -04:00
Boden Fuller a7a51f2c16 feat(standards): codify skill tier caps and codex registration 2026-05-03 23:00:11 -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
Boden Fuller 0496441989 Reduce skill catalog context footprint 2026-04-24 00:52:27 -04:00
Boden Fuller 4e00fcc312 fix(codex): default to skill chaining 2026-04-24 00:11:19 -04:00
Boden Fuller a1a58bfb28 docs(skills): add autodev contract skill 2026-04-11 21:57:03 -04:00