Skill improvements#11
Open
george-bafaloukas-forgerock wants to merge 3 commits into
Open
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ding improvements - SKILL.md: consume Journey Node Manifest before generating callbacks; add --manifest param; manifest check in wizard Step W1b; flag cookieName as tenant-specific (P1, P6) - AppJourney.swift.template: add missing import PingOidc for KeychainStorage<Token> (P4) - ContentView.swift.journey.template: remove ErrorNode.continueNode — SDK 2.x ErrorNode has no such property; treat as message + restart instead (P3) - journey-export-analysis.md: add ValidatedUsernameNode/ValidatedPasswordNode to A3 node→callback map with purpose-dependent entries — auth tree emits Name/PasswordCallback, not Validated* variants (P1) - project-scaffolding.md: detect CLI vs MCP output layout after scaffold; add Step B-Workspace for workspace+SPM package layout the CLI produces; document asset paths and workspace-scoped resolve/build commands (P2, P7) - common-pitfalls.md: add safe.bareRepository=explicit SPM resolution failure and env -u GIT_CONFIG_* workaround with cache purge steps (P5) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
vahancouver
approved these changes
Jun 18, 2026
| - Look for `.ping/journey-manifest.*.json` in the working directory. | ||
| - If found, load it. Use `callbackUnion` as the authoritative callback list. Set `callbackTier` from `recommendedCallbackTier`, `cookieName` from `sessionCookieName`, `serverUrl` and `realm` from the manifest. Do **not** infer callbacks from node type names. | ||
| - If not found, continue and emit a warning after collecting parameters: *"No Journey Node Manifest found — callback generation is tier-based, not ground truth. Run `/ping-orchestration` to produce a manifest for an exact match."* | ||
| 3. **Journey export offer** — if the flow type is `journey`, no manifest was loaded, and the user has not provided an export, ask: |
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.
PR Summary — skill-improvements
Branch: skill-improvements → main
6 files changed, 70 insertions, 10 deletions
Problem
During a real session building an AIC journey + iOS app, the ping-orchestration-ios-sdk skill generated the wrong callback views because it inferred callbacks from node type names alone. ValidatedUsernameNode / ValidatedPasswordNode in a login tree emit NameCallback / PasswordCallback — not ValidatedUsernameCallback / ValidatedPasswordCallback. The app compiled cleanly but was silently broken at runtime. Several additional bugs were found in the same session.
Changes
SKILL.md
Wizard Step W1b now silently checks for a Journey Node Manifest (.ping/journey-manifest.*.json) before offering a Journey export — if found, callbackUnion, serverUrl, realm, cookieName, and callbackTier are pre-populated automatically.
create-sample Journey path gains a manifest check as its first step, with a warning if none is found.
New --manifest parameter: when passed, the manifest's callbackUnion drives code generation instead of tier defaults.
cookieName parameter now flags that the value is tenant-specific and documents how to find it.
assets/AppJourney.swift.template (P4)
Added missing import PingOidc — required for KeychainStorage. Without it, generated apps fail to compile.
assets/ContentView.swift.journey.template (P3)
Removed errorNode.continueNode — ErrorNode in SDK 2.x has no such property (message, status, context only). The ErrorNode case now shows the error message with a restart option instead.
references/journey-export-analysis.md (P1)
Added ValidatedUsernameNode / ValidatedUsernameNodeV2 and ValidatedPasswordNode to the A3 node→callback mapping table with explicit purpose-dependent entries. Authentication trees emit NameCallback / PasswordCallback; registration trees emit Validated* variants. The note explicitly warns against assuming ValidatedUsernameCallback for login journeys.
assets/project-scaffolding.md (P2, P7)
CLI path in Step 0 now instructs ls after scaffolding to detect which layout was produced.
New Step B-Workspace: full adaptation path for the workspace + SPM package layout the xcodebuildmcp CLI produces (.xcworkspace + Package/). Covers: deleting the local package, opening the embedded .xcodeproj for SPM wiring, asset paths (Assets.xcassets in app target, not a package bundle), and workspace-scoped xcodebuild resolve/build commands.
references/common-pitfalls.md (P5)
Added the safe.bareRepository is 'explicit' SPM resolution failure: caused by Claude Code's GIT_CONFIG_* env var injection. Workaround: env -u GIT_CONFIG_COUNT -u GIT_CONFIG_KEY_0 -u GIT_CONFIG_VALUE_0 xcodebuild -resolvePackageDependencies ... plus cache purge.