dogsbay 0.2.0-beta.2 → 0.2.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: dogsbay:cli-commands
3
+ description: Reference for every dogsbay CLI command and flag — site init/build/dev/preview/check, astro init/add/list, convert, pattern install, agent install. Use when running CLI operations or recommending the right subcommand.
4
+ ---
5
+
6
+ # Dogsbay CLI command reference
7
+
8
+ Three command namespaces, each with a clear scope:
9
+
10
+ - `dogsbay site …` — full SSG; Dogsbay owns the project (`dogsbay.config.yml` at root)
11
+ - `dogsbay astro …` — drop Dogsbay components into someone else's existing Astro project
12
+ - `dogsbay convert …` — pure content-format primitive; no SSG, no install
13
+
14
+ ## site init
15
+
16
+ Scaffold a new Dogsbay-owned project.
17
+
18
+ ```bash
19
+ dogsbay site init [target] [flags]
20
+ ```
21
+
22
+ | Flag | Purpose |
23
+ |---|---|
24
+ | `--yes` | Non-interactive; combine with `--site-name` and `--content` |
25
+ | `--site-name <string>` | Site name (required in non-interactive mode) |
26
+ | `--content <path>` | Content directory path (required in non-interactive mode) |
27
+ | `--from <format>` | Source format: `auto`, `dogsbay-md`, `mkdocs`, `obsidian`, `starlight`, `mdx`, `openapi` |
28
+ | `--theme <name>` | `default` or `material` |
29
+ | `--deploy <target>` | `cloudflare-workers` adds wrangler config + worker emission |
30
+ | `--scaffold-only` | Skip writing dogsbay.config.yml; just scaffold astro/. Used when content + config already exist. |
31
+ | `--force` | Overwrite an existing scaffold |
32
+ | `--local` | Use `link:` deps to a local monorepo checkout (development only) |
33
+ | `--config-format <yaml\|json>` | Default `yaml` |
34
+
35
+ Writes (default): `dogsbay.config.yml` + `content/index.md` + `content/getting-started.md` + `content/nav.yml` + `astro/` scaffold. Never overwrites an existing `content/` dir (the seed-content step is skipped if it exists).
36
+
37
+ ## site build
38
+
39
+ Build Astro source from the configured sources. Generates pages, nav.json, and agent-readiness files.
40
+
41
+ ```bash
42
+ dogsbay site build [flags]
43
+ ```
44
+
45
+ | Flag | Purpose |
46
+ |---|---|
47
+ | `--config <path>` | Explicit config path |
48
+ | `--include-drafts` | Include pages with `draft: true` in frontmatter (default false; site dev defaults true) |
49
+ | `--primary-only` | Build only sources marked `primary: true` — fast iteration. Default builds the full matrix (every locale / version / namespace declared in config). |
50
+ | `--publish` | Deprecated no-op (publish IS the default now). Kept for compat with older scripts. |
51
+ | `--refresh` | Invalidate the git-source cache and re-clone |
52
+
53
+ Writes into the configured `output:` (default `./astro/`). Doesn't run Astro itself — that's `site dev` / `site preview`.
54
+
55
+ ## site dev
56
+
57
+ Build + serve with hot reload at localhost:4321.
58
+
59
+ ```bash
60
+ dogsbay site dev [flags]
61
+ ```
62
+
63
+ | Flag | Purpose |
64
+ |---|---|
65
+ | `--no-build` | Skip the implicit `site build`; only run Astro dev server |
66
+ | `--full` | Build the full publish matrix (every source) |
67
+ | `--config <path>` | Explicit config path |
68
+
69
+ Auto-installs scaffolded site deps on first run if `astro/node_modules` is missing. Picks pnpm if on PATH, falls back to npm.
70
+
71
+ ## site preview
72
+
73
+ Production build + static serve.
74
+
75
+ ```bash
76
+ dogsbay site preview [flags]
77
+ ```
78
+
79
+ Runs `dogsbay site build` then `astro build` then `astro preview`. Same flags as `site dev`. Used for verifying the deployable artefact locally.
80
+
81
+ ## site check
82
+
83
+ Run audit rules against built content.
84
+
85
+ ```bash
86
+ dogsbay site check [flags]
87
+ ```
88
+
89
+ | Flag | Purpose |
90
+ |---|---|
91
+ | `--quiet` | Suppress stdout (still writes JSON output if requested) |
92
+ | `--output <path>` | Write findings to a JSON file |
93
+ | `--rule <name>` | Run only the named rule (or comma-separated list) |
94
+ | `--severity <level>` | Filter to error / warning / info |
95
+
96
+ Audit categories (some shipped, some pending): coherence (broken links, orphan pages), seo (titles, descriptions, brand keywords), prose (Vale wrapper), corpus (duplicate paragraphs), performance (page weight), freshness (stale pages, dead screenshots), aeo (agent readability, llms.txt coverage).
97
+
98
+ ## astro init
99
+
100
+ Scaffold theme + path aliases into an existing Astro project (where Dogsbay is a guest, not the owner).
101
+
102
+ ```bash
103
+ dogsbay astro init
104
+ ```
105
+
106
+ Writes `src/styles/theme.css`, `src/styles/global.css`, sets `@/*` and `@ui/*` path aliases in `tsconfig.json`. Doesn't write a dogsbay.config.yml.
107
+
108
+ ## astro add
109
+
110
+ Copy components into an Astro project. The component must exist in the registry (see `astro list`).
111
+
112
+ ```bash
113
+ dogsbay astro add card badge button
114
+ ```
115
+
116
+ Resolves `registryDependencies` (e.g. `form` auto-adds `field`). Installs npm deps for components that need them (e.g. `maplibre-gl` for `map-view`).
117
+
118
+ ## astro list
119
+
120
+ Show every registered component grouped by category.
121
+
122
+ ```bash
123
+ dogsbay astro list
124
+ ```
125
+
126
+ 72 components across base UI / docs / API / map / layout categories.
127
+
128
+ ## convert
129
+
130
+ Pure content-format primitive. Reads source markdown, writes target format. No project scaffolding.
131
+
132
+ ```bash
133
+ dogsbay convert <src> --to <format> [-o <output>]
134
+ ```
135
+
136
+ | `--to` value | Target |
137
+ |---|---|
138
+ | `astro` | `.astro` pages + `nav.json` (no full Astro project — just the content tier) |
139
+ | `dogsbay-md` | Normalise to canonical Dogsbay markdown |
140
+
141
+ Used for one-shot migrations and CI-style content transformations.
142
+
143
+ ## pattern install
144
+
145
+ Install a pattern package into the project (Diátaxis content types, Google-style guide, etc.).
146
+
147
+ ```bash
148
+ dogsbay pattern install diataxis
149
+ dogsbay pattern install @your-org/pattern-internal
150
+ ```
151
+
152
+ Copies templates into `.dogsbay/patterns/<name>/`. Adds the pattern's audit rules to `dogsbay.config.yml`'s registered list (with user confirmation). See `dogsbay:taxonomy-config` for what patterns can register.
153
+
154
+ ## agent install
155
+
156
+ Wire skill discovery for an agent harness.
157
+
158
+ ```bash
159
+ dogsbay agent install --agent claude
160
+ dogsbay agent install --agent cursor
161
+ dogsbay agent install --all
162
+ dogsbay agent install --workflow pr-review
163
+ ```
164
+
165
+ | Flag | Purpose |
166
+ |---|---|
167
+ | `--agent <name>` | Set up discovery for a specific agent (claude, cursor, copilot) |
168
+ | `--all` | Set up every supported agent |
169
+ | `--workflow <name>` | Install a workflow package (writes to `.github/workflows/`, etc.) |
170
+
171
+ Without `--agent` or `--workflow`, prints a list of detected agents in the project + suggests next-step commands.
172
+
173
+ ## Common patterns
174
+
175
+ ### First-run after clone
176
+
177
+ ```bash
178
+ git clone …
179
+ cd …
180
+ dogsbay site dev # auto-installs deps + builds + serves
181
+ ```
182
+
183
+ ### Migrating from MkDocs
184
+
185
+ ```bash
186
+ dogsbay convert ./mkdocs-site --to astro -o ./astro-pages
187
+ # OR for a fresh Dogsbay site:
188
+ dogsbay site init my-docs --content ./mkdocs-site/docs --from mkdocs
189
+ ```
190
+
191
+ ### Production publish to Cloudflare
192
+
193
+ ```bash
194
+ dogsbay site build # builds full matrix by default
195
+ cd astro && pnpm run build && wrangler deploy
196
+ # OR via the deploy script:
197
+ cd astro && pnpm run deploy
198
+ ```
199
+
200
+ ### Adding components mid-project
201
+
202
+ ```bash
203
+ dogsbay astro add tabs accordion popover
204
+ # components copied to src/components/ui/
205
+ ```
@@ -0,0 +1,219 @@
1
+ ---
2
+ name: dogsbay:config-yml
3
+ description: Read or write fields in dogsbay.config.yml. Use when configuring site identity, base path, multi-source content, theme, deploy target, agent readiness, plugins, taxonomies, or any other site-wide setting.
4
+ ---
5
+
6
+ # Writing dogsbay.config.yml
7
+
8
+ The config file lives at the project root. It anchors path resolution
9
+ for `output:`, content sources, and the scaffolded astro/ subdir.
10
+
11
+ YAML is the canonical format (`.yml`). JSON is also accepted
12
+ (`dogsbay.config.json`); the loader picks whichever exists.
13
+
14
+ ## Top-level shape
15
+
16
+ ```yaml
17
+ schemaVersion: 1
18
+
19
+ site: # site identity
20
+ name: …
21
+ url: …
22
+ basePath: /docs
23
+ description: …
24
+
25
+ content: # one or more content sources
26
+ sources:
27
+ - …
28
+
29
+ theme: default # or "material"
30
+
31
+ agent: # agent-readiness toggles
32
+ llmsTxt: true
33
+ mdMirror: true
34
+
35
+ deploy: # optional deploy target
36
+ target: cloudflare-workers
37
+
38
+ plugins: # plugin configurations
39
+ - …
40
+
41
+ taxonomies: # tagging schemes (user-defined)
42
+
43
+
44
+ analytics: # optional
45
+ plausible:
46
+ domain: …
47
+
48
+ output: ./astro # where the scaffold lives
49
+ ```
50
+
51
+ ## site
52
+
53
+ | Field | Type | Required | Notes |
54
+ |---|---|---|---|
55
+ | `name` | string | yes | Shown in header, page-title suffixes, copyright. |
56
+ | `url` | string | recommended | Canonical site URL. **Must be host-only when `basePath` is set** — `https://example.com`, NOT `https://example.com/docs`. The validator throws otherwise. Used for sitemap, canonical tags, OG meta. |
57
+ | `basePath` | string | no | URL prefix for all pages. Defaults to `/docs`. Set to `""` for root-mounted sites. |
58
+ | `description` | string | no | Site-wide description; default `og:description` and `<meta name="description">`. |
59
+ | `repoUrl` | string | no | Source repo URL — used for edit-on-GitHub links. |
60
+ | `editUri` | string | no | Path inside repo for edit links, e.g. `blob/main/content/`. |
61
+ | `copyright` | string | no | Footer copyright text. |
62
+ | `redirects` | object | no | Map of old-path → new-path. Emitted as redirects in the build output. |
63
+ | `brandKeywords` | string[] | no | Used by the `seo/h1-brand-keyword` audit rule. |
64
+
65
+ ## content.sources
66
+
67
+ Each entry is a `SourceConfig`. The aggregator concatenates them in declaration order. See `dogsbay:multi-source` for the full axis model.
68
+
69
+ | Field | Type | Required | Notes |
70
+ |---|---|---|---|
71
+ | `path` | string | one of path/git | Local directory containing the source. |
72
+ | `git` | string | one of path/git | Git URL — checked out at build time. Requires `ref:`. |
73
+ | `ref` | string | required when git is set | Branch / tag / sha. |
74
+ | `subdir` | string | no | Subdirectory within the resolved source. |
75
+ | `from` | enum | no | One of `auto`, `dogsbay-md`, `mkdocs`, `obsidian`, `starlight`, `mdx`, `openapi`. Default `auto` (detection by content). |
76
+ | `name` | string | no | Namespace key — when ≥2 sources have distinct names, the namespace axis activates. |
77
+ | `version` | string | no | Version label — when ≥2 sources have distinct versions, the version axis activates. |
78
+ | `locale` | string | no | BCP-47 locale tag. |
79
+ | `nav` | string | no | Path to an explicit nav file. Defaults to auto-detect (see `dogsbay:nav-file`). |
80
+ | `primary` | boolean | no | Marks this source for the primary build mode (default mode for `site dev` / `site build`). |
81
+
82
+ ## theme
83
+
84
+ `default` or `material`. Default is `default` (shadcn-style zinc). Both ship with 60 design tokens — see `dogsbay:theme-tokens` for what's overridable.
85
+
86
+ ## agent
87
+
88
+ | Field | Type | Default | Notes |
89
+ |---|---|---|---|
90
+ | `llmsTxt` | boolean | `true` | Emit `public/llms.txt` and `public/llms-full.txt`. |
91
+ | `mdMirror` | boolean | `true` | Emit a `.md` mirror endpoint for every page (e.g. `/docs/page.md`). |
92
+ | `contentSignal` | object | none | Sets `Content-Signal: aiTrain=…, aiInput=…, search=…` headers. Each key is `"yes"` / `"no"`. |
93
+
94
+ See `dogsbay:agent-readiness` for the full agent surface.
95
+
96
+ ## deploy
97
+
98
+ ```yaml
99
+ deploy:
100
+ target: cloudflare-workers
101
+ ```
102
+
103
+ Currently supports `cloudflare-workers`. Adds wrangler.jsonc + worker emission to the scaffold.
104
+
105
+ ## plugins
106
+
107
+ Each entry is either a string (the package name) or an object with options. The CLI auto-prefixes `@dogsbay/plugin-` and `dogsbay-plugin-` for short names:
108
+
109
+ ```yaml
110
+ plugins:
111
+ - image-zoom # resolves to @dogsbay/plugin-image-zoom
112
+ - "@your-org/plugin-foo" # explicit
113
+ - name: typedoc # with options
114
+ options:
115
+ sourceRoot: ./src
116
+ ```
117
+
118
+ See `dogsbay:plugin-api` for what plugins can do.
119
+
120
+ ## taxonomies
121
+
122
+ User-defined tagging schemes. Dogsbay doesn't prescribe categories; this is the slot for the user's opinions. See `dogsbay:taxonomy-config`.
123
+
124
+ ## analytics
125
+
126
+ ```yaml
127
+ analytics:
128
+ plausible:
129
+ domain: docs.example.com
130
+ scriptUrl: https://plausible.io/js/script.js # optional
131
+ ```
132
+
133
+ Plausible is the only built-in. Self-hosting via `scriptUrl` is supported.
134
+
135
+ ## output
136
+
137
+ Where the scaffolded astro/ project lives. Default `./astro`. The user almost never changes this.
138
+
139
+ ## Common patterns
140
+
141
+ ### Single-source site
142
+
143
+ ```yaml
144
+ schemaVersion: 1
145
+ site:
146
+ name: My Docs
147
+ url: https://docs.example.com
148
+ content:
149
+ sources:
150
+ - path: ./content
151
+ ```
152
+
153
+ ### Multi-source — markdown + OpenAPI
154
+
155
+ ```yaml
156
+ schemaVersion: 1
157
+ site:
158
+ name: Acme API
159
+ url: https://docs.acme.com
160
+ basePath: /docs
161
+ content:
162
+ sources:
163
+ - path: ./content
164
+ from: dogsbay-md
165
+ - name: api
166
+ path: ./openapi/spec.yaml
167
+ from: openapi
168
+ ```
169
+
170
+ URLs: `/docs/` (markdown), `/docs/api/...` (operations).
171
+
172
+ ### Multi-version OpenAPI
173
+
174
+ ```yaml
175
+ content:
176
+ sources:
177
+ - path: ./content # evergreen prose
178
+ from: dogsbay-md
179
+ - name: api
180
+ path: ./openapi/2024-04-10.yaml
181
+ from: openapi
182
+ version: "2024-04-10"
183
+ - name: api
184
+ path: ./openapi/2023-12-01.yaml
185
+ from: openapi
186
+ version: "2023-12-01"
187
+
188
+ versions:
189
+ - id: "2024-04-10"
190
+ label: "2024-04-10 (latest)"
191
+ default: true
192
+ - id: "2023-12-01"
193
+ label: "2023-12-01"
194
+ ```
195
+
196
+ ### Cloudflare Workers deploy + agent readiness
197
+
198
+ ```yaml
199
+ deploy:
200
+ target: cloudflare-workers
201
+
202
+ agent:
203
+ llmsTxt: true
204
+ mdMirror: true
205
+ contentSignal:
206
+ aiTrain: "no"
207
+ aiInput: "yes"
208
+ search: "yes"
209
+ ```
210
+
211
+ ## Validation that fails the build
212
+
213
+ - `site.url` includes a path AND `basePath` is set → throws "site.url must be host-only when basePath is set"
214
+ - `site.basePath` contains `?`, `#`, whitespace, or `//` → throws
215
+ - `content.sources` is empty → throws
216
+ - `content.sources[].from` is unknown → throws (valid values: `auto`, `dogsbay-md`, `mkdocs`, `obsidian`, `starlight`, `mdx`, `openapi`)
217
+ - `content.sources[]` has neither `path` nor `git` → throws
218
+ - `git:` source has no `ref:` → throws
219
+ - An entry has both `path:` and `git:` → throws (exactly-one-of)