Skip to content

Added design spec for component documentation#18

Open
carsongee wants to merge 4 commits intomainfrom
carsongee/add_docs_spec
Open

Added design spec for component documentation#18
carsongee wants to merge 4 commits intomainfrom
carsongee/add_docs_spec

Conversation

@carsongee
Copy link
Copy Markdown
Contributor

@carsongee carsongee commented Apr 13, 2026

Summary

Agents and humans building and composing AF components need documentation. This specifies how to provide that in a way that they will compose properly into recipes and templates for use by humans and LLMs

Implementation for af-component-base: datarobot-community/af-component-base#81


Note

Low Risk
Low risk docs-only change that adds new guidance and a navigation link, with no runtime or API impact.

Overview
Adds a new design document (design/documentation.md) specifying conventions for where and how components should ship offline-first documentation and .skills (structure, naming, quality requirements, and sync expectations for global skills).

Updates the docs navigation (properdocs.yml) to include this new Documentation design spec under the Design section.

Reviewed by Cursor Bugbot for commit afe7526. Bugbot is set up for automated code reviews on this repo. Configure here.

@carsongee carsongee force-pushed the carsongee/add_docs_spec branch from 5b525b7 to c3131d7 Compare April 13, 2026 18:28
Copy link
Copy Markdown

@shreyaag-dr shreyaag-dr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Copy Markdown

@shreyaag-dr shreyaag-dr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Copy Markdown

@jendavies jendavies left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems comprehensive, do we need more threats? :)

- Example: `docs/react.md`, `docs/llm.md`

**Multi-file documentation:**
- Format: `docs/<component-name>/README.md` (plus additional files)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not clear what "plus" means. DO you mean:

docs/<component-name>/README.md
docs/<component-name>/deployment.md
docs/<component-name>/troubleshooting.md

If so, maybe:

Format: docs/<component-name>/<multifile-docs> (plus additional files)

Example: docs/agent/README.md, docs/agent/crewai.md, docs/agent/troubleshooting.md

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm trying to convey that at least README.md is required in addition to any other files you want to put in the folder for a consistent experience, and to improve navigation by agents and humans

4. **Document dependencies**&mdash;External tools, environment variables, prerequisites.
5. **Specify context costs**&mdash;Estimated token usage and context window requirements.

## Implementation guidelines
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe link to this at the very start? But maybe you want them to read it all.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I did. It is a bit redundant by the time you get here, but I like the TL;DR at the end these days. I'm open to putting it up top, though

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm torn on this one, myself. I guess I'd say leave it down here for now and we'll see if it needs to be promoted.

Copy link
Copy Markdown
Contributor

@smagee-robot smagee-robot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, it seems good to me. I called out a few points I found confusing, but devs may understand the terms better than I do.


## Overview

This specification defines how documentation and agent skills should be organized, distributed, and maintained within DataRobot App Framework components. The core principle is that documentation and skills should live closest to the component they describe, enabling offline usage, ensuring consistency, and providing both human and LLM-friendly access to information.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This specification defines how documentation and agent skills should be organized, distributed, and maintained within DataRobot App Framework components. The core principle is that documentation and skills should live closest to the component they describe, enabling offline usage, ensuring consistency, and providing both human and LLM-friendly access to information.
This specification defines how documentation and agent skills should be organized, distributed, and maintained within DataRobot App Framework components. The core principle is that documentation and skills should live closest to the component they describe, enabling offline usage, ensuring consistency, and providing both human- and LLM-friendly access to information.

```
template/
├── docs/
│ ├── react.md # Single-file component docs
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the distinction between single- and multi-file docs? Are you just referring to the difference in components that only need one doc page vs. more complicated ones? I suspect I'm misunderstanding the intent, since if it were just a single page, the README.md would likely be the choice and not react.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the distinction between single- and multi-file docs? Are you just referring to the difference in components that only need one doc page vs. more complicated ones?

Yep, that's the intent here

I suspect I'm misunderstanding the intent, since if it were just a single page, the README.md would likely be the choice and not react
Well, then you'd end up making a folder with one file, i.e., react/README.md, which is also reasonable. It just felt to me like it would be better for humans not to need a folder with a single file in it. I'm open to simplifying the rules, though.

With that full understanding, which way do you think is the best @smagee-robot ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with leaving it simple, in that case. I assume it needs to be named react for the docs toolchain as a react frontend?

│ │ ├── README.md
│ │ ├── deployment.md
│ │ └── troubleshooting.md
│ ├── llm.md
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be llms.md? I'm not sure of the standard (if there is one), I just recall we changed llm.txt accessible for our public docs site to be plural and want to make sure it's right, or if it matters at all.


## Implementation guidelines

### For component authors
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure where it should be slotted in, but we should add a requirement that any new public-facing docs must be reviewed by the docs team.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I feel like that needs to happen at the components creation time. Or at least when the component is ready to become an official DataRobot core component. I have a todo item for creating a guide on how to make a component from scratch. I'll make sure that I have that review from the docs team is required for inclusion in our core App Framework requirements.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That works for me. It would be nice if we get the slack integration working long-term, but in the immediate term tagging me directly should be OK.


### Naming convention

**Single-file documentation:**
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick: the colon for headings/callouts like this should be outside the bold tags.

(I know the actual style in this isn't the important part of the review; I think this is my only comment along these lines ;) ).

carsongee and others added 2 commits April 13, 2026 16:57
Copy link
Copy Markdown

@rabih-datarobot rabih-datarobot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is unreal, its really nice to see the standardisation thought process put into it 🥇


### File organization

Each component must create documentation files within the template's `docs` folder, following this convention:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the monorepo structure, is this a top-level docs folder or say agent/docs?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, seems top-level; naming subfolders should be enough. Maybe worth recommending templating docs to use same name as main folder (e.g. docs/{{ agent_app_name }}/README.md)

## Motivation

### Documentation distribution
- **Offline-first**&mdash;Components must be usable without internet connectivity.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this is an extension of self-contained? Don't have essential reference to an external URL. I imagine this should also apply to skills (only uses commands prebundled in codespace?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

7 participants