[PM-33571] llm: Add requirements refinement and planning skills#2445
[PM-33571] llm: Add requirements refinement and planning skills#2445SaintPatrck wants to merge 1 commit intomainfrom
Conversation
- refining-ios-requirements skill: ingests Jira/Confluence via MCP, extracts requirements, performs gap analysis (error states, edge cases, extensions, accessibility), maps to iOS domain (Auth/Autofill/Platform/Tools/Vault) - planning-ios-implementation skill: classifies change type, explores existing patterns, lists files to create/modify with domain placement, produces dependency-ordered implementation phases, assesses risk - /plan-ios-work command: orchestrates both skills end-to-end with user confirmation between phases, saves design doc to .claude/outputs/plans/ - CLAUDE.md: compress directory tree listing, remove Auth/Authorization detail section (now in refining-ios-requirements skill), remove redundant Core Directives list, replace external style URL with local Docs/ references
9e6d14b to
a0c5553
Compare
|
Claude finished @SaintPatrck's task in 4m 4s —— View job I'll analyze this and get back to you. |
|
Great job! No new security vulnerabilities introduced in this pull request |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2445 +/- ##
==========================================
- Coverage 86.86% 85.71% -1.15%
==========================================
Files 1841 2074 +233
Lines 162244 177135 +14891
==========================================
+ Hits 140941 151840 +10899
- Misses 21303 25295 +3992 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
fedemkr
left a comment
There was a problem hiding this comment.
Looks good, just some minor tweaks.
| Invoke the `refining-ios-requirements` skill to: | ||
| - Extract structured requirements and acceptance criteria | ||
| - Perform gap analysis (error states, edge cases, extensions, accessibility) | ||
| - Map to iOS domain (Auth/Autofill/Platform/Tools/Vault) |
There was a problem hiding this comment.
🎨 Billing is being added as well.
| - Map to iOS domain (Auth/Autofill/Platform/Tools/Vault) | |
| - Map to iOS domain (Auth/Autofill/Billing/Platform/Tools/Vault) |
| ## Phase 3: Plan Implementation | ||
|
|
||
| Once requirements are confirmed, invoke the `planning-ios-implementation` skill to: | ||
| - Classify the change type |
There was a problem hiding this comment.
❓ Maybe it's defined in another place but which would be the possible change types? Or is it just general for the LLM to figure out?
| ## Prerequisites | ||
|
|
||
| - Requirements must be clear. If not, invoke `refining-ios-requirements` first. | ||
| - Read `Docs/Architecture.md` before proceeding — it is the authoritative source for all patterns. | ||
|
|
There was a problem hiding this comment.
🤔 Should it also read the Testing.md file as prerequisite? As sometimes having the structure to be testable changes how it's implemented.
| ### Phase 3: Processor + State | ||
| StateProcessor subclass, State struct, Action enum, Effect enum | ||
|
|
||
| ### Phase 4: View + Coordinator | ||
| SwiftUI View with store.binding, Coordinator with routes, navigation wiring | ||
|
|
||
| ### Phase 5: DI Wiring | ||
| ServiceContainer extensions, Has* protocol additions |
There was a problem hiding this comment.
⛏️ I would put DI Wiring as Phase 3 and then continue with the order established here as processors may need from the Has protocols.
| ### Phase 3: Processor + State | |
| StateProcessor subclass, State struct, Action enum, Effect enum | |
| ### Phase 4: View + Coordinator | |
| SwiftUI View with store.binding, Coordinator with routes, navigation wiring | |
| ### Phase 5: DI Wiring | |
| ServiceContainer extensions, Has* protocol additions | |
| ### Phase 3: DI Wiring | |
| ServiceContainer extensions, Has* protocol additions | |
| ### Phase 4: Processor + State | |
| StateProcessor subclass, State struct, Action enum, Effect enum | |
| ### Phase 5: View + Coordinator | |
| SwiftUI View with store.binding, Coordinator with routes, navigation wiring |
|
|
||
| Identify risks and mitigations: | ||
| - **Security**: Does this touch vault data, auth tokens, or Keychain? → Security review required | ||
| - **Extensions**: Does this affect AutoFill/Action extensions? → Memory limit check needed |
There was a problem hiding this comment.
⛏️ Also Share extension should be included.
| - **Extensions**: Does this affect AutoFill/Action extensions? → Memory limit check needed | |
| - **Extensions**: Does this affect AutoFill/Action/Share extensions? → Memory limit check needed |
|
|
||
| **Platform concerns** | ||
| - App extension impact (AutoFill, Action, Share — memory limits apply) | ||
| - watchOS companion impact (if vault data is involved) |
There was a problem hiding this comment.
⛏️ Particularly TOTP.
| - watchOS companion impact (if vault data is involved) | |
| - watchOS companion impact (if vault data is involved, specially TOTP data) |
| Determine which Bitwarden iOS domain(s) are involved: | ||
| - **Auth/**: Authentication, login, unlock, key derivation | ||
| - **Autofill/**: Credential provider, autofill flows | ||
| - **Platform/**: Cross-cutting concerns, services, utilities | ||
| - **Tools/**: Generator, Send, Import/Export | ||
| - **Vault/**: Cipher management, folders, collections |
There was a problem hiding this comment.
🎨 Include Billing as well.
| Determine which Bitwarden iOS domain(s) are involved: | |
| - **Auth/**: Authentication, login, unlock, key derivation | |
| - **Autofill/**: Credential provider, autofill flows | |
| - **Platform/**: Cross-cutting concerns, services, utilities | |
| - **Tools/**: Generator, Send, Import/Export | |
| - **Vault/**: Cipher management, folders, collections | |
| Determine which Bitwarden iOS domain(s) are involved: | |
| - **Auth/**: Authentication, login, unlock, key derivation | |
| - **Autofill/**: Credential provider, autofill flows | |
| - **Billing/**: Billing flows | |
| - **Platform/**: Cross-cutting concerns, services, utilities | |
| - **Tools/**: Generator, Send, Import/Export | |
| - **Vault/**: Cipher management, folders, collections |
| 1. [Question for product/design] | ||
|
|
||
| ### Scope | ||
| - **Domain**: [Auth / Autofill / Platform / Tools / Vault] |
There was a problem hiding this comment.
⛏️ Add billing:
| - **Domain**: [Auth / Autofill / Platform / Tools / Vault] | |
| - **Domain**: [Auth / Autofill / Billing / Platform / Tools / Vault] |
| └── project-*.yml # XcodeGen project specs | ||
| ``` | ||
| `Bitwarden/`, `Authenticator/` — app targets | ||
| `BitwardenShared/`, `AuthenticatorShared/`, `BitwardenKit/` — shared frameworks; each has `Core/` + `UI/` with fixed subdirs: `Auth/`, `Autofill/`, `Platform/`, `Tools/`, `Vault/` |
There was a problem hiding this comment.
⛏️ Add billing:
| `BitwardenShared/`, `AuthenticatorShared/`, `BitwardenKit/` — shared frameworks; each has `Core/` + `UI/` with fixed subdirs: `Auth/`, `Autofill/`, `Platform/`, `Tools/`, `Vault/` | |
| `BitwardenShared/`, `AuthenticatorShared/`, `BitwardenKit/` — shared frameworks; each has `Core/` + `UI/` with fixed subdirs: `Auth/`, `Autofill/`, `Billing/`, `Platform/`, `Tools/`, `Vault/` |
| `Docs/`, `Scripts/`, `TestPlans/`, `Configs/`, `Sourcery/Templates/`, `project-*.yml` — configuration | ||
|
|
||
| **CRITICAL**: Do NOT add new top-level subdirectories to `Core/` or `UI/`. The fixed subdirectories are: `Auth/`, `Autofill/`, `Platform/`, `Tools/`, `Vault/`. | ||
| **CRITICAL**: Do NOT add new top-level subdirectories to `Core/` or `UI/`. Fixed: `Auth/`, `Autofill/`, `Platform/`, `Tools/`, `Vault/`. |
There was a problem hiding this comment.
⛏️ Add Billing:
| **CRITICAL**: Do NOT add new top-level subdirectories to `Core/` or `UI/`. Fixed: `Auth/`, `Autofill/`, `Platform/`, `Tools/`, `Vault/`. | |
| **CRITICAL**: Do NOT add new top-level subdirectories to `Core/` or `UI/`. Fixed: `Auth/`, `Autofill/`, `Billing/`, `Platform/`, `Tools/`, `Vault/`. |

🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-33571
📔 Objective
Adds two new Claude skills and a command for the planning phase of iOS feature development.
What changed:
skills/refining-ios-requirements— Ingests Jira/Confluence tickets via MCP, extracts structured requirements and acceptance criteria, performs gap analysis (error states, edge cases, multi-account, extension memory, accessibility), and maps work to the correct iOS domain (Auth/Autofill/Platform/Tools/Vault). Produces a structured requirements doc and pauses for user confirmation before proceeding.skills/planning-ios-implementation— Classifies the change type (new feature, enhancement, service, bug fix), explores existing codebase patterns, lists all files to create/modify with domain placement, produces dependency-ordered implementation phases (Core → Services → Processors → Views → DI → Tests), and assesses risks (security, extensions, multi-account, SDK)./plan-ios-workcommand — Orchestrates both skills end-to-end: ingests a ticket via MCP, refines requirements, confirms with user, plans implementation, and saves the design doc to.claude/outputs/plans/<ticket-id>.md.CLAUDE.md — Compresses the directory tree listing from 45 to 5 lines; removes the Auth/Authorization detail section (now discoverable via the
refining-ios-requirementsskill); removes the redundant Core Directives numbered list (covered by the DO/DON'T section andDocs/pointers); replaces the external style guide URL with localDocs/Architecture.mdandDocs/Testing.mdreferences.