81 Commits

Author SHA1 Message Date
Claude 538914ff90 deps(actions): bump docs.yml workflow action versions
Consolidates 5 open Dependabot PRs (#118-#122):

- actions/checkout           v4 -> v6
- actions/setup-python       v5 -> v6
- actions/configure-pages    v5 -> v6
- actions/upload-pages-artifact v3 -> v5
- actions/deploy-pages       v4 -> v5

https://claude.ai/code/session_01W5b6kSdX9wEDgXfVGCXTZa
2026-04-21 01:18:43 +00: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
Bo 48ddb9c6f1 Merge pull request #111 from boshu2/dependabot/github_actions/actions/configure-pages-6
deps(actions): bump actions/configure-pages from 5 to 6
2026-04-17 08:13:26 -04:00
Bo cd70af96ad Merge pull request #112 from boshu2/dependabot/github_actions/actions/deploy-pages-5
deps(actions): bump actions/deploy-pages from 4 to 5
2026-04-17 08:13:17 -04:00
Bo 09a4fce439 Merge pull request #113 from boshu2/dependabot/github_actions/actions/upload-pages-artifact-4
deps(actions): bump actions/upload-pages-artifact from 3 to 4
2026-04-17 08:13:01 -04:00
Boden Fuller 6d9af8447b ci(cmd-ao): add ratchet coverage floor gate for cli/cmd/ao
Adds scripts/check-cmd-ao-coverage.sh: reads the existing coverage.out
profile (no second test run), aggregates statement coverage for
cli/cmd/ao/, compares against MIN_COVERAGE floor, exits non-zero on
shortfall. Reads threshold from --min, $MIN_COVERAGE env, or default.

Wires a new 'Enforce cmd/ao coverage floor' step into validate.yml
immediately after the existing go test step, invoking the script with
--profile cli/coverage.out.

Initial floor: 76%. Current measured: 76.8% against the full-suite
coverage.out (2026-04-15). Source epic evolve-cycle-6-coverage-85pct
is driving this to 85%. Ratchet convention: bump MIN_COVERAGE one
whole percent each time real coverage rises, so the floor never
silently regresses.

Consumes evolve-cycle-6-coverage-85pct 'Add 85% coverage gate to CI
validate.yml for cmd/ao' (as a ratchet floor, not a cliff).
2026-04-15 16:47:57 -04:00
Boden Fuller 41c3bfb97e ci(validate): set go cache dependency path 2026-04-13 15:30:50 -04:00
dependabot[bot] fc074d9e7c deps(actions): bump actions/upload-pages-artifact from 3 to 4
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 11:25:19 +00:00
dependabot[bot] 75200eb6ed deps(actions): bump actions/deploy-pages from 4 to 5
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 11:25:17 +00:00
dependabot[bot] 5cda998c4a deps(actions): bump actions/configure-pages from 5 to 6
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 5 to 6.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/configure-pages
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 11:25:14 +00:00
Boden Fuller 5d689f4339 ci(windows): authenticate installer smoke requests 2026-04-12 23:40:17 -04:00
Boden Fuller fcaed22bed feat(ci): add retrieval-quality ratchet job to validate workflow
New retrieval-quality job runs retrieval-bench against the offline
corpus on every push/PR. Reports precision@K and warns when below
0.1 threshold. Currently advisory (warn-then-fail pattern) — will
flip to blocking once baseline stabilizes above 0.3.

Note: --eval flag was planned but existing --live mode + overnight
wiring already provides labeled eval against real corpus. The CI
job uses the offline corpus for determinism (no network deps).
2026-04-12 21:45:42 -04:00
Boden Fuller cc32dfae25 fix(release): cancel stale runs on retag to prevent duplicates
Changed concurrency.cancel-in-progress from false to true in
release.yml. When retag-release.sh deletes and repushes a tag, the
new push now cancels any still-running workflow for the same version
key instead of queuing a redundant second run.

Root cause: with cancel-in-progress:false, both the original tag push
AND the retag push would run simultaneously against the same
concurrency group, producing duplicate Release Publisher runs.

Closes ag-wyf.
2026-04-12 20:36:09 -04:00
Bo 18d8f5b900 Add native Windows smoke coverage
Adds a blocking windows-smoke job, native PowerShell smoke script, Windows docs updates, and moves a Unix-only RPI lock permission test out of the Windows test path.
2026-04-11 19:52:32 -04:00
Boden Fuller aca63b53bb ci: promote codex local gates 2026-04-11 18:51:02 -04:00
Boden Fuller cc3259f262 fix(ci): pin golangci-lint v2 contract 2026-04-11 14:09:00 -04:00
Boden Fuller b81e642fe8 docs(site): redesign GitHub Pages landing page 2026-04-11 08:10:21 -04:00
Boden Fuller 679552ae1e fix(dream): burn down 4 runloop follow-up beads (na-jn9,na-khk,na-5dr,na-lij)
Single commit covering the tractable slice of the Dream RunLoop Correctness
wake-check follow-ups. na-h61 remains deferred per handoff (requires a
dedicated --complexity=full --mixed session).

ci(validate): fix content-hash gate snapshot wiring (na-lij)
  The M9 bracket captured to mktemp but the path was discarded, so the
  post-test diff step always hit "ERROR: diff requires a valid snapshot
  file path" and the warning fired unconditionally. This explains the M9
  "drift on first main run" signal at dbf6d02a. Thread HASH_GATE_SNAPSHOT
  through GITHUB_ENV so the diff step actually sees the pre-test path,
  and treat a missing snapshot as ::notice:: rather than warn. The gate
  now only fires on real drift; ratchet upgrade (warn->fail) is still
  gated on 1-2 clean main runs before flipping.

feat(hash-gate): add --ignore-untracked escape hatch (na-5dr)
  scripts/check-agents-hash-snapshot.sh: parse --ignore-untracked (no-op
  for the ~/.agents/ case since the hub is not a git repo; future-proofs
  against a repo'd hub and documents the flag).
  scripts/pre-push-gate.sh: honor HASH_GATE_IGNORE_UNTRACKED=1 by
  skipping the content-hash block entirely. CI is unchanged (strict
  behaviour preserved); operators with local scratch state get a
  documented way to push through transient hub drift.

test(overnight): add TestRunLoop_WarnOnlyBudgetExhausted (na-jn9)
  Covers the M6 L2 rescue-drain path. Uses an oscillating regression
  injector (good<->bad per iter) rather than a plateau injector because
  PlateauState.halted is sticky and can only consume one rescue per
  run. Regression detection is stateless, so N+1 bad iters drain the
  budget exactly. Asserts WarnOnlyBudgetRemaining==0, RegressionReason
  contains "warn-only budget exhausted", last iter status ==
  StatusHaltedOnRegressionPostCommit, and at least N warn-only rescue
  notes in prior iters.

na-khk (bushido env leak in rpi/toolchain_test.go): investigated; zero
"bushido" matches anywhere in cli/, toolchain_test.go has no Setenv/HOME
calls, ./internal/rpi test suite runs clean. Closed as not-reproducible
on HEAD post-M1 HOME isolation (394bfa51).
2026-04-11 07:17:41 -04:00
Boden Fuller dbf6d02a95 ci(validate): bracket Go tests with content-hash snapshot gate (Micro-epic 9)
Wires scripts/check-agents-hash-snapshot.sh into the validate.yml Go
test job so CI catches any test that mutates ~/.agents/ without honoring
HOME isolation. This is the remote-CI completion of Micro-epic 1 (which
landed the local pre-push gate wiring as ae4d84ca).

Two new workflow steps bracket the existing "Run Go tests" step:

1. "Capture pre-test ~/.agents content hash snapshot" — runs before the
   tests, captures the hub state. Tolerant of missing shasum so the
   step never blocks CI on tooling issues.

2. "Diff post-test ~/.agents content hash snapshot" — runs with
   if: always() so it executes even when the test step fails. A diff
   detection emits ::warning:: annotations on the workflow run with a
   clear investigation hint, but deliberately does NOT fail the job:
   CI ephemeral hubs may have uninitialised baseline state and a hard
   failure would block the pipeline until the baseline lands. The
   warn-only posture lets operators see drift without blocking
   unrelated work.

Scope: single file. No new tests (the script itself is covered by its
own shellcheck run in the pre-push gate). YAML syntax validated via
python yaml.safe_load.

Defeats the os.Chtimes mtime bypass that the existing mtime-only gate
cannot detect — content hash changes regardless of whether mtime was
rolled back to the original timestamp.

Refs: .agents/handoff/2026-04-10-dream-runloop-correctness.md §Micro-epic 9
2026-04-10 23:09:47 -04:00
Boden Fuller 7a2e321d94 feat: ship dream-cycle and contribution proofs 2026-04-09 17:49:15 -04:00
Boden Fuller 743b5f2300 docs(comparisons): refresh competitive analysis + GitHub Pages SEO
- Update all 5 comparison docs to April 2026 state:
  GSD v1.34 (advisor mode, multi-repo), Compound Engineer (stack-aware routing),
  Claude-Flow rebranded to Ruflo v3.5 (complete rebuild), Superpowers (skills
  repo split, 3 new platforms), SDD going mainstream (AWS Kiro, GitHub Spec Kit)
- Add SEO frontmatter (title, description, permalink) to all comparison docs
- Add Jekyll _config.yml with sitemap + seo-tag plugins
- Add GitHub Pages deploy workflow (docs/comparisons paths trigger)
- Add index.md landing page with comparison matrix

Implements: na-gtm.16
2026-04-08 11:26:22 -04:00
Boden Fuller afb172bbe1 chore(ci): remove coverage percentage gates from CI
Remove coverage-ratchet job, cmd/ao coverage floor check, and all
associated scripts/tests/baseline. Coverage percentages are noisy
during test migrations and architectural refactors — they block CI
without catching real bugs.

Deleted: .coverage-baseline.json, scripts/check-cmdao-coverage-floor.sh,
scripts/coverage-ratchet.sh, tests/scripts/check-cmdao-coverage-floor.bats
Updated: validate.yml, pre-push-gate.sh, ci-local-release.sh, pre-push-gate.bats
2026-04-06 20:47:23 -04:00
Boden Fuller f1045a0bd0 refactor(cli): enable -shuffle=on in CI + fix 5 ordering-dependent tests (wave 13)
Add -shuffle=on to go test in validate.yml and Makefile to detect
test ordering dependencies at CI time.

Fix 5 tests that failed under shuffle:
- TestCobraIndexCheckCommand: add resetCommandState(t)
- TestDoctor_Integration_*: add resetCommandState(t) + env isolation
- TestMaturity_Integration_ScanPendingTransitions: add env isolation
- TestInjectForFlag_NoDeclaration: add env isolation
- TestRunGoals_GoroutineLeak: use goleak.IgnoreCurrent() to avoid
  false positives from parallel test subprocess cleanup

Root causes: leaked cobra flag values, missing maturity var resets in
testutil, and missing AGENTOPS_RPI_RUNTIME env var isolation.
2026-04-06 19:07:05 -04:00
Boden Fuller 743c300b3c fix(ci): resolve compile skill CI failures + nightly security toolchain
- codex-runtime-sections: remove claude references from codex compile SKILL.md
- doc-release-gate: fix example links in article template (backtick format)
- skill-integrity: remove scripts/compile.sh reference from codex variant
- nightly: install missing security tools (ruff, radon, pytest, golangci-lint,
  trivy, hadolint) matching the validate workflow's toolchain
2026-04-05 18:45:12 -04:00
Boden Fuller 3eb679c6f6 feat(knowledge): rename athena → compile + add Karpathy-style knowledge compiler
Rename the athena skill to compile — a descriptive name that communicates
what it actually does. Extend with Karpathy's LLM Knowledge Bases architecture:

- New compile phase: LLM reads raw .agents/ artifacts and produces interlinked
  markdown wiki at .agents/compiled/ with index.md, log.md, backlinks
- New lint phase: detects contradictions, orphan pages, stale claims, coverage gaps
- Pluggable compute backend via AGENTOPS_COMPILE_RUNTIME (ollama|claude|openai)
- Hash-based incremental compilation (only recompile changed sources)
- compile.sh engine with security fixes (no shell injection, path traversal guard)
- Full rename across 93 files: skills, docs, CLI, tests, hooks, scripts, codex

Existing Mine → Grow → Defrag cycle preserved as phases within the larger
compile workflow. No vector DB — compiled wiki IS the retrieval layer.
2026-04-05 17:57:40 -04:00
Boden Fuller f1b83b25b0 fix(ci): resolve all 6 CI failure categories
go-build: Fix L2 integration tests to use cmd.SetOut(&buf) instead of
captureStdout (race-safe cobra output capture). Fix hooksDryRun leak
in TestForgeTranscriptAccess_WithDir.

bats-tests: Update coverage floor expectation 78→81%. Add
validate-embedded-sync.sh stub to pre-push-gate bats setup.

security-scan: Exclude build artifact dirs and filter Go env var reads
from secret pattern matching.

skill-lint: Trim crank SKILL.md 847→639 lines by extracting inline
content to references/gc-pool-dispatch.md.

ci-policy-parity: Add swarm-evidence job to AGENTS.md CI table.

All 6 categories addressed. heal.sh --strict passes.
2026-04-05 06:45:11 -04:00
Boden Fuller 99d3d369c5 feat(rpi): wave 2 backlog — swarm guards, hook hardening, release idempotency
Epic D: Add pre-spawn worker detection to git-worker-guard (blocks worktree-add
and agent-spawn from workers). Enhance check-file-manifest-overlap.sh edge cases.
Wire validate-swarm-evidence.sh into CI. Fix .agents/retros→retro in index.go
and init.go. Add grep-for-existing-functions to swarm worker template.

Epic E: Replace partial embedded check in pre-push-gate with full
validate-embedded-sync. Lazy-init git rev-parse in research-loop-detector.
Add retag idempotency guard (skip if tag already at HEAD). Add git_sha to
release-artifacts.json manifest. Empty stdin guard in go-test-precommit.
2026-04-04 20:56:17 -04:00
Boden Fuller 5db2d4b29b fix: remediate flywheel curation gaps 2026-04-03 10:13:59 -04:00
Boden Fuller d3a0731732 feat(flywheel): add global store purge script and retrieval bench to nightly CI
F4: scripts/purge-global-garbage.sh removes auto-extracted fragments
with body < 50 chars from ~/.agents/learnings/. Dry-run found 33/1612
garbage files; executed purge on local machine.

F5: Add retrieval-bench job to nightly CI. Runs synthetic corpus bench
and fails if P@3 drops below 0.67 (the minimum precision target).

Completes all 5 failure modes from docs/flywheel-audit.md.
2026-04-02 12:58:37 -04:00
dependabot[bot] 623b2e9440 deps(actions): bump codecov/codecov-action from 5 to 6 (#85)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:46:59 -04:00
dependabot[bot] bb1d0f7316 deps(actions): bump DavidAnson/markdownlint-cli2-action from 22 to 23 (#84)
Bumps [DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action) from 22 to 23.
- [Release notes](https://github.com/davidanson/markdownlint-cli2-action/releases)
- [Commits](https://github.com/davidanson/markdownlint-cli2-action/compare/v22...v23)

---
updated-dependencies:
- dependency-name: DavidAnson/markdownlint-cli2-action
  dependency-version: '23'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:46:52 -04:00
Boshu2 96e57a0122 fix(ci): resolve remaining CI failures for v2.25.0
- Sync docs/CHANGELOG.md with root CHANGELOG.md for release freeze gate
- Trim crank (819→800) and evolve (803→779) under line limits
- Fix markdownlint MD007 in codex discovery (3-space → 2-space indent)
- Remove codex install bundle parity from CI, pre-push, release smoke test
- All codex sync-based checks disabled (skills-codex/ manually maintained)
2026-03-14 13:56:46 -04:00
Boshu2 85e2bf580b fix(ci): remove codex skill parity check from CI pipeline
The sync-codex-native-skills.sh script is unreliable and overwrites manual
edits to skills-codex/. Codex skills are now manually maintained.

- Remove validate-codex-skill-parity step from validate.yml
- Comment out from ci-local-release.sh
- Skip in pre-push-gate.sh
- Keep codex-runtime-sections and install-bundle checks (structural, not parity)
2026-03-14 13:05:35 -04:00
Claude b36131f3bf fix(ci): fix deadlock in goal runner and add job timeouts
The runGoals() function had a lock ordering bug that could deadlock: it
acquired exclusive.Lock() before the semaphore, so readers holding sem
slots and blocked on RLock() would prevent the writer from ever getting
a slot. Fix by always acquiring the semaphore first (same order as
readers).

Also add timeout-minutes to all nightly and key validate jobs to prevent
any future job from silently hanging for the 6h GitHub default timeout.

https://claude.ai/code/session_013zgSZWWx7inP69cUUPRDNe
2026-03-11 14:31:19 -04:00
Boshu2 90641fc56d fix(release): clarify rerun path and serialize same-tag publishes 2026-03-09 17:29:38 -04:00
Test 090688a68a fix(ci): harden codex gate coverage 2026-03-08 19:15:30 -04:00
Test a066494297 test(codex): validate backbone generated prompts 2026-03-08 18:45:34 -04:00
Test a59330be58 fix(contract): publish next-work queue v1.3 parity 2026-03-08 13:47:07 -04:00
Test fd5babc34f fix: harden skill lint ci dependencies 2026-03-08 13:16:55 -04:00
Boden Fuller 6dfef761b3 Fix codex skill sync and local push gates 2026-03-07 12:14:08 -05:00
renovate[bot] 6e5e7a56aa chore(deps): update dependency python to 3.14 2026-03-06 15:15:33 +00:00
Boden Fuller 29d1ff6f06 deps(actions): bump upload-artifact v7, attest-build-provenance v4, markdownlint-cli2-action v22
Closes #68, closes #69, closes #70.
2026-03-06 10:10:54 -05:00
Bo 7345498769 fix(nightly): repair Athena and security regressions (na-15f) (#74) 2026-03-06 07:37:03 -05:00
Bo b75bee0911 chore: automate codex skill parity (#72) 2026-03-05 20:43:27 -05:00
Boden Fuller 744bcabeb9 chore(cli,ci,docs): tech debt swarm — 10 fixes across scripts, hooks, CI, docs
- Fix hardcoded /tmp path in test-json-flag-consistency.sh (use mktemp)
- Add graceful skip for missing jq/python3 in check-contract-compatibility.sh
- Fix import grouping in maturity_test.go
- Update .agents/retros/ → .agents/learnings/ in ratchet gate.go
- Extract _validate_restricted_cmd to lib/hook-helpers.sh (shared lib)
- Wire test-json-flag-consistency.sh into CI (new validate.yml job)
- Add post-merge naming cleanup step to swarm local-mode.md
- Document operationalization heuristics in plan SKILL.md
- Create check-file-manifest-overlap.sh for pre-spawn conflict detection
- Wire file manifest overlap check into CI with self-tests
- Pre-mortem fixes: bash 4+ guard, mktemp in CI self-tests
2026-03-05 13:12:54 -05:00
Boden Fuller 88e8e46eb3 feat(docs,tests): wave 1 — testing & documentation improvements (na-xjw)
- Fix 11 stale `tests/claude-code/` paths in testing-skills.md
- Remove phantom e2e-install-test.sh reference and --skip-e2e-install flag
- Add validate.sh to athena, grafana-platform-dashboard, push skills
- Create docs/TESTING.md umbrella testing guide
- Create docs/CI-CD.md CI architecture document
- Add README.md to 6 test subdirectories
- Add 17 BATS unit tests for lib/hook-helpers.sh functions
- Wire orphaned tests into runners (run-all.sh + validate.yml)

Issues: na-xjw.1, na-xjw.2, na-xjw.3, na-xjw.4, na-xjw.5, na-xjw.6, na-xjw.8, na-xjw.10
2026-03-05 10:37:45 -05:00
Boden Fuller 9d06279043 chore(na-3re): wave 2 — harden hooks, wire context, clean docs, add CI job (5 issues)
Issues: na-3re.7, na-3re.8, na-3re.9, na-3re.10, na-3re.12

Wave 2 changes (37 files):

- na-3re.7: Add check-test-staleness CI job (warn-only, continue-on-error)
- na-3re.8: Harden 4 hooks with WARN-first defaults:
  - pre-mortem-gate: AGENTOPS_PREMORTEM_FALLBACK=open (advisory by default)
  - task-validation-gate: recursion depth limit (max 3), AGENTOPS_METADATA_GATE=warn
  - ratchet-advance: epic-scoped gating via AGENTOPS_ACTIVE_EPIC
  - go-complexity-precommit: _validate_restricted_cmd helper
- na-3re.9: Extract section name constants, add context section validation tests
- na-3re.10: Clean stale /learn→/retro refs (5 docs), .agents/retros/→.agents/learnings/
  refs (17 files), fix post-mortem SKILL.md step numbering
- na-3re.12: Verify Go code items (6/7 already correct), add ASCII fast-path comment
2026-03-05 10:21:27 -05:00
Boden Fuller bd2b495958 feat(ci+hooks): wire bats + ratchet into CI, fix hook stdin, expand coverage (na-6lo)
- Add bats-tests job to validate.yml (184 tests across 6 files)
- Add coverage-ratchet job to validate.yml (needs go-build)
- Fix 3 Go hooks to use stdin JSON instead of broken env vars
  (go-test-precommit, go-complexity-precommit, go-vet-post-edit)
- Add cmd/ao to coverage baseline at 84%
- Broaden audit-assertion-density.sh from *coverage*_test.go to *_test.go
- Add 8 fuzz seed correctness tests (5 parsers, was no-panic only)
- Sync embedded hook copies via make sync-hooks
2026-03-04 17:34:04 -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 bb40bc0f25 fix: resolve 10 post-mortem findings — 3 HIGH, 5 MEDIUM, 2 process
Swarm: 8 tasks across 2 waves, TDD on all Go changes.

HIGH fixes:
- rpi serve --run-id now matches 12-hex IDs (was misclassifying as goals)
- cherry-pick-wave.sh: pattern validation + prefix-scoped rm fallback
- -o flag contract: rename local --output to --output-dir/--output-file
  on defrag, memory, context_assemble (stops shadowing root format flag)

MEDIUM fixes:
- defrag --json now emits JSON (was printing text unconditionally)
- Remove dead promote-anti-patterns from doctor suggestions
- Pin install scripts to tagged releases instead of mutable main
- Add ao doctor + skill-lint CI jobs to validate.yml
- Add learning coherence quality gate script

Process:
- Drain 7 unconsumed next-work.jsonl entries (0% → 100% resolution)
- 192 lines of new tests (TDD: test-first across all Go changes)
2026-03-02 06:49:16 -05:00