--- name: fpf:actualize description: "Reconcile the project's FPF state with recent repository changes" --- # Actualize Knowledge Base This command is a core part of maintaining a living assurance case. It keeps your FPF knowledge base (`.fpf/`) in sync with the evolving reality of your project's codebase. 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). ## Action (Run-Time) ### Step 1: Check Git Changes Run git commands to identify changes since last actualization: ```bash # Get current commit hash git rev-parse HEAD # Check for changes since last known baseline # (Read .fpf/.baseline file if it exists, otherwise use initial commit) git diff --name-only HEAD # List all changed files git diff --stat HEAD ``` ### Step 2: Analyze Report for Context Drift 1. Review changed files for core project configuration: - `package.json`, `go.mod`, `Cargo.toml`, `requirements.txt` - `Dockerfile`, `docker-compose.yml` - `.env.example`, config files 2. If configuration files changed: - Re-read project structure (README, config files) - Compare detected context with `.fpf/context.md` - Present diff to user 3. Ask user if they want to update `context.md` ### Step 3: Analyze Report for Evidence Staleness (Epistemic Debt) 1. Read all evidence files in `.fpf/evidence/` 2. Check `carrier_ref` field in each evidence file 3. Cross-reference with changed files from git diff 4. If a referenced file changed: - Flag the evidence as **STALE** - Note which hypothesis is affected ### Step 4: Analyze Report for Decision Relevance 1. Read all DRR files in `.fpf/decisions/` 2. Trace back to source evidence and hypothesis files 3. If foundational files changed: - Flag the DRR as **POTENTIALLY OUTDATED** ### Step 5: Update Baseline Create/update `.fpf/.baseline` file: ``` # FPF Actualization Baseline # Last actualized: 2025-01-15T16:00:00Z commit: abc123def456 ``` ### Step 6: Present Findings Output a structured report: ```markdown ## Actualization Report **Baseline**: abc123 (2025-01-10) **Current**: def456 (2025-01-15) **Files Changed**: 42 ### Context Drift The following configuration files have changed: - package.json (+5 dependencies) - Dockerfile (base image updated) **Action Required**: Review and update `.fpf/context.md` if constraints have changed. ### Stale Evidence (3 items) | Evidence | Hypothesis | Changed File | |----------|------------|--------------| | ev-benchmark-api | api-optimization | src/api/handler.ts | | ev-test-auth | auth-module | src/auth/login.ts | | ev-perf-db | db-indexing | migrations/002.sql | **Action Required**: Re-validate to refresh evidence for affected hypotheses. ### Decisions to Review (1 item) | DRR | Affected By | |-----|-------------| | DRR-2025-01-10-api-design | src/api/handler.ts changed | **Action Required**: Consider re-evaluating decision via `/fpf:propose-hypotheses`. ### Summary - Context drift detected: YES - Stale evidence: 3 items - Decisions to review: 1 item Run `/fpf:decay` for detailed freshness management. ``` ## File: .fpf/.baseline Track the last actualization point: ```yaml # FPF Actualization Baseline last_actualized: 2025-01-15T16:00:00Z commit: abc123def456789 branch: main ``` ## When to Run - **Before starting new work**: Ensure knowledge base is current - **After major changes**: Sync evidence with code changes - **Weekly maintenance**: Part of regular hygiene - **Before decisions**: Ensure evidence is still valid