Use when writing or updating walkerOS documentation - README, website docs, or skills. Covers quality standards, example validation, and DRY patterns.
| Type | Purpose | Audience |
|---|---|---|
| Package README | Installation, basic usage, API reference | Package users |
| Website docs | Guides, integration examples, detailed config | Integrators |
| Skills | Process knowledge, workflows | AI assistants, contributors |
Keep these separate - don't mix tutorials with reference:
| Type | Purpose | User State |
|---|---|---|
| Tutorial | Learning | Studying, beginner |
| How-To Guide | Problem-solving | Working, knows what they need |
| Reference | Information lookup | Working, needs facts |
| Explanation | Understanding | Studying, needs context |
AI-generated examples can be:
TIER 1: apps/quickstart/
✓ Tested ✓ Compiled ✓ CI-validated
→ USE FOR: All code examples
TIER 2: packages/core/src/eventGenerator.ts
✓ Canonical events ✓ Real data structures
→ USE FOR: Event examples
TIER 3: packages/*/src/index.ts exports
✓ Actual public API
→ USE FOR: Verifying API names exist
TIER 4: Package READMEs & Website docs
⚠ May contain errors
→ VERIFY against Tier 1-3 before trusting
Before publishing ANY code example:
packages/*/src/index.ts exportsapps/quickstart/eventGenerator.ts| Red Flag | What It Indicates |
|---|---|
| API name not in package exports | Hallucinated or outdated API |
| Import path doesn't match package.json | Wrong package reference |
| Event name with underscore | Wrong format (should be space) |
| No imports shown | Context missing, harder to validate |
When to use: Any page documenting package configuration with Zod schemas.
import data from '@walkeros/web-destination-gtag/walkerOS.json';
<PropertyTable schema={data.schemas.settings} />;
When NOT to use:
Every destination/source should export schemas:
// src/dev.ts
export * as schemas from './schemas';
export * as examples from './examples';
apps/quickstart/ examples instead of writing from scratchsrc/hints.ts)Hints are the "experienced colleague" layer in walkerOS.json — they tell AI
agents when, why, and what to watch out for beyond what schemas and
examples convey. Surfaced via MCP package_get. Not human-facing docs.
Audience: AI agents configuring packages on behalf of users.
Hints should open up the space of what's possible, not prescribe a single path. An LLM reading hints should think "I have more options than I realized" — not "I must follow these steps exactly."
| Rule | Do | Don't |
|---|---|---|
| Describe capabilities | "Supports SA key, ADC, and custom client" | "Use a SA key file when outside GCP" |
| Reference schemas/examples | "See settings.projectId in the schema" | Repeat what the schema description says |
| Explain why behind defaults | "Defaults to EU location; override via location" | "Set location to US" |
| Flag non-obvious interactions | "When snakeCase: true, all data keys transform before send" | Describe obvious behavior |
| Symptoms → causes | "Empty table? Check projectId and dataset existence" | Step-by-step fix instructions |
auth-*, storage-*,
query-*, troubleshoot-*auth-methods not a1Most packages don't need hints — schemas and examples cover the common case. Add hints when:
Before publishing hints, verify each claim is factually correct. Don't describe features that aren't implemented. Don't assume behavior — confirm it.
.describe() already says// src/hints.ts
import type { Hints } from '@walkeros/core';
export const hints: Hints = {
'auth-methods': {
text: 'Supports three auth methods: ...',
code: [{ lang: 'json', code: '{ "settings": { ... } }' }],
},
};
// src/dev.ts
export * as schemas from './schemas';
export * as examples from './examples';
export { hints } from './hints';
Note: hints is a direct export (not * as), because it's already a
Record<string, Hint>.
<details> for advanced content"entity action" format with spacewalkerOS.json convention followed (walkerOS field in package.json,
buildDev in tsup)# @walkeros/[package-name]
[1-sentence description]
[Source Code](link) | [NPM](link) | [Documentation](link)
## Quick Start
```json
{
"version": 3,
"flows": {
"default": {
"web": {},
"[sources|destinations]": {
"[name]": {
"package": "@walkeros/[package-name]",
"config": { ... }
}
}
}
}
}
```
npm install @walkeros/[package-name]
| Name | Type | Description | Required | Default |
|---|
[Simple example]
[Complex example]
See src/types.ts for TypeScript interfaces.
### walkerOS.json
Every package should document its `walkerOS.json` convention in the README:
```json
{
"walkerOS": { "type": "destination", "platform": "web" }
}
```
The `walkerOS` field is an object with `type` and `platform` metadata describing
the package's role in the walkerOS ecosystem.
### Website Doc Template (MDX)
```mdx
---