{"_id":"@acme-skunkworks/markdownlint-config","_rev":"4-563495ec4a9ef6334f0f27f2fdf967c9","name":"@acme-skunkworks/markdownlint-config","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@acme-skunkworks/markdownlint-config","version":"1.0.0","keywords":["markdownlint","markdown","linting","formatting","code-quality","style-guide"],"author":{"url":"https://github.com/RobEasthope","name":"Rob Easthope"},"license":"MIT","_id":"@acme-skunkworks/markdownlint-config@1.0.0","maintainers":[{"name":"robeasthope","email":"hello@robeasthope.com"}],"homepage":"https://github.com/acme-skunkworks/markdownlint-config#readme","bugs":{"url":"https://github.com/acme-skunkworks/markdownlint-config/issues"},"dist":{"shasum":"8372178aff6e1ba139fc838fed84b03d4e1b3cc8","tarball":"https://registry.npmjs.org/@acme-skunkworks/markdownlint-config/-/markdownlint-config-1.0.0.tgz","fileCount":4,"integrity":"sha512-p1KZ+VguLOCRTfpSYmA36jk3RikD2XQMzkUCfNIf0ke6ONHH9bbF3YzAIoHxRMnfsc2K2b1IMoNAOHWlZ7Vnuw==","signatures":[{"sig":"MEQCIFLK7tpLzjf7xALdU8QkSTFl1Z6gx2ChpcRR5fQC8uRAAiAoePheUBoD3JwsQNYWQqLJk9EPQ/PEM3plXNn/zmsAng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8056},"main":".markdownlint.json","engines":{"node":">=22"},"gitHead":"c04e573a5ed25af707ddcdea266ce8bf2d2aab5d","scripts":{"lint":"pnpm run lint:md","clean":"rimraf node_modules","format":"npx prettier --write .","lint:md":"markdownlint-cli2 '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**'","prepare":"husky","release":"changeset publish","version":"changeset version","lint:yaml":"yamllint .","lint:md:fix":"markdownlint-cli2 --fix '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**'","sort-pkg-json":"sort-package-json","lint:workflows":"actionlint","release:manual":"npm publish --access public --provenance=false","release:manual:dry":"npm publish --access public --provenance=false --dry-run"},"_npmUser":{"name":"robeasthope","email":"hello@robeasthope.com"},"repository":{"url":"git+https://github.com/acme-skunkworks/markdownlint-config.git","type":"git"},"_npmVersion":"11.12.1","description":"Shared markdownlint configuration for consistent Markdown formatting","directories":{},"lint-staged":{"**/*":["prettier --write --ignore-unknown"],"**/*.{md,mdx}":["bash -c 'markdownlint-cli2 --fix --config ./.markdownlint-cli2.jsonc \"$@\" || true' --"],"**/*.{yml,yaml}":["bash -c 'if command -v yamllint >/dev/null 2>&1; then yamllint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  yamllint not installed — skipping. Install with: brew install yamllint\"; else echo \"⚠️  yamllint not installed — skipping. Install with: pip install --user yamllint==1.37.1\"; fi' --"],"**/package.json":["bash -c 'sort-package-json \"$@\" || true' --"],".github/workflows/*.{yml,yaml}":["bash -c 'if command -v actionlint >/dev/null 2>&1; then actionlint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  actionlint not installed — skipping. Install with: brew install actionlint\"; else echo \"⚠️  actionlint not installed — skipping. Install via: bash <(curl -fsSL https://raw.githubusercontent.com/rhysd/actionlint/v1.7.5/scripts/download-actionlint.bash)\"; fi' --"]},"_nodeVersion":"25.9.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"husky":"^9.1.7","rimraf":"^6.0.1","prettier":"^3.8.3","lint-staged":"^16.3.2","@changesets/cli":"^2.31.0","markdownlint-cli2":"^0.18.1","sort-package-json":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/markdownlint-config_1.0.0_1778506498162_0.2742019761720169","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@acme-skunkworks/markdownlint-config","version":"2.0.0","keywords":["markdownlint","markdown","linting","formatting","code-quality","style-guide"],"author":{"url":"https://github.com/RobEasthope","name":"Rob Easthope"},"license":"MIT","_id":"@acme-skunkworks/markdownlint-config@2.0.0","maintainers":[{"name":"robeasthope","email":"hello@robeasthope.com"}],"homepage":"https://github.com/acme-skunkworks/markdownlint-config#readme","bugs":{"url":"https://github.com/acme-skunkworks/markdownlint-config/issues"},"dist":{"shasum":"25209f5fca721bc1a7f9da077eda4db9971892d1","tarball":"https://registry.npmjs.org/@acme-skunkworks/markdownlint-config/-/markdownlint-config-2.0.0.tgz","fileCount":4,"integrity":"sha512-FIAKkLRbjuzD5JgGRp9hHcgPiy7CX9GnNzkqKXP/7R1hPodbNZi9w84blt3SL5K05KBOYfCY93SWOwcQVQS1fA==","signatures":[{"sig":"MEUCIQCaoc6QaWxWVKG/hye4Zr104haRG84hdIbHwH1k5vidjQIgBJtMloG5Lfs/mxtJSvcPhOIh0XRgXT7ZGNKKDI3H488=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acme-skunkworks%2fmarkdownlint-config@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11858},"main":".markdownlint.jsonc","engines":{"node":">=22"},"gitHead":"cac23055bc19923d2833c865e2611764bfee19c6","scripts":{"lint":"pnpm run lint:md","clean":"rimraf node_modules","format":"npx prettier --write .","lint:md":"markdownlint-cli2 '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**' '!.agents/skills/**' '!.claude/skills/**'","prepare":"husky","release":"changeset publish","version":"changeset version","lint:yaml":"yamllint .","lint:md:fix":"markdownlint-cli2 --fix '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**' '!.agents/skills/**' '!.claude/skills/**'","sort-pkg-json":"sort-package-json","lint:workflows":"actionlint","release:manual":"npm publish --access public --provenance=false","release:manual:dry":"npm publish --access public --provenance=false --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:bf6b972c-ced9-43d5-a2cb-89faf4dcae73"}},"repository":{"url":"git+https://github.com/acme-skunkworks/markdownlint-config.git","type":"git"},"_npmVersion":"11.14.1","description":"Shared markdownlint configuration for consistent Markdown formatting","directories":{},"lint-staged":{"**/*":["prettier --write --ignore-unknown"],"**/*.{md,mdx}":["bash -c 'markdownlint-cli2 --fix --config ./.markdownlint-cli2.jsonc \"$@\" || true' --"],"**/*.{yml,yaml}":["bash -c 'if command -v yamllint >/dev/null 2>&1; then yamllint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  yamllint not installed — skipping. Install with: brew install yamllint\"; else echo \"⚠️  yamllint not installed — skipping. Install with: pip install --user yamllint==1.37.1\"; fi' --"],"**/package.json":["bash -c 'sort-package-json \"$@\" || true' --"],".github/workflows/*.{yml,yaml}":["bash -c 'if command -v actionlint >/dev/null 2>&1; then actionlint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  actionlint not installed — skipping. Install with: brew install actionlint\"; else echo \"⚠️  actionlint not installed — skipping. Install via: bash <(curl -fsSL https://raw.githubusercontent.com/rhysd/actionlint/v1.7.5/scripts/download-actionlint.bash)\"; fi' --"]},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"husky":"^9.1.7","rimraf":"^6.0.1","prettier":"^3.8.3","lint-staged":"^16.3.2","@changesets/cli":"^2.31.0","markdownlint-cli2":"^0.22.1","sort-package-json":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/markdownlint-config_2.0.0_1778859110897_0.7342140618421369","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@acme-skunkworks/markdownlint-config","version":"2.0.1","keywords":["markdownlint","markdown","linting","formatting","code-quality","style-guide"],"author":{"url":"https://github.com/RobEasthope","name":"Rob Easthope"},"license":"MIT","_id":"@acme-skunkworks/markdownlint-config@2.0.1","maintainers":[{"name":"robeasthope","email":"hello@robeasthope.com"}],"homepage":"https://github.com/acme-skunkworks/markdownlint-config#readme","bugs":{"url":"https://github.com/acme-skunkworks/markdownlint-config/issues"},"dist":{"shasum":"bcf009043738231b6477c47ceb71af1f345c4dda","tarball":"https://registry.npmjs.org/@acme-skunkworks/markdownlint-config/-/markdownlint-config-2.0.1.tgz","fileCount":4,"integrity":"sha512-+sDq+P6AAEXBi1D0tSsrEqdIFoBT40/CpVIVBGakzIMKwWbZgNaGvdo9L6PmUziQ9HXxeYrL5JLL/xfRaxRpIA==","signatures":[{"sig":"MEYCIQCwX+iRn/kBpRTUoJb1SOLYVtO5wCFrXod8rv5mZt2PrQIhAJkDkK38TmzctViOnbpu8HKatR8i0tU7pohClJxYh7LO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acme-skunkworks%2fmarkdownlint-config@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13052},"main":".markdownlint.jsonc","_from":"file:/home/runner/work/markdownlint-config/markdownlint-config/.artifact/acme-skunkworks-markdownlint-config-2.0.1.tgz","engines":{"node":">=22"},"scripts":{"tsc":"tsc --noEmit","lint":"pnpm run lint:md","test":"vitest run","clean":"rimraf node_modules","act:ci":"act pull_request -W .github/workflows/ci.yml --eventpath .github/act-events/pull_request.json","format":"npx prettier --write .","lint:md":"markdownlint-cli2 '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**' '!.agents/skills/**' '!.claude/skills/**'","lint:sh":"bash -c 'if command -v shellcheck >/dev/null 2>&1; then shellcheck infrastructure/scripts/*.sh .husky/pre-commit .husky/pre-push .husky/commit-msg; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  shellcheck not installed — skipping. Install: brew install shellcheck\"; else echo \"⚠️  shellcheck not installed — skipping. Install: apt-get install shellcheck\"; fi'","prepare":"husky","test:sh":"bash -c 'if command -v bats >/dev/null 2>&1; then bats infrastructure/tests/*.bats; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  bats not installed — skipping. Install: brew install bats-core\"; else echo \"⚠️  bats not installed — skipping. Install: apt-get install bats\"; fi'","act:list":"act --list","lint:yaml":"yamllint .","test:watch":"vitest","lint:md:fix":"markdownlint-cli2 --fix '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**' '!.agents/skills/**' '!.claude/skills/**'","sort-pkg-json":"sort-package-json","lint:workflows":"actionlint","release:manual":"npm publish --access public --provenance=false","act:release:dry":"act push -W .github/workflows/release.yml","changelog:finalise":"tsx infrastructure/scripts/finalise-changelog.ts","release:manual:dry":"npm publish --access public --provenance=false --dry-run","validate:changelog":"tsx infrastructure/scripts/validate-changelog.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:947ca5c3-c566-4af2-90d7-1eb2cb16c32c"}},"_resolved":"/home/runner/work/markdownlint-config/markdownlint-config/.artifact/acme-skunkworks-markdownlint-config-2.0.1.tgz","_integrity":"sha512-+sDq+P6AAEXBi1D0tSsrEqdIFoBT40/CpVIVBGakzIMKwWbZgNaGvdo9L6PmUziQ9HXxeYrL5JLL/xfRaxRpIA==","repository":{"url":"git+https://github.com/acme-skunkworks/markdownlint-config.git","type":"git"},"_npmVersion":"11.14.1","description":"Shared markdownlint configuration for consistent Markdown formatting","directories":{},"lint-staged":{"**/*":["prettier --write --ignore-unknown"],"**/*.{md,mdx}":["bash -c 'markdownlint-cli2 --fix --config ./.markdownlint-cli2.jsonc \"$@\" || true' --"],"**/*.{yml,yaml}":["bash -c 'if command -v yamllint >/dev/null 2>&1; then yamllint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  yamllint not installed — skipping. Install with: brew install yamllint\"; else echo \"⚠️  yamllint not installed — skipping. Install with: pip install --user yamllint==1.37.1\"; fi' --"],"**/package.json":["bash -c 'sort-package-json \"$@\" || true' --"],".github/workflows/*.{yml,yaml}":["bash -c 'if command -v actionlint >/dev/null 2>&1; then actionlint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  actionlint not installed — skipping. Install with: brew install actionlint\"; else echo \"⚠️  actionlint not installed — skipping. Install via: bash <(curl -fsSL https://raw.githubusercontent.com/rhysd/actionlint/v1.7.5/scripts/download-actionlint.bash)\"; fi' --"]},"_nodeVersion":"22.22.3","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"tsx":"^4.21.1","husky":"^9.1.7","rimraf":"^6.0.1","vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.6.0","gray-matter":"^4.0.3","lint-staged":"^16.3.2","markdownlint-cli2":"^0.22.1","sort-package-json":"^3.6.1"},"_npmOperationalInternal":{"tmp":"tmp/markdownlint-config_2.0.1_1782242955800_0.725120844035984","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@acme-skunkworks/markdownlint-config","version":"3.0.0","description":"Shared markdownlint configuration for consistent Markdown formatting","keywords":["markdownlint","markdown","linting","formatting","code-quality","style-guide"],"homepage":"https://github.com/acme-skunkworks/markdownlint-config#readme","bugs":{"url":"https://github.com/acme-skunkworks/markdownlint-config/issues"},"repository":{"type":"git","url":"git+https://github.com/acme-skunkworks/markdownlint-config.git"},"license":"MIT","author":{"name":"Rob Easthope","url":"https://github.com/RobEasthope"},"main":".markdownlint.jsonc","scripts":{"act:ci":"act pull_request -W .github/workflows/ci.yml --eventpath .github/act-events/pull_request.json","act:list":"act --list","act:release:dry":"act push -W .github/workflows/pkg-release.yml","clean":"rimraf node_modules","format":"npx prettier --write .","lint":"pnpm run lint:md","lint:md":"markdownlint-cli2 '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**' '!.agents/skills/**' '!.claude/skills/**'","lint:md:fix":"markdownlint-cli2 --fix '**/*.{md,mdx}' '!**/node_modules/**' '!**/dist/**' '!**/.turbo/**' '!**/.astro/**' '!.agents/skills/**' '!.claude/skills/**'","lint:sh":"bash -c 'if command -v shellcheck >/dev/null 2>&1; then shellcheck infrastructure/scripts/*.sh .husky/pre-commit .husky/pre-push .husky/commit-msg; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  shellcheck not installed — skipping. Install: brew install shellcheck\"; else echo \"⚠️  shellcheck not installed — skipping. Install: apt-get install shellcheck\"; fi'","lint:workflows":"actionlint","lint:yaml":"yamllint .","prepare":"husky","release:manual":"npm publish --access public --provenance=false","release:manual:dry":"npm publish --access public --provenance=false --dry-run","sort-pkg-json":"sort-package-json","test":"vitest run","test:sh":"bash -c 'if command -v bats >/dev/null 2>&1; then bats infrastructure/tests/*.bats; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  bats not installed — skipping. Install: brew install bats-core\"; else echo \"⚠️  bats not installed — skipping. Install: apt-get install bats\"; fi'","test:watch":"vitest","tsc":"tsc --noEmit","validate:changelog":"pnpm exec changelog-core validate"},"lint-staged":{"**/*":["prettier --write --ignore-unknown"],"**/package.json":["bash -c 'sort-package-json \"$@\" || true' --"],"**/*.{md,mdx}":["bash -c 'markdownlint-cli2 --fix --config ./.markdownlint-cli2.jsonc \"$@\" || true' --"],"**/*.{yml,yaml}":["bash -c 'if command -v yamllint >/dev/null 2>&1; then yamllint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  yamllint not installed — skipping. Install with: brew install yamllint\"; else echo \"⚠️  yamllint not installed — skipping. Install with: pip install --user yamllint==1.37.1\"; fi' --"],".github/workflows/*.{yml,yaml}":["bash -c 'if command -v actionlint >/dev/null 2>&1; then actionlint \"$@\"; elif [ \"$(uname -s)\" = \"Darwin\" ]; then echo \"⚠️  actionlint not installed — skipping. Install with: brew install actionlint\"; else echo \"⚠️  actionlint not installed — skipping. Install via: bash <(curl -fsSL https://raw.githubusercontent.com/rhysd/actionlint/v1.7.5/scripts/download-actionlint.bash)\"; fi' --"]},"devDependencies":{"@acme-skunkworks/changelog-core":"^1.1.0","@acme-skunkworks/commitlint-config":"^1.0.0","@commitlint/cli":"^21.2.1","@types/node":"^25.6.0","bats":"1.13.0","husky":"^9.1.7","lint-staged":"^16.3.2","markdownlint-cli2":"^0.22.1","prettier":"^3.8.3","rimraf":"^6.0.1","sort-package-json":"^3.6.1","tsx":"^4.21.1","typescript":"^6.0.3","vitest":"^4.1.6"},"packageManager":"pnpm@10.33.0","engines":{"node":">=22"},"publishConfig":{"access":"public","provenance":true},"_id":"@acme-skunkworks/markdownlint-config@3.0.0","_integrity":"sha512-L3Fs+maqPGpJigbrIAeMCkRA3Dy9SocoYaKtILatKkvpXuJ1XdFHmbI8L0aL0oHUjwvlCU/D/6IvY+hekck6XQ==","_resolved":"/home/runner/work/markdownlint-config/markdownlint-config/.artifact/acme-skunkworks-markdownlint-config-3.0.0.tgz","_from":"file:/home/runner/work/markdownlint-config/markdownlint-config/.artifact/acme-skunkworks-markdownlint-config-3.0.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"11.14.1","dist":{"integrity":"sha512-L3Fs+maqPGpJigbrIAeMCkRA3Dy9SocoYaKtILatKkvpXuJ1XdFHmbI8L0aL0oHUjwvlCU/D/6IvY+hekck6XQ==","shasum":"66ade36b5ba57906ed390f1d42ec8de52305a728","tarball":"https://registry.npmjs.org/@acme-skunkworks/markdownlint-config/-/markdownlint-config-3.0.0.tgz","fileCount":4,"unpackedSize":14773,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acme-skunkworks%2fmarkdownlint-config@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGHrn0kPN+CVEVPL4nSzxQ2NYyJ42V+GNNLI5qTvjT2FAiEAqT6HsoiDd0I2IOfDzkzuD6wy+9DTXVwk1mkeXLZ+KUo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6b80793a-01fc-4957-be1b-2c5e12594f0c"}},"directories":{},"maintainers":[{"name":"robeasthope","email":"hello@robeasthope.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/markdownlint-config_3.0.0_1786105136910_0.9742939485161433"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-11T13:34:58.073Z","modified":"2026-08-07T12:18:57.341Z","1.0.0":"2026-05-11T13:34:58.309Z","2.0.0":"2026-05-15T15:31:51.045Z","2.0.1":"2026-06-23T19:29:16.004Z","3.0.0":"2026-08-07T12:18:57.034Z"},"bugs":{"url":"https://github.com/acme-skunkworks/markdownlint-config/issues"},"author":{"name":"Rob Easthope","url":"https://github.com/RobEasthope"},"license":"MIT","homepage":"https://github.com/acme-skunkworks/markdownlint-config#readme","keywords":["markdownlint","markdown","linting","formatting","code-quality","style-guide"],"repository":{"type":"git","url":"git+https://github.com/acme-skunkworks/markdownlint-config.git"},"description":"Shared markdownlint configuration for consistent Markdown formatting","maintainers":[{"name":"robeasthope","email":"hello@robeasthope.com"}],"readme":"# @acme-skunkworks/markdownlint-config\n\nShared markdownlint configuration for consistent Markdown formatting across projects.\n\n## 📦 Installation\n\n```bash\nnpm install --save-dev @acme-skunkworks/markdownlint-config\n# or\npnpm add -D @acme-skunkworks/markdownlint-config\n# or\nyarn add -D @acme-skunkworks/markdownlint-config\n```\n\n## 🚀 Usage\n\n### Option 1: Direct Extension (Recommended)\n\nCreate a `.markdownlint-cli2.jsonc` file in your project root:\n\n```jsonc\n{\n  \"config\": {\n    \"extends\": \"@acme-skunkworks/markdownlint-config\",\n  },\n  \"globs\": [\"**/*.{md,mdx}\", \"!**/node_modules/**\", \"!**/dist/**\"],\n}\n```\n\n### Option 2: Extend in .markdownlint.json\n\nCreate or update `.markdownlint.json`:\n\n```json\n{\n  \"extends\": \"@acme-skunkworks/markdownlint-config\"\n}\n```\n\n> **Note** — Resolving `extends` through this path requires **`markdownlint-cli2`** (its parser stack handles the JSONC comments in the published config). The bare `markdownlint` library or `markdownlint-cli` will try `JSON.parse` on the resolved file and reject the comments. If you're not using cli2, use Option 1 above or copy the rules inline.\n\n### Option 3: Package.json Configuration\n\nAdd to your `package.json`:\n\n```json\n{\n  \"markdownlint-cli2\": {\n    \"config\": {\n      \"extends\": \"@acme-skunkworks/markdownlint-config\"\n    },\n    \"globs\": [\"**/*.{md,mdx}\"]\n  }\n}\n```\n\n## 🎯 Philosophy\n\n**Strict on structure, lenient on prose.**\n\nMarkdown is two things at once — the structural skeleton of a document (headings, lists, links, tables) and the prose that fills it. This config enforces the first and steps out of the way of the second:\n\n- **Structural rules are enabled.** Headings (first-line H1, or frontmatter `title:` as an alternative), list numbering, link references, table shape, blank-line conventions around fences and tables, and fence-language tags — all enforced. These are cheap to get right and the diff noise from violations is high.\n- **Prose rules are relaxed.** Line length and inline HTML/JSX are off. These create friction in real-world authoring (long URLs in tables, MDX components) without delivering proportional value.\n\nEach non-default decision in `.markdownlint.jsonc` carries an inline rationale — read it for the \"why\" before tweaking a rule downstream.\n\n## 📝 Configuration Details\n\nBuilt on `\"default\": true` (every markdownlint rule enabled at stock options) with the following non-default decisions:\n\n### Configured rules\n\n- **MD003** — ATX-style headings (`# Heading`), not Setext (`Heading\\n===`).\n- **MD004** — Unordered-list bullets use `-` only (matches Prettier).\n- **MD007** — Nested unordered lists indent by 2 spaces (matches Prettier).\n- **MD024** — Repeated heading text allowed across non-siblings (`siblings_only`) — changelogs and per-section API docs need this.\n- **MD029** — Ordered lists numbered sequentially (`1. 2. 3.`), not all-ones.\n- **MD035** — Thematic breaks are `---` only.\n- **MD044** — Proper-name capitalisation (conservative list; `code_blocks` off).\n- **MD046** — Code blocks must be fenced.\n- **MD048** — Fence style is backtick only.\n- **MD049** — Emphasis (italic) uses underscores.\n- **MD050** — Strong (bold) uses asterisks.\n\n### Disabled rules\n\n- **MD013** (line length) — prose concern; editors handle wrapping.\n- **MD033** (inline HTML) — MDX embeds JSX routinely.\n\n### Notably enabled (formerly disabled)\n\nThese were off in v1.0 (carried over from `protomolecule`) and have been re-enabled:\n\n- **MD031** (blank lines around fences), **MD034** (bare URLs), **MD036** (emphasis-as-heading), **MD040** (fence language — use `text` / `console` / `plaintext` for language-less samples), **MD041** (first-line H1, or frontmatter `title:`), **MD051** (link fragments — fragment resolution improved in `markdownlint` 0.40), **MD052/053** (reference link/image hygiene), **MD056/058** (table column count, blank lines around tables).\n\n## 🛠️ Customization\n\nOverride specific rules by extending the configuration:\n\n```jsonc\n{\n  \"config\": {\n    \"extends\": \"@acme-skunkworks/markdownlint-config\",\n    \"MD013\": { \"line_length\": 100 }, // Re-enable line length with a 100-char limit (off in base).\n    \"MD041\": false, // Opt out for repos full of embeddable fragments (on in base).\n  },\n}\n```\n\n## 📋 NPM Scripts\n\nAdd these scripts to your `package.json`:\n\n```json\n{\n  \"scripts\": {\n    \"lint:md\": \"markdownlint-cli2\",\n    \"lint:md:fix\": \"markdownlint-cli2 --fix\"\n  }\n}\n```\n\nThen run:\n\n```bash\n# Check Markdown files\npnpm lint:md\n\n# Auto-fix issues\npnpm lint:md:fix\n```\n\n## 🔗 Integration\n\n### With Husky and lint-staged\n\nAdd to `.lintstagedrc.json`:\n\n```json\n{\n  \"*.{md,mdx}\": [\"markdownlint-cli2 --fix\"]\n}\n```\n\n### With VS Code\n\nInstall the [markdownlint extension](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) and the configuration will be automatically detected.\n\n## 📖 Rule Reference\n\nFor detailed rule documentation, see:\n\n- [markdownlint Rules](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md)\n- [markdownlint CLI2](https://github.com/DavidAnson/markdownlint-cli2)\n\n## 📁 Package Structure\n\n```text\n.\n├── .markdownlint.jsonc     # Shared configuration (with inline per-rule rationale)\n├── package.json\n└── README.md\n```\n\n## 🤝 Contributing\n\nFound an issue or want to suggest a rule change? Please open an issue in the repository.\n\n## 📄 License\n\nMIT License - see [LICENSE](./LICENSE) file in the root directory.\n\nThis software is provided \"as is\", without warranty of any kind. Use at your own risk.\n","readmeFilename":"README.md"}