npm: @agentskit/doc-bridge · CLI: ak-docs · Landing: agentskit-io.github.io/doc-bridge
Topics: ai-agents · documentation · developer-experience · mcp · llms-txt · typescript
Compatibility: node >=22 · TypeScript 5.8+ · pnpm, npm, or yarn consumers
Turn your docs into executable handoffs for coding agents.
doc-bridge reads your repo docs, ownership map, and human documentation site, then gives every agent the same answer:
- where to start reading
- which files/packages it may edit
- which checks prove the change
- which human docs explain the feature
It is not a wiki or hosted RAG. The core works without any LLM or API key; the documentation portal dogfoods AgentsKit Chat as an optional surface over that deterministic layer.
Agents are powerful, but most repo docs are written for humans. The result is familiar: the agent guesses ownership, edits the sibling package, runs the wrong test, or ignores the human guide that already explained the rule.
doc-bridge works in both directions:
| Direction | What it does | Command |
|---|---|---|
| Human docs → agents | Turns Fumadocs, Docusaurus, markdown, and ownership docs into AgentHandoff |
ak-docs index · ak-docs query --agent |
| Agent memory → docs | Reads .agent-memory/** and .cursor/rules/*.mdc, classifies what should become project docs, and drafts a human-reviewed promotion |
ak-docs memory ingest · classify · promote --pr |
The handoff is a routing contract:
{
"startHere": "docs/for-agents/packages/auth.md",
"editRoots": ["packages/auth"],
"checks": ["pnpm --filter @demo/auth test"],
"humanDoc": "/docs/guides/auth"
}That contract works from the terminal, MCP, CI, and optional RAG/chat.
npm i -D @agentskit/doc-bridge
npx ak-docs demo --textNo config, no docs to read first. Output shows before/after, a real handoff, gate red→green, and the MCP snippet:
After (handoff.resolve / query --agent)
✓ target: auth (packages/auth)
✓ start: docs/for-agents/packages/auth.md
✓ edit: packages/auth
✓ checks: pnpm --filter @demo/auth test · pnpm --filter @demo/auth lint
✓ human guide: /docs/guides/auth
Gate: red → green
Monorepo fixture with auth + billing:
npx ak-docs demo --fixture monorepo --textThis checked example runs the bundled demo through the public CLI. The README gate compares this block byte-for-byte with the executable fixture and runs it on every PR.
import { execFileSync } from 'node:child_process'
execFileSync(process.execPath, ['bin/ak-docs.js', 'demo', '--text'], {
stdio: 'inherit',
})node examples/verify-handoff.mjsFull setup in your repo:
npx ak-docs init
npx ak-docs index
npx ak-docs query package example --agent
ak-docs mcp install --cursor # wires MCP into .cursor/mcp.json| Surface | Use it for | Command / artifact |
|---|---|---|
| CLI | Inspect ownership, search docs, run gates, ask local questions | ak-docs query, search, ask, doctor, gate |
| MCP server | Let Cursor, Claude Code, Codex-style agents resolve handoffs before editing | ak-docs mcp, handoff.resolve |
| GitHub Action / CI | Fail stale indexes and broken human-doc links on PRs | AgentsKit-io/doc-bridge@v1.2.1 |
| Documentation conformance | Check the stable ecosystem standard with auditable evidence | ak-docs conformance run documentation-standard-v1 --text |
| Doc adapters | Link human docs to agent docs | fumadocs, docusaurus, plain-markdown |
| Monorepo routing | Discover workspaces and checks | pnpm-monorepo |
| Memory pipeline | Turn agent notes into reviewable documentation drafts | memory ingest, classify, promote --pr |
| Optional RAG/chat | Ground chat in the same handoff-first index | @agentskit/rag, @agentskit/ink, ak-docs chat |
See docs/getting-started.md, docs/mcp.md, and docs/examples.md.
| Pattern | Gap |
|---|---|
| Wiki + RAG | Explains; weak on where to act and proof docs match code |
| AGENTS.md alone | Great static rules; no ownership index, gates, or human bridge |
| Context7-class tools | Library docs for the model; not your monorepo routing |
doc-bridge ships AgentHandoff JSON:
{
"type": "agent-handoff",
"startHere": "docs/for-agents/packages/auth.md",
"editRoots": ["packages/auth"],
"checks": ["pnpm --filter @demo/auth test"],
"humanDoc": "/docs/guides/auth",
"bridge": { "humanDoc": "linked" }
}When a human guide is missing, handoffs surface it as a feature:
{
"bridge": {
"humanDoc": "missing",
"action": "ak-docs bootstrap agent-docs"
},
"notes": ["Human guide missing for billing. Run: ak-docs bootstrap agent-docs"]
}| Loop | Command | What you see |
|---|---|---|
| Act | ak-docs query package auth --agent |
editRoots, checks, startHere |
| Bridge | ak-docs bootstrap agent-docs |
Draft agent docs from human site; bridge.humanDoc in handoff |
| Learn | ak-docs memory classify → promote |
HITL draft for agent corpus |
| Explain | ak-docs ask "auth is broken in staging" |
Ownership match + handoff preview + next commands |
ak-docs ask "who owns schemas"
# Best match: ownership os-core
# Handoff preview
# start: docs/for-agents/packages/os-core.md
# edit: packages/os-core
# checks: pnpm --filter os-core lint · pnpm --filter os-core testak-docs doctor --text
ak-docs doctor --badge # shields.io markdown for README
ak-docs index --watch # keep index fresh while editing docsScore: 82/100 (B)
Agent docs: 8/10 (80% handoff-ready)
Human guides: 6/10 (60% bridged)
Gates: 3/3 passing
Next actions
→ ak-docs bootstrap agent-docs
→ ak-docs query package billing --agent
- MCP auto-wire:
ak-docs mcp install --cursor - Skill/rule: paste docs/skills/doc-bridge.md into Cursor rules — agents call
handoff.resolvebefore editingpackages/* - Handoff is the next step:
startHere,checks, andbridgeare in the JSON/MCP response
Reuse the bundled GitHub Action on every PR:
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: AgentsKit-io/doc-bridge@v1.2.1
with:
config-path: doc-bridge.config.jsonThe Action checks the committed index before changing anything, pins the matching npm package, and rejects non-exact package versions. See the Marketplace guide.
Run ak-docs doctor --badge locally to refresh — or pnpm coverage:badge in CI.
Or locally:
ak-docs index && ak-docs gate runGate fails with Index is stale. Run: ak-docs index — same check in CI annotations.
| Surface | Purpose |
|---|---|
| Demo | ak-docs demo — bundled fixture, no setup |
| Doctor | Coverage score, missing humanDoc/agent doc, next actions |
| Index | DocBridgeIndex + contentHash + llms.txt + capabilities |
| CLI | query / search / list / ask / gate / memory / bootstrap |
| MCP | handoff.resolve, doc.search, doc.get, gate.status, … |
| Gates | Freshness, human-link validation, optional OKF style |
| Adapters | pnpm-monorepo, fumadocs, docusaurus, plain-markdown |
npm i -D @agentskit/rag @agentskit/ink @agentskit/adapters @agentskit/memory react
ak-docs rag ingest && ak-docs chatSee docs/chat-and-rag.md.
Designed for and dogfooded on open AgentsKit surfaces:
| Surface | Link |
|---|---|
| for-agents | agentskit.io/docs/for-agents |
| Registry | registry.agentskit.io |
| Playbook | playbook.agentskit.io |
| AgentsKit Chat | documentation · source |
| AgentsKit OS | akos.agentskit.io |
| Code Review | repository-native CLI |
| This repo | CI green · ak-docs gate run on every PR |
Playbook pattern: docs/playbook/doc-bridge-pattern.md — export with ak-docs playbook pattern --text
| Profile | Example |
|---|---|
| Solo markdown | examples/minimal-plain-markdown.config.ts |
| pnpm monorepo | examples/pnpm-monorepo.config.ts |
| Demo monorepo | examples/demo-monorepo/ |
| Fumadocs + chat | examples/fumadocs-with-chat.config.ts |
Contract: docs/spec/config-v1.md · CLI: docs/spec/cli.md · MCP: docs/mcp.md · Skill: docs/skills/doc-bridge.md · Pattern: docs/playbook/doc-bridge-pattern.md · Recipes: docs/recipes/index-pipeline.md
ak-docs memory ingest
ak-docs memory classify
ak-docs memory promote --pr --dry-run # preview gh commands
ak-docs memory promote --pr # opens draft PR via ghv1.2.1 stable — deterministic Documentation Standard v1 conformance, verified release provenance, Fumadocs portal, Marketplace Action, doctor + CI + skill, and full Tier A/B/C.
pnpm install && pnpm build && pnpm test
pnpm smoke:ollama # optional — skips if Ollama/peers unavailableLanding: https://doc-bridge.agentskit.io/
Issues and PRs are welcome. Start here:
| Need | Doc |
|---|---|
| Local setup, tests, release flow | CONTRIBUTING.md |
| Vulnerability reports | SECURITY.md |
| Community standards | CODE_OF_CONDUCT.md |
| Release history | CHANGELOG.md |
| Product positioning | docs/POSITIONING.md |


