Skip to content

[PM-33571] llm: Add requirements refinement and planning skills#2445

Draft
SaintPatrck wants to merge 1 commit intomainfrom
llm/planning-skills
Draft

[PM-33571] llm: Add requirements refinement and planning skills#2445
SaintPatrck wants to merge 1 commit intomainfrom
llm/planning-skills

Conversation

@SaintPatrck
Copy link
Copy Markdown
Contributor

🎟️ 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-work command — 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-requirements skill); removes the redundant Core Directives numbered list (covered by the DO/DON'T section and Docs/ pointers); replaces the external style guide URL with local Docs/Architecture.md and Docs/Testing.md references.

- 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
@SaintPatrck SaintPatrck force-pushed the llm/planning-skills branch from 9e6d14b to a0c5553 Compare March 13, 2026 19:49
@github-actions github-actions bot added the t:llm Change Type - LLM related change (e.g. CLAUDE.md files) label Mar 13, 2026
@SaintPatrck SaintPatrck added the ai-review Request a Claude code review label Mar 13, 2026
@claude
Copy link
Copy Markdown

claude bot commented Mar 13, 2026

Claude finished @SaintPatrck's task in 4m 4s —— View job


I'll analyze this and get back to you.

@github-actions
Copy link
Copy Markdown
Contributor

Logo
Checkmarx One – Scan Summary & Detailsd6e89420-2de8-4beb-804c-5d4f3ac7b569

Great job! No new security vulnerabilities introduced in this pull request

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.71%. Comparing base (48115b8) to head (a0c5553).

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Member

@fedemkr fedemkr left a comment

Choose a reason for hiding this comment

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

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)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

🎨 Billing is being added as well.

Suggested change
- 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
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

❓ 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?

Comment on lines +10 to +14
## 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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

🤔 Should it also read the Testing.md file as prerequisite? As sometimes having the structure to be testable changes how it's implemented.

Comment on lines +71 to +78
### 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
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

⛏️ I would put DI Wiring as Phase 3 and then continue with the order established here as processors may need from the Has protocols.

Suggested change
### 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
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

⛏️ Also Share extension should be included.

Suggested change
- **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)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

⛏️ Particularly TOTP.

Suggested change
- watchOS companion impact (if vault data is involved)
- watchOS companion impact (if vault data is involved, specially TOTP data)

Comment on lines +54 to +59
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
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

🎨 Include Billing as well.

Suggested change
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]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

⛏️ Add billing:

Suggested change
- **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/`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

⛏️ Add billing:

Suggested change
`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/`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

⛏️ Add Billing:

Suggested change
**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/`.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review t:llm Change Type - LLM related change (e.g. CLAUDE.md files)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants