export-md
Export a spec from the store as a GitHub-flavoured markdown file, plus a sidecar directory holding its diagrams.
Skill by NitinJ
Chalk Labs
Need help deploying export-md?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/nitinj-export-md
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Nov 1, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/export-md
Tools it pre-approves 3
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Read,Bash,Glob
What's inside
- Skill name
export-md- Description
- Export a spec from the store as a GitHub-flavoured markdown file, plus a sidecar directory holding its diagrams. Use when the user asks to "export this spec as markdown", "give me the .md", "put this spec in the repo", or wants a spec on a surface that speaks markdown (GitHub, an editor, another agent). The conversion is deterministic and needs no model: this skill picks the spec, runs the CLI, and reports where the file landed.
- License
- MIT
- Allowed tools
- Read,, Bash,, Glob
- Instructions
- 79 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
# export-md
Render a store spec as markdown. `${CLAUDE_PLUGIN_ROOT}` below denotes the
installed plugin directory. Claude and Pi export it; Codex provides the exact
value in SpecForge SessionStart context. Substitute it in every shell command.
## 1. Pick the spec
A store id is exactly one of:
- ten lowercase hex characters, `[0-9a-f]{10}` (it is `sha1(uuid)[:10]`), or
- `template-` followed by one of `general`, `design`, `research`, `design-impl`,
`impl`, `deck` — that list and nothing else.
**Check `$ARGUMENTS` against those two forms before it goes anywhere near a
shell.** The enumeration is the point: `template-<anything>` would let
`template-$(id)` through as identifier-shaped. Anything that does not match is
not an id, whatever it looks like. Treat it as a description and find the real id
with
```
node "${CLAUDE_PLUGIN_ROOT}/lib/specforge-cli.mjs" list
```
which is also what to run when `$ARGUMENTS` names no spec at all. List, then ask
which one, unless exactly one spec is attached to this session.
## 2. Export
```
node "${CLAUDE_PLUGIN_ROOT}/lib/specforge-cli.mjs" export-md "<id>" [--out "<dir|file.md>"]
```
`--out` takes a directory (the file is named from the spec title) or a path
ending in `.md`. Omitted, it writes into the current directory.
**Both placeholders are filled from what the human typed, so treat them as data.**
Quote them, as above: a destination with a space in it otherwise arrives as two
arguments and the export lands somewhere else.
Quoting is not sanitising. Double quotes stop word splitting but NOT substitution,
so `$`, a backtick, `;`, `|`, `&` or a newline still run inside them.
**If either placeholder carries one of those characters, do not paste it into the
command.** For the id that cannot happen once step 1's check has run, which is why
that check is a closed enumeration rather than a warning. For the path, ask for a
plain one, or write to a directory you choose and tell the human where it went.
The CLI validates its arguments, but only after the shell has had its turn.
It prints `{ id, mdPath, assetsDir, assets, warnings }`:
- **`assetsDir`** is set when the spec has diagrams. They are written next to the
`.md` as SVG files and referenced as ordinary images, because every markdown
renderer strips inline SVG. **The folder has to travel with the file** — a `.md`
moved on its own keeps its links but loses the pictures.
- **`warnings`** names anything the conversion could not carry faithfully (a
table cell that held a list, an element with no markdown form). Empty is the
normal case; if it is not empty, say what it says.
A `deck` spec exits non-zero: slides are not a linear document, and flattening
them is not something this does.
## 3. Report
Give the human the path, and mention the assets folder when there is one. Do not
paste the markdown into the conversation: the file is the deliverable, and a spec
is long.
## Notes
- Nothing is written into the store. The markdown is a rendering of `spec.html`
at the moment you asked, so re-exporting after an edit is how you refresh it;
there is no stale copy to invalidate.
- The reverse direction is the convert command — `/specforge:convert <file.md>`
under Claude Code, `/spec-convert <file.md>` under Pi — which imports markdown
as a **new** spec and never writes over an existing one. Name the one your
harness registers; the other does not exist there.From NitinJ/specforge, MIT.
More from NitinJ/specforge
- 0.579score
generate-template
NitinJ
Write a spec template from a prompt.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
export
NitinJ
Export a spec from the store to Google Docs.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
list-specs
NitinJ
List SpecForge specs — either every spec in the store (mode "all") or just the specs attached to this session (mode "mine").
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
migrate-spec
NitinJ
Move one existing spec onto the SpecForge component library.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
tune-templates
NitinJ
Optimize the SpecForge spec templates from the review-comment history.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
write-review
NitinJ
Review a SpecForge spec as a reviewer agent, and file the review as a child spec of the spec being reviewed.
SkillBFreshness: B★ 5Claude Code +9 - 0.575score
create-spec
NitinJ
Author a new house-style spec into the SpecForge store.
SkillBFreshness: B★ 5Claude Code +9 - 0.575score
convert-spec
NitinJ
Convert an existing design/spec file into a SpecForge spec in the store.
SkillBFreshness: B★ 5Claude Code +9 - 0.575score
review-spec
NitinJ
Process a submitted batch of human comments on a spec in the store: reply to each thread inline and amend the spec accordingly.
SkillBFreshness: B★ 5Claude Code +9 - 0.574score
start-specforge
NitinJ
Start or reuse the local SpecForge daemon and return its browser index URL.
SkillBFreshness: B★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Sep 8, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/NitinJ/specforge
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from NitinJ
- 0.579score
generate-template
NitinJ
Write a spec template from a prompt.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
export
NitinJ
Export a spec from the store to Google Docs.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
list-specs
NitinJ
List SpecForge specs — either every spec in the store (mode "all") or just the specs attached to this session (mode "mine").
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
migrate-spec
NitinJ
Move one existing spec onto the SpecForge component library.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
tune-templates
NitinJ
Optimize the SpecForge spec templates from the review-comment history.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
write-review
NitinJ
Review a SpecForge spec as a reviewer agent, and file the review as a child spec of the spec being reviewed.
SkillBFreshness: B★ 5Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get export-md running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
export-md skill. Agent Mart. https://agentmart.dev/skills/nitinj-export-md (last updated 2026-10-24)