fv-skills-baif 2.3.2 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +27 -7
- package/agents/fvs-crypto-thinker.md +27 -18
- package/bin/install.js +64 -35
- package/commands/fvs/aeneas-extract.md +21 -23
- package/commands/fvs/configure.md +159 -0
- package/commands/fvs/crypto-eval.md +52 -28
- package/commands/fvs/crypto-execute.md +14 -28
- package/commands/fvs/crypto-followup.md +21 -13
- package/commands/fvs/crypto-plan.md +26 -16
- package/commands/fvs/crypto-review.md +44 -23
- package/commands/fvs/fc-plan.md +10 -5
- package/commands/fvs/help.md +23 -12
- package/commands/fvs/lean-formalise.md +10 -15
- package/commands/fvs/lean-refactor.md +10 -15
- package/commands/fvs/lean-spec-review.md +26 -5
- package/commands/fvs/lean-specify.md +10 -15
- package/commands/fvs/lean-verify.md +10 -15
- package/commands/fvs/manage.md +3 -2
- package/commands/fvs/map-code.md +10 -19
- package/commands/fvs/natural-language.md +12 -2
- package/commands/fvs/reapply-patches.md +28 -21
- package/commands/fvs/sync-aeneas-verif.md +12 -13
- package/commands/fvs/trust-audit.md +11 -6
- package/fv-skills/VERSION +1 -1
- package/fv-skills/references/crypto-plan-review.md +10 -3
- package/fv-skills/references/fc-spec-review.md +4 -2
- package/fv-skills/references/model-profiles.md +252 -169
- package/fv-skills/references/review-diagnostics.md +10 -8
- package/fv-skills/templates/config.json +28 -4
- package/fv-skills/workflows/aeneas-extract.md +13 -5
- package/fv-skills/workflows/crypto-eval.md +34 -15
- package/fv-skills/workflows/crypto-execute.md +6 -3
- package/fv-skills/workflows/crypto-followup.md +4 -2
- package/fv-skills/workflows/crypto-plan.md +4 -2
- package/fv-skills/workflows/crypto-review.md +34 -14
- package/fv-skills/workflows/fc-plan.md +4 -5
- package/fv-skills/workflows/lean-formalise.md +4 -13
- package/fv-skills/workflows/lean-refactor.md +7 -13
- package/fv-skills/workflows/lean-spec-review.md +66 -42
- package/fv-skills/workflows/lean-specify.md +4 -13
- package/fv-skills/workflows/lean-verify.md +4 -13
- package/fv-skills/workflows/map-code.md +4 -14
- package/fv-skills/workflows/sync-aeneas-verif.md +8 -5
- package/fv-skills/workflows/trust-audit.md +13 -4
- package/package.json +11 -3
- package/pi/skills/fvs-aeneas/SKILL.md +23 -0
- package/pi/skills/fvs-aeneas-extract/SKILL.md +224 -0
- package/pi/skills/fvs-checkpoint/SKILL.md +154 -0
- package/pi/skills/fvs-configure/SKILL.md +160 -0
- package/pi/skills/fvs-context/SKILL.md +22 -0
- package/pi/skills/fvs-crypto-eval/SKILL.md +204 -0
- package/pi/skills/fvs-crypto-execute/SKILL.md +218 -0
- package/pi/skills/fvs-crypto-followup/SKILL.md +272 -0
- package/pi/skills/fvs-crypto-plan/SKILL.md +322 -0
- package/pi/skills/fvs-crypto-review/SKILL.md +162 -0
- package/pi/skills/fvs-fc/SKILL.md +31 -0
- package/pi/skills/fvs-fc-plan/SKILL.md +289 -0
- package/pi/skills/fvs-formalise/SKILL.md +37 -0
- package/pi/skills/fvs-help/SKILL.md +457 -0
- package/pi/skills/fvs-kb-setup/SKILL.md +322 -0
- package/pi/skills/fvs-lean-formalise/SKILL.md +397 -0
- package/pi/skills/fvs-lean-refactor/SKILL.md +293 -0
- package/pi/skills/fvs-lean-spec-review/SKILL.md +61 -0
- package/pi/skills/fvs-lean-specify/SKILL.md +424 -0
- package/pi/skills/fvs-lean-verify/SKILL.md +461 -0
- package/pi/skills/fvs-manage/SKILL.md +29 -0
- package/pi/skills/fvs-map-code/SKILL.md +349 -0
- package/pi/skills/fvs-natural-language/SKILL.md +220 -0
- package/pi/skills/fvs-pause-work/SKILL.md +154 -0
- package/pi/skills/fvs-reapply-patches/SKILL.md +27 -0
- package/pi/skills/fvs-resume-work/SKILL.md +96 -0
- package/pi/skills/fvs-sync-aeneas-verif/SKILL.md +235 -0
- package/pi/skills/fvs-trust-audit/SKILL.md +234 -0
- package/pi/skills/fvs-update/SKILL.md +24 -0
- package/scripts/build-plugin.cjs +128 -6
- package/scripts/fvs-codex-think.mjs +128 -54
- package/scripts/fvs-spec-review.mjs +135 -39
|
@@ -160,23 +160,16 @@ mkdir -p "$PROOF_ENG_ROOT/lessons/fc" "$PROOF_ENG_ROOT/lessons/crypto" \
|
|
|
160
160
|
cp ~/.claude/fv-skills/templates/proof-engineering-index.md "$PROOF_ENG_INDEX"
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
-
## Step 3: Read Config and Resolve Models
|
|
163
|
+
## Step 3: Read Config and Resolve Models + Effort
|
|
164
164
|
|
|
165
|
-
Read the
|
|
165
|
+
Read the complete config and apply `model-profiles.md`. This command declares `fc_proof_plan` for
|
|
166
|
+
the structure/planning `fvs-researcher` and `fc_spec` for the Lean-definition/spec-authoring
|
|
167
|
+
`fvs-executor`. Resolve each stage independently; do not choose tiers from the shared agent names.
|
|
166
168
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
Resolve models using the profile table from `fv-skills/references/model-profiles.md`:
|
|
172
|
-
|
|
173
|
-
1. Parse `model_profile` from config (default: `"quality"`)
|
|
174
|
-
2. Check `model_overrides` for `"fvs-researcher"` and `"fvs-executor"`
|
|
175
|
-
3. If no override, look up profile table:
|
|
176
|
-
- quality: fvs-researcher=inherit, fvs-executor=inherit
|
|
177
|
-
- balanced: fvs-researcher=sonnet, fvs-executor=sonnet
|
|
178
|
-
- budget: fvs-researcher=haiku, fvs-executor=sonnet
|
|
179
|
-
4. Store resolved models as `RESEARCH_MODEL` and `EXECUTOR_MODEL`
|
|
169
|
+
Before dispatch, show one command-level selection manifest containing both authority stages and
|
|
170
|
+
obtain confirmation. Offer one-run adjustment, exact-stage Save override, notes that rebuild and
|
|
171
|
+
reconfirm the manifest, and Cancel. Missing preferred models or unsupported efforts prompt
|
|
172
|
+
interactively; noninteractive unresolved choices fail before dispatch with exact remediation.
|
|
180
173
|
|
|
181
174
|
## Step 4: Read Reference Files for Inlining
|
|
182
175
|
|
|
@@ -208,6 +201,7 @@ If no Aeneas markers: skip aeneas-patterns (paper track may be pure math, not Ae
|
|
|
208
201
|
Task(
|
|
209
202
|
subagent_type="fvs-researcher",
|
|
210
203
|
model="$RESEARCH_MODEL",
|
|
204
|
+
reasoning_effort="$RESEARCH_EFFORT", // when supported; otherwise apply the capability gate
|
|
211
205
|
description="Research context for formalisation: $TASK_DESCRIPTION",
|
|
212
206
|
prompt="Research mode: formalise
|
|
213
207
|
|
|
@@ -284,6 +278,7 @@ Use AskUserQuestion. If user adjusts: incorporate feedback before dispatching ex
|
|
|
284
278
|
Task(
|
|
285
279
|
subagent_type="fvs-executor",
|
|
286
280
|
model="$EXECUTOR_MODEL",
|
|
281
|
+
reasoning_effort="$EXECUTOR_EFFORT", // when supported; otherwise apply the capability gate
|
|
287
282
|
description="Create Lean files for formalisation: $TASK_DESCRIPTION",
|
|
288
283
|
prompt="Execute mode: formalise
|
|
289
284
|
|
|
@@ -112,23 +112,16 @@ TACTIC_LINES=$(grep -cE "^\s+(unfold|step|simp|agrind|scalar_tac|ring|field_simp
|
|
|
112
112
|
echo "Baseline: $TOTAL_LINES lines, $THEOREM_COUNT theorems, $TACTIC_LINES tactic lines"
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
## Step 3: Read Config and Resolve Models
|
|
115
|
+
## Step 3: Read Config and Resolve Models + Effort
|
|
116
116
|
|
|
117
|
-
Read the
|
|
117
|
+
Read the complete config and apply `model-profiles.md`. Declare `research` for
|
|
118
|
+
`fvs-researcher` and `lean_refactor` for `fvs-lean-refactorer`; resolve both stages independently
|
|
119
|
+
rather than deriving tiers from agent names.
|
|
118
120
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Resolve models using the profile table from `fv-skills/references/model-profiles.md`:
|
|
124
|
-
|
|
125
|
-
1. Parse `model_profile` from config (default: `"quality"`)
|
|
126
|
-
2. Check `model_overrides` for `"fvs-researcher"` and `"fvs-lean-refactorer"`
|
|
127
|
-
3. If no override, look up profile table:
|
|
128
|
-
- quality: fvs-researcher=inherit, fvs-lean-refactorer=inherit
|
|
129
|
-
- balanced: fvs-researcher=sonnet, fvs-lean-refactorer=sonnet
|
|
130
|
-
- budget: fvs-researcher=haiku, fvs-lean-refactorer=sonnet
|
|
131
|
-
4. Store resolved models as `RESEARCH_MODEL` and `REFACTORER_MODEL`
|
|
121
|
+
Before dispatch, show one command-level selection manifest with both stages and obtain confirmation.
|
|
122
|
+
Offer one-run adjustment, exact-stage Save override, notes that rebuild and reconfirm the manifest,
|
|
123
|
+
and Cancel. Missing preferred models or unsupported efforts prompt interactively; noninteractive
|
|
124
|
+
unresolved choices fail before dispatch with exact remediation.
|
|
132
125
|
|
|
133
126
|
## Step 4: Read Reference Files for Inlining
|
|
134
127
|
|
|
@@ -148,6 +141,7 @@ All three must be captured as content strings for inlining into subagent prompts
|
|
|
148
141
|
Task(
|
|
149
142
|
subagent_type="fvs-researcher",
|
|
150
143
|
model="$RESEARCH_MODEL",
|
|
144
|
+
reasoning_effort="$RESEARCH_EFFORT", // when supported; otherwise apply the capability gate
|
|
151
145
|
description="Research refactoring context for $SPEC_FILE",
|
|
152
146
|
prompt="Research mode: lean-refactor
|
|
153
147
|
|
|
@@ -201,6 +195,7 @@ WHILE PASS < MAX_PASSES:
|
|
|
201
195
|
Task(
|
|
202
196
|
subagent_type="fvs-lean-refactorer",
|
|
203
197
|
model="$REFACTORER_MODEL",
|
|
198
|
+
reasoning_effort="$REFACTORER_EFFORT", // when supported; otherwise apply the capability gate
|
|
204
199
|
description="Refactor {theorem_name} pass {PASS+1}",
|
|
205
200
|
prompt="<refactoring_reference>$LEAN_REFACTORING_CONTENT</refactoring_reference>
|
|
206
201
|
<research_findings>$RESEARCH_OUTPUT</research_findings>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fvs:lean-spec-review
|
|
3
3
|
description: Adversarially review an FC Lean specification with a chosen runtime, model, and effort
|
|
4
|
-
argument-hint: "<spec.lean> [--reviewer codex|claude|other] [--model ID] [--effort LEVEL]"
|
|
4
|
+
argument-hint: "<spec.lean> [--reviewer codex|claude|pi|other] [--model ID] [--effort LEVEL]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
7
7
|
- Bash
|
|
@@ -20,6 +20,7 @@ runtime, model, and effort menu; preserve the spec and record the review and fin
|
|
|
20
20
|
<execution_context>
|
|
21
21
|
@~/.claude/fv-skills/workflows/lean-spec-review.md
|
|
22
22
|
@~/.claude/fv-skills/references/fc-spec-review.md
|
|
23
|
+
@~/.claude/fv-skills/references/model-profiles.md
|
|
23
24
|
</execution_context>
|
|
24
25
|
|
|
25
26
|
<process>
|
|
@@ -27,10 +28,30 @@ Follow the review workflow with `$ARGUMENTS`. Explicit invocation always runs th
|
|
|
27
28
|
even when `spec_review.automatic` is false. Automatic invocation from `lean-specify` enters the
|
|
28
29
|
same workflow after generation checks, with the resolved spec/source paths and author runtime.
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
non-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
Declare authority stage `spec_review` and apply `model-profiles.md`. Precedence is explicit one-run
|
|
32
|
+
flags, non-null `spec_review.reviewer` / `spec_review.model` / `spec_review.effort`, then the quality
|
|
33
|
+
opposite-runtime recommendation. Null saved values keep profile routing active.
|
|
34
|
+
|
|
35
|
+
Detect the specification authoring runtime. Recommend an authenticated opposite provider/runtime:
|
|
36
|
+
OpenAI/Codex-authored specs use Claude Code CLI; Claude-authored specs use a fresh
|
|
37
|
+
provider-qualified OpenAI Pi seat when running in Pi, then Codex CLI. Unknown authors receive an
|
|
38
|
+
explicit reviewer menu without an independence claim. Never route a Claude Code subscription
|
|
39
|
+
through Pi. The `pi` reviewer is available only inside Pi with a provider-qualified model from its
|
|
40
|
+
live authenticated catalog and a fresh-child facility that can honor and report the exact per-child
|
|
41
|
+
model/effort. It launches a fresh read-only child, never a manual Other packet. Persistence requires
|
|
42
|
+
the workflow's completed-child receipt with actual run ID/model/effort and packet/response hashes;
|
|
43
|
+
missing capability or evidence leaves the review pending.
|
|
44
|
+
|
|
45
|
+
Build one review selection manifest containing reviewer runner, provenance, exact catalog model,
|
|
46
|
+
and effort. Confirm it before launch with Continue once, Adjust once, Save override, or Cancel;
|
|
47
|
+
retain notes. Notes rebuild the manifest and require reconfirmation. Save writes only the
|
|
48
|
+
`spec_review` object. Offer every effort value the selected model/provider reports as supported.
|
|
49
|
+
Missing models or unsupported efforts ask for one-run/save/cancel; unresolved noninteractive
|
|
50
|
+
choices fail before launch with exact remediation.
|
|
51
|
+
|
|
52
|
+
If no opposite runner is authenticated, ask among setup/retry, fresh same-runtime review, Other
|
|
53
|
+
handoff, one-run skip, or cancel; never switch silently. A one-run skip records exactly
|
|
54
|
+
`Unreviewed (user skipped)`, stops at the review boundary, and does not auto-start proof work.
|
|
34
55
|
|
|
35
56
|
The reviewer is read-only; the `lean-specify` authoring seat keeps `review.md` unchanged and writes
|
|
36
57
|
separate `triage.md` with finding IDs, old/new hashes (pre-edit/post-edit), and rerun structure,
|
|
@@ -112,23 +112,16 @@ if [ "$CACHE_STATUS" -ne 0 ]; then
|
|
|
112
112
|
fi
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
## Step 3: Read Config and Resolve Models
|
|
115
|
+
## Step 3: Read Config and Resolve Models + Effort
|
|
116
116
|
|
|
117
|
-
Read the
|
|
117
|
+
Read the complete config and apply `model-profiles.md`. Declare `research` for the implementation
|
|
118
|
+
analysis `fvs-researcher` and `fc_spec` for the specification-authoring `fvs-executor`. Resolve both
|
|
119
|
+
stages independently rather than deriving tiers from shared agent names.
|
|
118
120
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Resolve models using the profile table from `fv-skills/references/model-profiles.md`:
|
|
124
|
-
|
|
125
|
-
1. Parse `model_profile` from config (default: `"quality"`)
|
|
126
|
-
2. Check `model_overrides` for `"fvs-researcher"` and `"fvs-executor"`
|
|
127
|
-
3. If no override, look up profile table:
|
|
128
|
-
- quality: fvs-researcher=inherit, fvs-executor=inherit
|
|
129
|
-
- balanced: fvs-researcher=sonnet, fvs-executor=sonnet
|
|
130
|
-
- budget: fvs-researcher=haiku, fvs-executor=sonnet
|
|
131
|
-
4. Store resolved models as `RESEARCH_MODEL` and `EXECUTOR_MODEL`
|
|
121
|
+
Before dispatch, show one command-level selection manifest with both stages and obtain confirmation.
|
|
122
|
+
Offer one-run adjustment, exact-stage Save override, notes that rebuild and reconfirm the manifest,
|
|
123
|
+
and Cancel. Missing preferred models or unsupported efforts prompt interactively; noninteractive
|
|
124
|
+
unresolved choices fail before dispatch with exact remediation.
|
|
132
125
|
|
|
133
126
|
## Step 4: Discover and Load the Target Style Guide
|
|
134
127
|
|
|
@@ -174,6 +167,7 @@ target style guide from Step 4 must be inlined separately into BOTH prompts.
|
|
|
174
167
|
Task(
|
|
175
168
|
subagent_type="fvs-researcher",
|
|
176
169
|
model="$RESEARCH_MODEL",
|
|
170
|
+
reasoning_effort="$RESEARCH_EFFORT", // when supported; otherwise apply the capability gate
|
|
177
171
|
description="Research context for spec generation of $FUNCTION_NAME",
|
|
178
172
|
prompt="Research mode: spec-generation
|
|
179
173
|
|
|
@@ -230,6 +224,7 @@ Parse the returned research findings for use by the executor.
|
|
|
230
224
|
Task(
|
|
231
225
|
subagent_type="fvs-executor",
|
|
232
226
|
model="$EXECUTOR_MODEL",
|
|
227
|
+
reasoning_effort="$EXECUTOR_EFFORT", // when supported; otherwise apply the capability gate
|
|
233
228
|
description="Generate spec for $FUNCTION_NAME",
|
|
234
229
|
prompt="Execute mode: spec-generation
|
|
235
230
|
|
|
@@ -115,23 +115,16 @@ if [ "$CACHE_STATUS" -ne 0 ]; then
|
|
|
115
115
|
fi
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
-
## Step 2: Read Config and Resolve Models
|
|
118
|
+
## Step 2: Read Config and Resolve Models + Effort
|
|
119
119
|
|
|
120
|
-
Read the
|
|
120
|
+
Read the complete config and apply `model-profiles.md`. Declare `fc_proof_plan` for the proof
|
|
121
|
+
strategy `fvs-researcher` and `fc_proof_execution` for the proving `fvs-executor`. Resolve both
|
|
122
|
+
stages independently rather than deriving tiers from shared agent names.
|
|
121
123
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Resolve models using the profile table from `fv-skills/references/model-profiles.md`:
|
|
127
|
-
|
|
128
|
-
1. Parse `model_profile` from config (default: `"quality"`)
|
|
129
|
-
2. Check `model_overrides` for `"fvs-researcher"` and `"fvs-executor"`
|
|
130
|
-
3. If no override, look up profile table:
|
|
131
|
-
- quality: fvs-researcher=inherit, fvs-executor=inherit
|
|
132
|
-
- balanced: fvs-researcher=sonnet, fvs-executor=sonnet
|
|
133
|
-
- budget: fvs-researcher=haiku, fvs-executor=sonnet
|
|
134
|
-
4. Store resolved models as `RESEARCH_MODEL` and `EXECUTOR_MODEL`
|
|
124
|
+
Before dispatch, show one command-level selection manifest with both stages and obtain confirmation.
|
|
125
|
+
Offer one-run adjustment, exact-stage Save override, notes that rebuild and reconfirm the manifest,
|
|
126
|
+
and Cancel. Missing preferred models or unsupported efforts prompt interactively; noninteractive
|
|
127
|
+
unresolved choices fail before dispatch with exact remediation.
|
|
135
128
|
|
|
136
129
|
## Step 3: Discover the Target Style Guide and Capture a Baseline
|
|
137
130
|
|
|
@@ -212,6 +205,7 @@ grep -E "@\[step\]|theorem " "$SPEC_PATH"
|
|
|
212
205
|
Task(
|
|
213
206
|
subagent_type="fvs-researcher",
|
|
214
207
|
model="$RESEARCH_MODEL",
|
|
208
|
+
reasoning_effort="$RESEARCH_EFFORT", // when supported; otherwise apply the capability gate
|
|
215
209
|
description="Research proof context for $SPEC_FILE",
|
|
216
210
|
prompt="Research mode: proof-attempt
|
|
217
211
|
|
|
@@ -286,6 +280,7 @@ FOR EACH SORRY (in recommended order from research):
|
|
|
286
280
|
Task(
|
|
287
281
|
subagent_type="fvs-executor",
|
|
288
282
|
model="$EXECUTOR_MODEL",
|
|
283
|
+
reasoning_effort="$EXECUTOR_EFFORT", // when supported; otherwise apply the capability gate
|
|
289
284
|
description="Prove sorry {N} in $SPEC_FILE",
|
|
290
285
|
prompt="Execute mode: proof-attempt
|
|
291
286
|
|
package/commands/fvs/manage.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fvs:manage
|
|
3
|
-
description: "management | help update checkpoint pause resume patches kb"
|
|
3
|
+
description: "management | help configure update checkpoint pause resume patches kb"
|
|
4
4
|
argument-hint: ""
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
7
7
|
- Skill
|
|
8
|
-
requires: [help, update, checkpoint, pause-work, resume-work, reapply-patches, kb-setup]
|
|
8
|
+
requires: [help, configure, update, checkpoint, pause-work, resume-work, reapply-patches, kb-setup]
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
Route to the appropriate management skill based on the user's intent.
|
|
@@ -15,6 +15,7 @@ When invoked WITH a request, match it against the table below and invoke the mat
|
|
|
15
15
|
| User wants | Invoke |
|
|
16
16
|
|---|---|
|
|
17
17
|
| Show the FVS command reference | fvs:help |
|
|
18
|
+
| Configure subagent models, effort, and review defaults | fvs:configure |
|
|
18
19
|
| Update FVS to the latest version | fvs:update |
|
|
19
20
|
| Checkpoint current verification progress | fvs:checkpoint |
|
|
20
21
|
| Pause work and write a handoff doc | fvs:pause-work |
|
package/commands/fvs/map-code.md
CHANGED
|
@@ -95,26 +95,15 @@ If .formalising/ already exists, ask user whether to refresh CODEMAP.md or abort
|
|
|
95
95
|
|
|
96
96
|
## Step 3: Read config and resolve models
|
|
97
97
|
|
|
98
|
-
Read the
|
|
98
|
+
Read the complete config and apply `model-profiles.md`. Both the read-only researcher and the
|
|
99
|
+
map-writing executor use stage key `map_code`: the output is a code map, not authority or proof
|
|
100
|
+
execution. Resolve one stage selection and reuse it for both agents unless an explicit one-run
|
|
101
|
+
adjustment says otherwise.
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
If config exists, extract `model_profile` and `model_overrides`.
|
|
105
|
-
If config is missing, use defaults: `model_profile = "quality"`, no overrides.
|
|
106
|
-
|
|
107
|
-
**Resolve models from profile table** (see fv-skills/references/model-profiles.md):
|
|
108
|
-
|
|
109
|
-
For `fvs-researcher`:
|
|
110
|
-
- Check `model_overrides["fvs-researcher"]` first
|
|
111
|
-
- Otherwise use profile table: quality=inherit, balanced=sonnet, budget=haiku
|
|
112
|
-
|
|
113
|
-
For `fvs-executor`:
|
|
114
|
-
- Check `model_overrides["fvs-executor"]` first
|
|
115
|
-
- Otherwise use profile table: quality=inherit, balanced=sonnet, budget=sonnet
|
|
116
|
-
|
|
117
|
-
Store resolved models as `$RESEARCH_MODEL` and `$EXECUTOR_MODEL`.
|
|
103
|
+
Before dispatch, show and confirm the command-level selection manifest. Offer one-run adjustment,
|
|
104
|
+
exact-stage Save override, notes that rebuild and reconfirm the manifest, and Cancel. Missing
|
|
105
|
+
preferred models or unsupported efforts prompt interactively; noninteractive unresolved choices
|
|
106
|
+
fail before dispatch with exact remediation.
|
|
118
107
|
|
|
119
108
|
## Step 4: Generate the canonical function inventory
|
|
120
109
|
|
|
@@ -200,6 +189,7 @@ Spawn the research subagent to annotate the canonical functions:
|
|
|
200
189
|
Task(
|
|
201
190
|
subagent_type="fvs-researcher",
|
|
202
191
|
model="$RESEARCH_MODEL",
|
|
192
|
+
reasoning_effort="$RESEARCH_EFFORT", // when supported; otherwise apply the capability gate
|
|
203
193
|
description="Map codebase dependencies",
|
|
204
194
|
prompt="Research mode: map-code
|
|
205
195
|
|
|
@@ -264,6 +254,7 @@ Spawn the executor subagent with research findings:
|
|
|
264
254
|
Task(
|
|
265
255
|
subagent_type="fvs-executor",
|
|
266
256
|
model="$EXECUTOR_MODEL",
|
|
257
|
+
reasoning_effort="$EXECUTOR_EFFORT", // when supported; otherwise apply the capability gate
|
|
267
258
|
description="Write CODEMAP.md",
|
|
268
259
|
prompt="Execute mode: map-code
|
|
269
260
|
|
|
@@ -71,9 +71,17 @@ Or run /fvs:map-code to build the function index.
|
|
|
71
71
|
|
|
72
72
|
Wait for user clarification.
|
|
73
73
|
|
|
74
|
-
## Step 2:
|
|
74
|
+
## Step 2: Resolve Runtime Settings and Read References
|
|
75
75
|
|
|
76
|
-
Read
|
|
76
|
+
Read `fv-skills/references/model-profiles.md` and declare stage key `explain` for
|
|
77
|
+
`fvs-explainer`. Resolve the exact runtime/provider model and effort through the canonical
|
|
78
|
+
precedence. Before dispatch, show and confirm the command-level selection manifest. Offer one-run
|
|
79
|
+
adjustment, exact-stage Save override, notes that rebuild and reconfirm the manifest, and Cancel.
|
|
80
|
+
Missing preferred models or unsupported efforts prompt interactively; noninteractive unresolved
|
|
81
|
+
choices fail before dispatch with exact remediation.
|
|
82
|
+
|
|
83
|
+
Read the three domain reference files. These MUST be inlined into the Task() prompt because
|
|
84
|
+
@-references do NOT cross Task boundaries.
|
|
77
85
|
|
|
78
86
|
```bash
|
|
79
87
|
AENEAS_PATTERNS=$(cat ~/.claude/fv-skills/references/aeneas-patterns.md)
|
|
@@ -101,6 +109,8 @@ Display dispatch indicator:
|
|
|
101
109
|
|
|
102
110
|
```
|
|
103
111
|
Task(
|
|
112
|
+
model="$EXPLAINER_MODEL",
|
|
113
|
+
reasoning_effort="$EXPLAINER_EFFORT", // when supported; otherwise apply the capability gate
|
|
104
114
|
prompt="Analyze function for natural-language explanation.
|
|
105
115
|
|
|
106
116
|
<rust_module>
|
|
@@ -21,16 +21,19 @@ manifest. For local installs this is under the project runtime directory; for
|
|
|
21
21
|
global installs use that runtime’s configured root (including custom config roots).
|
|
22
22
|
Do not search unrelated runtimes or prefer a global backup over the active local one.
|
|
23
23
|
|
|
24
|
-
Read `backup-meta.json` from the patches directory. For version 2, resolve its `bundle`
|
|
25
|
-
relative to that directory (strictly `bundles/bundle-<id>`). This immutable bundle is
|
|
26
|
-
|
|
24
|
+
Read `backup-meta.json` from the patches directory. For version 2 or 3, resolve its `bundle`
|
|
25
|
+
relative to that directory (strictly `bundles/bundle-<id>`). This immutable bundle is the source
|
|
26
|
+
for file copies below. Version 3 uses `pending` as the active reapply set and keeps `files` as the
|
|
27
|
+
historical bundle inventory; version 2 treats every `files` entry as pending. Legacy metadata refers
|
|
28
|
+
to the flat directory.
|
|
27
29
|
Check canonical paths remain inside the selected installation and reject symlinks.
|
|
28
30
|
|
|
29
|
-
Before merging, enumerate every file in the bundle, excluding its `backup-meta.json`.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Older immutable bundles and
|
|
31
|
+
Before merging, enumerate every file in the bundle, excluding its `backup-meta.json`. Compare the
|
|
32
|
+
enumeration with historical `files` and verify `hashes` when present. Report every unlisted file and
|
|
33
|
+
every missing or changed entry; never silently omit them. Stop for user inspection on
|
|
34
|
+
missing/changed entries. Offer unlisted legacy files for recovery. Process only `pending` (or
|
|
35
|
+
version-2 `files`) as active patches. Older immutable bundles and resolved entries remain available
|
|
36
|
+
for inspection without being copied into the next active set.
|
|
34
37
|
|
|
35
38
|
**If no patches found:**
|
|
36
39
|
```
|
|
@@ -58,7 +61,7 @@ Exit.
|
|
|
58
61
|
|
|
59
62
|
## Step 3: Merge each file
|
|
60
63
|
|
|
61
|
-
For each file in `
|
|
64
|
+
For each active file in `pending` (or version-2 `files`):
|
|
62
65
|
|
|
63
66
|
1. **Read the backed-up version** (user's modified copy from `fvs-local-patches/`)
|
|
64
67
|
2. **Read the newly installed version** (current file after update)
|
|
@@ -88,21 +91,24 @@ For each file in `backup-meta.json`:
|
|
|
88
91
|
- `Skipped` -- modification already in upstream
|
|
89
92
|
- `Conflict` -- user chose resolution
|
|
90
93
|
|
|
91
|
-
## Step 4:
|
|
94
|
+
## Step 4: Retire processed active entries
|
|
92
95
|
|
|
93
|
-
After
|
|
96
|
+
After each file reaches a final outcome (`Merged`, `Skipped (already upstream)`, or an explicit
|
|
97
|
+
choice to keep the new upstream file), atomically rewrite the top-level `backup-meta.json` as
|
|
98
|
+
version 3 with that path removed from `pending`. Preserve `bundle`, historical `files`, `hashes`,
|
|
99
|
+
`kinds`, and the immutable bundle contents. A conflict the user defers remains pending.
|
|
94
100
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
```
|
|
101
|
+
When `pending` becomes empty, keep the pointer with `pending: []` so the selected bundle remains
|
|
102
|
+
historical evidence. The next update must not reactivate or copy those resolved entries. A newly
|
|
103
|
+
modified installed file will still be detected independently against `fvs-file-manifest.json`.
|
|
99
104
|
|
|
100
105
|
## Step 5: Cleanup option
|
|
101
106
|
|
|
102
107
|
Ask user:
|
|
103
|
-
- "Keep patch backups for reference?" -- preserve `fvs-local-patches
|
|
104
|
-
|
|
105
|
-
|
|
108
|
+
- "Keep patch backups for reference?" -- preserve `fvs-local-patches/`; this never keeps resolved
|
|
109
|
+
entries active.
|
|
110
|
+
- "Clean up selected patch bundle?" -- only when its `pending` set is empty; name the exact bundle
|
|
111
|
+
and delete it after explicit approval without deleting older bundles or dangling the pointer.
|
|
106
112
|
|
|
107
113
|
## Step 6: Report
|
|
108
114
|
|
|
@@ -121,8 +127,9 @@ Ask user:
|
|
|
121
127
|
</process>
|
|
122
128
|
|
|
123
129
|
<success_criteria>
|
|
124
|
-
- [ ]
|
|
125
|
-
- [ ] User modifications merged into new version
|
|
126
|
-
- [ ]
|
|
130
|
+
- [ ] Every active pending patch processed or explicitly left pending
|
|
131
|
+
- [ ] User modifications merged into the new version
|
|
132
|
+
- [ ] Resolved/upstream-chosen entries removed from `pending` without deleting historical bundles
|
|
133
|
+
- [ ] Conflicts resolved with user input or kept pending
|
|
127
134
|
- [ ] Status reported for each file
|
|
128
135
|
</success_criteria>
|
|
@@ -90,18 +90,14 @@ of every normal runtime install. If the preflight fails, STOP before all later s
|
|
|
90
90
|
|
|
91
91
|
## Step 1: Read config and resolve subagent model
|
|
92
92
|
|
|
93
|
-
Read the
|
|
94
|
-
|
|
95
|
-
`inherit` for unknown agents):
|
|
93
|
+
Read the complete config and apply `model-profiles.md`. Declare stage key `doc_sync` for every
|
|
94
|
+
`fvs-doc-syncer` mode and resolve one exact runtime/provider model+effort selection.
|
|
96
95
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
On Codex (which does not support dynamic model selection) the `model=` parameter is silently
|
|
104
|
-
ignored; the dispatches work unchanged.
|
|
96
|
+
Before the first dispatch, show and confirm the command-level selection manifest. Offer one-run
|
|
97
|
+
adjustment, exact-stage Save override, notes that rebuild and reconfirm the manifest, and Cancel.
|
|
98
|
+
Missing preferred models or unsupported efforts prompt interactively; noninteractive unresolved
|
|
99
|
+
choices fail before dispatch with exact remediation. Pass only native fields the selected runtime
|
|
100
|
+
actually supports.
|
|
105
101
|
|
|
106
102
|
## Step 2: Resolve the local clones (config -> auto-detect -> prompt -> error)
|
|
107
103
|
|
|
@@ -159,6 +155,7 @@ the `tactic_renames` table (the parent inlines all reference content; the worker
|
|
|
159
155
|
|
|
160
156
|
```
|
|
161
157
|
Task(subagent_type="fvs-doc-syncer", model="$SYNCER_MODEL",
|
|
158
|
+
reasoning_effort="$SYNCER_EFFORT", // when supported; otherwise apply the capability gate
|
|
162
159
|
description="Sync tactics + Lean-syntax docs (mode a)",
|
|
163
160
|
prompt="<sync_mode>tactics-lean-syntax</sync_mode>
|
|
164
161
|
...inlined _sync-meta.json mapping + tactic_renames + snapshot SHA + the
|
|
@@ -178,6 +175,7 @@ extraction doc targets and the current `blocker-catalog.md` seed:
|
|
|
178
175
|
|
|
179
176
|
```
|
|
180
177
|
Task(subagent_type="fvs-doc-syncer", model="$SYNCER_MODEL",
|
|
178
|
+
reasoning_effort="$SYNCER_EFFORT", // when supported; otherwise apply the capability gate
|
|
181
179
|
description="Sync extraction docs + reconcile blocker catalog (mode b)",
|
|
182
180
|
prompt="<sync_mode>extraction-docs</sync_mode>
|
|
183
181
|
...Charon docs/{what_charon_translates,transformations,limitations}.md + README.md +
|
|
@@ -219,8 +217,9 @@ On Codex, every interactive HALT in this command -- the clone-path prompt (Step
|
|
|
219
217
|
propose-each approval the workers surface -- degrades to a plain-text question and WAITS for the
|
|
220
218
|
user. It is fail-closed: it never auto-picks a default, never auto-applies a change, and never
|
|
221
219
|
fetches or opens an upstream artifact without the read-only fetch being explicitly part of the sync.
|
|
222
|
-
|
|
223
|
-
model
|
|
220
|
+
Before dispatch on Codex, apply the model-profile capability gate: confirm only the actual
|
|
221
|
+
active/inherited model and applicable effort, or fail before dispatch. Never silently ignore a
|
|
222
|
+
confirmed field.
|
|
224
223
|
</codex_skill_adapter>
|
|
225
224
|
|
|
226
225
|
<success_criteria>
|
|
@@ -55,8 +55,7 @@ project-defs paths with the precedence config -> auto-detect -> prompt -> error,
|
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
57
|
CONFIG=$(cat .formalising/fvs-config.json 2>/dev/null)
|
|
58
|
-
#
|
|
59
|
-
# model = model_overrides["fvs-axiom-auditor"] ?? PROFILE_TABLE["fvs-axiom-auditor"][profile]
|
|
58
|
+
# Resolve stage `trust_audit` for fvs-axiom-auditor through model-profiles.md.
|
|
60
59
|
```
|
|
61
60
|
|
|
62
61
|
The target is UNTRUSTED input flowing into path expansion and a `lake` / `lake env lean`
|
|
@@ -134,11 +133,16 @@ Never fall back to grep/model enumeration; models never discover, add, remove, o
|
|
|
134
133
|
|
|
135
134
|
## Step 4: Resolve the auditor model + dispatch the read-only auditor
|
|
136
135
|
|
|
137
|
-
Resolve `$AUDITOR_MODEL` for `fvs-axiom-auditor`
|
|
138
|
-
|
|
136
|
+
Resolve `$AUDITOR_MODEL` and `$AUDITOR_EFFORT` for `fvs-axiom-auditor` with stage key
|
|
137
|
+
`trust_audit` through `model-profiles.md`. Before dispatch, show and confirm the command-level
|
|
138
|
+
selection manifest. Offer one-run adjustment, exact-stage Save override, notes that rebuild and
|
|
139
|
+
reconfirm the manifest, and Cancel. Missing preferred models or unsupported efforts prompt
|
|
140
|
+
interactively; noninteractive unresolved choices fail before dispatch with exact remediation.
|
|
141
|
+
Pass validated native fields, then dispatch:
|
|
139
142
|
|
|
140
143
|
```
|
|
141
144
|
Task(subagent_type="fvs-axiom-auditor", model="$AUDITOR_MODEL",
|
|
145
|
+
reasoning_effort="$AUDITOR_EFFORT", // when supported; otherwise apply the capability gate
|
|
142
146
|
description="Introspect #print axioms over canonical functions",
|
|
143
147
|
prompt="Target: $TARGET
|
|
144
148
|
|
|
@@ -214,8 +218,9 @@ Table: .formalising/audits/<target>.md
|
|
|
214
218
|
On Codex, every interactive HALT in this command -- the build-precondition HALT (Step 2) and any
|
|
215
219
|
justification prompt at the gate (Step 5) -- degrades to a plain-text question and WAITS for the
|
|
216
220
|
user. It is fail-closed: it never auto-justifies an axiom, never self-clears the NOT-CLEAN gate,
|
|
217
|
-
and never produces a CLEAN verdict without a green build.
|
|
218
|
-
|
|
221
|
+
and never produces a CLEAN verdict without a green build. Before dispatch on Codex, apply the
|
|
222
|
+
model-profile capability gate: confirm only the actual active/inherited model and applicable
|
|
223
|
+
effort, or fail before dispatch. Never silently ignore a confirmed field.
|
|
219
224
|
</codex_skill_adapter>
|
|
220
225
|
|
|
221
226
|
<success_criteria>
|
package/fv-skills/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.3.
|
|
1
|
+
2.3.4
|
|
@@ -65,7 +65,9 @@ specify a stricter order, use:
|
|
|
65
65
|
4. The plan documents under review.
|
|
66
66
|
|
|
67
67
|
On conflict, the earlier item wins. Missing or ambiguous authority is itself a finding when the
|
|
68
|
-
plan makes a normative mathematical choice.
|
|
68
|
+
plan makes a normative mathematical choice. When the project names a practical reference
|
|
69
|
+
implementation, use it to settle details the mathematics leaves open (for example field names or
|
|
70
|
+
return order); it never overrides definitions, equations, or other mathematical authority.
|
|
69
71
|
|
|
70
72
|
</authority>
|
|
71
73
|
|
|
@@ -103,8 +105,10 @@ Work through every applicable item and record both findings and cleared surfaces
|
|
|
103
105
|
surface regresses, and the follow-up stays bounded to the named defects.
|
|
104
106
|
10. **Reuse audit and scope economy.** Judge the explicit `## Reuse audit` against
|
|
105
107
|
the supplied grounding inventory. Missing reuse analysis is a MAJOR CONTENT
|
|
106
|
-
finding. Check
|
|
107
|
-
|
|
108
|
+
finding. Check whether the same concept already exists in the project; following an external
|
|
109
|
+
specification is not itself a reason to duplicate it. Apply the appended shared reuse/scope
|
|
110
|
+
policy. Detailed tables have one canonical copy; other locations reference it rather than
|
|
111
|
+
reproducing rows that can drift.
|
|
108
112
|
|
|
109
113
|
</attack_surface>
|
|
110
114
|
|
|
@@ -140,6 +144,9 @@ End with exactly one verdict:
|
|
|
140
144
|
- **APPROVE-WITH-EDITS** — no BLOCKER; the named bounded edits are sufficient before dispatch.
|
|
141
145
|
- **REJECT** — any BLOCKER, or MAJOR findings that require re-planning rather than bounded edits.
|
|
142
146
|
|
|
147
|
+
`REJECT` and `APPROVE-WITH-EDITS` require at least one finding. An empty Findings section is valid
|
|
148
|
+
only with `APPROVE`.
|
|
149
|
+
|
|
143
150
|
</severities_and_verdict>
|
|
144
151
|
|
|
145
152
|
<output_contract>
|
|
@@ -41,7 +41,8 @@ Check every applicable surface:
|
|
|
41
41
|
The implementation is the source of truth; library convenience must not change its semantics.
|
|
42
42
|
|
|
43
43
|
Give each finding an ID, severity (BLOCKER, MAJOR, MINOR), a precise claim, reproducible `path:line`
|
|
44
|
-
evidence or a concrete counterexample, and a minimal suggested change.
|
|
44
|
+
evidence or a concrete counterexample, and a minimal suggested change. `OBSERVATION` is not a
|
|
45
|
+
supported FC severity. Combine duplicate symptoms.
|
|
45
46
|
Do not invent findings to satisfy a quota. Explain which surfaces were checked and which remain
|
|
46
47
|
unverified; a blanket approval is insufficient.
|
|
47
48
|
|
|
@@ -78,7 +79,8 @@ Choose **PASS** only when the statement has adequate source/intent coverage and
|
|
|
78
79
|
semantic corrections remain. Choose **APPROVE-WITH-EDITS** only when every necessary change can be
|
|
79
80
|
named exhaustively as a bounded edit and no missing authority remains. Use **REVISE** for
|
|
80
81
|
substantive statement correction and **BLOCKED** for missing or ambiguous evidence. Findings may be
|
|
81
|
-
empty
|
|
82
|
+
empty only for PASS or BLOCKED; APPROVE-WITH-EDITS and REVISE require at least one finding.
|
|
83
|
+
Coverage and Evidence remain substantive.
|
|
82
84
|
|
|
83
85
|
The reviewer response is immutable and the reviewer never edits the specification. The separate
|
|
84
86
|
authoring seat (`lean-specify`) re-checks findings and writes `triage.md`. For
|