open-notebook/.maintainer/PROFILE.md
Luis Novo 3959eb0a86
chore: add the oss-maintainer profile under .maintainer/ (#1351)
* chore: add the oss-maintainer profile under .maintainer/

Scaffold `.maintainer/` (schema v1) so the oss-maintainer plugin can run
triage, release, review, process-discussions and smoke-e2e against this
repository: profile.toml, PROFILE.md, gotchas.md, triage.md,
release/runbook.md, release/test-matrix.md and smoke/journey.md.

The release runbook, test matrix, gates and the discussions rules move
here from the project-local `.claude/skills/{release,process-discussions}`
and the Codex mirror `.agents/skills/release`, which are removed so each
policy has one home. Commands stay referenced from AGENTS.md and the
Makefile; the human release process stays in .github/RELEASE_PROCESS.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ScFn54FhBq3cvVbcbQJjBZ

* chore(maintainer): address cubic review on the profile scaffold

- runbook: `uv sync --group dev` (dev is a dependency group, not an extra)
- smoke journey: the insight endpoint returns 202, not 200
- README/profile: state that commands are invoked in their CI form
  (`ruff check .` without `--fix`), not re-implemented
- test-matrix: name the table's rows as Bucket A / C so the runbook's
  "Bucket A" resolves
- drop the `.maintainer/ export-ignore` rule: the project ships Docker
  images, not tarballs, and RELEASE_PROCESS.md points at the runbook

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ScFn54FhBq3cvVbcbQJjBZ

* chore(maintainer): finish the cubic follow-ups on the test matrix

- Backend suite row: `uv sync --group dev`, consistent with the runbook
- Bucket C is "the owner runs it by hand"; the Who / paid scope column,
  not the bucket, says which rows need real credentials

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ScFn54FhBq3cvVbcbQJjBZ

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-30 22:31:39 -03:00

2 KiB

Maintainer profile — scope and tone

What we own

  • This repository: the FastAPI backend (api/, open_notebook/), the surreal-commands worker (commands/), the prompt templates (prompts/), the Next.js frontend (frontend/), the SurrealDB schema and migrations, the Docker images (regular and -single) and the docker-compose files, the documentation under docs/.
  • The product decisions recorded in VISION.md and docs/7-DEVELOPMENT/decisions/.

What we do not own

  • Upstream libraries with their own repositories: content-core (extraction), esperanto (provider abstraction), podcast-creator, surreal-commands, surreal-basics. A defect that lives there gets the upstream label plus the library's label (content-core, esperanto, podcast-creator); the fix is an upstream issue first, then a bump here.
  • SurrealDB itself, the AI providers' services and their pricing or availability.
  • Community packaging channels (Unraid, Helm charts, Podman recipes, desktop wrappers): valid ideas that wait for a champion.
  • The third-party "Installation Assistant" GPT linked from the issue forms.

Tone in public text

  • Answer first; no filler, no marketing, no "great question". Warmth comes from specificity (acknowledging a working prototype, a good decomposition), never from compliments.
  • Say what was verified in the code, separately from opinion ("I checked the code: …").
  • No promises of features or timelines ("no commitment on timing yet"); constraints come with their reasons and a link to the decision record.
  • A "no" is said in the first paragraph, with the reasons; it never hides behind questions.
  • Everything posted publicly is in English.

Never cite in public

  • .tmp-context/, CLAUDE.local.md, private maintainer drafts and internal plans.
  • Unpublished vision specifics: "aligns with where the product is heading" is the most that can be said. Public anchors are VISION.md, the decision records, open issues and PRs.