Gap
src/interop/ currently ships 4 vendor-md generators — agents.ts, claude.ts, cursorrules.ts, gemini.ts. The fifth — GROK.md — is missing.
Memory entry faf-cli-interop-vendor-md-generation-ready.md lists Grok as a supported vendor; the code doesn't match the doctrine.
Scope
One new file: src/interop/grok.ts, following the micro-faf placeholder pattern:
- Canonical 2-line FAF stamp at the top (per
cross-ai-2-line-meta-stamp.md)
- Minimal body — name, one-line description, pointer to
project.faf
- No attempt to replicate full CLAUDE.md content — just enough for Grok agents to find their bearings when grepping the repo
Acts as a discoverable surface; the structured truth stays in project.faf.
Why now
- Closes the 5-vendor matrix (Claude / Gemini / Cursor / Agents / Grok)
- Symmetric with the existing 4 generators — same
fafMetaTag(data) 2-line stamp, same lines.push(...) pattern
- Resolves a documented memory↔code mismatch
- Adjacent to the existing FAF↔xAI /
grok-faf-mcp thread
Affected
- New:
src/interop/grok.ts
- Wire-up: wherever
agents.ts / gemini.ts are registered (likely src/commands/export.ts)
- Test:
tests/interop/grok.test.ts — stamp shape + content invariants
Out of scope
- Full Grok-specific prose surface (deferred — placeholder first, content later if Grok evolves a richer convention)
Gap
src/interop/currently ships 4 vendor-md generators —agents.ts,claude.ts,cursorrules.ts,gemini.ts. The fifth — GROK.md — is missing.Memory entry
faf-cli-interop-vendor-md-generation-ready.mdlists Grok as a supported vendor; the code doesn't match the doctrine.Scope
One new file:
src/interop/grok.ts, following the micro-faf placeholder pattern:cross-ai-2-line-meta-stamp.md)project.fafActs as a discoverable surface; the structured truth stays in
project.faf.Why now
fafMetaTag(data)2-line stamp, samelines.push(...)patterngrok-faf-mcpthreadAffected
src/interop/grok.tsagents.ts/gemini.tsare registered (likelysrc/commands/export.ts)tests/interop/grok.test.ts— stamp shape + content invariantsOut of scope