experiment: test decision-relevance category boundary
This commit is contained in:
@@ -122,8 +122,8 @@ Answer before continuing:
|
||||
|
||||
---
|
||||
|
||||
*Created by Experiment 34. Updated by Experiments 38–52D. Branch: `feature/user-workspace-ux-v0.7`.*
|
||||
*Created by Experiment 34. Updated by Experiments 38–52E. Branch: `feature/user-workspace-ux-v0.7`.*
|
||||
|
||||
### Return-to-Work Note (Experiment 52D)
|
||||
|
||||
Experiment 52D isolated enum normalisation from semantic understanding: five fixed meaning statements (no decision target or question in the input) were mapped to the existing four-category contract via one live model call each. Four of five normalised to the expected enum. The compliance boundary case persisted — the model classified a "supports" relationship as `could_change_decision`, exposing genuine ambiguity between these two categories under the current definitions. The existing contract appears clear enough for a separate normalisation step; the remaining problem lies in category definitions, not semantic understanding or normalisation mechanism. Same Qwen model (`qwen-claude:latest`) and host (`http://192.168.1.111:11434`) were retained throughout. No production behaviour changed. What remains uncertain: whether the `supports_decision` ↔ `could_change_decision` boundary can be clarified without restructuring the contract, and whether the discrepancy holds under repeated runs. Branch: `feature/user-workspace-ux-v0.7`. First file to inspect: `tests/graph/decision-relevance-normalisation.test.js` for results, then `docs/design-evolution-log.md` Experiment 52D section.
|
||||
Experiment 52E tested the `supports_decision` / `could_change_decision` boundary using three clear cross-domain contrast pairs (Market Entry, Community Event, Hiring Decision). All six cases classified correctly — every blocker mapped to `could_change_decision`, every supporting-evidence statement mapped to `supports_decision`. This implies that Experiment 52D's compliance disagreement was caused by an ambiguous reference statement rather than a broken category contract: when the input explicitly distinguishes blockers from supporting evidence, the existing definitions work cleanly. Same model (`qwen-claude:latest`) and host (`http://192.168.1.111:11434`) retained throughout. No production behaviour changed. What remains uncertain: whether moderately ambiguous phrasing (between fully clear contrast and the earlier compliance case) still produces consistent results. Branch: `feature/user-workspace-ux-v0.7`. First file to inspect when resuming: `tests/graph/decision-relevance-category-boundary.test.js` for test results, then `docs/design-evolution-log.md` Experiment 52E section.
|
||||
|
||||
@@ -4151,4 +4151,152 @@ The model correctly mapped four of five correct meaning statements into the expe
|
||||
|
||||
### Status
|
||||
|
||||
Pending Rob's review. The four-category contract is confirmed clear enough for a separate normalisation step, but the `supports_decision` ↔ `could_change_decision` boundary needs refinement (separate experiment).
|
||||
**Closed.** Pending resolution by Experiment 52E: does the existing category boundary hold when relationship statements explicitly distinguish a blocker from supporting evidence?
|
||||
|
||||
---
|
||||
|
||||
## Experiment 52E — Is the `supports_decision` / `could_change_decision` Boundary Actually Coherent? (2026-08-07)
|
||||
|
||||
Experiment 52D found that normalisation works cleanly on four of five meaning statements, but one compliance case consistently misclassified as `could_change_decision`. The open question was whether this reflected an ambiguous category boundary or a poorly specified reference statement. Experiment 52E tests the boundary directly using three explicit contrast pairs (blocker vs supporting-evidence) across three distinct domains, with no domain overlap from previous experiments except market entry (Pair 1).
|
||||
|
||||
### Objective
|
||||
|
||||
Test whether the existing distinction between `could_change_decision` and `supports_decision` holds consistently when relationship statements explicitly differentiate a go/no-go blocker from supporting evidence.
|
||||
|
||||
> Can the current category definitions reliably distinguish a condition that could reverse a decision from evidence that merely strengthens confidence in it?
|
||||
|
||||
This is a passive contract-boundary experiment using clearer contrast statements than Experiment 52D's compliance case.
|
||||
|
||||
### Configuration
|
||||
|
||||
| Setting | Value |
|
||||
|---|---|
|
||||
| Ollama host | `http://192.168.1.111:11434` (from `.env.local`) |
|
||||
| Model | `qwen-claude:latest` (from `.env.local`) |
|
||||
| Normalisation instruction | Same as Experiment 52D — domain-neutral, category definitions included, JSON schema enforced |
|
||||
| Input per case | `{"relationship": "<fixed relationship statement>"}` only. No decision target, no question, no domain examples. |
|
||||
| No input | Original decision target, original unknown question, domain examples, or previous model outputs |
|
||||
|
||||
### Domain-Neutral Category Definitions Used (unchanged from production contract)
|
||||
|
||||
| Category | Definition |
|
||||
|---|---|
|
||||
| `could_change_decision` | Answering could reasonably reverse the proposed action — it is a go/no-go condition or materially affects viability. |
|
||||
| `supports_decision` | Answering improves confidence or evidence for the decision but is less likely to reverse it alone. |
|
||||
| `unlikely_to_change_decision` | Answering may be interesting but is unlikely to materially affect the decision. |
|
||||
| `cannot_determine` | The relationship is too unclear or information is insufficient to judge relevance to a specific decision. |
|
||||
|
||||
### Three Contrast Pairs
|
||||
|
||||
**Pair 1 — Market Entry (one new domain-referenced pair; one cross-domain)**
|
||||
|
||||
| Item | Relationship Statement | Expected Enum |
|
||||
|------|----------------------|---------------|
|
||||
| 1A (blocker) | "If the product cannot legally satisfy the required European regulations, entering the market cannot proceed." | `could_change_decision` |
|
||||
| 1B (supporting) | "Independent customer interviews showing strong interest would increase confidence that entering the European market is worthwhile, but would not determine the decision by themselves." | `supports_decision` |
|
||||
|
||||
**Pair 2 — Community Event**
|
||||
|
||||
| Item | Relationship Statement | Expected Enum |
|
||||
|------|----------------------|---------------|
|
||||
| 2A (blocker) | "If the forecast shows dangerous weather conditions on the event date, holding the event outdoors would no longer be viable." | `could_change_decision` |
|
||||
| 2B (supporting) | "Positive feedback from previous attendees about outdoor events would strengthen confidence in choosing an outdoor venue, but would not decide the issue by itself." | `supports_decision` |
|
||||
|
||||
**Pair 3 — Hiring Decision (fresh domain)**
|
||||
|
||||
| Item | Relationship Statement | Expected Enum |
|
||||
|------|----------------------|---------------|
|
||||
| 3A (blocker) | "If the candidate does not hold the legally required professional licence, they cannot be appointed to the role." | `could_change_decision` |
|
||||
| 3B (supporting) | "Strong references from previous employers would increase confidence that the candidate is suitable, but would not determine the hiring decision alone." | `supports_decision` |
|
||||
|
||||
### Results
|
||||
|
||||
| Pair | Item | Relationship Statement (truncated) | Expected Enum | Returned Enum | Match? | Reason (truncated) | Latency |
|
||||
|------|------|-----------------------------------|---------------|---------------|--------|-------------------|---------|
|
||||
| 1A | blocker | "If the product cannot legally satisfy..." | `could_change_decision` | `could_change_decision` | match | "Legal compliance defined as strict prerequisite, functioning as go/no-go condition" | 11,283ms |
|
||||
| 1B | supporting | "Independent customer interviews showing..." | `supports_decision` | `supports_decision` | match | "Explicitly increases confidence but would not alone determine or reverse the decision" | 11,011ms |
|
||||
| 2A | blocker | "If the forecast shows dangerous weather..." | `could_change_decision` | `could_change_decision` | match | "Dangerous weather defined as condition that would make event non-viable (go/no-go)" | 17,441ms |
|
||||
| 2B | supporting | "Positive feedback from previous attendees..." | `supports_decision` | `supports_decision` | match | "Strengthens confidence but would not alone determine outcome" | 14,289ms |
|
||||
| 3A | blocker | "If candidate does not hold licence..." | `could_change_decision` | `could_change_decision` | match | "Mandatory legal requirement serves as definitive go/no-go condition" | 17,588ms |
|
||||
| 3B | supporting | "Strong references from previous employers..." | `supports_decision` | `supports_decision` | match | "Improves confidence in suitability without being sole determinant" | 12,653ms |
|
||||
|
||||
**Enum-match count: 6/6**
|
||||
|
||||
### Evaluation Questions — Answered
|
||||
|
||||
1. **Did all three direct-blocker cases map to `could_change_decision`?** Yes — 3/3 blockers classified as `could_change_decision`.
|
||||
2. **Did all three supporting-evidence cases map to `supports_decision`?** Yes — 3/3 supporting-evidence cases classified as `supports_decision`.
|
||||
3. **Did the same distinction survive across all three domains?** Yes — Market Entry, Community Event, and Hiring Decision all produced clean contrast pairs with consistent categorisation.
|
||||
4. **Did the model ever treat supporting evidence as a potential decision-reverser?** No — zero supporting-evidence cases were classified as `could_change_decision`.
|
||||
5. **Did the model ever treat an explicit blocker as merely supportive?** No — zero blocker cases were classified as `supports_decision`.
|
||||
6. **Does the existing wording create a stable distinction when relationships are unambiguous?** Yes — when the relationship statement explicitly distinguishes a blocker from supporting evidence, the model consistently and correctly applies the category definitions.
|
||||
7. **Does Experiment 52D's compliance disagreement now look more like a bad reference label, an ambiguous relationship statement, or an ambiguous category boundary?** The most accurate answer is: **an ambiguous relationship statement**. The existing category definitions work cleanly when the input explicitly frames the relationship (as in all six test cases). Experiment 52D Case 2's statement ("...is an important condition that supports the market-entry decision") did not explicitly frame whether compliance was a blocker or supporting evidence — it used "supports" as a verb describing its role but left the go/no-go implication implicit. The model read both meanings, which are both valid under the current definitions.
|
||||
|
||||
### Key Findings
|
||||
|
||||
1. **All six cases classified cleanly.** Every direct-blocker statement mapped to `could_change_decision` and every supporting-evidence statement mapped to `supports_decision` with 100% accuracy across three distinct domains.
|
||||
|
||||
2. **Cross-domain consistency confirmed.** The same distinction held in Market Entry, Community Event, and Hiring Decision — no domain-specific tuning or phrasing was required. Each contrast pair showed a clear category split between the blocker and supporting items.
|
||||
|
||||
3. **The model did not confuse blocker with supporting under any condition.** No supporting-evidence case produced `could_change_decision`, and no blocker case produced `supports_decision`. The boundary held cleanly for unambiguous inputs.
|
||||
|
||||
4. **Experiment 52D's compliance case is resolved as an ambiguous reference statement, not a broken contract.** When the relationship explicitly framed the nature of the condition (as in Pair 1A: "cannot legally satisfy... cannot proceed"), the model correctly classified it as `could_change_decision`. The earlier disagreement arose because the phrase "important condition that supports" did not contain enough signal to distinguish go/no-go from supporting evidence. Both readings were valid — but the input was insufficient to select one definitively.
|
||||
|
||||
5. **The existing category definitions are workable.** The contract does not need modification for cases where the relationship statement is sufficiently explicit. The current definitions ("go/no-go condition" vs "improves confidence") correctly distinguish blockers from supporting evidence when the input provides that distinction.
|
||||
|
||||
### Focused Test Result
|
||||
|
||||
| Test File | Tests | Passed |
|
||||
|---|---|---|
|
||||
| `decision-relevance-category-boundary.test.js` (Exp 52E) | 27 | 27 |
|
||||
| `decision-relevance-normalisation.test.js` (Exp 52D regression, fresh run) | 20 | 20 |
|
||||
| `question-decision-relevance.test.js` (core classifier) | 25 | 25 |
|
||||
|
||||
### Regression Result
|
||||
|
||||
Experiment 52D results confirmed on fresh run: still 4/5 matches with case 2 compliance mismatching. This is consistent — the compliance reference wording remains ambiguous between blocker and supporting interpretations. Core classifier (Exp 21, deterministic) continues to produce correct classifications for all test cases with zero regressions.
|
||||
|
||||
### Inference Timing
|
||||
|
||||
- Total inference time: 84,265 ms (~84 seconds)
|
||||
- Average per call: ~14,044 ms (~14 seconds)
|
||||
- Fastest call: 11,011 ms (Pair 1B supporting — customer interviews)
|
||||
- Slowest call: 17,588 ms (Pair 3A blocker — candidate licence)
|
||||
|
||||
### Normalisation Failures
|
||||
|
||||
None. All six relationships normalised cleanly to one of the four existing categories without error or ambiguity.
|
||||
|
||||
### Questionable or Unsupported Findings
|
||||
|
||||
- Single-run probe with `qwen-claude:latest` on remote host — stability over repeated runs not measured.
|
||||
- Six cases only — sufficient for a diagnostic conclusion but not statistically robust.
|
||||
- Remote host latency (~14s/call) limits scope of repeatability testing.
|
||||
- Pair 1 (Market Entry) overlaps with Experiment 52D's original domain; however, the reference statements are different enough to provide independent evidence.
|
||||
|
||||
### Production Unchanged
|
||||
|
||||
- `lib/graph/question-decision-relevance.js`: 0 lines changed
|
||||
- No production files modified
|
||||
- Working tree clean before commit
|
||||
|
||||
### Files Created
|
||||
|
||||
- `tests/graph/decision-relevance-category-boundary.test.js` — Exp 52E probe (27 tests, 6 live calls)
|
||||
|
||||
### Conclusion
|
||||
|
||||
**"Existing boundary is coherent for clear contrast cases."**
|
||||
|
||||
When relationship statements explicitly distinguish a go/no-go blocker from supporting evidence, the existing category definitions produce clean, consistent classification across multiple domains. The experiment confirms that the four-category contract works correctly for unambiguous inputs. Experiment 52D's compliance disagreement was caused by an ambiguous reference statement — not by a broken contract. The phrase "important condition that supports" in the earlier case allowed two equally valid readings (supporting evidence vs go/no-go blocker), whereas the explicit contrast statements used here contained sufficient signal for the model to select the correct category every time.
|
||||
|
||||
### Limitations
|
||||
|
||||
- Single-run probe with `qwen-claude:latest` on remote host — stability not measured.
|
||||
- Six cases only — a diagnostic, not a statistical study.
|
||||
- Remote host latency (~14s/call) limits scope of repeatability testing.
|
||||
- Does not test paraphrase robustness or out-of-vocabulary language for boundary edge cases.
|
||||
|
||||
### Status
|
||||
|
||||
**Closed.** The category boundary is usable for clear contrast cases. Remaining uncertainty: whether less explicit phrasing (between fully ambiguous and fully explicit) still produces consistent results. Pending Rob's review before any contract-level changes are considered.
|
||||
|
||||
Reference in New Issue
Block a user