Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @AJ-Koenig
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/api-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: API documentation issue
description: Report a problem in a generated API operation page.
title: "API docs: "
labels:
- documentation
body:
- type: input
id: operation
attributes:
label: Operation
description: Include the method, path, or operation ID shown on the page.
validations:
required: true
- type: input
id: page
attributes:
label: Rendered page URL
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual documentation
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected documentation
validations:
required: true
- type: checkboxes
id: safety
attributes:
label: Public information
options:
- label: This report contains no credentials or private customer information.
required: true
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Documentation correction
description: Report documentation that is unclear, incomplete, or incorrect.
title: "Docs: "
labels:
- documentation
body:
- type: input
id: page
attributes:
label: Page URL
placeholder: https://docs.example.com/page
validations:
required: true
- type: textarea
id: problem
attributes:
label: What is wrong?
description: Explain the inaccurate or unclear text.
validations:
required: true
- type: textarea
id: expected
attributes:
label: Suggested correction
- type: checkboxes
id: safety
attributes:
label: Public information
options:
- label: This report contains no credentials or private customer information.
required: true
11 changes: 11 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## What changed

Describe the reader-facing correction or addition.

## Verification

- [ ] I targeted `main`.
- [ ] I checked the rendered or local preview.
- [ ] Images and local links resolve.
- [ ] I did not include credentials, private information, or generated output.
- [ ] I have the right to contribute this material under the repository's stated licenses.
20 changes: 10 additions & 10 deletions .github/workflows/sync-docs-dev-content.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,24 @@ concurrency:

jobs:
request-import:
if: ${{ github.event_name == 'workflow_dispatch' || !startsWith(github.event.head_commit.message, 'Sync ') || !contains(github.event.head_commit.message, '[docs-sync]') }}
if: ${{ github.event_name == 'workflow_dispatch' || !contains(github.event.head_commit.message, '[docs-sync]') }}
runs-on: ubuntu-latest
timeout-minutes: 5
env:
SYNC_BRANCH: ${{ github.event_name == 'push' && github.ref_name || inputs.branch }}
steps:
- name: Verify sync credential
env:
DOCS_SYNC_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }}
run: |
if [ -z "$DOCS_SYNC_TOKEN" ]; then
echo "::error::DOCS_SYNC_TOKEN is required to request a RadApp import."
exit 1
fi
- name: Create documentation sync token
id: app-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.RAD_VERSION_CONTROL_APP_ID }}
private-key: ${{ secrets.RAD_VERSION_CONTROL_PRIVATE_KEY }}
owner: researchanddesire
repositories: rad-app

- name: Request matching RadApp import
env:
GH_TOKEN: ${{ secrets.DOCS_SYNC_TOKEN }}
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
gh workflow run import-docs-content.yml \
--repo researchanddesire/rad-app \
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/validate-content.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Validate Content

on:
pull_request:
branches: [main, staging]
push:
branches: [main, staging]

permissions:
contents: read

jobs:
validate-content:
name: validate-content
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v7
- run: node scripts/validate-content.mjs
15 changes: 15 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Code of Conduct

We are committed to a welcoming, harassment-free community for everyone.

Be respectful, assume good intent, keep feedback focused on the work, and avoid
publishing private or identifying information. Harassment, threats,
discrimination, sexualized abuse, and deliberate disruption are not accepted.

Maintainers may edit or remove contributions and restrict participation when
needed to protect the community. Report conduct concerns privately to
support@researchanddesire.com. Reports will be handled as confidentially as
practical.

This policy follows the principles of the Contributor Covenant 2.1:
https://www.contributor-covenant.org/version/2/1/code_of_conduct/
17 changes: 17 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Contributing

Developer documentation lives under `content/docs/` as Markdown and MDX. Sidebar order and section titles are controlled by nearby `meta.json` files.

The easiest path is the pencil beside an editable page title or heading on [dev.researchanddesire.com](https://dev.researchanddesire.com). It opens GitHub's editor on `main` at the exact source line and creates a fork automatically when needed.

Before opening a pull request:

- keep the change focused on supported APIs, firmware, protocols, hardware interfaces, or integrations
- name relevant product, hardware, firmware, and schema versions
- keep images beside the pages that use them
- do not add secrets, application code, build output, or private product information
- run `node scripts/validate-content.mjs` when working locally

Target `main`. A maintainer review and the `validate-content` check are required. Approved content is synchronized into the private renderer automatically.

Contributions use the repository's documented CC BY-SA and product-specific licensing boundaries.
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Research and Desire Developer Docs

This repository is the public, editable content mirror for [RAD Developer Docs](https://dev.researchanddesire.com). Rendered page titles and section headings link to their exact source lines under `content/docs/`.

## Contribute

Select a pencil on the rendered site or edit a file under `content/docs/`, then open a focused pull request into `main`. The `validate-content` check verifies frontmatter, metadata, and local assets before maintainer review.

Individual API operation pages are generated from the Dashboard OpenAPI document and cannot be edited here. Use their **Report an API docs issue** link instead.

After an approved merge, the dedicated synchronization app mirrors the byte-identical content into the private application repository. The `[docs-sync]` marker prevents reciprocal loops.

See [CONTRIBUTING.md](CONTRIBUTING.md) for the complete workflow.

## License

Cross-product prose is available under CC BY-SA 4.0. Product developer content and source material retain the respective license identified by that product or file.
10 changes: 10 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Security Policy

This repository contains public documentation only.

Do not open a public issue for a vulnerability, exposed credential, private
customer information, or unsafe product behavior. Email
support@researchanddesire.com with the affected page, impact, and reproduction
details. Do not include secrets in the report.

Ordinary documentation corrections should use the public pull request workflow.
42 changes: 40 additions & 2 deletions content/docs/contributing.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,48 @@
---
title: Contributing
description: Review and contribute supported R+D technical documentation.
description: Edit R+D documentation on GitHub and submit a reviewed public contribution.
---

# Contribute technical documentation

Documentation changes should name the supported product, hardware revision, firmware version, or API schema they describe. Link claims to the implementation or specification used to verify them.
Every editable page title and section heading has a subtle pencil. Selecting it opens the corresponding Markdown or MDX file at the exact line in GitHub's web editor on `main`.

## Make a quick edit

1. Select the pencil beside the page title or section you want to improve.
2. Sign in to GitHub if prompted.
3. Edit the highlighted source. If you do not have write access, GitHub creates a fork for you automatically.
4. Select **Propose changes**, describe the improvement, and open a pull request into `main`.
5. Let the public content validation finish and respond to maintainer feedback.

After approval, automation synchronizes the byte-identical content into the private application repository and the rendered site is deployed through the normal release track. Commits marked `[docs-sync]` are ignored by the reciprocal workflow so the two-way mirror cannot loop.

The synchronization jobs compare Git content-tree hashes after every transfer. This keeps the public `main` files byte-identical with the rendered source so an edit link cannot silently drift to the wrong line.

## Choose the correct repository

| Rendered site | Public source | Editable content |
| --------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------- |
| [User Guides](https://docs.researchanddesire.com) | [researchanddesire/simple-docs](https://github.com/researchanddesire/simple-docs) | `content/` |
| [Developer Docs](https://dev.researchanddesire.com) | [researchanddesire/dev-docs](https://github.com/researchanddesire/dev-docs) | `content/docs/` |
| [R+D Assembly](https://ohai.researchanddesire.com) | [researchanddesire/assembly-docs](https://github.com/researchanddesire/assembly-docs) | `content/docs/` |

The application, Fumadocs renderer, API implementation, deployment settings, and credentials remain in the private application repository. Individual API operation pages are generated from the Dashboard OpenAPI document, so they provide a **Report an API docs issue** link instead of a misleading source-line pencil.

## Write a useful contribution

- Name the supported product, hardware revision, firmware version, or API schema when it matters.
- Link technical claims to the implementation or specification used to verify them.
- Keep images beside the page that uses them and verify every relative path.
- Reuse the existing MDX callouts, cards, tabs, accordions, and steps.
- Keep each pull request focused and never include credentials, private product information, or generated build output.

Small corrections can be completed entirely in GitHub. For larger changes, fork and clone the public repository, edit its `content/` tree, and use the Fumadocs Preview extension for VS Code before opening the pull request.

## License

R+D-owned documentation prose and media in these public repositories is available under CC BY-SA 4.0 unless a file or directory says otherwise. Code samples, product source, hardware material, and third-party assets retain their stated licenses.

Physical build procedures belong in [R+D Assembly](https://ohai.researchanddesire.com/ossm). Consumer instructions belong in the [User Guides](https://docs.researchanddesire.com/). Keep Developer Docs focused on APIs, firmware, protocols, official hardware interfaces, and integrations.

GitHub documents the complete [editing and fork-based pull request flow](https://docs.github.com/en/repositories/working-with-files/managing-files/editing-files).
Loading