---
title: "Community"
description: "Where to ask, what each channel is for, and what response you can honestly expect from a small unfunded project."
url: "https://opsinjs.pensievelabs.org/project/community"
source: "https://opsinjs.pensievelabs.org/project/community.md"
section: "Project"
kind: "project"
reviewed: "2026-09-02"
reviewer: "engineering"
aliases: ["where to ask", "support", "get help", "discussions"]
---

> Elements written as `<PascalCase … />` below are opsinjs documentation
> components. Their attributes are the content: the values they render are
> generated from `tokens/*.json` and `registry/catalogue.ts` and are
> published separately at https://opsinjs.pensievelabs.org/r/index.json and under the Reference
> section.
> Nothing is missing from this page. The data simply does not live in
> the prose.

<PageTemplate kind="project" />

## Where to take what [#where-to-take-what]

| You have                                                           | Take it to                                                                  |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------- |
| A question about how to do something                               | A discussion on the repository                                              |
| A page that is wrong, unclear or out of date                       | An issue, naming the page path                                              |
| A bug in code or in this site                                      | An issue, with a reproduction                                               |
| An idea for a component                                            | [Proposing a component](../handbook/contributing/proposing-a-component.mdx) |
| A concern that a component or a piece of guidance could cause harm | An issue, marked as a **safety concern**, in public                         |
| A security vulnerability                                           | [Security](./security.mdx). Report it privately, and never open an issue.   |

The repository is named on [Official resources](./official-resources.mdx), which is
also where to check before trusting any address claiming to belong to this
project.

<Todo>
  Four of those six rows end at a repository that is not public yet: the
  discussion and the three kinds of issue. The fifth,
  [Security](./security.mdx), carries a note of its own for a related reason.
  Private reporting has nowhere to land either. That leaves
  [Proposing a component](../handbook/contributing/proposing-a-component.mdx), a
  page on this site, as the only row you can act on today. Opening the repository
  is what turns the rest of this table from an intention into a route. There is
  also no report-a-problem control anywhere on this site, which is the shortcut
  the first three rows would otherwise offer: `<Feedback>` is written in
  `components/docs/meta.tsx` and registered as an MDX tag, and no page and no
  route renders it, so it needs wiring in as well as a public repository behind
  it. Remove this note when both are done, and check that the "Edit this page"
  links point at the repository.
</Todo>

## What to expect [#what-to-expect]

There is no company behind opsinjs, no support contract and no service-level
agreement. Assume a small group of people doing this alongside other work.
Questions are usually answered; sometimes they are not, and a follow-up after a
week is reasonable rather than rude.

Two things are treated as jumping the queue, and both are stated here so that you
know to say them out loud:

**Safety concerns.** If following this guidance could lead someone to misread
their own health data, that is the most important message this project can
receive. Say so in the first line. Do not soften it and do not bury it in a
feature request.

**Accessibility barriers.** A barrier in what this system emits, or on this
documentation site, is a defect and not an enhancement. This site holds itself to
the same standard it publishes; where it currently fails, that is listed on
[This site's accessibility](../accessibility/this-site.mdx).

## Asking a question that gets answered [#asking-a-question-that-gets-answered]

This is not etiquette. These are the four things that turn a question nobody can
answer into one somebody can:

1. **What you are trying to show a person.** "A blood-pressure reading against
   their usual range" is answerable. "A card component" is not.
2. **What you tried**, including which page you were reading. If the docs sent you
   the wrong way, that is a docs bug and worth more than the answer.
3. **The versions.** Which registry URL you installed from, and when. Nothing
   in the file records where it came from, so the date you copied the source is
   often the only handle either of us has on which version you have. Paste the
   file if you are not sure.
4. **What "correct" would look like.** Especially for anything clinical: the
   answer often depends on what the number means for the person reading it, and
   we cannot guess that.

## Contributing [#contributing]

The [Handbook → Contributing](../handbook/contributing/index.mdx) section covers
the mechanics: the component checklist, the documentation templates, code style,
and how to add a token without breaking the two-axis rule. Two constraints are
worth knowing before you start, because they surprise people:

**Documentation is not optional and not separate.** A component without its
specification page does not build. `<PageTemplate>` fails when a section
required at the declared status is missing. Writing the page first is not
bureaucracy here; it is how the design gets reviewed while it is still cheap to
change.

**Numbers are generated, never typed.** Contrast figures, prop tables, token
tables and catalogue rows come from scripts. A pull request that hand-edits a
generated table fails CI on a diff, which is [ADR 0006](./decisions/0006-generated-not-authored.mdx)
doing its job.

## Code of conduct [#code-of-conduct]

<Todo>
  No code of conduct has been adopted yet. Adopt one. The Contributor Covenant is
  the sensible default. Commit it to the repository, and link it from here. Until
  then the operating rule is the obvious one: be decent, assume good faith, and
  expect a health project to take safety and accessibility complaints seriously
  even when they are delivered impatiently.
</Todo>

<LastUpdated />

<Reviewed />
