@getnarro/docspack
v0.1.2
Published
Narro's documentation as a docspack — version-locked chunks an agent installs once and searches offline
Maintainers
Readme
@getnarro/docspack
Narro's documentation as a docspack — version-locked chunks an agent installs once and searches offline
getnarro.com · Documentation · Ecosystem
npm install --save-dev @getnarro/docspack docspack
npx docspack sync
npx docspack ask "how do I split a slide into two columns"Why this exists
An agent writing a Narro deck has to know the markdown dialect, which package
each component comes from, and which layout names are real. Left to guess it
writes layout: split — plausible, never existed, and the deck builds anyway
and renders wrong.
@getnarro/docs already ships that knowledge, and an agent has to load a whole
page to use it. This package ships the same material as
docspack chunks: installed from npm, indexed locally in
SQLite, searched offline, and answered three chunks at a time instead of
twenty thousand tokens at a time.
| | Fetching getnarro.com | @getnarro/docs | @getnarro/docspack |
| --- | --- | --- | --- |
| Version | latest | installed | installed |
| Network | required | none | none |
| Retrieval | whole page | whole page | ranked chunks |
| Per answer | a page | a page | ≤ 3 chunks, ≤ 3000 tokens |
All three describe the same documentation. Which one you want depends on whether the agent can reach the network, and how much of its context window a question is allowed to cost.
Giving an agent access
Two lines in AGENTS.md or CLAUDE.md, and nothing else:
Run `docspack ask "<question>"` for documentation on this project's
dependencies. It answers from the installed versions.docspack mcp serves the same index over MCP for assistants that would rather
have a declared tool. Both return identical text.
What is in it
| | | | --- | --- | | Every documentation page | split at its own headings, one chunk per section | | The component reference | one chunk per component, each naming the package it is exported by | | The catalog | the closed sets — every layout, theme, transition, colour scheme, font preset, frontmatter key, template and CLI command that exists |
The catalog is the part a prose search cannot replace. A model that picks
layout: out of a complete list cannot invent a name; one that reads a page
about layouts can, and does.
Ask for a name it should be constrained by, and the answer is the whole set:
$ npx docspack ask "which layout values are valid in slide frontmatter"
## @getnarro/[email protected]/catalog-layouts
Valid `layout:` values in slide frontmatter. A name absent from this list does not exist.
- `default`
- `cover`
…How it is built
Nothing here is written by hand. scripts/stage.mjs reads @getnarro/docs —
whose own build reads the component props out of the TypeScript source and the
closed sets out of the shipping registries — and writes markdown into docs/.
docspack build chunks that into .llms/, and docspack doctor checks the
result before it can be published.
pnpm --filter @getnarro/docspack build # stage → build → doctor
pnpm --filter @getnarro/docspack test # the payload the tarball will shipThe staging step is small but not cosmetic. It gives the paragraphs above a
page's first heading a heading of their own, so chunk ids read as
markdown-mode-overview rather than markdown-mode-markdown-mode; and it adds
the import line to each component's section, because the package heading sits
two levels above it and would otherwise not be in the chunk that names the
component.
docs/, .llms/ and llms.txt are generated and git-ignored. prepublishOnly
regenerates and re-checks them, so a stale payload cannot reach the registry.
Reporting a documentation problem
The package accepts drift, incorrect and missing findings, routed to this
repository:
npx docspack feedback add --chunk @getnarro/[email protected]/catalog-layouts \
--kind drift --evidence "layout: banner is accepted but absent from the set"
npx docspack feedback submitadd writes to a local file. submit prepares an issue for a human to open,
and sends nothing on its own.
The Narro ecosystem
| Package | What it is |
| --- | --- |
| @getnarro/cli | CLI tools for creating and managing Narro presentations |
| @getnarro/core | The React runtime for Narro presentations — Presentation, Slide, navigation, transitions, and speaker notes |
| @getnarro/docs | Narro's documentation as data — markdown pages, a generated component API reference, and llms.txt |
| @getnarro/docspack | Narro's documentation as a docspack — version-locked chunks an agent installs once and searches offline ← you are here |
| @getnarro/markdown | Markdown & MDX authoring for Narro presentations |
| @getnarro/marketplace | Themes, colour schemes, and templates for Narro presentations |
| @getnarro/mcp-server | MCP (Model Context Protocol) server for AI-assisted Narro presentation creation |
| @getnarro/shared-ui | Slide components for Narro presentations — headings, text, lists, code, media, charts, and layouts |
| @getnarro/video | Frame-deterministic video framework for Narro — a brand system, a React timeline runtime, narration-derived timing, a headless-Chrome renderer, and a scrub studio |
| @getnarro/video-marketing | Marketing scene components for @getnarro/video — lower thirds, stat counters, feature grids, pull quotes, device frames, callouts and end cards, all brand-driven and frame-deterministic |
| create-narro | Scaffold a new Narro presentation |
All eleven ship from one repository and release together.
The npm package named
narrois unrelated to this project. Narro's packages are all under the@getnarro/scope; the CLI binarynarrocomes from@getnarro/cli.
Website · Documentation · llms.txt · GitHub · Issues · Changelog
Released under the MIT License.
