Skip to content

18: Write the docs for the developer integrating this library - #32

Open
nikolaystrikhar wants to merge 1 commit into
17-recipes-docfrom
18-docs-readability
Open

18: Write the docs for the developer integrating this library#32
nikolaystrikhar wants to merge 1 commit into
17-recipes-docfrom
18-docs-readability

Conversation

@nikolaystrikhar

Copy link
Copy Markdown
Contributor

What: rewrites README.md and every file in docs/ for a host developer rather than a maintainer, adds docs/extending.md, and moves the load-gate diagram to configuration.md and the activation rationale out of recipes.md.

Usage: read them on this branch —
README ·
Installing ·
Configuration ·
Recipes ·
Conflict handling ·
Filters ·
Notices ·
Extending

Why this way:

Every doc but one describes behaviour, not the class that performs it. Naming the class that decides the redirect taught a host a name they cannot use: it is bound by class name, so the only thing to do with it is rebind it — a separate subject, for a different reader.

That subject is docs/extending.md. The interface seams, the after-boot rule for class-name bindings, the four notice objects and remove_filter() on the two named admin callbacks, assembled from paragraphs that trailed the ends of three other files where everyone else had to scroll past them.

Two sections moved to where a reader looks for them. The load-gate diagram was illustrating the enabled key inside a recipe; it is the load path, so it is configuration's. Activation rationale that two files each carried a version of is stated once, with the multisite loop left as the recipe it is.

What was cut is maintainer justification. The alternatives weighed, the ordering arguments, why the notice queue is an option and not a transient — that belongs in CLAUDE.md next to the code it constrains, and reads to a host as reasons to doubt a decision they are not being asked to make. Every warning that changes what a host writes stays, down to the should_load polarity trap.

Every doc but one now describes behaviour rather than the class that performs
it. A host reading about the redirect does not need to know a Redirector
decided it, and naming the class taught them a name they cannot use for
anything: it is bound by class name, so the only thing they could do with it is
rebind it, which is a separate subject. That subject is now docs/extending.md,
the one file allowed to name internals -- the interface seams, the after-boot
rule for class-name bindings, the four notice objects, and remove_filter() on
the two named admin callbacks. It is assembled from paragraphs that were
scattered across the ends of three other files, where a reader who did not want
to replace anything had to scroll past them.

Two sections moved to where a reader looks for them rather than where they were
first written. The load-gate diagram was illustrating the enabled key in a
recipe; it is the load path, so it is configuration.md's "How a sub-plugin
loads", and the recipe links to it. Activation rationale that recipes.md and
configuration.md each carried a version of is now stated once, in
configuration.md, with the multisite loop left as the recipe it is.

The rest is cut. What went is maintainer justification -- the alternatives
weighed, the ordering arguments, the paragraph on why a notice queue is an
option and not a transient -- which belongs in CLAUDE.md, next to the code it
constrains, and reads to a host as reasons to doubt a decision they are not
being asked to make. Every warning that changes what a host writes stays, down
to the should_load polarity trap.
@nikolaystrikhar nikolaystrikhar changed the title Write the docs for the developer integrating this library 18: Write the docs for the developer integrating this library Aug 13, 2026
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.

1 participant