A function with a dedicated manual section (docs/manual/16-agent-tooling.md, so far) now carries manual-section(<slug>) in its own CLASSIFICATION line instead of relying on a NOTES pointer nobody can grep for. Applied to agents-init and agents-vault, both pointing at 16-agent-tooling. docs/build-manual.py: _resolve_manual_section reads the target page's own manTitle/title fresh at build time rather than duplicating a section number into the tag, so a renumbered section (like this one, twice already) never requires touching the tag -- only the slug (the filename) does, and only if the page itself is renamed. render_entry and render_entry_site both gained an optional root parameter and now emit a 'See also' line (plain text + relative path for the man page, a real markdown link on the site) whenever the tag resolves; omitted silently when it doesn't (a build isn't the place to fail on a bad slug). docs/verify-manual.py: unit tests for the new resolver and both renderers, plus a real-data scan (test_real_manual_section_tags_resolve) that fails the suite if any function's manual-section(<slug>) tag points nowhere -- the actual enforcement half of the convention, since the build stays silent about it. docs/function-classification-schema.md, CONTRIBUTING.md: documents the tag, and widens CLASSIFICATION's own framing from strictly hazard/shadow tags to general-purpose (the user's call, not mine to make unilaterally -- scope-broadening an existing convention). The 'Dedicated manual sections' subsection (added earlier this branch) now names the tag as the machine-checked half of that convention, with NOTES demoted to a nice-to-have for a header-only reader.