cf-scan

Solid

Scan project and populate memory with knowledge — architecture, conventions, tech stack, key features, infrastructure. Use when a project has no memories yet, or when the user wants to refresh/rebuild project understanding — e.g. "scan the project", "scan the codebase", "bootstrap memory", "initialize memory with project knowledge", "populate memory", "build project understanding", "scan this aspect", "analyze the project". This is a token-heavy operation — always warn the user before proceeding.

AI & Automation 3 stars 0 forks Updated today MIT

Install

View on GitHub

Quality Score: 79/100

Stars 20%
20
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# $cf-scan > **CLI Requirement:** OPTIONAL — Uses the memory MCP from `coding-friend-cli` for fast indexed search and storage. Without the CLI: falls back to grep over `docs/memory/` and direct file writes. Full functionality preserved, slower memory recall. See [CLI requirements](../../../docs/cli-requirements.md). Scan the project and bootstrap the memory system. User input: **$ARGUMENTS** ## Purpose New projects start with empty memory. This skill scans the codebase, extracts structured knowledge (architecture, conventions, tech stack, features, infrastructure), and stores it as memories. Safe to run multiple times — existing memories are updated, not duplicated. ## Folder Output goes to `{docsDir}/memory/` (default: `docs/memory/`). Check `.coding-friend/config.json` for custom `docsDir` if it exists. **IMPORTANT — path resolution:** - Use `MAIN_REPO_ROOT` from the SessionStart bootstrap context (injected via session-init.sh). If absent, fall back to running `pwd` for `$CWD` and use `$CWD` as `MAIN_REPO_ROOT`. - Read config from `CF_CONFIG_FILE` (= `$MAIN_REPO_ROOT/.coding-friend/config.json`) — do NOT search sub-folders - Use `CF_DOCS_ROOT` as the docs base dir (= `$MAIN_REPO_ROOT/{docsDir}` where `docsDir` comes from config, default `docs`) - Always resolve `file_path` as an **absolute path**: `{CF_DOCS_ROOT}/memory/{category}/{name}.md` - Never use relative paths in write specs — they may resolve incorrectly when the working directory contains nested git repos ...

Details

Author
dinhanhthi
Repository
dinhanhthi/coding-friend
Created
5 months ago
Last Updated
today
Language
TypeScript
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

cf-remember

Extract project knowledge from conversation to docs/memory — for AI recall in future sessions. Use when the user wants to save project context, capture decisions, document conventions, or preserve knowledge — e.g. "remember this", "save this to memory", "document what we did", "capture this decision", "write this down", "note this", "record this convention". Auto-invoke when: (1) a bug fix had a non-obvious root cause, a workaround, or took multiple attempts — save to bugs/; (2) an explicit architecture or approach decision was made — save to decisions/; (3) a new project-wide convention or pattern was established — save to conventions/; (4) a substantial session ends with new feature flows, non-obvious API behavior, or gotchas — save to features/. Do NOT auto-invoke for trivial fixes, simple config changes, or purely educational exchanges (use $cf-learn for those). Unlike $cf-learn (educational notes for humans), this saves project context for AI recall.

3 Updated today
dinhanhthi
AI & Automation Solid

cf-ask

Quick Q&A about codebase — explores code to answer, saves to docs/memory. Use when the user asks a focused question about the project — e.g. "how does X work?", "where is Y defined?", "what's the flow for Z?", "explain this module", "how are these connected?", "what pattern does this use?", "why is this done this way?". Unlike $cf-research (deep multi-doc output), this gives a single focused answer.

3 Updated today
dinhanhthi
AI & Automation Listed

memory-search

Searches the project's recorded memory (core-memory-kit) — decisions, conventions, architecture, the reasoning behind choices, and where things live — and returns a curated, cited summary. Fire whenever the answer might be something the project already established in past work, HOWEVER the question is phrased — any prior decision, convention, rationale, or "how/where/why is it this way" question, including oblique or roundabout asks ("why is everything so spread out?", "remind me what we settled on for X", "how come these files are tiny?"). Also fire when a "[core-memory-kit] Memory available" hint appears on the prompt. The examples are illustrative, not a checklist — prefer recalling over re-deriving an answer from the code. The session-start snapshot is a bounded index; this skill reaches the rest. Skip only when the question is purely about uncommitted or just-edited live code that memory cannot know, concerns this conversation only, or the user asked to ignore memory.

4 Updated today
LH8PPL