{"id":"ea637ac9-421b-4e99-9f30-35492d9288ec","entityType":"agent","slug":"clawhub-athola-nm-leyline-markdown-formatting","name":"markdown-formatting","canonicalUrl":"https://www.xpersona.co/agent/clawhub-athola-nm-leyline-markdown-formatting","canonicalPath":"/agent/clawhub-athola-nm-leyline-markdown-formatting","generatedAt":"2026-10-10T08:04:22.718Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T04:01:08.935Z","emptyReason":null},"description":"Enforces markdown line-wrap and structure rules for clean git diffs Skill: markdown-formatting Owner: athola Summary: Enforces markdown line-wrap and structure rules for clean git diffs Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:14:50.645Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:35:54.012Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:52:35.744Z | user Release v1.9.16 v1.9.14 | 2026-06-30T18:01:32.157Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:19:55.208","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.7K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-leyline-markdown-formatting","sourceUrl":"https://clawhub.ai/athola/nm-leyline-markdown-formatting","homepage":"https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/athola/nm-leyline-markdown-formatting","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":40,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Enforces markdown line-wrap and structure rules for clean git diffs Skill: markdown-formatting Owner: athola Summary: Enforces markdown line-wrap and structure "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T04:01:08.935Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T04:01:08.935Z","emptyReason":null},"stars":null,"forks":null,"downloads":1706,"packageName":null,"latestVersion":"1.9.19","tractionLabel":"1.7K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T04:01:08.935Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T04:01:08.935Z","lastCrawledAt":"2026-10-10T04:01:08.935Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T04:01:08.935Z","lastVerifiedAt":null,"highlights":[{"version":"1.9.19","createdAt":"2026-08-26T13:14:50.645Z","changelog":"Release v1.9.19","fileCount":4,"zipByteSize":5728},{"version":"1.9.17","createdAt":"2026-07-30T05:35:54.012Z","changelog":"Release v1.9.17","fileCount":4,"zipByteSize":5521},{"version":"1.9.16","createdAt":"2026-07-14T19:52:35.744Z","changelog":"Release v1.9.16","fileCount":4,"zipByteSize":5530},{"version":"1.9.14","createdAt":"2026-06-30T18:01:32.157Z","changelog":"Release v1.9.14","fileCount":4,"zipByteSize":5495},{"version":"1.9.13","createdAt":"2026-06-27T16:19:55.208Z","changelog":"Release v1.9.13","fileCount":4,"zipByteSize":5634},{"version":"1.9.12","createdAt":"2026-06-19T03:14:20.849Z","changelog":"Release v1.9.12","fileCount":4,"zipByteSize":5600},{"version":"1.0.3","createdAt":"2026-06-18T14:09:32.031Z","changelog":"Release v1.9.12","fileCount":4,"zipByteSize":5600},{"version":"1.0.2","createdAt":"2026-05-09T02:17:56.730Z","changelog":"Release v1.9.5","fileCount":4,"zipByteSize":5582}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-leyline-markdown-formatting","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T08:04:22.716Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-leyline-markdown-formatting/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T04:01:08.935Z","emptyReason":null},"readme":"Skill: markdown-formatting\n\nOwner: athola\n\nSummary: Enforces markdown line-wrap and structure rules for clean git diffs\n\nTags: latest:1.9.19\n\nVersion history:\n\nv1.9.19 | 2026-08-26T13:14:50.645Z | user\n\nRelease v1.9.19\n\nv1.9.17 | 2026-07-30T05:35:54.012Z | user\n\nRelease v1.9.17\n\nv1.9.16 | 2026-07-14T19:52:35.744Z | user\n\nRelease v1.9.16\n\nv1.9.14 | 2026-06-30T18:01:32.157Z | user\n\nRelease v1.9.14\n\nv1.9.13 | 2026-06-27T16:19:55.208Z | user\n\nRelease v1.9.13\n\nv1.9.12 | 2026-06-19T03:14:20.849Z | user\n\nRelease v1.9.12\n\nv1.0.3 | 2026-06-18T14:09:32.031Z | user\n\nRelease v1.9.12\n\nv1.0.2 | 2026-05-09T02:17:56.730Z | user\n\nRelease v1.9.5\n\nv1.0.1 | 2026-05-06T14:18:47.897Z | user\n\nRelease v1.9.4\n\nv1.0.0 | 2026-04-13T15:01:43.779Z | auto\n\n- Initial release defining canonical markdown formatting conventions.\n- Covers hybrid 80-character line wrapping, heading styles, list spacing, and link conventions.\n- Specifies content types to wrap or not wrap in markdown.\n- Provides structural rules for blank lines, headings, and lists.\n- Recommends reference-style links when URLs cause lines to exceed 80 characters.\n\nArchive index:\n\nArchive v1.9.19: 4 files, 5728 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (2304b), SKILL.md (4253b), _meta.json (150b)\n\nFile v1.9.19:SKILL.md\n\n---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.9.19:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.9.19\",\n  \"publishedAt\": 1787750090645\n}\n\nFile v1.9.19:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.9.19:skill-card.md\n\n## Description:\n\nEnforces markdown line-wrap and structure rules for clean git diffs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[athola](https://clawhub.ai/user/athola)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, documentation authors, and agents use this skill to apply consistent Markdown wrapping and structural conventions while writing or reviewing committed documentation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill has broad documentation and formatting triggers, so it may activate during sensitive documentation work.\n\nMitigation: Review formatting-only changes before accepting them, especially in documents where line wrapping could affect readability, citations, or review history.\n\nRisk: The skill instructs agents not to reflow code blocks, tables, frontmatter, HTML blocks, links, and image references, but formatting edits can still accidentally affect exempt content.\n\nMitigation: Inspect diffs for protected Markdown constructs and reject changes that alter code, table rows, metadata, raw HTML, link definitions, or standalone image references.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting)\n- [Publisher profile](https://clawhub.ai/user/athola)\n- [OpenClaw homepage metadata](https://github.com/athola/claude-night-market/tree/master/plugins/leyline)\n- [Google Markdown style guide](https://google.github.io/styleguide/docguide/style.html)\n- [Hybrid line wrapping rules](modules/wrapping-rules.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Markdown, Text]\n\n**Output Format:** [Markdown prose guidance and formatting conventions]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces formatting recommendations for prose, headings, lists, links, and wrapping behavior; no tool calls or generated files are required by the skill.]\n\n## Skill Version(s):\n\n1.9.19 (source: server release evidence; artifact frontmatter says 1.9.8)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.9.17: 4 files, 5521 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (1901b), SKILL.md (4253b), _meta.json (150b)\n\nFile v1.9.17:SKILL.md\n\n---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.9.17:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.9.17\",\n  \"publishedAt\": 1785389754012\n}\n\nFile v1.9.17:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.9.17:skill-card.md\n\n## Description: <br>\nEnforces markdown line-wrap and structure rules for clean git diffs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, technical writers, and agents use this skill to apply consistent markdown wrapping and structural formatting to committed documentation and skill files. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad activation terms may apply opinionated formatting during general documentation or style requests. <br>\nMitigation: Use narrower triggers or review generated formatting changes when local markdown style differs. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting) <br>\n- [Publisher profile](https://clawhub.ai/user/athola) <br>\n- [Project homepage](https://github.com/athola/claude-night-market/tree/master/plugins/leyline) <br>\n- [Hybrid Line Wrapping Rules](modules/wrapping-rules.md) <br>\n- [Google Markdown style guide](https://google.github.io/styleguide/docguide/style.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown] <br>\n**Output Format:** [Markdown guidance and formatting recommendations] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Opinionated 80-column prose wrapping with exemptions for code blocks, tables, frontmatter, links, images, and headings.] <br>\n\n## Skill Version(s): <br>\n1.9.17 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.16: 4 files, 5530 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (1918b), SKILL.md (4253b), _meta.json (150b)\n\nFile v1.9.16:SKILL.md\n\n---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.9.16:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.9.16\",\n  \"publishedAt\": 1784058755744\n}\n\nFile v1.9.16:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.9.16:skill-card.md\n\n## Description: <br>\nEnforces markdown line-wrap and structure rules for clean git diffs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, technical writers, and documentation maintainers use this skill to apply consistent Markdown wrapping, heading, list, and link formatting so documentation changes produce cleaner reviews and diffs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad markdown, documentation, and style triggers may apply formatting guidance during general writing tasks or across a repository. <br>\nMitigation: Review proposed formatting changes before accepting them, especially in files with tables, code blocks, frontmatter, HTML blocks, or generated documentation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting) <br>\n- [Leyline homepage](https://github.com/athola/claude-night-market/tree/master/plugins/leyline) <br>\n- [Google Markdown style guide](https://google.github.io/styleguide/docguide/style.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown, Text] <br>\n**Output Format:** [Markdown guidance with examples and formatting rules] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [No code execution or external service calls; review broad documentation-triggered changes before accepting them.] <br>\n\n## Skill Version(s): <br>\n1.9.16 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.14: 4 files, 5495 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (1755b), SKILL.md (4253b), _meta.json (150b)\n\nFile v1.9.14:SKILL.md\n\n---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.9.14:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.9.14\",\n  \"publishedAt\": 1782842492157\n}\n\nFile v1.9.14:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.9.14:skill-card.md\n\n## Description: <br>\nEnforces markdown line-wrap and structure rules for clean git diffs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and documentation authors use this skill to keep committed Markdown prose consistently wrapped, structured, and easier to review in diffs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad activation triggers may cause the skill to influence general documentation or Markdown editing work where a different house style is expected. <br>\nMitigation: Review generated Markdown edits for local style fit before committing or publishing them. <br>\n\n\n## Reference(s): <br>\n- [Leyline source plugin homepage](https://github.com/athola/claude-night-market/tree/master/plugins/leyline) <br>\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, guidance] <br>\n**Output Format:** [Markdown guidance and proposed prose edits] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Applies 80-character hybrid wrapping while preserving code blocks, tables, frontmatter, HTML blocks, link definitions, and standalone image references.] <br>\n\n## Skill Version(s): <br>\n1.9.14 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.13: 4 files, 5634 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (2177b), SKILL.md (4253b), _meta.json (150b)\n\nFile v1.9.13:SKILL.md\n\n---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.9.13:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.9.13\",\n  \"publishedAt\": 1782577195208\n}\n\nFile v1.9.13:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.9.13:skill-card.md\n\n## Description: <br>\nEnforces markdown line-wrap and structure rules for clean git diffs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, documentation authors, and agents use this skill when writing or editing committed Markdown to apply consistent wrapping, heading spacing, list spacing, and link formatting for reviewable diffs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad activation wording may cause the skill to be considered during general Markdown or documentation edits. <br>\nMitigation: Review activation terms before installation and confirm proposed edits before applying them in important repositories. <br>\nRisk: Markdown reflow can change content that should remain exact, such as code blocks, tables, frontmatter, HTML blocks, link definitions, and image references. <br>\nMitigation: Preserve the documented exempt content types and review diffs for formatting-only changes before commit. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting) <br>\n- [Project homepage](https://github.com/athola/claude-night-market/tree/master/plugins/leyline) <br>\n- [Google Markdown style guide](https://google.github.io/styleguide/docguide/style.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Guidance] <br>\n**Output Format:** [Markdown prose and edit guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Applies hybrid 80-character wrapping and structural Markdown formatting rules while preserving exempt content such as code blocks, tables, frontmatter, and link definitions.] <br>\n\n## Skill Version(s): <br>\n1.9.13 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.9.12: 4 files, 5600 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (2113b), SKILL.md (4253b), _meta.json (150b)\n\nFile v1.9.12:SKILL.md\n\n---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.9.12:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.9.12\",\n  \"publishedAt\": 1781838860849\n}\n\nFile v1.9.12:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.9.12:skill-card.md\n\n## Description: <br>\nEnforces markdown line-wrap and structure rules for clean git diffs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and documentation authors use this skill to write, review, and revise committed Markdown with consistent 80-character wrapping, heading spacing, list spacing, and link formatting. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad documentation or formatting triggers may lead to large Markdown edits. <br>\nMitigation: Review the skill's suggestions before applying large repo-wide documentation changes. <br>\nRisk: Incorrect reflow can make documentation harder to review or alter protected Markdown structures. <br>\nMitigation: Keep code blocks, tables, frontmatter, HTML blocks, link definitions, and image lines exempt from wrapping as described by the artifact. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/nm-leyline-markdown-formatting) <br>\n- [Project homepage](https://github.com/athola/claude-night-market/tree/master/plugins/leyline) <br>\n- [Hybrid Line Wrapping Rules](modules/wrapping-rules.md) <br>\n- [Google Markdown style guide](https://google.github.io/styleguide/docguide/style.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, guidance] <br>\n**Output Format:** [Markdown guidance and edited Markdown prose] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Focuses on prose formatting; code blocks, tables, headings, frontmatter, HTML blocks, link definitions, and image lines are exempt from wrapping.] <br>\n\n## Skill Version(s): <br>\n1.9.12 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.3: 4 files, 5600 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (2036b), SKILL.md (4253b), _meta.json (149b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1781791772031\n}\n\nFile v1.0.3:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nEnforces markdown line-wrap and structure rules for clean git diffs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, documentation authors, and agents use this skill to format committed Markdown with clean line wrapping, consistent headings, list spacing, and reference-style links. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad writing and documentation triggers may activate the skill in more Markdown-related conversations than intended. <br>\nMitigation: Keep requests scoped and review proposed edits before applying them. <br>\nRisk: Formatting guidance can be misapplied to content that should not be reflowed, such as code blocks, tables, frontmatter, HTML blocks, link definitions, and image references. <br>\nMitigation: Preserve exempt content types and review Markdown diffs before committing generated changes. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/athola/nm-leyline-markdown-formatting) <br>\n- [Clawdis homepage](https://github.com/athola/claude-night-market/tree/master/plugins/leyline) <br>\n- [Hybrid Line Wrapping Rules](modules/wrapping-rules.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Guidance] <br>\n**Output Format:** [Markdown guidance and prose-editing recommendations] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Focuses on 80-character hybrid wrapping, heading spacing, ATX headings, list spacing, and reference-style links.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.2: 4 files, 5582 bytes\n\nFiles: modules/wrapping-rules.md (5261b), skill-card.md (1882b), SKILL.md (4347b), _meta.json (149b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: markdown-formatting\ndescription: |\n  >- Canonical markdown formatting conventions for diff-friendly documentation. Consult this skill when generating, editing, or reviewing markdown prose. Defines hybrid line wrapping, heading style, list spacing, and link conventions\nversion: 1.9.5\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1778293076730\n}\n\nFile v1.0.2:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nCanonical Markdown formatting guidance for diff-friendly documentation, covering hybrid line wrapping, heading style, list spacing, and link conventions. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[athola](https://clawhub.ai/user/athola) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, documentation writers, and agents use this skill when generating, editing, or reviewing Markdown prose for consistent wrapping, headings, lists, and links. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Line wrapping and formatting edits can unintentionally alter document meaning or readability. <br>\nMitigation: Review resulting Markdown edits as normal, especially changes that reflow prose or links. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/athola/nm-leyline-markdown-formatting) <br>\n- [Leyline Plugin Homepage](https://github.com/athola/claude-night-market/tree/master/plugins/leyline) <br>\n- [Hybrid Line Wrapping Rules](modules/wrapping-rules.md) <br>\n- [Google Markdown Style Guide](https://google.github.io/styleguide/docguide/style.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown, Text] <br>\n**Output Format:** [Markdown prose and formatting recommendations] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Instruction-only; no shell commands or API calls.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release metadata; artifact frontmatter reports 1.9.5) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.1: 3 files, 4526 bytes\n\nFiles: modules/wrapping-rules.md (5261b), SKILL.md (4347b), _meta.json (149b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: markdown-formatting\ndescription: |\n  >- Canonical markdown formatting conventions for diff-friendly documentation. Consult this skill when generating, editing, or reviewing markdown prose. Defines hybrid line wrapping, heading style, list spacing, and link conventions\nversion: 1.9.4\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1778077127897\n}\n\nFile v1.0.1:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).\n\nArchive v1.0.0: 3 files, 4527 bytes\n\nFiles: modules/wrapping-rules.md (5261b), SKILL.md (4347b), _meta.json (149b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: markdown-formatting\ndescription: |\n  >- Canonical markdown formatting conventions for diff-friendly documentation. Consult this skill when generating, editing, or reviewing markdown prose. Defines hybrid line wrapping, heading style, list spacing, and link conventions\nversion: 1.8.2\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full algorithm with\nexamples.\n\n## Structural Rules\n\n### Blank Lines Around Headings\n\n```markdown\nWRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text.\n```\n\nException: the first line of a file may be a heading without\na preceding blank line.\n\n### ATX Headings Only\n\n```markdown\nWRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading\n```\n\n### Blank Line Before Lists\n\n```markdown\nWRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two\n```\n\n### Reference-Style Links for Long URLs\n\nWhen an inline link pushes a line beyond 80 characters, use\nreference-style syntax:\n\n```markdown\nWRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace link definitions at the end of the current section or\nat the end of the document. When the same URL appears multiple\ntimes, use a single shared reference definition.\n\nShort inline links that keep the line under 80 chars are fine:\n\n```markdown\nOK:\nSee [the guide](https://example.com) for details.\n```\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1776092503779\n}\n\nFile v1.0.0:modules/wrapping-rules.md\n\n---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix) following the same\nalgorithm:\n\n```markdown\nBEFORE:\n> This is a very long blockquote line that exceeds 80 characters when you include the prefix marker.\n\nAFTER:\n> This is a very long blockquote line that exceeds\n> 80 characters when you include the prefix marker.\n```\n\n## List Items\n\nFor list items with long descriptions, wrap the continuation\nlines with appropriate indentation:\n\n```markdown\nBEFORE:\n- **markdown-formatting**: Canonical markdown formatting conventions for diff-friendly documentation generation and review.\n\nAFTER:\n- **markdown-formatting**: Canonical markdown formatting\n  conventions for diff-friendly documentation generation\n  and review.\n```\n\nContinuation lines align with the text start (2 spaces for\n`- `, 3 spaces for `1. `).\n\n## Reference-Style Links\n\nWhen an inline link would push a line beyond 80 characters,\nconvert to reference-style:\n\n```markdown\nBEFORE:\nSee the [complete formatting guide](https://google.github.io/styleguide/docguide/style.html) for more details.\n\nAFTER:\nSee the [complete formatting guide][fmt] for more details.\n\n[fmt]: https://google.github.io/styleguide/docguide/style.html\n```\n\nPlace definitions at the end of the current section (after the\nlast paragraph, before the next heading) or at the end of the\ndocument.\n\n## Examples: Full Paragraph\n\n### Before (no wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers and helps you remediate them. It analyzes vocabulary patterns, structural markers, and phrase patterns to calculate a slop density score on a 0-10 scale. Documents scoring above 2.5 should receive section-by-section review, while documents above 5.0 need a full rewrite to remove artificial patterns.\n```\n\n### After (hybrid wrapping)\n\n```markdown\nThe scribe plugin detects AI-generated content markers\nand helps you remediate them.\nIt analyzes vocabulary patterns, structural markers,\nand phrase patterns to calculate a slop density score\non a 0-10 scale.\nDocuments scoring above 2.5 should receive\nsection-by-section review,\nwhile documents above 5.0 need a full rewrite to remove\nartificial patterns.\n```\n\nNote how each sentence starts on its own line when possible,\nand long sentences break at clause boundaries (after commas)\nor before conjunctions (and, while).","readmeExcerpt":"Skill: markdown-formatting Owner: athola Summary: Enforces markdown line-wrap and structure rules for clean git diffs Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:14:50.645Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:35:54.012Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:52:35.744Z | user Release v1.9.16 v1.9.14 | 2026-06-30T18:01:32.157Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:19:55.208","codeSnippets":[],"executableExamples":[{"language":"markdown","snippet":"WRONG:\nSome text.\n## Heading\nMore text.\n\nRIGHT:\nSome text.\n\n## Heading\n\nMore text."},{"language":"markdown","snippet":"WRONG:\nHeading\n=======\n\nWRONG:\nSubheading\n----------\n\nRIGHT:\n# Heading\n\nRIGHT:\n## Subheading"},{"language":"markdown","snippet":"WRONG:\nSome introductory text:\n- Item one\n- Item two\n\nRIGHT:\nSome introductory text:\n\n- Item one\n- Item two"},{"language":"markdown","snippet":"WRONG (line too long):\nSee the [formatting guide](https://google.github.io/styleguide/docguide/style.html) for details.\n\nRIGHT:\nSee the [formatting guide][fmt-guide] for details.\n\n[fmt-guide]: https://google.github.io/styleguide/docguide/style.html"},{"language":"markdown","snippet":"OK:\nSee [the guide](https://example.com) for details."},{"language":"markdown","snippet":"BEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: markdown-formatting\ndescription: Enforces markdown line-wrap and structure rules for clean git diffs\nversion: 1.9.8\ntriggers:\n  - markdown\n  - formatting\n  - documentation\n  - line-wrapping\n  - style\n  - writing or editing any committed markdown documentation or skill file\nmetadata: {\"openclaw\": {\"homepage\": \"https://github.com/athola/claude-night-market/tree/master/plugins/leyline\", \"emoji\": \"\\ud83e\\udd9e\"}}\nsource: claude-night-market\nsource_plugin: leyline\n---\n\n> **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin.\n\n\n# Markdown Formatting Conventions\n\n## When To Use\n\n- Writing or editing any markdown documentation\n- Reviewing prose for line-wrapping compliance\n- Generating markdown from plugins (scribe, sanctum, etc.)\n\n## When NOT To Use\n\n- Editing code blocks, tables, or frontmatter (these have\n  their own formatting rules)\n- Quick scratch notes that will not be committed\n\nThese conventions apply to all markdown documentation generated\nor modified by any plugin. The goal: produce prose that creates\nclean, reviewable git diffs and reads well on mobile devices.\n\n## Quick Reference\n\nWhen writing or editing markdown prose:\n\n1. **Wrap prose at 80 chars** using hybrid wrapping (prefer\n   sentence/clause boundaries over arbitrary word breaks)\n2. **Blank line before and after every heading**\n3. **ATX headings only** (`# Heading`, never setext underlines)\n4. **Blank line before every list**\n5. **Reference-style links** when inline links push lines\n   beyond 80 chars\n\n## What to Wrap\n\nWrap these content types at 80 characters:\n\n- Paragraphs (flowing prose text)\n- Blockquote text (the content after `>`)\n- List item descriptions (text after `- ` or `1. `)\n- Descriptions in definition lists\n\n## What NOT to Wrap\n\nNever wrap or reflow these content types:\n\n- **Tables**: pipe-delimited rows stay on one line\n- **Code blocks**: fenced (` ``` `) or indented content\n- **Headings**: lines starting with `#`\n- **Frontmatter**: YAML/TOML between `---` or `+++`\n- **HTML blocks**: raw HTML elements\n- **Link definitions**: `[id]: url` reference lines\n- **Image references**: `![alt](url)` on their own line\n- **Single-line list items**: short bullets that fit on one line\n\n## Wrapping Algorithm (Summary)\n\nFor each prose paragraph:\n\n1. If a sentence fits within 80 chars, keep it on one line\n2. If a sentence exceeds 80 chars, break at the nearest\n   **sentence boundary** (`. ` `! ` `? `) before column 80\n3. If no sentence boundary, break at the nearest **clause\n   boundary** (`, ` `; ` `: `) before column 80\n4. If no clause boundary, break before a **conjunction**\n   (`and ` `but ` `or `) before column 80\n5. If none of the above, break at the last **word boundary**\n   before column 80\n6. Never break inside backtick spans, link text, or URLs\n\nSee `modules/wrapping-rules.md` for the full a"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7d107jg9jv602h9ytsegydq184a42s\",\n  \"slug\": \"nm-leyline-markdown-formatting\",\n  \"version\": \"1.9.19\",\n  \"publishedAt\": 1787750090645\n}"},{"path":"modules/wrapping-rules.md","content":"---\nmodule: wrapping-rules\ncategory: cross-plugin-patterns\ndependencies: []\nestimated_tokens: 600\n---\n\n# Hybrid Line Wrapping Rules\n\nWrap prose text at 80 characters per line, preferring semantic\nboundaries (sentences, clauses) over arbitrary word breaks.\nThis produces clean git diffs while keeping lines readable.\n\n## The Algorithm\n\nWhen writing a prose paragraph, apply these rules in order:\n\n### Priority 1: Sentence Boundaries\n\nIf a sentence (ending with `.` `!` or `?` followed by a space)\nfits within 80 characters, keep it on one line.\n\n```markdown\nBEFORE (single long line):\nInstall the plugin with npm. Configure it in your settings file. Restart the editor to activate.\n\nAFTER (one sentence per line, each under 80 chars):\nInstall the plugin with npm.\nConfigure it in your settings file.\nRestart the editor to activate.\n```\n\n### Priority 2: Clause Boundaries\n\nIf a sentence exceeds 80 characters, break after the nearest\ncomma, semicolon, or colon before column 80.\n\n```markdown\nBEFORE (one 95-char sentence):\nWhen the configuration file is missing, the system falls back to sensible defaults for all settings.\n\nAFTER (break after comma at position 43):\nWhen the configuration file is missing,\nthe system falls back to sensible defaults\nfor all settings.\n```\n\n### Priority 3: Conjunctions\n\nIf no clause boundary exists before column 80, break before\na conjunction: `and`, `but`, `or`, `nor`, `yet`, `so`.\n\n```markdown\nBEFORE:\nThe parser reads the input file and transforms each node into an output token.\n\nAFTER:\nThe parser reads the input file\nand transforms each node into an output token.\n```\n\n### Priority 4: Word Boundaries\n\nIf none of the above apply, break at the last word boundary\nbefore column 80.\n\n```markdown\nBEFORE:\nThe implementation requires understanding the underlying architecture thoroughly.\n\nAFTER:\nThe implementation requires understanding the underlying\narchitecture thoroughly.\n```\n\n## Never Break Inside\n\nThese constructs must stay intact on a single line:\n\n- **Inline code**: `` `some_function_name` `` stays together\n- **Link text**: `[link text]` stays on one line\n- **Link URLs**: `(https://example.com/path)` stays on one line\n- **Image syntax**: `![alt](url)` stays together\n- **Bold/italic spans**: `**bold text**` stays together\n\nIf keeping these intact pushes a line beyond 80 chars,\nthat is acceptable. Do not break the construct.\n\n## Exempt Content Types\n\nDo NOT apply wrapping to any of these:\n\n| Content Type | How to Identify |\n|-------------|-----------------|\n| Tables | Lines containing `\\|` pipe characters |\n| Code blocks | Between ` ``` ` fences or indented 4+ spaces |\n| Headings | Lines starting with `#` |\n| Frontmatter | Between `---` or `+++` delimiters at file start |\n| HTML blocks | Lines starting with `<` HTML tags |\n| Link defs | Lines matching `[id]: url` pattern |\n| Image lines | Lines that are only `![alt](url)` |\n\n## Blockquotes\n\nFor blockquote content, wrap the text inside the quote at 78\ncharacters (80 minus the `> ` prefix)"},{"path":"skill-card.md","content":"## Description:\n\nEnforces markdown line-wrap and structure rules for clean git diffs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[athola](https://clawhub.ai/user/athola)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, documentation authors, and agents use this skill to apply consistent Markdown wrapping and structural conventions while writing or reviewing committed documentation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill has broad documentation and formatting triggers, so it may activate during sensitive documentation work.\n\nMitigation: Review formatting-only changes before accepting them, especially in documents where line wrapping could affect readability, citations, or review history.\n\nRisk: The skill instructs agents not to reflow code blocks, tables, frontmatter, HTML blocks, links, and image references, but formatting edits can still accidentally affect exempt content.\n\nMitigation: Inspect diffs for protected Markdown constructs and reject changes that alter code, table rows, metadata, raw HTML, link definitions, or standalone image references.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/athola/skills/nm-leyline-markdown-formatting)\n- [Publisher profile](https://clawhub.ai/user/athola)\n- [OpenClaw homepage metadata](https://github.com/athola/claude-night-market/tree/master/plugins/leyline)\n- [Google Markdown style guide](https://google.github.io/styleguide/docguide/style.html)\n- [Hybrid line wrapping rules](modules/wrapping-rules.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Markdown, Text]\n\n**Output Format:** [Markdown prose guidance and formatting conventions]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces formatting recommendations for prose, headings, lists, links, and wrapping behavior; no tool calls or generated files are required by the skill.]\n\n## Skill Version(s):\n\n1.9.19 (source: server release evidence; artifact frontmatter says 1.9.8)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Enforces markdown line-wrap and structure rules for clean git diffs Skill: markdown-formatting Owner: athola Summary: Enforces markdown line-wrap and structure rules for clean git diffs Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:14:50.645Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:35:54.012Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:52:35.744Z | user Release v1.9.16 v1.9.14 | 2026-06-30T18:01:32.157Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:19:55.208","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1142,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T04:01:08.935Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T04:01:08.935Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:04:22.718Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}