Commit Graph

6 Commits

Author SHA1 Message Date
Boden Fuller 75bc023ec2 feat(extract): import olympus v5 contracts + reference docs into agentopsd
Lands the agentops-tqc extraction (32-bead epic). Olympus repo
(~/dev/personal/olympus, v5.0.1) was superseded 2026-04-28 by agentopsd;
this imports the load-bearing patterns and contracts.

New code surface:
- schemas/{bead,briefing,learning,phase,quest,verdict}.v1.schema.json
  (6 JSON schemas, contracts independent of Go type structs)
- cli/internal/types/quest/{atomic,atomic_test}.go + {atomic_fault,
  json_marshal_guard}_test.go: atomic file-write helpers (canonical
  destination for future writeFileAtomic dedup)
- cli/cmd/ao/exit_codes.go: 0/1/2/42 exit-code protocol from Olympus zeus
- cli/internal/context/brief_render{,_test}.go: pure-fn Render +
  RenderAndPersist shell (olympus hermes pattern, post-Feb-24 reduction)
- cli/cmd/ao/cobra_conformance_test.go: bidirectional spec/code walk
  locking cli/docs/COMMANDS.md against drift

Documentation:
- 11 new AGENTS.md files (10 cli/internal/<pkg>/ + cli/internal/types)
- docs/standards/olympus-engineering-standards.md (reference port,
  subordinate to canonical agentops rules)
- docs/runbooks/{autonomy-runtime-cycle-1,release-process}.md
- docs/code-map/agentopsd-codebase-map.md
- docs/design/olympus-v4-specs/ (8 v4 specs as REFERENCE only)
- docs/documentation-index.md updated with new entries

Build/vet/test green. Follow-up beads (agentops-3ga) consolidate atomic
helpers and fix the spec generator.

Source: ~/.agents/olympus-history-index.md
Plan: .agents/plans/2026-04-29-plan-extract-olympus-into-agentopsd.md
2026-04-29 22:33:59 -04:00
Bo 9b08fb933d refactor(cli): go cli quality discovery batch (gc-bridge, json contracts, leaf-help smoke) (#162)
* docs: add go cli quality discovery plan

* fix(cli): harden gc bridge version parsing

* docs(go): align complexity policy with gates

* docs(cli): classify command surface

* fix(cli): enforce json output contracts

* feat(cli): expand completion coverage

* refactor(cli): pilot badge options writer

* refactor(cli): inject contradict output writer

* refactor(cli): inject notebook update writer

* fix(cli): enable gc runtime smoke coverage

* fix(cli): align gc bridge with gascity v1

* Release v2.39.0

* fix(tests): align next-work schema test with widened type enum

Commit ed35c47f added `docs` and `chore` to the script's VALID_TYPES,
but tests/scripts/check-next-work-schema-rows.bats:42 still used
`type:"docs"` as its supposed-to-be-rejected example, so the test
now passes through the validator — `bats-tests` has been red on
main since.

Switch the rejected-type example to `finding`, which is still
outside the enum and is also the canonical example cited in the
script's own header comment ("type=finding ... caught at push time").

Local: 11/11 in tests/scripts/check-next-work-schema-rows.bats pass.

* docs: capture finding generator postmortem (#157)

* fix(rpi): sort verdicts deterministically in context and status helpers (#158)

BuildPhaseContext and JoinVerdicts iterated the verdicts map directly,
producing non-deterministic output across runs. Sort keys before
rendering so prompt injection and status logs are reproducible.

Closes council finding W-7 (context-orchestration-leverage batch). The
related buildHandoffContext path was already fixed to delegate to
FormatVerdicts (which sorts); this completes the remaining helpers.

- cli/internal/rpi/status.go: sort keys in JoinVerdicts
- cli/internal/rpi/phased_context.go: sort keys in BuildPhaseContext
- tests: replace "ordering not deterministic" waivers with exact-order
  asserts and add a 50-run stability check

https://claude.ai/code/session_01Qw4bZvXUNuLs8Rp1j1homB

Co-authored-by: Claude <noreply@anthropic.com>

* fix(codex): audit noisy hook injections (#159)

* docs: add competitive radar (#160)

* feat(agents): harden operator control plane (#161)

* docs(discovery): plan agents control plane hardening

* feat(agents): harden operator control plane

* Release v2.39.0

* fix(tests): align next-work schema test with widened type enum

Commit ed35c47f added `docs` and `chore` to the script's VALID_TYPES,
but tests/scripts/check-next-work-schema-rows.bats:42 still used
`type:"docs"` as its supposed-to-be-rejected example, so the test
now passes through the validator — `bats-tests` has been red on
main since.

Switch the rejected-type example to `finding`, which is still
outside the enum and is also the canonical example cited in the
script's own header comment ("type=finding ... caught at push time").

Local: 11/11 in tests/scripts/check-next-work-schema-rows.bats pass.

* docs: capture finding generator postmortem (#157)

* fix(rpi): sort verdicts deterministically in context and status helpers (#158)

BuildPhaseContext and JoinVerdicts iterated the verdicts map directly,
producing non-deterministic output across runs. Sort keys before
rendering so prompt injection and status logs are reproducible.

Closes council finding W-7 (context-orchestration-leverage batch). The
related buildHandoffContext path was already fixed to delegate to
FormatVerdicts (which sorts); this completes the remaining helpers.

- cli/internal/rpi/status.go: sort keys in JoinVerdicts
- cli/internal/rpi/phased_context.go: sort keys in BuildPhaseContext
- tests: replace "ordering not deterministic" waivers with exact-order
  asserts and add a 50-run stability check

https://claude.ai/code/session_01Qw4bZvXUNuLs8Rp1j1homB

Co-authored-by: Claude <noreply@anthropic.com>

* fix(codex): audit noisy hook injections (#159)

* docs: add competitive radar (#160)

* fix(merge): drop unused AgentsDoctorError ref and prune allowlist entries without production refs

---------

Co-authored-by: Claude <noreply@anthropic.com>

* fix(merge): resolve conflicts by taking PR's refactored contradict/codex_runtime, main's overnight test schema

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-26 23:09:48 -04: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
Boden Fuller cc3259f262 fix(ci): pin golangci-lint v2 contract 2026-04-11 14:09:00 -04: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 37d4b5b2ae Merge branch 'codex/rpi-supervisor-cli' into main 2026-02-21 19:41:50 -05:00