Repository navigation
compass(design): the stack pin warns by default, refuses under strict=True or on a transfer or merge #278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
compass(design): the stack pin warns by default, refuses under strict=True or on a transfer or merge #278
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -174,7 +174,9 @@ that reads like a neutral measurement would undercut that; `derate` reads like w | |
| 3. **`software_pinned_to` is checked, not decorative.** The plausible reading of the | ||
| evidence is that these constants track the ROCm/RCCL/AITER build more than the die — | ||
| the +5980 MiB at width > 1 is collective buffer sizing, the 926 MiB at TP1 is HIP | ||
| context plus libraries. A stack mismatch warns loudly. | ||
| context plus libraries. A stack mismatch warns loudly by default and refuses under | ||
| `validate(strict=True)`; constants moved across stacks, by a transfer or a merge, | ||
| always refuse. | ||
|
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agent-authored review comment (Claude). Non-blocking, principle 8. This is the same "always" as the comment on |
||
| 4. **The whole resolved spec is echoed into every run artifact.** The KV gate is **≤5%**; | ||
| a number whose spec cannot be recovered from the artifact is unattributable. | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agent-authored review comment (Claude), reviewer for #277.
Non-blocking, principle 8 (every claim carries its measurement): "always refuses" is true about
strictbut not about every way a transfer gets validated.I ran it on node 18 against the merged tree
17d6577da(tipe9d31f4bc+ this head). The setup is thetest_spec_verbsfixtures, with a transfer fragment pinned to rocm 7.0.2 merged into a spec pinned to 7.2.4:validate(<the Merge>)returnsok=FalsewithPINNED_STACKfor all four combinations ofstrictin {False, True} andobserved_stackin {None, matching}. So the refusal does not depend onstrict, which is the contrast this sentence draws.validate(<that Merge>.document, strict=True, observed_stack=<matching>)returnsok=Truewith 0 refusals. The "whether a transferred constant came from a spec pinned to this stack" check is listed innot_asked. That is by design:mergekeeps the source pin out of the document (merge.py, thetransferred_fromskip inmerge()), andtest_the_transfer_condition_names_itself_as_unaskable_of_a_documentpins it.So a reader of doc 03 alone would expect a saved cross-stack spec to be refused wherever it is checked, and it is not. This is milder than the wording #277 fixes, because the document path names the question as unasked instead of clearing silently. Suggested wording: "...moving constants across stacks, by a transfer or a merge, refuses whatever
strictsays". Doc 05 can carry the Merge-versus-document detail. The same "always" appears at05_machine_spec_and_probes.md:179.07:689-690avoids the word and is fine as written.