Skip to content

feat(wip): refresh consolidation draft + content-drift slot-diff (banked v2)#75

Open
Wolfe-Jam wants to merge 4 commits into
mainfrom
feat/refresh-faf
Open

feat(wip): refresh consolidation draft + content-drift slot-diff (banked v2)#75
Wolfe-Jam wants to merge 4 commits into
mainfrom
feat/refresh-faf

Conversation

@Wolfe-Jam
Copy link
Copy Markdown
Owner

What

Banked-for-v2 building blocks (unwired — nothing imports them yet):

  • src/commands/refresh.ts — the faf-cli consolidation home for refresh (re-read → re-score → drift vs the .faf-dna baseline → re-compile .fafb → re-ground). Single-sources core/scorer + core/faf-dna + the WASM kernel.
  • src/core/slot-diff.ts — content-drift detection (the signal score-delta is blind to: slot value changed but score stable). Built on the canonical core/slots.ts (SLOTS + readSlotValue + isPlaceholder) — no regex, no duplicated placeholder list.

Why

refresh_faf shipped first in grok-faf-mcp (MCP ahead of faf-cli, by design); this is where it consolidates so every surface single-sources one implementation. The slot-diff is the spec behind grok-faf-mcp's WJTTC v1 skipped marker.

Receipts

  • slot-diff: 6/6 tests (tests/core/slot-diff.test.ts)
  • build clean (tsc -p tsconfig.build.json)
  • A grok_rules emitter placeholder was added then reverted — Grok CLI's convention is AGENTS.md, which faf-cli already generates (interop/agents.ts). The honest guess→ask→correct trail is in the history.

🤖 Generated with Claude Code

Wolfe-Jam and others added 4 commits May 28, 2026 15:33
…efresh_faf

Parked draft of `faf refresh` (the active re-ground primitive). NOT yet registered
in cli.ts — this is the Stage-2 consolidation home where refresh_faf settles so every
surface single-sources one implementation.

Flow: re-read the live .faf (interop) → re-score (core/scorer) → drift Δ vs the
.faf-dna baseline (FafDNAManager) → re-compile .fafb if present (wasm/kernel — the
Rust→WASM Foundry; faf-cli orchestrates, Rust authors) → re-ground → record on the
DNA journey. Includes the .fafb re-compile + DNA-baseline drift the grok-faf-mcp MVP
defers (MCP shipped ahead of faf-cli by design).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
diffFafSlots(baseline, current) — the content-drift signal score-delta is blind to
(slot value changed but score stable: backend Hono → Express keeps the score, shows
here as `changed`). Single-sources the slot model from core/slots.ts: canonical
SLOTS + readSlotValue + isPlaceholder. No regex, no duplicated placeholder list.

Relocated + rebuilt from the mcpaas-cf spike's crude regex version into faf-cli where
the slot model actually lives (the spike is reverted). Unwired — the building block
refresh content-drift will use, and the spec behind grok-faf-mcp's WJTTC v1 skipped
marker. 6/6 tests green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ion)

PLACEHOLDER, unwired. FAF projects project.faf to CLAUDE.md / AGENTS.md /
.cursorrules / GEMINI.md; this is the Nth target — grok_rules for Grok CLI — once
xAI confirms the convention. Mirrors gemini.ts so activation is a rename + format
tweak, not a rebuild. Filename/format/location flagged UNCONFIRMED; nothing imports
it yet (export.ts + a `faf grok` alias + a faf_grok MCP tool wire in after the spec).

Banked alongside the refresh + slot-diff drafts; pairs with the G1 question on the
grok_rules format.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The grok_rules guess (6df33c3) is falsified. Per Grok CLI's docs (confirmed by G1),
the supported per-project convention is AGENTS.md — which FAF ALREADY generates
(interop/agents.ts + the faf_agents tool). grok_rules / .grok/rules is not
standardized (nothing blessed). So the placeholder emitted a non-convention file.

FAF's Grok CLI coverage is the existing AGENTS.md (+ CLAUDE.md, which Grok also
reads). The real new work is the .grok/config.toml MCP auto-include (auto-wire
grok-faf-mcp's [mcp_servers] entry) — tracked separately, not a rules file.

This is the verify-don't-guess loop closing right: we guessed, asked before wiring,
got the authoritative answer, removed the guess.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
faf-cli Ready Ready Preview, Comment May 28, 2026 8:50pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant