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 0d82c6e20c docs(skills): re-narrate live Gas City substrate framing to NTM+MCP+managed-agents (ag-94vu #live-substrate-renarration) (#684)
## What

Round-2 Gas City doctrine sweep (**ag-94vu**). Re-narrates the **5 named
skill surfaces** that still framed Gas City as THE live reference
substrate (present-tense operator instructions) to the canonical
substrate trio — **NTM (tmux swarm) + MCP (`ao mcp serve`) +
managed-agents (`ao agent`)** — matching [`docs/3.0.md`](docs/3.0.md).
Driver: post-mortem checkpoint #6 Judge-3 FAIL ("the repo does not yet
speak one doctrine").

## Surfaces (9 insertions / 9 deletions, 5 files)

- `skills/domain/references/factory.md` — "Gas City is the reference
substrate" → the NTM/MCP/managed-agents trio; "Mayor-driven / `gc
sling`" → **swarm-driven** dispatch.
- `skills/scope/SKILL.md` — cron-cadence orchestration reference.
- `skills/session-bootstrap/SKILL.md` — substrate submit reference.
- `skills/SKILL-TIERS.md` — dream retired-pointer note.
- `skills-codex/using-agentops/SKILL.md` — **codex-twin parity**:
dropped the stale `gc` runtime-mode row for the canonical `substrate`
row (the Claude twin was already correct; this one slipped in #679).

## Bounded by design

This PR is the coherent **"live skill operator-instructions speak one
doctrine"** slice. A repo-wide grep shows ~35 more refs across other
skills + `docs/` narrative; bundling them would reproduce the #682
mega-PR that was rejected for sprawl. Deferred to tracked follow-ups:

- **ag-r6g1** — round-3 narrative sweep (remaining skills/ + docs/ ~35
refs; many docs already frame GC correctly as "the reference" — triage
required).
- **ag-82pv** — remove orphaned
`GasCityPhaseEvidence*`/`GasCityTranscript*` dead types in
`cli/internal/rpi/artifacts.go`.

## Verification (local, green)

- codex-parity-drift: PASS · registry-drift: PASS (80) ·
skill-catalog-drift: up-to-date · skill-isolation: PASS · skill-size:
0/0 · markdownlint: 0 errors.
- Residual live-substrate grep over the 5 surfaces: clean.

Closes-scenario: ag-94vu#live-substrate-renarration
Bounded-context: BC1-Corpus
Evidence: skills/domain/references/factory.md
2026-06-02 14:41:43 -04:00
Bo 52930e05ff docs(3.0): honest doctrine — AgentOps is in-session, GC/Olympus own out-of-session (#3.0-honest-doctrine) (#518)
Lands the honest AgentOps 3.0 doctrine so the repo's narrative matches
the shipped code: the daemon is **deleted**, AgentOps is the
**in-session** agent operating loop + context compiler, and
out-of-session orchestration is delegated to a substrate (the reference
**Gas City City** or **Olympus**).

## What landed

- **`docs/3.0.md`** (north star, rewritten): in-session-only identity;
honest GC reference-City section — dispatch is **mayor-driven** today,
order-auto-dispatch is a labeled **GC-upstream maturity gap**
(`soc-5jwah`), not turnkey; two reference implementations table
(AgentOps-on-GC has **no** daemon; Olympus **kept** its daemon because
it is a sovereign product); e2e-proof evidence cited.
- **`docs/architecture/canonical-loop-model.md`** (new): one loop body,
two drivers, one inner tick, one config. Evolve (in-session,
AgentOps-shipped) vs Factory (out-of-session, substrate-owned);
crank/swarm placed as in-session steps.
- **`docs/adr/ADR-0009-daemon-deletion-in-session-only.md`** (new,
Accepted): the daemon-deletion decision — DELETE-not-deprecate rationale
(AgentOps has no core to protect; Olympus kept its daemon because it's
sovereign), the rejected *deprecate-keep-standalone* alternative, the
sovereignty tradeoff (always-on requires GC), the e2e GC dispatch gap.
References `soc-j7a5q`.
- **`skills/domain/references/`**: loop-family vocabulary (loop, evolve,
factory, rpi, autodev, context-compiler) as 6 entries + INDEX rows +
SKILL.md links.
- **README**: "Two ways to use it" reframed to **in-session vs
out-of-session**; deleted-command prose (`ao daemon` / `ao schedule` /
`ao overnight`) reframed to in-session + GC reference.
- **`packs/agentops`**: dispatch relabeled mayor-driven;
order-auto-dispatch GC-upstream gap (`soc-5jwah`) called out in
`bead-dispatch.toml`, `rpi-dispatch.toml`, and `FINALIZE-NOTES.md`. `gc
config show --validate` still exits 0.
- Reconciled stale `agentopsd` prose in `skills/scope` +
`skills/session-bootstrap`.

## Gates

- `heal.sh --strict`: clean
- doc-release gate: succeeded (link validation PASS, 0 broken)
- `gc config show --validate --city .`: exit 0
- markdownlint: 0 errors
- `generate-registry.sh --check`: up to date
- codex parity (domain): passed
- `go build ./...`: success

**Do not merge** — the operator reviews `docs/3.0.md` before tagging.

Closes-scenario: soc-j7a5q#3.0-honest-doctrine
Bounded-context: BC1-Corpus
Evidence: .agents/discovery/2026-05-24-gvkj6-e2e-proof.md
2026-05-24 17:31:06 -04:00
Bo c1a46cee26 chore: scrub all jsm references — external ref only, patterns kept (soc-wnic7 #scrub-jsm) (#501)
## What

Operator directive (soc-wnic7): scrub ALL references to "jsm" from
AgentOps. jsm was only an external reference corpus we learned patterns
from. The absorbed **patterns stay** (skill-quality rubric, SELF-TEST
shape, system-tuning methodology, bug-hunt patterns, attribution
patterns, marketplace-export profile) — only the jsm **name**,
jsm-dedicated docs, and jsm export tooling are removed.

## Deleted (8 files)

- `docs/reference/jsm-agentops-gap-audit.md`
- `docs/reference/jsm-clean-room-extraction-policy.md`
- `docs/reference/jsm-cli-capability-map.md`
- `docs/reference/jsm-pilot-upgrade-backlog.md`
- `docs/reference/jsm-skill-absorption.md`
- `docs/reference/jsm-skill-standards.md`
- `scripts/check-jsm-export.sh`
- `scripts/inventory-jsm-skills.sh`

## Renamed (kept methodology, stripped jsm)

`skills/standards/references/jsm-attribution.md` →
`external-source-attribution.md` (+ skills-codex + cli/embedded
mirrors). The attribution methodology (Pattern A/B, choice rule, mkdocs
constraint, clean-room hygiene) is a kept pattern — renamed and de-named
rather than deleted, so the standards skill keeps a repoint target.

## Edited

- De-catalogued the 6 deleted docs from `docs/documentation-index.md`
and `docs/reference/index.md`; de-named the kept skill-quality-rubric
entries.
- Genericized every footer/credit per the scope rule:
- `Adapted from jsm / \`x\`` → `Adapted from an external skill corpus /
\`x\``
- `(jsm/ACFS skill corpus)` → `(ACFS skill corpus)` — **ACFS/gstack
credits left intact**
- jsm-only credits (system-tuning, hooks-authoring) → "external skill
corpus", keeping the methodology-only/no-verbatim hygiene clause
- Genericized: "JSM-Style/Marketplace Export Profile", hexagonal-map
adapter node, domain-evolution BDD/plan gherkin steps, CHANGELOG
entries, skill-auditor validation-terms tuple.
- Removed dead `check-jsm-export` blocks from 4 SELF-TEST.md files.

## Regen + gates (all green)

`make sync-hooks` · `regen-codex-hashes.sh` · `generate-registry.sh`
re-run. Verified: `grep -ri jsm` empty (per exclusions);
`regen-codex-hashes --check` OK; `generate-registry --check` OK;
`validate-embedded-sync` in sync; `validate-context-map-drift` OK;
`check-docs-learning-references` PASS; `heal.sh --strict` clean;
`audit-codex-parity` PASS; `go build ./...` OK; no dangling punctuation;
no broken links to deleted files.

Closes-scenario: soc-wnic7#scrub-jsm
Bounded-context: BC1-Corpus
Evidence: docs/documentation-index.md
2026-05-23 22:41:56 -04:00
Bo 386ccf5429 feat(skills): add canonical .feature acceptance to 5 skills — batch 1 (soc-qk4b #crank-batch1) (#476)
W2 of the 3.0 reconciliation — **hexagon crank tail, batched 5/PR**
(operator-approved cadence). 56/80 skills cranked after this. No
behavior/frontmatter change.

| Skill | Acceptance added |
|---|---|
| scope | declare scope, allow in-scope edits, hard-block out-of-scope
via PreToolUse hook |
| harvest | sweep .agents, consolidate/de-dup, write learnings, manual
or dream-loop |
| release | --check readiness, curated notes + CHANGELOG, operator
tag/push, exact-SHA verify |
| update | pull latest skills, install across runtimes, idempotent |
| scaffold | project/component/CI scaffolds + domain-slice via `ao rpi
phased --scaffold-domain` |

Each .feature linked in SKILL.md; registry + codex hashes regenerated
deterministically.

Gates: registry --check OK; codex-parity ✓×5; heal --strict clean ×5;
check-skill-size 0/0.

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

Closes-scenario: soc-qk4b#crank-batch1
Bounded-context: BC1-Corpus
Evidence: skills/scope/references/scope.feature
2026-05-23 16:10:45 -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 db847f0c77 feat(practice): pass-5 backfill — 13 more practices: declarations + codex hashes
Adds practices: frontmatter to 13 next-batch skills (red-team, release,
review, scaffold, scenario, scope, security, security-suite, status, swarm,
test, trace, update). After pass 5: 65/689 missing (was 52/702). All slugs
validate against PRACTICE.md (45-slug registry). Codex parity hashes regen'd.
2026-05-10 22:48:07 -04:00
Boden Fuller 81c2f3eca9 chore: sharpen go toolchain and hook skills 2026-05-09 22:42:27 -04:00
Boden Fuller b6e03c710d feat(skills): absorb remaining JSM slices 2026-05-05 09:03:19 -04:00
Boden Fuller a7a51f2c16 feat(standards): codify skill tier caps and codex registration 2026-05-03 23:00:11 -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 db4615345a chore(codex): add scope artifact metadata 2026-05-02 10:10:11 -04:00
Boden Fuller 8a6ea09605 feat(scope): edit-scope guard — /scope skill + PreToolUse hook + ao scope CLI (soc-irg1.3)
Hard-block enforcement of declared edit scopes. Ports gstack's
/freeze + /unfreeze + /guard semantics with codex-parity skill bundle.

CLI:
- ao scope freeze <dir>...   — additive set of locked dirs
- ao scope unfreeze [<dir>]  — empty arg clears all
- ao scope status [--json]   — print current Lock state

Hook:
- hooks/edit-scope-guard.sh on PreToolUse matcher Edit|Write|Bash.
  Reads JSON tool input from stdin, compares target path against
  .agents/scope.lock entries, exits 2 with structured stderr reason
  if outside scope. Fail-open on malformed input (per pre-mortem
  Finding 3): jq parse failure or missing target -> exit 0 with
  stderr warning, never crash to block all edits.
- hooks/hooks.json: single-block append (no other Wave 1 issue
  touches this file).

Atomic-write contract (per pre-mortem hand-off requirement):
- cli/internal/scope.Write delegates to llmwiki.SafeAtomicWrite first,
  then falls back to llmwiki.AtomicWriteFile if .agents/ is outside
  the wiki vault allowlist. Both paths use temp+rename, no new locking
  semantics. Same atomic guarantee proven in agentopsd queue-claim
  invariants.
- cli/internal/scope/scope_test.go includes 100-goroutine concurrency
  test asserting torn-write impossibility.

Pre-mortem Finding 2 (hook activation test) applied:
- tests/hooks/test-edit-scope-guard-fires.sh exercises 7 cases incl.
  fail-open on malformed JSON, missing lock, empty frozen_dirs, nested
  subdir. All 7 PASS.

Pre-mortem Finding 3 (malformed-input defense) applied verbatim
at hooks/edit-scope-guard.sh:18-27.

Codex parity: skills-codex/scope/{SKILL.md,prompt.md,references/}
ships in same commit. scripts/audit-codex-parity.sh --skill scope
passes.

Note: pre-mortem pseudocode for L2 test case 2 had inverted freeze
semantics; reconciled to spec-correct positive allow-list (when
frozen_dirs is non-empty, only paths under them are allowed).

Addresses CLAUDE.md's #1 swarm failure mode ("file overlap"). Hard
enforcement, not advisory like dangerous-git-guard.sh.

Wave 1 of epic soc-irg1 (gstack absorption Tier 1).
2026-05-02 08:15:51 -04:00