Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
bc58e09
refactor(gate): remove pre-push verification
chapati23 Sep 2, 2026
d95e2b5
Merge remote-tracking branch 'origin/main' into feat/m5-early-cutover
chapati23 Sep 2, 2026
9613ac4
docs(verification): record M5 cutover evidence
chapati23 Sep 2, 2026
c737ccd
Merge remote-tracking branch 'origin/main' into feat/m5-early-cutover
chapati23 Sep 2, 2026
1c12a36
fix(ship): restore author-check safeguards
chapati23 Sep 2, 2026
b67fe9f
fix(ship): bind preflight before repo commands
chapati23 Sep 2, 2026
d364faf
docs(verification): refresh M5 cutover evidence
chapati23 Sep 2, 2026
56b1055
fix(docs): keep scripts instructions within budget
chapati23 Sep 2, 2026
6161b22
docs(verification): bind M5 evidence to final source
chapati23 Sep 2, 2026
a75937c
fix(ship): close direct-check workflow gaps
chapati23 Sep 2, 2026
8e976af
docs(verification): bind M5 evidence to final source
chapati23 Sep 2, 2026
e25926f
fix(ship): require skill mirror verification
chapati23 Sep 2, 2026
f1b9d7b
docs(verification): bind M5 evidence after mirror repair
chapati23 Sep 2, 2026
6e02669
fix(review): remove stale checklist mapping claim
chapati23 Sep 2, 2026
4272482
docs(verification): bind M5 evidence after review fix
chapati23 Sep 2, 2026
6d2664e
fix(verification): reject partial pre-push removal
chapati23 Sep 2, 2026
608e29e
docs(verification): bind M5 evidence after parity repair
chapati23 Sep 2, 2026
5ac6197
fix(ship): close early-cutover review gaps
chapati23 Sep 2, 2026
096a53f
docs(verification): bind final M5 source evidence
chapati23 Sep 2, 2026
6cbbd76
fix(ship): close M5 cutover review gaps
chapati23 Sep 2, 2026
8b26550
docs(verification): bind final M5 review repairs
chapati23 Sep 2, 2026
8558dad
Merge branch 'main' into feat/m5-early-cutover
chapati23 Sep 2, 2026
fdd3045
docs(verification): refresh M5 source boundary
chapati23 Sep 2, 2026
041f41d
test(gate): annotate dynamic drain stubs
chapati23 Sep 2, 2026
a0a5b6d
test(gate): keep lint repair within M5 budget
chapati23 Sep 2, 2026
fd7c19c
fix(ship): order dependency-sensitive author checks
chapati23 Sep 2, 2026
61f63db
test(verification): require retained Trunk config
chapati23 Sep 2, 2026
e09d3f7
docs(verification): bind final current-base M5 evidence
chapati23 Sep 2, 2026
75d1cb1
Merge remote-tracking branch 'origin/main' into feat/m5-early-cutover…
chapati23 Sep 3, 2026
de8dfb1
docs(verification): refresh M5 current-base boundary
chapati23 Sep 3, 2026
f4ab6db
test(gate): narrow merged shellcheck suppressions
chapati23 Sep 3, 2026
8b96fc7
docs(verification): bind M5 evidence to repaired main
chapati23 Sep 3, 2026
4017fdc
test(gate): keep merged fixture reviewable
chapati23 Sep 3, 2026
8c05453
Revert "test(gate): keep merged fixture reviewable"
chapati23 Sep 3, 2026
46c2669
fix(gate): mirror the SC2030 waiver onto the Linux fixture and correc…
chapati23 Sep 3, 2026
4e26a90
Merge commit '8e2753fc730889a64a0d58714d871121c3ae561b' into feat/m5-…
chapati23 Sep 3, 2026
f0b3ce4
docs(verification): refresh M5 current-base boundary
chapati23 Sep 3, 2026
32691b3
docs(verification): bind M5 evidence to current main
chapati23 Sep 3, 2026
170e489
fix(verification): route catalog metadata checks
chapati23 Sep 3, 2026
7131d1a
docs(verification): keep the catalog rule concise
chapati23 Sep 3, 2026
70f9a9c
Merge commit '19909e6a6baa5dae74ee08e06c691285a6a524df' into feat/m5-…
chapati23 Sep 3, 2026
5904d50
docs(verification): bind M5 evidence to latest main
chapati23 Sep 3, 2026
5d7b1af
Merge remote-tracking branch 'origin/main' into feat/m5-early-cutover…
chapati23 Sep 3, 2026
277e40d
Revert "docs(verification): bind M5 evidence to latest main"
chapati23 Sep 3, 2026
7c53813
docs(verification): bind M5 evidence to current main
chapati23 Sep 3, 2026
020bbbd
fix(verification): close author-check mapping gaps
chapati23 Sep 3, 2026
4c665cf
Revert "docs(verification): bind M5 evidence to current main"
chapati23 Sep 3, 2026
e4ab2a1
docs(verification): bind final M5 evidence
chapati23 Sep 3, 2026
dfada32
Merge remote-tracking branch 'origin/main' into feat/m5-early-cutover…
chapati23 Sep 3, 2026
2775cc6
Revert "docs(verification): bind final M5 evidence"
chapati23 Sep 3, 2026
94aa126
docs(verification): bind M5 evidence to current main
chapati23 Sep 3, 2026
b263600
Merge remote-tracking branch 'origin/main' into feat/m5-early-cutover…
chapati23 Sep 3, 2026
11a4e0a
Revert "docs(verification): bind M5 evidence to current main"
chapati23 Sep 3, 2026
95f79dd
docs(verification): bind M5 evidence to latest main
chapati23 Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .agents/roles/standards-enforcer.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Standards Enforcer Role
status: active
owner: eng
canonical: true
last_verified: 2026-07-22
last_verified: 2026-09-02
doc_type: role
scope: repo-wide
review_interval_days: 90
Expand All @@ -18,7 +18,9 @@ Check changed files against repo instructions and context standards before PR re

1. Read `docs/context-standards.md`.
2. Identify applicable `AGENTS.md` files from repo root down to each changed file.
3. Identify applicable checklists from `docs/pr-checklists/` and `pnpm agent:quality-gate --dry-run`.
3. Identify applicable checklists from `docs/pr-checklists/`, scoped
instructions, and the author-check table in step 3 of the
[operating card](../../docs/notes/pr-operating-card.md).
4. Run `pnpm agent:context-check`.
5. Review for canonical/non-canonical confusion, missing scoped instructions, duplicated instructions, missing metadata, and root policy that belongs in nested AGENTS.

Expand Down
31 changes: 11 additions & 20 deletions .agents/roles/verifier.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Verifier Role
status: active
owner: eng
canonical: true
last_verified: 2026-08-26
last_verified: 2026-09-02
doc_type: role
scope: repo-wide
review_interval_days: 90
Expand All @@ -16,25 +16,16 @@ Run diff-scoped verification and report only actionable results.

## Procedure

1. Inspect the branch diff against `origin/main`.
2. Run `pnpm agent:quality-gate --dry-run` and confirm mapped commands/checklists match changed surfaces.
3. Unless the requester asked for dry verification only, run the gate as a
background task. A local setup runs `pnpm agent:quality-gate --run` against
the resolved PR base. In a hosted setup, run the resolved-base gate first
when the resolved base tracking ref is not `origin/main`. This includes fork
and stacked PRs. Then fetch `origin/main` and warm the hook with
`./scripts/agent-quality-gate.sh --run --parallel 3 --base origin/main`. If
the resolved base is `origin/main`, this hook warm is also the resolved-base
gate.
Before invoking it, ensure
that no direct validation, dashboard server, or browser suite outside the
coordinator is active on the same machine. Concurrent `--run` gates from
other worktrees can continue through the coordinator. They share weighted
machine capacity. From invocation until this gate exits, do not start
uncoordinated work there. Use same-machine spare workers only for read-only
work. Run validation outside the coordinator from a fully hydrated checkout
on another machine.
4. Report every failed or skipped command, the relevant output, and the
1. Inspect the branch diff against the resolved pull request base. Use the
resolved PR base, not a fixed `origin/main`, for every diff-based author
check, including stacked PRs.
2. Read the scoped instructions and checklists for the changed surfaces.
3. Select the applicable direct author checks from step 3 of
[`pr-operating-card.md`](../../docs/notes/pr-operating-card.md). Unless the
requester asked for dry verification only, run those checks directly and
record each result as the card requires. Do not substitute the legacy
diagnostic gate for the author-check table.
4. Report every failed or not-run command, the relevant output, and the
smallest next fix.

## Output
Expand Down
235 changes: 79 additions & 156 deletions .agents/skills/backlog-sweep/SKILL.md

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions .agents/skills/doc-garden/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: Documentation Garden Skill
status: active
owner: eng
canonical: true
last_verified: 2026-07-22
last_verified: 2026-09-02
doc_type: skill
scope: repo-wide
review_interval_days: 90
Expand Down Expand Up @@ -89,9 +89,9 @@ pnpm agent:context-check
pnpm agent:context-budget --strict
```

Run the quality gate through step 3 of the operating card. Hosted sessions use
the exact direct warm command from that step. Local sessions use
`pnpm agent:quality-gate --run`.
Apply the direct author checks from step 3 of the
[operating card](../../../docs/notes/pr-operating-card.md). Record each
applicable result in the PR validation section as that step requires.

Summarize the disposition and evidence for every packet file in the PR body.
Open a normal ready-for-review PR, use `Closes #<issue>` only when the entire
Expand Down
11 changes: 6 additions & 5 deletions .agents/skills/monorepo-import/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: Monorepo Import Skill
status: active
owner: eng
canonical: true
last_verified: 2026-07-23
last_verified: 2026-09-02
doc_type: skill
scope: repo-wide
review_interval_days: 90
Expand Down Expand Up @@ -83,16 +83,17 @@ patterns and update them in the same PR.

## Phase 4: Verify In Layers

Run the narrow local checks for the imported subsystem first, then the repo's
agent gate:
Run the narrow local checks for the imported subsystem first. Then apply the
repo-wide checks for its changed surfaces:

- package build/typecheck/test/lint for imported TypeScript packages
- `forge test` for imported Foundry helpers/contracts
- Terraform fmt/init/validate/plan for touched Terraform roots; never apply
without explicit user approval
- workflow syntax and path/filter review for new CI/deploy workflows
- the quality gate from operating-card step 3 before opening or updating the
PR; hosted sessions use its exact direct warm command
- the applicable direct author checks from step 3 of the
[operating card](../../../docs/notes/pr-operating-card.md) before the ready
handoff

If registry/network access is unavailable, do not pretend lockfile or install
work is verified. Surface the blocked command and rerun with network access when
Expand Down
60 changes: 30 additions & 30 deletions .agents/skills/ship/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
name: ship
description: '[repo-skill] Ship monitoring-monorepo changes through the repo''s Codex-compatible workflow: preflight, quality gate, closeout review, commit, push, PR create/update, readiness babysitting, and required production closeout. Use when the user says "ship it", "/ship", "push this", "open a PR", "create a PR", "publish this", or "send it" in this repo.'
description: '[repo-skill] Ship monitoring-monorepo changes through the repo''s Codex-compatible workflow: preflight, direct author checks, closeout review, commit, push, PR create/update, readiness babysitting, and required production closeout. Use when the user says "ship it", "/ship", "push this", "open a PR", "create a PR", "publish this", or "send it" in this repo.'
title: Ship Skill
status: active
owner: eng
canonical: true
last_verified: 2026-08-22
last_verified: 2026-09-02
doc_type: skill
scope: repo-wide
review_interval_days: 90
Expand All @@ -20,40 +20,40 @@ loads the user-global `ship` skill instead of this file
([`codex-agent-skills.md`](../../../docs/notes/codex-agent-skills.md#claude-global-store-shadowing)),
so a rule written here and nowhere else would reach Codex only.

Work [`pr-operating-card.md`](../../../docs/notes/pr-operating-card.md) from
step 2 through step 9. It owns the PR description shape, the ready-for-review
default, `Closes` vs `Refs`, the babysit and ready-state contracts, merge
hygiene, and production closeout.
After bootstrap, work
[`pr-operating-card.md`](../../../docs/notes/pr-operating-card.md) steps 2-9.
Run its preflight before agent-invoked repository code. It does not attest
bootstrap; setup has a separate [trust boundary](../../../docs/notes/worktree-and-web-setup.md#bootstrap-trust-boundary).

| Decision | Authority |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Gate mapping, autoreview engine, bundle preparation and verification | [`agent-quality-gate-mechanics.md`](../../../docs/notes/agent-quality-gate-mechanics.md) |
| Readiness and feedback projections | [`pr-ready-state.md`](../../../docs/notes/pr-ready-state.md) |
| Surface detection, gh capability gate, gh→MCP mapping | [`github-tooling-surfaces.md`](../../../docs/notes/github-tooling-surfaces.md) |
| UI browser verification and the `## Visual comparison` section | [`dashboard-verification.md`](../../../docs/notes/dashboard-verification.md) |
| Claim, deferrals, issue lifecycle | [`agent-issue-workflow.md`](../../../docs/notes/agent-issue-workflow.md) |
| Production closeout | [`../../../docs/deployment.md`](../../../docs/deployment.md) and the owning package runbook |
| Decision | Authority |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Author-check triggers and result records | [`pr-operating-card.md`](../../../docs/notes/pr-operating-card.md#the-loop) |
| Autoreview engine, bundle preparation and verification | [`agent-quality-gate-mechanics.md`](../../../docs/notes/agent-quality-gate-mechanics.md) |
| Readiness and feedback projections | [`pr-ready-state.md`](../../../docs/notes/pr-ready-state.md) |
| Surface detection, gh capability gate, gh→MCP mapping | [`github-tooling-surfaces.md`](../../../docs/notes/github-tooling-surfaces.md) |
| UI browser verification and the `## Visual comparison` section | [`dashboard-verification.md`](../../../docs/notes/dashboard-verification.md) |
| Claim, deferrals, issue lifecycle | [`agent-issue-workflow.md`](../../../docs/notes/agent-issue-workflow.md) |
| Production closeout | [`../../../docs/deployment.md`](../../../docs/deployment.md) and the owning package runbook |

## What this repo adds

- **Gate before publish**: Follow card step 3 and validate against the resolved
PR base. A local setup runs `pnpm agent:quality-gate --run` against that base.
In a hosted setup, run the resolved-base gate first when the resolved base
tracking ref is not `origin/main`. This includes fork and stacked PRs. Then
fetch `origin/main` and warm the hook with
`./scripts/agent-quality-gate.sh --run --parallel 3 --base origin/main`. If the
resolved base is `origin/main`, this hook warm is also the resolved-base
gate. Then run the closeout review
for non-trivial behavioural, workflow, security, data-flow, infrastructure,
or UI changes. **Which closeout depends on the surface**, and a bare
- **Repository identity before agent-invoked code**: Resolve `CURRENT_REPO`,
`BASE_REPO`, PR, remotes, and base after bootstrap. Stop fork and
cross-repository heads before agent code. Bind PR probes to `BASE_REPO`; a
failed query does not prove that no PR exists. Use the resolved PR base, not
a fixed `origin/main`, for every diff-based author check, including stacked
PRs.
- **Author checks before ready publication**: Apply every matching row in card
step 3. Format every intended changed file before those checks. Record each
result in `## Validation`. Reapply affected rows after a material fix, base
integration, or formatter change during commit. Pre-push runs no repository
verification.
Then run the closeout review for non-trivial behavioural, workflow, security,
data-flow, infrastructure, or UI changes. **Which closeout depends on the surface**, and a bare
`pnpm agent:autoreview` is not always it: inside an active Codex session that
silently selects the local deterministic engine, so the prepared-bundle
fresh-context flow is required instead. Card step 4 owns the choice — follow
it rather than the bare command.
- **Resolve the base repo from evidence.** A fork checkout uses its parent as
`BASE_REPO`; never substitute a fork's `origin` for its parent. Bind every
`gh pr view`, feedback-state, and ready-state call with `--repo <BASE_REPO>`.
A failed GitHub query is not evidence that no PR exists.
- **PRs open ready for review.** Drafts suppress the automated AI reviews this
workflow depends on.
- **`scripts/pr/check-pr-description.mjs` enforces `## The Problem` then
Expand All @@ -63,8 +63,8 @@ hygiene, and production closeout.
- **Never post routine or duplicate `@codex review` requests**, and never tag
`chatgpt-codex-connector` directly.
- **Deep security scan** (`claude-security`) is developer-installed and Claude
Code only. This repo does not declare it. Where unavailable, aim the gate and
closeout review at the sensitive surfaces and record
Code only. This repo does not declare it. Where unavailable, aim the direct
author checks and closeout review at the sensitive surfaces and record
`Claude Security scan: skipped (<surface>)` in the final summary.
- **Done is not merge when Done means includes live behaviour.** Card step 9
owns the closeout.
3 changes: 2 additions & 1 deletion .claude/commands/autoreview.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ checks and autoreview for that batch. Do not pause solely for cycle count before
five review-triggered patch cycles are complete; pause for scope
reclassification before starting a sixth. A clean source review is not test,
browser, generated-artifact, CLI/API, or runtime proof, so retain every
applicable gate.
applicable author check from step 3 of the
[operating card](../../docs/notes/pr-operating-card.md).
If an autoreview runtime change triggers the owning adapter's self-review
refusal, keep it intact and follow the trusted pre-change sequence in the owner
note.
7 changes: 0 additions & 7 deletions .claude/hooks/session-start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,6 @@ fi
REPO_ROOT="${CLAUDE_PROJECT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}"
SETUP_SCRIPT="$REPO_ROOT/scripts/bootstrap/claude-code-web-setup.sh"

# Cached remote sessions can resume after this hook updates but before the
# heavy startup setup runs again. Apply the lightweight hosted pre-push policy
# on every remote source before the resume/compact early exit.
if git -C "$REPO_ROOT" rev-parse --git-dir >/dev/null 2>&1; then
git -C "$REPO_ROOT" config agent.qualityGate.cloudPrePushRequireFresh true
fi

# Inspect SessionStart payload on stdin (best-effort: if stdin is not present
# or the payload is unparsable, default to running the bootstrap rather than
# silently skipping). Only `startup` triggers the heavy install/codegen path.
Expand Down
Loading
Loading