.agents/skills/doc-sync-package/SKILL.md
Sync documentation after changes to a publishable package under packages/. Use when the user says "update the docs", "document this", "sync the docs", or "reflect these changes in the docs" after modifying a package. Updates the package README, the EN and ES SDK reference pages, and the EN and ES changelogs.
npx skillsauth add microboxlabs/modulariot doc-sync-packageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Keep all documentation in sync after changes to a publishable package in this monorepo.
Use this skill when the user wants to:
Do NOT use this skill for apps/app changes, architectural decisions, or backend API changes — those affect different doc sections and require a different approach.
Every package change potentially touches five files. Always treat all five as candidates and verify each one:
| File | Purpose | Depth |
|---|---|---|
| packages/<name>/README.md | npm-facing full API reference | Full method tables, full type blocks |
| apps/docs/content/en/reference/sdks/<name>.mdx | Docs site summary page (EN) | Feature bullets + link to README |
| apps/docs/content/es/reference/sdks/<name>.mdx | Docs site summary page (ES) | Same as EN, in Spanish |
| apps/docs/content/en/reference/changelog.mdx | Changelog (EN) | One entry per release |
| apps/docs/content/es/reference/changelog.mdx | Changelog (ES) | Same as EN, in Spanish |
Critical rule: The docs site pages are summary-level only — they describe capabilities in plain language and link to the README for method-level details. Never duplicate full API tables or type blocks into the MDX pages.
Run a diff against the base branch to understand exactly what changed in the package:
git diff trunk -- packages/<name>/
If the package has an openapi.json, diff it too — it's the most reliable source of truth for API changes:
git diff trunk -- packages/<name>/openapi.json
From the diff, identify:
groups property on the client)src/types.ts and exported from src/index.tspackage.jsonRead all five files in parallel before making any edits:
packages/<name>/README.md
apps/docs/content/en/reference/sdks/<name>.mdx
apps/docs/content/es/reference/sdks/<name>.mdx
apps/docs/content/en/reference/changelog.mdx
apps/docs/content/es/reference/changelog.mdx
If a docs site MDX page does not yet exist for the package, create it following the template in the SDK Page Structure section below.
For each file, verify whether a gap actually exists before planning an edit. Do not edit files where the content is already accurate.
README gaps to check:
create() / update() body tables missing new fieldsinterface Foo) stale — missing new fields or new types not yet addedSDK docs page gaps to check:
Changelog gaps to check:
The README is the authoritative reference for all method signatures and types. Apply the following rules:
Methods:
### <Namespace> section#### <namespace>.<method>(params) subsectionTypes section:
### <TypeName> subsection with a fenced ts code blockOrdering for new namespace sections: Insert new sections in an order that reflects conceptual grouping — organizational/grouping resources before the items they contain (e.g. Groups before Calendars, not after Bookings).
The EN MDX page lives at apps/docs/content/en/reference/sdks/<name>.mdx.
Features section: Add one short paragraph per new top-level capability. Write in plain language, no method signatures. Reference the client namespace (e.g. client.groups) so readers know where to look, but don't list individual methods.
Do not add:
These all belong in the README. The MDX page ends with a link to the README on npm — that is intentional.
Apply the exact same changes as Step 5, translated into Spanish.
Keep technical identifiers (method names, interface names, field names) in their original form — only translate the surrounding prose.
The changelog lives at apps/docs/content/en/reference/changelog.mdx.
Insert a new entry at the top of the ## Recent Releases section, above all existing entries. Use this format:
### `<package-name>` v<version> — <Short Title> (<YYYY-MM-DD>)
**`@microboxlabs/<package-name>`** — [npm](...) | [GitHub](...)
One-sentence summary of what this release adds.
**New — `client.<namespace>` namespace:**
- `<namespace>.<method>(params)` — brief description
- ...
**Updated — `client.<existing-namespace>`:**
- `<method>()` accepts new `<param>` param — description
- `<TypeName>.<field>?: type` — description
**New types exported:** `TypeA`, `TypeB`
---
Only include sections that actually apply. If nothing was updated (pure addition), omit the "Updated" block.
Apply the exact same entry as Step 7, translated into Spanish, in apps/docs/content/es/reference/changelog.mdx.
Insert above the existing entries under ## Lanzamientos Recientes.
If a docs page does not yet exist for a package, create it using this template.
EN (apps/docs/content/en/reference/sdks/<name>.mdx):
# <Human Name>
<One-sentence description>.
**Status:** Available — [npm](<npm-url>) | [GitHub](<github-url>)
## Overview
`@microboxlabs/<package-name>` <paragraph describing what it does, what runtimes it supports, key design decisions>.
## Installation
\```bash
npm install @microboxlabs/<package-name>
\```
## Quick Start
\```ts
<minimal working example — create client, do one meaningful operation>
\```
## Features
### <Feature 1>
<One paragraph.>
### <Feature 2>
<One paragraph.>
## Configuration
| Option | Type | Required | Description |
|--------|------|----------|-------------|
| `baseUrl` | `string` | Yes | Base URL of the API |
| `headers` | `Record<string, string>` | No | Default headers for every request |
| `fetch` | `typeof fetch` | No | Custom fetch implementation |
## Full API Reference
For complete method documentation, parameter tables, type definitions, and error code reference, see the [package README on npm](<npm-url>).
ES: same structure, all prose translated, identifiers (types, method names, field names) left as-is.
Always use today's date in YYYY-MM-DD format. Do not use relative dates like "today" or "recently".
| Directory | npm Name | README | SDK docs page |
|---|---|---|---|
| miot-calendar-client | @microboxlabs/miot-calendar-client | packages/miot-calendar-client/README.md | sdks/miot-calendar-client.mdx |
As new publishable packages are added, extend this table.
sdks/index.mdx. This file only lists available SDKs and does not need updating unless a brand new package is being added for the first time.apps/docs/content/, not apps/docs/src/content/docs/ — always verify with a glob if unsure.tools
Query and manage ModularIoT Calendar services via the miot CLI. List calendars, check slot availability, create bookings, manage time windows, and run slot managers. Use when the user asks about schedules, appointments, bookings, availability, calendar configuration, time slots, capacity, or calendar services in their ModularIoT organization.
tools
Propagate OpenAPI spec changes through all three layers: (1) the hand-authored TypeScript client package — types, resource methods, tests, version bump; (2) the CLI package — commands, flags, table columns, tests, version bump; (3) the agent skill — SKILL.md workflows, business rules, and reference.md sections. Use when the user says the openapi.json has changed and needs to be reflected end-to-end. Triggers on phrases like "update the client from the new openapi", "sync the client with the API spec", "implement the api changes in the client", "the openapi.json changed, update the client package", "propagate the API changes", or "update all layers from the spec".
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
tools
Tag and release a monorepo package following the project's scoped-tag convention. Use when the user wants to publish a new version of a package, create a release tag, or bump a package version.