Repository navigation
new(canvas): mf-canvas-facts.py prints how a microflow lies on the Studio Pro canvas (replaces #534) - #551
Merged
Conversation
…udio Pro canvas A flow can build, pass its tests and still be unreadable in Studio Pro: labels on top of each other, a note line leaving the side that faces away, a decision whose true branch answers "no". mxbuild, check and lint see none of it. - project-bin/mf-canvas-facts.py prints the facts (OVERLAP, LINE, NOTE-SIDE, LEFTWARD, TURN, CAPTION, SENSE), read-only, exit 2 when a flow could not be read. Calibration is from Studio Pro 10.24, not verified on Studio Pro 11. - verify-module.sh runs it per module as an info rung (1c, 14-canvas-facts.log). - install manifest, fixture test on a model mxcli v0.27.0 wrote, V8 in test-verify-module-446.sh, CHANGELOG.
Review of #534: the canvas rung was documented "INFO, never a gate" but routed through fault()/rc 2, incrementing FAULTED and turning the module verdict INCOMPLETE when Python was missing, there was no .mpr, or a flow failed to decode. It now runs with kind=note (any exit, incl. 2/timeout, stays INFO with "NOT MEASURED" in the log), and missing prerequisites write an INFO "(NOT MEASURED: ...)" row without touching FAULTED. skills/canvas-readability.md does not exist on this PR; the citations in mf-canvas-facts.py, verify-module.sh and install-manifest.sh now point at the mf-canvas-facts.py header instead. Fixture V8 extended: instrument missing and instrument exit 2 both leave the verdict row and exit code identical to the installed run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
5 of 7 tasks
Review of 7fd580b: the CHANGELOG still said a missing script is a FAULT, and the manifest comment implied a mandatory per-script run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
install-manifest.sh: keep both mf-canvas-facts.py and model-scope.py in MXTK_PROJECT_BIN, and both header comments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
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.
Replaces #534 by @saingge. Their commit 3edf954 is carried unchanged, with their authorship. The fix from the independent review sits on top as a separate commit. Their fork couldn't be pushed to from this session, so this PR comes from our repo instead. All design, field evidence and the CHANGELOG credit are saingge's; see #534 for the full description.
Review fix (7fd580b)
project-bin/verify-module.shthere is a new run kind,note. A flow that fails to decode (exit 2) or a timeout records an INFO row ("NOT MEASURED (exit N)") and leavesFAULTEDalone. A missing script, Python or.mpr(for example on Git Bash) also gives an INFO row with thesync-project.shhint instead offault(). Before this, any of those cases turned an existing project's module verdict from CLEAN to INCOMPLETE after sync.skills/canvas-readability.mdarrives only in the next stacked PR, so the references inmf-canvas-facts.py,verify-module.shandbin/lib/install-manifest.shnow point at the script header and its FACTS list.tests/wave2/test-verify-module-446.sh: script missing, and a stub that exits 2. In both the row is INFO and the verdict and exit code match the installed run.Fixtures (scoped):
test-verify-module-446.sh9/10. V3, the playwright case, also fails on the unmodified head.test-mf-canvas-facts.sh14/14.test-progress-harness-verify.sh30/30.test-verify-stack-blocked.sh6/6.test-verify-ledger-hint.sh4/4.Baseline words: +0. This PR and #535 both add a name to
MXTK_PROJECT_BINininstall-manifest.sh; whichever merges second keeps both.Review: pending re-review of the fix
Generated by Claude Code