Skip to content

Commit fa3cd64

Browse files
docs: document forge verify --deep four-state status and completion-gate test evidence
1 parent edb86e9 commit fa3cd64

3 files changed

Lines changed: 56 additions & 1 deletion

File tree

mintlify/cli/quality.mdx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@ forge verify
1515
forge verify --deep # multi-lens consensus (v0.19+)
1616
```
1717

18+
`forge verify --deep` reports a four-state `status` instead of a plain pass/fail:
19+
20+
| Status | Meaning |
21+
| ---------------- | ------------------------------------------------------------------------------------ |
22+
| `PASS` | Every lens agreed **and** the core `forge verify` tests status is also `PASS`. |
23+
| `FAIL` | At least one lens reported a real failure. |
24+
| `INCOMPLETE` | A lens could not finish (timeout, crash, missing dependency) — treat as not proven. |
25+
| `NOT_CONFIGURED` | No lenses are wired up for this repo — nothing was actually checked. |
26+
27+
Only `PASS` counts as verified. `--deep` deliberately refuses to promote a consensus to
28+
`PASS` when the underlying `forge verify` tests status is anything other than `PASS`, so
29+
a green deep run always implies a green base run.
30+
1831
## `forge scan`
1932

2033
Skill-gate — vet a skill or MCP server for injection / RCE / exfil before install.

mintlify/concepts/cross-session-memory.mdx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,16 @@ on the agent.
4747
allows (fail-open). `FORGE_STOPGATE=0` disables it.
4848
</Note>
4949

50+
For sessions that changed code, the gate also requires **test evidence** — either a test
51+
file in the session's diff or a fresh passing `forge verify` against the current
52+
changes. A `forge handoff` snapshot alone no longer clears the code-change branch of the
53+
gate.
54+
5055
The repair checklist points at the tools that finish the work:
5156

5257
```bash
53-
forge docs sync # sweep the diff for stale doc mentions
58+
forge verify # record the test evidence for code changes
59+
forge docs sync # sweep the diff for stale doc mentions
5460
forge handoff "<done>" --next "<next>" # write the bounded session snapshot
5561
forge decide "<decision> — <reason>" # record a choice so no session re-decides it
5662
```

mintlify/concepts/verification-gates.mdx

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,20 @@ forge verify --deep # multi-lens consensus — several independent checks
2929
independent verification lenses, not just one.
3030
</Note>
3131

32+
`forge verify --deep` reports a four-state `status`, not a binary pass/fail:
33+
34+
- `PASS` — every lens agreed **and** the core `forge verify` tests status is also
35+
`PASS`. Only this state counts as verified.
36+
- `FAIL` — at least one lens reported a real failure.
37+
- `INCOMPLETE` — a lens could not finish (timeout, crash, missing dependency). Nothing
38+
was disproven, but nothing was proven either.
39+
- `NOT_CONFIGURED` — no lenses are wired up for this repo, so `--deep` had nothing to
40+
check.
41+
42+
The `PASS`-implies-base-`PASS` rule is deliberate: a green deep consensus can never
43+
outrun a red base run, so `INCOMPLETE` or `NOT_CONFIGURED` on the base test lens
44+
downgrades the deep result to match.
45+
3246
## The hallucinated-symbol flag — `forge atlas has`
3347

3448
`forge atlas has <symbol>` is the hallucination check: if the model calls a symbol that
@@ -84,6 +98,28 @@ forge harden # gitleaks pre-commit + sandbox settings
8498
commit time so partial or unverified work is caught before it lands.
8599
</Note>
86100

101+
## Completion gate — test evidence required
102+
103+
The Stop-path completion gate (see
104+
[Cross-session memory](/concepts/cross-session-memory)) no longer accepts an agent
105+
handoff as proof that code changes are done. For any session that touched source code,
106+
the gate requires **real test evidence**:
107+
108+
- a test file changed in the session's diff, **or**
109+
- a fresh passing `forge verify` recorded against the current changes.
110+
111+
A `forge handoff` snapshot on its own does not satisfy the gate — it records intent, not
112+
verification. If neither piece of evidence is present, the gate blocks once with a
113+
repair checklist:
114+
115+
```bash
116+
forge verify # produce the test evidence
117+
forge handoff "<done>" --next "<next>" # then snapshot the session
118+
```
119+
120+
Doc-only, config-only, and other non-code sessions are unaffected — the test-evidence
121+
requirement fires only when the session's diff actually changes code.
122+
87123
## UI checks — `forge uicheck`
88124

89125
Deterministic UI checks, no LLM and no screenshots for the first three lenses:

0 commit comments

Comments
 (0)