# Session notes — 26 Aug 2026

## Done

### Phase 3a — Salesforce Developer stub + mock Git/PR
- `SalesforceDeveloper` writes CustomField / ValidationRule / PermissionSet SFDX XML stubs under run artifact dir.
- Apex/Flow/LWC plan items deferred (listed in `implementation.json` + summary).
- `MockGitClient`: branch `agent-nova/<jira-key>`, fake commit SHA, draft PR URL.
- Orchestrator: `design_approve` → `implement` → **`PR_CREATED`**; Jira comment with PR link.
- `ImplementationArtifact` + `ArtifactStore.write_text`.

### Live path polish
- Jira `_extract_ac` fallback for descriptions without an AC header (AN-10 style).
- Mock LLM out-of-scope heuristics scoped to requirements text only (not prompt boilerplate).

### Tests
- `pytest -q` — orchestrator approve → PR_CREATED, developer stubs, git mock, AC extraction.

### Live Confluence retrieval
- Added `HttpConfluenceRetriever` for live Confluence Cloud content search.
- `CONFLUENCE_PROVIDER=http` now searches `CONFLUENCE_SPACE_KEYS` and returns title/snippet/url hits.
- Uses dedicated `CONFLUENCE_EMAIL` / `CONFLUENCE_API_TOKEN`, with Jira credentials as fallback.

## Blockers / next
- Live GitHub API client (Phase 3b).
- Salesforce org deploy (`sf project deploy`).
- Full Apex / Flow / LWC generation.
- Code Reviewer / QA (Phase 4).
