Legacy webview implementation
Skill emilianoeloi/ios-WK-UI-WebView/.github/skills/legacy-webview-implementation
π¦ The COBOL of Apple: a battle-tested Objective-C UIWebView/WKWebView legacy lab β lovingly maintained, and teaching AI agents to respect their elders
npx -y skills add emilianoeloi/ios-WK-UI-WebView --skill legacy-webview-implementationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when: implementing Objective-C changes in WKWebView/UIWebView flow, JavaScript bridge, and navigation behavior with minimal risk.
SKILL.md
1.9 KB, as published. Nobody here has run it
Legacy WebView Implementation
Purpose
Implement production-safe fixes and enhancements in this legacy iOS WebView project.
Phase 0 β Read (no edits)
- Confirm target behavior from README and the current code path
- If the runtime flow or bridge contract is unclear, run
legacy-webview-analysisfirst
Gate
- State the minimal file touch set before editing. If the request is ambiguous, stop and ask instead of guessing scope.
Phase 1 β Implement
- Patch minimally in Objective-C and preserve existing conventions
- Keep WKWebView and fallback expectations aligned
- Preserve bridge contract (handler names, protocol queue semantics)
- Add focused tests when behavior can be isolated
Phase 2 β Validate
- Build with the canonical command from
AGENTS.md:
xcodebuild -project ios-WK-UI-Webview.xcodeproj \
-scheme ios-WK-UI-Webview \
-destination 'generic/platform=iOS Simulator' \
IPHONEOS_DEPLOYMENT_TARGET=12.0 build
- If the build cannot run in your environment, state the limitation explicitly β never claim validation that did not happen
Quality Rules
- Keep architecture simple and focused on requested behavior
- Do not change unrelated files or flows
- Prefer centralized constants over duplicated literals
- Add comments only for non-obvious bridge/navigation edge cases
Anti-example (do not do)
"While fixing the redirect, I also modernized the delegate wiring and renamed two handlers for clarity."
Unrequested scope. Handler names are a public contract; renames are a migration, not a fix.
Definition of Done
- Change is scoped and understandable
- Core navigation/bridge flow remains stable
- Validation completed (build/test or explicit limitation note)
- No accidental API or contract breakage