Skip to content

feat: RC front-office optimization + AMD/subagent fixes#11

Merged
gbharg merged 9 commits into
mainfrom
feat/rc-frontoffice-optimization-2026-04-12
May 23, 2026
Merged

feat: RC front-office optimization + AMD/subagent fixes#11
gbharg merged 9 commits into
mainfrom
feat/rc-frontoffice-optimization-2026-04-12

Conversation

@gbharg

@gbharg gbharg commented May 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • RC front-office optimization, dashboards, daily tracker, service configs (existing commits d0773a6, 3c890b1)
  • checkpoint: planning docs in .pi/services/ (e9d4b49)
  • Swap coding-agent subagents to gpt-5.5 (planner/reviewer/scout/worker)
  • Fix exult-mcp/advancedmd-xmlrpc APP_NAME: TEMP → ABS-AVMD (registered appname for office 161112)

Test plan

  • Verify subagent definitions load with gpt-5.5
  • Confirm advancedmd-xmlrpc auth no longer errors with 'api-app class creation error'
  • Sanity check RC front-office service configs unchanged

gbharg and others added 8 commits April 11, 2026 01:11
Adds 10 project-level skills under .claude/skills/ for common Exult
Healthcare front-office workflows, split across AdvancedMD (5) and
RingCentral (5). Each SKILL.md covers: purpose, inputs, prerequisites,
API-first workflow with UI fallback, per-request approval gates, verify,
rollback, common pitfalls, and references to local AMD API doc cache +
memory.

PHI/PCI-sensitive skills (add-patient, reschedule, cancel, records,
payment) require explicit per-request Gautam approval before any write
and never log full PHI/card data.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds 10 new project-level skills covering insurance verification + add,
patient check-in, document upload, patient messaging, refunds, SMS
reminders, IVR updates, temporary call forwarding, and a composite
daily KPI report. Updates INDEX.md and preserves batch 1 conventions
(API-first + UI fallback, per-request approval gates for PHI/financial
writes, PHI redaction rules).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nd AMD XMLRPC

Adds three local stdio MCP servers under packages/exult-mcp/ to fill gaps in
Claude Desktop coverage of Exult Healthcare operational services:

- ringcentral-admin: RC Platform API with the Remote Admin JWT — extensions,
  call queues, IVR, detailed/paginated call log, voicemails, transcripts
  (fills the gap Keragon RC MCP leaves around admin/pagination/voicemail).
- microsoft365-admin: Graph client_credentials (Exult Agent Service app) for
  tenant-wide directory, any-mailbox mail/calendar, groups, SharePoint
  (claude_ai_Microsoft_365 is Gautam's personal delegated OAuth — doesn't
  cover tenant admin).
- advancedmd-xmlrpc: ARC022825 service-account XMLRPC for getUpdatedPatients,
  getUpdatedVisits, getVisitInfoByDate, getEhrUpdatedNotes,
  getAppointmentHistory, plus a raw_xmlrpc_request escape hatch. Complements
  Keragon AMD (which can't reach the service-account-only getUpdated family).

All tools are READ-ONLY. Writes deliberately excluded — AMD writes require
Gautam's per-operation approval and Keragon already covers the write APIs.

Each server live-smoke-tested against its real API during build:
- RC returned account 2761864020 / Confirmed
- M365 returned tenant Exult Healthcare / 707a7153-...
- AMD XMLRPC login + getfieldsets probe returned 3310 bytes of table XML

Full build log at .pi/services/mcp_setup/build_log.md including MBP config
discovery gap (MBP offline 8h, ssh unreachable), coverage gap analysis, and
the claude.ai remote MCP hosting note (only M365 is hostable; RC and AMD are
local-only due to PHI + session-auth).

Claude Desktop config at ~/Library/Application Support/Claude/ was updated
out-of-tree and is NOT part of this commit. Credential JSON files remain
uncommitted in .config/exult/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…rvice configs

- Dashboard deployments (daily + historical) on Vercel
- Daily operations tracker with AMD/RC/M365 data extraction
- RC front-office queue optimization (ext 55)
- IVR tree cleanup and renaming
- Outlook email channel for agent
- Monitor scripts for subagent management
- Service provisioning audit trail

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Updates planner/reviewer/scout/worker subagent definitions to use gpt-5.5.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
TEMP appname caused 'api-app class creation error' on data calls.
ABS-AVMD is the registered appname for Exult office 161112.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@gautam-claude gautam-claude Bot 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.

⚠️ Claude: Review failed — /Users/Work/.local/bin/claude exited with code 1:

@gautam-gemini gautam-gemini Bot 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.

🔍 Gemini is reviewing this PR...

@gautam-gemini gautam-gemini Bot 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.

🤖 Gemini Code Review

Review of front-office optimization, dashboards, subagents update to gpt-5.5, and bug fixes.

Issues found:

  • [blocking] The temporary prompt file for background subagents is immediately deleted, causing a race condition where the detached child process fails to read its system prompt.
  • [suggestion] The historical dashboard middleware excludes /data/ from authentication. Consider protecting it if the aggregated JSON files should also be private.

Workflow Suggestions

  • 💡 Consider splitting large data dumps and dashboards into a separate PR to simplify review of core agent/MCP logic.

// Clean up temp files
if (tmpPromptPath) {
try {
fs.unlinkSync(tmpPromptPath);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[blocking] tmpPromptPath is deleted immediately after spawning the background agent. Because the child process runs detached, it will likely fail to read the file before it is unlinked. You should either skip deleting it here (letting the OS temp directory clean it up) or pass the prompt without relying on a temporary file.

}

export const config = {
matcher: ["/((?!_next/static|_next/image|favicon.ico|data/).*)"],

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[suggestion] The matcher config excludes data/, meaning the underlying JSON files in /public/data/ are publicly accessible without authentication. Consider including them in the matcher if you want to restrict access to the raw aggregate data as well.

@gbharg

gbharg commented May 23, 2026

Copy link
Copy Markdown
Owner Author

Review: 1 blocking issue, otherwise LGTM

Blocker: invalid model identifier gpt-5.5

Commit 5cbe5be4 swaps the 4 subagent definitions (planner/reviewer/scout/worker) to model: gpt-5.5. That ID does not exist in @mariozechner/pi-ai's model registry. Available gpt-5.x IDs (per node_modules/@mariozechner/pi-ai/dist/models.generated.js):

gpt-5, gpt-5-chat-latest, gpt-5-codex, gpt-5-mini, gpt-5-nano, gpt-5-pro,
gpt-5.1, gpt-5.1-chat-latest, gpt-5.1-codex, gpt-5.1-codex-max, gpt-5.1-codex-mini,
gpt-5.2, gpt-5.2-chat-latest, gpt-5.2-codex, gpt-5.2-pro,
gpt-5.3-codex, gpt-5.3-codex-spark,
gpt-5.4, gpt-5.4-mini, gpt-5.4-nano, gpt-5.4-pro

packages/coding-agent/src/core/model-resolver.ts lists the openai default as gpt-5.4. The four subagents will fail to load (model-not-found) with gpt-5.5. Looks like a typo for gpt-5.4 (or possibly gpt-5.4-pro/gpt-5.3-codex).

Non-blocking notes (no action required)

  • AMD APP_NAME change TEMP -> ABS-AVMD in packages/exult-mcp/advancedmd-xmlrpc/server.py is correct (registered appname for office 161112, fixes the api-app class creation error). No other callers reference APP_NAME in this package.
  • .pi/services/ docs in commit e9d4b494 are fine to ship - .pi/services/ is already widely tracked on main (FRONT_OFFICE_.md, MORNING_REPORT_, amd/*, etc.), and the new .gitignore excludes PHI dirs (*_raw_phi/, rc_archive/, cohort_analysis/).
  • No secrets observed in diff. Config paths are read from env-overridable JSON files outside the repo.

Suggested fix

Re-point the 4 subagent files to gpt-5.4 (or whichever real model was intended), force-push the corrected commit, and merge.

Leaving PR open pending the model-id fix.

# Conflicts:
#	.gitignore
#	package-lock.json
#	package.json
#	packages/exult-mcp/advancedmd-xmlrpc/server.py
#	packages/gbharg-auto-review/src/github.ts
#	packages/gbharg-auto-review/src/runner.ts
@gbharg gbharg merged commit 9430650 into main May 23, 2026
1 check passed
@gbharg gbharg deleted the feat/rc-frontoffice-optimization-2026-04-12 branch May 23, 2026 07:38
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.

1 participant