Skip to content

Finalize documentation comparison and navigation#124

Merged
Reefact merged 13 commits into
mainfrom
agent/finalize-documentation-navigation
Jul 15, 2026
Merged

Finalize documentation comparison and navigation#124
Reefact merged 13 commits into
mainfrom
agent/finalize-documentation-navigation

Conversation

@Reefact

@Reefact Reefact commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Summary

This PR completes the documentation-improvement series with a concrete, neutral comparison against other error-handling libraries and a bilingual documentation map organized by reader intent.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring
  • Analyzer / diagnostic change
  • Tests
  • Documentation
  • Build / CI / tooling

Changes

  • Rewrite the English and French library-comparison pages around one shared payment-decline scenario.
  • Compare ErrorOr, FluentResults, and FirstClassErrors by primary abstraction, operational scope, documentation responsibilities, and decision criteria.
  • Date the comparison and link to the official upstream repositories so time-sensitive claims can be rechecked.
  • Replace absolute feature claims with neutral distinctions such as built in, application-defined, or outside the library's main scope.
  • Add English and French documentation maps organized by reader intent: discovery, model understanding, error authoring, application usage, delivery and operations, pipeline extension, and reference lookup.
  • Keep the map limited to stable primary entry pages so this PR remains independently mergeable and introduces no links to pages that exist only in other open documentation PRs.
  • Keep the English and French structures and navigation links aligned.

Testing

  • dotnet build FirstClassErrors.sln
  • dotnet test FirstClassErrors.sln
  • Analyzer tests pass (FirstClassErrors.Analyzers.UnitTests)

No build or test command was run because this PR changes Markdown documentation only. The comparison was reviewed against the current public ErrorOr and FluentResults documentation, and the branch diff and documentation links were reviewed manually.

Documentation

  • Public API / error documentation updated
  • README / doc/ updated
  • French translation (doc/README.fr.md) updated if user-facing behavior changed
  • No documentation change required

The French counterpart of every changed or added English page is included. The root README files are intentionally unchanged in this independent PR because the earlier documentation batches introduce additional focused pages on separate branches; the new map uses only primary entry pages and can be linked from the final merged README without creating temporary broken links.

Related issues

None.

Reefact and others added 13 commits July 14, 2026 17:32
The comparison page and the documentation map are entry points read by
people who do not know FirstClassErrors yet. Gloss the library-specific
vocabulary they lean on, in both languages:

- introduce Outcome as the success-or-failure result type in the
  comparison's topic sentence;
- gloss transience, interaction direction, and port in the comparison
  table rows so they can be evaluated without the taxonomy page;
- mark Code.PaymentDeclined and ContextKey.PaymentId as
  application-defined constants and show the literal stable code,
  matching what the ErrorOr sample exposes;
- say what the generated catalog is at its mention;
- clarify transport and catalog in the map's discovery entries, and
  drop the hedge sentence about focused reference pages in newer
  documentation versions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LUaMS5EHzAdQHBJzrYvKTj
Address review feedback on the neutrality of the comparison page:

- State up front that the scenario emphasizes error stability, diagnosis,
  and documentation (FirstClassErrors' core), and that other scenarios —
  heavy multi-error validation or intensive functional composition — can
  favor ErrorOr or FluentResults.
- Give FirstClassErrors a minimal Outcome example of comparable length to
  the ErrorOr and FluentResults ones, then move the factory, exception,
  and catalog/versioning material into a dedicated "What FirstClassErrors
  adds to the result model" section, so the first read is symmetric.
- Sharpen wording: name ErrorOr's HTTP mapping concretely instead of a
  bare mention; describe FluentResults' reasons model in terms of its
  real capabilities; in the table, say multiple-error aggregation is left
  to the application, and that ToException() yields a structured,
  category-typed exception (verified: DomainException et al. carry .Error).
- Split the long introductory paragraph into three, so the scenario's
  acknowledged bias reads more clearly.
- Frame the named factory as the recommended usage rather than a
  technical requirement (DomainError.Create can be called inline), and
  gloss "transport" on first use.
- Say the durable knowledge lives with the error's definition, not
  "beside the error".
- Replace the false-friend "librairie" with the standard French
  "bibliothèque" across the comparison page and the two pages that link
  to it (documentation map, FAQ). The comparison page is retitled and the
  inbound navigation labels are updated to match.
- Format the "Outcome" transport as the `Outcome` type in the decision
  guide, in both the English and French comparison pages.
A map should know its own territory. Replace the three "any ... available
in the current documentation version" pointers with direct links to pages
that exist in the branch:

- Error Taxonomy and Composition, under "understand the model";
- Integrate with structured logging, under "integrating delivery and
  operations";
- the Extraction and Project Discovery Reference, under "extending the
  documentation pipeline" and in the reference section.

Also restructure for clarity:

- Enrich the reference section (add the extraction reference; drop the
  FAQ, which is guidance, not a reference).
- Add a "stuck or unsure about a decision" section gathering FAQ, Usage
  Patterns, When Not to Use, and the library comparison.
- Present internationalization and analyzers as optional complements to
  writing an error rather than numbered mandatory steps.
- Contrast the map with the README in the introduction.

The English and French pages stay in sync.
- Say the primary pages point readers toward focused guides rather than
  asserting every page systematically links to them.
- Frame "understand the model" for an individual reader too, not only for
  a team defining project-wide conventions.

The English and French pages stay in sync.
@Reefact
Reefact marked this pull request as ready for review July 15, 2026 23:44
@Reefact
Reefact merged commit 8f6200f into main Jul 15, 2026
12 checks passed
@Reefact
Reefact deleted the agent/finalize-documentation-navigation branch July 16, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants