docs: the export-targets and pre-processing epics, read back against the code - #805
Merged
Merged
Conversation
…the code Every page the two epics touched or should have touched, corrected where it disagreed with main: the tutorial and README export by target, the changelog gains the browser half of both epics and a Deprecated entry for the yolo alias, the MCP counts and the REST route list catch up, and the architecture pages, AGENTS.md and the kernel-architecture skill learn that visionset.preprocessing exists and that the kernel may not import it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The closing documentation pass for the export-targets epic (#784) and the pre-processing epic (#785). Every page the two epics touched, or should have touched, was read end to end and each claim it makes was checked against the code on
main; what follows is what was wrong, per document. No page gains prose for its own sake, and the two generated references (mcp-tools.md, the target table inreleases.md) are untouched because their drift gates already pass.What was wrong, per document
README.md- the quickstart still exported with--format yolo; the Export row named no target and no recipe; the monorepo map listedformats/asyolo, coco, …, had nopreprocessing/line, and counted 38 agent tools and two deletions where the served listing has 56 and four. The Export row now says an export is addressed to the model it will train, and a Pre-process row points atdocs/content/preprocessing.md.CHANGELOG.md- neither epic's entry mentioned the browser: the Target model picker and its consent copy, the Pre-processing view and the export dialog's recipe control. Theyoloalias moves from a line inside the rename entry to its own Deprecated entry, which is the line the epic's decision A5 asked for.docs/content/tutorial.md- the export step used--format ultralytics; it now introducesvisionset target listand exports with--target yolo11, which is the unit every other surface offers.docs/content/api.md- the route list had no preprocessing-recipe routes, no preview route, and norecipe=on the export and compatibility routes.docs/content/mcp.md- the counts were three generations stale: "forty-nine by default plus three" is fifty-six plus four, "twenty-seven added since" is thirty, and the recipe trio and the fourth deletion were missing from the list of what was added.docs/content/preprocessing.md-amountwas described as0 to 0.5; the model refuses zero (gt=0).docs/content/releases.md- the In the browser paragraph did not know the dataset screen carries recipes or exports by target.docs/content/README.md- thereleases.mdrow described publishing only; it now names the export half the page has carried since the epic.docs/content/ui/product-principles.md- "the dataset's three views" is four.docs/content/background-jobs.md- the export handler also resolves pre-processing drivers, throughvisionset.preprocessing.registry.docs/content/architecture/backend/README.md- eight packages is nine; the stack diagram, the package table and the kernel-purity row did not knowvisionset.preprocessingexists.docs/content/architecture/backend/kernel.md- the purity list and its rationale omittedpreprocessing; the ports list omittedPreprocessingDriver; "the twelve services" is fifteen; the behaviour-page list gainspreprocessing.md.docs/content/architecture/backend/formats.md- said the surfaces resolve throughregistry.exporter(name), which is not what they call (pick, andresolve_targeton the port); did not mentiontargetson the port; gains a section on the siblingvisionset.preprocessingentry-point group, which the backend index links to.docs/content/architecture/backend/cli.md- the sameregistry.exporter(name)claim.docs/content/architecture/backend/server.mdandmcp.md- the route-module and tool-module rosters lacked export targets, preprocessing recipes and (for MCP) inference.docs/content/architecture/cross-cutting.md,AGENTS.md,.agents/skills/backend/kernel-architecture/SKILL.md- the kernel-purity contract as stated omittedvisionset.preprocessing, whichpyproject.tomlhas forbidden since the drivers landed.Verified against code, and found current
The recipe grammar and its bounds (
kernel/domain/preprocessing.py), the slug rule and the 512-pixel preview cap (preprocessing_recipe_service.py), thevisionset recipeoption grammar and the--spec-or-flags refusal (cli/preprocessing.py),--target/--formatexclusivity and the stderr deprecation line (cli/export.py), the MCP tool names, the archive path<workspace>/exports/<release_id>/<format>/, migration 17 and the "sixteen entries after the baseline" count, the eleven-rowvisionset format list, the eightx-visionset-openvocabularies inopenapi.json, thePUTrename-by-body shape and the ungatedDELETE, the sitemap block andnavigation.mdagainstDatasetScreen.tsx's four tabs, and the sidebar entry forpreprocessing.md.Follow-ups
Published docstrings (routes and wire models) were read and none was found wrong, so
openapi.jsonand the generated client are untouched. One non-published docstring recorded by the dialect work is still stale:formats/classification/__init__.pysays the kernel enforces no(asset, class)uniqueness for a classification tag, whileAnnotationServicerefuses a duplicate withDuplicateClassificationTag.Checks
uv run python scripts/export_mcp_tools.py --check:uv run python scripts/export_target_catalog.py --check:uv run pytest tests/server/test_errors.py tests/architecture tests/formats/test_target_catalog_doc.py tests/mcp/test_tool_reference.py tests/kernel/test_migrations.py tests/cli/test_export_commands.py tests/test_versioning.py(there is notests/docsdirectory; these are the tests that readdocs/content):node --test tests/scripts/docs_links.test.mjs tests/scripts/docs_sidebar.test.mjs:bash scripts/check.sh docs:bash scripts/check.sh(the change touchesAGENTS.md, a skill,README.mdandCHANGELOG.mdoutsidedocs/):The branch was then rebased onto
mainafter the cycle-and-examples change (#802) and the export-dialog fix (#803) merged - no file overlaps - andbash scripts/check.sh docswas re-run on the rebased tree: