Skip to content

docs: reorganize documentation into generated and handwritten#165

Merged
Reefact merged 2 commits into
mainfrom
claude/docs-structure-reorganize-00p88e
Jul 16, 2026
Merged

docs: reorganize documentation into generated and handwritten#165
Reefact merged 2 commits into
mainfrom
claude/docs-structure-reorganize-00p88e

Conversation

@Reefact

@Reefact Reefact commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Summary

Reorganize doc/ by content origin so the FirstClassErrors.Documentation project surfaces the whole documentation set (users and maintainers), instead of only the user-facing part. The project's glob is rooted in doc/, so the sibling maintainers/ tree was invisible in the Solution Explorer; moving it under doc/handwritten fixes that with no project change.

New layout:

doc/
├── FirstClassErrors.Documentation.csproj   (unchanged location)
├── generated/gendoc/                        CI/CD living documentation (target)
└── handwritten/
    ├── for-users/         former doc/*  (guides, analyzers/, images/)
    └── for-maintainers/   former maintainers/*  (adr/, workflows/)

The root README.md stays at the repository root (convention) and is linked into the project under handwritten/for-users, next to its French translation.

Type of change

  • Documentation

Changes

  • Move doc/*doc/handwritten/for-users/ and maintainers/*doc/handwritten/for-maintainers/ (via git mv, history preserved).
  • Add doc/generated/ with a README and a gendoc/ output target for the CI/CD living documentation.
  • Update every reference to the old paths:
    • root docs (README.md, CONTRIBUTING.md, SECURITY.md, CLAUDE.md, AGENTS.md), the PR template and .github prompts, and CI workflow comments;
    • the analyzer IDE help-link base URL in FirstClassErrors.Analyzers/HelpLinks.cs;
    • the shipped FirstClassErrors.RequestBinder/README.nuget.md;
    • tools/adr-check/collect-context.sh — a functional path read by the ADR-check CI;
    • every relative link inside the moved Markdown (root-relative and cross-tree links re-based for the two extra directory levels), plus stale path mentions in ADR prose.
  • Update the Documentation .csproj comment and place the linked README under handwritten/for-users.
  • Fix a pre-existing dead footer anchor: 20 English user-guide pages linked to README.md#-next-steps (no such heading); they now point to #-documentation, matching the pages that already did.

Structural move only — no documentation content was rewritten.

Testing

  • dotnet build FirstClassErrors.sln — clean (0 warnings, 0 errors)
  • dotnet test FirstClassErrors.sln — 823 passed, 0 failed
  • Analyzer tests pass (FirstClassErrors.Analyzers.UnitTests — 85 passed)

Additional verification: a relative-link check reports no new broken links versus the pre-move baseline (checked with a nested-badge-aware pass after one blind spot was found and fixed), and an independent multi-angle audit (residual paths, functional CI/script dependencies, anchors, EN/FR parity, solution/project wiring) surfaced no remaining breakage. Commits after the test run touch Markdown only (doc moves, ADR prose, the footer anchor) and have no build or runtime surface.

Documentation

  • README / doc/ updated

The English and French trees moved identically; French language-switch and README links were re-based in sync.

Architecture decisions

  • No architectural decision in this pull request

Checked against the ADR base: this is an organizational/layout convention, not one of the ADR-triggering categories (public API contract, cross-cutting invariant, platform floor, dependency/security policy), so no ADR was drafted. @Reefact — happy to record the doc-layout convention as an ADR if you'd prefer it captured.

Related issues

Closes #164


🤖 Generated with Claude Code

https://claude.ai/code/session_01YCDL8WVukKYb2mVUnsyPKZ


Generated by Claude Code

claude added 2 commits July 16, 2026 16:34
Split doc/ by content origin so the FirstClassErrors.Documentation project
surfaces the whole documentation set instead of only the user-facing part:

  doc/generated/                    CI/CD living documentation (GenDoc target)
  doc/handwritten/for-users/        former doc/* (guides, analyzers, images)
  doc/handwritten/for-maintainers/  former maintainers/* (ADRs, workflows)

The Documentation project's glob is rooted in doc/, so the sibling
maintainers/ tree was invisible in the Solution Explorer; moving it under
doc/handwritten lets the single project cover everything. The project and the
root README.md stay in place; the README is linked under handwritten/for-users
next to its French translation.

Every reference to the old paths is updated: root docs (README, CONTRIBUTING,
SECURITY, CLAUDE, AGENTS), the PR template and prompts, CI workflow notes, the
analyzer IDE help-link base URL (HelpLinks.cs), the shipped RequestBinder NuGet
readme, the adr-check context script (a functional path), and every relative
link inside the moved Markdown. Structural move only; no content rewritten.

Refs: #164

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YCDL8WVukKYb2mVUnsyPKZ
Twenty English user-guide pages under doc/handwritten/for-users linked
their footer "Table of contents" entry to README.md#-next-steps, an anchor
that never existed: the root README's section is "## Documentation"
(slug "-documentation"). Point them at that anchor, matching the five
sibling English pages and every French page that already use it.

This pre-existing broken anchor was surfaced while reorganizing the
documentation tree; the change is limited to the dead fragment.

Refs: #164

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YCDL8WVukKYb2mVUnsyPKZ
@Reefact
Reefact merged commit 56aa35c into main Jul 16, 2026
12 checks passed
@Reefact
Reefact deleted the claude/docs-structure-reorganize-00p88e branch July 16, 2026 17:27
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.

Reorganize doc/ into generated vs handwritten so the Documentation project surfaces all docs

2 participants