|
1 | 1 | --- |
2 | | -description: "Migrate legacy FPF structure" |
| 2 | +description: "Reconcile the project's FPF state with recent repository changes." |
3 | 3 | --- |
4 | 4 |
|
5 | | -# Actualize |
| 5 | +# Actualize Knowledge Base |
| 6 | + |
| 7 | +This command is a core part of maintaining a living assurance case. It helps you keep your FPF knowledge base (`.quint/`) in sync with the evolving reality of your project's codebase. |
| 8 | + |
| 9 | +The command performs a three-part audit against recent git changes to surface potential context drift, stale evidence, and outdated decisions. This aligns with the **Observe** phase of the FPF Canonical Evolution Loop (B.4) and helps manage **Epistemic Debt** (B.3.4). |
| 10 | + |
| 11 | +The LLM persona for this command is the **Actualizer**. |
6 | 12 |
|
7 | 13 | ## Instruction |
8 | | -1. **Action:** |
9 | | - - Call `quint_actualize` (mapped to `tools.Actualize` in binary). |
10 | | - - This migrates `.fpf` folders to `.quint`. |
| 14 | + |
| 15 | +1. **Identify Baseline for Changes:** |
| 16 | + - The Actualizer will first determine the set of recent changes to analyze. It will look for a baseline commit hash in `.quint/state/actualize.log`. |
| 17 | + - If the file doesn't exist, it will ask you to choose a baseline: the latest git tag, a specific commit hash, or a time window (e.g., "last 7 days"). |
| 18 | + - It will then generate a list of all files that have changed between the baseline and the current `HEAD`. |
| 19 | + |
| 20 | +2. **Analyze Context Drift:** |
| 21 | + - The Actualizer will check if any core project configuration files (e.g., `package.json`, `go.mod`, `Dockerfile`, `pom.xml`) are in the list of changed files. |
| 22 | + - If they are, it will re-run the context analysis logic from `/q0-init` to generate a "current context" summary. |
| 23 | + - It will then present a diff between the detected current context and the contents of `.quint/context.md`. |
| 24 | + - It will ask you if you want to update the `context.md` file. |
| 25 | + |
| 26 | +3. **Analyze Evidence Staleness (Epistemic Debt):** |
| 27 | + - The Actualizer will scan all evidence files in `.quint/evidence/`. |
| 28 | + - For each piece of evidence that has a `carrier_ref` pointing to a file, it will check if that file has been modified in the recent git changes. |
| 29 | + - If a referenced file has changed, the evidence will be flagged as **stale**. |
| 30 | + - All stale evidence will be compiled into a "Stale Evidence Report," noting which hypotheses or decisions are affected by the potentially decayed evidence. |
| 31 | + |
| 32 | +4. **Analyze Decision Relevance:** |
| 33 | + - The Actualizer will examine all decision records (`DRR*`) in `.quint/decisions/`. |
| 34 | + - For each decision, it will trace its justification back through its supporting evidence to the original source files (`carrier_ref`). |
| 35 | + - If any of these foundational source files have changed, the decision record will be flagged as **"Potentially Outdated"**. |
| 36 | + - All such decisions will be compiled into a "Decisions to Review" report. |
| 37 | + |
| 38 | +5. **Present the Actualization Report:** |
| 39 | + - The Actualizer will summarize all findings for you in a clear, actionable report with three sections: |
| 40 | + - **Context Drift:** (if any) Shows a diff of `context.md` and prompts for action. |
| 41 | + - **Stale Evidence:** Lists all evidence files that need re-validation, suggesting the use of `/q3-validate`. |
| 42 | + - **Decisions to Review:** Lists all decisions that may no longer be valid, suggesting a new reasoning cycle (`/q1-hypothesize`) to re-evaluate them. |
| 43 | + |
| 44 | +6. **Update Baseline:** |
| 45 | + - After you have reviewed the report, the Actualizer will ask for confirmation to update the baseline. |
| 46 | + - Upon confirmation, it will execute a tool call to write the current `HEAD` commit hash into `.quint/state/actualize.log`, setting the baseline for the next run. |
0 commit comments