Skip to content

debugging-workflows: dist-grep, jammed releases, shell noise - #146

Merged
mraible merged 9 commits into
CrowdStrike:mainfrom
grabngostuff:skill/debugging-workflows-recovery
Oct 28, 2026
Merged

mraible merged 9 commits into
CrowdStrike:mainfrom
grabngostuff:skill/debugging-workflows-recovery

Conversation

@grabngostuff

@grabngostuff grabngostuff commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

debugging-workflows had no answer for three things that cost time on live apps. When a released UI fix doesn't show, it now says to grep the built src/dist and rebuild if the change is missing, since deploy ships dist/ as is. When releases stay "In progress", it says to stop retrying, open a support ticket, and, to keep shipping, deploy as a new app under a new name, with the cost of that spelled out. It also lists the deserializeSitemap and uilogging 400 console errors as Falcon console noise, not app errors.

To stay within the SKILL.md size budget, the function runtime table, the install-failure steps, and the screenshot guidance move into two new reference files, with pointers left in SKILL.md.

Adds grep-the-built-dist as the pre-release confidence check when preview is unreliable, jammed-release-pipeline recovery (support ticket + fresh app_id, meta.trace_id from DevTools), and identifying benign Falcon console-shell noise.

Field-tested across 6+ production US-2 Foundry apps.

Co-Authored-By: Claude Code <noreply@anthropic.com>

@mraible mraible left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Dan. The console-shell noise row will save people a lot of time chasing errors that aren't theirs.

CI: the validate job fails because SKILL.md is over the 5,500-token size budget (CI estimates tokens as characters / 4). That budget follows the Agent Skills spec, which recommends keeping the SKILL.md body under 5,000 tokens and 500 lines, since the whole file loads every time the skill triggers. Most skills are already at 96-99% on main, so the fix is to move the long walkthroughs into the skill's references/ folder and leave a one- or two-line pointer in SKILL.md. Common Pitfalls rows can stay short, with the detail in the reference file.

Content:

  • Jammed release escape. "Strip the provisioned IDs and deploy as a new app" also needs a new name. The Manifest Issues section in this file says that dropping the IDs while keeping the name fails with an app with the provided name already exists, and the stuck app still exists here. Please add the rename.
  • "On some apps the in-console preview is effectively broken." Do you know what makes preview break, such as particular sockets, extensions vs. pages, or a CSP setting? Without that, readers may decide preview never works and skip foundry ui run entirely. If the cause isn't known yet, I'd keep only the dist-grep tip.
  • The new tree entry repeats the new section instead of pointing to it the way other leaves do ("see Preview Is Unreliable"), and it's filed under foundry ui run fails even though the symptom is a released change that doesn't show up. Please also line its arrow up with the others in the tree.
  • #144 adds the same dist-grep advice to development-workflow. One home for it, linked from the other, would be best.

 CI)

Relocate three long walkthroughs to references/ with short pointers in SKILL.md: Function Runtime Debugging -> references/function-runtime-debugging.md; App Install Failures + Visual Debugging -> references/install-and-visual-debugging.md. Tighten the Preview/Deployment-Diagnostics prose. SKILL.md 23,813 -> 19,992 chars (~4,998 tokens, under the 5,500 budget). Trim the run-on debugging-workflows 1.7.0 CHANGELOG bullet. Relocated, not deleted.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@grabngostuff

Copy link
Copy Markdown
Contributor Author

Thanks @mraible — size-budget failure fixed. Moved the Function Runtime Debugging loop, App Install Failures, and Visual Debugging walkthroughs into references/ with short pointers; kept the Common Issue Patterns table inline; CHANGELOG trimmed. SKILL.md is now ~19,992 chars (~4,998 tokens), under the 5,500 budget. Relocated, not removed. Ready for re-review.

@mraible mraible left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Dan, the size budget is fixed. The content points from the last review are still open, and there's one new CI problem:

  • markdownlint will fail. references/install-and-visual-debugging.md now has two top-level headings (# Debugging App Install Failures and # Visual Debugging with Screenshots), which trips MD025. Making the second one ## fixes it.
  • Jammed-release escape. "Strip the provisioned IDs and deploy as a new app" still needs a new name too. The stuck app still exists, so keeping the name fails with an app with the provided name already exists.
  • "On some apps the in-console preview is effectively broken." If you know what triggers it, please say so. If not, I'd keep just the dist-grep tip so readers don't stop using foundry ui run altogether.
  • The tree entry still repeats the section instead of pointing to it ("see Preview Is Unreliable"), still sits under foundry ui run fails though the symptom is a released change that doesn't show, and its arrow still doesn't line up with the others.
  • The dist-grep tip is also in #144. One home, linked from the other.

CI on your latest push is waiting for maintainer approval, so I ran the checks locally: size budget and tests pass, and markdownlint fails as above.

@mraible

mraible commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Confirmed the MD025 fix: with the second heading changed to ## Visual Debugging with Screenshots, markdownlint passes with the repo config.

install-and-visual-debugging.md had two top-level headings; markdownlint
MD025/single-title allows only one H1. Demote 'Visual Debugging with
Screenshots' to ## so the reference file lints clean in CI.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@grabngostuff

Copy link
Copy Markdown
Contributor Author

Pushed a fix for the failing markdownlint (MD025): the new references/install-and-visual-debugging.md had a second top-level H1 — demoted it to H2. Verified locally green — markdownlint 0 errors across the repo glob, content tests 67/67, size validate pass. Ready for a CI re-run + re-review.

@mraible

mraible commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Thanks Dan, the size budget and the MD025 fix both look good. The content points from the last review are still open:

  • Jammed releases. The escape still says to cold-deploy a fresh app_id without mentioning the app's name. Reusing the name fails (see the Manifest Issues section), so please add that the new app needs a new name.
  • "On some apps the in-console preview is effectively broken." Please either name the cause, or cut this down to the dist-grep tip, which is the useful part.
  • The decision-tree entry. It still repeats the full sentence instead of pointing to the section ("see Preview Is Unreliable"), it sits under foundry ui run fails, which isn't the symptom, and its → doesn't line up with the rows around it.
  • The dist-grep tip is also in development-workflow: operate-an-existing-app lifecycle gotchas #144. Please keep it in one place and link to it from the other.
  • Minor: "open the workflow in Fusion SOAR" in the install-failures pointer needs the Falcon prefix ("Falcon Fusion SOAR").

CI passes on your latest push, so these content points are all that's left.

…rop the preview claim

A cold deploy that keeps the stuck app's name fails with an app with the provided name already exists, so the escape now gives the new app a new name too. The section no longer says preview is broken on some apps without a known cause; it keeps the dist-grep check, which development-workflow now links to as the single home. The decision-tree entry moves under its own symptom and points to the section, and the install-failure pointer uses Falcon Fusion SOAR.
mraible added a commit to grabngostuff/foundry-skills that referenced this pull request Oct 27, 2026
…dependency order, drop CrowdStrike#146 dependency

Reverting the deploy-written IDs makes the next deploy fail with an app with the provided name already exists, as debugging-workflows says, rather than minting a new app. Step 5, Manifest Coordination, and the command block now use one order, with agents before the workflows that can call them, and the routing note points at the command block's new home. The hard-refresh note points to the --diff-only check already on main instead of a section only CrowdStrike#146 adds. The version-number note no longer calls the numbers unrelated or claims --deployment-id takes the deploy number, and --re-deploy is described as --help describes it. Tests pin each.
…f a new app, drop the sitemap reset

The bundle check now applies to UI, says to run npm run build when the change is missing from src/dist (deploy ships dist as is), and to hard-refresh when it's present. The jammed-release escape links the yq command that strips the IDs and says the new app must be reinstalled and starts with empty collections. The sitemap row no longer prescribes a tenant navigation reset, which nothing confirms exists. The CHANGELOG entry is plain prose, and tests cover the three recovery steps.
… --diff-only check

React blueprints build to dist and Vanilla JS ones to src/dist (6 and 7 of the sample UI paths), so the bundle check now reads the directory from the manifest's path and also offers foundry apps deploy --diff-only before a deploy.
The previous commit's message said React builds to dist and Vanilla JS to src/dist, but the React foundryjs-demo sample uses src/dist; the path varies by app, so the text says only that samples use both.
mraible added a commit that referenced this pull request Oct 28, 2026
* development-workflow: operate-an-existing-app lifecycle gotchas

Documents the iterate/operate phase: hard-refresh after upgrade (the console caches the built bundle), the three distinct version numbers, --re-deploy replaying the stale bundle, and committing the provisioned IDs the first deploy writes back to manifest.yml.

Field-tested across 6+ production US-2 Foundry apps.

Co-Authored-By: Claude Code <noreply@anthropic.com>

* development-workflow: trim SKILL.md under CI size budget

Relocate the long Step 5 capability-create command block, the Step 6
sub-skill-loading table, the Step 7 deploy/release operational blockquotes,
and the Multi-Cloud steps into references/advanced-patterns.md (RELOCATED,
not deleted), leaving 1-2 line pointers + Reading Guide row. Trim the 1.7.0
CHANGELOG entry. SKILL.md 24,302 -> 19,122 chars (~4,780 tokens), under the
5,500-token / ~22,000-char budget.

Co-Authored-By: Claude Code <noreply@anthropic.com>

* development-workflow: limit --re-deploy to what --help confirms, fix UI_BUILD wording

foundry apps deploy --help describes --re-deploy only as retrying the latest failed deployment, and debugging-workflows says no deployable artifacts found needs an artifact change, so drop the claim that --re-deploy escapes that error. UI_BUILD is the version the release will produce, which is +1 only for a Patch. The dist-grep check now lives in debugging-workflows, and this reference points to it.

* development-workflow: match debugging-workflows on reverted IDs, one dependency order, drop #146 dependency

Reverting the deploy-written IDs makes the next deploy fail with an app with the provided name already exists, as debugging-workflows says, rather than minting a new app. Step 5, Manifest Coordination, and the command block now use one order, with agents before the workflows that can call them, and the routing note points at the command block's new home. The hard-refresh note points to the --diff-only check already on main instead of a section only #146 adds. The version-number note no longer calls the numbers unrelated or claims --deployment-id takes the deploy number, and --re-deploy is described as --help describes it. Tests pin each.

* development-workflow: delete the e2e app before reverting the manifest, scope the rename rule

Reverting manifest.yml after an e2e deploy orphans the app, as debugging-workflows says, so step 5 now deletes the app first with foundry apps delete --force-delete --no-prompt, as the functions-python sample's CI does. The rename-only exception applies to a true name collision, not to lost IDs. UI_BUILD, a convention from one codebase, becomes any version string the app shows. The test now checks the delete step instead of an absence that could never fail.

---------

Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Matt Raible <matt.raible@crowdstrike.com>
# Conflicts:
#	CHANGELOG.md
#	tests/test_skill_content.py

@mraible mraible left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Dan, this is ready to merge.

@mraible
mraible merged commit f3fd014 into CrowdStrike:main Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants