@docsector/docsector-reader 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,6 +30,7 @@ Transform Markdown content into beautiful, navigable documentation sites — wit
30
30
  - 🤖 **AI-Friendly robots.txt** — Scaffold includes a `robots.txt` explicitly allowing 23 AI crawlers (GPTBot, ClaudeBot, PerplexityBot, GrokBot, etc.)
31
31
  - 🧭 **Content Signals** — Optional `Content-Signal` directive for declaring AI usage policy (`ai-train`, `search`, `ai-input`) in `robots.txt`
32
32
  - 🧩 **Agent Skills Discovery Index** — Optional `/.well-known/agent-skills/index.json` with RFC v0.2.0 schema and SHA-256 digests
33
+ - ✍️ **Docsector Authoring Skill** — Publishable `SKILL.md` that teaches agents Docsector blocks, page patterns, MCP lookup, and WebMCP tools
33
34
  - 🪪 **MCP Server Card** — Optional `/.well-known/mcp/server-card.json` for MCP server discovery before connection
34
35
  - 🌐 **WebMCP Browser Tools** — Optional registration of in-page tools via `navigator.modelContext` for browser agents
35
36
  - 🔗 **Homepage Link Headers** — Auto-generated `Link` response headers for agent discovery (`api-catalog`, `service-doc`, `service-desc`, `describedby`) per RFC 8288 / RFC 9727
@@ -77,6 +78,7 @@ Transform Markdown content into beautiful, navigable documentation sites — wit
77
78
  - 🗂️ **Cards Custom Element** — Use `<d-block-cards>` and `<d-block-card>` in Markdown to render linked content cards with optional cover images
78
79
  - 🧾 **API JSON Reference Block** — Use `<d-block-api src="..." />` in Markdown to render Quasar-compatible API reference UIs from public JSON assets without inventing a new schema
79
80
  - 🗂️ **API Catalog Well-Known** — Auto-generates `/.well-known/api-catalog` as Linkset JSON for machine-readable API discovery
81
+ - 🧠 **Docsector Authoring Skill Docs** — Documents the built-in `SKILL.md` and reference files so agents can learn Docsector blocks, page patterns, MCP lookup, and WebMCP tools from a public manual page
80
82
  - 🗃️ **Multi-Version History** — Archive older major versions under `src/pages/.old/<version>/` and expose them at prefixed routes (e.g. `/v0.x/guide/...`) while keeping the current docs at unprefixed routes
81
83
  - 🏷️ **Version Selector Badges** — Every version in the sidebar selector displays a color-coded badge: green for released, orange for draft, red for deprecated; fully customizable via `badge: { label, color, textColor }`
82
84
  - 📂 **Tabbed Code Blocks** — Group consecutive fenced code blocks into tabs using the `group` and `tab` attributes in the fence info line
@@ -527,6 +529,12 @@ The generated payload follows Agent Skills Discovery RFC v0.2.0 and includes:
527
529
  - `$schema`
528
530
  - `skills[]` entries with `name`, `type`, `description`, `url`, `digest`
529
531
 
532
+ This repository publishes the built-in Docsector authoring skill at:
533
+
534
+ - `/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md`
535
+
536
+ The skill teaches agents Docsector Markdown authoring, all documented blocks, page/source conventions, MCP lookup, and WebMCP browser tools.
537
+
530
538
  When `digest` is omitted in config, Docsector computes it automatically from the referenced local artifact and writes it as:
531
539
 
532
540
  - `sha256:{hex}`
@@ -543,10 +551,10 @@ export default {
543
551
  schema: 'https://schemas.agentskills.io/discovery/0.2.0/schema.json',
544
552
  skills: [
545
553
  {
546
- name: 'my-docs-mcp',
554
+ name: 'docsector-documentation-authoring',
547
555
  type: 'skill-md',
548
- description: 'Search and fetch docs pages via MCP.',
549
- url: '/.well-known/agent-skills/my-docs-mcp/SKILL.md'
556
+ description: 'Author Docsector documentation with Markdown, custom blocks, MCP, and WebMCP.',
557
+ url: '/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md'
550
558
  }
551
559
  ]
552
560
  }
@@ -757,10 +765,10 @@ export default {
757
765
  schema: 'https://schemas.agentskills.io/discovery/0.2.0/schema.json',
758
766
  skills: [
759
767
  {
760
- name: 'my-docs-mcp',
768
+ name: 'docsector-documentation-authoring',
761
769
  type: 'skill-md',
762
- description: 'Search and fetch docs pages via MCP.',
763
- url: '/.well-known/agent-skills/my-docs-mcp/SKILL.md'
770
+ description: 'Author Docsector documentation with Markdown, custom blocks, MCP, and WebMCP.',
771
+ url: '/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md'
764
772
  }
765
773
  ]
766
774
  },
package/bin/docsector.js CHANGED
@@ -23,7 +23,7 @@ const packageRoot = resolve(__dirname, '..')
23
23
  const args = process.argv.slice(2)
24
24
  const command = args[0]
25
25
 
26
- const VERSION = '4.2.0'
26
+ const VERSION = '4.3.0'
27
27
 
28
28
  const HELP = `
29
29
  Docsector Reader v${VERSION}
@@ -55,6 +55,21 @@ export default {
55
55
  toolSuffix: 'docsector'
56
56
  },
57
57
 
58
+ // @ Agent Skills
59
+ agentSkills: {
60
+ enabled: true,
61
+ path: '/.well-known/agent-skills/index.json',
62
+ schema: 'https://schemas.agentskills.io/discovery/0.2.0/schema.json',
63
+ skills: [
64
+ {
65
+ name: 'docsector-documentation-authoring',
66
+ type: 'skill-md',
67
+ description: 'Author Docsector documentation with Markdown, custom blocks, MCP, and WebMCP.',
68
+ url: '/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md'
69
+ }
70
+ ]
71
+ },
72
+
58
73
  // @ Home page source
59
74
  homePage: {
60
75
  source: 'remote-readme',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docsector/docsector-reader",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "A documentation rendering engine built with Vue 3, Quasar v2 and Vite. Transform Markdown into beautiful, navigable documentation sites.",
5
5
  "productName": "Docsector Reader",
6
6
  "author": "Rodrigo de Araujo Vieira",
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: docsector-documentation-authoring
3
+ description: "Author Docsector documentation with Markdown, d-block custom elements, page structures, blocks, MCP, WebMCP, and agent-readable docs. Use when writing or editing Docsector pages, choosing content blocks, creating examples, documenting APIs, or helping an AI understand Docsector authoring syntax."
4
+ argument-hint: "Describe the Docsector page, block, or documentation task"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Docsector Documentation Authoring
9
+
10
+ ## When to Use
11
+
12
+ Use this skill when creating, reviewing, or editing documentation for a site built with Docsector Reader.
13
+
14
+ Use it for:
15
+
16
+ - Choosing the right Docsector block for a content need.
17
+ - Writing Markdown pages with Docsector custom elements.
18
+ - Creating overview, showcase, guide, API reference, changelog, or landing content.
19
+ - Finding live Docsector docs through MCP, WebMCP, Markdown negotiation, or `llms.txt`.
20
+ - Teaching an AI assistant how Docsector pages, blocks, and examples are authored.
21
+
22
+ ## Expected Outcome
23
+
24
+ - The page uses standard Markdown where Markdown is enough.
25
+ - Rich interactions use the appropriate Docsector custom element.
26
+ - Links, assets, examples, and API JSON use Docsector conventions.
27
+ - The result is easy to scan, accessible, and friendly to both humans and agents.
28
+ - When MCP or WebMCP is available, current Docsector documentation is queried instead of relying only on memory.
29
+
30
+ ## Authoring Workflow
31
+
32
+ 1. Identify the page purpose: concept, tutorial, API reference, release note, navigation hub, example showcase, or troubleshooting guide.
33
+ 2. Use headings to shape the reading path. In normal page content, start with `##` because the page title is supplied by metadata.
34
+ 3. Pick the simplest block that communicates the content. Prefer Markdown first, then Docsector custom elements when the layout or interaction needs it.
35
+ 4. Keep custom element attributes short and explicit. Use `to` for internal navigation and `href` for external URLs.
36
+ 5. Put reusable assets in stable public paths such as `/images/...`, `/files/...`, `/api/...`, or `/quasar-api/...`.
37
+ 6. For live examples, place Vue SFCs under `src/examples/**/*.vue` and reference them with `<d-block-code-example>`.
38
+ 7. For API references, serve JSON from a same-origin public asset and reference it with `<d-block-api>`.
39
+ 8. Validate links, anchors, code fences, and custom element closing tags before finishing.
40
+
41
+ ## Quick Block Selection
42
+
43
+ | Need | Use |
44
+ | ------------------------------- | ------------------------ |
45
+ | Narrative text | Paragraphs |
46
+ | Page sections and anchors | Headings |
47
+ | Features or requirements | Unordered lists |
48
+ | Sequential instructions | Ordered lists or Stepper |
49
+ | Progress states | Task lists |
50
+ | Notes, tips, warnings | Hints |
51
+ | Quoted text | Quotes |
52
+ | Commands or source snippets | Code blocks |
53
+ | Live Vue demos | Code examples |
54
+ | Flowcharts or diagrams | Mermaid diagrams |
55
+ | Screenshots or diagrams | Images |
56
+ | Downloads | Files |
57
+ | Videos, audio, or pens | Embedded URLs |
58
+ | Equations | Math and TeX |
59
+ | Optional detail | Expandable |
60
+ | Guided sequence with navigation | Stepper |
61
+ | Changelog or release log | Timeline |
62
+ | Comparisons or matrices | Tables |
63
+ | Custom structure | Raw HTML |
64
+ | Small navigation sets | Quick Links |
65
+ | Visual navigation grids | Cards |
66
+ | Structured API docs | API Reference |
67
+
68
+ For the complete syntax and guidance, read [the block catalog](./references/block-catalog.md).
69
+
70
+ ## MCP and WebMCP
71
+
72
+ When a Docsector site exposes MCP, prefer live lookup for exact syntax and current examples.
73
+
74
+ Typical MCP tools are named with the configured suffix:
75
+
76
+ - `search_{suffix}` searches documentation pages.
77
+ - `get_page_{suffix}` returns raw Markdown for a documentation page.
78
+
79
+ This repository uses the suffix `docsector`, so the local docs tools are expected to be `search_docsector` and `get_page_docsector` when the MCP server is connected.
80
+
81
+ Use known paths such as:
82
+
83
+ - `manual/content/blocks/cards/overview`
84
+ - `manual/content/blocks/quick-links/overview`
85
+ - `manual/content/blocks/api-reference/overview`
86
+ - `manual/content/blocks/timeline/showcase`
87
+
88
+ Browser agents may also see WebMCP tools such as `docs.search_docs`, `docs.get_page`, `docs.navigate_to`, and `docs.copy_current_page`.
89
+
90
+ Read [MCP and WebMCP reference](./references/mcp-webmcp.md) for details and caveats.
91
+
92
+ ## Page and Asset Conventions
93
+
94
+ Read [page structure reference](./references/page-structure.md) before changing page layout, localization, examples, or public assets.
95
+
96
+ Key conventions:
97
+
98
+ - Manual block docs live under `src/pages/manual/content/blocks/`.
99
+ - Block pages usually have `overview` and `showcase` subpages.
100
+ - Localized source files use suffixes such as `.en-US.md` and `.pt-BR.md`.
101
+ - Downloadable files should use `/files/...` paths backed by `public/files/...`.
102
+ - Images should use `/images/...` paths backed by `public/images/...`.
103
+ - API JSON should use same-origin public paths such as `/api/...` or `/quasar-api/...`.
104
+
105
+ ## Authoring Patterns
106
+
107
+ Read [authoring patterns](./references/authoring-patterns.md) for common page recipes such as tutorials, changelogs, navigation hubs, API reference pages, and example showcases.
108
+
109
+ ## Quality Checklist
110
+
111
+ - The page has a clear first section and predictable heading hierarchy.
112
+ - Every custom element has required attributes and matching closing tags unless it is intentionally self-closing.
113
+ - Internal links use route paths and external links use absolute URLs.
114
+ - Images, files, examples, and API JSON point to assets that exist or are intentionally external.
115
+ - Hints are reserved for semantic callouts, not general decoration.
116
+ - Tables are not overloaded with prose that would read better as sections or lists.
117
+ - Nested custom blocks are used conservatively; avoid unsupported nested Expandable and Stepper patterns.
118
+ - MCP or WebMCP was used for current docs when available.
@@ -0,0 +1,98 @@
1
+ # Docsector Authoring Patterns
2
+
3
+ Use these patterns to choose a page shape before writing detailed content.
4
+
5
+ ## Tutorial or Setup Guide
6
+
7
+ Use when readers must follow a sequence.
8
+
9
+ Recommended blocks:
10
+
11
+ - Headings for major phases.
12
+ - Stepper for guided, interactive sequences.
13
+ - Code blocks for commands and configuration.
14
+ - Hints for warnings or best practices.
15
+ - Files for downloadable checklists or templates.
16
+
17
+ Start with a short outcome statement, then move into steps. Keep each step focused on one action and one result.
18
+
19
+ ## Concept or Overview Page
20
+
21
+ Use when readers need understanding before action.
22
+
23
+ Recommended blocks:
24
+
25
+ - Paragraphs for explanation.
26
+ - Headings for scannable sections.
27
+ - Unordered lists for capabilities and constraints.
28
+ - Images or Mermaid diagrams for mental models.
29
+ - Quick Links or Cards for next steps.
30
+
31
+ Avoid heavy custom blocks if a simple section and list are clearer.
32
+
33
+ ## Navigation Hub
34
+
35
+ Use when a page primarily routes readers to other content.
36
+
37
+ Recommended blocks:
38
+
39
+ - Quick Links for compact next steps.
40
+ - Cards for visual destinations.
41
+ - Short paragraphs for framing.
42
+ - Headings only when the hub has multiple groups.
43
+
44
+ Use `to` for Docsector routes and `href` for external URLs.
45
+
46
+ ## Changelog or Release Notes
47
+
48
+ Use when content is chronological.
49
+
50
+ Recommended blocks:
51
+
52
+ - Timeline for dated entries.
53
+ - Timeline tags for release channels, categories, or status.
54
+ - Hints for breaking changes or migration warnings.
55
+ - Code blocks for commands that users must run.
56
+ - Quick Links for related upgrade docs.
57
+
58
+ Give timeline items stable `anchor` values for important releases and migration entries.
59
+
60
+ ## API Reference Page
61
+
62
+ Use when structured API data is available.
63
+
64
+ Recommended blocks:
65
+
66
+ - API Reference for Quasar-compatible JSON.
67
+ - Code blocks for quick usage examples.
68
+ - Hints for compatibility or deprecation notes.
69
+ - Tables only for small summaries not already covered by the API block.
70
+
71
+ Keep JSON assets under same-origin public paths such as `/api/manual/...` or `/quasar-api/...`.
72
+
73
+ ## Example Showcase
74
+
75
+ Use when readers need to inspect behavior and source.
76
+
77
+ Recommended blocks:
78
+
79
+ - Code Examples for live Vue SFC previews.
80
+ - Code blocks for smaller standalone snippets.
81
+ - Expandable for optional implementation notes.
82
+ - Cards or Quick Links for related examples.
83
+
84
+ Use `expanded="true"` when source inspection is the main value. Set `codepen="false"` when an example cannot be exported safely.
85
+
86
+ ## Troubleshooting Page
87
+
88
+ Use when readers need to diagnose and resolve problems.
89
+
90
+ Recommended blocks:
91
+
92
+ - Headings for symptoms or error messages.
93
+ - Hints for warnings and high-risk operations.
94
+ - Ordered lists for resolution steps.
95
+ - Code blocks for commands and logs.
96
+ - Expandable for verbose logs or advanced diagnostics.
97
+
98
+ Keep the shortest successful path visible and move rare details into Expandable blocks.
@@ -0,0 +1,321 @@
1
+ # Docsector Block Catalog
2
+
3
+ This catalog summarizes the Docsector authoring blocks that an agent should know before writing documentation. Each block has live manual pages at `manual/content/blocks/{slug}/overview` and usually `manual/content/blocks/{slug}/showcase`.
4
+
5
+ ## Custom Element Blocks
6
+
7
+ | Block | Syntax | Use For | Manual Path |
8
+ | ------------- | --------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------- |
9
+ | Quick Links | `<d-block-quick-links>` with `<d-block-quick-link>` | Small sets of next-step links | `manual/content/blocks/quick-links/overview` |
10
+ | Cards | `<d-block-cards>` with `<d-block-card>` | Visual navigation grids and landing sections | `manual/content/blocks/cards/overview` |
11
+ | Timeline | `<d-block-timeline>` with `<d-block-timeline-item>` | Changelogs, release notes, rollout logs | `manual/content/blocks/timeline/overview` |
12
+ | Stepper | `<d-block-stepper>` with `<d-block-step>` | Guided multi-step flows with navigation | `manual/content/blocks/stepper/overview` |
13
+ | Expandable | `<d-block-expandable>` | Optional details, appendices, longer examples | `manual/content/blocks/expandable/overview` |
14
+ | Files | `<d-block-file>` | Download cards for attachments | `manual/content/blocks/files/overview` |
15
+ | Embedded URLs | `<d-block-embedded-url>` | YouTube, Vimeo, Spotify, CodePen, or link-card fallbacks | `manual/content/blocks/embedded-urls/overview` |
16
+ | Code Examples | `<d-block-code-example>` | Live Vue SFC previews with source inspection | `manual/content/blocks/code-examples/overview` |
17
+ | API Reference | `<d-block-api>` | Quasar-compatible JSON API reference UIs | `manual/content/blocks/api-reference/overview` |
18
+
19
+ ### Quick Links
20
+
21
+ Use Quick Links when a page needs a compact group of destinations without a long prose list.
22
+
23
+ ```html
24
+ <d-block-quick-links title="Get started">
25
+ <d-block-quick-link
26
+ title="Install"
27
+ description="Set up the project"
28
+ to="/guide/getting-started"
29
+ />
30
+ <d-block-quick-link
31
+ title="GitHub"
32
+ description="Open the repository"
33
+ href="https://github.com/docsector/docsector-reader"
34
+ />
35
+ </d-block-quick-links>
36
+ ```
37
+
38
+ Use `to` for internal navigation and `href` for external URLs. Keep descriptions short.
39
+
40
+ ### Cards
41
+
42
+ Use Cards for landing sections, curated resource grids, and visual navigation.
43
+
44
+ ```html
45
+ <d-block-cards title="Explore more">
46
+ <d-block-card
47
+ title="Install"
48
+ description="Set up the project"
49
+ to="/guide/getting-started"
50
+ image="/images/cards/getting-started-cover.svg"
51
+ />
52
+ <d-block-card
53
+ title="GitHub"
54
+ description="Open the repository"
55
+ href="https://github.com/docsector/docsector-reader"
56
+ icon="launch"
57
+ />
58
+ </d-block-cards>
59
+ ```
60
+
61
+ Prefer `image` for landing-page tiles and `icon` for lighter cards without covers.
62
+
63
+ ### Timeline
64
+
65
+ Use Timeline for chronological entries such as changelogs, release notes, migrations, and rollout journals.
66
+
67
+ ```html
68
+ <d-block-timeline>
69
+ <d-block-timeline-item date="2025-12-25" anchor="brand-new-update">
70
+ <d-block-timeline-tag color="warning" icon="rocket_launch"
71
+ >beta</d-block-timeline-tag
72
+ >
73
+ <d-block-timeline-tag color="secondary" text-color="white"
74
+ >docs</d-block-timeline-tag
75
+ >
76
+
77
+ ## A brand new update Use this block for release notes, product
78
+ announcements, migration notices, or operational updates.
79
+ </d-block-timeline-item>
80
+ </d-block-timeline>
81
+ ```
82
+
83
+ Every item needs `date`. Tags are optional and support text content or `label`, plus `color`, `text-color`, and `icon`. `anchor` is optional; Docsector can generate one from the date and first visible text. Headings inside timeline items are flattened so the page ToC stays stable.
84
+
85
+ ### Stepper
86
+
87
+ Use Stepper when the reader should move through a guided sequence.
88
+
89
+ ```html
90
+ <d-block-stepper>
91
+ <d-block-step title="Install dependencies">
92
+ Run `npm install` in the project root.
93
+ </d-block-step>
94
+
95
+ <d-block-step
96
+ title="Ship the release"
97
+ icon="rocket_launch"
98
+ active-icon="rocket_launch"
99
+ done-icon="task_alt"
100
+ >
101
+ Use icon attributes when a numbered prefix is not expressive enough.
102
+ </d-block-step>
103
+ </d-block-stepper>
104
+ ```
105
+
106
+ Every step needs `title`. Step bodies support common Markdown such as paragraphs, lists, hints, code fences, images, tables, and math. Avoid nested Stepper blocks and other custom Docsector blocks inside steps in the current version.
107
+
108
+ ### Expandable
109
+
110
+ Use Expandable for optional material that should not interrupt the main reading path.
111
+
112
+ ```html
113
+ <d-block-expandable title="Release checklist" open="true">
114
+ - Review breaking changes - Update screenshots - Run smoke tests
115
+ </d-block-expandable>
116
+ ```
117
+
118
+ Use `open="true"` to start expanded. Keep page headings outside expandable bodies because inner headings are flattened. Avoid nesting one expandable inside another.
119
+
120
+ ### Files
121
+
122
+ Use Files for attachments such as checklists, PDFs, sample bundles, and release assets.
123
+
124
+ ```html
125
+ <d-block-file
126
+ src="/files/manual/release-checklist.txt"
127
+ title="Release checklist"
128
+ size="1 KB"
129
+ >
130
+ Download the example attachment used in this manual.
131
+ </d-block-file>
132
+ ```
133
+
134
+ `src` is required. `title` and `size` are optional. When `title` is omitted, Docsector falls back to the file name from `src`. Store repo-tracked attachments under `public/files/` and reference them as `/files/...`.
135
+
136
+ ### Embedded URLs
137
+
138
+ Use Embedded URLs for curated public embeds while keeping Docsector's consistent card and preview treatment.
139
+
140
+ ```html
141
+ <d-block-embedded-url
142
+ url="https://www.youtube.com/watch?v=M7lc1UVf-VE"
143
+ title="YouTube player demo"
144
+ >
145
+ Optional caption rendered as inline Markdown.
146
+ </d-block-embedded-url>
147
+ ```
148
+
149
+ `url` is required and `title` is optional. Supported providers are YouTube, Vimeo, Spotify, and CodePen. Unsupported or private URLs render as safe external-link cards.
150
+
151
+ ### Code Examples
152
+
153
+ Use Code Examples to render project Vue SFCs as live previews with source inspection.
154
+
155
+ ```html
156
+ <d-block-code-example
157
+ src="manual/code-examples/basic-counter"
158
+ title="Basic counter"
159
+ />
160
+ ```
161
+
162
+ Place examples under `src/examples/**/*.vue`. The `src` value is normalized to kebab-case, so `manual/code-examples/basic-counter` resolves to `src/examples/manual/code-examples/BasicCounter.vue`. `file` is an alias for `src`.
163
+
164
+ Common attributes:
165
+
166
+ | Attribute | Purpose |
167
+ | ------------ | ---------------------------------------------- |
168
+ | `src` | Example id under `src/examples/**/*.vue` |
169
+ | `file` | Alias for `src` |
170
+ | `title` | Header title above the preview |
171
+ | `expanded` | Opens the source panel by default when `true` |
172
+ | `codepen` | Shows the CodePen action unless set to `false` |
173
+ | `scrollable` | Gives the preview a fixed scrollable height |
174
+ | `overflow` | Allows horizontal and vertical overflow |
175
+ | `height` | Sets a preview height such as `360` or `420px` |
176
+
177
+ ### API Reference
178
+
179
+ Use API Reference blocks to render Quasar-compatible JSON API documentation.
180
+
181
+ ```html
182
+ <d-block-api src="/quasar-api/QSeparator.json" />
183
+
184
+ <d-block-api
185
+ src="/api/manual/http-client.json"
186
+ title="HTTP Client API"
187
+ page-link="true"
188
+ />
189
+ ```
190
+
191
+ `src` is required and should point to same-origin JSON. `title` overrides the header. `page-link="true"` shows a Docs button when the JSON includes `meta.docsUrl`. Useful JSON sections include `props`, `methods`, `events`, `value`, `arg`, and `quasarConfOptions`; entries with `internal: true` are hidden.
192
+
193
+ ## Markdown and Native Blocks
194
+
195
+ | Block | Syntax | Use For | Manual Path |
196
+ | ---------------- | -------------------------- | ------------------------------- | ------------------------------------------------- |
197
+ | Paragraphs | Plain Markdown text | Explanations and transitions | `manual/content/blocks/paragraphs/overview` |
198
+ | Headings | `##`, `###`, `####` | Sections, anchors, page ToC | `manual/content/blocks/headings/overview` |
199
+ | Unordered Lists | `- item` | Feature sets and requirements | `manual/content/blocks/unordered-lists/overview` |
200
+ | Ordered Lists | `1. item` | Sequential procedures | `manual/content/blocks/ordered-lists/overview` |
201
+ | Task Lists | `- [ ] item`, `- [x] item` | Static checklists | `manual/content/blocks/task-lists/overview` |
202
+ | Hints | `> [!WARNING]` | Semantic notes and warnings | `manual/content/blocks/hints/overview` |
203
+ | Quotes | `> text` | Neutral quoted text | `manual/content/blocks/quotes/overview` |
204
+ | Code Blocks | Fenced code | Commands and snippets | `manual/content/blocks/code-blocks/overview` |
205
+ | Mermaid Diagrams | Fenced `mermaid` code | Flowcharts and diagrams | `manual/content/blocks/mermaid-diagrams/overview` |
206
+ | Images | `![caption](/path.png)` | Screenshots and illustrations | `manual/content/blocks/images/overview` |
207
+ | Math and TeX | `$...$`, `$$...$$` | Inline and display equations | `manual/content/blocks/math-and-tex/overview` |
208
+ | Tables | Markdown tables | Comparisons and matrices | `manual/content/blocks/tables/overview` |
209
+ | Raw HTML | HTML tags | Custom structure and attributes | `manual/content/blocks/raw-html/overview` |
210
+
211
+ ### Paragraphs
212
+
213
+ Use paragraphs for narrative copy. Separate paragraphs with a blank line. Inline emphasis, links, inline code, and math work inside normal paragraphs.
214
+
215
+ ### Headings
216
+
217
+ Use headings to organize the page and feed the right-side table of contents. In page content, start with `##` because the page title is generated from page metadata. Keep heading levels in order and use headings for sections that readers may bookmark or deep-link.
218
+
219
+ ### Lists
220
+
221
+ Use unordered lists when order does not matter. Use ordered lists when sequence matters. Use task lists when each item should show a done or not-done state. Published task-list checkboxes are static and cannot be toggled by readers.
222
+
223
+ ### Hints
224
+
225
+ Use GitHub-style alert markers in blockquotes:
226
+
227
+ ```markdown
228
+ > [!WARNING]
229
+ > This operation may interrupt workers.
230
+ ```
231
+
232
+ Supported markers are `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, and `CAUTION`. Unknown markers fall back to regular quotes.
233
+
234
+ ### Quotes
235
+
236
+ Use regular blockquotes for cited text or neutral notes that should stand apart from the main flow without semantic alert styling.
237
+
238
+ ```markdown
239
+ > This is a regular quote.
240
+ ```
241
+
242
+ ### Code Blocks
243
+
244
+ Use fenced code blocks for commands and snippets. Docsector renders syntax highlighting, line numbers, copy support, grouped tabs, breadcrumbs, and file metadata.
245
+
246
+ ````markdown
247
+ ```bash :filename="install.sh";
248
+ npm install
249
+ npm run dev
250
+ ```
251
+ ````
252
+
253
+ Useful metadata attributes are `filename`, `group`, `tab`, and `breadcrumb` using `:attr;` syntax.
254
+
255
+ ### Mermaid Diagrams
256
+
257
+ Use a fenced `mermaid` block for diagrams.
258
+
259
+ ````markdown
260
+ ```mermaid
261
+ flowchart TD
262
+ A[Start] --> B[Finish]
263
+ ```
264
+ ````
265
+
266
+ Docsector lazy-loads Mermaid, renders responsive SVG, adapts to light and dark mode, and shows a safe error state for invalid Mermaid syntax.
267
+
268
+ ### Images
269
+
270
+ Use standard Markdown images for screenshots, illustrations, diagrams, and product UI.
271
+
272
+ ```markdown
273
+ ![Dashboard overview](/images/example-dashboard.png)
274
+ ```
275
+
276
+ Standalone Markdown images render as block figures with click-to-zoom. The label is used as both caption and alt text. Use raw `<figure>` and `<picture>` markup when alt text and visible caption need to differ.
277
+
278
+ ### Math and TeX
279
+
280
+ Use single dollar delimiters for inline math and double dollar delimiters for display math.
281
+
282
+ ```markdown
283
+ Use $E = mc^2$ inside a sentence.
284
+
285
+ $$
286
+ \int_0^1 x^2 dx
287
+ $$
288
+ ```
289
+
290
+ Math works in paragraphs, hints, and expandable blocks. Delimiters remain literal inside inline code and fenced code blocks.
291
+
292
+ ### Tables
293
+
294
+ Use tables for comparisons, option matrices, compatibility notes, and scannable row-column content.
295
+
296
+ ```markdown
297
+ | Feature | Status | Notes |
298
+ | ------- | ------ | ------------------------ |
299
+ | Search | Done | Available in the sidebar |
300
+ ```
301
+
302
+ Keep column labels short. Split very dense tables into smaller sections.
303
+
304
+ ### Raw HTML
305
+
306
+ Use raw HTML only when Markdown is not expressive enough or when authoring Docsector custom elements.
307
+
308
+ ```html
309
+ <div data-kind="secondary-note">
310
+ This block uses raw HTML inside the page source.
311
+ </div>
312
+ ```
313
+
314
+ Prefer plain Markdown first. Keep raw markup readable because documentation content still needs maintenance.
315
+
316
+ ## Renderer and Parser References
317
+
318
+ - `src/components/page-section-tokens.js` parses custom elements and Markdown tokens.
319
+ - `src/components/DPageTokens.vue` dispatches tokens to block components.
320
+ - `src/components/DBlockCards.vue`, `DBlockQuickLinks.vue`, `DBlockTimeline.vue`, `DBlockStepper.vue`, `DBlockExpandable.vue`, `DBlockFile.vue`, `DBlockEmbeddedUrl.vue`, `DBlockCodeExample.vue`, and `DBlockApi.vue` render custom element blocks.
321
+ - `src/components/DBlockSourceCode.vue`, `DBlockMermaidDiagram.vue`, `DBlockBlockquote.vue`, and `DBlockImage.vue` render richer Markdown blocks.
@@ -0,0 +1,90 @@
1
+ # MCP and WebMCP Reference
2
+
3
+ Docsector can expose documentation to agents through MCP, WebMCP, Markdown negotiation, and `llms.txt`. Use these sources when an assistant needs current docs instead of only the static guidance in this skill.
4
+
5
+ ## MCP Server
6
+
7
+ When configured, Docsector generates an MCP endpoint at:
8
+
9
+ ```text
10
+ /mcp
11
+ ```
12
+
13
+ The server exposes tools named with the configured suffix:
14
+
15
+ | Tool | Purpose |
16
+ | ------------------- | ------------------------------------- |
17
+ | `search_{suffix}` | Search documentation pages by keyword |
18
+ | `get_page_{suffix}` | Fetch raw Markdown for a page path |
19
+
20
+ This repository configures `toolSuffix: 'docsector'`, so connected MCP clients should see:
21
+
22
+ ```text
23
+ search_docsector
24
+ get_page_docsector
25
+ ```
26
+
27
+ ## MCP Page Paths
28
+
29
+ `get_page_{suffix}` expects paths without a leading slash, trailing slash, or `.md` suffix. It can try an `/overview` fallback when the primary path is not found.
30
+
31
+ Useful examples:
32
+
33
+ ```text
34
+ manual/content/blocks/quick-links/overview
35
+ manual/content/blocks/cards/overview
36
+ manual/content/blocks/code-examples/overview
37
+ manual/content/blocks/api-reference/overview
38
+ manual/content/blocks/timeline/showcase
39
+ guide/getting-started/overview
40
+ ```
41
+
42
+ ## Recommended Agent Flow
43
+
44
+ 1. Use `search_{suffix}` for discovery, such as `search_docsector` with `"timeline block"`.
45
+ 2. Use `get_page_{suffix}` with the best matching path.
46
+ 3. Read the returned Markdown examples before authoring or changing a custom element.
47
+ 4. Prefer the live manual page when it conflicts with this static skill.
48
+ 5. If MCP is not connected, use Markdown URLs, `llms.txt`, or the references bundled with this skill.
49
+
50
+ ## WebMCP Browser Tools
51
+
52
+ When `navigator.modelContext` is available in a secure browser context, Docsector can register browser-side tools. Typical tool names are:
53
+
54
+ | Tool | Purpose |
55
+ | ------------------------ | ----------------------------------------------------------------- |
56
+ | `docs.search_docs` | Search docs through the MCP bridge |
57
+ | `docs.get_page` | Fetch page Markdown through the MCP bridge |
58
+ | `docs.navigate_to` | Navigate the single-page app to a route and optional hash |
59
+ | `docs.copy_current_page` | Return the current page path, Markdown URL, and optionally source |
60
+
61
+ Use these tools when working inside a Docsector page with a browser agent. Use MCP tools directly when working from an editor or external assistant.
62
+
63
+ ## Markdown and LLM Discovery
64
+
65
+ Docsector pages can expose raw Markdown in several ways:
66
+
67
+ - Append `.md` to a page URL.
68
+ - Send `Accept: text/markdown` to use Markdown negotiation.
69
+ - Use `/llms.txt` for an index of pages when `siteUrl` is configured.
70
+ - Use `/llms-full.txt` for concatenated full content when generated.
71
+
72
+ These are useful fallbacks when MCP is unavailable.
73
+
74
+ ## Discovery Artifacts
75
+
76
+ Docsector can also publish machine-readable discovery files:
77
+
78
+ | Artifact | Purpose |
79
+ | -------------------------------------- | ---------------------------- |
80
+ | `/.well-known/mcp/server-card.json` | MCP server discovery |
81
+ | `/.well-known/agent-skills/index.json` | Agent Skills Discovery index |
82
+ | `/.well-known/api-catalog` | API catalog Linkset JSON |
83
+
84
+ ## Caveats
85
+
86
+ - MCP search indexes pages, not individual component schemas.
87
+ - Public API JSON files under `/api/...` and `/quasar-api/...` are static assets and may not be directly searchable through MCP page search.
88
+ - WebMCP requires browser support for `navigator.modelContext` and a secure context, except where localhost is allowed by the browser.
89
+ - Generated MCP indexes are build artifacts, so a production build is required after source changes.
90
+ - If multiple Docsector sites are connected to the same assistant, each site should use a unique MCP tool suffix.
@@ -0,0 +1,101 @@
1
+ # Docsector Page Structure
2
+
3
+ Use this reference when adding or editing Docsector content files, assets, examples, and API reference data.
4
+
5
+ ## Page Sources
6
+
7
+ Docsector pages are registered in index files such as `src/pages/manual.index.js` and backed by localized Markdown files under `src/pages/`.
8
+
9
+ Manual content blocks follow this pattern:
10
+
11
+ ```text
12
+ src/pages/manual/content/blocks/{block}.overview.en-US.md
13
+ src/pages/manual/content/blocks/{block}.showcase.en-US.md
14
+ src/pages/manual/content/blocks/{block}.overview.pt-BR.md
15
+ src/pages/manual/content/blocks/{block}.showcase.pt-BR.md
16
+ ```
17
+
18
+ The route path maps to MCP/page paths such as:
19
+
20
+ ```text
21
+ manual/content/blocks/cards/overview
22
+ manual/content/blocks/cards/showcase
23
+ ```
24
+
25
+ ## Overview and Showcase
26
+
27
+ Use `overview` for conceptual explanation, syntax, attributes, and authoring notes. Use `showcase` for varied examples that demonstrate the block in realistic content.
28
+
29
+ Most block docs should include both subpages. Structure docs such as page, subpage, or books may use different subpage rules depending on their registry configuration.
30
+
31
+ ## Localization
32
+
33
+ Localized Markdown files use locale suffixes such as `.en-US.md` and `.pt-BR.md`. Keep route structure and headings aligned across locales when possible so translation progress and navigation remain useful.
34
+
35
+ New repository-facing documentation and AI customization files should be written in English unless the file is explicitly a locale-specific translation.
36
+
37
+ ## Assets
38
+
39
+ Use public site paths in Markdown:
40
+
41
+ | Asset Type | Repo Location | Public Path |
42
+ | --------------- | ----------------------- | ----------------- |
43
+ | Images | `public/images/...` | `/images/...` |
44
+ | Files | `public/files/...` | `/files/...` |
45
+ | Manual API JSON | `public/api/manual/...` | `/api/manual/...` |
46
+ | Quasar API JSON | `public/quasar-api/...` | `/quasar-api/...` |
47
+
48
+ Prefer absolute public paths in documentation so pages keep working when routes move.
49
+
50
+ ## Code Examples
51
+
52
+ Live code examples are Vue SFC files discovered from `src/examples/**/*.vue`.
53
+
54
+ Reference them with:
55
+
56
+ ```html
57
+ <d-block-code-example
58
+ src="manual/code-examples/basic-counter"
59
+ title="Basic counter"
60
+ />
61
+ ```
62
+
63
+ The `src` value is normalized to kebab-case and resolves to a PascalCase `.vue` file. For example, `manual/code-examples/basic-counter` resolves to `src/examples/manual/code-examples/BasicCounter.vue`.
64
+
65
+ Use `file` as an alias for `src` only when migrating from Quasar Docs-style examples.
66
+
67
+ ## API Reference JSON
68
+
69
+ API blocks fetch JSON from same-origin public assets:
70
+
71
+ ```html
72
+ <d-block-api
73
+ src="/api/manual/http-client.json"
74
+ title="HTTP Client API"
75
+ page-link="true"
76
+ />
77
+ ```
78
+
79
+ The JSON can follow Quasar's API schema. Useful sections include `props`, `methods`, `events`, `value`, `arg`, and `quasarConfOptions`. Entries marked `internal: true` are hidden.
80
+
81
+ ## Navigation and Metadata
82
+
83
+ Page registry entries in `src/pages/*.index.js` define titles, status, icons, books, menu placement, subpage availability, descriptions, and search tags.
84
+
85
+ When adding new content, check the nearest existing entry and keep metadata consistent with that section.
86
+
87
+ ## Authoring Rules
88
+
89
+ - Prefer Markdown for simple content.
90
+ - Use custom elements only when they add structure, interaction, or a clearer reading path.
91
+ - Use `to` for internal Docsector routes and `href` for external URLs.
92
+ - Avoid repeating the same Markdown source in multiple routes.
93
+ - Keep page headings outside Expandable, Stepper, and Timeline bodies when they are meant to appear in the page-level table of contents.
94
+ - Avoid unsupported nested custom block combinations unless current manual docs explicitly show the pattern.
95
+
96
+ ## Validation Pointers
97
+
98
+ - Parser behavior is centered in `src/components/page-section-tokens.js`.
99
+ - Rendering is dispatched by `src/components/DPageTokens.vue`.
100
+ - Manual block registration is covered by `tests/manual-content-showcases.spec.js`.
101
+ - Parser and block edge cases are covered by focused tests such as `tests/page-section-tokens.spec.js`, `tests/code-example-source.spec.js`, `tests/embedded-url-providers.spec.js`, and `tests/api-block-model.spec.js`.
@@ -0,0 +1,77 @@
1
+ ## Overview
2
+
3
+ Docsector Reader ships a public authoring skill for AI agents that need to understand how Docsector documentation works.
4
+
5
+ The skill is a `SKILL.md` file with companion references. It explains Docsector Markdown conventions, every documented block, page structure, asset paths, authoring patterns, MCP lookup, and WebMCP browser tools.
6
+
7
+ ## Public URLs
8
+
9
+ The built-in skill is published as a static artifact:
10
+
11
+ ```text
12
+ /.well-known/agent-skills/docsector-documentation-authoring/SKILL.md
13
+ ```
14
+
15
+ The discovery index points agents to the same file and includes a SHA-256 digest:
16
+
17
+ ```text
18
+ /.well-known/agent-skills/index.json
19
+ ```
20
+
21
+ ## What the Skill Contains
22
+
23
+ <d-block-quick-links title="Skill references">
24
+ <d-block-quick-link
25
+ title="SKILL.md"
26
+ description="The compact workflow agents load first"
27
+ href="/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md"
28
+ />
29
+ <d-block-quick-link
30
+ title="Block catalog"
31
+ description="All Docsector blocks, syntax, and when-to-use guidance"
32
+ href="/.well-known/agent-skills/docsector-documentation-authoring/references/block-catalog.md"
33
+ />
34
+ <d-block-quick-link
35
+ title="Page structure"
36
+ description="Page files, locales, assets, examples, and API JSON conventions"
37
+ href="/.well-known/agent-skills/docsector-documentation-authoring/references/page-structure.md"
38
+ />
39
+ <d-block-quick-link
40
+ title="MCP and WebMCP"
41
+ description="How agents can search, fetch, navigate, and copy live docs"
42
+ href="/.well-known/agent-skills/docsector-documentation-authoring/references/mcp-webmcp.md"
43
+ />
44
+ </d-block-quick-links>
45
+
46
+ ## Local and Published Copies
47
+
48
+ Docsector keeps two synchronized copies of the same skill:
49
+
50
+ - `.github/skills/docsector-documentation-authoring/` for repository-local assistants such as GitHub Copilot in VS Code.
51
+ - `public/.well-known/agent-skills/docsector-documentation-authoring/` for the built documentation site.
52
+
53
+ During build, Docsector copies the public artifact into `dist/spa/.well-known/agent-skills/` and generates the discovery index.
54
+
55
+ ## How Agents Should Use It
56
+
57
+ Agents should load `SKILL.md` first, then open reference files only when a task needs more detail.
58
+
59
+ For current page examples, agents can combine the skill with Docsector's MCP tools:
60
+
61
+ ```text
62
+ search_docsector
63
+ get_page_docsector
64
+ ```
65
+
66
+ Browser agents can also use WebMCP tools when `navigator.modelContext` is available:
67
+
68
+ - `docs.search_docs`
69
+ - `docs.get_page`
70
+ - `docs.navigate_to`
71
+ - `docs.copy_current_page`
72
+
73
+ ## When to Publish Your Own Skill
74
+
75
+ Publish a project-specific skill when your documentation has domain rules that are not covered by the built-in Docsector authoring skill.
76
+
77
+ Use Docsector's `agentSkills` config to expose the skill through `/.well-known/agent-skills/index.json`, and keep the artifact under `public/.well-known/agent-skills/...` when you want Docsector to compute the digest automatically.
@@ -0,0 +1,77 @@
1
+ ## Visão Geral
2
+
3
+ O Docsector Reader publica uma skill de autoria para agentes de IA que precisam entender como a documentação Docsector funciona.
4
+
5
+ A skill é um arquivo `SKILL.md` com referências complementares. Ela explica as convenções de Markdown do Docsector, todos os blocos documentados, estrutura de páginas, caminhos de assets, padrões de autoria, busca via MCP e ferramentas WebMCP no navegador.
6
+
7
+ ## URLs Públicas
8
+
9
+ A skill embutida é publicada como artefato estático:
10
+
11
+ ```text
12
+ /.well-known/agent-skills/docsector-documentation-authoring/SKILL.md
13
+ ```
14
+
15
+ O índice de descoberta aponta os agentes para o mesmo arquivo e inclui um digest SHA-256:
16
+
17
+ ```text
18
+ /.well-known/agent-skills/index.json
19
+ ```
20
+
21
+ ## O Que a Skill Contém
22
+
23
+ <d-block-quick-links title="Referências da skill">
24
+ <d-block-quick-link
25
+ title="SKILL.md"
26
+ description="O fluxo compacto que os agentes carregam primeiro"
27
+ href="/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md"
28
+ />
29
+ <d-block-quick-link
30
+ title="Catálogo de blocos"
31
+ description="Todos os blocos Docsector, sintaxe e orientação de uso"
32
+ href="/.well-known/agent-skills/docsector-documentation-authoring/references/block-catalog.md"
33
+ />
34
+ <d-block-quick-link
35
+ title="Estrutura de páginas"
36
+ description="Arquivos de página, locales, assets, exemplos e convenções de API JSON"
37
+ href="/.well-known/agent-skills/docsector-documentation-authoring/references/page-structure.md"
38
+ />
39
+ <d-block-quick-link
40
+ title="MCP e WebMCP"
41
+ description="Como agentes podem buscar, ler, navegar e copiar docs ao vivo"
42
+ href="/.well-known/agent-skills/docsector-documentation-authoring/references/mcp-webmcp.md"
43
+ />
44
+ </d-block-quick-links>
45
+
46
+ ## Cópias Local e Publicada
47
+
48
+ O Docsector mantém duas cópias sincronizadas da mesma skill:
49
+
50
+ - `.github/skills/docsector-documentation-authoring/` para assistentes locais do repositório, como o GitHub Copilot no VS Code.
51
+ - `public/.well-known/agent-skills/docsector-documentation-authoring/` para o site de documentação gerado.
52
+
53
+ Durante o build, o Docsector copia o artefato público para `dist/spa/.well-known/agent-skills/` e gera o índice de descoberta.
54
+
55
+ ## Como Agentes Devem Usar
56
+
57
+ Agentes devem carregar primeiro o `SKILL.md` e abrir os arquivos de referência apenas quando a tarefa precisar de mais detalhes.
58
+
59
+ Para exemplos atuais de páginas, agentes podem combinar a skill com as ferramentas MCP do Docsector:
60
+
61
+ ```text
62
+ search_docsector
63
+ get_page_docsector
64
+ ```
65
+
66
+ Agentes no navegador também podem usar ferramentas WebMCP quando `navigator.modelContext` estiver disponível:
67
+
68
+ - `docs.search_docs`
69
+ - `docs.get_page`
70
+ - `docs.navigate_to`
71
+ - `docs.copy_current_page`
72
+
73
+ ## Quando Publicar Sua Própria Skill
74
+
75
+ Publique uma skill específica do projeto quando sua documentação tiver regras de domínio que não são cobertas pela skill de autoria embutida do Docsector.
76
+
77
+ Use a configuração `agentSkills` do Docsector para expor a skill por `/.well-known/agent-skills/index.json`, e mantenha o artefato em `public/.well-known/agent-skills/...` quando quiser que o Docsector calcule o digest automaticamente.
@@ -265,6 +265,35 @@ export default {
265
265
  }
266
266
  },
267
267
 
268
+ '/basic/agent-skills': {
269
+ config: {
270
+ icon: 'psychology',
271
+ status: 'new',
272
+ version: 'v4.3.0',
273
+ meta: {
274
+ description: {
275
+ 'en-US': 'Agent Skills — Documentation of Docsector Reader',
276
+ 'pt-BR': 'Skills de Agentes — Documentacao do Docsector Reader'
277
+ }
278
+ },
279
+ book: 'manual',
280
+ menu: {},
281
+ subpages: {
282
+ showcase: false
283
+ }
284
+ },
285
+ data: {
286
+ 'en-US': { title: 'Agent Skills' },
287
+ 'pt-BR': { title: 'Skills de Agentes' }
288
+ },
289
+ metadata: {
290
+ tags: {
291
+ 'en-US': 'agent skills skill md authoring blocks references mcp webmcp ai discovery well-known copilot',
292
+ 'pt-BR': 'skills agentes skill md autoria blocos referências mcp webmcp ia descoberta well-known copilot'
293
+ }
294
+ }
295
+ },
296
+
268
297
  // =========================================================================
269
298
  // Content
270
299
  // =========================================================================