Gmail Inbox Watcher
googleworkspace/cli
Streams new Gmail messages as NDJSON from the gws command line tool using Google Pub/Sub, with label filters, batch settings and optional per-message files.
Agent skill
by GoogleCloudPlatform in GoogleCloudPlatform/spanner-migration-tool
This skill provides comprehensive architectural instructions for agents to safely implement entirely new database source engines into the Spanner Migration Tool (SMT).
$ npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GoogleCloudPlatform/spanner-migration-tool add-source-support-smt --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/spanner-migration-tool.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/add-source-support-smt .claude/skills/add-source-support-smt && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-source-support-smt" agent skill from https://github.com/GoogleCloudPlatform/spanner-migration-tool/tree/master/.agents/skills/add-source-support-smt into .claude/skills/add-source-support-smt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-source-support-smt", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GoogleCloudPlatform/spanner-migration-tool/tree/master/.agents/skills/add-source-support-smtType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GoogleCloudPlatform/spanner-migration-tool add-source-support-smt --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/spanner-migration-tool.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/add-source-support-smt .agents/skills/add-source-support-smt && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-source-support-smt" agent skill from https://github.com/GoogleCloudPlatform/spanner-migration-tool/tree/master/.agents/skills/add-source-support-smt into .agents/skills/add-source-support-smt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-source-support-smt", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GoogleCloudPlatform/spanner-migration-tool add-source-support-smt --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/spanner-migration-tool.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/add-source-support-smt .cursor/skills/add-source-support-smt && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-source-support-smt" agent skill from https://github.com/GoogleCloudPlatform/spanner-migration-tool/tree/master/.agents/skills/add-source-support-smt into .cursor/skills/add-source-support-smt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-source-support-smt", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GoogleCloudPlatform/spanner-migration-tool.git --path .agents/skills/add-source-support-smt--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GoogleCloudPlatform/spanner-migration-tool add-source-support-smt --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/spanner-migration-tool.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/add-source-support-smt .gemini/skills/add-source-support-smt && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-source-support-smt" agent skill from https://github.com/GoogleCloudPlatform/spanner-migration-tool/tree/master/.agents/skills/add-source-support-smt into .gemini/skills/add-source-support-smt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-source-support-smt", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GoogleCloudPlatform/spanner-migration-tool add-source-support-smtInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/spanner-migration-tool.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/add-source-support-smt .github/skills/add-source-support-smt && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-source-support-smt" agent skill from https://github.com/GoogleCloudPlatform/spanner-migration-tool/tree/master/.agents/skills/add-source-support-smt into .github/skills/add-source-support-smt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-source-support-smt", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GoogleCloudPlatform/spanner-migration-tool add-source-support-smt --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/spanner-migration-tool.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/add-source-support-smt .opencode/skills/add-source-support-smt && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-source-support-smt" agent skill from https://github.com/GoogleCloudPlatform/spanner-migration-tool/tree/master/.agents/skills/add-source-support-smt into .opencode/skills/add-source-support-smt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-source-support-smt", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-source-support-smtThis skill provides comprehensive architectural instructions for agents to safely implement entirely new database source engines into the Spanner Migration Tool (SMT).
Add Source Support Smt is an agent skill from GoogleCloudPlatform/spanner-migration-tool. This skill provides comprehensive architectural instructions for agents to safely implement entirely new database source engines into the Spanner Migration Tool (SMT). It depends on user-provided data-type and feature mapping matrices for adding source support on SMT.
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Google Cloud. The repository describes itself as: Spanner migration tool helps you migrate from your existing database/dump files to Spanner. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 345e09c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add Source Support Smt loads about 4.2k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 2,050 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from GoogleCloudPlatform/spanner-migration-tool at commit 345e09c, republished under its Apache-2.0 licence (© GoogleCloudPlatform). 2,050 words, ~4,176 tokens.
.claude/skills/add-source-support-smt/SKILL.md (or your agent's skills folder).Description: This skill provides comprehensive, step-by-step instructions for an agent or LLM to implement end-to-end support for a new database engine in the Spanner Migration Tool.
Adding a new database requires two main phases:
[!TIP] Incremental Validation (Fail Fast): Always run
go build ./...andgo test ./...incrementally after implementing new components, rather than waiting for Phase 3. This catches test suite panics (like forgettingflag.Parse()calls beforetesting.Short()) before they cascade into the final deliverable!
CRITICAL HALT RULE: Before writing any code, check if the user provided ALL of the following: a data-type mapping matrix file, a feature support matrix file, and a testing environment setup path (e.g., testing_execution.env). If the user did not provide these files and test credentials, you must STOP execution immediately and politely ask the user to provide them before proceeding. If the user does not have the mapping files, advise them to formally execute the source-baseline-matrix-research-skill to generate baseline mapping files, upon which the user can perform their own research to update and achieve the final mapping files. Do not proceed blind; physical End-to-End validation is strictly required. Do not create your own files as the user's provided files are your Absolute Ground Truth.
Analyze input files: Read the Mapping Matrix (containing GoogleSQL and PostgreSQL Dialect mapping structures, including both Default and Alternative assignments) and the Feature Matrix (outlining what system features the target database supports).
Sample Structures and Header Validation: You MUST strictly validate that the column headers in the user's provided matrices identically match the structural header layouts found in the official SMT MySQL samples. If the user's matrices are missing required columns (e.g., missing specific PostgreSQL edge case columns), you must halt and require the user to structurally fix their inputs using these templates:
https://github.com/GoogleCloudPlatform/spanner-migration-tool/blob/master/.agents/skills/source_research_helper/sampleOutput/mysql_datatype_mapping_matrix.csvhttps://github.com/GoogleCloudPlatform/spanner-migration-tool/blob/master/.agents/skills/source_research_helper/sampleOutput/mysql_feature_mapping_matrix.csvThe agent must look for a testing_execution.env file in the workspace root with the following schema:
REMOTE_WORKSPACE_PATH=
REMOTE_EXEC_TEMPLATE=
REMOTE_SYNC_TEMPLATE=You MUST load these variables and route any physical server commands (compilation, backend boot-up, UI server) through the REMOTE_EXEC_TEMPLATE by replacing <COMMAND> with your desired command.
[!IMPORTANT] Use MySQL as your Architectural Reference: Whenever you implement a new folder or file, study how MySQL implemented it to understand the required Go structs and SMT API contracts. You do not need absolute functional parity (especially for non-relational databases), but you must use the MySQL directory as your primary learning model for how to satisfy the internal SMT Go interfaces.
sources/<database>/infoschema.go)Create a new directory (e.g., sources/sqlite/) and implement the common.InfoSchema interface. This interface populates the interactive UI flow.
Storage (Tables, Columns), Constraints (Foreign Keys, Primary Keys, Check constraints), Indexes (Secondary Indexes), and Identity (Sequences) categories. CRITICAL RULE: If a sub-category or feature is explicitly marked as Unsupported in the Feature Mapping Matrix, you MUST explicitly exclude it from extraction so the engine does not improperly ingest restricted definitions!internal.SchemaIssue warning so it correctly flags the user on the UI's warnings tab!GetRowCount and GetRowsFromTable. If the database has binary types that cannot be fetched natively (e.g., Spatial types, LOB locators), wrap those columns in appropriate conversion functions (e.g., ST_AsText(col)) inside your SELECT queries.assessment/sources/<database>/infoschema.go)SMT runs a completely independent static Risk Assessment report system. You must implement assessment/sources/common.go (InfoSchema).
Views, Stored Procedures, Functions, and Triggers.TriggerAssessmentInfo, FunctionAssessmentInfo, ViewAssessmentInfo, etc. structs. This guarantees the Risk Assessment report accurately flags unsupported lines of code.toddl.go)Implement the common.ToDdl interface, primarily the ToSpannerType method, adhering strictly to your Mapping Matrix ground truth.
dialect flag). You must implement distinct translation logic for both the GoogleSQL mappings and PostgreSQL Dialect mappings documented in the user's mapping file.TIMESTAMP(6)). The translator must preemptively use a regex to strip numerical strings before routing the base type to internal switch evaluators to prevent translation panics!internal.SchemaIssue (e.g., internal.Widened, internal.PossibleOverflow, internal.Datetime).ddl.String and attach the internal.NoGoodType warning.spType parameter to toSpannerTypeInternal represents a user-requested alternative Spanner type (e.g., from the UI). You MUST implement nested switch statements for every type to explicitly evaluate coercions (e.g., casting INT64 to STRING) and return internal.Widened where applicable. CRITICAL: Do NOT simply ignore spType and return the default type, as this permanently breaks the UI's Type Override Dropdown!GetColumnAutoGen to translate the database's auto-increment mechanisms (like sequences or identity columns).internal/mapping.go. If your new database does not support certain advanced migration features (like foreign key ON DELETE or ON UPDATE actions), you must document it in this file by adding the database to the comments and logic handling unsupported sources.common/constants/constants.go and add a new constant representing your database driver.proto/migration_data.proto and assign a new enum ID for the database within MigrationData_Source. CRITICAL RULE: Do NOT manually edit the generated proto/migration/migration_data.pb.go file to match this enum. Modifying generated .pb.go structs without using protoc directly breaks Go's internal checks and will cause fatal runtime panics (panic: non-contiguous repeated field). If you cannot run protoc, route new database connections to use MigrationData_SOURCE_UNSPECIFIED for telemetry tracking instead.profiles/ module)This defines how SMT connects to the database. You must handle the specific connection paradigm of your source.
profiles/source_profile.go. Add a struct representing your connection parameters. NewSourceProfileConnection... method. Throw clear fmt.Errorf errors if required fields are missing. CRITICAL: When parsing maps, always ensure string parameters are not blank (value != "") in addition to checking dictionary key existence. Add your type to the SourceProfileConnection wrapper and the master switch statement.profiles/common.go. Implement a method (e.g., getSQLITEConnectionStr) that builds the specific Go driver Data Source Name string. Add it to the main GetConnectionStr switch case.profiles/source_profile_test.go and add unit tests validating your connection parser.profiles/common_test.go and add unit tests validating your DSN builder.common/metrics/metrics.go and add your database to getMigrationDataSourceDetails so metrics are categorized correctly.conversion/get_info.go. Import the standard Go driver for your database. Add a new case to GetInfoSchema to implement sql.Open and return your InfoSchemaImpl.conversion/conversion.go and conversion/conversion_helper.go. Add your database to the switch cases in SchemaConv, DataConv, and connection string builders. CRITICAL: Explicitly add your logic to the ConnectionConfig router; if your database is a non-SQL HTTP source that lacks a Data Source Name string, ensure you return an explicit empty string bypass there to avoid falsely triggering a "driver not supported" fallback error. Update tests in conversion/conversion_test.go.webv2/web.go. Add a case for your driver inside createDatabaseConnectionString to route the UI request to the profile builder.webv2/web_test.go. Add corresponding unit tests to verify your new route returns the correct connection constants.webv2/api/schema.go and webv2/utilities/get_type.go to expose your type translator to the frontend. CRITICAL: You must manually populate [database]TypeMap and [database]DefaultTypeMap inside initializeTypeMap(). If you skip this, the UI dropdowns will silently render entirely blank!webv2/helpers/helpers.go to include your database in GetSourceDatabaseFromDriver, and update helpers_test.go.The UI needs explicit configuration to show your new source. Open the frontend components and search for lists like dbEngineList or dbEngines to append your database.
ui/src/app/app.constants.ts: Add your database to the SourceDbNames enum and any feature support lists (like identitySupportedDbs).ui/src/app/utils/utils.ts: Update extractSourceDbName so the UI correctly parses the backend database name.ui/src/app/components/load-session/load-session.component.ts: Add to the dropdown lists.ui/src/app/components/direct-connection/direct-connection.component.ts: Add to the direct connection form array.ui/src/app/components/prepare-migration/prepare-migration.component.ts: Update the ngOnInit conditions that check res.DatabaseType to ensure your database is recognized and allowed to proceed.ui/src/app/components/home/home.component.html: Update the landing page text description to explicitly list your new database as a supported source.ui/src/app/components/object-detail/object-detail.component.ts: Update the conditional rendering logic (e.g., if (this.srcDbName == ...)) to ensure advanced object details are displayed correctly for your source.ui/src/app/components/add-new-column/add-new-column.component.ts: Add your database to autoGenSupportedDbs if it supports auto-increment columns..spec.ts files (e.g., utils.spec.ts, load-session.component.spec.ts, direct-connection.component.spec.ts) and Cypress E2E tests (ui/cypress/e2e/spec.cy.ts) to validate the new constants and dropdowns.grep_search or similar) for usages of constants.MYSQL (in the Go backend) and SourceDbNames.MySQL (in the Angular frontend).sources/<database>/toddl_test.go and mock scraping metadata via sources/<database>/infoschema_test.go. Ensure explicit tests exist for backend Web API endpoints (like asserting /typemaps JSON renders correctly).go build ./.... Ensure there are no undeclared variables or unused imports.[database]_implementation_report.md) detailing the implementation. Include:add-source-e2e-integ-test-smt skill via a new agent to structurally build the Integration Tests and perform the Live QA E2E validation.© GoogleCloudPlatform, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/add-source-support-smt of GoogleCloudPlatform/spanner-migration-tool.
Open the folder on GitHubat commit 345e09c
Add Source Support Smt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add Source Support Smt this skillGoogleCloudPlatform/spanner-migration-tool | 155 | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Gmail Inbox Watchergoogleworkspace/cli | 31k | 1 repos | ~476 | Automated safety check: Pass | Apache-2.0 | |
| Cloud Cost Optimizationwshobson/agents | 40k | 14 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 260 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence | |
| Terravision Cloud Diagramspatrickchugh/terravision | 1.6k | — | ~5.6k | Automated safety check: Notes | AGPL-3.0-only | |
| Thesvgglincker/thesvg | 2.8k | — | ~1.5k | Automated safety check: Pass | MIT |
googleworkspace/cli
Streams new Gmail messages as NDJSON from the gws command line tool using Google Pub/Sub, with label filters, batch settings and optional per-message files.
wshobson/agents
Cuts cloud spend across AWS, Azure, GCP and OCI with cost tagging, rightsizing, commitment and spot pricing models, and architecture changes.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
patrickchugh/terravision
Draw cloud architecture diagrams for AWS, Azure or GCP with the official provider icon sets, using TerraVision.
glincker/thesvg
Fetch brand SVG logos and cloud architecture icons (AWS, Azure, GCP) from theSVG.
Kiln-AI/Kiln
Check Kiln's model list for deprecated or sunset models across all providers.
GoogleCloudPlatform/spanner-migration-tool
Skill for independently generating Integration Tests and performing End-to-End QA validation for newly added Spanner Migration Tool database sources.
GoogleCloudPlatform/spanner-migration-tool
Skill for helping achieve datatype and feature mapping matrix for any source against spanner.
Works with
This skill provides comprehensive architectural instructions for agents to safely implement entirely new database source engines into the Spanner Migration Tool (SMT). Add Source Support Smt is an agent skill from GoogleCloudPlatform/spanner-migration-tool. This skill provides comprehensive architectural instructions for agents to safely implement entirely new database source engines into the Spanner Migration Tool (SMT).
Run `npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a claude-code`. Or copy the skill folder (.agents/skills/add-source-support-smt in GoogleCloudPlatform/spanner-migration-tool) into .claude/skills/add-source-support-smt in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a codex`. Or copy the skill folder (.agents/skills/add-source-support-smt in GoogleCloudPlatform/spanner-migration-tool) into .agents/skills/add-source-support-smt in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GoogleCloudPlatform/spanner-migration-tool --skill add-source-support-smt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-source-support-smt, .gemini/skills/add-source-support-smt, .github/skills/add-source-support-smt and .opencode/skills/add-source-support-smt in your project.
Going by SKILL.md and its folder, Add Source Support Smt needs the command-line tools its instructions call (go).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Add Source Support Smt is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add Source Support Smt: Gmail Inbox Watcher (googleworkspace/cli, 31k stars), Cloud Cost Optimization (wshobson/agents, 40k stars), Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 260 stars) and Terravision Cloud Diagrams (patrickchugh/terravision, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GoogleCloudPlatform (a GitHub organization) maintains it in GoogleCloudPlatform/spanner-migration-tool, which has 155 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.
Source: GoogleCloudPlatform/spanner-migration-tool on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.