Skip to content

Commit 0052a5b

Browse files
authored
fix(benchmarks): harden Jacobian evaluation evidence (#946)
1 parent 71fa917 commit 0052a5b

21 files changed

Lines changed: 611 additions & 125 deletions

File tree

.agents/skills/jacobian-math/SKILL.md

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: jacobian-math
3-
description: Use Jacobian for exact mathematics, matrix determinants, symbolic computation, structural analysis, counterexamples, bounded search, and independent verification. Trigger on relevant math tasks even when the user does not name Jacobian.
3+
description: Use Jacobian for exact math, matrix determinants, symbolic work, counterexamples, search, and independent verification, even when unnamed.
44
---
55

66
# Jacobian Math
@@ -10,19 +10,20 @@ description: Use Jacobian for exact mathematics, matrix determinants, symbolic c
1010
In Code Mode, call
1111
`tools.mcp__jacobian__math_find(...)` and
1212
`tools.mcp__jacobian__math_run(...)` directly. Do not enumerate, filter, or
13-
print `ALL_TOOLS`. Return the typed projection when available:
13+
print `ALL_TOOLS`. Return the typed projection:
1414

1515
```js
1616
const r = await tools.mcp__jacobian__math_find({query: "...", limit: 3});
1717
text(r.structuredContent ?? r);
1818
```
1919
20-
Use Jacobian for each requested exact mathematical outcome, even when small.
20+
Use Jacobian for each requested exact outcome, even when small.
2121
Keep decomposition and routing decisions agent-owned; composing already-known
2222
supporting operations remains allowed when clearer.
2323
Do not call Jacobian for definitions, formatting, or non-execution tasks.
2424
25-
Call `math.run` directly for these stable contracts, preserving JSON types:
25+
No discovery for stable producers: `{"capability_id":"<id>","mode":"EXPLORE","payload":<JSON>}`
26+
(not `COMPUTE`/`input`). Payloads:
2627
2728
- `integer.compute.gcd`, `integer.compute.lcm`, or `integer.compute.extended_gcd`:
2829
`{"left":"84","right":"30"}`.
@@ -35,38 +36,38 @@ Call `math.run` directly for these stable contracts, preserving JSON types:
3536
`polynomial.expression.normalize` contract directly.
3637
- `matrix.determinant.verify` in `VERIFY` mode for an independent check:
3738
`{"determinant_uri":"<determinant_uri from compute output>"}`.
39+
- `combinatorics.cyclic_difference_set.extension.decide`:
40+
`{"base_elements":["1","2","4","8","13"],"target_order":7}`.
41+
`combinatorics.cyclic_difference_set.extension.verify` uses
42+
`{"input":<same payload>,"candidate":<producer output.result>}` in `VERIFY` mode.
3843
39-
For other outcomes, use `math.find` with a specific plain-language outcome;
40-
no capability ID is required.
41-
Use low `limit` values. For a selected operation's schema, call
44+
For other outcomes, query `math.find` by plain-language outcome; no ID is
45+
required. Use low `limit` only for query search, never with `capability_id`. For
46+
a selected operation's schema, call
4247
`math.find({"capability_id":"<exact-id>","view":"CONTRACT"})`; never send
4348
`mode: "CONTRACT"` to `math.run` or put `CONTRACT` in a query. A card's
4449
`invocation_example`, or required top-level fields, may be enough.
4550
46-
Do not add a discovery domain filter unless its exact installed spelling is
47-
known. Follow exposed recovery paths such as removing unknown filters or
48-
reformulating the query before
49-
treating absence as final. After invalid input, correct the reported constraint
50-
and retry within the task resource bounds. If
51-
one provider is unavailable, continue with other installed routes that can
52-
produce the outcome. Treat timeouts, cancellations, errors, incomplete searches,
53-
and missing witnesses as non-conclusions. Accept only a completed
54-
result whose scope covers the input, and carry forward the smallest decisive
55-
value, witness, status, assurance, completeness, and open obligations; preserve
56-
artifact refs, including verification record URIs.
51+
Add no domain filter unless its installed spelling is known. Follow exposed
52+
recovery paths by removing unknown filters or reformulating the query. After
53+
invalid input, correct the constraint and retry within the task resource bounds.
54+
If one provider is unavailable, continue with other installed routes. Treat
55+
timeouts, cancellations, errors, incomplete searches, and missing witnesses as
56+
non-conclusions. Accept only completed results covering the input; carry forward
57+
the smallest decisive value, witness, status, assurance, completeness, and open
58+
obligations plus artifact and verification-record URIs.
5759
5860
Keep representation, decomposition, composition, iteration, verification
5961
timing, and stopping decisions agent-owned.
6062
61-
Model-authored calculations or programs are not independent evidence. Use
62-
installed `VERIFY` when requested; a writable path or schema alone is not
63-
authorization. For task-level `VERIFIED`, require result assurance `VERIFIED`,
64-
exact record bytes, and that required task authorization and bindings are preserved;
65-
the visible contract must authorize the checker identity, digest, or Jacobian
66-
record type. Otherwise claim the highest lower permitted assurance (`CHECKED` or
67-
`COMPUTED`), even if Jacobian returned `VERIFIED`; never reconstruct or
68-
paraphrase such a record from tool fields or transfer verification between
69-
claims or artifacts.
63+
Model-authored work is not independent evidence. Use installed `VERIFY` when
64+
requested; a writable path or schema alone is not authorization. Task-level
65+
`VERIFIED` requires exact record bytes, result assurance `VERIFIED`, required
66+
task authorization and bindings are preserved, and a contract-authorized
67+
checker identity, digest, or Jacobian record type. Otherwise claim the highest
68+
lower permitted assurance (`CHECKED` or `COMPUTED`), even if Jacobian returned
69+
`VERIFIED`; never
70+
reconstruct or paraphrase such a record or transfer it between claims.
7071
For locally constructed inline input, check payload fields against the intended
7172
object. When output echoes scope or a bound digest/URI, compare it with the
7273
submitted input; do not use mismatched output. This catches routing and

.github/workflows/benchmarks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ jobs:
310310
name: benchmark-oracle-${{ matrix.dataset }}-${{ matrix.shard }}
311311
path: |
312312
benchmarks/results/${{ matrix.dataset }}-oracle
313-
benchmarks/results/${{ matrix.dataset }}-oracle/jacobian-augmented-task-digests.json
313+
benchmarks/results/${{ matrix.dataset }}-oracle/jacobian-augmented-task-digests.*.json
314314
benchmarks/results/${{ matrix.dataset }}-oracle/**/oracle-evidence.json
315315
if-no-files-found: ignore
316316
retention-days: ${{ github.event_name == 'pull_request' && 14 || 90 }}

benchmarks/config/codex-visibility-v2.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,15 @@
5656
],
5757
"require_verified": false
5858
},
59+
{
60+
"case_id": "latent-fixed-order-difference-set-extension",
61+
"cue_level": "LATENT",
62+
"prompt": "For the integer set {1,2,4,8,13}, decide exactly whether its reduced residues are contained in a cyclic perfect difference set of order 7, and report the exact candidate-space size covered by the decision.",
63+
"expected_capability_ids": [
64+
"combinatorics.cyclic_difference_set.extension.decide"
65+
],
66+
"require_verified": false
67+
},
5968
{
6069
"case_id": "latent-independent-verification",
6170
"cue_level": "LATENT",

benchmarks/datasets/research-diagnostics-v1/jcb-postdoc-013/environment/submission_schema.json

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,19 @@
4747
"minLength": 1
4848
},
4949
"key_facts": {
50-
"additionalProperties": {
51-
"type": "string",
52-
"minLength": 1
53-
},
54-
"minProperties": 1,
55-
"propertyNames": {
56-
"pattern": "^[a-z][a-z0-9_]*$"
50+
"additionalProperties": false,
51+
"properties": {
52+
"identity_holds": {
53+
"const": "true"
54+
},
55+
"index_order": {
56+
"const": "a<a+1<2a<2a+2<c<c+1"
57+
}
5758
},
59+
"required": [
60+
"identity_holds",
61+
"index_order"
62+
],
5863
"type": "object"
5964
}
6065
}

benchmarks/datasets/research-diagnostics-v1/jcb-postdoc-013/instruction.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ report the capability boundary honestly. The portfolio does not currently own a
88

99
Write `submission.json` to the exact agent-visible `submission_schema.json`, record your
1010
reasoning in `evidence/answer.txt`, and include that file's SHA-256 digest in the evidence
11-
list. In `result.key_facts`, use a nonempty object with lower-snake-case fact
12-
names and nonempty string values; do not rely on prose or numeric/boolean
13-
coercion. You may claim `UNVERIFIED` or `COMPUTED`; only `COMPUTED`
11+
list. In `result.key_facts`, reproduce the exact public facts declared by
12+
`submission_schema.json`; do not rename the fields or coerce their string
13+
values to booleans. You may claim `UNVERIFIED` or `COMPUTED`; only `COMPUTED`
1414
receives full aggregate credit. Do not claim `VERIFIED`. Treat timeout,
1515
error, or incomplete search as a non-conclusion, not as evidence for or
1616
against the claim.

benchmarks/datasets/research-diagnostics-v1/jcb-postdoc-013/task.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ schema_version = "1.4"
22
artifacts = ["/app/submission.json", "/app/evidence"]
33
[task]
44
name = "jacobian/jcb-postdoc-013"
5-
version = "1.0.0"
5+
version = "1.1.0"
66
description = "Research diagnostic: Erdős Problem 397: a parametric family of central-binomial collisions"
77
keywords = ["research", "diagnostic", "mathematical-sciences", "enumerative combinatorics", "number theory", "symbolic identities"]
88
[metadata]

benchmarks/datasets/research-diagnostics-v1/jcb-postdoc-013/tests/public_contract.json

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,19 @@
6565
]
6666
},
6767
"key_facts": {
68-
"additionalProperties": {
69-
"minLength": 1,
70-
"type": "string"
71-
},
72-
"minProperties": 1,
73-
"propertyNames": {
74-
"pattern": "^[a-z][a-z0-9_]*$"
68+
"additionalProperties": false,
69+
"properties": {
70+
"identity_holds": {
71+
"const": "true"
72+
},
73+
"index_order": {
74+
"const": "a<a+1<2a<2a+2<c<c+1"
75+
}
7576
},
77+
"required": [
78+
"identity_holds",
79+
"index_order"
80+
],
7681
"type": "object"
7782
}
7883
},

benchmarks/datasets/research-diagnostics-v1/jcb-postdoc-015/instruction.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ checkable finite core:
1515
- the exact number of candidate supersets examined for each fixed order.
1616

1717
Write that evidence to `evidence/finite-core.json` and bind its SHA-256 digest
18-
in `submission.json`. Follow the exact schemas in `input.json` and
19-
`submission_schema.json`. The fixed-order checks must cover every candidate,
20-
not a sample. The public universal result may be reported, but this task does
18+
in `submission.json`. Follow `submission_schema.json` for the submission and
19+
the separate agent-visible `/app/evidence_schema.json` for the complete
20+
`evidence/finite-core.json` body. The fixed-order checks must cover every
21+
candidate, not a sample. The public universal result may be reported, but this task does
2122
not supply its projective-geometric or formal obstruction certificate: set
2223
`universal_obstruction_replayed` to `false` and do not claim that the three
2324
finite searches prove the universal statement.

benchmarks/datasets/research-diagnostics-v1/jcb-postdoc-015/task.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ schema_version = "1.4"
22
artifacts = ["/app/submission.json", "/app/evidence"]
33
[task]
44
name = "jacobian/jcb-postdoc-015"
5-
version = "2.0.0"
5+
version = "2.1.0"
66
description = "Research diagnostic: Erdős Problem 707 finite Sidon and fixed-order extension evidence"
77
keywords = ["research", "diagnostic", "mathematical-sciences", "additive combinatorics", "finite geometry", "modular arithmetic"]
88
[metadata]

0 commit comments

Comments
 (0)