You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Give a new contributor everything needed to independently develop, test,
document, and provide completion evidence for:
The BQAA Grafana dashboard.
The BQAA Claude Code tracing plugin.
Use only synthetic data and an approved non-production GCP project. Production
data, production credentials, repository administration, and release secrets
are out of scope for the contributor.
The remaining assignment should focus on clean-environment validation,
documentation corrections, defects found during testing, evidence, and
tracker closure—not rebuilding the dashboard.
Claude Code plugin
The hook implementation, plugin build, and in-repository marketplace exist.
Inside Claude Code, run /bqaa-setup, then submit a harmless test prompt and
verify the dry-run log and spool behavior. The plugin must never break the
Claude Code session when tracing fails.
B6. Run the BigQuery smoke test
The test identity requires:
roles/bigquery.dataEditor on the destination dataset.
roles/bigquery.user on the project.
roles/bigquery.metadataViewer on the dataset when auto-creating the table.
Use a pre-created dataset where possible. Disable dry-run, launch a fresh Claude
Code session, run /bqaa-setup, and submit one harmless prompt.
Verify rows:
SELECT
event_type,
JSON_VALUE(attributes, '$.writer.version') AS writer_version,
JSON_VALUE(attributes, '$.writer.label') AS writer_label,
agent,
timestampFROM`TEST_PROJECT.TEST_DATASET.agent_events`WHERE agent ='vendor-plugin-smoke'ORDER BYtimestampDESCLIMIT20;
Expected:
Hook rows arrive.
writer_version matches the built artifact and is not 0.0.0+local.
Only one BQAA plugin installation is active; duplicate installations cause
duplicate telemetry.
Setting BQAA_TRACE_ENABLED=false and restarting Claude Code produces no new
rows and no agent error.
B7. Validate the marketplace path
Before testing, run /plugin list and remove or disable older BQAA plugin
installations.
The authoritative operator checklist is #353.
The contributor may prepare artifacts, smoke evidence, and PRs, but a designated
Google maintainer must perform and record privileged steps.
Overall definition of done
Contributor can reproduce both components from a clean checkout.
Automated tests and strict manifest validation pass.
Grafana works locally with synthetic data.
Grafana public-demo safety is verified in an incognito session.
Claude plugin produces correctly versioned test rows.
Claude plugin kill switch works.
No credentials or production data are committed or exposed.
Documentation is accurate for a first-time user.
All contributor-executable evidence is attached.
Maintainer-only blockers are explicitly handed to an owner.
Parent trackers are reconciled and closed or narrowed.
Goal
Give a new contributor everything needed to independently develop, test,
document, and provide completion evidence for:
Use only synthetic data and an approved non-production GCP project. Production
data, production credentials, repository administration, and release secrets
are out of scope for the contributor.
Current state (2026-09-04)
Grafana
documentation corrections, defects found during testing, evidence, and
tracker closure—not rebuilding the dashboard.
Claude Code plugin
plugins/claude_code/is the plugin wrapper and documentation.
producers/src/bigquery_agent_analytics_tracing/.Do not implement Python behavior in a generated plugin copy.
0.2.0, while the checked-in marketplacedistribution is still
0.1.0.#349
and the canonical operator checklist in
#353.
Maintainer: complete before assigning work
@<handle>.@<owner>.@<reviewer>.operating the
0.2.0release.tickets out of this public issue.
Shared workstation requirements
The contributor needs:
gcloudandbq.Start with:
Read before contributing:
Workstream A — Grafana dashboard
A1. Learn the component
Read these in order:
Important concepts:
queries/*.sqlis the source of truth.Constantvariables.the half-open 72-hour limit.
A2. Obtain test resources
Required:
Grafana for initial work.
For local ADC:
gcloud auth application-default login gcloud config set project TEST_PROJECTFor a Grafana service account:
roles/bigquery.jobUseron the query project.roles/bigquery.dataVieweron the test dataset only.References:
A3. Create safe test data
Verify that the table is non-empty and recent:
A4. Run and inspect the dashboard locally
Verify:
MaxBytesBilledlimit.Stop the local instance afterward:
A5. Make and validate changes
When changing a panel:
.sqlfile.scripts/check_grafana_queries_sync.py.queries/public-demo/.Run:
Both must pass before opening a PR.
A6. Validate public sharing
Use only a dedicated synthetic dataset. Verify in an incognito/logged-out
browser:
sensitive error messages appear.
Do not post a sensitive public dashboard URL in this issue.
A7. Grafana completion evidence
Post:
Done when the maintainer reconciles this evidence with #339 and closes or
narrows that tracker.
Workstream B — Claude Code tracing plugin
B1. Learn which files are source and which are generated
Read:
/bqaa-setupcommandRules:
producers/src/bigquery_agent_analytics_tracing/.plugins/claude_code/vendor/is generated and gitignored. Never edit itmanually.
plugins/claude_code_dist/is a released artifact, not canonical source.0.0.0+localin the source manifest is intentional; the build stamps therelease version.
manifest and generates vendor files.
B2. Install development dependencies
Required:
google-cloud-bigquery.google-cloud-bigquery-storageandpyarrowfor the preferred Storage Writepath.
References:
B3. Run automated checks
cd producers isort --check-only src/ tests/ scripts/ pyink --check src/ tests/ scripts/ python3 -m pytest -qFor focused plugin work, at minimum run:
B4. Build and validate the plugin artifact
Follow the same sequence as CI:
Inspect the generated tarball and confirm it contains:
.claude-plugin/plugin.jsonwith the release version.common.sh.commands/bqaa-setup.md.scripts/run_setup_check.sh..dist-info/METADATA.__pycache__,.pyc, credentials, or local configuration.B5. Test safely before connecting BigQuery
Start with dry-run mode:
Inside Claude Code, run
/bqaa-setup, then submit a harmless test prompt andverify the dry-run log and spool behavior. The plugin must never break the
Claude Code session when tracing fails.
B6. Run the BigQuery smoke test
The test identity requires:
roles/bigquery.dataEditoron the destination dataset.roles/bigquery.useron the project.roles/bigquery.metadataVieweron the dataset when auto-creating the table.Use a pre-created dataset where possible. Disable dry-run, launch a fresh Claude
Code session, run
/bqaa-setup, and submit one harmless prompt.Verify rows:
Expected:
writer_versionmatches the built artifact and is not0.0.0+local.duplicate telemetry.
BQAA_TRACE_ENABLED=falseand restarting Claude Code produces no newrows and no agent error.
B7. Validate the marketplace path
Before testing, run
/plugin listand remove or disable older BQAA plugininstallations.
Validate the current Git-based install path:
Add the marketplace using
owner/repository, not a direct URL tomarketplace.json, because its plugin source is a relative repository path.For a
0.2.0release, repeat this smoke only after the checked-in distributionand catalog have been refreshed from the final built artifact.
B8. Claude Code completion evidence
Post:
claude plugin validate --strictoutput./bqaa-setupREADY result.Google-maintainer-only actions
Do not assign these actions to the contributor unless they explicitly have the
required authority:
tracing-testpypi,tracing-pypi, andrelease-promote.tracing-v0.2.0tag.included.
The authoritative operator checklist is
#353.
The contributor may prepare artifacts, smoke evidence, and PRs, but a designated
Google maintainer must perform and record privileged steps.
Overall definition of done