@open-agent-toolkit/cli 0.3.27 → 0.3.29
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.
- package/README.md +8 -0
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/contributing/documentation.md +11 -2
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +12 -0
- package/assets/docs/docs-tooling/check.md +154 -0
- package/assets/docs/docs-tooling/commands.md +61 -11
- package/assets/docs/docs-tooling/index.md +1 -0
- package/assets/docs/docs-tooling/meta.json +7 -1
- package/assets/docs/docs-tooling/workflows.md +4 -0
- package/assets/docs/reference/cli-reference.md +2 -0
- package/assets/docs/reference/configuration.md +1 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/authoring-docs/SKILL.md +2 -2
- package/assets/skills/authoring-docs/references/information-architecture.md +5 -2
- package/assets/skills/authoring-docs/references/page-templates/alert-runbook.md +63 -0
- package/assets/skills/authoring-docs/references/page-templates/command-reference.md +55 -0
- package/assets/skills/authoring-docs/references/page-templates/decisions-pointer.md +44 -0
- package/assets/skills/authoring-docs/references/page-templates/engineering-feature.md +53 -0
- package/assets/skills/authoring-docs/references/page-templates/per-area-agents.md +42 -0
- package/assets/skills/authoring-docs/references/page-templates/product-feature.md +49 -0
- package/assets/skills/authoring-docs/references/page-templates/qa-validation.md +59 -0
- package/assets/skills/authoring-docs/references/page-templates/screen-spec.md +51 -0
- package/assets/skills/authoring-docs/references/page-templates/skill-command-guide.md +44 -0
- package/assets/skills/authoring-docs/references/page-templates/solution-record.md +43 -0
- package/assets/skills/authoring-docs/references/templates.md +22 -2
- package/assets/skills/oat-docs-analyze/SKILL.md +13 -2
- package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
- package/assets/skills/oat-docs-authoring/references/validation.md +4 -0
- package/assets/skills/oat-docs-bootstrap/SKILL.md +63 -6
- package/assets/skills/oat-docs-bootstrap/references/pr-ci.md +89 -0
- package/assets/templates/docs-app-fuma/AGENTS.md +9 -2
- package/assets/templates/docs-app-fuma/docs/contributing/docs-toolchain.md +40 -3
- package/assets/templates/docs-app-fuma/docs/contributing.md +7 -1
- package/assets/templates/docs-app-fuma/docs/index.md +1 -1
- package/assets/templates/docs-app-fuma/gitignore.template +12 -0
- package/assets/templates/docs-app-fuma/package.json.template +2 -1
- package/assets/templates/docs-app-fuma/pnpm-workspace.yaml +5 -0
- package/assets/templates/docs-app-mkdocs/AGENTS.md +4 -2
- package/assets/templates/docs-app-mkdocs/docs/contributing/docs-toolchain.md +4 -2
- package/assets/templates/docs-app-mkdocs/docs/contributing.md +7 -1
- package/assets/templates/docs-app-mkdocs/docs/index.md +1 -1
- package/assets/templates/docs-app-mkdocs/gitignore.template +8 -0
- package/assets/templates/docs-app-mkdocs/package.json.template +3 -2
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +35 -3
- package/dist/commands/docs/check/check.d.ts +3 -0
- package/dist/commands/docs/check/check.d.ts.map +1 -0
- package/dist/commands/docs/check/check.js +48 -0
- package/dist/commands/docs/check/check.types.d.ts +17 -0
- package/dist/commands/docs/check/check.types.d.ts.map +1 -0
- package/dist/commands/docs/check/check.types.js +1 -0
- package/dist/commands/docs/check/checker.d.ts +8 -0
- package/dist/commands/docs/check/checker.d.ts.map +1 -0
- package/dist/commands/docs/check/checker.js +82 -0
- package/dist/commands/docs/check/commands.d.ts +5 -0
- package/dist/commands/docs/check/commands.d.ts.map +1 -0
- package/dist/commands/docs/check/commands.js +232 -0
- package/dist/commands/docs/check/diagrams.d.ts +5 -0
- package/dist/commands/docs/check/diagrams.d.ts.map +1 -0
- package/dist/commands/docs/check/diagrams.js +197 -0
- package/dist/commands/docs/check/files.d.ts +21 -0
- package/dist/commands/docs/check/files.d.ts.map +1 -0
- package/dist/commands/docs/check/files.js +121 -0
- package/dist/commands/docs/check/markdown.d.ts +60 -0
- package/dist/commands/docs/check/markdown.d.ts.map +1 -0
- package/dist/commands/docs/check/markdown.js +125 -0
- package/dist/commands/docs/check/mermaid-runtime.d.ts +3 -0
- package/dist/commands/docs/check/mermaid-runtime.d.ts.map +1 -0
- package/dist/commands/docs/check/mermaid-runtime.js +57 -0
- package/dist/commands/docs/check/navigation.d.ts +4 -0
- package/dist/commands/docs/check/navigation.d.ts.map +1 -0
- package/dist/commands/docs/check/navigation.js +104 -0
- package/dist/commands/docs/check/reader-rules.d.ts +6 -0
- package/dist/commands/docs/check/reader-rules.d.ts.map +1 -0
- package/dist/commands/docs/check/reader-rules.js +214 -0
- package/dist/commands/docs/index.d.ts.map +1 -1
- package/dist/commands/docs/index.js +2 -0
- package/dist/commands/docs/init/content.d.ts +23 -0
- package/dist/commands/docs/init/content.d.ts.map +1 -0
- package/dist/commands/docs/init/content.js +361 -0
- package/dist/commands/docs/init/index.d.ts +1 -0
- package/dist/commands/docs/init/index.d.ts.map +1 -1
- package/dist/commands/docs/init/index.js +40 -1
- package/dist/commands/docs/init/markdown.d.ts.map +1 -1
- package/dist/commands/docs/init/markdown.js +21 -2
- package/dist/commands/docs/init/resolve-options.d.ts +4 -1
- package/dist/commands/docs/init/resolve-options.d.ts.map +1 -1
- package/dist/commands/docs/init/resolve-options.js +4 -0
- package/dist/commands/docs/init/scaffold.d.ts +1 -0
- package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
- package/dist/commands/docs/init/scaffold.js +57 -4
- package/dist/commands/docs/nav/contents.d.ts +4 -0
- package/dist/commands/docs/nav/contents.d.ts.map +1 -1
- package/dist/commands/docs/nav/contents.js +10 -0
- package/dist/config/documentation-check.d.ts +38 -0
- package/dist/config/documentation-check.d.ts.map +1 -0
- package/dist/config/documentation-check.js +132 -0
- package/dist/config/oat-config.d.ts +2 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +4 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +1 -0
- package/dist/release/public-package-contract.d.ts.map +1 -1
- package/dist/release/public-package-contract.js +13 -0
- package/package.json +11 -2
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Pull-request docs checks
|
|
2
|
+
|
|
3
|
+
Load this recipe during bootstrap config inspection, including Markdown setup.
|
|
4
|
+
Present the exact workflow diff for the selected repo and get approval before
|
|
5
|
+
writing it. Preserve existing triggers, jobs, permissions and steps. Existing-app
|
|
6
|
+
repair remains analyze/apply work; this recipe does not authorize scaffold or CI
|
|
7
|
+
replacement, deployment, or publication.
|
|
8
|
+
|
|
9
|
+
## Resolve the concrete inputs
|
|
10
|
+
|
|
11
|
+
Read the actual shared config and package scripts, then substitute these values
|
|
12
|
+
in the existing PR workflow (or propose a new docs job if none exists):
|
|
13
|
+
|
|
14
|
+
- `DOCS_ROOT`: configured repository-relative documentation root.
|
|
15
|
+
- `DOCS_CONTENT`: literal root for Markdown; actual framework content directory.
|
|
16
|
+
- `DOCS_TOOLING`: `markdown`, `fumadocs` or `mkdocs`.
|
|
17
|
+
- `DOCS_BUILD_SCRIPT`: actual app build script (`build` for Fumadocs,
|
|
18
|
+
`docs:build` for the starter MkDocs app); empty for Markdown.
|
|
19
|
+
- `DOCS_MANIFEST`: only an explicitly configured **generated Markdown inventory**,
|
|
20
|
+
such as a Fumadocs app-root `index.md`. Leave empty for Markdown unless the
|
|
21
|
+
user separately configured an external inventory. An authored Markdown index
|
|
22
|
+
or MkDocs YAML is not a generated Markdown inventory.
|
|
23
|
+
|
|
24
|
+
Use Node >=22.17 and the repo's package-manager pin. Provision the selected CLI
|
|
25
|
+
version through the repo's existing dependency installation; framework starters
|
|
26
|
+
declare it in their app package. Add the app's `node_modules/.bin` to `GITHUB_PATH`
|
|
27
|
+
when the binary is installed there. A Markdown-only repo uses its existing approved
|
|
28
|
+
CLI provision; do not introduce an app, dependency install or build just for this
|
|
29
|
+
recipe. For MkDocs use the selected Python environment and the existing pinned
|
|
30
|
+
requirements/setup script. Do not upgrade framework or Python packages implicitly.
|
|
31
|
+
In a workspace install from the workspace root; for a nested standalone app,
|
|
32
|
+
install in that app. Keep existing unrelated setup steps. For Fumadocs, first
|
|
33
|
+
inspect the approved effective-root `pnpm-workspace.yaml` compatibility override
|
|
34
|
+
(`mdast-util-to-markdown: 2.1.2`) from Step4a; verify actual resolution and retain
|
|
35
|
+
the lockfile. Do not use member-only policy, silently merge a conflicting root
|
|
36
|
+
setting or claim an unconstrained install. A pending/declined root edit leaves
|
|
37
|
+
setup unverified.
|
|
38
|
+
|
|
39
|
+
Checkout needs full history so the read-only diagram comparison can use
|
|
40
|
+
`origin/main` (or the configured `documentation.check.diagramBaseRef`). For a
|
|
41
|
+
custom base fetch that ref explicitly. A missing base leaves static checks active
|
|
42
|
+
but reports diagram freshness unverified; do not label that result verified.
|
|
43
|
+
|
|
44
|
+
## Verification steps
|
|
45
|
+
|
|
46
|
+
This concrete example uses a Fumadocs root `docs-site`. Substitute every env value
|
|
47
|
+
from the inspected repo, retaining the same checker → build → configured-manifest
|
|
48
|
+
order. The `oat` binary must be on PATH from the provision above. Generated manifests
|
|
49
|
+
are committed; the freshness step rejects an untracked output too.
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
- uses: actions/checkout@v5
|
|
53
|
+
with:
|
|
54
|
+
fetch-depth: 0
|
|
55
|
+
# Keep the repo's Node/package-manager/dependency setup here.
|
|
56
|
+
- name: Verify documentation
|
|
57
|
+
env:
|
|
58
|
+
DOCS_ROOT: docs-site
|
|
59
|
+
DOCS_CONTENT: docs-site/docs
|
|
60
|
+
DOCS_TOOLING: fumadocs
|
|
61
|
+
DOCS_BUILD_SCRIPT: build
|
|
62
|
+
DOCS_MANIFEST: docs-site/index.md
|
|
63
|
+
shell: bash
|
|
64
|
+
run: |
|
|
65
|
+
set -euo pipefail
|
|
66
|
+
oat docs check --target-dir "$DOCS_ROOT"
|
|
67
|
+
if [ "$DOCS_TOOLING" != markdown ]; then
|
|
68
|
+
(cd "$DOCS_ROOT" && pnpm run "$DOCS_BUILD_SCRIPT")
|
|
69
|
+
fi
|
|
70
|
+
if [ -n "$DOCS_MANIFEST" ]; then
|
|
71
|
+
git ls-files --error-unmatch -- "$DOCS_MANIFEST"
|
|
72
|
+
oat docs generate-index --docs-dir "$DOCS_CONTENT" --output "$DOCS_MANIFEST"
|
|
73
|
+
git diff --exit-code -- "$DOCS_MANIFEST"
|
|
74
|
+
fi
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Run those exact commands locally from the repository root after installation,
|
|
78
|
+
with the same concrete inputs and PATH. Record checker, real framework build and
|
|
79
|
+
freshness exits separately. A seeded missing description must fail the checker;
|
|
80
|
+
a stale committed configured manifest must fail the final diff. Restore fixtures
|
|
81
|
+
after each control. A command-order stub is not a framework build. Markdown uses
|
|
82
|
+
empty build/manifest inputs and runs only the checker.
|
|
83
|
+
|
|
84
|
+
If a check fails, repair the authored metadata/maps/links or explicitly sync owned
|
|
85
|
+
navigation; never remove the check, silently regenerate a hand-authored sidebar,
|
|
86
|
+
or add a blanket exclusion. Review warnings and narrow reason-bearing exceptions.
|
|
87
|
+
A build that regenerates an inventory does not prove committed freshness: keep
|
|
88
|
+
the final Git diff after the build. Report unverified or declined CI changes in
|
|
89
|
+
the bootstrap exit summary rather than claiming CI is wired.
|
|
@@ -22,6 +22,10 @@ Edit `docs/**/*.md` and their Contents, not generated app-root `index.md`, `.sou
|
|
|
22
22
|
|
|
23
23
|
Mermaid is source. Important/mobile diagrams get matching light/dark SVG pairs, updated with the Mermaid in the same commit. Require meaningful alt text (about155 characters maximum), `role="img"`, `<title>`, `<desc>` and `aria-labelledby`, readable labels and useful viewBox. Inspect rendered diagrams in both themes; transforms do not validate diagram correctness. See the contributor contract for framework-specific asset paths and image behavior.
|
|
24
24
|
|
|
25
|
+
## Install-root compatibility
|
|
26
|
+
|
|
27
|
+
Before installing, follow the toolchain guide's exact `mdast-util-to-markdown: 2.1.2` policy. A new independent app gets app-root `pnpm-workspace.yaml`; a workspace member must use the existing root policy with explicit approval. Preserve settings/conflicts and never create a member-local workspace boundary. `--no-root-patch` changes only root-script handling. Verify actual resolution and keep the policy/lockfile; do not remove bold/italic content to avoid the Fumadocs handler defect.
|
|
28
|
+
|
|
25
29
|
## Commands and working directories
|
|
26
30
|
|
|
27
31
|
From the **repository root**, enter this app:
|
|
@@ -30,20 +34,23 @@ From the **repository root**, enter this app:
|
|
|
30
34
|
cd {{APP_CWD}}
|
|
31
35
|
```
|
|
32
36
|
|
|
33
|
-
From the **
|
|
37
|
+
From the **repository root**, enter the app and validate after edits:
|
|
34
38
|
|
|
35
39
|
```bash
|
|
40
|
+
cd {{APP_CWD}}
|
|
36
41
|
pnpm docs:format
|
|
37
42
|
pnpm docs:format:check
|
|
38
43
|
pnpm docs:lint
|
|
39
44
|
{{NAV_SYNC_CMD}}
|
|
40
45
|
{{NAV_SYNC_CHECK_CMD}}
|
|
46
|
+
pnpm docs:check
|
|
41
47
|
pnpm build
|
|
42
48
|
```
|
|
43
49
|
|
|
44
|
-
Lint is {{LINT_STATUS}} and formatting is {{FORMAT_STATUS}}; a disabled echo does not validate. From the **
|
|
50
|
+
Lint is {{LINT_STATUS}} and formatting is {{FORMAT_STATUS}}; a disabled echo does not validate. From the **repository root**, enter the app and regenerate the machine inventory with:
|
|
45
51
|
|
|
46
52
|
```bash
|
|
53
|
+
cd {{APP_CWD}}
|
|
47
54
|
{{GENERATE_INDEX_CMD}}
|
|
48
55
|
```
|
|
49
56
|
|
|
@@ -12,6 +12,40 @@ This page is for documentation contributors. Follow the [contributor map](index.
|
|
|
12
12
|
- Node.js {{NODE_REQUIREMENT}}
|
|
13
13
|
- pnpm 10+
|
|
14
14
|
|
|
15
|
+
## Required install-root compatibility policy
|
|
16
|
+
|
|
17
|
+
The current Fumadocs Markdown handler wrapper is incompatible with
|
|
18
|
+
`mdast-util-to-markdown` 2.2.0: valid bold and italic content can recurse during
|
|
19
|
+
compilation. Keep authored content and framework versions; constrain this
|
|
20
|
+
transitive dependency to exactly `2.1.2` at the **effective pnpm install root**.
|
|
21
|
+
This is a constrained fresh install, not an unconstrained compatibility claim.
|
|
22
|
+
|
|
23
|
+
For a new independent app, the CLI creates app-root `pnpm-workspace.yaml` with
|
|
24
|
+
`packages: []` and this policy. Install inside that app. For a workspace member,
|
|
25
|
+
the CLI creates no local workspace boundary: install from the existing workspace
|
|
26
|
+
root and propose this exact addition to its `pnpm-workspace.yaml`:
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
overrides:
|
|
30
|
+
mdast-util-to-markdown: 2.1.2
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Preserve all existing `packages`, overrides and other settings. Add the one entry
|
|
34
|
+
under an existing `overrides` map rather than duplicating the key. Obtain the
|
|
35
|
+
repository owner's approval before editing existing policy. A conflicting version
|
|
36
|
+
or declined/skipped edit remains a manual setup requirement; stop before claiming
|
|
37
|
+
a successful install/build. Do not split an actual workspace member with a local
|
|
38
|
+
`pnpm-workspace.yaml`, or place an ineffective override in its `package.json`.
|
|
39
|
+
`--no-root-patch` controls root build scripts only and never approves dependency
|
|
40
|
+
policy changes. CLI init does not merge or overwrite existing root policy.
|
|
41
|
+
|
|
42
|
+
Use the repository's selected pnpm version (10+). This root YAML syntax works
|
|
43
|
+
with pnpm 10 and 12; pnpm 12 ignores `package.json`'s `pnpm.overrides`, and pnpm 10
|
|
44
|
+
ignores policy in a workspace member. After installation, inspect
|
|
45
|
+
`pnpm why mdast-util-to-markdown` from the effective root to confirm `2.1.2`, then
|
|
46
|
+
run the checker and real build below. Retain the effective root policy and
|
|
47
|
+
lockfile in version control. Do not change a user-scope package-manager install.
|
|
48
|
+
|
|
15
49
|
## Install and preview
|
|
16
50
|
|
|
17
51
|
From the **repository root**, enter the docs app; subsequent commands run in the **app directory**:
|
|
@@ -22,26 +56,29 @@ pnpm install
|
|
|
22
56
|
pnpm dev
|
|
23
57
|
```
|
|
24
58
|
|
|
25
|
-
Fumadocs generates a static export under `out/`. `pnpm start` expects a Next server and is not the static-export preview command; serve `out/` with a static HTTP server and mount the configured base path.
|
|
59
|
+
Fumadocs generates a static export under `out/`. `cd {{APP_CWD}} && pnpm start` expects a Next server and is not the static-export preview command; serve `out/` with a static HTTP server and mount the configured base path.
|
|
26
60
|
|
|
27
61
|
## Validate before committing
|
|
28
62
|
|
|
29
|
-
From the **
|
|
63
|
+
From the **repository root**, enter the app and validate in this order:
|
|
30
64
|
|
|
31
65
|
```bash
|
|
66
|
+
cd {{APP_CWD}}
|
|
32
67
|
pnpm docs:format
|
|
33
68
|
pnpm docs:format:check
|
|
34
69
|
pnpm docs:lint
|
|
35
70
|
{{NAV_SYNC_CMD}}
|
|
36
71
|
{{NAV_SYNC_CHECK_CMD}}
|
|
72
|
+
pnpm docs:check
|
|
37
73
|
pnpm build
|
|
38
74
|
```
|
|
39
75
|
|
|
40
76
|
Lint is {{LINT_STATUS}}; formatting is {{FORMAT_STATUS}}. Disabled scripts print a message and are not validation. Nav sync writes only approved, owned navigation; the read-only check fails on drift or unlisted reader pages. Inspect the rendered site for navigation, links, tabs and diagrams.
|
|
41
77
|
|
|
42
|
-
From the **
|
|
78
|
+
From the **repository root**, enter the app and regenerate the machine inventory when needed:
|
|
43
79
|
|
|
44
80
|
```bash
|
|
81
|
+
cd {{APP_CWD}}
|
|
45
82
|
{{GENERATE_INDEX_CMD}}
|
|
46
83
|
```
|
|
47
84
|
|
|
@@ -66,6 +66,7 @@ Tables, task lists, fenced code, callouts, Mermaid and `=== "Title"` tabs are su
|
|
|
66
66
|
| Reader links | Resolve |
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
+
cd {{APP_CWD}}
|
|
69
70
|
pnpm docs:lint
|
|
70
71
|
```
|
|
71
72
|
````
|
|
@@ -82,13 +83,16 @@ Tables, task lists, fenced code, callouts, Mermaid and `=== "Title"` tabs are su
|
|
|
82
83
|
| Reader links | Resolve |
|
|
83
84
|
|
|
84
85
|
```bash
|
|
86
|
+
cd {{APP_CWD}}
|
|
85
87
|
pnpm docs:lint
|
|
86
88
|
```
|
|
87
89
|
|
|
88
|
-
Not configured: arbitrary custom components, executable notebooks, API playgrounds
|
|
90
|
+
Not configured: arbitrary custom components, executable notebooks, API playgrounds or screenshot testing. Do not describe those as supported without an approved configuration and a working example. Check the actual package scripts: lint is {{LINT_STATUS}} and formatting is {{FORMAT_STATUS}}; disabled scripts only print a message.
|
|
89
91
|
|
|
90
92
|
## Diagrams and accessibility
|
|
91
93
|
|
|
94
|
+
Run the app’s docs:check script (from the repository root: `cd {{APP_CWD}} && pnpm docs:check`) before committing. It checks reader metadata/maps/links, navigation, contributor commands and real Mermaid syntax without building the site. Errors fail; warnings prompt review. Fix authored sources, then explicitly sync owned navigation and retry.
|
|
95
|
+
|
|
92
96
|
Mermaid is the diagram source of truth. Important or phone-sized diagrams also get matching `<name>-light.svg` and `<name>-dark.svg` assets. Change the Mermaid and both SVGs in the same commit, preserving nodes, edges and labels. Each SVG uses `role="img"`, a descriptive `<title>` and `<desc>` (connected with `aria-labelledby`), a legible viewBox and readable labels. Keep image alt text concise, about 155 characters or less, and describe the diagram's meaning without inventing claims.
|
|
93
97
|
|
|
94
98
|
=== "Syntax"
|
|
@@ -106,6 +110,8 @@ Mermaid is the diagram source of truth. Important or phone-sized diagrams also g
|
|
|
106
110
|
|
|
107
111
|
```mermaid
|
|
108
112
|
flowchart LR
|
|
113
|
+
accTitle: Documentation edit
|
|
114
|
+
accDescr: Read the local map before making a focused edit.
|
|
109
115
|
A[Read local map] --> B[Make a focused edit]
|
|
110
116
|
```
|
|
111
117
|
|
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
"scripts": {
|
|
8
8
|
"predev": "fumadocs-mdx && {{GENERATE_INDEX_CMD}}",
|
|
9
9
|
"dev": "next dev",
|
|
10
|
-
"prebuild": "{{NAV_SYNC_CHECK_CMD}} && fumadocs-mdx && {{GENERATE_INDEX_CMD}}",
|
|
10
|
+
"prebuild": "{{DOCS_CHECK_CMD}} && {{NAV_SYNC_CHECK_CMD}} && fumadocs-mdx && {{GENERATE_INDEX_CMD}}",
|
|
11
11
|
"build": "next build",
|
|
12
12
|
"start": "next start",
|
|
13
|
+
"docs:check": "{{DOCS_CHECK_CMD}}",
|
|
13
14
|
"docs:lint": "{{DOCS_LINT_SCRIPT}}",
|
|
14
15
|
"docs:format": "{{DOCS_FORMAT_SCRIPT}}",
|
|
15
16
|
"docs:format:check": "{{DOCS_FORMAT_CHECK_SCRIPT}}"
|
|
@@ -32,15 +32,17 @@ From the **repository root**, enter this app:
|
|
|
32
32
|
cd {{APP_CWD}}
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
From the **
|
|
35
|
+
From the **repository root**, enter the app and validate after edits:
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
+
cd {{APP_CWD}}
|
|
38
39
|
pnpm docs:format
|
|
39
40
|
pnpm docs:format:check
|
|
40
41
|
pnpm docs:lint
|
|
41
42
|
{{NAV_SYNC_CMD}}
|
|
42
43
|
{{NAV_SYNC_CHECK_CMD}}
|
|
44
|
+
pnpm docs:check
|
|
43
45
|
pnpm docs:build
|
|
44
46
|
```
|
|
45
47
|
|
|
46
|
-
Lint is {{LINT_STATUS}} and formatting is {{FORMAT_STATUS}}; a disabled echo does not validate. The
|
|
48
|
+
Lint is {{LINT_STATUS}} and formatting is {{FORMAT_STATUS}}; a disabled echo does not validate. The test script runs the portable docs checker. Setup/preview details and legacy support are in the toolchain guide.
|
|
@@ -30,15 +30,17 @@ pnpm docs:dev
|
|
|
30
30
|
|
|
31
31
|
## Validate before committing
|
|
32
32
|
|
|
33
|
-
From the **
|
|
33
|
+
From the **repository root**, enter the app and validate in this order:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
+
cd {{APP_CWD}}
|
|
36
37
|
pnpm docs:format
|
|
37
38
|
pnpm docs:format:check
|
|
38
39
|
pnpm docs:lint
|
|
39
40
|
{{NAV_SYNC_CMD}}
|
|
40
41
|
{{NAV_SYNC_CHECK_CMD}}
|
|
42
|
+
pnpm docs:check
|
|
41
43
|
pnpm docs:build
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
Lint is {{LINT_STATUS}}; formatting is {{FORMAT_STATUS}}. Disabled scripts print a message and are not validation. Nav sync writes only approved, owned navigation; the read-only check fails on navigation drift. Inspect the rendered site for navigation, links, tabs and diagrams. The
|
|
46
|
+
Lint is {{LINT_STATUS}}; formatting is {{FORMAT_STATUS}}. Disabled scripts print a message and are not validation. Nav sync writes only approved, owned navigation; the read-only check fails on navigation drift. Inspect the rendered site for navigation, links, tabs and diagrams. The MkDocs test script also runs the portable docs checker.
|
|
@@ -70,6 +70,7 @@ Tables, task lists, fenced code, callouts, Mermaid and `=== "Title"` tabs are su
|
|
|
70
70
|
| Reader links | Resolve |
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
+
cd {{APP_CWD}}
|
|
73
74
|
pnpm docs:lint
|
|
74
75
|
```
|
|
75
76
|
````
|
|
@@ -86,13 +87,16 @@ Tables, task lists, fenced code, callouts, Mermaid and `=== "Title"` tabs are su
|
|
|
86
87
|
| Reader links | Resolve |
|
|
87
88
|
|
|
88
89
|
```bash
|
|
90
|
+
cd {{APP_CWD}}
|
|
89
91
|
pnpm docs:lint
|
|
90
92
|
```
|
|
91
93
|
|
|
92
|
-
Not configured: arbitrary custom components, executable notebooks, API playgrounds
|
|
94
|
+
Not configured: arbitrary custom components, executable notebooks, API playgrounds or screenshot testing. Do not describe those as supported without an approved configuration and a working example. Check the actual package scripts: lint is {{LINT_STATUS}} and formatting is {{FORMAT_STATUS}}; disabled scripts only print a message.
|
|
93
95
|
|
|
94
96
|
## Diagrams and accessibility
|
|
95
97
|
|
|
98
|
+
Run the app’s docs:check script (from the repository root: `cd {{APP_CWD}} && pnpm docs:check`) before committing. It checks reader metadata/maps/links, navigation, contributor commands and real Mermaid syntax without building the site. Errors fail; warnings prompt review. Fix authored sources, then explicitly sync owned navigation and retry.
|
|
99
|
+
|
|
96
100
|
Mermaid is the diagram source of truth. Important or phone-sized diagrams also get matching `<name>-light.svg` and `<name>-dark.svg` assets. Change the Mermaid and both SVGs in the same commit, preserving nodes, edges and labels. Each SVG uses `role="img"`, a descriptive `<title>` and `<desc>` (connected with `aria-labelledby`), a legible viewBox and readable labels. Keep image alt text concise, about 155 characters or less, and describe the diagram's meaning without inventing claims.
|
|
97
101
|
|
|
98
102
|
=== "Syntax"
|
|
@@ -110,6 +114,8 @@ Mermaid is the diagram source of truth. Important or phone-sized diagrams also g
|
|
|
110
114
|
|
|
111
115
|
```mermaid
|
|
112
116
|
flowchart LR
|
|
117
|
+
accTitle: Documentation edit
|
|
118
|
+
accDescr: Read the local map before making a focused edit.
|
|
113
119
|
A[Read local map] --> B[Make a focused edit]
|
|
114
120
|
```
|
|
115
121
|
|
|
@@ -6,12 +6,13 @@
|
|
|
6
6
|
"description": "MkDocs Material documentation for {{SITE_NAME}}.",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"docs:dev": "mkdocs serve",
|
|
9
|
-
"docs:build": "{{NAV_SYNC_CHECK_CMD}} && mkdocs build",
|
|
9
|
+
"docs:build": "{{DOCS_CHECK_CMD}} && {{NAV_SYNC_CHECK_CMD}} && mkdocs build",
|
|
10
10
|
"docs:setup": "sh ./setup-docs.sh",
|
|
11
|
+
"docs:check": "{{DOCS_CHECK_CMD}}",
|
|
11
12
|
"docs:lint": "{{DOCS_LINT_SCRIPT}}",
|
|
12
13
|
"docs:format": "{{DOCS_FORMAT_SCRIPT}}",
|
|
13
14
|
"docs:format:check": "{{DOCS_FORMAT_CHECK_SCRIPT}}",
|
|
14
|
-
"test": "
|
|
15
|
+
"test": "{{DOCS_CHECK_CMD}}"
|
|
15
16
|
},
|
|
16
17
|
"devDependencies": {
|
|
17
18
|
"@open-agent-toolkit/cli": "{{OAT_CLI_DEP}}"{{DEV_DEPENDENCIES}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAIhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { compileDispatchCeilingPreset } from '../../config/dispatch-ceiling-pres
|
|
|
11
11
|
import { normalizeDispatchMatrix, validateDispatchRouteTarget, walkDispatchMatrix, } from '../../config/dispatch-matrix.js';
|
|
12
12
|
import { formatDispatchNotices, terminalReviewerNoticesForMatrix, } from '../../config/dispatch-notices.js';
|
|
13
13
|
import { dispatchPolicyModeDescription, dispatchPolicyPolicyDescription, managedDispatchPolicyValueList, } from '../../config/dispatch-policy-options.js';
|
|
14
|
+
import { normalizeDocumentationCheck } from '../../config/documentation-check.js';
|
|
14
15
|
import { parseJsonConfig } from '../../config/json.js';
|
|
15
16
|
import { DEFAULT_INSTRUCTION_SYNC_STRATEGY, INSTRUCTION_SYNC_STRATEGIES, VALID_DISPATCH_POLICY_MODES, VALID_MANAGED_DISPATCH_POLICIES, MAX_GATE_TIMEOUT_MS, MIN_GATE_TIMEOUT_MS, isValidGateTimeoutMs, isValidProjectLogDigestBound, normalizeWorkflowPostImplementSequence, normalizeDocumentationGuidance, normalizeDocumentationIa, normalizeDocumentationNavOwner, readOatConfig, readOatConfigForDefaultScopeRepair, readOatConfigForDocumentationExcludesRepair, readOatConfigForInstructionPointerExcludesRepair, readOatConfigForInstructionSyncStrategyRepair, readOatConfigWithWarnings, readOatLocalConfig, readUserConfig, writeOatConfig, writeOatLocalConfig, writeUserConfig, VALID_POST_IMPLEMENT_LEGACY_SEQUENCES, } from '../../config/oat-config.js';
|
|
16
17
|
import { getOwnKey, setOwnKey } from '../../config/own-keys.js';
|
|
@@ -67,6 +68,7 @@ const KEY_ORDER = [
|
|
|
67
68
|
'archive.awsRegion',
|
|
68
69
|
'autoReviewAtCheckpoints',
|
|
69
70
|
'lastPausedProject',
|
|
71
|
+
'documentation.check',
|
|
70
72
|
'documentation.ia',
|
|
71
73
|
'documentation.nonReaderPaths',
|
|
72
74
|
'documentation.navOwner',
|
|
@@ -242,6 +244,17 @@ const CONFIG_CATALOG = [
|
|
|
242
244
|
description: 'Deprecated compatibility alias for workflow.autoReviewAtHillCheckpoints. Prefer `oat config set workflow.autoReviewAtHillCheckpoints <true|false>`.',
|
|
243
245
|
deprecated: { supersededBy: 'workflow.autoReviewAtHillCheckpoints' },
|
|
244
246
|
},
|
|
247
|
+
{
|
|
248
|
+
key: 'documentation.check',
|
|
249
|
+
group: 'Shared Repo (.oat/config.json)',
|
|
250
|
+
scope: 'shared repo',
|
|
251
|
+
file: '.oat/config.json',
|
|
252
|
+
type: 'JSON object',
|
|
253
|
+
defaultValue: 'null (portable checker defaults)',
|
|
254
|
+
mutability: 'read/write',
|
|
255
|
+
owningCommand: 'oat config set documentation.check <JSON>',
|
|
256
|
+
description: 'Portable docs rule severities, named thresholds, reason-bearing path exceptions, provenance patterns and diagram base ref.',
|
|
257
|
+
},
|
|
245
258
|
{
|
|
246
259
|
key: 'documentation.ia',
|
|
247
260
|
group: 'Shared Repo (.oat/config.json)',
|
|
@@ -1822,6 +1835,7 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
|
|
|
1822
1835
|
const effectiveSurface = surface === 'auto' ? defaultSurfaceForKey(key) : surface;
|
|
1823
1836
|
if (key === 'documentation.nonReaderPaths' ||
|
|
1824
1837
|
key === 'documentation.guidance' ||
|
|
1838
|
+
key === 'documentation.check' ||
|
|
1825
1839
|
key === 'documentation.ia' ||
|
|
1826
1840
|
key === 'documentation.navOwner') {
|
|
1827
1841
|
const configPath = effectiveSurface === 'user'
|
|
@@ -1831,7 +1845,13 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
|
|
|
1831
1845
|
const trimmed = rawValue.trim();
|
|
1832
1846
|
let value;
|
|
1833
1847
|
try {
|
|
1834
|
-
if (key === 'documentation.
|
|
1848
|
+
if (key === 'documentation.check') {
|
|
1849
|
+
const parsed = JSON.parse(trimmed);
|
|
1850
|
+
if (parsed === null)
|
|
1851
|
+
throw new Error('Expected a checker JSON object.');
|
|
1852
|
+
value = normalizeDocumentationCheck(parsed);
|
|
1853
|
+
}
|
|
1854
|
+
else if (key === 'documentation.nonReaderPaths') {
|
|
1835
1855
|
const paths = parseDocumentationExcludes(rawValue);
|
|
1836
1856
|
value = paths.length > 0 ? paths : undefined;
|
|
1837
1857
|
}
|
|
@@ -1848,8 +1868,10 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
|
|
|
1848
1868
|
: normalizeDocumentationGuidance(trimmed.startsWith('[') ? JSON.parse(trimmed) : trimmed, configPath, effectiveSurface === 'user' ? 'user' : 'shared');
|
|
1849
1869
|
}
|
|
1850
1870
|
}
|
|
1851
|
-
catch {
|
|
1852
|
-
|
|
1871
|
+
catch (error) {
|
|
1872
|
+
if (key === 'documentation.check')
|
|
1873
|
+
throw error;
|
|
1874
|
+
throw new Error(`Invalid ${key} value: ${key === 'documentation.ia' ? 'expected IA JSON with preset, repo-relative decision, optional tracks and verification' : key === 'documentation.navOwner' ? 'expected nav-sync or hand-authored' : 'expected a non-empty path/URL string or ordered non-empty string array'}.`, { cause: error });
|
|
1853
1875
|
}
|
|
1854
1876
|
let raw = { version: 1 };
|
|
1855
1877
|
try {
|
|
@@ -2450,6 +2472,7 @@ async function unsetConfigValue(repoRoot, userConfigDir, key, surface, dependenc
|
|
|
2450
2472
|
async function removeFromSurface(repoRoot, userConfigDir, key, effectiveSurface, path, dependencies) {
|
|
2451
2473
|
if (key === 'documentation.nonReaderPaths' ||
|
|
2452
2474
|
key === 'documentation.guidance' ||
|
|
2475
|
+
key === 'documentation.check' ||
|
|
2453
2476
|
key === 'documentation.ia' ||
|
|
2454
2477
|
key === 'documentation.navOwner') {
|
|
2455
2478
|
const configPath = effectiveSurface === 'user'
|
|
@@ -2577,6 +2600,15 @@ async function removeConfigPathOnDisk(configPath, path) {
|
|
|
2577
2600
|
if (!isRecord(parsed)) {
|
|
2578
2601
|
return null;
|
|
2579
2602
|
}
|
|
2603
|
+
// Checker null is malformed rather than an inherited unset sentinel.
|
|
2604
|
+
if (path.join('.') === 'documentation.check' &&
|
|
2605
|
+
isRecord(parsed.documentation) &&
|
|
2606
|
+
Object.hasOwn(parsed.documentation, 'check')) {
|
|
2607
|
+
return {
|
|
2608
|
+
...parsed,
|
|
2609
|
+
documentation: withoutOwnKey(parsed.documentation, 'check'),
|
|
2610
|
+
};
|
|
2611
|
+
}
|
|
2580
2612
|
const { next, removed } = removeConfigPath(parsed, path);
|
|
2581
2613
|
return removed ? next : null;
|
|
2582
2614
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/check/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,sBAAsB,IAAI,OAAO,CA4DhD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { buildCommandContext } from '../../../app/command-context.js';
|
|
2
|
+
import { readGlobalOptions } from '../../shared/shared.utils.js';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import { checkDocs } from './checker.js';
|
|
5
|
+
export function createDocsCheckCommand() {
|
|
6
|
+
return new Command('check')
|
|
7
|
+
.description('Read-only portable reader, navigation, command and diagram validation')
|
|
8
|
+
.option('--target-dir <dir>', 'Docs app root or literal Markdown content root')
|
|
9
|
+
.option('--rule <id...>', 'Run only these stable rule IDs (repeatable)', (values, previous) => previous.concat(values), [])
|
|
10
|
+
.action(async (options, command) => {
|
|
11
|
+
const context = buildCommandContext(readGlobalOptions(command));
|
|
12
|
+
let result;
|
|
13
|
+
try {
|
|
14
|
+
result = await checkDocs({
|
|
15
|
+
cwd: context.cwd,
|
|
16
|
+
targetDir: options.targetDir,
|
|
17
|
+
rules: options.rule,
|
|
18
|
+
});
|
|
19
|
+
process.exitCode = result.summary.errors ? 1 : 0;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
const message = error.message;
|
|
23
|
+
result = {
|
|
24
|
+
summary: { errors: 1, warnings: 0 },
|
|
25
|
+
findings: [
|
|
26
|
+
{
|
|
27
|
+
ruleId: 'configuration',
|
|
28
|
+
severity: 'error',
|
|
29
|
+
path: '.oat/config.json',
|
|
30
|
+
message,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
// Invalid input/config is actionable. Unexpected filesystem/runtime
|
|
35
|
+
// failures retain the CLI's separate runtime-error exit convention.
|
|
36
|
+
process.exitCode = error.code ? 2 : 1;
|
|
37
|
+
}
|
|
38
|
+
if (context.json)
|
|
39
|
+
context.logger.json(result);
|
|
40
|
+
else {
|
|
41
|
+
for (const f of result.findings) {
|
|
42
|
+
const location = `${f.path}${f.line === undefined ? '' : `:${f.line}`}`;
|
|
43
|
+
context.logger[f.severity === 'error' ? 'error' : 'warn'](`${location} [${f.ruleId}] ${f.message}`);
|
|
44
|
+
}
|
|
45
|
+
context.logger.info(`Docs check: ${result.summary.errors} error(s), ${result.summary.warnings} warning(s).`);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DocsCheckRule } from '../../../config/documentation-check.js';
|
|
2
|
+
export interface DocsFinding {
|
|
3
|
+
ruleId: DocsCheckRule | 'configuration';
|
|
4
|
+
severity: 'error' | 'warn';
|
|
5
|
+
path: string;
|
|
6
|
+
line?: number;
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
export interface DocsCheckResult {
|
|
10
|
+
summary: {
|
|
11
|
+
errors: number;
|
|
12
|
+
warnings: number;
|
|
13
|
+
};
|
|
14
|
+
findings: DocsFinding[];
|
|
15
|
+
}
|
|
16
|
+
export type Report = (rule: DocsCheckRule, severity: 'error' | 'warn', path: string, message: string, line?: number) => void;
|
|
17
|
+
//# sourceMappingURL=check.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.types.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/check/check.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,GAAG,eAAe,CAAC;IACxC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AACD,MAAM,MAAM,MAAM,GAAG,CACnB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,KACV,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DocsCheckResult } from './check.types.js';
|
|
2
|
+
/** Read-only portable checker. Output paths are content-root-relative POSIX. */
|
|
3
|
+
export declare function checkDocs(options: {
|
|
4
|
+
cwd: string;
|
|
5
|
+
targetDir?: string;
|
|
6
|
+
rules?: string[];
|
|
7
|
+
}): Promise<DocsCheckResult>;
|
|
8
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/check/checker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,eAAe,CAAC;AAQ1E,gFAAgF;AAChF,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAwF3B"}
|