semctx

Evidence projection

Local change-impact evidence

Inspect the evidence before you install.

Three fixed TypeScript changes show what Semctx reports, what it warns about, and what it cannot prove. The evidence below stays separate from product claims.

Phasenot loaded
Demonot loaded
Pilotnot loaded
Human metricsnot measured

02

Three fixed cases

Use the radios or arrow keys. The fixture remains readable without JavaScript.

Select a demo case

Expected: no finding

Comment wording changes; behavior does not.

This touches no exported interface or declared invariant. Keep the repository’s normal checks: a quiet Semctx result is not a blanket correctness claim.

Observed result: not available.

Next check Confirm the diff only changes the comment.

Before · src/greeting.ts
export function greetingFor(name: string): string {
  // Trim so a trailing newline pasted from a form field does not leak into the greeting.
  return `Hello, ${name.trim()}!`;
}
After · src/greeting.ts
export function greetingFor(name: string): string {
  // Trim first: a trailing newline pasted from a form field should not leak into the greeting.
  return `Hello, ${name.trim()}!`;
}

Expected: advisory warning

An exported interface gains a required field.

The fixed fixture expects contract_changed_without_test. That warning asks for a covering test; it does not say the new behavior is correct.

Observed result: not available.

Next check Exercise computeCartTotal with the new field.

Before · src/cart.ts
export interface CartTotal {
  subtotalCents: number;
  taxCents: number;
}
After · src/cart.ts
export interface CartTotal {
  subtotalCents: number;
  taxCents: number;
  discountCents: number;
}

Expected: no finding · explicit limit

A real pricing bug stays outside this proof.

The internal helper applies one extra percentage point. This version does not treat the exported function as an authored contract and no invariant covers the calculation.

Observed result: not available.

Next check Test that 10% off 10,000 cents returns 9,000 cents.

Before · src/pricing.ts
return Math.round(
  (amountCents * (100 - ratePercent)) / 100
);
After · src/pricing.ts
return Math.round(
  (amountCents * (100 - ratePercent - 1)) / 100
);

03

Captured report

The browser reads the strict public projection, never local runner logs.

Dynamic evidence is not loaded in this view.

Open evidence.json directly; this fallback does not infer whether evidence exists.

Global verdict
—
Cases matched
—
Pilot observations
—
Pilot execution limits
—
Unknown labels
—
Artifact version
—
Release commit
Not loaded
Fixture base commit
—

04

Run the released package

Requires Bun 1.4.0 or newer and Git.

bun install -g semctx
  1. Set upsemctx setup
  2. Inspect a diffsemctx verify diff --base <ref>
  3. Act on the resultPASS no configured finding · WARN review requested · BLOCK configured gate failed

Open the public evidence JSON to confirm whether this is candidate or released evidence.

05

What this evidence does not establish

  • It does not prove runtime or business correctness.
  • It does not measure maintainer adoption or 14-day retention.
  • It does not measure contributor completion time.
  • UNKNOWN pilot cases are excluded from scores and produce no precision or gain claim.