skills/MarkdownLint/SKILL.md
Format and lint a markdown document — backtick code references, fix bare URLs, check list formatting and heading hierarchy. USE WHEN a document needs formatting cleanup, code references are not backticked, markdown quality needs improvement, or lint markdown.
npx skillsauth add n4m3z/forge-core MarkdownLintInstall 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.
Format and lint a markdown document for consistent code formatting, proper list structure, heading hierarchy, and link hygiene. Reads a file, applies all rules, writes the corrected version after confirmation.
If an argument was provided, use it as the file path. Otherwise, ask which file to lint.
Check TLP before reading:
safe-read via BashIf mdschema is installed, look for a .mdschema in the file's parent directory (for skills: skills/.mdschema, for agents: agents/.mdschema). If found, run:
mdschema check "<file>" --schema "<schema>"
Report any violations (missing frontmatter fields, heading level skips, depth exceeded). These are structural issues that formatting rules cannot auto-fix — present them to the user as findings.
If mdschema is not installed or no schema exists, skip this step silently.
Before applying any rules, identify zones that MUST NOT be modified:
| Zone | Detection | Action |
|---------------------|-------------------------------------------------------------|----------------------------------|
| YAML frontmatter | Lines between opening --- and closing --- at file start | Skip entirely |
| Fenced code blocks | Lines between ``` or ~~~ fences | Skip entirely |
| Inline code | Text between single backticks | Skip entirely |
| Wikilinks | Text matching [[...]] | Preserve as-is — never backtick |
| Obsidian embeds | Lines starting with [Obsidian](https://obsidian.md/)Never convert URLs already inside markdown links [text](url) or code blocks.
3e: Fix list formatting
- for unordered lists (Obsidian convention)3f: Check heading hierarchy
## followed by ####)# H1 at document start (after frontmatter)Do NOT lint these as errors:
#tlp/red, #tlp/amber, #tlp/green, #tlp/clear — valid TLP structural markers%% @todo ... %%, %% @fixme ... %% — valid Obsidian annotation markers![[embed]] — valid Obsidian embed syntax> [!callout] — valid Obsidian callout syntaxdataview, dataviewjs)Present a summary:
Ask the user to confirm before writing.
safe-write write via Bashdevelopment
Reactive correction and root-cause fix. USE WHEN something went wrong, user is frustrated, demands a correction, says wtf, what the hell, why did you, that's wrong, this is broken, no not that, stop. Executes the immediate fix, then hunts the upstream artifact that caused it and creates a corrective change.
development
Decompose a research question into sub-queries, spawn parallel WebResearcher agents per angle, synthesize findings with citations and explicit confidence. USE WHEN the user asks to research, investigate, look online, look up, dig into, find sources, gather evidence, or survey what's known about a topic. Single-pass; for multi-round adversarial research use ResearchCouncil in forge-council.
tools
Author project documentation that future humans (and AI sessions) actually read. Covers TLDRs for tools, READMEs, runbooks, journals. USE WHEN write documentation, create tldr, tool one-pager, document a cli, write readme, runbook, journal entry, capture knowledge about a tool, distill a session into reusable notes.
development
Review your own staged changes via a code-review TUI before triggering a commit. USE WHEN about to commit, walking through your own staged diff, self-reviewing before approval, tuicr, revdiff, git diff cached.