Skip to content

feat: add multi-client support and onboarding skills#19

Draft
vahidlazio wants to merge 17 commits into
mainfrom
ai-onboarding
Draft

feat: add multi-client support and onboarding skills#19
vahidlazio wants to merge 17 commits into
mainfrom
ai-onboarding

Conversation

@vahidlazio

Copy link
Copy Markdown
Collaborator

Summary

  • Add plugin manifests for Cursor (.cursor-plugin/), Codex (.codex-plugin/), and Gemini CLI (gemini-extension.json + GEMINI.md)
  • Add x-confidence-mcp-consumer: plugin tracking header to MCP config
  • Add onboard-confidence skill and command for account creation and user onboarding
  • Add migrate-optimizely skill and command for Optimizely-to-Confidence migration
  • Update README with multi-client installation instructions and supported clients table

Test plan

  • claude plugin validate passes
  • Test plugin locally with claude --plugin-dir .
  • Verify Cursor loads MCP servers from .cursor/mcp.json manual config
  • Verify Gemini CLI installs extension from repo
  • Test /confidence:onboard-confidence skill
  • Test /confidence:migrate-optimizely skill

🤖 Generated with Claude Code

vahidlazio and others added 17 commits June 9, 2026 14:04
Expand the plugin to support Cursor, Codex, and Gemini CLI alongside
Claude Code. Add onboard-confidence and migrate-optimizely skills
and commands.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Keep this branch focused on onboarding skill and multi-client support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Snowflake, Databricks, and Redshift query support in the
data pipeline verification step. Previously only BigQuery was covered.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Report exact error messages from the warehouse validation API instead
of optimistically splitting them into "works" + "but". Adds
Snowflake-specific remediation guidance for auth and permission errors.

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

- Warehouse create: body is the object directly, not wrapped in dataWarehouse key
- Connectors: body is the object directly, not wrapped in flagAppliedConnection/eventConnection
- Assignment table: body is the object directly, not wrapped in assignmentTable
- Snowflake connectors require database and schema fields in snowflakeConfig
- Pipeline verify step now lists clients and lets user pick before creating credentials
- Snowflake remediation generates SQL and copies to clipboard

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Users don't know what a crypto key reference is. The skill now:
- Creates the crypto key via IAM API automatically
- Extracts the public key and generates ALTER USER SQL
- Copies the SQL to clipboard for the user to run in Snowflake
- Generates CREATE DATABASE/SCHEMA SQL if needed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each config field now explains what it is, where to find it in the
warehouse UI, and what to do if it doesn't exist yet. Covers
BigQuery, Snowflake, Databricks, and Redshift.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Note that validate endpoint only supports BigQuery and Snowflake
- Databricks connectors need connectionConfig wrapper + batchFileConfig
- Skip validation for Databricks/Redshift and go straight to create

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

Tested every field name variation — the validate endpoint genuinely
only supports BigQuery and Snowflake. Skill now explains this honestly
rather than silently skipping.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Connector returns 500 even with valid credentials (verified OAuth
directly). Note as known issue and suggest contacting support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root cause found in logs: IllegalArgumentException "S3BucketConfig needs
to be set". Databricks connectors batch-write to S3 then load into
Databricks. Added s3BucketConfig (bucket, region, roleArn) to connector
format and Step 2 config collection.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Explains upfront that Databricks requires AWS S3 staging bucket,
Databricks admin access, and a schema. Walks through each step with
exact UI paths, commands, and explains why each piece is needed.
Covers trust policy errors and Unity Catalog vs hive_metastore.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Skill can now create S3 bucket, IAM role, and trust policy
automatically via aws CLI. Falls back to manual console steps
if aws CLI not available.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three bugs found during Databricks testing:
1. accounts.google.com:email rejected by AWS ("requires application id")
2. accounts.google.com:sub with email string accepted but fails at
   runtime ("Not authorized to perform sts:AssumeRoleWithWebIdentity")
3. Only accounts.google.com:sub with the numeric unique ID works

Skill now fetches numeric ID via gcloud and documents the pitfall.
Also: write aws credentials directly instead of interactive configure,
install awscli via brew if missing, open console for login.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Data flows via GCS not S3 (S3 is fallback), fixed flow diagram
- Added ~5 min batch delay warning
- Databricks verification now uses SQL Statement API directly
  instead of just showing queries for the user to run
- Removed stale "known backend issue" — pipeline works end-to-end

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Ask one question at a time, confirm before moving on
- Explain every field in plain language with exact UI paths
- Service principal: full step-by-step with fallback for non-admins
- S3 staging: explain the "mailbox" metaphor for why it's needed
- Schema: detect Unity Catalog vs hive_metastore, copy SQL to clipboard
- Accurate data flow explanation (GCS staging, 5-min batches)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Verified S3 bucket has parquet files: assignments and events staged
there before Databricks COPY INTO. Actual flow is:
Confidence → S3 bucket (customer) → Databricks tables.
GCS is internal only. Removed contradictory "GCS primary" claim.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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