Skip to content

Add the provider-readiness rules to the ADRs - #175

Merged
milten89 merged 1 commit into
developfrom
docs/provider-readiness-rules
Oct 30, 2026
Merged

milten89 merged 1 commit into
developfrom
docs/provider-readiness-rules

Conversation

@milten89

Copy link
Copy Markdown
Owner

Closes #109

Dated notes (pre-1.0, ADR-0001) in five ADRs, with the matching CLAUDE.md, reviewer.md, CONTRIBUTING and skill lines:

  • ADR-0003 (g46, g47): no secrets (API keys, session ids, tokens) or personal identifiers (PESEL, NIP, REGON, bank account numbers, whoever they belong to) in log messages or properties, span names or tags, error and exception messages, error metadata or Exception.Data. At most the last 4 characters, or a template; a provider ADR may be stricter.
  • ADR-0002: a validator for a personal identifier passes a masked value to GetValidationErrorResult (it goes into error metadata).
  • ADR-0006 (g46, g67): a REST provider whose request URI (path or query) carries identifiers gives the executor a display path or route template for url.path, logs, error messages and ErrorResponseContext.RequestPath, and masks a 400's server message; the executor API comes with the first such provider. "No SendAsync" is scoped to REST/JSON; SOAP and other transports follow their provider ADR.
  • ADR-0007 (g67): auth that needs protocol calls (a session login, token acquisition) or credentials as API arguments belongs in the provider; a static API key's place is decided per provider ADR.
  • ADR-0010 (g37, g68, g72): a readiness checklist every provider ADR answers, with the MF White List as an example to verify; package names use .NET casing (MF, not Mf), the package shape is decided per provider ADR, and the skeletons aren't renamed.
  • Fixtures (g71): if responses can contain personal data, capture them from a test environment or legal-person records, pseudonymise what's left, never commit keys or session ids; hand-written bodies only for cases the real API can't produce (as [] and malformed JSON in the NBP tests). The reviewer flags fixtures with real identifiers or secrets.
  • Provider form: optional bilingual fields for quota type, a stateful session, personal data, a test environment and required dependencies.

Maintainer decisions: casing now, package shape later; at most 4 characters (a provider ADR may be stricter); API-key placement per provider ADR.

Checks

  • dotnet build (0 warnings); docs only, no test run. The form's YAML parses; all files LF.
  • /stop-slop and /miodkuj on the new text.
  • Reviewer: no blocking issue; its three should-fix items and four nits are done.

NBP breaks none of the new rules today: its paths and queries carry no identifiers. The deferred executor API is tracked in a follow-up issue.

🤖 Generated with Claude Code

ADR-0003 forbids secrets and personal identifiers in logs, spans, error
and exception messages, metadata and Exception.Data (at most the last 4
characters). ADR-0002 applies it to validators; ADR-0006 requires a
display path for identifier-carrying requests and scopes "no SendAsync"
to REST/JSON; ADR-0007 puts protocol auth in the provider; ADR-0010 adds
a readiness checklist and the .NET casing rule for package names. The
fixture rule allows only test-environment or pseudonymised data, and
hand-written bodies only where the API can't produce the case. The
provider form gets optional fields.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@milten89 milten89 added the documentation Improvements or additions to documentation label Oct 30, 2026
@milten89
milten89 merged commit 738433d into develop Oct 30, 2026
10 of 11 checks passed
@milten89
milten89 deleted the docs/provider-readiness-rules branch October 30, 2026 15:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add the provider-readiness rules to the ADRs

1 participant