Authoritative language specifications, linter rules, and coding patterns for LLMs. Replace Stack Overflow with actual best practices.
Before writing code in a specific language, use this command to get the generation checklist and relevant standards.
Get coding checklist before writing code in a language
Get framework-specific checklist and best practices
Get detailed explanation of a specific linter rule
Parse project config files to extract coding standards
Enforces project coding standards and conventions during code review
Helps understand and fix linter warnings and errors
Reviews code for security vulnerabilities using OWASP guidelines and language-specific security patterns
Advises on language specifications, coding standards, and best practices before writing code
Matches all tools
Hooks run on every tool call, not just specific ones
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Make LLMs write better code, not just code that works.
Purpose: Give AI assistants authoritative language specs, generation checklists, and linter rules—replacing training data from Stack Overflow and random GitHub repos with actual best practices.
New here? See QUICKSTART.md for 5-minute setup.
Claude Code Plugin: See PLUGIN.md for plugin installation and usage.
/plugin install github:krisarmstrong/specforge-mcp
Then use slash commands like:
/checklist python - Get pre-coding checklist/spec typescript stdlib - Get TypeScript stdlib docs/lint-rule python ruff E501 - Explain a linter rule/search-specs async error handling - Search all specsnpm run webui:install # First time
npm run dev:webui # Start at http://localhost:3847
LLM Integration: See System Prompt Template to configure LLMs to use SpecForge automatically.
Every supported language now has a generation-checklist.md with 10-20 critical rules to follow BEFORE writing code:
specs/python/generation-checklist.md # Type hints, pathlib, context managers...
specs/typescript/generation-checklist.md # const/let, ===, Promise handling...
specs/go/generation-checklist.md # Error handling, defer, context...
specs/rust/generation-checklist.md # Ownership, ?, no unwrap...
... (35 languages total)
The Difference:
| Without SpecForge | With SpecForge |
|---|---|
| Code that "works" | Code that follows best practices |
| Silent bugs | Caught by linter-aware patterns |
| Security vulnerabilities | Security anti-patterns avoided |
| Inconsistent style | Idiomatic code |
| Tool | Purpose |
|---|---|
get_checklist(language) | Call FIRST - Critical rules before writing code |
get_spec(language, category, topic) | Full language specification |
get_linter_rule(language, linter, rule) | Specific linter rule explanation |
search_specs(query) | Search across all specs |
list_available(language, category) | List available topics |
| Language | Spec | Stdlib | Linters | Formatters | Patterns |
|---|---|---|---|---|---|
| Assembly (x86-64, ARM, RISC-V, WASM) | ✅ | ✅ (ABI refs) | - | - | ✅ |
| BASIC | ✅ | ✅ | - | - | ✅ |
| Bash | ✅ | ✅ | shellcheck | shfmt | ✅ |
| Batch | ✅ | ✅ | - | - | ✅ |
| Go | ✅ | ✅ | golangci-lint | gofmt, goimports, gofumpt, golines | ✅ |
| C# | ✅ | ✅ (namespace pages) | .NET analyzers, StyleCop | dotnet format | ✅ |
| JavaScript | ✅ | ✅ (Node + Web APIs) | Biome | Biome | ✅ |
| TypeScript | ✅ | ✅ | Biome | Biome | ✅ |
| C | ✅ | ✅ | clang-tidy, cppcheck | clang-format | ✅ |
| C++ | ✅ | ✅ | clang-tidy, cppcheck | clang-format | ✅ |
| CSS | ✅ | ✅ | Biome | Biome | ✅ |
| HTML | ✅ | ✅ | html-validate, htmlhint | Biome | ✅ |
| Git | ✅ | ✅ | gitlint, commitlint | commitlint/commitizen | ✅ |
| Java | ✅ | ✅ (package pages) | Error Prone, SpotBugs, Checkstyle, PMD | google-java-format | ✅ |
| Kotlin | ✅ | ✅ (package pages) | detekt, ktlint | ktlint, ktfmt | ✅ |
| Lua | ✅ | ✅ | luacheck | stylua | ✅ |
| PowerShell | ✅ | ✅ | PSScriptAnalyzer | - | ✅ |
| Python | ✅ | ✅ (module pages) | Ruff, mypy | Ruff | ✅ |
| Rust | ✅ | ✅ (module pages) | clippy | rustfmt | ✅ |
| SQL | ✅ | ✅ (Postgres/MySQL/SQLite/SQL Server) | sqlfluff | sqlfluff | ✅ |
| Swift | ✅ | ✅ (module pages) | SwiftLint | swift-format | ✅ |
| PHP | ✅ | ✅ | PHPStan, Psalm | PHP-CS-Fixer | ✅ |
| Ruby | ✅ | ✅ | RuboCop | RuboCop | ✅ |
| Dart | ✅ | ✅ | Dart linter | dart format | ✅ |
| R | ✅ | ✅ | lintr | styler | ✅ |
| Julia | ✅ | ✅ | JET, StaticLint | JuliaFormatter | ✅ |
| Scala | ✅ | ✅ | Scalafix, WartRemover | Scalafmt | ✅ |
| Elixir | ✅ | ✅ | Credo | mix format | ✅ |
| Clojure | ✅ | ✅ | clj-kondo, eastwood | zprint | ✅ |
| Haskell | ✅ | ✅ | HLint | fourmolu, ormolu | ✅ |
| Zig | ✅ | ✅ | - | zig fmt | ✅ |
| OCaml | ✅ | ✅ | odoc | ocamlformat | ✅ |
| Markdown | ✅ | - | markdownlint | Prettier, markdownfmt | ✅ |
| YAML | ✅ | - | yamllint | Prettier, yamlfix | ✅ |
| Dockerfile | ✅ | - | hadolint | - | ✅ |
Notes on specs:
npx claudepluginhub krisarmstrong/language-specs-mcpEnhances code agents with Go best practices covering performance, modern syntax, generics, patterns, testing, error handling, and concurrency.
This skill should be used when the model needs to ensure code quality through comprehensive linting and formatting. It provides automatic linting workflows for orchestrators (format → lint → resolve via concurrent agents) and sub-agents (lint touched files before task completion). Prevents claiming "production ready" code without verification. Includes linting rules knowledge base for ruff, mypy, and bandit, plus the linting-root-cause-resolver agent for systematic issue resolution.
Deterministic linting hooks, semantic code validators, and a multi-LLM advisory council. Enforces coding rules mechanically — not by suggestion.
Initialize or update CLAUDE.md coding standards for any project by auto-detecting tech stack and assembling rules from the claude-rules template library. Use when user says 'init rules', 'generate CLAUDE.md', or wants to set up coding standards.
Expert agents for specific programming languages (Python, Go, Rust, etc.)
Personal Claude Code + Codex dev stack: security hooks, AI-first code conventions, /security-review, /repo-map, /stack-check, portable statusline. Designed to complement other skills-based plugins, not replace them.