Repository navigation
CLI describe, docs and conformance run (Stage 1, PR 17) - #220
Merged
Merged
Conversation
describe prints the draft experiment description in plain language, writes nothing and confirms nothing; --publish lists what is missing and exits 1 unless nothing is open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Scma6W3LC11s3qjXHZuGDm
Question 77 is taken on main by the Z-projection decision (#212). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Scma6W3LC11s3qjXHZuGDm
# Conflicts: # CHANGELOG.md # docs/plan.md
# Conflicts: # CHANGELOG.md
This was referenced Nov 13, 2026
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.
What
morphobricks-preprocessing describe EXPERIMENT [--output FOLDER] [--exclude PATH] [--publish](cli_describe.py, wired incli.py). It prints the draft experiment description in plain language: proposed IDs (none, never repaired, for a folder that cannot be an ID), repeats with folders and image counts, references, migration notes, and every open question with what the user has to do. It only calls existing functions (discover_experiment,draft_from_discovery,migrate_legacy_design,load_description,reconcile); no rule is added.morphobricks.tomlit compares the folders with it (new, gone, image counts, repeats to confirm again). Folder structure only: no header is read, so channels are not compared (it says so).--publishrefuses (exit 1,Not published. What is missing:plus every item) unless nothing is open; "Nothing to publish" (exit 0) for a published description matching the folders. Errors exit 1, as in the other commands.docs/conformance.md.Why
Stage 1 design row 17: CLI users need to see and publish the description without the notebook.
Regression evidence
tests/test_cli_describe.py(11 tests). Onorigin/maincode (new source stashed): 11 failed (invalid choice: 'describe'). With the change: 11 passed.Checks
python tools/check.py: Ruff and format clean; pytest 4324 passed, 4 skipped, 0 failed;check.py --rulespasses (no baseline grew, files under 600 lines).Conformance result
Base
68b2a4b, 8 Nov 2026: whole suite 4324 passed, 4 skipped; Spec modules 1535 passed, 0 skipped. The 4 skips are outside the Spec modules (3 case-insensitive-name tests, 1 file-mode test run as root) and are not counted as passes. Recorded indocs/conformance.md, which also lists what the run does not cover.Needs an owner decision
--publishcannot complete a draft. The design assumes a saved draft (morphobricks.draft.json) holding the user's answers, plus a Draft to Description step (channels, image types, masks). Neither exists on main (theDraftis in memory, every ID slot is pending, there is no builder). Inventing the file format here would be guessing, so--publishalways lists what is missing for a draft of folders. Decide the draft file format and the owner of that step (notebook PRs 14-16?) before--publishcan publish.image_count_changedrecord (open PR Publication writes the removed and image_count_changed records (RR2, RR1) #216);--publishlists such a change as not publishable here.Will conflict on CHANGELOG/docs with #212 #213 #215-#218; keep both sides.
Generated by Claude Code