Skip to content

Skill improvements#11

Open
george-bafaloukas-forgerock wants to merge 3 commits into
mainfrom
skill-improvements
Open

Skill improvements#11
george-bafaloukas-forgerock wants to merge 3 commits into
mainfrom
skill-improvements

Conversation

@george-bafaloukas-forgerock

Copy link
Copy Markdown
Collaborator

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.

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 vahancouver left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Approved with a minor comment

- 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:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Duplicate Step 3

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