Skip to content

Commit b52b0ff

Browse files
committed
release 3.2.0
1 parent b141b64 commit b52b0ff

21 files changed

+722
-72
lines changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@ All notable changes to Quint Code will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.2.0] - 2025-12-15
9+
10+
### Added: Process Hardening & Flexibility
11+
12+
#### Strict Phase Gating (FPF Integrity)
13+
- **Hard Block in `/q1-hypothesize`:** Explicitly forbids generating new hypotheses if the cycle has passed Deduction. This prevents the "Helpfulness Bias" vulnerability where AI assistants might break process integrity to be "nice".
14+
- **Conditional Logic in `/q2-check`:** The cycle phase now only advances to `DEDUCTION_COMPLETE` when *all* active L0 hypotheses are resolved. If any remain unchecked, the door stays open for extensions.
15+
16+
#### New Command: `/q1-extend`
17+
- **Legitimate Extension Path:** A dedicated command to add a missed hypothesis during the `ABDUCTION_COMPLETE` phase.
18+
- **Safety Rails:** Strictly blocked once `DEDUCTION_COMPLETE` is reached, ensuring evidence integrity (WLNK validity) during testing.
19+
20+
### Changed
21+
- **Updated `/q-status`:** State machine visualization now includes the `(q1-extend)` loop.
22+
- **Refined `/q3-test` & `/q3-research`:** Reinforced checks to ensure testing only happens after deduction is fully complete.
23+
824
## [3.1.0] - 2025-12-14
925

1026
### Added: Deep Reasoning Capabilities

dist/claude/q-status.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ Run `/q-decay` for detailed report.
111111
Current: ──► [PHASE]
112112

113113
INITIALIZED ──► ABDUCTION_COMPLETE ──► DEDUCTION_COMPLETE
114+
│ │
115+
▼ │
116+
(q1-extend) │
114117
115118
┌─────────────────────────┤
116119
▼ ▼
@@ -137,6 +140,7 @@ INITIALIZED ──► ABDUCTION_COMPLETE ──► DEDUCTION_COMPLETE
137140
138141
**If ABDUCTION_COMPLETE:**
139142
→ `/q2-check` — Verify logical consistency
143+
→ `/q1-extend` — Add missed hypothesis (before deduction)
140144
141145
**If DEDUCTION_COMPLETE:**
142146
→ `/q3-test` — Internal tests, benchmarks
@@ -159,6 +163,7 @@ INITIALIZED ──► ABDUCTION_COMPLETE ──► DEDUCTION_COMPLETE
159163
|---------|-------------|------------|
160164
| `/q0-init` | Initialize FPF | (any) |
161165
| `/q1-hypothesize` | Generate hypotheses | INITIALIZED, DECIDED |
166+
| `/q1-extend` | Add hypothesis | ABDUCTION_COMPLETE |
162167
| `/q2-check` | Logical verification | ABDUCTION_COMPLETE |
163168
| `/q3-test` | Internal tests | DEDUCTION_COMPLETE+ |
164169
| `/q3-research` | External evidence | DEDUCTION_COMPLETE+ |
@@ -188,4 +193,4 @@ FPF: [Phase] | L0:[N] L1:[N] L2:[N] | Evidence:[N] | Next: [command]
188193
**Not initialized.**
189194

190195
Run `/q0-init` to set up FPF structure.
191-
```
196+
```

dist/claude/q1-extend.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
description: "Add a hypothesis to the active cycle (before deduction)"
3+
arguments:
4+
- name: hypothesis
5+
description: "New hypothesis or idea to add"
6+
required: true
7+
---
8+
9+
# FPF Phase 1 (Extension): Add Hypothesis
10+
11+
## Phase Gate (MANDATORY)
12+
13+
**STOP. Verify phase before proceeding:**
14+
15+
1. Read `.fpf/session.md`, extract `Phase:` value
16+
2. Check validity:
17+
18+
| Current Phase | Can Run? | Action |
19+
|---------------|----------|--------|
20+
| ABDUCTION_COMPLETE | ✅ YES | Proceed (Extension) |
21+
| INITIALIZED | ❌ NO | Use `/q1-hypothesize` instead |
22+
| DEDUCTION_COMPLETE | ❌ NO | Too late. Start new cycle. |
23+
| Any later phase | ❌ NO | Too late. Start new cycle. |
24+
25+
**If blocked:**
26+
```
27+
⛔ BLOCKED: Cannot extend cycle in [PHASE].
28+
29+
WHY THIS MATTERS:
30+
- Adding hypotheses after deduction (q2) implies checking logic on the fly.
31+
- Adding hypotheses during induction (q3) breaks the blind test.
32+
- We must preserve the integrity of the comparison set (B.1.3).
33+
34+
Action:
35+
1. Complete current cycle (/q5-decide or /q-reset)
36+
2. Start fresh with /q1-hypothesize
37+
```
38+
39+
## HARD RULE (No Exceptions)
40+
41+
If phase is **DEDUCTION_COMPLETE** or later:
42+
- **DO NOT** add the hypothesis
43+
- **DO NOT** offer to "just add it to the list"
44+
- **ONLY** respond with the block message
45+
46+
---
47+
48+
## Your Role
49+
50+
You are the **Transformer** enacting the **ExplorerRole** (Extension).
51+
You are adding a missed option to the *current* set of candidates.
52+
53+
## Input
54+
55+
New Idea: `$ARGUMENTS.hypothesis`
56+
57+
## Process
58+
59+
### 1. Generate New Hypothesis (L0)
60+
61+
Create **ONE** new hypothesis file in `.fpf/knowledge/L0/`.
62+
63+
**Filename:** `[slug]-hypothesis.md`
64+
65+
**Content:** Standard L0 template (same as q1-hypothesize).
66+
**Important:** Add `tags: [late-addition]` to frontmatter.
67+
68+
### 2. Update Session
69+
70+
Update `.fpf/session.md`:
71+
- Add new hypothesis to `## Active Hypotheses` table.
72+
- Do **NOT** change the Phase (stay in `ABDUCTION_COMPLETE`).
73+
74+
## Output Format
75+
76+
```markdown
77+
## Hypothesis Added (Extension)
78+
79+
**Added:** [Name] (L0)
80+
- **Rationale:** [Why was this added late?]
81+
- **Plausibility:** [Score]
82+
83+
**File created:** `.fpf/knowledge/L0/[slug].md`
84+
85+
**Next Step:**
86+
Resume `/q2-check` for ALL active hypotheses (including this one).
87+
```

dist/claude/q1-hypothesize.md

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,36 @@ arguments:
2424
**If blocked:**
2525
```
2626
⛔ BLOCKED: Cannot start new hypothesis cycle.
27-
Current phase: [PHASE]
28-
Complete current cycle with /q5-decide or /q-reset first.
27+
Current phase: [PHASE]
28+
29+
WHY THIS MATTERS:
30+
- Adding hypotheses mid-cycle breaks evidence traceability (B.1.3).
31+
- H(new) would have no evidence chain → WLNK undefined.
32+
- DRR would mix verified and unverified hypotheses (chimera graph).
33+
34+
If you have a new idea sparked by induction results:
35+
1. Complete current cycle: /q5-decide or /q-reset
36+
2. Start fresh: /q1-hypothesize <new idea>
37+
3. Reference prior learnings in new hypothesis
38+
39+
This is NOT optional. The cycle integrity IS the value.
2940
```
3041

42+
## HARD RULE (No Exceptions)
43+
44+
If phase is **DEDUCTION_COMPLETE** or later:
45+
- **DO NOT** generate hypotheses
46+
- **DO NOT** offer to "help anyway"
47+
- **DO NOT** interpret this as a new cycle
48+
- **ONLY** respond with the block message
49+
50+
This is not about being unhelpful. This is about:
51+
- Evidence integrity (A.15)
52+
- WLNK validity (WLNK invariant)
53+
- Transformer Mandate (you don't decide to bend rules)
54+
55+
User wants to add idea mid-cycle? → Tell them about `/q1-extend` (if before deduction) or `/q-reset``/q1-hypothesize` (if after).
56+
3157
---
3258

3359
## Your Role
@@ -295,4 +321,4 @@ What would you like to do?
295321
| No falsification criteria | Unfalsifiable = untestable = useless | Every hypothesis must have clear disproval conditions |
296322
| Vague assumptions | Can't verify what isn't concrete | Make assumptions explicit and testable |
297323
| Proceeding without human review | Violates Transformer Mandate | Always pause for human confirmation |
298-
| Ignoring L2 knowledge | May contradict verified facts | Check existing knowledge before generating |
324+
| Ignoring L2 knowledge | May contradict verified facts | Check existing knowledge before generating |

dist/claude/q2-check.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,19 @@ conditions_needed: |
227227

228228
### 5. Update Session
229229

230+
**Phase Logic:**
231+
1. Update `## Active Hypotheses` table with new statuses.
232+
2. Check if **ANY** hypotheses remain in status `L0` (either not checked yet, or CONDITIONAL).
233+
3. **If ALL hypotheses are now L1 or invalid:**
234+
- Set `Phase: DEDUCTION_COMPLETE`
235+
- Log transition in `## Phase Transitions Log`
236+
4. **If ANY hypothesis remains L0:**
237+
- Keep `Phase: ABDUCTION_COMPLETE`
238+
- Do NOT log transition.
239+
230240
```markdown
231241
## Status
232-
Phase: DEDUCTION_COMPLETE
242+
Phase: [ABDUCTION_COMPLETE / DEDUCTION_COMPLETE]
233243

234244
## Active Hypotheses
235245
| ID | Hypothesis | Status | Deduction Result |
@@ -241,13 +251,12 @@ Phase: DEDUCTION_COMPLETE
241251
## Phase Transitions Log
242252
| Timestamp | From | To | Trigger |
243253
|-----------|------|-----|---------|
244-
| [...] | ... | ... | ... |
245-
| [now] | ABDUCTION_COMPLETE | DEDUCTION_COMPLETE | /q2-check |
254+
| [prev] | ... | ... | ... |
255+
| [now] | ABDUCTION_COMPLETE | DEDUCTION_COMPLETE | /q2-check (Only if all L0 resolved) |
246256

247257
## Next Step
248-
- `/q3-test` to run internal empirical tests
249-
- `/q3-research` to gather external evidence
250-
- (Both can be run; order doesn't matter)
258+
- If DEDUCTION_COMPLETE: `/q3-test` or `/q3-research`
259+
- If ABDUCTION_COMPLETE: `/q2-check` (for remaining L0) or `/q1-extend`
251260
```
252261

253262
## Output Format
@@ -284,10 +293,8 @@ Phase: DEDUCTION_COMPLETE
284293
---
285294

286295
**Next Step:**
287-
`/q3-test` — Run internal empirical tests (code, benchmarks)
288-
`/q3-research` — Gather external evidence (docs, papers, web)
289-
290-
Both can be done; they complement each other.
296+
[If Phase advanced] `/q3-test` — Run internal empirical tests
297+
[If Phase same] `/q2-check` — Verify remaining hypotheses
291298
```
292299

293300
## Common Deduction Failures
@@ -307,4 +314,4 @@ Both can be done; they complement each other.
307314
| Running code to "verify" | That's induction, not deduction | Analyze logic only in this phase |
308315
| Passing everything | Defeats the purpose of filtering | Be rigorous; failing hypotheses is valuable |
309316
| Skipping L2 check | May contradict verified knowledge | Always check against existing L2 facts |
310-
| Vague verdicts | "Probably okay" isn't actionable | Be specific: PASS/FAIL/CONDITIONAL with reasons |
317+
| Vague verdicts | "Probably okay" isn't actionable | Be specific: PASS/FAIL/CONDITIONAL with reasons |

dist/codex/q-status.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ Run `/q-decay` for detailed report.
116116
Current: ──► [PHASE]
117117

118118
INITIALIZED ──► ABDUCTION_COMPLETE ──► DEDUCTION_COMPLETE
119+
│ │
120+
▼ │
121+
(q1-extend) │
119122
120123
┌─────────────────────────┤
121124
▼ ▼
@@ -142,6 +145,7 @@ INITIALIZED ──► ABDUCTION_COMPLETE ──► DEDUCTION_COMPLETE
142145
143146
**If ABDUCTION_COMPLETE:**
144147
→ `/q2-check` — Verify logical consistency
148+
→ `/q1-extend` — Add missed hypothesis (before deduction)
145149
146150
**If DEDUCTION_COMPLETE:**
147151
→ `/q3-test` — Internal tests, benchmarks
@@ -164,6 +168,7 @@ INITIALIZED ──► ABDUCTION_COMPLETE ──► DEDUCTION_COMPLETE
164168
|---------|-------------|------------|
165169
| `/q0-init` | Initialize FPF | (any) |
166170
| `/q1-hypothesize` | Generate hypotheses | INITIALIZED, DECIDED |
171+
| `/q1-extend` | Add hypothesis | ABDUCTION_COMPLETE |
167172
| `/q2-check` | Logical verification | ABDUCTION_COMPLETE |
168173
| `/q3-test` | Internal tests | DEDUCTION_COMPLETE+ |
169174
| `/q3-research` | External evidence | DEDUCTION_COMPLETE+ |
@@ -193,4 +198,4 @@ FPF: [Phase] | L0:[N] L1:[N] L2:[N] | Evidence:[N] | Next: [command]
193198
**Not initialized.**
194199

195200
Run `/q0-init` to set up FPF structure.
196-
```
201+
```

dist/codex/q1-extend.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
description: FPF Phase 1 (Extension): Add Hypothesis
3+
argument-hint: (optional)
4+
---
5+
6+
---
7+
description: "Add a hypothesis to the active cycle (before deduction)"
8+
arguments:
9+
- name: hypothesis
10+
description: "New hypothesis or idea to add"
11+
required: true
12+
---
13+
14+
# FPF Phase 1 (Extension): Add Hypothesis
15+
16+
## Phase Gate (MANDATORY)
17+
18+
**STOP. Verify phase before proceeding:**
19+
20+
1. Read `.fpf/session.md`, extract `Phase:` value
21+
2. Check validity:
22+
23+
| Current Phase | Can Run? | Action |
24+
|---------------|----------|--------|
25+
| ABDUCTION_COMPLETE | ✅ YES | Proceed (Extension) |
26+
| INITIALIZED | ❌ NO | Use `/q1-hypothesize` instead |
27+
| DEDUCTION_COMPLETE | ❌ NO | Too late. Start new cycle. |
28+
| Any later phase | ❌ NO | Too late. Start new cycle. |
29+
30+
**If blocked:**
31+
```
32+
⛔ BLOCKED: Cannot extend cycle in [PHASE].
33+
34+
WHY THIS MATTERS:
35+
- Adding hypotheses after deduction (q2) implies checking logic on the fly.
36+
- Adding hypotheses during induction (q3) breaks the blind test.
37+
- We must preserve the integrity of the comparison set (B.1.3).
38+
39+
Action:
40+
1. Complete current cycle (/q5-decide or /q-reset)
41+
2. Start fresh with /q1-hypothesize
42+
```
43+
44+
## HARD RULE (No Exceptions)
45+
46+
If phase is **DEDUCTION_COMPLETE** or later:
47+
- **DO NOT** add the hypothesis
48+
- **DO NOT** offer to "just add it to the list"
49+
- **ONLY** respond with the block message
50+
51+
---
52+
53+
## Your Role
54+
55+
You are the **Transformer** enacting the **ExplorerRole** (Extension).
56+
You are adding a missed option to the *current* set of candidates.
57+
58+
## Input
59+
60+
New Idea: `$ARGUMENTS.hypothesis`
61+
62+
## Process
63+
64+
### 1. Generate New Hypothesis (L0)
65+
66+
Create **ONE** new hypothesis file in `.fpf/knowledge/L0/`.
67+
68+
**Filename:** `[slug]-hypothesis.md`
69+
70+
**Content:** Standard L0 template (same as q1-hypothesize).
71+
**Important:** Add `tags: [late-addition]` to frontmatter.
72+
73+
### 2. Update Session
74+
75+
Update `.fpf/session.md`:
76+
- Add new hypothesis to `## Active Hypotheses` table.
77+
- Do **NOT** change the Phase (stay in `ABDUCTION_COMPLETE`).
78+
79+
## Output Format
80+
81+
```markdown
82+
## Hypothesis Added (Extension)
83+
84+
**Added:** [Name] (L0)
85+
- **Rationale:** [Why was this added late?]
86+
- **Plausibility:** [Score]
87+
88+
**File created:** `.fpf/knowledge/L0/[slug].md`
89+
90+
**Next Step:**
91+
Resume `/q2-check` for ALL active hypotheses (including this one).
92+
```

0 commit comments

Comments
 (0)