Commit Graph

68 Commits

Author SHA1 Message Date
Bo 16d764b5a1 feat: add craft-goal and humanize RPI reports (#988)
## What changed

- add `craft-goal`, a bounded Mayor-style goal compiler/linter for
persistent campaigns over bead-shaped RPI experiments
- add its Codex and Gemini runtime projections plus generated catalogs,
manifests, router, graph, maps, tiers, and registry entries
- split RPI reporting into two explicit surfaces: concise human-readable
interactive output by default, with the full `rpi-report.v1` object
retained as the machine/audit artifact
- add feature and validation assertions that prevent raw schema dumps
from becoming the default interactive response again

## Why

Recent AgentOps history repeatedly showed long-running goal campaigns
confusing the outer goal with one RPI experiment. It also exposed a
presentation bug where the RPI skill instructed agents to paste the
transport-shaped YAML report into chat. This change captures the
corrected goal model and keeps machine evidence separate from the
operator-facing response.

## Validation

- `bash scripts/regen-all.sh --check`
- `bash skills/craft-goal/scripts/validate.sh`
- `bash skills/rpi/scripts/validate.sh`
- `python3 -m unittest skills/rpi/tests/test_run_once.py`
- Codex parity, generated-artifact, and override-coverage checks
- `git diff --check origin/main...HEAD`
- `bash scripts/ci-local-release.sh --fast` ran all branch-relevant
checks successfully; its aggregate exit remained nonzero only for the
pre-existing `skills/using-gc` description-budget violation, which is
unchanged from `origin/main`
2026-07-23 23:24:56 +00:00
Bo 189bc81867 feat(gc): 3.3 flow is the mayor-driven door — human or agent orchestrated (#985)
## What

The 3.3 GC pack flow becomes Gas City's native human door, drivable by
humans and agents alike (operator decision). Five commits:

1. **a903c23f8** `feat(gc)`: Mayor prompt rewritten observe-only →
**shepherd** — polls external rigs' ready step beads and dispatches each
via `gc sling <gc.run_target> <bead> --nudge`. Never claims, never
authors, never closes.
2. **e58aeb5cb** `feat(gc)`: `invoke.sh mayor start|status|tell` — the
agent control surface over native primitives (`gc session wake`, `gc
session list --json`, `gc mail send --notify`; mail chosen over
sling-text to avoid v1.3.5's inline-text auto-create). Mayor is now a
`mode=always` standing session.
3. **bd8c34df6** `docs(gc)`: README — two doors (human attaches, agent
drives via mail), heartbeat propulsion, #4586 context.
4. **2b6ffe9cf** `feat(gc)`: `skills/using-gc` rewritten as the
mayor-orchestration skill (drive loop, bead-ids-only doctrine, GC
liveness truth stack with both codex wedge classes, stall protocol) +
all regenerated projections.
5. **362f4af79** `fix(gc)` (cross-family review: 1 BLOCKER + 5 MAJORs,
all fixed): **shepherd-heartbeat order** (native `gc order`, 3m cooldown
— mode=always keeps the Mayor resident but nothing re-prompts it; the
order is the liveness engine); HQ filtered from rig enumeration; stall
recovery = `session wake` (re-sling documented as a no-op for routed
beads); `mayor status` tri-state fail-closed; mail authority limited to
dispatch/status with bodies treated as untrusted data (pause/resume
dropped — stateless under fresh wake); test stubs reject non-allowlisted
verbs.

## Why

On v1.3.5, demand-driven worker spawning never fires for rig-routed work
(upstream gastownhall/gascity#4586, ours, with a stock-pack no-LLM
repro). Shepherd-dispatch by a standing Mayor is both the
v1.3.5-functional propulsion path AND the stock-GC operating pattern
(their mayor prompt: create → sling bead-id → monitor) — so this flow
survives the upstream fix rather than fighting it. Intent stays
caller-owned: drivers hand the Mayor bead IDs, never prose work.

## Verification

- `tests.python.test_gc33_thin_pack`: 34 passed (2 integration-gated
skips)
- `shellcheck -S warning` + `bash -n` clean; `scripts/regen-all.sh
--check`: all 11 projections current
- Every gc primitive verified against v1.3.5 source (cmd_mail.go,
cmd_session_wake.go, cmd_sling.go, cmd_rig.go, decode_sessions.go,
orderdiscovery)
- Codex adversarial review round: all findings fixed
- **Not yet proven live**: heartbeat-order discovery/scheduling,
mode=always residency, wake-based recovery, end-to-end propulsion — the
live canary follows this merge.
2026-07-23 17:08:28 +00:00
boshu 0b52397d87 refactor: fold dueling-idea-genies into idea-genie as duel mode
Single root owns elicit and duel modes; validator relocated byte-identical
as validate-challenge.sh; all consumers (bats, tuning test, clean-room
LEAVES, reverse-engineer link) updated; projections regenerated via owning
commands; router 49 -> 48.

Validated fresh: verdict PASS (9ab0dba3), intent 8fde0f49.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 23:06:16 -04:00
boshu 9aff5df0db refactor: fold heal-skill into skill-builder
One canonical root for skill create/heal/audit. Mode routing table absorbs
all heal-skill triggers; every live consumer (gates seed, quality checks,
release scripts, bats, docs, catalogs, parity twins) updated to relocated
paths; all projections regenerated via owning commands.

Validated fresh: verdict PASS (e9b6cdb8), intent 26a4f2be, all five
acceptance scenarios re-executed by an independent context.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 21:57:51 -04:00
boshu 5bdbb5fd09 refactor: simplify AgentOps loop and harden CLI 2026-07-15 19:17:08 -04:00
boshu baaa9e22da feat!: prepare AgentOps 4.0 cathedral cut 2026-07-15 10:00:26 -04:00
boshu cb2a7ac398 refactor: complete the cathedral cut 2026-07-15 00:21:02 -04:00
boshu 4823077621 refactor: cut AgentOps to a single-pass evidence loop 2026-07-14 22:01:50 -04:00
boshu ecd2ee8177 Direct-cut plan readiness into Premortem
Implements: age-agentops-lean-loop-direct-cut-rp16f.3
2026-07-14 13:59:00 -04:00
boshu 43b4387dbd fix(go): seal retired-owner and lifecycle boundaries 2026-07-13 10:24:38 -04:00
boshu a2423cfaca refactor(loop): require four umbrella receipts 2026-07-13 08:23:27 -04:00
boshu 9c6a662203 feat(loop): refactor the four-umbrella operating loop
Bead: age-four-umbrella-loop-refactor-xz4ps.1
2026-07-13 06:48:50 -04:00
boshu c6e23d2036 feat(skills): mesh native genies and factory orchestration (age-o43w) 2026-07-10 10:52:06 -04:00
Boden Fuller fbba8af5ac feat: land audit hardening and goal-design workflow 2026-07-09 12:20:53 -04:00
boshu 9a23ba9cc5 refactor(skills): execute the audit retire wave — 8 skills retired/merged, 66 -> 58, spine 15 -> 13 (age-skills-audit-fable-l6ic.12)
Executes the age-e3zk decision (fresh disposition pass: docs/audits/
skills-audit-2026-07-06.md; council 2026-07-06 parked this behind age-p2c7,
which landed as d7f950ca8; operator directive 2026-07-07 authorized finishing
all filed work).

RETIRED: red-team (validate --debate absorbs), perf (frontier-generic, zero
repo bindings), flywheel (ao flywheel status CLI is the surface).
MERGED: eval-outcomes -> validate (--mode=pre-impl --target=scenario),
review -> validate (--mode=pr), compile + curate -> post-mortem (mining half;
mechanical surfaces stay ao compile / ao lookup), recover -> status
(--recover mode; deep playbook preserved at status/references/
recovery-playbook.md; delivers l6ic.7 and the l6ic.13 row reconcile).

Mechanics: ao skills retire x8 (trees incl. images/*/skills, terminal ledger
rows via --into, .agy-plugin review bundle removed); absorption tombstones in
docs/SKILLS.md + SKILL-TIERS.md (56 user-facing + 2 internal = 58, counted);
spine gate re-anchored 15 -> 13 (l6ic.11 minimal consistency: review +
red-team leave; membrane 7 + bookkeeper 6); bespoke twins post-mortem/status
hand-mirrored per AGENTS-CODEX; manifest pruned of orphan twin rows (62 -> 57);
overrides catalog pruned of 8 retired rows; gemini verify core_skills +
claude/codex image manifests updated; retired-subject eval
red-team-adversarial-validation.json removed (not canary-listed).

Gates: spine-integrity 13 PASS; wiring-closure PASS; skill-frontmatter 58/58;
codex manifest+artifacts+parity PASS; regen-check ALL GREEN; SKILL-TIERS also
fixed Opus 4.6 -> 4.8, GOALS.yaml -> GOALS.md, flywheel diagram to CLI truth
(l6ic.6 pre-work). Residual prose mentions in non-gated docs are the l6ic.2
debris sweep's scope.
2026-07-07 11:06:35 -04:00
boshu d8b840596a feat(gc-adoption): install-gc-city.sh + QUICKSTART + bd carve-out + two-ledger canon reconcile + membrane fail-open fix (age-gc-adoption-u0he arc)
- scripts/install-gc-city.sh (+15 hermetic bats): one-command membrane city standup —
  version contract fail-hard, dolt_mode=server enforced, LAW-0 print sinks, gap-A
  materialization (membrane/ + quests/_template), codex pre-trust, usage-local +
  orphan-sweep-fast fragments, sessions registered AND verified, doctor gate, city path
  canonicalized (pwd -P) + GC_CITY_PATH pinned everywhere. Live E2E green. (u0he.1, .2)
- packs/agentops-membrane: QUICKSTART.md (u0he.4); fragments; README cost section
- membrane fail-open fix (u0he.15 P0): ralph gate-bead protection + max_attempts 5 +
  honest attempt semantics; fork half = gascity 4aa582dcc
- skills/beads-br gc carve-out (8aom.2); canon reconcile (u0he.12)
(gc-outcomes-report.sh split to its own land — u0he.6)
2026-07-06 21:49:04 -04:00
boshu e7de22d1ea chore(skills): flip disposition ledger to the 2026-07-06 audit verdicts — 64/66 rows (age-skills-audit-fable-l6ic.1)
Council-decided scope A (3/3 unanimous): record docs/audits/skills-audit-2026-07-06.md
section-2 verdicts into skill-dispositions.yaml — 36 disposition changes + 28
reaffirmation stamps, EXCLUDING compile + curate (the in-flight consolidation
branch deletes/moves those rows; follow-up bead reconciles after age-p2c7).
Verdict mapping: KEEP->keep FIX->update TRIM->refactor MERGE->merge-review
RETIRE/RESOLVE->cut-review. Full-file counter reconciles the audit table
exactly (keep 32 incl curate, update 14, refactor 12 incl compile,
cut-review 6, merge-review 2). Projections regenerated (make regen-all);
regen-check ALL GREEN. No skill bodies touched; no retires executed —
cut-review rows await the age-e3zk decision.
2026-07-06 21:12:16 -04:00
boshu 0ffaa6561f feat(skills): using-gc operator skill + gc-membrane reference — gas-city factory enablement (age-gc-integrate-8aom.1, delivers age-gc-adoption-u0he.3)
The vibing-with-ntm analog for gc: standup (native store contract, LAW-0
print_args, pack wiring, pre-trust), the day-to-day quest loop, admin
(doctor cadence, backup, binary discipline, config knobs), and the
symptom-keyed stall ladder (submit-only drain recovery, trust modal,
quarantined check step, spawn livelock, diff-frame refutes). gc-membrane
carries the close-door reference (finalize semantics, pawl-verdict.v1
anatomy, RBAC). Router lines in SKILLS.md + SKILL-ROUTER.md (operator
choice, never auto-routed); AGENTS.md substrate pointer; tier + disposition
ledger entries; regen projections (64→66).

Verified: silent-novice probe — fresh agent restricted to the skill files
answered 10/10 standup/run/admin/troubleshoot scenarios correctly with
citations.
2026-07-06 08:51:28 -04:00
boshu 257be5312e feat(skills): add ms skill — meta_skill search/load doctrine (MCP consume, CLI writes) 2026-07-02 11:18:48 -04:00
Bo aae1a3af9a refactor(skills): consolidate catalog 70 → 63 — cut acfs, fold 6 skills into their canonical owners (#889)
Full-catalog skills audit + consolidation via ao skills retire: acfs cut; autodev→evolve, skill-auditor→heal-skill, beads-workflow→beads-br, continuity-loop→using-atm, inject→operationalize, forge→curate. Trigger surfaces preserved via absorbed-from notes; ao CLI surfaces unchanged; dispositions ledger flipped to historical rows; registries/codex twins/eval canaries regenerated and retargeted. Includes self-review fixes: ledger-aware DEAD_XREF in heal.sh, scenario-linkage allowlist retarget, codex-twin dead-path repairs, strengthened eval canaries, fold-survival guard for operationalize, and beads consolidation test hardening.
2026-07-02 09:23:55 -04:00
boshu c7c074e739 refactor(skills): fold substrate-skill sprawl 13->~5 via the dispositions ledger (age-focus-membrane-bookkeeper-m1wg.22)
Fold 5 substrate skills into their survivors (ao skills retire --into), after
re-litigating each keep-rationale:
- vibing-with-ntm -> ntm       (operator layer over the same NTM tools)
- agy-headless-evidence -> agy-native  (consumes agy-native; evidence is a
  listed capability; mirrors agy-mcp/rules/sidecar folds)
- codex-approval -> codex-exec (codex-runtime driving-adapter; mirrors the
  codex-* consolidation)
- dual-pane-atm -> using-atm   (a specialization of the ATM substrate)
- orchestrate -> using-atm     (route/preflight/verify instrument; the ao
  orchestrate CLI survives, only the skill doc folds)

using-atm is the surviving out-of-session-substrate consolidator. Manual cleanups
ao skills retire does NOT reach: git rm .agy-plugin/skills/vibing-with-ntm +
drop it from validate-agy-plugin.sh core_skills; drop the dual-pane-atm/orchestrate
lines from scripts/.scenario-linkage-allow; drop vibing-with-ntm from
scripts/lint/codex-cross-runtime-skills.txt; repoint 26 broken cross-ref links to
survivors + fix frozen-twin generated_hash. scenario-linkage / skill-redirects
(47 resolve) / doc-skill-refs / manifests all green.

NOTE: validate-agy-plugin.sh has a PRE-EXISTING 9-bundle drift at HEAD (agent-mail,
beads-*, cass, cc-hooks, dcg, ntm, rch — stale hand-committed .agy-plugin bundle,
no sync tooling, not a routed gate); untouched here, flagged for a follow-up.
2026-07-01 02:28:07 -04:00
boshu 0096a050c3 refactor(skills): demote evolve/autodev/acfs to a new experimental tier (age-focus-membrane-bookkeeper-m1wg.21)
Heavy legacy RPI chains with no measured uplift. Add a new `experimental` tier
and demote the three. The tier value is registered at ALL FOUR enum sites — the
authoritative schemas/skill-frontmatter.v1.schema.json (enforced by the blocking
skill.manifests gate), validate-skill-schema.sh, sku_catalog.py, and
generate-registry.sh — plus a Tier Values row in SKILL-TIERS.md. Frontmatter
metadata.tier and the SKILL-TIERS row cell flipped in lockstep for all three.

acfs is demoted, NOT cut: its cut is external (~/acfs) and a deferred operator
one-way-door decision (noted in the disposition ledger). Codex twins refreshed
by regen (not dropped — .18 owns twin cuts). registry drift, manifests schema,
sku-catalog, sync-counts all green; go build + internal tests pass.
2026-07-01 00:08:34 -04:00
Boden Fuller 86aea2431f chore(regen): reconcile generated projections post-rebase (age-revive-reverse-engineer-0ll) 2026-06-18 13:45:31 -04:00
Boden Fuller 07d9a2d6e6 feat(skills): revive + rename reverse-engineer-rpi -> reverse-engineer with the steal-map discipline
Restore the cut reverse-engineer-rpi skill (was cut in 94db74318), rename it
(drop the rpi suffix across 16 files + both trees), and upgrade it from a pure
teardown tool into teardown -> steal-map (have/gap/steal/park/reject) -> route
one-way doors to /discovery's mixed-model duel. Folds this session's discipline:
validated cross-family not self-report, park substrate we delegate (ADR-0009),
steal the pattern not the platform, probe real state not stale. 308->125 lines,
codex twin mirrored (slim frontmatter + hashes), disposition keep row added.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 13:23:59 -04:00
Boden Fuller a4104bb966 feat(skill): behavior-first-planning — back bdd-foundry before thinning (age-3va.2)
Extract the behavior-first-planning discipline (intent → frozen Gherkin
behaviors → EXECUTED-red acceptance tests → derived spec → acceptance-gated
bead DAG) into skills/behavior-first-planning/SKILL.md, so the capability
survives independent of the bdd-foundry workflow. The rule it enforces: no
runnable acceptance test, no bead — closing the spec-first "beads ship with no
done-criteria" hole (the 3/10 problem) before W3 thins the workflow.

Covers the four bdd-foundry phases + the closing independent-review gate
(validate before tracker write). Codex twin mirrored (manual) + hashes regen;
dispositions ledger row (BC3 Loop, domain, planning, parity required); registry
+ skill-domain-map + SKILL-TIERS + count-propagation regenerated (73→74).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 18:48:23 -04:00
Boden Fuller daf5c4fdd3 feat(orchestrate): Phase 1 instrument lane + profiles contract (age-ueu)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 16:48:21 -04:00
Boden Fuller 5e6b2e2c58 fix(skills): dual-pane-atm gate admission and regen drift
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 11:01:15 -04:00
Boden Fuller fbcfbad7f0 feat(skills): land dual-pane-atm skill (unblocks fast gate)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 10:56:09 -04:00
Boden Fuller cf90ec392a feat(skills): consolidate beads 4->2 — retire beads umbrella, fold lifecycle doctrine into beads-br (ag-ez7y6 #beads-consolidate-4to2)
Salvaged the uncommitted work from wt-ag-ez7y6 and completed the 4->2 beads
skill consolidation the salvaged test asserts:

- Fold the "Issue-Lifecycle Discipline" doctrine (live-reads-authoritative,
  scoped-closure-proof, parent-reconciliation, narrow-the-umbrella-issue,
  normalize-stale-queue) from the retired `beads` umbrella into beads-br.
- Retire skills/beads --into beads-br via `ao skills retire` (trees removed,
  ledger row moved to historical: merged-into beads-br).
- Re-target every retired-skill reference: crank/implement/plan/post-mortem/
  refactor frontmatter+deps, SKILL-TIERS rows, docs/SKILLS.md, GLOSSARY link,
  sku_catalog LOOP_MOVES[2], image manifests (counts adjusted).
- Codex twin: mirror the doctrine into skills-codex/beads-br, prune `beads` from
  the codex catalog/manifest, regen hashes (parity gate age-yxl).
- Add cli/cmd/ao/beads_consolidation_test.go (L2 structural invariants). Uses a
  leak-proof repo-root finder (skills/+docs/contracts/) because the shared
  findRepoRoot keys on .agents/, which the cmd/ao suite leaks into the pkg dir.

Fixed an ao-skills-retire bug surfaced here: the historical row was appended at
the end of the `workflows:` section (between historical: and dispositions:)
instead of inside historical:. Corrected manually; full fix tracked separately.

Bounded-context: BC3-Loop
Evidence: cli/cmd/ao/beads_consolidation_test.go

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 23:42:28 -04:00
Boden Fuller 1b0ba1cdfb chore(docs): reconcile doc/ops debt waves A–F
Align br-first tracker truth, RPI terminology, stale architecture surfaces,
new drift gates, gate deferral drain (13→11), and audit artifacts so agents
and operators share one hookless map with mechanical acceptance.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 16:38:48 -04:00
Boden Fuller 828d39c195 docs(direction): align validation-first source routing 2026-06-16 09:51:33 -04:00
Boden Fuller 3e13ee4e66 feat(converge): thin converge skill memo over ao converge (ag-slice4-skill-thin-memo-1wi5y)
skills/converge/SKILL.md is a thin (<=120 line) lazily-loaded memo that points
at the Go 'ao converge' command — NOT a reimplementation (it's a Go CLI, not a
skill). References 'ao converge', carries the two-leg cross-family dispatch table
+ the LAW-0 rule, no shell-loop reimplementation. Disposition row added; full
make regen-all propagated the new skill into registry.json + the generated docs
(SKILLS/GLOSSARY/ARCHITECTURE/context-map/domain-map + 71->72 counts).

Closes-scenario: ag-slice4-skill-thin-memo-1wi5y#S4.1
Bounded-context: BC5-Runtime

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 14:09:50 -04:00
Bo 17735475b7 feat(contracts): S1 re-bin mis-fit skills + re-grade roles (ag-j3ge0 #role-audit) (#855)
## Summary

S1 of the factory-DDD governance epic (follows S0 BC6 foundation,
ag-4akl8). Corrects the mis-binned skills and under-graded loop spine
the skill-DDD audit surfaced. The 6 substrate skills
(ntm/swarm/agent-mail/using-atm/vibing-with-ntm/continuity-loop) were
already moved into BC6 by S0; per the Codex comment on the bead,
codex-exec/agy-native/agy-headless-evidence/account-rotation correctly
STAY in BC5 (executor/credential adapters, not substrate-dispatch).

### Re-bins (domain only; roles unchanged)
- `refactor` BC2 Validation → BC3 Loop — loop-side change execution, not
a validation gate
- `perf` BC2 Validation → BC3 Loop — drives optimization work in-loop,
not a fitness gate
- `cass` BC5 Runtime → BC1 Corpus — mines past-session corpus
(capability_class already `corpus`)

### Role re-grades
- `rpi` supporting → domain — loop-spine per-turn executor
- `evolve` supporting → domain — autonomous improvement main loop
- `converter` generic → driven-adapter — factory packaging adapter to
runtime skill formats; the lone `generic` row is now empty

`hexagonal_role` is mirrored in BOTH the dispositions ledger and the
SKILL.md frontmatter because `generate-skill-domain-map.sh` cross-checks
them.

## Acceptance / TDD

L2 test written red-first then flipped green:
`tests/scripts/skill-rebin-bc6-roles.bats` (8/8 pass). Each scenario in
the bead body carries a `@covered-by:` tag pointing at this test.

## Gates (all green)
- `bats tests/scripts/skill-rebin-bc6-roles.bats` — 8/8
- `bats tests/scripts/validate-skill-disposition-schema.bats` —
regression, pass
- `scripts/generate-skill-domain-map.sh --check` — PASS
- `scripts/validate-context-map-drift.sh` — exit 0
- `scripts/check-bounded-contexts-drift.sh` — PASS (6 BCs, all
non-empty)
- `scripts/regen-all.sh --check` — ALL GATES GREEN
- `cd cli && go build ./... && go vet ./...` — clean; `go test
./internal/gates/...` — ok

## Derived surfaces regenerated + committed
context-map.md, agentops-skill-domain-map.md, registry.json,
skills-codex twins (converter/evolve/rpi + manifest).

Closes-scenario: ag-j3ge0#role-audit
Bounded-context: BC4-Factory
Evidence: docs/contracts/skill-dispositions.yaml

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

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 13:58:03 -04:00
Boden Fuller 692f420ac3 feat(contracts): additive artifact-classification schema + BC6 Orchestration (ag-4akl8 #backfilled-fields)
S0 foundation slice (v4 additive, no-rename — quorum-ratified). Adds the
artifact-classification fields to every active `- skill:` row + workflows entry
and introduces BC6 Orchestration, without renaming the ledger file, the
`- skill:` row key, or the `domain: "BCn Name"` string format.

- skill-dispositions.yaml: backfill kind/runtime_targets/parity_policy/
  capability_class/path/aliases/supersedes on all 71 active rows + 4 workflows;
  re-bin the 6 orchestration skills (ntm/swarm/agent-mail/using-atm/
  vibing-with-ntm/continuity-loop) into BC6.
- bounded-contexts.yaml: add BC6 Orchestration + OrchestrationPort.
- sku_catalog.py: BC6 enum + cli-command-per-BC carve-out (require >=1 active
  artifact per BC; cli coverage only where a BC owns commands).
- generate-registry.sh: emit the new fields (+ derived runtime_reach) and a
  first-class `workflows` surface.
- generate-skill-domain-map.sh / check-bounded-contexts-drift.sh: BC-count
  sites 5->6; both registry docs carry BC6.
- new gate validate-skill-disposition-schema.sh (+ bats) rejects unknown
  kind/capability_class and missing fields, naming the offending row; wired into
  regen-all, pre-push-gate, and the Go gate registry.

Renamed-consumer parsers (resolve-skill-path.sh, skills_retire.go, heal.sh) and
the `- skill:` fixtures are byte-untouched.

Closes-scenario: ag-4akl8#backfilled-fields-preserve-the-skill-count
Bounded-context: BC4-Factory
Evidence: docs/contracts/skill-dispositions.yaml

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 13:19:19 -04:00
Boden Fuller ee7d2b3bc1 docs(contracts): declared skill counts 67->71 (ag-xwjlc)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 23:24:29 -04:00
Boden Fuller 00971a3050 chore(contracts): re-apply seams disposition rows + domain map post rebase-4 (ag-xwjlc)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 23:24:29 -04:00
Boden Fuller 334a179449 feat(skills): pre-land-refuters — unbiased dual-model validation panel before landing (ag-48ybr-adjacent; pattern codified from ag-s43tg)
Freeze a mechanical claim, dispatch a stake-free Fable refuter + a codex exec
read-only refuter in parallel with the full gate, fix findings forward, re-verify
pins on the landed tree. Self-audit: WARN (acceptable v1). Factory tax paid:
codex twin+prompt, manifest/catalog/dispositions/tiers rows, counts 67, regen green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 14:48:50 -04:00
Boden Fuller 9dd62c75c7 merge: origin/main (codex-approval + task-packet contract) into ag-s43tg prune — union resolution + validator-driven fixes
Dual independent validation (unbiased Fable + codex exec) refuted the first
cut; this merge-commit carries the fixes: deps pin phrase landed in security,
brainstorm body/rubric/feature rescued into discovery references and bats
repointed, skills/catalog.json + image manifests regenerated/remapped to fold
targets, docs/SKILLS.md routes rewritten, dead vibe/ship-loop frontmatter
edges retargeted, validate description carries readiness signal, deep-sweep
post-mortem sweep checks restored against surviving references, bd-era canary
asserts dropped, counts re-baselined to 66 (codex-approval arrived upstream).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 09:58:57 -04:00
Boden Fuller 94db743181 feat(skills)!: skill-corpus prune phase 2 — fold 39 sources into 21 targets + cut reverse-engineer-rpi (105→65) (ag-s43tg #single-writer-final-pass)
21 trigger-graft augments (aug/* branches) merged; 40 skill dirs removed across
skills/, skills-codex/, images/*; dispositions ledger flipped to terminal
historical rows (42, rows never deleted); all factory surfaces regenerated
(registry, domain map, context map, codex twins+hashes, overrides catalog,
SKILL-TIERS, count diagrams); embedded using-agentops retired (BC5 carve-out);
validators/canaries repointed to fold targets (bd-era + Lane-A pre-existing
reds fixed honestly: mkdocs strict, beads canary, council verdict schema,
finding-registry rows, prompt catalog); vibe reference library + ship-loop
anti-patterns + brainstorm ideation refs rescued into fold targets.

Also clears the account-rotation factory-parity debt (3384f5638).

Closes-scenario: ag-s43tg#single-writer-final-pass
Bounded-context: BC4-Factory
Evidence: docs/plans/ag-s43tg-trigger-manifest.md (pinned-phrase contract)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 09:49:02 -04:00
Boden Fuller fefdffa1c3 feat(codex): add fable approval skill (ag-codex-runtime-enhancement-o0nds.7) 2026-06-12 08:45:32 -04:00
Boden Fuller 3384f56381 feat(skills): account-rotation — unified host-routed rotation skill; retire caam skill
Replaces the caam skill (which mis-advised on macOS). One symptom-triggered skill
routes by host: macOS+Claude -> claude-acct (Keychain swap); Codex/Gemini or any
Linux/WSL -> caam (file swap). caam CLI stays; it self-documents via --help.
Includes codex parity. heal-skill --check --strict: clean.
2026-06-11 12:56:48 -04:00
Boden Fuller 40ee1c34fa chore(skills)!: skill-prune Phase 2 — execute disposition ledger remainder (ag-if7p)
9 remaining ledger rows (49 of 58 already landed via Phase 1 5e4f7e58a):
5 codebase-* skills folded into codebase-audit (references/REPORT-MODES.md,
context_rel adopted), 4 retired. 114 -> 105 skills (97 user-facing + 8
internal). Registry regen: SKILL-TIERS 166->105 (clears Phase 1 backlog),
sync-skill-counts (12 files), codex overrides catalog 114->105, manifest
180->171, context/domain maps, skill catalog. Repairs two validators that
were red on main: validate-agy-plugin.sh (10 stale core_skills + bundle
prune to 17 + drift resync) and validate-skill-flow.sh (5 orphans -> 0;
codebase-audit wired supplier-to plan/validate, handoff allowlisted,
cross-vendor-trust-gate consumes converted-skill). Pre-cull tree archived
at archive/skill-prune-phase2-20260611.

Closes-scenario: ag-if7p#phase2-execute-ledger
Bounded-context: BC1-corpus
Evidence: evidence/skill-prune-phase2.md
2026-06-11 08:39:45 -04:00
Boden Fuller 5e4f7e58aa chore(skills)!: trim the herd — retire 52 non-product skills (skill product audit)
Razor: AgentOps ships the inner loop. Full 166-skill product audit
(evidence/skill-product-audit.md) bucketed every folder; this lands the
RETIRE bucket: 52 zero-demand, non-product skills removed from skills/,
skills-codex/, both catalogs, the dispositions contract, and the domain
map (166 -> 114 shipped). Coupling sweep: scenario-linkage allowlist +
external-source-attribution exemplar updated; archive = git history.

Remaining buckets (next waves): CONSOLIDATE 12 runtime adapters -> 3
anchors; MERGE 19 into siblings; 6 Olympus stubs collapse with the
catalog closer. End-state target: 77 shipped skills.

Bead: deferred (dolt breaker open); audit + this commit are the evidence.
Bounded-context: BC1-corpus
Evidence: evidence/skill-product-audit.md
2026-06-11 07:32:51 -04:00
Boden Fuller 61421cdb93 chore(skills): align generated registries + counts for the codebase-* quartet; drop stray security-suite leftover (cp-801l)
- regenerate docs/reference/agentops-skill-domain-map.md (166 skills, 5 BCs)
- bump narrative counts 162->166 in skill-domain-map + domain-evolution-bdd
- cli embedded sync (make sync-hooks) for using-agentops SKILL.md
- remove stray untracked skills/security-suite/ leftover (__pycache__ only;
  not tracked on main — retired skill remnant) so disk == tables == 166
- resync skill counts across PRODUCT.md/docs after the removal (167->166)

Local gate checks green: registry drift PASS, domain-map golden PASS,
domain evolution 166, lint suite OVERALL PASS, counts in sync.
2026-06-09 20:03:35 -04:00
Bo 5c4e7f07a8 docs(skills): rename using-ntm to using-atm (#843)
## Summary
- Rename the canonical and Codex `using-ntm` skill to `using-atm`.
- Update inbound references, catalogs, context-map/disposition/domain
docs, and rpi/crank/swarm/council related-skill links.
- Sync Codex generated metadata and preserve the upstream NTM note for
the ATM fork/alias surface.
- Repair post-`cp-z1s5` gate drift exposed by this PR: regenerate
`registry.json`, wire `storage-watchdog-ops` into skill-flow, refresh
context-map/Codex metadata, and remove its stale standalone allowlist
entry.

## Validation
- pre-push fast/head on `95a8e9d35`: 34 checks, 33 pass, 1 warn, 0 fail;
warn: `always.retrieval-manifest-paths`
- full local Go gate: `WORKTREE_DISPOSITION_CI_SKIP=1 /tmp/ao-cp-v8m2
gate check --full --json --workflow-coverage` => 72 total, 71 pass, 1
advisory warn, 0 fail
- `scripts/regen-all.sh --check`
- `bash scripts/validate-skill-flow.sh`
- `bash scripts/validate-skill-schema.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/validate-codex-override-coverage.sh`

## Notes
- Deployed local Codex/Claude cache proof for `using-atm` was performed
before push.
- Unrelated local dirty files in the original checkout were
intentionally excluded: `skills/cass/scripts/validate.sh`,
`skills/ru-multi-repo-workflow/scripts/validate.sh`, `wt-ag-qidx/`.
- `cp-z1s5` is closed on main at `e0932310d`; this PR carries the small
gate-drift repair required to make that main state validate under PR CI.
2026-06-07 23:06:34 -04:00
Boden Fuller e0932310df feat(skills): 4 coverage-gap skills + 20 sidecars onto current main (cp-z1s5) 2026-06-07 22:34:51 -04:00
Bo 413e04ad14 merge: Claude/Gemini/Codex image bundles onto distilled corpus
Squash merge image consolidation after CI repair.\n\nValidated by GitHub Actions: changes, lint, codex-parity, skills-integrity, skill-gates, contracts-sync, correctness on Ubuntu and Windows, security, eval, skill-eval, doctrine-proof, process-hygiene, and summary. Cursor Bugbot was pending/advisory; main has no branch protection/rules requiring it.
2026-06-07 18:22:34 -04:00
Bo e2964625c1 feat(agy): migrate Gemini lane → AGY (Antigravity); retire deprecated gemini-cli skills (#831)
## What
Google is deprecating the **gemini CLI** in favor of **Antigravity
(AGY)**. This migrates the vendor lane: retire the 4 legacy `gemini-*`
skills (built for gemini-cli affordances) and build out the real **AGY
lane**.

## Skills
- **Retired:** `gemini-native`, `gemini-mcp-hooks`,
`gemini-headless-evidence`, `gemini-skills-extensions` (both `skills/`
and `skills-codex/`).
- **AGY lane (4, dual-form):** `agy-native` + `agy-rules-workflows`
(enhanced — folded in the still-relevant intent, added
`/goal`+`/schedule`), `agy-mcp-plugins` + `agy-headless-evidence` (new).
Targeted at AGY's real affordances (Antigravity plugins/MCP/hooks,
agentapi headless, scoped worktrees) — **not** a 1:1 rename of
gemini-cli surface.

## Derived surfaces
Regenerated registry (171 skills), codex catalog/manifest,
skill-domain-map, SKILL-TIERS, context-map, narrative docs. `~/.gemini`
*paths* preserved (AGY's real config root).

## Validation
- Door-9 (no `claude -p`) PASS across all skills.
- `scripts/regen-all.sh --check` → ALL GATES GREEN.
- 0 references to dead `gemini-*` skill names. JSON valid.

## Not in this PR (follow-up: fork-and-own)
Binary-tool AGY support — `caam` (add `agy` tool) and `ntm` (add `--agy`
pane). Auth is already shared via `~/.gemini`; these are launch/spawn
wiring gaps tracked separately.
2026-06-07 13:48:01 +00:00
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 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