boshu
e29568e196
fix(docs): doc-lifecycle sweep — delete byte-dup, duplicates gate, BC6 label, career-leak excision, hookless reconcile (age-gate-the-ungated-egwt.12)
2026-07-01 19:23:34 -04:00
boshu
4a7c6a0701
feat(gates): docs.skill-refs --all-docs — widen the 6-file skill-ref gate to live docs + SKILL-ROUTER sync (age-gate-the-ungated-egwt.5)
...
Add an --all-docs mode to check-doc-skill-refs.sh that scans the union of the
pinned doctrine files PLUS the full LIVE docs/** set (scripts/lib/docs-scope.sh),
ratcheted by a new filename-pinned shrink baseline
(scripts/.docs-skill-refs-baseline). Two-way ratchet: a non-baselined live doc
with a dead `/skill` ref FAILS; a baselined file that no longer offends FAILS
demanding a prune. Detection stays slash-syntax + headings only (never bare
skill names). Default (no-flag) behavior is byte-identical.
docs/SKILL-ROUTER.md (the curated router) is covered by --all-docs (a live
docs/** file, never baselined) so a dead ref there FAILS strict, without
perturbing the byte-identical default doc count.
seed.go docs.skill-refs row: Match widened to docs/** + the baseline + the lib;
Args set to [--all-docs --strict]. Burn-down (long-tail only): repointed retired
`/retro`->/post-mortem, `/vibe`->/validate, `/ratchet`->/flywheel,
`/research-multi`->/research, `/implement-wave`->/crank, and reworded the
retired `/dream` across 13 docs/levels + docs/workflows + docs/philosophy
pages, then pruned them from the baseline (91 -> 78 offenders). Owner-locked
pages (comparisons/getting-started/positioning) stay baselined.
Bats twin tests/scripts/check-doc-skill-refs-all-docs.bats covers all the modes.
2026-07-01 18:12:53 -04:00
boshu
b7503b4519
feat(gates): docs.cli-snippets gate — resolve ao commands in live docs against the cobra tree (age-gate-the-ungated-egwt.4)
2026-07-01 18:07:41 -04:00
Boden Fuller
23769dff5f
fix(beads): resolve canonical ledger from worktrees (age-worktree-beads-ledger-guard-c1u1)
2026-06-19 22:34:07 -04:00
Boden Fuller
7e447c02b5
docs(destale): wave 2 + ratchet — all live docs off retired tech (age-docs-staleness-remediation-cko)
...
Completes the staleness epic. 42 P2/P3 files converged to current truth
(bd→br, gascity/gt-sling/mayor→NTM+Agent Mail, daemon→substrate, hooks→hookless,
CI-authoritative→push-to-main local Go gate); GLOSSARY's 18 dead skills/* links
repaired to ../skills/<name>/SKILL.md (19 links, 0 broken); contracts/runbooks
that freeze retired-system nouns bannered RETIRED/HISTORICAL rather than rewritten.
Adds the Arc-7 ratchet — scripts/check-docs-no-retired-tech.sh — which scans all
live docs (260) for retired-subsystem commands/phrases and fails on regression.
A doc opts out by carrying a RETIRED/HISTORICAL/SUPERSEDED banner (or being an
ADR / migration / upgrade / index doc), and lines that describe a removal are not
flagged. Running it caught 12 stale refs the deep-read sweep missed — a
"CI is the authoritative gate" cluster (agentops-brief, primitive-chains,
INCIDENT-RUNBOOK, knowledge-flywheel, philosophy, software-factory), stale
hook-smoke in release-e2e-checklist, and GasCity descriptors in
contracts/index + SCHEMAS + strategic-direction — now fixed. Gate: PASS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 10:29:17 -04:00
Bo
b84dcf3ca2
docs(hookless): close cold-start orientation drift (soc-qh2g1 #cold-start-orientation-coherence) ( #795 )
...
## Summary
Close the hookless cold-start orientation gap for `soc-qh2g1` by making
the live startup docs and skills point at explicit `ao session
bootstrap` plus pulled context (`ao inject` / `ao lookup`) instead of
hidden SessionStart behavior.
## Changes
- Reframes live docs that still implied automatic startup/handoff
injection to the hookless explicit-command path.
- Updates source and Codex skill mirrors for `quickstart`, `inject`,
`using-agentops`, `recover`, `bug-hunt`, and `session-bootstrap`.
- Expands the cold-start and docs drift gates so `SessionStart hook`,
`startup hooks`, and `auto-inject ... hook` promises fail unless
explicitly hedged as opt-in, removed, or historical.
- Refreshes scoped Codex skill hashes for the touched mirrors.
## Test plan
- [x] `bash scripts/check-hookless-cold-start.sh`
- [x] `bash scripts/check-doc-hooks-drift.sh`
- [x] `bats tests/scripts/check-hookless-cold-start.bats
tests/scripts/check-doc-hooks-drift.bats`
- [x] `shellcheck scripts/check-hookless-cold-start.sh
scripts/check-doc-hooks-drift.sh`
- [x] `bash scripts/regen-codex-hashes.sh --check --only
session-bootstrap,quickstart,inject,using-agentops,recover,bug-hunt`
- [x] `bash scripts/validate-codex-generated-artifacts.sh`
- [x] `bash scripts/validate-codex-lifecycle-guards.sh`
- [x] `bash scripts/validate-agents-split.sh`
- [x] `git diff --check`
- [x] `bash scripts/validate-skill-runtime-parity.sh`
- [x] `bash scripts/lint-codex-native.sh`
Closes-scenario: soc-qh2g1#cold-start-orientation-coherence
Bounded-context: BC1-Corpus
Evidence: scripts/check-hookless-cold-start.sh
2026-06-06 11:23:56 -04:00
Bo
e74d8899fd
feat(ci): gate live-hooks reintroduction in docs/ (ag-rryf #doc-hooks-drift-gate) ( #713 )
...
## What
Adds `scripts/check-doc-hooks-drift.sh` — a CI regression guard that
fails when a **live-facing** doc reintroduces a live hooks runtime after
the 3.0 hookless teardown:
- `hooks/hooks.json` (retired manifest), a `hooks/<name>.sh` runtime
path,
- `ao hooks` (not a registered command — verified absent from
`cli/cmd/ao/`),
- a bare `session-{start,end,autostart}*.sh` hook-file ref
…unless the **same line** hedges it as hookless / opt-in / historical /
removed / a git-hook. Companion to `sync-skill-counts.sh` (skill-count
drift) and `check-hookless-cold-start.sh` (fixed-list cold-start gate).
## Scope (and why the exclusions)
`docs/` **minus** surfaces that legitimately/archivally name hooks:
- **archival history** — `CHANGELOG.md`, `releases/`, `learnings/`,
`plans/`, `adr/`, `convergence/`, `sovereignty-proof/` (document the
past / the removal itself)
- **opt-in subsystem** — `contracts/` (hooks-authoring opt-in specs),
`runbooks/` (diagnostic enumeration), `code-map/` (point-in-time audits)
The gate keeps the onboarding / operator / architecture narrative
hookless.
## Also: finishes the ag-t1ca residue the gate flags
The ag-t1ca de-hooking missed 8 live-facing lines (gate caught them);
each is reframed:
- stale `ao hooks` command/smoke refs → removed / `ao doctor`
(`cli-skills-map`, `UPGRADING`, `release-e2e-checklist`,
`contracts/release-readiness`)
- present-tense hooks-as-rules → CI gates (`strategic-direction`)
- hook-runtime mentions → `ao curate constrain` / opt-in framing
(`curation-pipeline`, `leverage-points`, `SCHEMAS` legacy-manifest
label, `workflows/session-lifecycle`)
## Verification
- `scripts/check-doc-hooks-drift.sh` → PASS on this branch (FAILed on
all 8 before the reframes)
- `tests/scripts/check-doc-hooks-drift.bats` → 8/8 (positive /
negative×3 / hedge×2 / exclusion / no-docs error)
- `shellcheck` clean · `markdownlint` 0 errors (9 docs) ·
`validate-cli-skills-map.sh` PASS · `generate-ci-jobs-table.sh --check`
PASS · existing `check-hookless-cold-start.sh` still green
- Wired into `validate.yml` lint/contracts (gated on docs/ci/shell
changes) + auto-run via the bats suite
Closes-scenario: ag-rryf#doc-hooks-drift-gate
Bounded-context: BC2-Validation
Evidence: scripts/check-doc-hooks-drift.sh
2026-06-03 22:38:26 -04:00
Bo
b6691ddab1
docs: fix docs asserting Gas City is the reference -> NTM+MCP+managed-agents (ag-r6g1 #docs-slice-2) ( #689 )
...
## What
Fixes the **post-mortem WARN caveat** from the #684–#687 session: 5 docs
still **asserted "Gas City is the reference"** — a now-FALSE claim
contradicting the north star ([`docs/3.0.md`](docs/3.0.md): substrate =
**NTM + MCP + managed-agents**). Re-narrates all 11 refs (**ag-r6g1**,
docs slice #2 ).
## Surfaces (5 files, +21 −20)
- `docs/how-it-works.md` (2) — out-of-session delegation +
Dream-unattended para (de-GC'd the mayor/refinery/cron-`exec`-Order
mechanics → NTM swarm / managed-agent driver).
- `docs/software-factory.md` (2) — prose + Surface Map row.
- `docs/first-value-path.md` (4) — step 6, fast-path table row, the
substrate block (mayor/refinery/Orders/`city.toml` → the
NTM+MCP+managed-agents trio), artifacts row.
- `docs/architecture/ports-and-adapters.md` (1) — autonomous-loops
delegation.
- `docs/workflows/session-lifecycle.md` (2) — substrate prose + table
row.
Kept the correct "AgentOps ships no daemon/scheduler; delegates to a
substrate" framing intact.
## Scope
**ag-r6g1 stays OPEN** — operator runbooks (`nightly-evolution`,
`autonomy-runtime-cycle-1`, deeper GC-specific mechanics) + descriptive
comparison/example/explainer mentions remain for 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-2
Bounded-context: BC1-Corpus
Evidence: docs/how-it-works.md
2026-06-02 16:06:22 -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
39bad7d2f3
docs(3.0): ag-p7j W2 — reframe core narrative docs to in-session (ag-p7j) ( #527 )
...
## What
Worker 2 of the ag-p7j 3-way swarm reconciling stale daemon/scheduler
references for AgentOps 3.0. Reframes stale `ao daemon` / `agentopsd` /
`ao schedule` / `ao overnight` prose across 7 core narrative docs to the
**in-session model**: the loop runs in session (the product +
sovereignty floor); always-on / scheduled / unattended execution is
delegated to an orchestration substrate (Gas City is the reference
City), not an AgentOps surface. Those daemon/scheduler/overnight-runner
surfaces were deleted in the 3.0 rearchitecture (ADR-0009). Mirrors
`docs/3.0.md`.
## Files (7, prose only)
- `docs/software-factory.md` — Runtime Variants daemon-submit lane →
in-session `ao rpi phased`; Surface Map drops `ao daemon submit`, adds
an out-of-session (substrate) row; "both paths" note now in-session +
Gas City delegation.
- `docs/cdlc.md` — SDLC→CDLC table: "Software factory daemon (`ao
daemon`)" → in-session loop run on a substrate (Gas City reference).
- `docs/how-it-works.md` — Dream split intro + "Dream — Private
Overnight Operator Mode" section reframed from `ao overnight` to
in-session `/dream` + CLI primitives; unattended = Gas City substrate.
- `docs/philosophy.md` — `/dream and ao overnight` → `/dream` in
session, out-of-session compounding on Gas City.
- `docs/first-value-path.md` — intro item 6, Time-Budget row, Step 7
"Optional Scheduled Lane" (`ao daemon run` / `ao schedule`) → "Optional
Out-of-Session Lane" (Gas City mayor/refinery); First-Artifacts and
Friction rows updated.
- `docs/workflows/session-lifecycle.md` — Option 3 "Bedtime Dream Run"
(`ao overnight setup/start/report`) → "Dream Compounding Run" (`/dream`
foreground); runtime-modes table row updated.
- `docs/architecture/ports-and-adapters.md` — Autonomous-loops adapter
bullet: `agentopsd daemon scheduler` removed; `/dream`,`/evolve` framed
as in-session driving adapters with out-of-session delegated to the
substrate.
No links to deleted daemon contracts existed in these files (verified).
No edits outside the 7.
## Gates
- `grep -E "ao daemon |agentopsd|ao schedule"` across the 7 files:
**CLEAN** (also clean for `ao overnight`/`ao plans`/`ao
watch`/`schedule.yaml`/`--with-schedule`).
- `markdownlint` on the 7 files: **PASS** (exit 0).
- `mkdocs build --strict`: **PASS** (exit 0; only the generic Material
upgrade banner, no link warnings/errors).
- doc-release gate (`tests/docs/validate-doc-release.sh`): **PASS**.
- learning-references check: **PASS**.
Diff stat: 7 files, +65/-72 — balanced, no collateral data loss.
Closes-scenario: ag-p7j#w2-core-docs
Bounded-context: BC1-Corpus
Evidence: docs/software-factory.md
2026-05-24 21:15:43 -04: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
f382d42bc3
docs: clarify AgentOps golden paths
2026-05-03 00:41:17 -04:00
Boden Fuller
cd0d4b9555
fix(codex): keep session-start hook quiet
2026-04-23 23:15:27 -04:00
Boden Fuller
22fbfa2253
fix(codex): repair native hook manifest install
2026-04-23 23:15:27 -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
4a179cd94d
docs(codex): update hookless references to reflect native hooks in v0.115.0+
...
Codex CLI v0.115.0+ supports native hooks (SessionStart, Stop,
UserPromptSubmit, PreToolUse, PostToolUse). Update skills, CLI help
text, and docs to reflect this:
- Skills: using-agentops, recover, quickstart, post-mortem, rpi
now document native hooks as primary, hookless as fallback
- CLI: codex.go help text updated (ao codex start/stop are fallback)
- Docs: architecture, contracts, flywheel, session-lifecycle updated
with codex-native-hooks runtime mode alongside hookless fallback
2026-04-07 09:44:47 -04:00
Boden Fuller
2177edb30f
fix: wire flywheel automation into skill paths
2026-04-03 10:47:44 -04:00
Boden Fuller
7ed1f19be4
Merge branch 'codex/claude-factory-native' into codex/merge-recent-branches
...
# Conflicts:
# cli/README.md
# docs/workflows/session-lifecycle.md
2026-04-02 15:54:48 -04:00
Boden Fuller
2fc5234911
refactor(hooks): keep Claude startup surface in CLAUDE.md
2026-04-02 15:52:33 -04:00
Boden Fuller
6df03bdbb3
feat(hooks): add claude factory startup routing
2026-04-02 15:32:50 -04:00
Boden Fuller
bc7e7937bb
feat(cli): add software-factory operator lane
2026-04-02 15:11:54 -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
Boden Fuller
ea5d1148bb
feat: harden codex hookless follow-up flows
2026-03-24 10:09:27 -04:00
Boden Fuller
9e4ddcf859
feat: add codex hookless lifecycle fallback
2026-03-23 15:24:33 -04:00
Boshu2
0c1d4f6308
docs: align lifecycle docs with primitive chain audit
2026-03-11 12:37:24 -04:00
Boden Fuller
2b338ee0c3
fix(cli+docs): tech debt sweep — UTF-8 truncation, CORS, stale refs (na-7r3)
...
Go fixes:
- Fix UTF-8 boundary slicing in narrative truncation (rune-safe truncateRunes helper)
- Add signal.Stop to rpi_serve signal handlers (prevent goroutine leak)
- Replace CORS wildcard with localhost-only validation (prevent cross-site reads)
- Surface SSE polling errors to client instead of silent continue
- Extract section name constants (HISTORY/INTEL/TASK) from magic strings
- Add intel_scope enum validation (none/topic/full)
- Sort resolveSkillPath glob matches for deterministic resolution
- Add random suffix to adhoc context IDs (prevent 1-second collision)
- Surface writePromptAuditTrail errors to stderr unconditionally
- Document RPI_RUN_ID env var in ao inject --help
Doc fixes:
- Replace stale /learn skill references with /retro --quick across 9 workflow docs
- Replace .agents/retros/ with .agents/council/ in post-mortem SKILL.md + references
- Reorder GOALS.md directives to sequential 1-8 numbering
- Rename post-mortem Phase 2 steps from 4.x to EX.x
- Update SKILL-TIERS.md: council + retro → council + knowledge lifecycle
- Sync all changes to skills-codex mirror
Epic: na-7r3 (6 issues, 2 waves)
2026-03-04 10:07:01 -05:00
Boden Fuller
37d4b5b2ae
Merge branch 'codex/rpi-supervisor-cli' into main
2026-02-21 19:41:50 -05:00