File size: 3,599 Bytes
0536091
9f9fbec
0536091
ff63ba1
80cf7fc
1bb3265
0536091
9f9fbec
 
463bcbe
 
 
 
6d68f94
9f9fbec
 
0536091
 
 
b3d11b8
80cf7fc
 
 
 
 
 
 
0536091
80cf7fc
463bcbe
0536091
b3d11b8
0536091
393bb89
80cf7fc
 
 
 
 
393bb89
0536091
b3d11b8
0536091
463bcbe
0536091
6d68f94
0536091
6d68f94
42650ec
6d68f94
80cf7fc
0536091
 
 
 
 
80cf7fc
393bb89
0536091
ff63ba1
0536091
393bb89
0536091
ff63ba1
0536091
 
 
 
b3d11b8
0536091
6d68f94
0536091
 
 
 
 
b3d11b8
0536091
 
 
 
 
 
 
b3d11b8
0536091
 
 
 
 
 
b3d11b8
0536091
b3d11b8
0536091
ff63ba1
0536091
ff63ba1
0536091
 
 
 
 
ff63ba1
0536091
393bb89
0536091
 
 
b3d11b8
0536091
ff63ba1
0536091
b3d11b8
0536091
 
 
463bcbe
0536091
463bcbe
0536091
463bcbe
0536091
 
 
 
 
 
 
463bcbe
0536091
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# FeatureLens v0.12 validation

v0.12 touches two GPU inference paths: **concept-guided discovery** (only to add split-half stability from the same activations) and the new **cross-target causal profile**. Do not rerun unchanged experiments merely as regressions.

## Local release gate

From the repository root:

```bash
python3 -m pytest -q && \
python3 -m compileall -q app.py featurelens experiments scripts && \
python3 -m ruff check app.py featurelens experiments tests scripts && \
python3 scripts/ui_smoke.py && \
python3 scripts/release_check.py
```

Expected automated test count: **65 passed**.

Expected release footer:

```text
FeatureLens release check: PASS
  discovery prompts: 224
  causal tasks: 28
  layers: [4, 14, 26]
  feature-set sizes: [1, 3, 5]
  random controls: 8
  release: v0.12.0
```

## HF acceptance — only two GPU calls

Use this Workbench context before both calls:

```text
Prompt: The derivative of x squared is
Residual layer: 14
Prompt token index: -1
```

You do not need to rerun single-feature causality, dose response, paraphrase robustness, layer trajectory, feature-set sweeps, cue diagnostics, or focus/zoom.

### GPU call 1 — touched discovery path

Exact UI path:

**Feature evidence → A. Concept-guided candidate discovery**

Set:

```text
Target concept: mathematics
Residual layer: 14
Prompts per concept: 4
Candidate features: 12
Candidate ranking: Causal-ready at current token
```

Click:

**Discover concept-associated candidates**

Pass conditions:

- The normal candidate table still appears.
- The summary includes a line beginning **Split-half shortlist stability from the same activation batch**.
- The reported Jaccard is in `[0, 1]`.
- The diagnostic is described as small-sample sensitivity, not semantic reliability.

Record only the split-half shared count/Jaccard unless the candidate ranking itself changes unexpectedly.

### GPU call 2 — new cross-target causal profile

Exact UI path:

**Feature evidence → C. Cross-target causal profile**

Set:

```text
Features for cross-target profile:
25992
16369
21670

Exact target continuations (one per line):
2x
x
0
x^2
```

Click:

**Run cross-target causal profile**

Pass conditions:

- The summary says 3 features were profiled across 4 exact continuations.
- **Cross-target causal profile** contains `3 × 4 = 12` rows.
- **Target-profile summary** contains one row per feature.
- The chart contains separate feature series across the four targets.
- No random-control/significance claim is made in this panel.

Please return:

1. the **Target-profile summary** table;
2. the 12-row **Cross-target causal profile** table (or at minimum the four rows for each feature);
3. the chart screenshot if convenient.

## Zero-GPU behavior covered by automated tests

Do not spend HF quota solely to test these:

- **Controlled evidence patterns** classifies the existing controlled specificity table without model inference.
- If **Association vs controlled causality** has no discovery table because the Space was rebuilt, it now displays an explicit state-explanation instead of staying silently blank.
- The cross-target selector prefers the target-specificity leader and JS-specificity leader when controlled results are present in the same session.

## Do not rerun for v0.12

Unless something visibly breaks, skip:

- identity paraphrase;
- layer trajectory;
- 1/3/5 feature-set sweep;
- scale dose-response;
- cue × context;
- controlled candidate specificity;
- zoom/focus behavior.

Those implementations are unchanged in v0.12 and remain covered by the automated suite.