Skip to content

Add initial design documents#1

Merged
emersonknapp merged 5 commits intoros-tooling:mainfrom
lsy3:docs/initial-design-proposal
Mar 20, 2026
Merged

Add initial design documents#1
emersonknapp merged 5 commits intoros-tooling:mainfrom
lsy3:docs/initial-design-proposal

Conversation

@lsy3
Copy link
Copy Markdown
Contributor

@lsy3 lsy3 commented Feb 22, 2026

Summary

Founding design documents for the rosgraph project:

  • docs/MANIFESTO.md — project direction: why, what, how
  • docs/ROSGRAPH.md — technical proposal: problem statement, prioritised components, key insights, and example schema
  • docs/FAQ.md — audience-organized FAQ covering 9 perspectives (new ROS dev, AI-assisted dev, eng lead, safety engineer, nav2/MoveIt user, skeptic, package maintainer, educator, embedded dev)

Context

These documents are the starting point for WG discussion. The PR serves as the review and acceptance process — please comment inline.

Key sections in ROSGRAPH.md

  • Executive Summary — the problem and key gaps in the ecosystem
  • Components — prioritised list: Node Spec (NoDL), Code Generation, Runtime Discovery, Unit Testing, Graph Analysis, Documentation
  • Key Insights — three design principles driving the approach
  • Example — minimal interface.yaml and what the tooling produces from it

@lsy3 lsy3 force-pushed the docs/initial-design-proposal branch from 84ecd9e to df9de93 Compare February 22, 2026 18:37
Three founding documents for the rosgraph project:
- MANIFESTO.md: project direction (why, what, how)
- ROSGRAPH.md: full technical proposal (schema, architecture, phasing)
- FAQ.md: audience-organized FAQ covering 9 perspectives

Signed-off-by: Luke Sy <sylukewicent@gmail.com>
@lsy3 lsy3 force-pushed the docs/initial-design-proposal branch from df9de93 to 0450557 Compare February 22, 2026 18:48
- FAQ: reduce from 880 to ~360 lines, add General section with
  cross-cutting questions, keep 2-3 essential per audience
- FAQ: fix all PROPOSAL.md cross-references to ROSGRAPH.md
- FAQ: add launch file / param config convergence question
- ROSGRAPH §3.2: add "Toward a single source of truth" note on
  system.yaml replacing launch files and parameter configs
- ROSGRAPH §12: remove resolved questions section (internal notes)

Signed-off-by: Luke Sy <sylukewicent@gmail.com>
Comment thread docs/MANIFESTO.md
Copy link
Copy Markdown
Member

@emersonknapp emersonknapp left a comment

Choose a reason for hiding this comment

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

Some comments from our discussion today.

Comment thread docs/MANIFESTO.md
Comment thread docs/MANIFESTO.md Outdated
Comment thread docs/ROSGRAPH.md Outdated
- MANIFESTO: add undocumented interfaces problem, update wording
- ROSGRAPH: greatly summarise from 1715 to 133 lines
  - Remove sections 3-12 (architecture, phasing, language choice, etc.)
  - Remove design principles (redundant with key insights)
  - Replace CLI subcommand tree with prioritised components
  - Add codegen requirements (plugin arch, distro-installable)
  - Condense gap table to bullet list
  - Clarify discovery vs monitoring distinction

Signed-off-by: Luke Sy <sylukewicent@gmail.com>
@lsy3 lsy3 force-pushed the docs/initial-design-proposal branch from 1719062 to fc02a8c Compare March 12, 2026 16:38
Signed-off-by: Luke Sy <sylukewicent@gmail.com>
@lsy3 lsy3 marked this pull request as ready for review March 12, 2026 16:48
Copy link
Copy Markdown

@alistair-english alistair-english 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 much better to me (a good length!), and i think its worth having something in the repo as a starting point

Comment thread docs/ROSGRAPH.md Outdated
Comment thread docs/ROSGRAPH.md
Comment thread docs/ROSGRAPH.md Outdated

### Key Insights

Three key insights drive the design:
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 don't really understand the significantce of the first two - are they worth the words?

Comment thread docs/ROSGRAPH.md Outdated

```yaml
schema_version: "1.0"
node:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

a nitty-gritty schema design thing, but interface.yaml shouldn't have node and package keys - defining the node and package is not the responsbility of the yaml file.

In the chain of responsibility:

package has a -> node has an -> interface.

Interface doesnt look back the other way.

Copy link
Copy Markdown
Member

@emersonknapp emersonknapp left a comment

Choose a reason for hiding this comment

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

Looks good, we should move forward. With caveat that I agree with @alistair-english comments. The key insights are a little hard to understand what they're trying to say, may not be necessary. And, the schema proposal may be too much detail here - but it doesn't hurt to have it, called out explicitly as an "illustrative directional example" but not concrete proposal. We will work on the schema itself as focused reviews.

- Add topic rename as a concrete problem example
- Reframe discovery vs monitoring as same mechanism, different cadence
- Collapse Key Insights to the one load-bearing point (codegen)
- Remove node/package keys from interface.yaml example
@emersonknapp emersonknapp merged commit f36f75e into ros-tooling:main Mar 20, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants