Repository navigation
Conversation
…vate) Consolidates two weeks of upgrade-toolkit and brain-kit work (personal-toolkit PRs #144, #147, #148-154, #161) into the public toolkit: the gate, step-record cockpit, controls suite, and a finished brain-kit example. Scrubbed for public release and verified against three scrub tools plus a manual pass over file types the main one skips. Full control suite (GNU tools on PATH): 2465 passed, 11 failed (all pre-existing/environment, see CHANGELOG), 68 skipped. Found and fixed three real bugs surfaced only during this port's own verification (none in the ported source logic): a stale gate-trail row-index test expectation from before the layout rung was merged in, two pipeline functions missing from the timing-harness test's stub list, and 507 fixture files plus private_hosts.sh that were never staged due to a .gitignore gap. Left for a human call: three naming judgment calls flagged in CHANGELOG.md (Marketplace listing names, two unlisted possibly-customer names, and "Material Cockpit" — too widespread to rename unilaterally). PR #162 (test-resilience) left out, still mid-flight on another branch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… port commit missed A handful of edits made in the scratch worktree during the vendor-name/hostname scrub session had never been staged before the prior commit landed: stray "Siemens..." prefixes in README-generated widget filenames and playbook text, a leftover /home/user/ sandbox path in bin/cloud/setup.sh, and the leakguard's own internal hostname/home-path patterns in export-public.sh now sourced from the external private_hosts.sh list instead of hardcoded inline. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Five operator-task-list.geo.json fixtures (old/prefix/wrapper layout rungs,
two viewport sizes) carried real customer-app image collection names
("...PharmaEquipmentMove48.svg", "...PharmaEquipmentRelease48.svg") copied
from a captured app's geometry dump. These weren't on the leak-guard denylist
(generic client terms, not a tracked client/project name), so the guard's
pass didn't catch them. Renamed to generic equivalents (AssetMove/AssetRelease);
nothing in run-controls.sh asserts on the old literal strings, only on
coordinates, so no test behavior changed. All 37 layout controls still pass.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…toolkit Two-rung worked example (9.24.2 -> 10.24.28 -> 11.12.7) of a large public Marketplace template (Field Service, web + native offline-sync), with every step's evidence kept: triage, plan, upgrade logs, test (smoke/journeys/data diffs/screens), gate summary, and the per-rung cockpit page. From f4's rerun at ~/upgrade-lab/examples/fsm-public. No MPK/MPR files included — those are release assets only, added later and only with explicit sign-off; SHA256SUMS and make_mpk.py document how to reproduce them from the app repository. Scrubbed clean: leakguard, the full private-names denylist (including file types leakguard's own extension filter skips, which matters here since 40 of the 120 files are .log evidence), real emails, home paths and internal hostnames, re-checked with --no-exclude-standard so gitignored files weren't silently skipped. Added a .gitignore carve-out (upgrade-toolkit/examples/**/*.log) matching the one already used for controls/fixtures, since the blanket *.log rule was silently dropping all 40 evidence logs from `git add`. README paths and the per-rung COCKPIT.html pages verified to resolve and be self-contained. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Material Cockpit, ShopFloor/ShopFloorHome, Team Leave Tracker, HisenseStarter, DISW_DesignSystem/OpcenterEXFN_DISW_DesignSystem, and WebEwi were surfaced as possibly customer-identifying during the final scrub but weren't on the leakguard denylist. Maurits's call: genericize all six, keeping incident IDs and cross-references pointed at the renamed entities. Renamed to Asset Console, LineApp/LineAppHome, Time Off Tracker, DemoStarterApp, VendorDesignSystem/OpcenterEXFN_VendorDesignSystem, and WebTasks respectively, across run-controls.sh, playbooks, bin/ tools, layout fixtures, and docs. Also fixed two lowercase local-path mentions the camelCase-only rename missed (~/upgrade-lab/shopfloor/ -> ~/upgrade-lab/lineapp/). Verified: full control suite 2446 passed/13 failed/66 skipped (all 13 pre-existing/environmental, none touching renamed strings - see CHANGELOG), leakguard clean (2270 tracked files), and git grep -ilE 'siemens|pharma|tramius|moneta|material cockpit| shopfloor|hisense|disw|webewi|team leave' returns 0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ported from personal-toolkit feat/test-resilience @58db42b8: - run_journeys.py: an OLD-APP ref whose cited line names another journey no longer counts as evidence. When this journey sits on exactly one other line of the file, that line is used and the report says the citation moved; otherwise the defect stays INVALID with "cite it by its own line". - gate.sh: the journeys summary line counts FAIL, so a run whose only FAILs are tagged BASELINE DEFECT (failing the same way on the old app) read as a regression. When every per-journey FAIL line carries that tag the rung needs a decision; one untagged FAIL keeps it a regression. Controls: journeys-coverage-defect-old-app-drift-pass/-catch, gate-journey-baseline-only-decision-pass, gate-journey-untagged-fail-regression-catch. Inserted by hand (the upstream patch's run-controls.sh hunk no longer applied after the layout/trail rung merge and the genericization renames shifted line numbers) rather than a raw patch apply. Verified: full suite (GNU coreutils/sed on PATH) 2452 passed/11 failed/66 skipped - all 11 are the same pre-existing/environmental categories already documented in this branch's CHANGELOG entry (macOS /tmp->/private/tmp symlink mismatch, BSD-sed assertion inverted by GNU-sed-first PATH, two order-tied pre-existing failures). Leakguard clean (2270 tracked files); customer_names_check.sh clean; git grep -ilE 'siemens|pharma|tramius|moneta|material cockpit| shopfloor|hisense|disw|webewi|team leave' returns 0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Owner
Author
|
Review: HOLD — private-data concern outside the final tree. The details were sent to the maintainer privately on purpose and are not repeated here, because this is a public repo. The final tree's content passes the leak guard and the private-citations check. The concern is the material around that tree: the branch history, the PR text, the commit messages, and one fixture. Re-raising the PR from a clean single commit with a scrubbed body is likely needed. The maintainer has the specifics. Findings that don't need privacy:
Generated by Claude Code |
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.
Summary
Ports
upgrade-toolkit/and thebrain-kitexample from the privatepersonal-toolkitrepo into this public toolkit, consolidating ~2 weeks of work (personal-toolkit PRs #144, #147, #148-154, #161) plus a worked FSM example and a final public-scrub pass. Routed fromskills/mendix-upgrade.md, same pattern asbuild-company-brain.md→brain-kit/.Contents:
upgrade-toolkit/: full upgrade method, gate (bin/gate.sh, 14 rungs incl. newlayoutandtrailrungs), step-record cockpit, and controls suite (controls/run-controls.sh, 2400+ cases)upgrade-toolkit/examples/fsm/: full worked 9.24→11.12 upgrade example (triage/plan/upgrade/test evidence, COCKPIT.html, README) — no MPK/MPR files included; those are release-asset-only and wait on a separate sign-off from Mauritsplaybooks/deprecated-components.md/publisher-lessons.mdstill reference a vendor-name prefix that may be a real public Marketplace listing name — flagged, not touched in this roundTest results
Full control suite (
controls/run-controls.sh, GNU coreutils/sed on PATH, closest to CI):All 13 failures are pre-existing/environmental, not caused by this port or the rename sweep (verified: none reference any of the renamed strings):
mxrun-proxy-dryrun-pass,mxrun-proxy-sslcertfile-pass,mxrun-env-file-pass,gate-relative-value-config-pass,gate-config-relative-pass,gate-config-relative-catch,bt8-triage-without-tools-pass(7)/tmp→/private/tmpsymlink mismatch against hardcoded/var/folders/...test expectationstoolcheck-host-bsd-sed-catch(1)journeys-archive-keep-pass(1)remedy-apply-release-todo-pass(1)usercode-no-package-catch(1)bt9-fetch-skips-deployment-catch,bt9-fetch-note-pass(2)Public-clean verification
bin/check-no-client-data.sh(leakguard):✅ no client data detected in 2270 tracked filesgit grep -ilE 'siemens|pharma|tramius|moneta|material cockpit|shopfloor|hisense|disw|webewi|team leave': 0 matches.log,.tsv, etc.), including the FSM example's 40 evidence logs (caught agit grep --untrackeddefault-gitignore gap and a.gitignorecarve-out gap along the way — both fixed)Open item
FSM example MPK files (
~/upgrade-lab/examples/fsm-mpk) are intentionally not in this PR. They would only go up as GitHub Release assets, and only with Maurits's separate explicit sign-off.Do not merge — opened for review per Maurits's "push and open the PR" instruction.
🤖 Generated with Claude Code