skills/fs-mcp/SKILL.md
Usage `rdc:fs-mcp <task>` — Use the File System MCP bridge for live repo reads, safe writes, cloud-to-local ingest, and GitHub-branch imports into a dirty local monorepo. Use when Claude.ai, Cowork, or CLI agents need fs_read/fs_write/fs_import_git_files guidance.
npx skillsauth add LIFEAI/rdc-skills rdc:fs-mcpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
⚠️ OUTPUT CONTRACT (READ FIRST):
guides/output-contract.mdChecklist-only output. No tool-call narration. No raw MCP/JSON/log dumps. One checklist upfront, updated in place, shown again at end with a 1-line verdict.
{PROJECT_ROOT} through the File System MCP.rdc:fs-mcp read — choose the right read/search/list tool.rdc:fs-mcp write — choose direct write, chunked write, append, or URL ingest.rdc:fs-mcp import-git — import named files from a GitHub branch/commit into local dev.rdc:fs-mcp status — inspect mounts and repo state before deciding.Classify the file before writing:
| Intent | Default path | Default action |
|---|---|---|
| Live repo read | Existing repo path | fs_read, fs_grep, fs_glob, fs_list |
| Small scratch or relay file | .rdc/relay/, .codex/tmp/, agreed temp path | fs_write |
| Large text file from the current chat | Target path | fs_write_chunk |
| Cloud-hosted file | Target path | fs_ingest_url |
| Durable new docs/corpus file from Claude.ai | Actual target path in docs/**, .rdc/plans/**, .claude/context/** | GitHub branch commit, then fs_import_git_files |
| Existing file update | Existing repo path | Prefer patch/review workflow; do not overwrite unless explicitly requested |
Use FS MCP first for local state:
fs_read CLAUDE.md
fs_glob docs/**/*.md
fs_grep "bridge mode" docs/
fs_list .rdc/relay/from-claude-code/
Use GitHub for remote branch/file history, PRs, and durable publication. Use FS for the current local worktree.
Use direct FS writes only when the payload is small and the destination is clear:
fs_write path=".rdc/relay/from-claude-ai/<timestamp>-topic.md"
Use chunked writes for larger text:
fs_write_chunk upload_id="<stable-id>" path="docs/plans/foo.md" chunk_index=0 total_chunks=3 content="..."
fs_write_chunk upload_id="<stable-id>" path="docs/plans/foo.md" chunk_index=1 total_chunks=3 content="..."
fs_write_chunk upload_id="<stable-id>" path="docs/plans/foo.md" chunk_index=2 total_chunks=3 content="..."
Use URL ingest when the file already exists in cloud storage:
fs_ingest_url url="https://..." path="docs/source/file.md" expected_sha256="<optional>"
Use guarded append when appending to a known file:
fs_stat path="docs/plans/foo.md"
fs_append path="docs/plans/foo.md" content="\n..." expected_sha256="<hash from fs_stat>"
When Claude.ai creates a durable new docs/corpus file, publish it to a GitHub branch first, then ask FS MCP to import the exact file path.
Required Claude.ai handoff shape:
{
"repo": "<owner>/<repo>",
"remote": "origin",
"ref": "claude-ai/docs-upload-123",
"paths": ["docs/plans/foo.md"],
"mode": "new_only",
"commit": true,
"message": "docs(plans): add foo"
}
Then call:
fs_import_git_files remote="origin" ref="claude-ai/docs-upload-123" paths=["docs/plans/foo.md"] mode="new_only" commit=true message="docs(plans): add foo"
This tool must fetch only, restore only named paths, optionally commit only those paths, and never push.
git pull for the dirty monorepo.new_only for Git imports.Report:
FS MCP: <read/write/import> complete
Paths: <paths>
Source ref/commit: <if Git import>
Local commit: <if committed>
Verification: <fs_stat/hash or import result>
Blocked/conflicts: <none or list>
tools
Convert Office documents to/from Markdown with the build-corpus CLI: .docx/.pptx/.ppt → Markdown (Word OMML equations become KaTeX-readable TeX; tables, images, headings preserved), and Markdown → Word (.docx) where inline $...$ and display $$...$$ LaTeX become NATIVE Office Math (OMML) that Word renders as real equations. Use this skill whenever the user asks to convert a Word/PowerPoint document to Markdown, build a Markdown corpus from Office files, turn Markdown into a .docx (optionally with a .dotx template), or "open the report" to edit. Install build-corpus straight from GitHub and run it in the session.
development
Usage `rdc:brochure <input> [--out <path>] [--template <name>] [--format Letter|A4]` — Turn a zip, folder, HTML file, URL, or markdown folder into a print-quality PDF brochure via Puppeteer. Auto-detects print-variant HTML, honors @page CSS, falls back to a Studio-token-aware template when no HTML exists.
tools
Usage `rdc:convert <input> [--out <dir>] [--to markdown|word] [--images assets|base64|s3]` — Convert .docx/.pptx/.ppt → Markdown (Word OMML equations as KaTeX TeX, tables, images) or Markdown → Word via the build-corpus CLI (PyPI `build-corpus`, npm `regen-mde`). Portable: runs in any session that can reach npm or PyPI — Claude Code CLI and claude.ai both fetch + run it. Use whenever the user asks to convert an Office document, build a Markdown corpus from .docx/.pptx, turn Markdown into a .docx, or 'open the report' in the regen-mde editor (Windows).
development
Usage `rdc:co-develop <ask|reply|inbox|start|resume|status>` — peer-aware Claude/Codex co-development over clauth, with ask --wait as the default delegation pattern.