Commit Graph

35 Commits

Author SHA1 Message Date
Bo e6767628d8 docs: re-narrate live Gas City operator instructions to NTM+MCP+managed-agents (ag-r6g1 #docs-slice) (#687)
## What

Round-3 Gas City doctrine sweep — **docs/ slice** (user-facing operator
instructions) (**ag-r6g1**). Four docs told the reader to *"point the
reference Gas City at the repo"* to run the loop out of session;
re-narrated to the canonical substrate **NTM + MCP + managed-agents**
per [`docs/3.0.md`](docs/3.0.md).

## Surfaces (4 files, +14 −14)

- `docs/agentops-3-youtube-starter-series.md` — out-of-session demo beat
+ measurement field.
- `docs/wiki-for-agents.md` — the always-on compounding line.
- `docs/CI-CD.md` — the unattended-Dream line +
scheduled-private-Dream-runs section (dropped the Gas-City-specific
`city.toml`/`packs/`/`exec` Order mechanics).
- `docs/agentops-3-pmf-evidence-loop.md` — out-of-session step +
engagement checklist.

## Scope (sprawl-controlled)

Triaged to **live present-tense operator instructions only**. Left
already-correct architectural "ships no daemon / delegates to a
substrate" framing intact. **ag-r6g1 stays OPEN** — the operator
runbooks (`nightly-evolution`, `autonomy-runtime-cycle-1`, which carry
deeper GC-specific mayor/refinery/Order mechanics) and descriptive
comparison/example/explainer mentions are deferred to a later slice.

## Verification

- markdownlint 0 errors · `regen-all.sh --check` ALL GREEN (docs-only;
no derived-surface drift).

Closes-scenario: ag-r6g1#docs-slice
Bounded-context: BC1-Corpus
Evidence: docs/CI-CD.md
2026-06-02 15:31:05 -04:00
Bo ba186f3e92 fix(docs): purge dangling validate-hooks-doc-parity.sh refs from operational docs (ag-c2i #operational-docs-no-dangling-hooks-parity-ref) (#579)
## Summary

Hooks were removed in AgentOps 3.0 and
`scripts/validate-hooks-doc-parity.sh` was deleted. ag-jov (PR #575)
fixed the `docs-release-governance` eval canary; this PR completes the
cleanup for **operational docs** that still instructed readers to run
the deleted script.

- `AGENTS-WORKFLOW.md` — drop the "Hook/docs parity" pre-push checklist
item; renumber 8–15 → 7–14.
- `docs/cli-skills-map.md` — drop the regenerate step that ran the
deleted script; renumber.
- `docs/release-e2e-checklist.md` — drop the parity-check line.
- `docs/CI-CD.md` — remove the `validate-hooks-doc-parity` node from the
CI job-graph diagram (box width preserved).
- `docs/LOOP-BUDGET.md` — remove the `validate-hooks-doc-parity`
loop-budget row.

Adds `tests/scripts/docs-no-dangling-hooks-doc-parity.bats` as a
regression guard over `docs/` + `AGENTS-WORKFLOW.md`, excluding
historical records (`docs/CHANGELOG.md`, `docs/releases/*`).

## Scope / out of scope

In scope: operational doc references to the deleted script (docs bounded
context).

Out of scope (owned by the **soc-g2r9** local-pre-push-gate retirement
arc, whose orphaned files are deleted *wholesale* by its deletion waves
— not hand-patched): `scripts/pre-push-gate.sh` and
`tests/scripts/pre-push-gate.bats` references. See
`docs/contracts/local-pre-push-gate-retirement.md`.

## Test plan

- [x] `bats tests/scripts/docs-no-dangling-hooks-doc-parity.bats` —
fails before the doc edits (5 refs), passes after.
- [x] `bash tests/docs/validate-links.sh` — 2788 links checked, 0
broken.
- [x] `markdownlint` on all 5 edited docs — clean.
- [x] `bats tests/scripts/validate-agents-split.bats` — 7/7 pass
(AGENTS-WORKFLOW.md edit safe).

Closes-scenario: ag-c2i#operational-docs-no-dangling-hooks-parity-ref
Bounded-context: BC1-Corpus
Evidence: bats tests/scripts/docs-no-dangling-hooks-doc-parity.bats
2026-05-28 09:18:59 -04:00
Bo c640ef2379 fix(ops): route work selection through reconciliation
Route status/quickstart/release/beads through ao reconcile before backlog selection or release-health claims. Correct release-tag CI skip docs, regenerate registry, and clarify the reconcile release-tag next action.
2026-05-26 19:07:42 -04:00
Bo f077c6bfbc fix(ci): allow PR-only skips in release tag validate (#549)
## Summary

- keep release-tag Validate strict for unexpected skipped release lanes
- explicitly allow PR-only evidence checks to skip on tag pushes
- update release-tag CI bats coverage and CI docs so the policy is
locked

## Evidence

- `python3 - <<'PY' ... yaml.safe_load(.github/workflows/validate.yml)`
- `bats tests/scripts/validate-release-tag-full-ci.bats`
- `bash tests/scripts/test-ci-policy-parity.sh`
- `bash scripts/validate-ci-policy-parity.sh`
- `git diff --check`
- `scripts/pre-push-gate.sh --fast`

## Notes

This fixes the release-health contradiction where `v3.0.1` published
successfully but tag Validate failed because PR-only AP#7 was skipped on
a tag event.
2026-05-26 13:27:45 -04:00
Bo 46ed7fee5a docs(3.0): sweep remaining daemon/schedule/hook prose + MIGRATION-3.0 (ag-qbw) (#520)
## What

Wave 2 of the AgentOps 3.0 honest-docs sweep (post-#518 audit, bead
ag-qbw). Makes the `docs/` prose match the shipped code: the daemon,
scheduler, factory, and all hooks were **DELETED** (not deprecated).
AgentOps is the in-session loop + context compiler; out-of-session
orchestration is delegated to a substrate (Gas City reference City /
Olympus). Mirrors the already-correct `docs/3.0.md`.

This makes `docs/3.0.md:150` ("the standalone
daemon/scheduler/overnight-runner surfaces are gone from ... live doc
prose") true for the enumerated wave-2 surfaces.

## Deleted (whole docs about deleted commands)

- `docs/scheduling.md` — entire `ao schedule` + `ao daemon` guide
-
`docs/contracts/{agentopsd-control-plane,agentopsd-schedule,routing-policy}.md`
- `docs/contracts/jobspec-openapi-v0.yaml`
- `docs/templates/dark-factory-schedule.yaml.example`
- `docs/design/olympus-v4-specs/*.md` — v4-port reference for the dead
Olympus → agentopsd extraction

## Reframed (prose → in-session + Gas City)

- Daemon/schedule/overnight: `agentops-3-youtube-starter-series.md`,
`agentops-3-pmf-evidence-loop.md`, `wiki-for-agents.md`,
`activation-profiles.md` (+ `profiles/README.md` profile rename),
`CI-CD.md` (overnight lane)
- Hooks → hookless + CI-as-authoritative-gate (hooks removed #511):
`knowledge-flywheel.md`, `troubleshooting.md`, `reference.md`,
`CI-CD.md`, `release-e2e-checklist.md`, `seed-definition.md`

## Catalog + cross-link cleanup (no broken links)

- `documentation-index.md` — removed deleted-doc rows + the v4 section
- `contracts/index.md` — removed deleted-contract cards
- `rfcs/0002-jobspec-openapi-v0.md` marked superseded; `SCHEMAS.md`,
`templates/README.md` cross-links fixed

## Created

- `docs/MIGRATION-3.0.md` (from the approved draft) + catalog row +
mkdocs nav entry

## Gates (green for this PR's surfaces)

- Link check: **2723 links, 0 broken**
- Contracts structural floor: **PASS (45 contracts)**
- Contract compatibility (orphans): **PASS**
- markdownlint (all changed/new files): **clean**
- `heal.sh --strict`: **All clean**
- mkdocs-strict: my new doc + nav entry build cleanly. The strict build
is **red on main for pre-existing reasons outside this scope** —
`docs/_hooks/gen_cli_reference.py` FATALs on missing `cli/docs/HOOKS.md`
(hooks removed #511, generator not updated; release-mechanics domain)
and `docs/3.0.md:172` links `../PRODUCT.md`/`../GOALS.md` (root files
outside the docs tree). Both confirmed present on `origin/main`; filed
for wave 3.

## Scope notes

- Did **not** touch `CHANGELOG.md`, `cli/`, or version files (parallel
worker owns release mechanics).
- The audit grep still matches ~40 more out-of-scope `docs/` files
(contracts/*, code-map, comparisons, narrative pages, runbooks). Filed
as **wave 3 (ag-p7j)**.

Closes-scenario: ag-qbw#doc-sweep-2
Bounded-context: BC1-Corpus
Evidence: docs/3.0.md
2026-05-24 18:27:24 -04:00
Bo f5155c37ce docs(ci): align policy docs after eval advisory removal (soc-fbtx #docs-match-validate-yml) (#330)
## Summary
- remove stale current-job references to the removed
`agentops-eval-advisory` validate job
- align CI/CD prose with the current non-blocking validate jobs and
blocking `security-toolchain-gate`
- remove the obsolete local eval advisory checklist item from AGENTS.md

## Validation
- `bash scripts/validate-ci-policy-parity.sh`
- `bash scripts/validate-hooks-doc-parity.sh`
- `bash tests/docs/validate-doc-release.sh`
- `markdownlint AGENTS.md docs/CI-CD.md`
- `git diff --check`
- `scripts/pre-push-gate.sh --fast` (passed; warn-only executable-spec
link integrity still reports existing unsupported `ao goals
--lint/--orphans` flags)

Closes-scenario: soc-fbtx#docs-match-validate-yml
Bounded-context: BC2-Validation
Evidence: docs/CI-CD.md

Co-authored-by: Codex <codex@example.invalid>
2026-05-18 22:22:53 +00:00
Bo fc16cf31df feat(release): require zero-trust audit evidence (#297)
## Summary
- add eval fast, eval baseline-audit, VIL, and digital-twin evidence to
local release artifact manifests
- require resolver/audit validation to reject incomplete
SBOM/security/eval/HIL/VIL/twin proof bundles
- document the zero-trust release proof bundle and add focused BATS
coverage

## Validation
- bash -n scripts/ci-local-release.sh
scripts/resolve-release-artifacts.sh
scripts/validate-release-audit-artifacts.sh
- shellcheck --severity=error scripts/ci-local-release.sh
scripts/resolve-release-artifacts.sh
scripts/validate-release-audit-artifacts.sh
- bats tests/scripts/ci-local-release.bats
tests/scripts/release-artifacts.bats
- git diff --check
- markdownlint docs/RELEASING.md docs/release-e2e-checklist.md
docs/contracts/release-readiness.md
- bash scripts/validate-ci-policy-parity.sh
- bash tests/docs/validate-doc-release.sh
- scripts/pre-push-gate.sh --fast (passed; warn-only executable-spec
link-integrity reports unknown flags --lint/--orphans)
- bd dep cycles
- scripts/bd-audit.sh --json

Bead: soc-owed.7

---------

Co-authored-by: Codex <codex@example.invalid>
2026-05-18 01:14:33 +00: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 fa204b53c0 docs(ci): add eval-workbench-verify to CI policy tables
Add the new eval-workbench-verify job to AGENTS.md CI jobs table and
docs/CI-CD.md job dependency diagram. Fixes validate-ci-policy-parity
drift after the new CI job was added.
2026-05-04 12:25:36 -04:00
Boden Fuller 1fec77380e ci: promote contract canaries to required gate 2026-05-03 18:16:56 -04:00
Boden Fuller 1e867137f3 docs(ci): avoid root agents mkdocs links 2026-05-03 14:27:32 -04:00
Boden Fuller eae032f095 docs(ci): document deferred CI hardening triggers (soc-mi17) 2026-05-03 11:27:43 -04:00
Boden Fuller 8078c77441 fix(ci): codify advisory-policy split with SLAs and retrieval-bench ratchet (soc-z7qq)
Codify the policy distinction between pre-merge blocking and post-merge advisory
CI jobs so warn-only red stops training agents to ignore CI. Covers items 2, 3,
33, 34, 38, 40 from .agents/research/2026-05-03-top-50-ci-failures.md.

Changes:

- .github/workflows/validate.yml:
  - Rename advisory display names from "(warn-only)" to "(advisory)" for
    agentops-eval-advisory, security-toolchain-gate, doctor-check, and
    check-test-staleness.
  - Mark swarm-evidence as advisory: add `name: swarm-evidence (advisory)`,
    `continue-on-error: true`, and remove from summary fail-condition.
  - security-toolchain-gate install step now uses 3-attempt
    exponential-backoff retry per item 40 (covers transient trivy/hadolint
    network timeouts).

- AGENTS.md:
  - Add "Advisory Job Triage SLAs" subsection with per-job SLA + escalation
    rule (eval-advisory: 7d release-blocking when stale,
    security-toolchain-gate: 14d, doctor-check: 30d, check-test-staleness:
    info-only, swarm-evidence: info-only).
  - Update inline non-blocking list and swarm-evidence row to reflect new
    advisory status. validate-ci-policy-parity.sh now reports
    38 jobs / 5 non-blocking (was 4).
  - Document the retrieval-bench warn-then-fail ratchet promotion criterion
    (14 consecutive nightlies of nightly_p_at_5 >= baseline_p_at_5).

- docs/CI-CD.md:
  - Update "Soft Gates" table to include swarm-evidence and triage SLA column.
  - Add "Retrieval-bench ratchet" subsection with promotion criterion,
    baseline source (.agents/rpi/baseline-precision.json), 30-day staleness
    fallback to 0.30, and explicit observational-only note (the
    14-consecutive-nightly counter is not yet wired into automation; promotion
    remains a manual decision).

- .agents/rpi/baseline-precision.json (new, force-tracked via .gitignore
  re-include): seeds baseline_p_at_5 = 0.30 with metadata documenting owner,
  promotion rule, fallback, and stale_after_days = 30.

- .gitignore: add re-include for .agents/rpi/baseline-precision.json and
  remove the redundant late `.agents/` directory rule that was overriding
  the earlier child-pattern re-includes.

H2 BRANCH-PROTECTION AUDIT (per soc-z7qq acceptance criteria):
  $ gh api repos/boshu2/agentops/branches/main/protection \
      --jq '.required_status_checks.contexts'
  -> {"message":"Branch not protected","status":"404"}

  Result: main is NOT protected on github.com/boshu2/agentops, so the
  display-name renames carry zero required-check impact. No manual update
  command needed. If branch protection is later enabled and any of the
  renamed jobs (agentops-eval-advisory, security-toolchain-gate, doctor-check,
  check-test-staleness, swarm-evidence) become required contexts, the GitHub
  check name now ends in " (advisory)" — the workflow job ID is unchanged,
  so required_status_checks.contexts must reference the job ID, not the
  display name. The CI policy parity script keys on job IDs, not display
  names, so no parity drift was introduced.

The 14-consecutive-nightlies ratchet is intentionally observational. A
follow-up bead is needed to wire the consecutive-green counter into
automation before promoting retrieval-bench to blocking.

Validation:
- python3 -c "import yaml; yaml.safe_load(open('.github/workflows/validate.yml'))"
  -> OK
- bash scripts/validate-ci-policy-parity.sh
  -> CI_POLICY_PARITY: PASS (38 jobs; 5 non-blocking)
- bash scripts/pre-push-gate.sh --fast
  -> pre-push gate (fast): passed (40 skipped)
2026-05-03 11:27:06 -04:00
Bo 11ed786c84 feat(nightly): include current CI/PR/incident context in nightly RPI brief (#214)
* feat(nightly): include current CI/PR/incident context in nightly RPI brief

scripts/nightly-rpi-brief.sh previously only ingested past Nightly PR
bodies and scheduled Nightly run results. The autonomous RPI prompt
issue produced from that brief had no signal about (a) whether the
current Validate workflow is green on main, (b) what PRs are open and
their check-rollup state, (c) open Nightly-failure incidents, or (d)
whether the prompt issue itself already exists. As a result the
$agentops:rpi --auto target list could miss live CI blockers entirely.

This change:
- Adds --validate-workflow flag (default "Validate")
- Captures four new structured artifacts via capture_optional_array
  helper that tolerates gh failures: validate-runs.json, open-prs.json,
  open-incidents.json, prompt-issues.json
- Threads new fields into summary.json: current_ci, open_prs,
  open_incidents, prompt_issue, ranked stabilization_targets
- Adds tests/scripts/nightly-rpi-brief.bats covering the happy path
  with mocked gh fixtures (~80 LOC fixtures + assertions)
- Updates docs/CI-CD.md to describe the new inputs and outputs

* chore(knowledge): nightly decay metadata + new f-2026-05-02-006 finding

- Routine decay/reward updates from running ao processes:
  .agents/learnings/{2026-04-07,2026-04-19,2026-04-27}*.md
  .agents/patterns/pre-tag-ci-validation.md
  .agents/findings/f-2026-04-30-002.md (hit_count 2 -> 3, last_cited
  2026-05-03)
- New finding f-2026-05-02-006 in registry: release helpers must filter
  semver tags. Source: 2026-05-02 full-changelog post-mortem.
- RPI state files (execution-packet, ranked-packet, next-work) +
  .agents/ao/last-processed brought current.
2026-05-03 00:22:41 -04:00
Boden Fuller 8385cf6a64 chore: add release readiness gate 2026-05-02 18:46:12 -04:00
Boden Fuller 262b91f039 feat(nightly): add local evolution wrapper 2026-05-01 10:57:42 -04:00
Boden Fuller a154b6ffa3 feat(nightly): add RPI auto prompt brief 2026-05-01 09:24:20 -04:00
Boden Fuller 86a822bb44 Re-architect AgentOps hooks around JIT context 2026-04-28 16:06:14 -04:00
Boden Fuller 166c4dc571 fix(evals): stabilize security governance canary 2026-04-27 15:41:42 -04:00
Boden Fuller 1297117cd3 ci: wire agentops eval canaries 2026-04-27 15:31:03 -04:00
Boden Fuller ec188aca25 fix(docs): rename docs/INDEX.md -> docs/documentation-index.md to resolve case collision with docs/index.md
docs/INDEX.md (contract catalog) and docs/index.md (MkDocs landing) shared the
same case-folded name on case-insensitive filesystems, leaving the working tree
in a phantom-modified state and breaking contract-compatibility-gate when the
script read whichever file the OS resolved at run time.

Resolves TASK-1 + TASK-2 of .agents/plans/2026-04-26-resolve-docs-index-case-collision.md:
- Move catalog content from HEAD:docs/INDEX.md into docs/documentation-index.md
- Repoint contract validators (scripts/check-contract-compatibility.sh,
  scripts/contract-orphans-allowlist.txt) and their tests at the new path
- Update navigation references across README.md, AGENTS.md, CLAUDE.md, and the
  docs/ tree (newcomer-guide, CONTRIBUTING, CI-CD, plans/, positioning/,
  templates/, contract examples)
- Replace stale docs/README.md mentions in CLAUDE.md / AGENTS.md / repo-execution
  profile example with docs/index.md (the actual MkDocs landing)

Verification:
- bash scripts/check-contract-compatibility.sh -> 0 failures, 24 contracts catalogued
- bash tests/scripts/test-contract-compatibility-gate.sh -> 7/7 PASS (verified pre-rebase)
- bash tests/skills/test-repo-native-orchestration.sh -> 28/28 PASS (verified pre-rebase)
- git ls-files | awk casefold-dup scan -> empty

TASK-3 (casefold-collision guard script) and TASK-4 (worktree disposition) from
the plan remain to be done in a follow-up.
2026-04-26 19:32:13 -04:00
Boden Fuller 816a36d83f docs: align box-drawing vertical lines in ASCII art
Systematic pass over 104 markdown files with box-drawing characters.
Fixed 15 files where interior `│` / outer `┌┐└┘` / divider `┬┴` columns
were off by 1-2 cols from their reference row. Zero content changes —
only whitespace and `─` fill chars moved to recover column alignment.

## Files fixed

**docs/** — CI-CD.md, agentops-system-map.md, brownian-ratchet.md,
context-packet.md, curation-pipeline.md, the-science.md,
comparisons/README.md, comparisons/vs-claude-flow.md

**skills/** — SKILL-TIERS.md, swarm/SKILL.md,
crank/references/fire.md, standards/references/test-pyramid.md

**skills-codex/** — crank/references/fire.md,
quickstart/references/full-catalog.md,
standards/references/test-pyramid.md

## Common failure modes found

- Off-by-one closing corners (e.g., `└───────── ┘` with stray space → `└──────────┘`)
- Box width vs content width mismatch (interior row 1-2 chars wider than its `┌┐` box)
- Diverging canonical widths across rows (widened the narrow rows rather
  than truncate content)
- T-junctions (`┬` / `┴`) not aligned with `│` rows above/below

## Scope preserved

- Tree diagrams (`├── file.md` / `│   └── child.md`) — intentional
  variable-width indentation, left alone
- Markdown pipe tables — not ASCII art, not touched
- Content of labels/box text — unchanged

Verified: `scripts/docs-build.sh --check` (mkdocs strict) passes clean.
2026-04-19 15:11:31 -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 ee515c82d6 feat: ship layered dream operator surfaces 2026-04-09 21:06:05 -04:00
Boden Fuller fab9eefe49 docs: align dream runtime surfaces 2026-04-09 20:16:15 -04:00
Boden Fuller 7a2e321d94 feat: ship dream-cycle and contribution proofs 2026-04-09 17:49:15 -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 24b8d29738 fix: purge tracked .agents artifacts 2026-04-03 09:33:31 -04:00
Boden Fuller e1b6b39350 Remove release cadence gate and sync Codex artifacts 2026-04-02 18:36:08 -04:00
Boden Fuller 03a97978c5 fix(docs): align ASCII box-drawing diagrams across 23 files
Fix right-side │ border alignment in box diagrams. Three fix types:
- Trailing space adjustment for border alignment
- Box border widening for content that exceeded width
- Bottom border dash count matching top border
2026-03-29 07:55:25 -04:00
Boshu2 90641fc56d fix(release): clarify rerun path and serialize same-tag publishes 2026-03-09 17:29:38 -04:00
Boden Fuller 9205270833 Harden local codex skill validation 2026-03-07 13:26:49 -05:00
Boden Fuller c5a29be885 fix(docs): correct CI-CD.md job count (26→29) and add missing BATS entry (na-xjw)
Vibe council found:
- CI-CD.md claimed 26 jobs, actual is 29 (missing json-flag-consistency,
  file-manifest-overlap, check-test-staleness)
- Dependency graph missing json-flag-consistency → go-build link
- TESTING.md missing lib-hook-helpers.bats from inventory table
2026-03-05 10:54:30 -05:00
Boden Fuller b5fc8dfae8 feat(docs,ci): wave 2 — CI sync and INDEX consolidation (na-xjw)
- Wire coverage-ratchet and skill-schema checks into ci-local-release.sh
- Skip validate-learning-coherence.sh (pre-existing frontmatter-only file)
- Document local-only check rationale in CI-CD.md
- Add Testing & CI section to docs/INDEX.md
- Consolidate testing-skills.md and release-e2e-checklist.md links

Issues: na-xjw.7, na-xjw.9
2026-03-05 10:40:25 -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