Skip to content

Commit 2998dc5

Browse files
authored
Docs: Enable documentation section of website (#95)
* Enable documentation section of website Signed-off-by: Ed Snible <snible@us.ibm.com>
1 parent bf18b0d commit 2998dc5

6 files changed

Lines changed: 53 additions & 21 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ SRC_REPO=/path/to/rossoctl npm run sync-docs
5151
npm start # http://localhost:3000/.github/ (Ctrl+C to stop)
5252
```
5353

54-
To verify a production build the way CI does — this is the check that matters
55-
before pushing, since `npm start` is more lenient than a real build:
54+
We do not use `npm start` to run the dev server with hot reload, because we make heavy use of the `draft` feature, which is not suppressed by `start`.
5655

5756
```sh
5857
npm run build # production build into build/ (fails on broken links, type errors)
@@ -84,3 +83,4 @@ set `baseUrl: '/'` in `docusaurus.config.ts` and add `static/CNAME`.
8483
Commits require **DCO sign-off** (`git commit -s`). See [`CLAUDE.md`](./CLAUDE.md)
8584
for the sign-off and attribution policy, and enable the hook with
8685
`git config core.hooksPath scripts/hooks`.
86+

docusaurus.config.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ const config: Config = {
5757
// and sitemap — not merely hidden from the navbar. Doc authoring
5858
// continues upstream in rossoctl/rossoctl:docs/.
5959
// TO RESTORE: delete `docs: false` and uncomment the block below.
60-
docs: false,
61-
/* docs: {
60+
// docs: false,
61+
docs: {
6262
// Read docs from a local docs/ folder that mirrors the source of
6363
// truth 1:1. This folder is NOT committed — scripts/sync-docs.sh syncs
6464
// it from rossoctl/rossoctl:docs/ at build time. routeBasePath keeps
@@ -73,12 +73,15 @@ const config: Config = {
7373
// versions exist yet. When the first is cut
7474
// (`npm run docusaurus docs:version 0.7`), it becomes the default
7575
// "latest" and "dev" stays as the work-in-progress version.
76+
exclude: [
77+
78+
],
7679
versions: {
7780
current: {
7881
label: 'dev',
7982
},
8083
},
81-
}, */
84+
},
8285
// Blog is an EXTERNAL Medium link (see navbar) — no local blog.
8386
blog: false,
8487
theme: {
@@ -146,14 +149,12 @@ const config: Config = {
146149
// clicking the logo/title goes to '/', the landing page
147150
},
148151
items: [
149-
// === TEMPORARY: "Documentation" nav item hidden until docs go public. ===
150-
// TO RESTORE: uncomment this item (requires re-enabling `docs` in the preset above).
151-
/* {
152+
{
152153
type: 'docSidebar',
153154
sidebarId: 'docsSidebar',
154155
position: 'left',
155156
label: 'Documentation',
156-
}, */
157+
},
157158
{
158159
// Single "Contributing" page rendered from the contributing docs
159160
// instance (docs layout + breadcrumbs). Content mirrors rossoctl's

ecosystem/welcome.mdx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,42 +25,42 @@ export const cortexFunctions = [
2525
},
2626
{
2727
number: '03',
28-
status: 'In progress',
28+
status: 'beta in 0.7',
2929
title: 'Intent-based access',
3030
description:
3131
"Access is tied to what the user actually asked for, so an agent that drifts off task can't quietly reuse its access for something else.",
3232
},
3333
{
3434
number: '04',
35-
status: 'In progress',
35+
status: 'beta in 0.7',
3636
title: 'Tool semantic validation',
3737
description:
3838
"Tool calls are checked for correctness and meaning before they run, catching calls that are malformed or don't match the task.",
3939
},
4040
{
4141
number: '05',
42-
status: 'Next',
42+
status: 'alpha in 0.7',
4343
title: 'Context compaction',
4444
description:
4545
"The platform assembles and trims what goes into the model's context, keeping it relevant and lowering token cost.",
4646
},
4747
{
4848
number: '06',
49-
status: 'Next',
49+
status: 'alpha in 0.7',
5050
title: 'Data-flow analysis',
5151
description:
5252
'The platform tracks where the data behind a decision came from, so its provenance can gate what the agent does next.',
5353
},
5454
{
5555
number: '07',
56-
status: 'In progress',
56+
status: 'beta in 0.7',
5757
title: 'Failure recovery',
5858
description:
5959
'The platform detects when an agent stalls or fails and returns it to a known state instead of leaving work half-finished.',
6060
},
6161
{
6262
number: '08',
63-
status: 'In progress',
63+
status: 'beta in 0.7',
6464
title: 'User interaction',
6565
description:
6666
'For high-stakes steps, a person stays in the loop and approves before the agent acts.',
@@ -112,8 +112,7 @@ rossoctl is a set of platform primitives for agent security, resilience, and eff
112112

113113
<div className="margin-top--md margin-bottom--lg">
114114
{/* Primary CTAs point at the project repos (docs hidden pre-launch). */}
115-
<Link className="button button--lg cta-primary margin-right--sm" href="https://github.com/rossoctl/rossoctl">Get started</Link>
116-
<Link className="button button--lg cta-secondary" href="https://github.com/rossoctl/cortex">Try RossoCortex</Link>
115+
<Link className="button button--lg cta-primary margin-right--sm" href="/docs/overview/quickstart">Get started</Link>
117116
</div>
118117

119118
<ArchitectureDiagram />

scripts/sync-docs.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,20 @@ if [[ -d "$UP" ]]; then
4545
mkdir -p "$DEST"
4646
rsync -a --delete --exclude '.DS_Store' "$UP"/ "$DEST"/
4747

48+
# The /docs/ root is a GENERATED INDEX (see sidebars.ts), not a markdown file.
49+
# By default Docusaurus maps docs/README.md to the /docs/ route, which would
50+
# collide with that generated index. Give README a slug so it ships as an
51+
# ordinary page (/docs/readme) and frees the root route. Prepend frontmatter
52+
# (upstream README has none). Skip if it somehow already has frontmatter.
53+
README="$DEST/README.md"
54+
if [[ -f "$README" ]] && ! head -1 "$README" | grep -q '^---$'; then
55+
printf -- '---\nslug: /readme\nsidebar_label: Overview\n---\n\n%s' "$(cat "$README")" > "$README.tmp"
56+
mv "$README.tmp" "$README"
57+
fi
58+
4859
# Rewrite links to README.md -> index.md (Docusaurus folder-index convention).
60+
# (README is no longer the folder index, but existing ./README.md links across
61+
# the docs still resolve to the same page; keep this so cross-links don't break.)
4962
find "$DEST" -name '*.md' -type f -print0 | while IFS= read -r -d '' f; do
5063
sed -i.bak -E 's#\]\(([^)]*)README\.md#](\1index.md#g' "$f" && rm -f "$f.bak"
5164
done

sidebars.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,26 @@ import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
1111
* The key here ("docsSidebar") must match `sidebarId` in docusaurus.config.ts.
1212
*/
1313
const sidebars: SidebarsConfig = {
14-
docsSidebar: [{type: 'autogenerated', dirName: '.'}],
14+
// The docs root (/docs/) is a GENERATED INDEX — an auto-built list of the
15+
// sections below — rather than a single markdown file. This is durable: the
16+
// docs/ folder is regenerated from upstream on every build (scripts/sync-docs.sh),
17+
// so we don't rely on any specific file (like README.md) landing at the root.
18+
// README.md still ships as a normal page; sync-docs.sh gives it a slug so it
19+
// no longer claims the /docs/ route.
20+
docsSidebar: [
21+
{
22+
type: 'category',
23+
label: 'Documentation',
24+
link: {
25+
type: 'generated-index',
26+
title: 'Rossoctl Documentation',
27+
description:
28+
'Guides, concepts, and references for deploying and operating Rossoctl.',
29+
slug: '/',
30+
},
31+
items: [{type: 'autogenerated', dirName: '.'}],
32+
},
33+
],
1534
};
1635

1736
export default sidebars;

src/components/Accordion/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ export type AccordionItem = {
1616

1717
// Map a status label to its pill style.
1818
const STATUS_CLASS: Record<string, string> = {
19-
Ready: styles.pillReady,
20-
'In progress': styles.pillProgress,
21-
Next: styles.pillNext,
19+
'Ready': styles.pillReady,
20+
'beta in 0.7': styles.pillProgress,
21+
'alpha in 0.7': styles.pillNext,
2222
};
2323

2424
function Chevron({open}: {open: boolean}): ReactNode {

0 commit comments

Comments
 (0)