Skip to content

docs: one-page how-it-works guide for the Hub team, and trim the Hub guides - #711

Merged
esraagamal6 merged 82 commits into
mainfrom
claude/confident-shannon-7a9x4s
Oct 14, 2026
Merged

esraagamal6 merged 82 commits into
mainfrom
claude/confident-shannon-7a9x4s

Conversation

@esraagamal6

@esraagamal6 esraagamal6 commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

In plain words

We are handing this generator over to the Hub team. The existing guides are long and written for the people who built the generator. This PR gives the Hub team one short page to start from, shortens the three Hub guides, and adds one rule about coverage floors.

What to look at

  • docs/how-it-works.md (new): one page. What runs, what you will see in Slack and on PRs, a "when X happens, do Y" table, who owns what, and a glossary. The ownership split is a proposal: please check it first.
  • README.md: the top box sends the Hub team to the new page and says the rest is for people changing the generator.
  • The three Hub guides are shorter. PR check guide: about 3,975 to 2,645 words. The nightly and coverage guides shrank less, because most of what is in them is what a Hub engineer reads.
  • AGENTS.md, configs/camunda-hub/coverage-floors.json (the $comment only), and the coverage and PR-check guides: a floor may be lowered by exactly what a deliberate skip for a tracked Hub bug removes, with the Hub issue linked. The PR that re-enables the test raises it back.

What changed

  • Docs only. No code, workflow or config values change.
  • Detail that only the people who built the generator need (how the PR check is built, the workflow dependencies, how the weekly report job runs) was removed from the guides. It is not moved to a docs/maintainers/ folder: an earlier version of this PR did that, and the folder was dropped on purpose.
  • File names and the anchors used by code and tests are unchanged: #adding-or-changing-an-endpoint-in-hub-do-you-need-a-generator-pr, #keeping-track-of-pending-generator-fixes, #closing-a-gap.
  • Review comments are addressed in the latest commit. The pings text still describes the routing as not yet switched; the follow-up PR feat: ping hub-medic for Hub and generator alerts, and add CODEOWNERS for Hub backend #718 switches it and updates the text, so merge them together.
Details
  • I could not run vitest with the default config in my environment: its global spec-drift check fails there (pinned baseline mismatch), unrelated to Markdown. The tests that mention these docs only assert URL strings in code. I checked all anchors between the docs by script.
  • The new rule on coverage floors comes from docs: allow lowering a coverage floor when a test is skipped for a Hub bug #721, which was folded into this branch.

🤖 Generated with Claude Code

https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr

claude added 2 commits October 8, 2026 12:54
…e README at it

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…ntainers

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
@CLAassistant

CLAassistant commented Oct 8, 2026 •

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ esraagamal6
❌ claude
You have signed the CLA already but the status is still pending? Let us recheck it.

claude added 27 commits October 8, 2026 13:03
… #ask-qa

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…op stale numbers

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…tale agent line

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…tion-medic only for pipeline faults

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…port posts

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…posts, run-by-hand steps, suppress PR, icons, glossary)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…il, merge rows, cut pings paragraph)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…ble tables

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…the re-enable run link

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
…as posted

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr

Copilot AI left a comment

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.

🔵 Needs a closer look

The glossary still defines generator gaps too narrowly and contradicts its unmapped-operation entry.

2 open findings

🧠 Review effort: Balanced

… define both generator-gap outcomes

Two open review threads:

- The pin bump command in the PR-check guide is the Hub-specific merge
  order, but `npm run bump-spec-pin` defaults to camunda-oca
  (scripts/bump-spec-pin.ts, configs.json), so following it literally
  moved the wrong pin. It now passes `--config camunda-hub`.
- The glossary defined a generator gap only as a wrong generated test,
  while the "Unmapped operation" entry says a new endpoint with no test
  is also reported as a generator gap. The definition now names both
  outcomes, so the two entries no longer disagree.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012DmUo6ubcUqqVwM6kJGHDj
Copilot AI balanced review requested due to automatic review settings October 13, 2026 12:13

Copilot AI left a comment

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.

🔵 Needs a closer look

The proposed ownership handover and coordinated merge with PR #718 require final human confirmation.

0 open findings

2 resolved since last review

🧠 Review effort: Balanced

Comment thread docs/how-it-works.md
Comment thread docs/how-it-works.md Outdated
Comment thread docs/how-it-works.md Outdated
Comment thread docs/hub-nightly-cookbook.md Outdated
Comment thread docs/hub-nightly-cookbook.md Outdated
Comment thread docs/hub-nightly-cookbook.md Outdated
Comment thread docs/hub-pr-check-cookbook.md
Comment thread docs/hub-pr-check-cookbook.md Outdated
Comment thread docs/hub-pr-check-cookbook.md Outdated
… list for not-watched, bold bullets)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Copilot AI balanced review requested due to automatic review settings October 14, 2026 08:29

Copilot AI left a comment

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.

🔵 Needs a closer look

The new overview contains two misleading statements about coverage gaps and spec-pin updates.

0 open findings

Previously missed (2)

In code that hasn't changed since last review

Low severity Clarify coverage gaps can fail invariants without failing API tests

docs/​how-it-works.md:79

This is too broad: an unmapped operation or a response/request coverage gap can fail this repository's response coverage does not regress invariant (and the PR-check job's coverage step), even though it does not fail a generated API test. Clarify that distinction so readers do not treat coverage gaps as incapable of affecting CI.

Low severity Clarify that alerts open bump PRs rather than moving pins directly

docs/​how-it-works.md:82

The alert itself does not move the pin. Clean drift opens a bump PR, and the pin changes only when that PR is merged; blocked or failed checks leave it unchanged. The current wording contradicts the three outcomes documented earlier on this page.

🧠 Review effort: Balanced

@esraagamal6 esraagamal6 added the hub Camunda Hub (Web Modeler) API config label Oct 14, 2026 — with Claude
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr
Copilot AI balanced review requested due to automatic review settings October 14, 2026 10:16

Copilot AI left a comment

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.

🟡 Changes recommended

Several handover instructions inaccurately describe coverage gates, pin updates, required labels, and on-demand invariant testing.

1 open finding
Previously missed (3)

In code that hasn't changed since last review

Low severity Clarify coverage gaps can fail checks without API-test failures

docs/​how-it-works.md:80

This overstates the meaning of a coverage gap. An unmapped operation makes _hub-suite-run.yml exit nonzero, and a floor regression fails the response coverage does not regress invariant, even though neither is a generated API-test failure. Distinguish the API-test result from the coverage gates so readers do not infer that gaps can never make checks red.

Low severity Clarify pin changes require merging the spec-bump PR

docs/​how-it-works.md:83

The alert does not move the pin itself. The spec-bump workflow opens or updates a draft PR, and the pin changes only after a person merges that PR, as the action table above correctly explains.

Low severity Correct hub-ondemand-test invariant validation claim

docs/​hub-pr-check-cookbook.md:86

hub-ondemand-test calls _hub-suite-run.yml, which generates and runs the live suites plus the unmapped-operation check; it never invokes the Layer-3 invariant tests. Claiming that this run validates invariants can make reviewers skip the separate CI/Vitest invariant check.

🧠 Review effort: Balanced

Comment thread docs/hub-pr-check-cookbook.md Outdated
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3526HsTZMmihMi94p34Pr

Copilot AI left a comment

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.

🔵 Needs a closer look

Several operational instructions are inaccurate, including the local PR-image command and automation-label behavior.

0 open findings

1 resolved since last review
Previously missed (3)

In code that hasn't changed since last review

Low severity Account for Hub PRs missing the hub label

docs/​how-it-works.md:63

The parenthetical is not true for all bot-created Hub PRs: hub-reenable-check.sh adds only nightly-api-fix, while spec-bump-open-pr.sh adds spec-drift and auto-generated. Those Hub-scoped PRs can therefore lack hub, so the ownership checklist should tell the team to add it when automation did not.

Low severity Clarify tracked bugs may still count as nightly failures

docs/​hub-nightly-cookbook.md:14

A tracked Hub bug can still be a failing nightly test until its suppress PR is merged; the known-issue row below explicitly covers that case and may link a newly opened suppress PR. Only bugs already represented by a merged skip or partial-check entry are excluded from the failure count, so the blanket statement is misleading.

Low severity Use the full Hub PR image reference via HUB_IMAGE

docs/​hub-pr-check-cookbook.md:163

HUB_IMAGE_TAG is expanded by docker/start-hub.sh to camunda/hub:pr-<sha>, but Hub PR images are published as registry.camunda.cloud/team-hub/hub-restapi-self-managed:pr-<sha> (the same full ref used by hub-pr-check.yml). Following this command therefore pulls the wrong repository instead of the PR image. Pass the full image through HUB_IMAGE.

🧠 Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 14, 2026 10:45

Copilot AI left a comment

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.

🔵 Needs a closer look

Several operational statements conflict with the workflows, including invariant execution, spec-bump updates, and automated labeling.

0 open findings

Previously missed (3)

In code that hasn't changed since last review

Medium severity Hub automation PRs and issues may lack the hub label

docs/​how-it-works.md:63

The automation does not consistently add hub: re-enable PRs are created with only nightly-api-fix (hub-reenable-check.sh:221-226), while Hub spec-bump PRs and issues receive spec-drift and auto-generated only (spec-bump-open-pr.sh:136-137, spec-bump-report.sh:116-120). As written, Hub work can be omitted from hub-label views unless someone adds the label manually.

Low severity Open bump PRs can become stale without an update

docs/​hub-nightly-cookbook.md:147

Later spec-bump runs do not update an open bump PR. spec-bump-open-pr.sh:43-62 explicitly leaves it unchanged to preserve reviewer edits, then considers fresh drift only after that PR is merged or closed. The current wording may make reviewers assume an old open PR contains the latest upstream changes.

Low severity On-demand Hub tests omit the Layer-3 invariant suite

docs/​hub-pr-check-cookbook.md:86

hub-ondemand-test does not run the Layer-3 invariant suite. Its reusable workflow generates and runs the live suites and checks coverage.json for unmapped operations (_hub-suite-run.yml:262-344); the invariant Vitest command exists only in CI (ci.yml:268-273). Saying this run validates invariants can lead reviewers to merge without that check.

🧠 Review effort: Balanced

@esraagamal6
esraagamal6 merged commit 476b9e0 into main Oct 14, 2026
6 of 8 checks passed
esraagamal6 pushed a commit that referenced this pull request Oct 14, 2026
#711 (the docs rewrite this branch was stacked on) was squash-merged to
main as a single new commit, so main and this branch carried the same
doc changes under different SHAs. That is what made the PR un-mergeable.

Resolution:
- docs/how-it-works.md, hub-pr-check-cookbook.md, hub-nightly-cookbook.md,
  hub-response-coverage-report.md: kept this branch's version. Its content
  is #711's final docs plus this branch's ping edits; a diff of main vs this
  branch confirmed the only delta is the intended ping/wording changes, so
  nothing from #711 is lost.
- .github/workflows/spec-bump-check.yml: combined both independent
  additions to the drift-alert text — main's "View run" link (RUN_URL) and
  this branch's hub-medic ping (HUB_MEDIC). Both env vars are now passed and
  both appear in the Slack text.
- All other files auto-merged (main's oca config, materializer, triage
  scripts and new tests alongside this branch's changes).

Validation: biome check clean; 711 tests pass across tests/triage and
tests/request-validation with CONFIG=camunda-hub, including the spec-pin
global setup, the PR-check ping tests, and the spec-bump run-link test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HDibXpu9gUa1QVj38Qzn2x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hub Camunda Hub (Web Modeler) API config

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants