Skip to content

feat(core): show Cloud app link for remote cache instead of docs - #36460

Merged
FrozenPandaz merged 3 commits into
masterfrom
NXC-4701
Aug 4, 2026
Merged

feat(core): show Cloud app link for remote cache instead of docs#36460
FrozenPandaz merged 3 commits into
masterfrom
NXC-4701

Conversation

@jaysoo

@jaysoo jaysoo commented Jul 24, 2026

Copy link
Copy Markdown
Member

This PR swaps the docs link in the perf report with a Cloud link instead so the flow is smoother.

Related Issue(s)

NXC-4701


View session information ↗

@nx-cloud

nx-cloud Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit de534c0

Command Status Duration Result
nx affected --targets=lint,test,build,e2e,e2e-c... ✅ Succeeded 53m 16s View ↗
nx run-many -t check-imports check-lock-files c... ✅ Succeeded 3s View ↗
nx-cloud record -- pnpm nx-cloud conformance:check ✅ Succeeded 45s View ↗
nx build workspace-plugin ✅ Succeeded <1s View ↗
nx-cloud record -- nx sync:check ✅ Succeeded 16s View ↗
nx-cloud record -- nx format:check ✅ Succeeded 5s View ↗

☁️ Nx Cloud last updated this comment at 2026-07-31 15:37:50 UTC

@netlify

netlify Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploy Preview for nx-dev ready!

Name Link
🔨 Latest commit de534c0
🔍 Latest deploy log https://app.netlify.com/projects/nx-dev/deploys/6a6cb3bcb748710008d50920
😎 Deploy Preview https://deploy-preview-36460--nx-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploy Preview for nx-docs ready!

Name Link
🔨 Latest commit de534c0
🔍 Latest deploy log https://app.netlify.com/projects/nx-docs/deploys/6a6cb3bc944536000821160d
😎 Deploy Preview https://deploy-preview-36460--nx-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

@jaysoo
jaysoo force-pushed the NXC-4701 branch 2 times, most recently from 7833d86 to e295690 Compare July 27, 2026 17:37
nx-cloud[bot]

This comment was marked as outdated.

@jaysoo
jaysoo force-pushed the NXC-4701 branch 4 times, most recently from f2c6360 to 6ffbcb5 Compare July 28, 2026 15:13
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

@jaysoo
jaysoo marked this pull request as ready for review July 28, 2026 20:19
@jaysoo
jaysoo requested a review from a team as a code owner July 28, 2026 20:19
@jaysoo
jaysoo requested a review from lourw July 28, 2026 20:19
@jaysoo
jaysoo force-pushed the NXC-4701 branch 3 times, most recently from 35f4a4c to 42a14a8 Compare July 28, 2026 20:40
@jaysoo jaysoo changed the title feat(core): add nx cloud connect flow to the tui feat(core): show Cloud app link for remote cache instead of docs Jul 28, 2026
@jaysoo
jaysoo force-pushed the NXC-4701 branch 3 times, most recently from 8a78b52 to 5530d39 Compare July 28, 2026 21:28
nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

@nx-cloud nx-cloud Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud has identified a flaky task in your failed CI:

🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.

Nx Cloud View detailed reasoning in Nx Cloud ↗

🔔 Heads up, your workspace has pending recommendations ↗ to auto-apply fixes for similar failures.


🎓 Learn more about Self-Healing CI on nx.dev

…ding

## Current Behavior

The performance report's remote-cache recommendation links to the docs
(nx.dev/ci/features/remote-cache).

## Expected Behavior

For a disconnected workspace, the CTA links to a short Nx Cloud onboarding URL
instead. `forceGithub` routes the user through the VCS provider flow, where Cloud
connects the repo and opens the nx.json PR - the CLI never generates or writes an
nxCloudId, and never lands on the manual paste-a-token page. Fire-and-forget URL
fetch; the docs link stays as the fallback (CI, cloud-disabled, already-connected,
or if the fetch hasn't resolved by the time the report renders).

## Related Issue(s)

NXC-4701
Promise.race stops the caller waiting but never cancels the loser, and the two
axios calls in url-shorten have no timeout (axios defaults to none), so the
socket kept the event loop alive long after the report had already fallen back
to the get-started link. CLI entry points hide this behind their hard
process.exit; releasePublish is a public programmatic export that returns to
its caller, and hung there until the OS gave up on the connection.

Thread an optional AbortSignal through createNxCloudOnboardingURL and abort it
when the timer wins. The parameter is optional, so the other call sites are
unaffected.
Nx Console no longer carries a copy of createNxCloudOnboardingURL. Its
getCloudOnboardingUrl shells out to `nx@latest connect` and scrapes the URL
from stdout, so it picks up changes here through the CLI rather than through
duplicated source.

Verified against a clone of nrwl/nx-console at 0fb5616: no hits for
createNxCloudOnboardingURL, getInstallationSupportsGitHub,
getURLifShortenFailed, isGithubIntegrationEnabled, forceGithub,
nx-cloud/system/features, nx-cloud/onboarding or connect-workspace, and no
url-shorten file.
AgentEnder pushed a commit that referenced this pull request Aug 4, 2026
…on (#36558)

## Current Behavior

Three problems in the `review-pr` skill, found by instrumenting a review
of #36460.

**1. The pipeline re-establishes the same facts many times per run.** On
a **105-line delta**, nine agents spent roughly **755k tokens** across
~246 tool calls, much of it the same work repeated:

| fact | independently re-derived by |
| --- | --- |
| `{ signal: undefined }` is inert in axios | 6 agents (+ the
orchestrator) |
| every call site passes ≤6 positional args | 5 agents |
| the four carried-open items still hold | 4 agents (+ the orchestrator)
|
| `create-nx-workspace`'s dynamic `require` forces a positional param |
3 agents |
| the timeout releases the event loop | 3 agents rebuilt a harness for a
fact Step 4.7 had already measured |

Step 4.7 ("measure shared load-bearing claims ONCE") already exists and
did fire that round, so this is an under-triggered mechanism, not a
missing one. Its four signals all describe claims a diff makes **about
itself**; the facts above live in the code **around** the diff.
Separately, the re-review carry-forward tells every agent to "verify
whether these still hold" — N repeats of reads the orchestrator can do
once.

**2. There was no step for the tracking ticket.** A lot of work in this
repo is tracked in Linear, not GitHub. The skill treated an `NXC-…`
reference only as *satisfying* the linked-issue check in signal 8 — a
fetch target it never fetched. So a PR whose bug report, acceptance
criteria and reproduction all lived in Linear was reviewed as though it
had no grounding at all, and the reproduce-verifier fell back to
inferring intent from the PR body. Across five review attempts of #36460
that produced `NOT_ATTEMPTED` every time, with the ticket sitting there
readable.

**3. Every agent re-orients from scratch.** On a first review all nine
independently work out what the changed module does, who calls it, and
what the base did. That is context, not a claim, so Step 4.7 never
covered it.

## Expected Behavior

**Measure once, more often.** Step 4.7 gains a fifth trigger — a changed
shared signature or call contract — and names the facts that species
needs measured up front: argument inertness, call-site arity, and
whether any consumer reaches the symbol through an untyped dynamic
`require` (which decides whether an options-object refactor is even
available). It also now asks for each dimension's **corollary** off the
rig already standing, rather than the headline conclusion alone: an
agent whose question sits one hop away rebuilds the harness regardless.

**Fetch the tracking ticket (Step 2).** Extract every `NXC-\d+` (and
`linear.app/…` link) from the body and commits, fetch the ticket and its
comments — a repro often arrives in a follow-up rather than the original
report. The charter carries the problem statement; the verifier receives
it as `GROUNDING` **instead of the PR body**, with a
`REPRO_CLASSIFICATION` (`RUNNABLE` / `MANUAL_ONLY` / `NONE`) derived
once host-side. Where ticket and PR body disagree, that difference is
itself reportable. Fails open on no tools, no auth, or an unreadable
ticket.

Two boundaries come with it. Ticket content **never** reaches the posted
draft — nrwl/nx is public and tickets carry embargoed detail — and only
the *problem* is shared up front; a comment concluding what the fix
should be is rationale, and stays with the Polygraph session until Step
5c so the independent dimensions keep arriving uninformed.

**Orient once (charter).** A new `## Orientation` section: changed
symbols, their call sites, base behavior, and the entry point that
reaches them. Not gated on the diff making a claim — every diff has
surrounding code. Call sites and base behavior in; rationale and
conclusions out.

**Carry-forward flips.** The re-review context changes from "agents,
verify these open items" to "the orchestrator re-checked them at HEAD;
cite the status", with the dispatch-prompt wording to match.

**New "Scoping which agents spawn" section**, two levers at deliberately
different bars:

- *Content-based* skips need a predicate mechanically decidable from the
diff — a docs-only diff genuinely gives the security and performance
dimensions nothing to act on. Applies to any review, and generalizes the
rule already present for `type-design-analyzer`. "This probably has no
security issue" explicitly does **not** qualify.
- *Delta-based* judgment skips are confined to **re-reviews**, where
unchanged code already has recorded coverage, and must scope **by
dimension at stake, never by which files changed** — new code routinely
changes what unchanged code means, so a cancellation path can invalidate
pre-existing `catch` blocks that never appear in the diff.

Every skip is recorded in `## Failures`; a skipped agent stays
not-applicable and never forces `verdict: failed`, which remains
reserved for an agent that ran and could not prove it read anything. The
EVIDENCE bar for agents that *do* run is unchanged. Scoping by PR-level
tier stays prohibited.

Two downstream rules that contradicted the ticket fetch are corrected: a
Linear-only PR is no longer described as an expected `NOT_ATTEMPTED`,
and signal 5 now treats a tracking ticket as corroboration instead of
pushing a tracked, triaged change toward `blocked` for the sole reason
that its tracker is not GitHub.

`PIPELINE_VERSION` 4 → 5 so drafts from the old criteria age out of the
SHA dedup. `allowed-tools` grants the two read-only Linear tools so the
fetch does not prompt.

## Expected impact

Honest split, since one of these is not a saving:

| scenario | expected token cut |
| --- | --- |
| First review, ordinary code PR | 10–20% |
| First review, signature change | 20–30% |
| First review, docs-only | 40–50% |
| Re-review, small delta | 35–55% |

**The Linear change is a quality fix, not an efficiency one, and may
cost more tokens** — the verifier will now run reproductions it
previously skipped. That is the point.

Docs-only change to a single `.claude/skills/` file — no runtime code,
no tests affected.

The last two commits are self-review fixes: a `REPRO_CLASSIFICATION`
forward reference to an instruction Step 2 did not yet contain, and
signal 5's GitHub-only corroboration check.

## Related Issue(s)

N/A — follow-up to #36534 (measure-once) and #36557, from measurements
taken during a review of #36460.

<!-- polygraph-session-start -->
---
<p><picture><source media="(prefers-color-scheme: dark)"
srcset="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-dark.svg"><img
src="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-light.svg"
width="16" height="22" align="middle" alt="Polygraph"></picture> <a
href="https://app.trypolygraph.com/orgs/6a061dcb561c062131116eca/sessions/Scope-review-pr-agent-dispatch-and-cut-repeat-verification-222c3382">View
session ↗</a></p>
<!-- polygraph-session-end -->
@FrozenPandaz
FrozenPandaz merged commit 5ff1a02 into master Aug 4, 2026
25 checks passed
@FrozenPandaz
FrozenPandaz deleted the NXC-4701 branch August 4, 2026 20:09
ryanhefner pushed a commit to ryanhefner/nx that referenced this pull request Aug 4, 2026
…on (nrwl#36558)

## Current Behavior

Three problems in the `review-pr` skill, found by instrumenting a review
of nrwl#36460.

**1. The pipeline re-establishes the same facts many times per run.** On
a **105-line delta**, nine agents spent roughly **755k tokens** across
~246 tool calls, much of it the same work repeated:

| fact | independently re-derived by |
| --- | --- |
| `{ signal: undefined }` is inert in axios | 6 agents (+ the
orchestrator) |
| every call site passes ≤6 positional args | 5 agents |
| the four carried-open items still hold | 4 agents (+ the orchestrator)
|
| `create-nx-workspace`'s dynamic `require` forces a positional param |
3 agents |
| the timeout releases the event loop | 3 agents rebuilt a harness for a
fact Step 4.7 had already measured |

Step 4.7 ("measure shared load-bearing claims ONCE") already exists and
did fire that round, so this is an under-triggered mechanism, not a
missing one. Its four signals all describe claims a diff makes **about
itself**; the facts above live in the code **around** the diff.
Separately, the re-review carry-forward tells every agent to "verify
whether these still hold" — N repeats of reads the orchestrator can do
once.

**2. There was no step for the tracking ticket.** A lot of work in this
repo is tracked in Linear, not GitHub. The skill treated an `NXC-…`
reference only as *satisfying* the linked-issue check in signal 8 — a
fetch target it never fetched. So a PR whose bug report, acceptance
criteria and reproduction all lived in Linear was reviewed as though it
had no grounding at all, and the reproduce-verifier fell back to
inferring intent from the PR body. Across five review attempts of nrwl#36460
that produced `NOT_ATTEMPTED` every time, with the ticket sitting there
readable.

**3. Every agent re-orients from scratch.** On a first review all nine
independently work out what the changed module does, who calls it, and
what the base did. That is context, not a claim, so Step 4.7 never
covered it.

## Expected Behavior

**Measure once, more often.** Step 4.7 gains a fifth trigger — a changed
shared signature or call contract — and names the facts that species
needs measured up front: argument inertness, call-site arity, and
whether any consumer reaches the symbol through an untyped dynamic
`require` (which decides whether an options-object refactor is even
available). It also now asks for each dimension's **corollary** off the
rig already standing, rather than the headline conclusion alone: an
agent whose question sits one hop away rebuilds the harness regardless.

**Fetch the tracking ticket (Step 2).** Extract every `NXC-\d+` (and
`linear.app/…` link) from the body and commits, fetch the ticket and its
comments — a repro often arrives in a follow-up rather than the original
report. The charter carries the problem statement; the verifier receives
it as `GROUNDING` **instead of the PR body**, with a
`REPRO_CLASSIFICATION` (`RUNNABLE` / `MANUAL_ONLY` / `NONE`) derived
once host-side. Where ticket and PR body disagree, that difference is
itself reportable. Fails open on no tools, no auth, or an unreadable
ticket.

Two boundaries come with it. Ticket content **never** reaches the posted
draft — nrwl/nx is public and tickets carry embargoed detail — and only
the *problem* is shared up front; a comment concluding what the fix
should be is rationale, and stays with the Polygraph session until Step
5c so the independent dimensions keep arriving uninformed.

**Orient once (charter).** A new `## Orientation` section: changed
symbols, their call sites, base behavior, and the entry point that
reaches them. Not gated on the diff making a claim — every diff has
surrounding code. Call sites and base behavior in; rationale and
conclusions out.

**Carry-forward flips.** The re-review context changes from "agents,
verify these open items" to "the orchestrator re-checked them at HEAD;
cite the status", with the dispatch-prompt wording to match.

**New "Scoping which agents spawn" section**, two levers at deliberately
different bars:

- *Content-based* skips need a predicate mechanically decidable from the
diff — a docs-only diff genuinely gives the security and performance
dimensions nothing to act on. Applies to any review, and generalizes the
rule already present for `type-design-analyzer`. "This probably has no
security issue" explicitly does **not** qualify.
- *Delta-based* judgment skips are confined to **re-reviews**, where
unchanged code already has recorded coverage, and must scope **by
dimension at stake, never by which files changed** — new code routinely
changes what unchanged code means, so a cancellation path can invalidate
pre-existing `catch` blocks that never appear in the diff.

Every skip is recorded in `## Failures`; a skipped agent stays
not-applicable and never forces `verdict: failed`, which remains
reserved for an agent that ran and could not prove it read anything. The
EVIDENCE bar for agents that *do* run is unchanged. Scoping by PR-level
tier stays prohibited.

Two downstream rules that contradicted the ticket fetch are corrected: a
Linear-only PR is no longer described as an expected `NOT_ATTEMPTED`,
and signal 5 now treats a tracking ticket as corroboration instead of
pushing a tracked, triaged change toward `blocked` for the sole reason
that its tracker is not GitHub.

`PIPELINE_VERSION` 4 → 5 so drafts from the old criteria age out of the
SHA dedup. `allowed-tools` grants the two read-only Linear tools so the
fetch does not prompt.

## Expected impact

Honest split, since one of these is not a saving:

| scenario | expected token cut |
| --- | --- |
| First review, ordinary code PR | 10–20% |
| First review, signature change | 20–30% |
| First review, docs-only | 40–50% |
| Re-review, small delta | 35–55% |

**The Linear change is a quality fix, not an efficiency one, and may
cost more tokens** — the verifier will now run reproductions it
previously skipped. That is the point.

Docs-only change to a single `.claude/skills/` file — no runtime code,
no tests affected.

The last two commits are self-review fixes: a `REPRO_CLASSIFICATION`
forward reference to an instruction Step 2 did not yet contain, and
signal 5's GitHub-only corroboration check.

## Related Issue(s)

N/A — follow-up to nrwl#36534 (measure-once) and nrwl#36557, from measurements
taken during a review of nrwl#36460.

<!-- polygraph-session-start -->
---
<p><picture><source media="(prefers-color-scheme: dark)"
srcset="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-dark.svg"><img
src="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-light.svg"
width="16" height="22" align="middle" alt="Polygraph"></picture> <a
href="https://app.trypolygraph.com/orgs/6a061dcb561c062131116eca/sessions/Scope-review-pr-agent-dispatch-and-cut-repeat-verification-222c3382">View
session ↗</a></p>
<!-- polygraph-session-end -->
ryanhefner pushed a commit to ryanhefner/nx that referenced this pull request Aug 4, 2026
…l#36460)

This PR swaps the docs link in the perf report with a Cloud link instead
so the flow is smoother.

## Related Issue(s)

NXC-4701

<!-- polygraph-session-start -->
---
[View session information
↗](https://snapshot.app.trypolygraph.com/orgs/69cdc268b6aa527e4129c2b4/sessions/ready-jackal-5efe8ef1)
<!-- polygraph-session-end -->

---------

Co-authored-by: Jason Jean <jason@nrwl.io>
polygraph-snapshot-app Bot pushed a commit that referenced this pull request Aug 11, 2026
…on (#36558)

## Current Behavior

Three problems in the `review-pr` skill, found by instrumenting a review
of #36460.

**1. The pipeline re-establishes the same facts many times per run.** On
a **105-line delta**, nine agents spent roughly **755k tokens** across
~246 tool calls, much of it the same work repeated:

| fact | independently re-derived by |
| --- | --- |
| `{ signal: undefined }` is inert in axios | 6 agents (+ the
orchestrator) |
| every call site passes ≤6 positional args | 5 agents |
| the four carried-open items still hold | 4 agents (+ the orchestrator)
|
| `create-nx-workspace`'s dynamic `require` forces a positional param |
3 agents |
| the timeout releases the event loop | 3 agents rebuilt a harness for a
fact Step 4.7 had already measured |

Step 4.7 ("measure shared load-bearing claims ONCE") already exists and
did fire that round, so this is an under-triggered mechanism, not a
missing one. Its four signals all describe claims a diff makes **about
itself**; the facts above live in the code **around** the diff.
Separately, the re-review carry-forward tells every agent to "verify
whether these still hold" — N repeats of reads the orchestrator can do
once.

**2. There was no step for the tracking ticket.** A lot of work in this
repo is tracked in Linear, not GitHub. The skill treated an `NXC-…`
reference only as *satisfying* the linked-issue check in signal 8 — a
fetch target it never fetched. So a PR whose bug report, acceptance
criteria and reproduction all lived in Linear was reviewed as though it
had no grounding at all, and the reproduce-verifier fell back to
inferring intent from the PR body. Across five review attempts of #36460
that produced `NOT_ATTEMPTED` every time, with the ticket sitting there
readable.

**3. Every agent re-orients from scratch.** On a first review all nine
independently work out what the changed module does, who calls it, and
what the base did. That is context, not a claim, so Step 4.7 never
covered it.

## Expected Behavior

**Measure once, more often.** Step 4.7 gains a fifth trigger — a changed
shared signature or call contract — and names the facts that species
needs measured up front: argument inertness, call-site arity, and
whether any consumer reaches the symbol through an untyped dynamic
`require` (which decides whether an options-object refactor is even
available). It also now asks for each dimension's **corollary** off the
rig already standing, rather than the headline conclusion alone: an
agent whose question sits one hop away rebuilds the harness regardless.

**Fetch the tracking ticket (Step 2).** Extract every `NXC-\d+` (and
`linear.app/…` link) from the body and commits, fetch the ticket and its
comments — a repro often arrives in a follow-up rather than the original
report. The charter carries the problem statement; the verifier receives
it as `GROUNDING` **instead of the PR body**, with a
`REPRO_CLASSIFICATION` (`RUNNABLE` / `MANUAL_ONLY` / `NONE`) derived
once host-side. Where ticket and PR body disagree, that difference is
itself reportable. Fails open on no tools, no auth, or an unreadable
ticket.

Two boundaries come with it. Ticket content **never** reaches the posted
draft — nrwl/nx is public and tickets carry embargoed detail — and only
the *problem* is shared up front; a comment concluding what the fix
should be is rationale, and stays with the Polygraph session until Step
5c so the independent dimensions keep arriving uninformed.

**Orient once (charter).** A new `## Orientation` section: changed
symbols, their call sites, base behavior, and the entry point that
reaches them. Not gated on the diff making a claim — every diff has
surrounding code. Call sites and base behavior in; rationale and
conclusions out.

**Carry-forward flips.** The re-review context changes from "agents,
verify these open items" to "the orchestrator re-checked them at HEAD;
cite the status", with the dispatch-prompt wording to match.

**New "Scoping which agents spawn" section**, two levers at deliberately
different bars:

- *Content-based* skips need a predicate mechanically decidable from the
diff — a docs-only diff genuinely gives the security and performance
dimensions nothing to act on. Applies to any review, and generalizes the
rule already present for `type-design-analyzer`. "This probably has no
security issue" explicitly does **not** qualify.
- *Delta-based* judgment skips are confined to **re-reviews**, where
unchanged code already has recorded coverage, and must scope **by
dimension at stake, never by which files changed** — new code routinely
changes what unchanged code means, so a cancellation path can invalidate
pre-existing `catch` blocks that never appear in the diff.

Every skip is recorded in `## Failures`; a skipped agent stays
not-applicable and never forces `verdict: failed`, which remains
reserved for an agent that ran and could not prove it read anything. The
EVIDENCE bar for agents that *do* run is unchanged. Scoping by PR-level
tier stays prohibited.

Two downstream rules that contradicted the ticket fetch are corrected: a
Linear-only PR is no longer described as an expected `NOT_ATTEMPTED`,
and signal 5 now treats a tracking ticket as corroboration instead of
pushing a tracked, triaged change toward `blocked` for the sole reason
that its tracker is not GitHub.

`PIPELINE_VERSION` 4 → 5 so drafts from the old criteria age out of the
SHA dedup. `allowed-tools` grants the two read-only Linear tools so the
fetch does not prompt.

## Expected impact

Honest split, since one of these is not a saving:

| scenario | expected token cut |
| --- | --- |
| First review, ordinary code PR | 10–20% |
| First review, signature change | 20–30% |
| First review, docs-only | 40–50% |
| Re-review, small delta | 35–55% |

**The Linear change is a quality fix, not an efficiency one, and may
cost more tokens** — the verifier will now run reproductions it
previously skipped. That is the point.

Docs-only change to a single `.claude/skills/` file — no runtime code,
no tests affected.

The last two commits are self-review fixes: a `REPRO_CLASSIFICATION`
forward reference to an instruction Step 2 did not yet contain, and
signal 5's GitHub-only corroboration check.

## Related Issue(s)

N/A — follow-up to #36534 (measure-once) and #36557, from measurements
taken during a review of #36460.

<!-- polygraph-session-start -->
---
<p><picture><source media="(prefers-color-scheme: dark)"
srcset="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-dark.svg"><img
src="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-light.svg"
width="16" height="22" align="middle" alt="Polygraph"></picture> <a
href="https://app.trypolygraph.com/orgs/6a061dcb561c062131116eca/sessions/Scope-review-pr-agent-dispatch-and-cut-repeat-verification-222c3382">View
session ↗</a></p>
<!-- polygraph-session-end -->
polygraph-snapshot-app Bot pushed a commit that referenced this pull request Aug 11, 2026
)

This PR swaps the docs link in the perf report with a Cloud link instead
so the flow is smoother.

## Related Issue(s)

NXC-4701

<!-- polygraph-session-start -->
---
[View session information
↗](https://snapshot.app.trypolygraph.com/orgs/69cdc268b6aa527e4129c2b4/sessions/ready-jackal-5efe8ef1)
<!-- polygraph-session-end -->

---------

Co-authored-by: Jason Jean <jason@nrwl.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants