Coding Friend

Coding Friend adds skills, agents, and hooks to Claude Code, Codex, and the agents you already use — plan, implement, review, ship, with project memory underneath.

💡 If you have problems with CF, use /cf-help to get help or ask in the GitHub Discussions.

✨ Latest changes

plugin v0.46.02026-10-05

  • Add Devin CLI (beta) as a new host: generated plugin-devin/ artifact (Claude layout with a Devin-shaped hooks/hooks.json, a root .mcp.json for the memory MCP, skills and agents adapted to Devin), installable with devin plugins install dinhanhthi/coding-friend#plugin-devin #13b0bb1a #d5c8ac52
  • Add *.devin.* hook adapters: auto-approve.devin.cjs (PermissionRequest, deterministic rules only; unknown calls defer to Devin's native prompt), block-adapter.devin.sh (turns privacy-block / scout-block denials into Devin's exit-2 block contract), rules-reminder.devin.sh and memory-capture.devin.sh (JSON additionalContext; memory capture runs on the first prompt after compaction because Devin does not deliver PostCompaction context) #d5c8ac52
+2 more
  • session-init.sh accepts CF_HOST=devin and adds a PLUGIN_ROOT: line to the bootstrap context for Devin, whose skill bodies cannot read ${CLAUDE_PLUGIN_ROOT} #d5c8ac52
  • /cf-help and the bootstrap context list Devin and its known differences #d5c8ac52 #b9c4de4f

cli v1.42.02026-10-05

  • Add --agent devin / --devin (Devin CLI, beta) to install/uninstall/enable/disable/init/update/permission/status; cf drives the devin plugins commands: GitHub #plugin-devin subdir in production, a live --local link of plugin-devin/ in dev mode (cf dev on) #76e4d5fd
  • cf update --agent devin switches between the dev link and the GitHub install, and replaces only installs from our own sources; a foreign install (e.g. #plugin) still needs cf install --devin, which replaces it and prints a cloud-sync notice #76e4d5fd #f89e3c6a
+2 more
  • cf init --agent devin runs a Devin wizard and registers the learn MCP in ~/.config/devin/mcp_config.json (memory MCP ships inside the plugin); the file is written atomically with mode 0600 and an invalid-JSON config is never overwritten #6dd82f16 #f89e3c6a
  • cf enable / cf disable --agent devin print guidance (Devin has no per-plugin toggle), cf status shows a Devin row, cf mcp reports the plugin MCP, cf permission --agent devin is supported #3ffd4ea5

All releases →

Coding Friend adds skills, agents, and hooks to the tools you already use. You get plan → implement → review → commit, with project knowledge in docs/ and learning notes in ~/.coding-friend/learn/. A memory system runs underneath, along with useful hooks and mechanisms to protect your privacy and security.

How Coding Friend works: you invoke /cf-* skills, skills dispatch agents, agents write to your repo; hooks intercept skills, agents record to docs/, and CF Memory (MCP) reads and writes docs/How Coding Friend works: you invoke /cf-* skills, skills dispatch agents, agents write to your repo; hooks intercept skills, agents record to docs/, and CF Memory (MCP) reads and writes docs/

Harness only

Without CF

You can only rely on the harness and default settings of the tool you’re using, or sometimes no harness at all. Even small tool changes can affect your usual workflow without you noticing.

Standards · memory

With CF

Besides the harness for the tool you’re using, CF suggests best-practice standards for daily workflows—from planning and code reviews to bug fixes, research, and optimization. CF also includes a memory system that helps agents avoid spending too many tokens on topics they’ve worked on before. You can also build a learning hub for readers as you work with CF; the system will help summarize everything and turn it into a polished website.

🤝 Supported Tools

Coding Friend installs on the host you already use.

HostSupportCommandNotes
Claude Code100%cf installDefault.
oh-my-pi95%cf install --agent ompBeta. Skills come from the Claude plugin cache.
Devin CLI86%cf install --agent devinBeta. Requires devin >= 3000.11.3. Deferred memory auto-capture.
Codex77%cf install --agent codexBeta. Invoke as $cf-*. Partial hooks and auto-approve.
Antigravity73%cf install --agent agyBeta. Requires agy >= 1.1.0. No memory auto-capture.
Cursor100%comes with ClaudeRuns Claude Code / Codex underneath.
Grok Build100%comes with ClaudeSame as Cursor.
ZCode100%via github marketplacenot tested 100%

% = Claude is a baseline with all skills, agents, hooks. Some are Claude only: statusline, session save/restore (/cf-session), and task tracking. Other hosts ship their own equivalents, so they are not counted.

📦 Install

Copy and paste this prompt into your AI agent — it will read the documentation and set up everything automatically:

Install Coding Friend from https://cf.dinh.work on my system. First read the installation documentation to understand what Coding Friend is and how to install it properly. Check if I have Node.js 20+, install coding-friend-cli globally, then install the plugin for my current AI agent (auto-detect: Claude Code, Codex, oh-my-pi, Antigravity, Devin CLI, etc.). After installation, initialize the project with cf init. Guide me through the entire process and verify everything works correctly.

📋 Manual Installation

You need Node 20+ and a supported host.

npm i -g coding-friend-cli
# If `cf` is taken, use `cdf`

cf install               # Claude Code (default)
cf install --agent codex # or 'omp', 'agy', 'devin'

cf init                  # per project: docs/, .coding-friend/config.json
cf update                # later: pull the newest plugin

# Need help?
cf help

# Get Started in any project
cf init

Scope with --user | --project | --local. Host aliases: --codex / --omp / --agy / --devin. Then use /cf-help inside your agent to ask anything about CF.

Via Plugin Manager

plugin marketplace add dinhanhthi/coding-friend
plugin install coding-friend@coding-friend-marketplace

Devin CLI (beta): devin plugins install dinhanhthi/coding-friend#plugin-devin installs the generated plugin-devin/ directly. Inside Devin, invoke skills bare or namespaced — /cf-plan or /coding-friend:cf-plan.

After cf init or working with CF, a folder docs/ is created inside your project with nested folders for plans, memory, research, reviews,... and more.

✨ Features

Skills are slash commands (/cf-*) or auto-invoked when a matching situation appears. Settings that live in config.json — run cf config and follow the instructions there. To extend a built-in skill, see Custom Guides.

🔁 Workflow

You plan, implement, review, commit, then ship. Bugs loop through /cf-fix and cf-sys-debug.

The daily workflow: /cf-plan hands tasks to cf-tdd/implement, the diff goes to /cf-review, then /cf-commit and /cf-ship; under the hood cf-explorer and cf-planner serve /cf-plan, cf-implementer runs tasks, cf-reviewer reviews the diff itself, cf-writer writes docs; bugs loop through /cf-fix and cf-sys-debug; after the merge, cf-verification, /cf-remember, and /cf-learn runThe daily workflow: /cf-plan hands tasks to cf-tdd/implement, the diff goes to /cf-review, then /cf-commit and /cf-ship; under the hood cf-explorer and cf-planner serve /cf-plan, cf-implementer runs tasks, cf-reviewer reviews the diff itself, cf-writer writes docs; bugs loop through /cf-fix and cf-sys-debug; after the merge, cf-verification, /cf-remember, and /cf-learn run

🗺️ Plan & build

  • /cf-plan (source) — Brainstorms with you, then writes a phased plan under docs/plans/<plan-name>/ (plus brief.md with the original request and Q&A in normal/hard mode). Under the hood: cf-explorer maps the repo, cf-planner compares approaches, then cf-implementer runs each task. Each phase stays reviewable (at most 15 files) without over-splitting (fewest phases that fit, normally 3+ tasks each), so reviews stay fast and cheap. Available modes:

    • (none) — normal: full workflow, writes the plan file
    • --fast / --quick — skip discovery and the planner; plan stays in chat, no file. If the plan turns multi-phase it switches to normal and writes the file. Combined with autopilot (--auto or planAuto), the file is always written
    • --hard — extra discovery plus rollback planning
    • --auto — after approval, run every phase (review, fix Critical/Important, commit) with no prompts; combines with any mode. Also on when config planAuto: true unless --no-auto
    • --no-auto — force autopilot off for this run, even if planAuto: true
    • --commit-per-task — with autopilot, commit each task as phase N/M task i/K <title> and review once per phase over those commits; [parallel] phases run sequentially. Also on when config planCommitPerTask: true
    • --no-commit-per-task — force commit-per-task off for this run, even if planCommitPerTask: true
    • --inline / --no-file — plan in chat only, no file; cannot combine with autopilot (--auto or planAuto)
    • --model <alias> — pin cf-planner (opus / sonnet / haiku / fable); ignored in fast
    • --gui / --human — also write a human overview doc (off by default). To turn that doc on for every run, use cf config
    • --add-tests / --tdd — not a plan mode; forwarded to every cf-implementer so each task uses TDD. Without it, implementers write code with no new tests

    Example output:

    Progress
    
    | Status         | Phase             | Tasks   |
    | -------------- | ----------------- | ------- |
    | ✅ DONE        | Phase 1: Teardown | 3 tasks |
    | 🔄 IN PROGRESS | Phase 4: Content  | 6 tasks |
    | ⬜ TODO        | Phase 5: Merge    | 1 task  |
    
    #### Phase 1 [sequential]
    
  • /cf-plan-resume (source) — Reloads a saved plan and its context file, skips DONE tasks, re-runs the rest via the same execute protocol. If the plan has auto: true and an AUTOPILOT section, it continues in autopilot, honoring frontmatter commitPerTask: true; --commit-per-task / --no-commit-per-task override it.

  • /cf-plan-review (source) — Reviews a saved plan folder with a fresh in-session reviewer before you implement it; --codex / --gemini / --claude / --cursor / --grok add external reviewers in parallel and merge. --fix (--inline) applies Critical/Important findings immediately. Writes review.md next to the plan and, without --fix, offers to apply Critical/Important findings.

  • /cf-advise (source) — Interviews one question at a time, then a verdict-first recommendation with pitfalls and ranked alternatives. Never writes code or a plan. Flags: --quick / --fast (2–3 questions), --save (write to docs/memory/decisions/).

  • /cf-design (beta) (source) — Makes new or changed UI match the project's existing look. The first word of the argument picks the mode (empty → it asks which one):

    • scan [path] — read existing UI files, extract colors / type / spacing / components, write docs/DESIGN.md
    • [description] — implement new UI from that description, using docs/DESIGN.md (or a fresh scan) as the base
    • modify [what] -- [how] — change one element and keep it consistent with the rest of the project
  • /cf-showcase (source) — Builds an intro video (mp4) or poster (png / pdf / html) from the project's real content into docs/showcase/. The agent invents the concept itself (no fixed scene order, scene types or style) and only asks practical questions: length, language, aspect or size, output format, what to emphasize, audio. --video / --poster skip the format question. Video is 30s by default; above 90s it warns about file size and render time, then lets you decide.

  • /cf-optimize (source) — Detects available profilers, measures a baseline, changes one thing, re-measures, compares.

🐛 Fix & debug

  • /cf-fix (source) — Reproduces the bug, searches past bug docs, explores, fixes, verifies, then reviews. Escalates hard bugs to cf-sys-debug. --add-tests (or --tdd) writes a failing test first when none exists.

    Example output:

    > ✨ **CODING FRIEND** → /cf-fix activated
    
    Root cause:   [what was wrong, file:line]
    Fix:          [what changed, file:line]
    Confirmed:    [evidence or test that proves the fix]
    Tests:        [pass/fail count, regression test location]
    Status: DONE
    
  • cf-sys-debug (source) — Four phases: state a file:line hypothesis before touching code, test it, apply a regression-guarded fix, write a bug doc. Auto-invoked for recurring or unclear bugs.

  • cf-tdd (source) — Auto-loaded before production code. Direct mode (default) writes no new tests. TDD mode is --add-tests or --tdd, or tdd: true via cf config. --auto then reviews, fixes Critical/Important, and commits.

  • cf-verification (source) — Auto-invoked after code changes. Runs tests / build / lint, shows the output, and blocks a "done" claim without evidence.

🚀 Review & ship

  • /cf-review (source) — Snapshots the diff and hands it to cf-reviewer, which checks all five layers: project rules, plan alignment, correctness, security, tests.

    • Depth — auto from change size, or force with --quick / --deep:
      • TRIVIAL — no reviewer: ≤2 files and ≤20 lines, no sensitive paths, only a secrets check (skipped when you pass --quick / --deep)
      • QUICK / STANDARD — 1 reviewer
      • DEEP — 2 reviewers (cf-reviewer-security joins in parallel)
    • External reviewers (opt-in, run in parallel, merged into the same report):
      • --with-codex / --codex, --claude, --gemini, --cursor, --grok
      • --out — write a /cf-review-out prompt instead (not with the flags above)
      • Codex on by default: cf config
    • Fix & commit:
      • --fix — apply Critical/Important findings, then re-review (up to review.maxRounds, default 5)
      • --commit — implies --fix; commits only the reviewed paths once clean, after a secret scan; stops on a pre-commit hook failure
      • Neither works with a commit-range target or --out
    • Report — always ends with Review status: COMPLETE | PARTIAL | FAILED
      • COMPLETE = full coverage, not "no findings"
      • PARTIAL / FAILED stops an autopilot commit
    • Timeouts:
      • review.nativeTimeout (600s) — soft budget for in-session reviewers
      • review.agentTimeout (300s) — hard limit on each external reviewer
    • Specialists — one generalist is a trade-off, not a free win. cf-reviewer-plan, -quality, -tests, -rules, and -reducer stay directly callable when a layer deserves its own pass.

    Example output:

    🚨 Critical
    - None.
    
    ⚠️ Important
    - None.
    
    💡 Suggestions
    - None.
    
    📋 Summary
    No blocking issues found. You're clear to commit.
    Review status: COMPLETE
    
  • /cf-review-out (source) — Writes a self-contained prompt + diff to docs/reviews/ for any external AI or a human.

  • /cf-review-in (source) — Reads that result file, presents findings, offers to fix.

  • /cf-commit (source) — Analyzes the diff, soft-review check, conventional commit focused on why.

  • /cf-ship (source) — Verify → commit → push → PR. --dry-run simulates and does not commit, push, or open a PR. Custom Before guides run first (for example a version bump).

External review: /cf-review runs --codex, --gemini, --cursor, or --grok in parallel and merges; or hand off manually — /cf-review-out writes a prompt for any AI, /cf-review-in reads the results backExternal review: /cf-review runs --codex, --gemini, --cursor, or --grok in parallel and merges; or hand off manually — /cf-review-out writes a prompt for any AI, /cf-review-in reads the results back

💡 Knowledge

  • /cf-ask (source) — Explores the codebase (cf-explorer), answers a focused question, saves the Q&A to docs/memory/.
  • /cf-scan (source) — Token-heavy project scan; writes architecture, conventions, and stack into memory (updates, does not duplicate).
  • /cf-remember (source) — Extracts conversation knowledge into docs/memory/ (bugs, decisions, conventions, features) for later AI recall. Also auto-invoked.
  • /cf-learn (source) — Writes educational notes for you (default ~/.coding-friend/learn/). Host with cf learn host or share with cf mcp. Output, language, and related settings: cf config. Run cf learn host and you get a site like this: Learn host
  • /cf-teach (source) — Conversational story of what happened and why. Writes under docs/learn by default (not the same folder as /cf-learn). Language and output: cf config.
  • /cf-research (source) — Parallel web / subagent research → docs/research/. Does not plan or build.

📌 Context & session

  • /cf-session (beta) (source) — Claude only. Saves the session to docs/sessions/ so you can restore it on another machine.
  • /cf-checkpoint (source) — Writes a resume snapshot (goal, decisions, next steps) to docs/context/checkpoints/.
  • /cf-checkpoint-from (source) — Loads that snapshot into a fresh chat, then does the rest of the message. --recap also prints a short summary of the restored context.
  • /cf-warm (source) — Reads git history since you were away, groups it by topic, writes docs/warm/. --user <name> (else git config user.name), --n-commits <N> (default 10).
  • /cf-later-do (source) — Lists docs/later/ items, you pick one, routes to /cf-fix or /cf-plan, deletes the file only after the fix is verified.

❓ Help

  • /cf-help (source) — Ask anything about Coding Friend: skills, flags, agents, hooks, CLI, config, memory, hosts. Also auto-invoked when you ask about the toolkit itself.

🧠 Memory

Every session starts from scratch. CF Memory is persistent, searchable project knowledge. Markdown in docs/memory/ is the source of truth. Three search tiers degrade gracefully (SQLite → MiniSearch → grep). Use it from other LLM tools via the MCP server (cf mcp). Run cf config for tier, embeddings, and capture.

CF Memory architecture: a Claude Code session calls the MCP server over stdio; searches go direct to tier 1 SQLite (FTS5 + vectors), over HTTP/UDS to the Hono daemon serving tier 2 MiniSearch (BM25 + fuzzy), or direct to tier 3 grep; SQLite falls back to the daemon and the daemon falls back to grep; all three tiers read the markdown files in docs/memory/CF Memory architecture: a Claude Code session calls the MCP server over stdio; searches go direct to tier 1 SQLite (FTS5 + vectors), over HTTP/UDS to the Hono daemon serving tier 2 MiniSearch (BM25 + fuzzy), or direct to tier 3 grep; SQLite falls back to the daemon and the daemon falls back to grep; all three tiers read the markdown files in docs/memory/

✅ Auto-approve

Permission gate that auto-approves safe tool calls and working-dir edits. Unknown tools defer to Claude's native permission flow / auto mode unless you opt in to the LLM classifier via autoApproveLLM. Run cf config.

Auto-approve pipeline: rule-based checks, then working-dir checks, then the opt-in LLM classifier (Claude only)Auto-approve pipeline: rule-based checks, then working-dir checks, then the opt-in LLM classifier (Claude only)

  • Rule-Based Gate: Instant pattern matching — read-only tools auto-approved, destructive commands blocked.
  • Working-Dir Edits: File edits (Write/Edit) inside your project directory are auto-approved.
  • Test Runners: npm test, pnpm exec playwright test, pytest, go test, cargo test, mvn test, rspec and friends are always auto-approved, in every language — including piped and chained forms like npm test 2>&1 | tail -50, as long as every other segment is safe too. Re-gate them with autoApproveIgnore.
  • LLM Classifier: Opt-in via autoApproveLLM (default false). When off, unknown tools emit no hook decision and defer to Claude's native permission flow / auto mode. When on, CF shells out to claude --print --model sonnet. Claude only — Codex already has Smart Approvals / --approve-for-me, AGY remembers approvals per chat; spawning those models from a hook would deadlock or race native. Grok / Cursor have no CF hook adapter.

You can extend the Bash allow/deny lists in config:

{
  "autoApprove": true,
  // extra command prefixes to auto-approve. Merged across global + local
  "autoApproveAllowExtra": ["cargo check", "terraform plan"],
  // use below setting to bypass CF auto-approve and let Claude Code handle them.
  // this is also how you re-gate test runners
  "autoApproveIgnore": ["cargo test", "cargo build"],
  // opt-in Sonnet classifier for unknown tools (default: defer to Claude native)
  "autoApproveLLM": false
}

⚠️ Not 100% safe: CF auto-approve is an additional layer that helps reduce prompts, but it doesn't guarantee 100% safety. You can still trigger unsafe actions if you use the wrong command or if the LLM classifier (when enabled) makes a mistake.

🛡️ Security

Layered prompt-injection defense. Three layers: isolation, extraction, then alert. Fetched content is data, never instructions.

Security layers: isolation of fetched content as data, extraction of facts only, then alert on injection attemptsSecurity layers: isolation of fetched content as data, extraction of facts only, then alert on injection attempts

  • Isolation: External content flagged as untrusted data — never treated as instructions.
  • Extraction: Only facts and information extracted — embedded commands discarded.
  • Alert: Suspicious content flagged to user — prompt injection attempts exposed.

📟 Statusline

Claude only. Run cf statusline to install the renderer.

Statusline

🧭 Agents

Skills dispatch agents as subagents that run in their own context.

AgentModelDoesDispatched by
cf-explorer (source)haikuMaps the repo and writes context files/cf-plan, /cf-fix, /cf-ask, /cf-advise, /cf-optimize, /cf-research, /cf-scan, /cf-showcase
cf-planner (source)inheritCompares approaches and breaks work into tasks/cf-plan
cf-implementer (source)inheritWrites the code (TDD with --add-tests)/cf-plan, /cf-plan-resume, /cf-fix, /cf-optimize, /cf-review --fix, cf-tdd
cf-reviewer (source)inheritReviews the diff across all five layers/cf-review (1 QUICK, 1 STANDARD, 2 DEEP)
cf-reviewer-plan (source)sonnetChecks the diff against the plandirect call only
cf-reviewer-security (source)sonnetFinds security issues in the diff/cf-review in DEEP (2nd reviewer)
cf-reviewer-quality (source)haikuNames, complexity, duplication, slopdirect call only
cf-reviewer-tests (source)haikuCoverage and missing testsdirect call only
cf-reviewer-rules (source)haikuCLAUDE.md MUST/SHOULD/ALWAYS/NEVERdirect call only
cf-reviewer-reducer (source)haikuDeduplicates and ranks findings/cf-plan-review (merges external reviews) — /cf-review merges inline
cf-writer (source)haikuWrites straightforward markdown/cf-learn, /cf-remember, /cf-scan, /cf-fix, /cf-ask, /cf-advise, /cf-sys-debug, /cf-warm
cf-writer-deep (source)sonnetWrites deep technical docs/cf-learn, /cf-teach, /cf-plan (overview), /cf-remember, /cf-scan

📘 Custom Guides

Extend a built-in skill without editing the plugin. When that skill runs, CF loads your guide (if one exists) and applies its sections: ## Before before the first step, ## Rules throughout, ## After after the last step. Sections are optional — include only what you need.

cf guide create cf-commit   # scaffolds the local file
cf guide list               # local guides in this project

cf guide create writes a project file. The skill name must match a built-in skill (cf-commit, cf-plan, …). It will not overwrite an existing guide.

ScopePathWho it applies to
Local.coding-friend/skills/<skill-name>-custom/SKILL.mdThis project. Wins if both exist.
Global~/.coding-friend/skills/<skill-name>-custom/SKILL.mdAll projects. Create this file yourself.

Local and global are not merged — if the local file exists, the global one is ignored. The loader resolves the path from the git project root, so it still works if your shell is in a subdirectory.

Example — .coding-friend/skills/cf-commit-custom/SKILL.md:

## Before

- Check branch naming convention (must match `feat/XX-*` or `fix/XX-*`)

## Rules

- Always include the JIRA ticket from the branch name in the commit subject

## After

- Run tests if the commit type is `feat:` or `fix:`

The next time you run /cf-commit, that guide is loaded. No /clear needed.

⚙️ Config

You have two config files. Global is ~/.coding-friend/config.json. Project is .coding-friend/config.json — local overrides global at the same top-level keys.

// Some examples
{
  "language": "en",
  "docsDir": "docs",
  "tdd": false,
  "planAuto": false,
  "planCommitPerTask": false,
  "autoApprove": false,
  "autoApproveLLM": false,
  "review": {
    "withCodex": false,
    "maxRounds": 5
  },
  "memory": {
    "autoCapture": false
  },
  "learn": {
    "outputDir": "~/.coding-friend/learn"
  }
}

Learn notes default to ~/.coding-friend/learn/ (learn.outputDir is configurable). docsDir is for plans, memory, and research — not the default learn output.

KeyDescription
languageLanguage for docs (plans, memory, research, ask). Default: en.
docsDirBase docs directory relative to project root (plans, memory, research). Default: docs. Not the default learn output.
autoApproveEnable the auto-approve hook. Default: false.
autoApproveLLMOpt-in Sonnet classifier for unknown tools (Claude only). Default: false — unknowns defer to Claude native / auto.
privacyBlockPrivacy-block hook (deny .env, keys, credentials). Default: true.
scoutBlockScout-block hook (deny ignored dirs). Default: true.
autoApproveAllowExtraBash command prefixes to auto-approve (merged across global + local).
autoApproveIgnoreBash command prefixes to always require user review.
disableGUIPlanDisable the human overview doc /cf-plan generates. Default: true.
guiPlanFormatFormat for the GUI plan: html or md. Default: html.
learnLearn settings: language, outputDir, categories. Default outputDir: ~/.coding-friend/learn.
reviewReview settings. Nested object; withCodex runs a Codex second opinion; withClaude / withGrok / withCursor / withGemini add that headless external reviewer (all default false); agentTimeout (default 300) is enforced on each external reviewer subprocess; nativeTimeout (default 600) is a cooperative budget for each in-session reviewer job; maxRounds (default 5) caps the autopilot review-fix loop and the /cf-review --fix loop.
tddBoolean. Enable TDD (RED→GREEN→REFACTOR) by default.
planAutoBoolean. Default /cf-plan into autopilot without --auto. --no-auto forces off. /cf-plan-resume ignores this key. Default: false.
planCommitPerTaskBoolean. Under /cf-plan autopilot, commit each task separately and review once per phase (range review, so review.with* external reviewers do not run). Ignored without autopilot. --no-commit-per-task forces off. /cf-plan-resume ignores this key but honors frontmatter commitPerTask: true and accepts --commit-per-task / --no-commit-per-task. Default: false.
memoryObject. MemoryConfig for search tier, embeddings, and capture.

memory (MemoryConfig) keys:

  • tier — "auto", "full", "lite", or "markdown".
  • embedding — object with provider ("transformers" or "ollama"), model, and ollamaUrl.
  • autoCapture — boolean. Save session context on PreCompact.
  • autoStart — boolean. Start the memory daemon when the MCP server connects.

List gitignore-style paths in .coding-friend/ignore so scout-block skips them.