existing-app-change: map the app first, ask about findings, park until the change is named - #132
Merged
Merged
Conversation
…y "full X" task Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…three constraints Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
… pointer row, hand-curated) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…names are the company's call), name fixed Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…, PROPOSED badges on unshipped pieces Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…running prototype, public-cites-private is the known failure Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…itations CI floor, skill, fixture, agent eval Shape extracted from a private repo that ran this model for a month. Fixture: 32/32 (instantiate, wire once, re-point in place, refusals, citation check positive+negative control, leak wrapper, harvest --to). Four live private pointers reworded. The agent eval needs a real design-system MPK and has not run. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…ol, on a real frozen app Six Sonnet sessions, two arms differing by the nine-line pointer block only. Grader fixed mid-run (negation-blind markers). Install discipline not tested: no mxcli in the container, so the rubric is split Part A (done) / Part B (open). Component is a marked stand-in until the real design module lands. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…stops green-lighting unread files Both found by running the first real drop, not by reasoning about it. 1. One wired session of three read AGENTS.md, CLAUDE.md, PROJECT.md and intake.md and never opened CLAUDE.local.md, so the company brain was invisible to it. The pointer now goes into every instruction surface the project already has, never creating one it does not. 2. The leak check delegated to a guard that scans tracked text files, so a folder of a PDF and a module package reported clean; outside git it printed errors and still exited 0. It now checks filenames, handles the pre-git case, and reports unscannable binaries out loud. Fixture extended: multi-surface group plus four leak-check assertions. NOT YET RUN -- the repo requires asking before running a fixture; verified by inspection meanwhile (one block per surface, 54-word pointer, check-scripts, citation check and render-routing --check all clean). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…r the wiring fix Six sessions on the real artifacts. The one miss diagnosed a single point of failure in the pointer wiring, fixed in the previous commit; re-run confirms 3/3. Every retrieving session correctly refused to 'fix' the theme's deliberate colour deviation. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…f surface, not a write mode learned-mdl-preflight Step 0 names CLI and MCP as the co-equal write modes; MCP needs SP running, so headless means CLI. Guidance, manifest template and eval rubric corrected. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
… mxcli import command exists Proven: release download, mxcli new on 11.14.0, 9-module app, first build settled, no GUI. Corrected: the manifest's './mxcli import mpk' was invented by an eval session and copied without probing. Real routes are marketplace install (content id) and mx module-import (local file). This package is refused: built with SP 10.6.4, needs a 10.21-10.24 hop, and the CDN serves no 10.x mxbuild. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…rt, inside a version window 11.14's converter accepts 10.21-10.24 and refuses 10.6.4, the same boundary module-import names. So the company package needs one hop, and the intermediate mx is not published at the CDN path the tooling uses (11.x 200, every 10.x 404). Corrects the earlier implication that it simply cannot be installed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…ate was mx's alone mxcli reads the 10.6.4 model fine. The theme module has zero model documents, so install is a file operation. Copying themesource/ alone builds green with NONE of the brand colours applied -- main.scss imports the project's custom-variables while the module's own variables file is imported by nothing. With that copy too: BUILD SUCCEEDED and all five brand hexes verified in the compiled CSS. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
… already takes plain paths PackageProject/PerformInstall/InstallPackageFiles/moduleNameFromMpk take paths and strings, no marketplace client. InstallPackageFiles already does the bundled-file copy done by hand. Recommendation: issue + PR + wrapper meanwhile; fork only if declined. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…ld-run findings, final state Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
CHANGELOG: master moved to the Unreleased/release-cycle format (#111); this branch's 2026-09-19/20 lines now sit under Unreleased and its 2026-09-18 lines in that dated section. skill-routing.tsv auto-merged; surfaces re-rendered. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
The leak guard's home-directory probe is right to flag them, even though they are a cloud container's paths and not a person's machine. <scratch> and <home> carry the same information. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
Master drained its merge queue (172 commits) while this branch was open. Three conflicts, resolved: - CHANGELOG.md: union under ## Unreleased, this branch's 11 lines above master's. - README.md: master's rewritten sync paragraph kept verbatim (it is more accurate about CLAUDE.local.md vs CLAUDE.md); the company-brain paragraph appended after it, with the duplicated npm sentence dropped. - toolkit-guide.html: master added its own section 9 (harness setting), so the wiring page is renumbered to section 10. Both kept; SVG balance re-checked. Routing surfaces already in sync after the merge; baseline 73,074 / 80,000 words. check-scripts, check-portability, leak guard (671 files), no-private-citations and check-pr-discipline all clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
… until the change is named Stage 0 in this mode opened with "which slice?" before anyone had seen the app, and the app-analysis instrument (app-facts.sh + app-report.sh) existed but nothing in the change flow ran or read it. Now Stage 0a runs the map without asking (read-only, ~1 min), then asks the user to disposition the top findings (fix / log / accept). The project may park there; Stage 0b scopes the slice and reads its blast radius from the map once the change is named. The manifest owes the map (app-report) in this mode, gate-check reads a mapped-but-unscoped project as Stage 0 PENDING rather than a permanent FAIL, and its Stage 1 hint names Path D. existing-app-assurance Track A starts from the same report. Field run: a live client workflow app, 28 modules, mapped in 76 s, gate-check PENDING/parked with 0 needing attention. Fixture: test-bug03-gates.sh T12 (parked, unmapped, other-mode controls). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
…uash; tree unchanged)
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.
Direct lane
What changed and why (one paragraph):
In "Change an existing app" mode, Stage 0 opened with "which slice?" before anyone had seen the app. The app-analysis instrument (
app-facts.sh+app-report.sh,skills/app-analysis.md) already existed, but nothing in the change flow ran or read it; its own Related section said "Not yet wired". Now Stage 0a runs the map without asking, because it's read-only and takes about a minute. Then it asks the one question the user owns: fix / log / accept for each top finding. The project may park there, which is now a normal state and not a permanent red row. Stage 0b scopes the slice once the change is named and reads its blast radius from the map's tangles and edges instead of recomputing it.existing-app-assurance.mdTrack A (the à-la-carte audit) starts from the same report, so an audit that turns into a change doesn't redo it.skills/existing-app-change.mddependencies.json; deliverable addedskills/existing-app-assurance.mdskills/app-analysis.mdbin/lib/artifact-manifest.tsvapp-reportrow, Stage 0, owed in this mode only,reportabsencebin/gate-check.shdocs/pipeline-walks.htmltests/wave2/test-bug03-gates.shField evidence: a live client workflow app (Mendix, MPR v2), headless container, mxcli v0.23.0.
app-facts.shfound 28 modules (9 own), 31 own-module edges, 8 bidirectional pairs, one tangle of 7 of the 9 own modules, and 213 loop microflows (201 described), in 76 s.app-report.shrendered 2 high / 2 medium / 11 low findings. Then gate-check with this change:app-reportPRESENT, Stage 0 PENDING "waiting on the change", 0 need attention (before: Stage 0 FAIL on the placeholder). Controls on the same checkout: report moved aside → FAIL returns; a signed-off scratch project with no map →app-reportPENDING owed, Stage 0 PASS.check-no-client-data.shclean on 674 files; the app is described generically).mprunderapp/) not probed: the parked check looks at$PROJECT_DIR/analysis/app-report.json, which is whereapp-report.shwrites.CHANGELOG.mdline appended, creditedcheck-pr-discipline,check-no-private-citations,check-scripts: cleanStacked follow-up (not in this PR)
The
app-analysisrouting row still says "nothing else in the toolkit reads it yet". Rewording it re-renders README, ROUTING and three agent templates (6 files), so it goes in a second PR once this lands, to stay under the cap.Still not wired (named in
app-analysis.md)architecture/app-dossier.md) isn't owed by anything; only the rendered report is.The branch carries a
-s oursmerge of the already-squash-merged #120 history (tree unchanged), so the branch could be pushed without a force-push. The diff against master is only this change.🤖 Generated with Claude Code
https://claude.ai/code/session_01Cjxzzw8LVrfLrEmz8YMXQW
Generated by Claude Code