Goal
Align this SDK's docs/ directory with the canonical layout used by the TypeScript SDK. The conceptual pages (getting-started, architecture, transports, guides, etc.) are identical across every SDK. The per-source-unit subdirectory adapts to whatever the language calls its organizational unit — and only exists if this SDK actually has multiple such units.
The TS SDK uses docs/packages/ because it is a TypeScript monorepo with multiple npm packages. Do not blindly copy that name. If this SDK has multiple .NET projects, use docs/projects/. Multiple Gradle modules → docs/modules/. Multiple SwiftPM targets → docs/targets/. One single artifact → omit the subdirectory entirely — there is nothing to mirror.
The TS docs/README.md shape (Start here / Guides / Packages / Reference / Diagrams) is the index template — replace its "Packages" section with whatever this SDK's source-unit name is, or remove it if this SDK has only one artifact.
Current state (ruby-sdk)
- Hybrid layout: has
architecture.md, getting-started.md, transports.md, recipes.md, troubleshooting.md at top (good), plus concepts/ (10 pages) + guides/ (6 pages) + reference/ (3 pages).
- Issue: docs use
concepts/ for spec-aligned topics where TS uses guides/. Need to merge concepts/ into guides/.
- No
README.md index, no cli.md.
- This SDK ships a single gem (
arcp). No multi-package equivalent to mirror.
- No existing docs umbrella ticket.
Target structure
docs/
├── README.md # index, links to everything below
├── getting-started.md # install + minimal client+runtime example
├── architecture.md # how the modules fit together (references docs/diagrams/architecture-*.svg)
├── transports.md # WebSocket, stdio, in-memory; selection guide
├── cli.md # the `arcp` binary (omit only if SDK ships no CLI)
├── recipes.md # copy-paste solutions to common problems
├── conformance.md # spec coverage by section
├── troubleshooting.md # error codes + fixes
├── guides/
│ ├── sessions.md # spec §6
│ ├── resume.md # spec §6.3
│ ├── auth.md # spec §6.1
│ ├── jobs.md # spec §7
│ ├── job-events.md # spec §8
│ ├── leases.md # spec §9
│ ├── delegation.md # spec §10
│ ├── observability.md # spec §11
│ ├── errors.md # spec §12
│ └── vendor-extensions.md # spec §15
└── diagrams/ # graphviz sources + rendered light/dark SVGs
Per-source-unit pages
N/A — no subdirectory. This SDK has one gem, so there is nothing to mirror. Document the public module surface (Arcp::Client / Arcp::Runtime / Arcp::Session / Arcp::Job / Arcp::Auth / Arcp::Transport / Arcp::Trace) inside docs/architecture.md and in the relevant guides; do not invent a docs/packages/ or docs/modules/ directory just to fill a slot.
Authoring rules
- Guides are spec-aligned, not feature-aligned. If the SDK currently has
features/heartbeat.md, features/ack.md, etc., fold them into guides/job-events.md. If it has features/cost-budget.md, fold into guides/jobs.md (or its own guides/budgets.md only if it would otherwise be >2 screens).
docs/README.md is the index. Four sections (or three if no multi-artifact split): Start here, Guides, (if applicable), Reference. No content lives only in the index.
- Diagrams use
<picture> with prefers-color-scheme and ship both light + dark SVGs. Reference the architecture diagram from docs/README.md and docs/architecture.md.
- Spec links point at
../../spec/docs/draft-arcp-1.1.md#section so they survive renames.
- No orphan pages. Anything not linked from
docs/README.md must be deleted or linked.
CONFORMANCE.md at repo root stays authoritative; docs/conformance.md summarizes + links to it.
Migration map
architecture.md, getting-started.md, transports.md, recipes.md, troubleshooting.md → keep, audit against TS counterparts
concepts/auth.md → guides/auth.md
concepts/delegation.md → guides/delegation.md
concepts/events.md + concepts/subscribe.md + concepts/heartbeats.md → guides/job-events.md
concepts/jobs.md → guides/jobs.md
concepts/leases.md → guides/leases.md
concepts/resume.md → guides/resume.md
concepts/sessions.md → guides/sessions.md
concepts/vendor-extensions.md → guides/vendor-extensions.md
guides/agent-versioning.md → fold into architecture.md (Versioning) or keep
guides/budgets.md → fold into guides/jobs.md
guides/result-streaming.md → fold into guides/job-events.md
guides/deployment.md → keep as Ruby-specific addition (note in docs/README.md)
guides/observability.md → keep
guides/quickstart.md → merge into top-level getting-started.md
reference/capabilities.md → docs/architecture.md (Capabilities)
reference/conformance.md → docs/conformance.md
reference/errors.md → docs/guides/errors.md
- Create new:
docs/README.md (index), docs/cli.md (if applicable)
Acceptance
Reference
Goal
Align this SDK's
docs/directory with the canonical layout used by the TypeScript SDK. The conceptual pages (getting-started,architecture,transports, guides, etc.) are identical across every SDK. The per-source-unit subdirectory adapts to whatever the language calls its organizational unit — and only exists if this SDK actually has multiple such units.The TS SDK uses
docs/packages/because it is a TypeScript monorepo with multiple npm packages. Do not blindly copy that name. If this SDK has multiple .NET projects, usedocs/projects/. Multiple Gradle modules →docs/modules/. Multiple SwiftPM targets →docs/targets/. One single artifact → omit the subdirectory entirely — there is nothing to mirror.The TS
docs/README.mdshape (Start here / Guides / Packages / Reference / Diagrams) is the index template — replace its "Packages" section with whatever this SDK's source-unit name is, or remove it if this SDK has only one artifact.Current state (ruby-sdk)
architecture.md,getting-started.md,transports.md,recipes.md,troubleshooting.mdat top (good), plusconcepts/(10 pages) +guides/(6 pages) +reference/(3 pages).concepts/for spec-aligned topics where TS usesguides/. Need to mergeconcepts/intoguides/.README.mdindex, nocli.md.arcp). No multi-package equivalent to mirror.Target structure
Per-source-unit pages
N/A — no subdirectory. This SDK has one gem, so there is nothing to mirror. Document the public module surface (Arcp::Client / Arcp::Runtime / Arcp::Session / Arcp::Job / Arcp::Auth / Arcp::Transport / Arcp::Trace) inside
docs/architecture.mdand in the relevant guides; do not invent adocs/packages/ordocs/modules/directory just to fill a slot.Authoring rules
features/heartbeat.md,features/ack.md, etc., fold them intoguides/job-events.md. If it hasfeatures/cost-budget.md, fold intoguides/jobs.md(or its ownguides/budgets.mdonly if it would otherwise be >2 screens).docs/README.mdis the index. Four sections (or three if no multi-artifact split): Start here, Guides, (if applicable), Reference. No content lives only in the index.<picture>withprefers-color-schemeand ship both light + dark SVGs. Reference the architecture diagram fromdocs/README.mdanddocs/architecture.md.../../spec/docs/draft-arcp-1.1.md#sectionso they survive renames.docs/README.mdmust be deleted or linked.CONFORMANCE.mdat repo root stays authoritative;docs/conformance.mdsummarizes + links to it.Migration map
architecture.md,getting-started.md,transports.md,recipes.md,troubleshooting.md→ keep, audit against TS counterpartsconcepts/auth.md→guides/auth.mdconcepts/delegation.md→guides/delegation.mdconcepts/events.md+concepts/subscribe.md+concepts/heartbeats.md→guides/job-events.mdconcepts/jobs.md→guides/jobs.mdconcepts/leases.md→guides/leases.mdconcepts/resume.md→guides/resume.mdconcepts/sessions.md→guides/sessions.mdconcepts/vendor-extensions.md→guides/vendor-extensions.mdguides/agent-versioning.md→ fold intoarchitecture.md(Versioning) or keepguides/budgets.md→ fold intoguides/jobs.mdguides/result-streaming.md→ fold intoguides/job-events.mdguides/deployment.md→ keep as Ruby-specific addition (note indocs/README.md)guides/observability.md→ keepguides/quickstart.md→ merge into top-levelgetting-started.mdreference/capabilities.md→docs/architecture.md(Capabilities)reference/conformance.md→docs/conformance.mdreference/errors.md→docs/guides/errors.mddocs/README.md(index),docs/cli.md(if applicable)Acceptance
cli.mdif this SDK truly has no CLI — note the omission indocs/README.md)docs/README.mdmatches the four-section shape of TSdocs/README.md, substituting this SDK's source-unit term (or omitting that section entirely if single-artifact)docs/README.md; no orphansfeatures/*,concepts/*, numericNN-*.md) deleted or merged into canonical pages<picture>light/dark and render on GitHubReference
docs/README.md(index shape to copy, minus the language-specific "Packages" wording): https://github.com/agentruntimecontrolprotocol/typescript-sdk/blob/main/docs/README.md../spec/docs/draft-arcp-1.1.md