[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-cline-dsql":3,"mdc-vq1g9z-key":36,"related-repo-cline-dsql":2467,"related-org-cline-dsql":2588},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"dsql","build applications with Aurora DSQL","Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, FK replacement code generation, OCC retry patterns, ORM migration (Django\u002FHibernate\u002FRails), DDL operations, query plan explainability, SQL compatibility validation, and bulk data loading. Triggers on phrases like: DSQL, Aurora DSQL, distributed SQL database, serverless PostgreSQL-compatible database, migrate to DSQL, DSQL query plan, DSQL EXPLAIN ANALYZE, DSQL ENUM, DSQL foreign key, DSQL OCC retry, DSQL multi-region, DSQL JSONB, DSQL GIN index, load into DSQL, load CSV into DSQL, bulk load DSQL, aurora-dsql-loader.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"cline","Cline","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcline.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Database","database","tag",{"name":17,"slug":18,"type":15},"SQL","sql",{"name":20,"slug":21,"type":15},"Serverless","serverless",{"name":23,"slug":24,"type":15},"Aurora","aurora",10,"https:\u002F\u002Fgithub.com\u002Fcline\u002Fskills","2026-07-12T08:13:17.976886","Apache-2.0",4,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"A collection of skills used at Cline","https:\u002F\u002Fgithub.com\u002Fcline\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fdsql","---\nname: dsql\ndescription: \"Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, FK replacement code generation, OCC retry patterns, ORM migration (Django\u002FHibernate\u002FRails), DDL operations, query plan explainability, SQL compatibility validation, and bulk data loading. Triggers on phrases like: DSQL, Aurora DSQL, distributed SQL database, serverless PostgreSQL-compatible database, migrate to DSQL, DSQL query plan, DSQL EXPLAIN ANALYZE, DSQL ENUM, DSQL foreign key, DSQL OCC retry, DSQL multi-region, DSQL JSONB, DSQL GIN index, load into DSQL, load CSV into DSQL, bulk load DSQL, aurora-dsql-loader.\"\nlicense: Apache-2.0\nmetadata:\n  tags: aws, aurora, dsql, distributed-sql, distributed, distributed-database, database, serverless, serverless-database, postgresql, postgres, sql, schema, migration, multi-tenant, iam-auth, aurora-dsql, mcp, orm, enum, foreign-key, occ-retry, django, hibernate, rails, multi-region, schema-conversion, type-mapping, data-loading\n---\n\n# Amazon Aurora DSQL Skill\n\nAurora DSQL is a serverless, PostgreSQL-compatible distributed SQL database. This skill covers direct query execution via MCP tools, schema management, migrations, multi-tenant isolation, IAM auth, and bulk data loading via `aurora-dsql-loader`.\n\n---\n\n## Reference Files\n\nLoad these files as needed for detailed guidance:\n\n### Core:\n\n| Reference                                                 | When to Load                                        | Contains                                                                                   |\n| --------------------------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------ |\n| [development-guide.md](references\u002Fdevelopment-guide.md)   | ALWAYS before schema changes or DB operations       | Best practices, DDL rules, transaction limits, app-layer referential integrity             |\n| [language.md](references\u002Flanguage.md)                     | MUST load for language-specific choices             | Driver selection, DSQL Connectors, connection code                                         |\n| [access-control.md](references\u002Faccess-control.md)         | MUST load for roles, grants, or sensitive data      | Scoped role setup, IAM-to-database role mapping                                            |\n| [troubleshooting.md](references\u002Ftroubleshooting.md)       | SHOULD load for errors or unexpected behavior       | OCC errors, connection failures, cluster state errors, token expiry, DDL rejection causes  |\n| [dsql-examples.md](references\u002Fdsql-examples.md)           | Load for implementation examples                    | Multi-tenant schema examples, batch operations, FK validation patterns, connection pooling |\n| [onboarding.md](references\u002Fonboarding.md)                 | User requests \"Get started with DSQL\"               | Interactive step-by-step guide                                                             |\n| [occ-retry-patterns.md](references\u002Focc-retry-patterns.md) | MUST load for OCC retry code or conflict mitigation | DSQL Connectors, manual retry pattern, idempotent design                                   |\n\n### MCP:\n\n| Reference                               | When to Load                                                    | Contains                                                           |\n| --------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------ |\n| [mcp-setup.md](mcp\u002Fmcp-setup.md)        | Always for MCP server guidance                                  | Setup instructions, 2 configuration options                        |\n| [mcp-tools.md](mcp\u002Fmcp-tools.md)        | For MCP tool syntax and examples                                | Tool parameters, [input validation](mcp\u002Ftools\u002Finput-validation.md) |\n| [dsql-lint.md](references\u002Fdsql-lint.md) | MUST load before running `dsql_lint` or processing external SQL | Tool reference, fix statuses, unfixable error resolution           |\n\n### DDL Migrations:\n\n| Reference                                                                                     | When to Load                                           | Contains                                |\n| --------------------------------------------------------------------------------------------- | ------------------------------------------------------ | --------------------------------------- |\n| [ddl-migrations\u002Foverview.md](references\u002Fddl-migrations\u002Foverview.md)                           | MUST load for DROP COLUMN, ALTER TYPE, DROP CONSTRAINT | Table recreation pattern, verify & swap |\n| [ddl-migrations\u002Fcolumn-operations.md](references\u002Fddl-migrations\u002Fcolumn-operations.md)         | DROP COLUMN, ALTER TYPE, SET\u002FDROP NOT NULL\u002FDEFAULT     | Column-level migration patterns         |\n| [ddl-migrations\u002Fconstraint-operations.md](references\u002Fddl-migrations\u002Fconstraint-operations.md) | ADD\u002FDROP CONSTRAINT, MODIFY PRIMARY KEY                | Constraint and structural changes       |\n| [ddl-migrations\u002Fbatched-migration.md](references\u002Fddl-migrations\u002Fbatched-migration.md)         | Tables exceeding 3,000 rows                            | Batching patterns, progress tracking    |\n\n### MySQL Migrations:\n\n| Reference                                                                           | When to Load                         | Contains                                 |\n| ----------------------------------------------------------------------------------- | ------------------------------------ | ---------------------------------------- |\n| [mysql-migrations\u002Ftype-mapping.md](references\u002Fmysql-migrations\u002Ftype-mapping.md)     | MUST load for MySQL → DSQL migration | Data type mappings, feature alternatives |\n| [mysql-migrations\u002Fddl-operations.md](references\u002Fmysql-migrations\u002Fddl-operations.md) | Translating MySQL DDL to DSQL        | AUTO_INCREMENT, ENUM, SET, FK patterns   |\n| [mysql-migrations\u002Ffull-example.md](references\u002Fmysql-migrations\u002Ffull-example.md)     | Complete MySQL table migration       | End-to-end example with decision summary |\n\n### PostgreSQL Migrations:\n\n| Reference                                                                         | When to Load                                                     | Contains                                           |\n| --------------------------------------------------------------------------------- | ---------------------------------------------------------------- | -------------------------------------------------- |\n| [pg-migrations\u002Ftype-mapping.md](references\u002Fpg-migrations\u002Ftype-mapping.md)         | MUST load for PG → DSQL type questions                           | C collation rules, NUMERIC precision, JSON\u002FJSONB   |\n| [pg-migrations\u002Ffk-replacement.md](references\u002Fpg-migrations\u002Ffk-replacement.md)     | MUST load for FK validation code generation                      | Tenant-scoped validate_fk_*() template, cascade    |\n| [pg-migrations\u002Findex-conversion.md](references\u002Fpg-migrations\u002Findex-conversion.md) | MUST load for unfixable index diagnostics                        | GIN\u002FGiST\u002FBRIN → btree, partial, expression indexes |\n| [pg-migrations\u002Fschema-objects.md](references\u002Fpg-migrations\u002Fschema-objects.md)     | MUST load for ENUM, materialized views, extensions, multi-schema | ENUM → CHECK, views, role\u002FIAM mapping              |\n| [pg-migrations\u002Fmulti-region.md](references\u002Fpg-migrations\u002Fmulti-region.md)         | Multi-region, active-active, or HA questions                     | Architecture, geographic partitioning              |\n\n### ORM Guides:\n\n| Reference                                                   | When to Load              | Contains                                                         |\n| ----------------------------------------------------------- | ------------------------- | ---------------------------------------------------------------- |\n| [orm-guides\u002Foverview.md](references\u002Form-guides\u002Foverview.md) | Migrating any ORM to DSQL | Adapter names, key gotchas for Django\u002FHibernate\u002FRails\u002FSQLAlchemy |\n\n### Data Loading:\n\n| Reference                                     | When to Load                                             | Contains                                                                                  |\n| --------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------- |\n| [data-loading.md](references\u002Fdata-loading.md) | Planning or running bulk loads with `aurora-dsql-loader` | Fresh-vs-warm partitions, resume\u002Fretry, `--on-conflict` semantics, throughput diagnostics |\n\n### Query Plan Explainability:\n\n| Reference                                                                         | When to Load                    | Contains                                                                  |\n| --------------------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------- |\n| [query-plan\u002Fplan-interpretation.md](references\u002Fquery-plan\u002Fplan-interpretation.md) | MUST load at Workflow 9 Phase 0 | DSQL node types, Node Duration math, estimation-error bands               |\n| [query-plan\u002Fcatalog-queries.md](references\u002Fquery-plan\u002Fcatalog-queries.md)         | MUST load at Workflow 9 Phase 0 | `pg_class`\u002F`pg_stats`\u002F`pg_indexes` SQL, correlated-predicate verification |\n| [query-plan\u002Fguc-experiments.md](references\u002Fquery-plan\u002Fguc-experiments.md)         | MUST load at Workflow 9 Phase 0 | GUC experiment procedures, 30-second skip protocol                        |\n| [query-plan\u002Freport-format.md](references\u002Fquery-plan\u002Freport-format.md)             | MUST load at Workflow 9 Phase 0 | Required report structure, element checklist, support request template    |\n\n---\n\n## MCP Tools Available\n\nThe `aurora-dsql` MCP server provides these tools:\n\n**Database Operations:**\n\n1. **readonly_query** - Execute SELECT queries (returns list of dicts)\n2. **transact** - Execute DDL\u002FDML statements in transaction (takes list of SQL statements)\n3. **get_schema** - Get table structure for a specific table\n\n**SQL Validation:**\n\n1. **dsql_lint** - Validate SQL for DSQL compatibility and optionally auto-fix issues. Use before executing externally-sourced SQL.\n\n**Documentation & Knowledge:**\n\n1. **dsql_search_documentation** - Search Aurora DSQL documentation\n2. **dsql_read_documentation** - Read specific documentation pages\n3. **dsql_recommend** - Get DSQL best practice recommendations\n\n**Note:** There is no `list_tables` tool. Use `readonly_query` with information_schema.\n\nSee [mcp-setup.md](mcp\u002Fmcp-setup.md) for detailed setup instructions.\nSee [mcp-tools.md](mcp\u002Fmcp-tools.md) for detailed usage and examples.\n\n### AWS Knowledge MCP (`awsknowledge`)\n\nConsult for verifying DSQL service limits before advising users. The numeric limits below are\ndefaults that may change — when a user's decision depends on an exact limit, verify it first:\n\n| Limit                          | Default       | Verify query                       |\n| ------------------------------ | ------------- | ---------------------------------- |\n| Max rows per transaction       | 3,000         | `aurora dsql transaction limits`   |\n| Max data size per transaction  | 10 MiB        | `aurora dsql transaction limits`   |\n| Max transaction duration       | 5 minutes     | `aurora dsql transaction limits`   |\n| Max connections per cluster    | 10,000        | `aurora dsql connection limits`    |\n| Auth token expiry              | 15 minutes    | `aurora dsql authentication token` |\n| Max connection duration        | 60 minutes    | `aurora dsql connection limits`    |\n| Max indexes per table          | 24            | `aurora dsql index limits`         |\n| Max columns per index          | 8             | `aurora dsql index limits`         |\n| IDENTITY\u002FSEQUENCE CACHE values | 1 or >= 65536 | `aurora dsql sequence cache`       |\n| Supported column data types    | See docs      | `aurora dsql supported data types` |\n\n**When to verify:** Before recommending batch sizes, connection pool settings, or schema designs where hitting a limit would cause failures; any time the exact number can affect user decision.\n\n**Fallback:** If `awsknowledge` is unavailable, use the defaults above and flag that limits should be verified against [DSQL documentation](https:\u002F\u002Fdocs.aws.amazon.com\u002Faurora-dsql\u002Flatest\u002Fuserguide\u002F).\n\n## CLI Tools\n\nUse the AWS CLI, `psql`, and `aurora-dsql-loader` directly for cluster management, SQL connections, and bulk data loading from local or S3 CSV\u002FTSV\u002FParquet files. Load [data-loading.md](references\u002Fdata-loading.md) for loader guidance.\n\n---\n\n## Quick Start\n\n1. **Explore:** Use `readonly_query` with `information_schema` to list tables. Use `get_schema` for table structure.\n2. **Query:** Use `readonly_query` for SELECT queries. **MUST** include `tenant_id` in WHERE for multi-tenant apps. **MUST** build SQL with `safe_query.build()`.\n3. **Schema changes:** Use `transact` with one DDL per transaction. **MUST** batch DML under 3,000 rows. **MUST** use `CREATE INDEX ASYNC` in a separate call. Use `dsql_lint` to validate first.\n4. **Bulk load data:** Use `aurora-dsql-loader` for CSV\u002FTSV\u002FParquet. Load [data-loading.md](references\u002Fdata-loading.md) for details. Use `--dry-run` first.\n\n---\n\n## Common Workflows\n\n### Workflow 1: Create Multi-Tenant Schema\n\n1. Create main table with tenant_id column using transact\n2. Create async index on tenant_id in separate transact call\n3. Create composite indexes for common query patterns (separate transact calls)\n4. Verify schema with get_schema\n\n- MUST include tenant_id in all tables\n- MUST use `CREATE INDEX ASYNC` exclusively\n- MUST issue each DDL in its own transact call: `transact([\"CREATE TABLE ...\"])`\n- MUST serialize arrays as JSONB; expand at query time with `jsonb_array_elements_text(data)`\n\n### Workflow 2: Safe Data Migration\n\nMUST validate every DDL with `dsql_lint(fix=true)` before executing. DML does not require linting.\n\n1. Validate DDL with `dsql_lint(sql=..., fix=true)` — handle diagnostics per [dsql-lint.md](references\u002Fdsql-lint.md)\n2. Add column: `transact([\"ALTER TABLE ... ADD COLUMN ...\"])`\n3. Populate existing rows with UPDATE (batched under 3,000 rows)\n4. Verify with readonly_query COUNT\n5. Create index if needed: validate then `transact([\"CREATE INDEX ASYNC ...\"])`\n\n- MUST issue each `ALTER TABLE` in its own `transact` call — DSQL rejects multi-DDL transactions with `multiple ddl statements not supported in a transaction`\n- MUST add column with only name and type; apply DEFAULT via separate UPDATE\n- MUST batch updates under 3,000 rows in separate transact calls\n\n**Recovery:** Resume failed batches by filtering `WHERE new_column IS NULL`.\n\n### Workflow 3: Bulk Data Loading\n\nUse `aurora-dsql-loader` for CSV, TSV, or Parquet loads. MUST load [data-loading.md](references\u002Fdata-loading.md) before advising on throughput or diagnosing slow loads.\n\n1. Validate with `--dry-run` first\n2. Run with `--manifest-dir` on persistent storage (not `\u002Ftmp` — tmpfs on AL2023, lost on crash) and `--header` if file has a header row\n3. On failure: resume with `--resume-job-id`; for duplicates use `--on-conflict do-nothing`\n4. For large tables: create secondary indexes after load using `CREATE INDEX ASYNC`\n\n### Workflow 4: Application-Layer Referential Integrity\n\n**INSERT:** MUST validate parent exists with readonly_query → throw error if not found → insert child with transact.\n\n**DELETE:** MUST check dependents with readonly_query COUNT → return error if dependents exist → delete with transact if safe.\n\n### Workflow 5: Query with Tenant Isolation\n\n1. **MUST** authorize the caller against the tenant — format validation does not establish authorization\n2. **MUST** build SQL with [`safe_query.build()`](mcp\u002Ftools\u002Fsafe_query.py) — use `allow()`\u002F`regex()` for\n   values (emits `'v'`), `ident()` for table\u002Fcolumn names (emits `\"v\"`).\n   See [input-validation.md](mcp\u002Ftools\u002Finput-validation.md)\n3. **MUST** include `tenant_id` in the WHERE clause; reject cross-tenant access at the application layer\n\n### Workflow 6: Set Up Scoped Database Roles\n\nMUST load [access-control.md](references\u002Faccess-control.md) for role setup, IAM mapping, and schema permissions.\n\n### Workflow 7: Table Recreation DDL Migration\n\nUse the **Table Recreation Pattern** for `ALTER COLUMN TYPE`, `DROP COLUMN`, `DROP CONSTRAINT`, or `MODIFY PRIMARY KEY`. This is a destructive workflow that requires user confirmation at each step. Every generated DDL in the pattern (CREATE new, INSERT ... SELECT, DROP old, RENAME) MUST be validated with `dsql_lint(sql=..., fix=true)` before execution.\n\nMUST load [ddl-migrations\u002Foverview.md](references\u002Fddl-migrations\u002Foverview.md) before attempting any of these operations.\n\n### Workflow 8: Validate and Migrate to DSQL\n\nMUST load [dsql-lint.md](references\u002Fdsql-lint.md) before running `dsql_lint`. Run `dsql_lint(sql=source_sql, fix=true)` to validate and auto-convert. For MySQL-origin SQL, MUST cross-check against [mysql-migrations\u002Ftype-mapping.md](references\u002Fmysql-migrations\u002Ftype-mapping.md) even when lint returns clean. On `parse_error`, fall back to manual conversion then re-lint.\n\n### Workflow 9: Query Plan Explainability\n\nExplains why the DSQL optimizer chose a particular plan. Triggered by slow queries, high DPU, unexpected Full Scans, or plans the user doesn't understand. **REQUIRES a structured Markdown diagnostic report as the deliverable.**\n\nMUST load all four reference files at Phase 0: [query-plan\u002Fplan-interpretation.md](references\u002Fquery-plan\u002Fplan-interpretation.md), [query-plan\u002Fcatalog-queries.md](references\u002Fquery-plan\u002Fcatalog-queries.md), [query-plan\u002Fguc-experiments.md](references\u002Fquery-plan\u002Fguc-experiments.md), [query-plan\u002Freport-format.md](references\u002Fquery-plan\u002Freport-format.md). The phase procedures (capture plan, gather evidence, experiment, produce report) are defined in those files.\n\n**Safety.** Plan capture uses `readonly_query` exclusively. Rewrite DML to SELECT for plan capture. **MUST NOT** use `transact --allow-writes` for plan capture.\n\n### Workflow 10: Full PostgreSQL → DSQL Schema Migration\n\nMUST load [pg-migrations\u002Ftype-mapping.md](references\u002Fpg-migrations\u002Ftype-mapping.md) and [pg-migrations\u002Fschema-objects.md](references\u002Fpg-migrations\u002Fschema-objects.md). Run `dsql_lint(fix=true)` first for mechanical fixes, then apply semantic conversions from the pg-migrations references for unfixable diagnostics and patterns the linter cannot handle. Re-lint the final output before deploying.\n\n### Workflow 11: ORM Migration (Django\u002FHibernate\u002FRails)\n\nLoad [orm-guides\u002Foverview.md](references\u002Form-guides\u002Foverview.md) for adapter names and framework-specific gotchas.\n\n## Error Scenarios\n\n- **`awsknowledge` returns no results:** Use the default limits in the table above and note that limits should be verified against [DSQL documentation](https:\u002F\u002Fdocs.aws.amazon.com\u002Faurora-dsql\u002Flatest\u002Fuserguide\u002F).\n- **`dsql_lint` unavailable or timing out:** See the Error Handling section of [dsql-lint.md](references\u002Fdsql-lint.md). Do not silently skip validation — inform the user and require explicit confirmation before proceeding with manual rules from [development-guide.md](references\u002Fdevelopment-guide.md).\n- **OCC serialization error:** Retry the transaction. If persistent, check for hot-key contention — see [troubleshooting.md](references\u002Ftroubleshooting.md).\n- **Transaction exceeds limits:** Split into batches under 3,000 rows — see [batched-migration.md](references\u002Fddl-migrations\u002Fbatched-migration.md).\n- **Token expiration mid-operation:** Generate a fresh IAM token — see [authentication-guide.md](references\u002Fauth\u002Fauthentication-guide.md). See [troubleshooting.md](references\u002Ftroubleshooting.md) for other issues.\n\n## Additional Resources\n\n- [Aurora DSQL Documentation](https:\u002F\u002Fdocs.aws.amazon.com\u002Faurora-dsql\u002Flatest\u002Fuserguide\u002F)\n- [Code Samples Repository](https:\u002F\u002Fgithub.com\u002Faws-samples\u002Faurora-dsql-samples)\n",{"data":37,"body":40},{"name":4,"description":6,"license":28,"metadata":38},{"tags":39},"aws, aurora, dsql, distributed-sql, distributed, distributed-database, database, serverless, serverless-database, postgresql, postgres, sql, schema, migration, multi-tenant, iam-auth, aurora-dsql, mcp, orm, enum, foreign-key, occ-retry, django, hibernate, rails, multi-region, schema-conversion, type-mapping, data-loading",{"type":41,"children":42},"root",[43,52,67,71,78,83,90,278,284,388,394,506,512,602,608,742,748,794,800,859,865,995,998,1004,1017,1026,1061,1069,1081,1089,1122,1147,1164,1178,1183,1426,1436,1462,1468,1494,1497,1503,1655,1658,1664,1670,1693,1736,1742,1755,1807,1846,1863,1869,1887,1960,1966,1976,1986,1992,2082,2088,2099,2105,2155,2165,2171,2210,2216,2226,2252,2283,2289,2311,2317,2328,2334,2439,2445],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"amazon-aurora-dsql-skill",[49],{"type":50,"value":51},"text","Amazon Aurora DSQL Skill",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56,58,65],{"type":50,"value":57},"Aurora DSQL is a serverless, PostgreSQL-compatible distributed SQL database. This skill covers direct query execution via MCP tools, schema management, migrations, multi-tenant isolation, IAM auth, and bulk data loading via ",{"type":44,"tag":59,"props":60,"children":62},"code",{"className":61},[],[63],{"type":50,"value":64},"aurora-dsql-loader",{"type":50,"value":66},".",{"type":44,"tag":68,"props":69,"children":70},"hr",{},[],{"type":44,"tag":72,"props":73,"children":75},"h2",{"id":74},"reference-files",[76],{"type":50,"value":77},"Reference Files",{"type":44,"tag":53,"props":79,"children":80},{},[81],{"type":50,"value":82},"Load these files as needed for detailed guidance:",{"type":44,"tag":84,"props":85,"children":87},"h3",{"id":86},"core",[88],{"type":50,"value":89},"Core:",{"type":44,"tag":91,"props":92,"children":93},"table",{},[94,118],{"type":44,"tag":95,"props":96,"children":97},"thead",{},[98],{"type":44,"tag":99,"props":100,"children":101},"tr",{},[102,108,113],{"type":44,"tag":103,"props":104,"children":105},"th",{},[106],{"type":50,"value":107},"Reference",{"type":44,"tag":103,"props":109,"children":110},{},[111],{"type":50,"value":112},"When to Load",{"type":44,"tag":103,"props":114,"children":115},{},[116],{"type":50,"value":117},"Contains",{"type":44,"tag":119,"props":120,"children":121},"tbody",{},[122,146,168,190,212,234,256],{"type":44,"tag":99,"props":123,"children":124},{},[125,136,141],{"type":44,"tag":126,"props":127,"children":128},"td",{},[129],{"type":44,"tag":130,"props":131,"children":133},"a",{"href":132},"references\u002Fdevelopment-guide.md",[134],{"type":50,"value":135},"development-guide.md",{"type":44,"tag":126,"props":137,"children":138},{},[139],{"type":50,"value":140},"ALWAYS before schema changes or DB operations",{"type":44,"tag":126,"props":142,"children":143},{},[144],{"type":50,"value":145},"Best practices, DDL rules, transaction limits, app-layer referential integrity",{"type":44,"tag":99,"props":147,"children":148},{},[149,158,163],{"type":44,"tag":126,"props":150,"children":151},{},[152],{"type":44,"tag":130,"props":153,"children":155},{"href":154},"references\u002Flanguage.md",[156],{"type":50,"value":157},"language.md",{"type":44,"tag":126,"props":159,"children":160},{},[161],{"type":50,"value":162},"MUST load for language-specific choices",{"type":44,"tag":126,"props":164,"children":165},{},[166],{"type":50,"value":167},"Driver selection, DSQL Connectors, connection code",{"type":44,"tag":99,"props":169,"children":170},{},[171,180,185],{"type":44,"tag":126,"props":172,"children":173},{},[174],{"type":44,"tag":130,"props":175,"children":177},{"href":176},"references\u002Faccess-control.md",[178],{"type":50,"value":179},"access-control.md",{"type":44,"tag":126,"props":181,"children":182},{},[183],{"type":50,"value":184},"MUST load for roles, grants, or sensitive data",{"type":44,"tag":126,"props":186,"children":187},{},[188],{"type":50,"value":189},"Scoped role setup, IAM-to-database role mapping",{"type":44,"tag":99,"props":191,"children":192},{},[193,202,207],{"type":44,"tag":126,"props":194,"children":195},{},[196],{"type":44,"tag":130,"props":197,"children":199},{"href":198},"references\u002Ftroubleshooting.md",[200],{"type":50,"value":201},"troubleshooting.md",{"type":44,"tag":126,"props":203,"children":204},{},[205],{"type":50,"value":206},"SHOULD load for errors or unexpected behavior",{"type":44,"tag":126,"props":208,"children":209},{},[210],{"type":50,"value":211},"OCC errors, connection failures, cluster state errors, token expiry, DDL rejection causes",{"type":44,"tag":99,"props":213,"children":214},{},[215,224,229],{"type":44,"tag":126,"props":216,"children":217},{},[218],{"type":44,"tag":130,"props":219,"children":221},{"href":220},"references\u002Fdsql-examples.md",[222],{"type":50,"value":223},"dsql-examples.md",{"type":44,"tag":126,"props":225,"children":226},{},[227],{"type":50,"value":228},"Load for implementation examples",{"type":44,"tag":126,"props":230,"children":231},{},[232],{"type":50,"value":233},"Multi-tenant schema examples, batch operations, FK validation patterns, connection pooling",{"type":44,"tag":99,"props":235,"children":236},{},[237,246,251],{"type":44,"tag":126,"props":238,"children":239},{},[240],{"type":44,"tag":130,"props":241,"children":243},{"href":242},"references\u002Fonboarding.md",[244],{"type":50,"value":245},"onboarding.md",{"type":44,"tag":126,"props":247,"children":248},{},[249],{"type":50,"value":250},"User requests \"Get started with DSQL\"",{"type":44,"tag":126,"props":252,"children":253},{},[254],{"type":50,"value":255},"Interactive step-by-step guide",{"type":44,"tag":99,"props":257,"children":258},{},[259,268,273],{"type":44,"tag":126,"props":260,"children":261},{},[262],{"type":44,"tag":130,"props":263,"children":265},{"href":264},"references\u002Focc-retry-patterns.md",[266],{"type":50,"value":267},"occ-retry-patterns.md",{"type":44,"tag":126,"props":269,"children":270},{},[271],{"type":50,"value":272},"MUST load for OCC retry code or conflict mitigation",{"type":44,"tag":126,"props":274,"children":275},{},[276],{"type":50,"value":277},"DSQL Connectors, manual retry pattern, idempotent design",{"type":44,"tag":84,"props":279,"children":281},{"id":280},"mcp",[282],{"type":50,"value":283},"MCP:",{"type":44,"tag":91,"props":285,"children":286},{},[287,305],{"type":44,"tag":95,"props":288,"children":289},{},[290],{"type":44,"tag":99,"props":291,"children":292},{},[293,297,301],{"type":44,"tag":103,"props":294,"children":295},{},[296],{"type":50,"value":107},{"type":44,"tag":103,"props":298,"children":299},{},[300],{"type":50,"value":112},{"type":44,"tag":103,"props":302,"children":303},{},[304],{"type":50,"value":117},{"type":44,"tag":119,"props":306,"children":307},{},[308,330,358],{"type":44,"tag":99,"props":309,"children":310},{},[311,320,325],{"type":44,"tag":126,"props":312,"children":313},{},[314],{"type":44,"tag":130,"props":315,"children":317},{"href":316},"mcp\u002Fmcp-setup.md",[318],{"type":50,"value":319},"mcp-setup.md",{"type":44,"tag":126,"props":321,"children":322},{},[323],{"type":50,"value":324},"Always for MCP server guidance",{"type":44,"tag":126,"props":326,"children":327},{},[328],{"type":50,"value":329},"Setup instructions, 2 configuration options",{"type":44,"tag":99,"props":331,"children":332},{},[333,342,347],{"type":44,"tag":126,"props":334,"children":335},{},[336],{"type":44,"tag":130,"props":337,"children":339},{"href":338},"mcp\u002Fmcp-tools.md",[340],{"type":50,"value":341},"mcp-tools.md",{"type":44,"tag":126,"props":343,"children":344},{},[345],{"type":50,"value":346},"For MCP tool syntax and examples",{"type":44,"tag":126,"props":348,"children":349},{},[350,352],{"type":50,"value":351},"Tool parameters, ",{"type":44,"tag":130,"props":353,"children":355},{"href":354},"mcp\u002Ftools\u002Finput-validation.md",[356],{"type":50,"value":357},"input validation",{"type":44,"tag":99,"props":359,"children":360},{},[361,370,383],{"type":44,"tag":126,"props":362,"children":363},{},[364],{"type":44,"tag":130,"props":365,"children":367},{"href":366},"references\u002Fdsql-lint.md",[368],{"type":50,"value":369},"dsql-lint.md",{"type":44,"tag":126,"props":371,"children":372},{},[373,375,381],{"type":50,"value":374},"MUST load before running ",{"type":44,"tag":59,"props":376,"children":378},{"className":377},[],[379],{"type":50,"value":380},"dsql_lint",{"type":50,"value":382}," or processing external SQL",{"type":44,"tag":126,"props":384,"children":385},{},[386],{"type":50,"value":387},"Tool reference, fix statuses, unfixable error resolution",{"type":44,"tag":84,"props":389,"children":391},{"id":390},"ddl-migrations",[392],{"type":50,"value":393},"DDL Migrations:",{"type":44,"tag":91,"props":395,"children":396},{},[397,415],{"type":44,"tag":95,"props":398,"children":399},{},[400],{"type":44,"tag":99,"props":401,"children":402},{},[403,407,411],{"type":44,"tag":103,"props":404,"children":405},{},[406],{"type":50,"value":107},{"type":44,"tag":103,"props":408,"children":409},{},[410],{"type":50,"value":112},{"type":44,"tag":103,"props":412,"children":413},{},[414],{"type":50,"value":117},{"type":44,"tag":119,"props":416,"children":417},{},[418,440,462,484],{"type":44,"tag":99,"props":419,"children":420},{},[421,430,435],{"type":44,"tag":126,"props":422,"children":423},{},[424],{"type":44,"tag":130,"props":425,"children":427},{"href":426},"references\u002Fddl-migrations\u002Foverview.md",[428],{"type":50,"value":429},"ddl-migrations\u002Foverview.md",{"type":44,"tag":126,"props":431,"children":432},{},[433],{"type":50,"value":434},"MUST load for DROP COLUMN, ALTER TYPE, DROP CONSTRAINT",{"type":44,"tag":126,"props":436,"children":437},{},[438],{"type":50,"value":439},"Table recreation pattern, verify & swap",{"type":44,"tag":99,"props":441,"children":442},{},[443,452,457],{"type":44,"tag":126,"props":444,"children":445},{},[446],{"type":44,"tag":130,"props":447,"children":449},{"href":448},"references\u002Fddl-migrations\u002Fcolumn-operations.md",[450],{"type":50,"value":451},"ddl-migrations\u002Fcolumn-operations.md",{"type":44,"tag":126,"props":453,"children":454},{},[455],{"type":50,"value":456},"DROP COLUMN, ALTER TYPE, SET\u002FDROP NOT NULL\u002FDEFAULT",{"type":44,"tag":126,"props":458,"children":459},{},[460],{"type":50,"value":461},"Column-level migration patterns",{"type":44,"tag":99,"props":463,"children":464},{},[465,474,479],{"type":44,"tag":126,"props":466,"children":467},{},[468],{"type":44,"tag":130,"props":469,"children":471},{"href":470},"references\u002Fddl-migrations\u002Fconstraint-operations.md",[472],{"type":50,"value":473},"ddl-migrations\u002Fconstraint-operations.md",{"type":44,"tag":126,"props":475,"children":476},{},[477],{"type":50,"value":478},"ADD\u002FDROP CONSTRAINT, MODIFY PRIMARY KEY",{"type":44,"tag":126,"props":480,"children":481},{},[482],{"type":50,"value":483},"Constraint and structural changes",{"type":44,"tag":99,"props":485,"children":486},{},[487,496,501],{"type":44,"tag":126,"props":488,"children":489},{},[490],{"type":44,"tag":130,"props":491,"children":493},{"href":492},"references\u002Fddl-migrations\u002Fbatched-migration.md",[494],{"type":50,"value":495},"ddl-migrations\u002Fbatched-migration.md",{"type":44,"tag":126,"props":497,"children":498},{},[499],{"type":50,"value":500},"Tables exceeding 3,000 rows",{"type":44,"tag":126,"props":502,"children":503},{},[504],{"type":50,"value":505},"Batching patterns, progress tracking",{"type":44,"tag":84,"props":507,"children":509},{"id":508},"mysql-migrations",[510],{"type":50,"value":511},"MySQL Migrations:",{"type":44,"tag":91,"props":513,"children":514},{},[515,533],{"type":44,"tag":95,"props":516,"children":517},{},[518],{"type":44,"tag":99,"props":519,"children":520},{},[521,525,529],{"type":44,"tag":103,"props":522,"children":523},{},[524],{"type":50,"value":107},{"type":44,"tag":103,"props":526,"children":527},{},[528],{"type":50,"value":112},{"type":44,"tag":103,"props":530,"children":531},{},[532],{"type":50,"value":117},{"type":44,"tag":119,"props":534,"children":535},{},[536,558,580],{"type":44,"tag":99,"props":537,"children":538},{},[539,548,553],{"type":44,"tag":126,"props":540,"children":541},{},[542],{"type":44,"tag":130,"props":543,"children":545},{"href":544},"references\u002Fmysql-migrations\u002Ftype-mapping.md",[546],{"type":50,"value":547},"mysql-migrations\u002Ftype-mapping.md",{"type":44,"tag":126,"props":549,"children":550},{},[551],{"type":50,"value":552},"MUST load for MySQL → DSQL migration",{"type":44,"tag":126,"props":554,"children":555},{},[556],{"type":50,"value":557},"Data type mappings, feature alternatives",{"type":44,"tag":99,"props":559,"children":560},{},[561,570,575],{"type":44,"tag":126,"props":562,"children":563},{},[564],{"type":44,"tag":130,"props":565,"children":567},{"href":566},"references\u002Fmysql-migrations\u002Fddl-operations.md",[568],{"type":50,"value":569},"mysql-migrations\u002Fddl-operations.md",{"type":44,"tag":126,"props":571,"children":572},{},[573],{"type":50,"value":574},"Translating MySQL DDL to DSQL",{"type":44,"tag":126,"props":576,"children":577},{},[578],{"type":50,"value":579},"AUTO_INCREMENT, ENUM, SET, FK patterns",{"type":44,"tag":99,"props":581,"children":582},{},[583,592,597],{"type":44,"tag":126,"props":584,"children":585},{},[586],{"type":44,"tag":130,"props":587,"children":589},{"href":588},"references\u002Fmysql-migrations\u002Ffull-example.md",[590],{"type":50,"value":591},"mysql-migrations\u002Ffull-example.md",{"type":44,"tag":126,"props":593,"children":594},{},[595],{"type":50,"value":596},"Complete MySQL table migration",{"type":44,"tag":126,"props":598,"children":599},{},[600],{"type":50,"value":601},"End-to-end example with decision summary",{"type":44,"tag":84,"props":603,"children":605},{"id":604},"postgresql-migrations",[606],{"type":50,"value":607},"PostgreSQL Migrations:",{"type":44,"tag":91,"props":609,"children":610},{},[611,629],{"type":44,"tag":95,"props":612,"children":613},{},[614],{"type":44,"tag":99,"props":615,"children":616},{},[617,621,625],{"type":44,"tag":103,"props":618,"children":619},{},[620],{"type":50,"value":107},{"type":44,"tag":103,"props":622,"children":623},{},[624],{"type":50,"value":112},{"type":44,"tag":103,"props":626,"children":627},{},[628],{"type":50,"value":117},{"type":44,"tag":119,"props":630,"children":631},{},[632,654,676,698,720],{"type":44,"tag":99,"props":633,"children":634},{},[635,644,649],{"type":44,"tag":126,"props":636,"children":637},{},[638],{"type":44,"tag":130,"props":639,"children":641},{"href":640},"references\u002Fpg-migrations\u002Ftype-mapping.md",[642],{"type":50,"value":643},"pg-migrations\u002Ftype-mapping.md",{"type":44,"tag":126,"props":645,"children":646},{},[647],{"type":50,"value":648},"MUST load for PG → DSQL type questions",{"type":44,"tag":126,"props":650,"children":651},{},[652],{"type":50,"value":653},"C collation rules, NUMERIC precision, JSON\u002FJSONB",{"type":44,"tag":99,"props":655,"children":656},{},[657,666,671],{"type":44,"tag":126,"props":658,"children":659},{},[660],{"type":44,"tag":130,"props":661,"children":663},{"href":662},"references\u002Fpg-migrations\u002Ffk-replacement.md",[664],{"type":50,"value":665},"pg-migrations\u002Ffk-replacement.md",{"type":44,"tag":126,"props":667,"children":668},{},[669],{"type":50,"value":670},"MUST load for FK validation code generation",{"type":44,"tag":126,"props":672,"children":673},{},[674],{"type":50,"value":675},"Tenant-scoped validate_fk_*() template, cascade",{"type":44,"tag":99,"props":677,"children":678},{},[679,688,693],{"type":44,"tag":126,"props":680,"children":681},{},[682],{"type":44,"tag":130,"props":683,"children":685},{"href":684},"references\u002Fpg-migrations\u002Findex-conversion.md",[686],{"type":50,"value":687},"pg-migrations\u002Findex-conversion.md",{"type":44,"tag":126,"props":689,"children":690},{},[691],{"type":50,"value":692},"MUST load for unfixable index diagnostics",{"type":44,"tag":126,"props":694,"children":695},{},[696],{"type":50,"value":697},"GIN\u002FGiST\u002FBRIN → btree, partial, expression indexes",{"type":44,"tag":99,"props":699,"children":700},{},[701,710,715],{"type":44,"tag":126,"props":702,"children":703},{},[704],{"type":44,"tag":130,"props":705,"children":707},{"href":706},"references\u002Fpg-migrations\u002Fschema-objects.md",[708],{"type":50,"value":709},"pg-migrations\u002Fschema-objects.md",{"type":44,"tag":126,"props":711,"children":712},{},[713],{"type":50,"value":714},"MUST load for ENUM, materialized views, extensions, multi-schema",{"type":44,"tag":126,"props":716,"children":717},{},[718],{"type":50,"value":719},"ENUM → CHECK, views, role\u002FIAM mapping",{"type":44,"tag":99,"props":721,"children":722},{},[723,732,737],{"type":44,"tag":126,"props":724,"children":725},{},[726],{"type":44,"tag":130,"props":727,"children":729},{"href":728},"references\u002Fpg-migrations\u002Fmulti-region.md",[730],{"type":50,"value":731},"pg-migrations\u002Fmulti-region.md",{"type":44,"tag":126,"props":733,"children":734},{},[735],{"type":50,"value":736},"Multi-region, active-active, or HA questions",{"type":44,"tag":126,"props":738,"children":739},{},[740],{"type":50,"value":741},"Architecture, geographic partitioning",{"type":44,"tag":84,"props":743,"children":745},{"id":744},"orm-guides",[746],{"type":50,"value":747},"ORM Guides:",{"type":44,"tag":91,"props":749,"children":750},{},[751,769],{"type":44,"tag":95,"props":752,"children":753},{},[754],{"type":44,"tag":99,"props":755,"children":756},{},[757,761,765],{"type":44,"tag":103,"props":758,"children":759},{},[760],{"type":50,"value":107},{"type":44,"tag":103,"props":762,"children":763},{},[764],{"type":50,"value":112},{"type":44,"tag":103,"props":766,"children":767},{},[768],{"type":50,"value":117},{"type":44,"tag":119,"props":770,"children":771},{},[772],{"type":44,"tag":99,"props":773,"children":774},{},[775,784,789],{"type":44,"tag":126,"props":776,"children":777},{},[778],{"type":44,"tag":130,"props":779,"children":781},{"href":780},"references\u002Form-guides\u002Foverview.md",[782],{"type":50,"value":783},"orm-guides\u002Foverview.md",{"type":44,"tag":126,"props":785,"children":786},{},[787],{"type":50,"value":788},"Migrating any ORM to DSQL",{"type":44,"tag":126,"props":790,"children":791},{},[792],{"type":50,"value":793},"Adapter names, key gotchas for Django\u002FHibernate\u002FRails\u002FSQLAlchemy",{"type":44,"tag":84,"props":795,"children":797},{"id":796},"data-loading",[798],{"type":50,"value":799},"Data Loading:",{"type":44,"tag":91,"props":801,"children":802},{},[803,821],{"type":44,"tag":95,"props":804,"children":805},{},[806],{"type":44,"tag":99,"props":807,"children":808},{},[809,813,817],{"type":44,"tag":103,"props":810,"children":811},{},[812],{"type":50,"value":107},{"type":44,"tag":103,"props":814,"children":815},{},[816],{"type":50,"value":112},{"type":44,"tag":103,"props":818,"children":819},{},[820],{"type":50,"value":117},{"type":44,"tag":119,"props":822,"children":823},{},[824],{"type":44,"tag":99,"props":825,"children":826},{},[827,836,846],{"type":44,"tag":126,"props":828,"children":829},{},[830],{"type":44,"tag":130,"props":831,"children":833},{"href":832},"references\u002Fdata-loading.md",[834],{"type":50,"value":835},"data-loading.md",{"type":44,"tag":126,"props":837,"children":838},{},[839,841],{"type":50,"value":840},"Planning or running bulk loads with ",{"type":44,"tag":59,"props":842,"children":844},{"className":843},[],[845],{"type":50,"value":64},{"type":44,"tag":126,"props":847,"children":848},{},[849,851,857],{"type":50,"value":850},"Fresh-vs-warm partitions, resume\u002Fretry, ",{"type":44,"tag":59,"props":852,"children":854},{"className":853},[],[855],{"type":50,"value":856},"--on-conflict",{"type":50,"value":858}," semantics, throughput diagnostics",{"type":44,"tag":84,"props":860,"children":862},{"id":861},"query-plan-explainability",[863],{"type":50,"value":864},"Query Plan Explainability:",{"type":44,"tag":91,"props":866,"children":867},{},[868,886],{"type":44,"tag":95,"props":869,"children":870},{},[871],{"type":44,"tag":99,"props":872,"children":873},{},[874,878,882],{"type":44,"tag":103,"props":875,"children":876},{},[877],{"type":50,"value":107},{"type":44,"tag":103,"props":879,"children":880},{},[881],{"type":50,"value":112},{"type":44,"tag":103,"props":883,"children":884},{},[885],{"type":50,"value":117},{"type":44,"tag":119,"props":887,"children":888},{},[889,911,953,974],{"type":44,"tag":99,"props":890,"children":891},{},[892,901,906],{"type":44,"tag":126,"props":893,"children":894},{},[895],{"type":44,"tag":130,"props":896,"children":898},{"href":897},"references\u002Fquery-plan\u002Fplan-interpretation.md",[899],{"type":50,"value":900},"query-plan\u002Fplan-interpretation.md",{"type":44,"tag":126,"props":902,"children":903},{},[904],{"type":50,"value":905},"MUST load at Workflow 9 Phase 0",{"type":44,"tag":126,"props":907,"children":908},{},[909],{"type":50,"value":910},"DSQL node types, Node Duration math, estimation-error bands",{"type":44,"tag":99,"props":912,"children":913},{},[914,923,927],{"type":44,"tag":126,"props":915,"children":916},{},[917],{"type":44,"tag":130,"props":918,"children":920},{"href":919},"references\u002Fquery-plan\u002Fcatalog-queries.md",[921],{"type":50,"value":922},"query-plan\u002Fcatalog-queries.md",{"type":44,"tag":126,"props":924,"children":925},{},[926],{"type":50,"value":905},{"type":44,"tag":126,"props":928,"children":929},{},[930,936,938,944,945,951],{"type":44,"tag":59,"props":931,"children":933},{"className":932},[],[934],{"type":50,"value":935},"pg_class",{"type":50,"value":937},"\u002F",{"type":44,"tag":59,"props":939,"children":941},{"className":940},[],[942],{"type":50,"value":943},"pg_stats",{"type":50,"value":937},{"type":44,"tag":59,"props":946,"children":948},{"className":947},[],[949],{"type":50,"value":950},"pg_indexes",{"type":50,"value":952}," SQL, correlated-predicate verification",{"type":44,"tag":99,"props":954,"children":955},{},[956,965,969],{"type":44,"tag":126,"props":957,"children":958},{},[959],{"type":44,"tag":130,"props":960,"children":962},{"href":961},"references\u002Fquery-plan\u002Fguc-experiments.md",[963],{"type":50,"value":964},"query-plan\u002Fguc-experiments.md",{"type":44,"tag":126,"props":966,"children":967},{},[968],{"type":50,"value":905},{"type":44,"tag":126,"props":970,"children":971},{},[972],{"type":50,"value":973},"GUC experiment procedures, 30-second skip protocol",{"type":44,"tag":99,"props":975,"children":976},{},[977,986,990],{"type":44,"tag":126,"props":978,"children":979},{},[980],{"type":44,"tag":130,"props":981,"children":983},{"href":982},"references\u002Fquery-plan\u002Freport-format.md",[984],{"type":50,"value":985},"query-plan\u002Freport-format.md",{"type":44,"tag":126,"props":987,"children":988},{},[989],{"type":50,"value":905},{"type":44,"tag":126,"props":991,"children":992},{},[993],{"type":50,"value":994},"Required report structure, element checklist, support request template",{"type":44,"tag":68,"props":996,"children":997},{},[],{"type":44,"tag":72,"props":999,"children":1001},{"id":1000},"mcp-tools-available",[1002],{"type":50,"value":1003},"MCP Tools Available",{"type":44,"tag":53,"props":1005,"children":1006},{},[1007,1009,1015],{"type":50,"value":1008},"The ",{"type":44,"tag":59,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":50,"value":1014},"aurora-dsql",{"type":50,"value":1016}," MCP server provides these tools:",{"type":44,"tag":53,"props":1018,"children":1019},{},[1020],{"type":44,"tag":1021,"props":1022,"children":1023},"strong",{},[1024],{"type":50,"value":1025},"Database Operations:",{"type":44,"tag":1027,"props":1028,"children":1029},"ol",{},[1030,1041,1051],{"type":44,"tag":1031,"props":1032,"children":1033},"li",{},[1034,1039],{"type":44,"tag":1021,"props":1035,"children":1036},{},[1037],{"type":50,"value":1038},"readonly_query",{"type":50,"value":1040}," - Execute SELECT queries (returns list of dicts)",{"type":44,"tag":1031,"props":1042,"children":1043},{},[1044,1049],{"type":44,"tag":1021,"props":1045,"children":1046},{},[1047],{"type":50,"value":1048},"transact",{"type":50,"value":1050}," - Execute DDL\u002FDML statements in transaction (takes list of SQL statements)",{"type":44,"tag":1031,"props":1052,"children":1053},{},[1054,1059],{"type":44,"tag":1021,"props":1055,"children":1056},{},[1057],{"type":50,"value":1058},"get_schema",{"type":50,"value":1060}," - Get table structure for a specific table",{"type":44,"tag":53,"props":1062,"children":1063},{},[1064],{"type":44,"tag":1021,"props":1065,"children":1066},{},[1067],{"type":50,"value":1068},"SQL Validation:",{"type":44,"tag":1027,"props":1070,"children":1071},{},[1072],{"type":44,"tag":1031,"props":1073,"children":1074},{},[1075,1079],{"type":44,"tag":1021,"props":1076,"children":1077},{},[1078],{"type":50,"value":380},{"type":50,"value":1080}," - Validate SQL for DSQL compatibility and optionally auto-fix issues. Use before executing externally-sourced SQL.",{"type":44,"tag":53,"props":1082,"children":1083},{},[1084],{"type":44,"tag":1021,"props":1085,"children":1086},{},[1087],{"type":50,"value":1088},"Documentation & Knowledge:",{"type":44,"tag":1027,"props":1090,"children":1091},{},[1092,1102,1112],{"type":44,"tag":1031,"props":1093,"children":1094},{},[1095,1100],{"type":44,"tag":1021,"props":1096,"children":1097},{},[1098],{"type":50,"value":1099},"dsql_search_documentation",{"type":50,"value":1101}," - Search Aurora DSQL documentation",{"type":44,"tag":1031,"props":1103,"children":1104},{},[1105,1110],{"type":44,"tag":1021,"props":1106,"children":1107},{},[1108],{"type":50,"value":1109},"dsql_read_documentation",{"type":50,"value":1111}," - Read specific documentation pages",{"type":44,"tag":1031,"props":1113,"children":1114},{},[1115,1120],{"type":44,"tag":1021,"props":1116,"children":1117},{},[1118],{"type":50,"value":1119},"dsql_recommend",{"type":50,"value":1121}," - Get DSQL best practice recommendations",{"type":44,"tag":53,"props":1123,"children":1124},{},[1125,1130,1132,1138,1140,1145],{"type":44,"tag":1021,"props":1126,"children":1127},{},[1128],{"type":50,"value":1129},"Note:",{"type":50,"value":1131}," There is no ",{"type":44,"tag":59,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":50,"value":1137},"list_tables",{"type":50,"value":1139}," tool. Use ",{"type":44,"tag":59,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":50,"value":1038},{"type":50,"value":1146}," with information_schema.",{"type":44,"tag":53,"props":1148,"children":1149},{},[1150,1152,1156,1158,1162],{"type":50,"value":1151},"See ",{"type":44,"tag":130,"props":1153,"children":1154},{"href":316},[1155],{"type":50,"value":319},{"type":50,"value":1157}," for detailed setup instructions.\nSee ",{"type":44,"tag":130,"props":1159,"children":1160},{"href":338},[1161],{"type":50,"value":341},{"type":50,"value":1163}," for detailed usage and examples.",{"type":44,"tag":84,"props":1165,"children":1167},{"id":1166},"aws-knowledge-mcp-awsknowledge",[1168,1170,1176],{"type":50,"value":1169},"AWS Knowledge MCP (",{"type":44,"tag":59,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":50,"value":1175},"awsknowledge",{"type":50,"value":1177},")",{"type":44,"tag":53,"props":1179,"children":1180},{},[1181],{"type":50,"value":1182},"Consult for verifying DSQL service limits before advising users. The numeric limits below are\ndefaults that may change — when a user's decision depends on an exact limit, verify it first:",{"type":44,"tag":91,"props":1184,"children":1185},{},[1186,1207],{"type":44,"tag":95,"props":1187,"children":1188},{},[1189],{"type":44,"tag":99,"props":1190,"children":1191},{},[1192,1197,1202],{"type":44,"tag":103,"props":1193,"children":1194},{},[1195],{"type":50,"value":1196},"Limit",{"type":44,"tag":103,"props":1198,"children":1199},{},[1200],{"type":50,"value":1201},"Default",{"type":44,"tag":103,"props":1203,"children":1204},{},[1205],{"type":50,"value":1206},"Verify query",{"type":44,"tag":119,"props":1208,"children":1209},{},[1210,1232,1253,1274,1296,1318,1339,1361,1382,1404],{"type":44,"tag":99,"props":1211,"children":1212},{},[1213,1218,1223],{"type":44,"tag":126,"props":1214,"children":1215},{},[1216],{"type":50,"value":1217},"Max rows per transaction",{"type":44,"tag":126,"props":1219,"children":1220},{},[1221],{"type":50,"value":1222},"3,000",{"type":44,"tag":126,"props":1224,"children":1225},{},[1226],{"type":44,"tag":59,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":50,"value":1231},"aurora dsql transaction limits",{"type":44,"tag":99,"props":1233,"children":1234},{},[1235,1240,1245],{"type":44,"tag":126,"props":1236,"children":1237},{},[1238],{"type":50,"value":1239},"Max data size per transaction",{"type":44,"tag":126,"props":1241,"children":1242},{},[1243],{"type":50,"value":1244},"10 MiB",{"type":44,"tag":126,"props":1246,"children":1247},{},[1248],{"type":44,"tag":59,"props":1249,"children":1251},{"className":1250},[],[1252],{"type":50,"value":1231},{"type":44,"tag":99,"props":1254,"children":1255},{},[1256,1261,1266],{"type":44,"tag":126,"props":1257,"children":1258},{},[1259],{"type":50,"value":1260},"Max transaction duration",{"type":44,"tag":126,"props":1262,"children":1263},{},[1264],{"type":50,"value":1265},"5 minutes",{"type":44,"tag":126,"props":1267,"children":1268},{},[1269],{"type":44,"tag":59,"props":1270,"children":1272},{"className":1271},[],[1273],{"type":50,"value":1231},{"type":44,"tag":99,"props":1275,"children":1276},{},[1277,1282,1287],{"type":44,"tag":126,"props":1278,"children":1279},{},[1280],{"type":50,"value":1281},"Max connections per cluster",{"type":44,"tag":126,"props":1283,"children":1284},{},[1285],{"type":50,"value":1286},"10,000",{"type":44,"tag":126,"props":1288,"children":1289},{},[1290],{"type":44,"tag":59,"props":1291,"children":1293},{"className":1292},[],[1294],{"type":50,"value":1295},"aurora dsql connection limits",{"type":44,"tag":99,"props":1297,"children":1298},{},[1299,1304,1309],{"type":44,"tag":126,"props":1300,"children":1301},{},[1302],{"type":50,"value":1303},"Auth token expiry",{"type":44,"tag":126,"props":1305,"children":1306},{},[1307],{"type":50,"value":1308},"15 minutes",{"type":44,"tag":126,"props":1310,"children":1311},{},[1312],{"type":44,"tag":59,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":50,"value":1317},"aurora dsql authentication token",{"type":44,"tag":99,"props":1319,"children":1320},{},[1321,1326,1331],{"type":44,"tag":126,"props":1322,"children":1323},{},[1324],{"type":50,"value":1325},"Max connection duration",{"type":44,"tag":126,"props":1327,"children":1328},{},[1329],{"type":50,"value":1330},"60 minutes",{"type":44,"tag":126,"props":1332,"children":1333},{},[1334],{"type":44,"tag":59,"props":1335,"children":1337},{"className":1336},[],[1338],{"type":50,"value":1295},{"type":44,"tag":99,"props":1340,"children":1341},{},[1342,1347,1352],{"type":44,"tag":126,"props":1343,"children":1344},{},[1345],{"type":50,"value":1346},"Max indexes per table",{"type":44,"tag":126,"props":1348,"children":1349},{},[1350],{"type":50,"value":1351},"24",{"type":44,"tag":126,"props":1353,"children":1354},{},[1355],{"type":44,"tag":59,"props":1356,"children":1358},{"className":1357},[],[1359],{"type":50,"value":1360},"aurora dsql index limits",{"type":44,"tag":99,"props":1362,"children":1363},{},[1364,1369,1374],{"type":44,"tag":126,"props":1365,"children":1366},{},[1367],{"type":50,"value":1368},"Max columns per index",{"type":44,"tag":126,"props":1370,"children":1371},{},[1372],{"type":50,"value":1373},"8",{"type":44,"tag":126,"props":1375,"children":1376},{},[1377],{"type":44,"tag":59,"props":1378,"children":1380},{"className":1379},[],[1381],{"type":50,"value":1360},{"type":44,"tag":99,"props":1383,"children":1384},{},[1385,1390,1395],{"type":44,"tag":126,"props":1386,"children":1387},{},[1388],{"type":50,"value":1389},"IDENTITY\u002FSEQUENCE CACHE values",{"type":44,"tag":126,"props":1391,"children":1392},{},[1393],{"type":50,"value":1394},"1 or >= 65536",{"type":44,"tag":126,"props":1396,"children":1397},{},[1398],{"type":44,"tag":59,"props":1399,"children":1401},{"className":1400},[],[1402],{"type":50,"value":1403},"aurora dsql sequence cache",{"type":44,"tag":99,"props":1405,"children":1406},{},[1407,1412,1417],{"type":44,"tag":126,"props":1408,"children":1409},{},[1410],{"type":50,"value":1411},"Supported column data types",{"type":44,"tag":126,"props":1413,"children":1414},{},[1415],{"type":50,"value":1416},"See docs",{"type":44,"tag":126,"props":1418,"children":1419},{},[1420],{"type":44,"tag":59,"props":1421,"children":1423},{"className":1422},[],[1424],{"type":50,"value":1425},"aurora dsql supported data types",{"type":44,"tag":53,"props":1427,"children":1428},{},[1429,1434],{"type":44,"tag":1021,"props":1430,"children":1431},{},[1432],{"type":50,"value":1433},"When to verify:",{"type":50,"value":1435}," Before recommending batch sizes, connection pool settings, or schema designs where hitting a limit would cause failures; any time the exact number can affect user decision.",{"type":44,"tag":53,"props":1437,"children":1438},{},[1439,1444,1446,1451,1453,1461],{"type":44,"tag":1021,"props":1440,"children":1441},{},[1442],{"type":50,"value":1443},"Fallback:",{"type":50,"value":1445}," If ",{"type":44,"tag":59,"props":1447,"children":1449},{"className":1448},[],[1450],{"type":50,"value":1175},{"type":50,"value":1452}," is unavailable, use the defaults above and flag that limits should be verified against ",{"type":44,"tag":130,"props":1454,"children":1458},{"href":1455,"rel":1456},"https:\u002F\u002Fdocs.aws.amazon.com\u002Faurora-dsql\u002Flatest\u002Fuserguide\u002F",[1457],"nofollow",[1459],{"type":50,"value":1460},"DSQL documentation",{"type":50,"value":66},{"type":44,"tag":72,"props":1463,"children":1465},{"id":1464},"cli-tools",[1466],{"type":50,"value":1467},"CLI Tools",{"type":44,"tag":53,"props":1469,"children":1470},{},[1471,1473,1479,1481,1486,1488,1492],{"type":50,"value":1472},"Use the AWS CLI, ",{"type":44,"tag":59,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":50,"value":1478},"psql",{"type":50,"value":1480},", and ",{"type":44,"tag":59,"props":1482,"children":1484},{"className":1483},[],[1485],{"type":50,"value":64},{"type":50,"value":1487}," directly for cluster management, SQL connections, and bulk data loading from local or S3 CSV\u002FTSV\u002FParquet files. Load ",{"type":44,"tag":130,"props":1489,"children":1490},{"href":832},[1491],{"type":50,"value":835},{"type":50,"value":1493}," for loader guidance.",{"type":44,"tag":68,"props":1495,"children":1496},{},[],{"type":44,"tag":72,"props":1498,"children":1500},{"id":1499},"quick-start",[1501],{"type":50,"value":1502},"Quick Start",{"type":44,"tag":1027,"props":1504,"children":1505},{},[1506,1538,1582,1625],{"type":44,"tag":1031,"props":1507,"children":1508},{},[1509,1514,1516,1521,1523,1529,1531,1536],{"type":44,"tag":1021,"props":1510,"children":1511},{},[1512],{"type":50,"value":1513},"Explore:",{"type":50,"value":1515}," Use ",{"type":44,"tag":59,"props":1517,"children":1519},{"className":1518},[],[1520],{"type":50,"value":1038},{"type":50,"value":1522}," with ",{"type":44,"tag":59,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":50,"value":1528},"information_schema",{"type":50,"value":1530}," to list tables. Use ",{"type":44,"tag":59,"props":1532,"children":1534},{"className":1533},[],[1535],{"type":50,"value":1058},{"type":50,"value":1537}," for table structure.",{"type":44,"tag":1031,"props":1539,"children":1540},{},[1541,1546,1547,1552,1554,1559,1561,1567,1569,1573,1575,1581],{"type":44,"tag":1021,"props":1542,"children":1543},{},[1544],{"type":50,"value":1545},"Query:",{"type":50,"value":1515},{"type":44,"tag":59,"props":1548,"children":1550},{"className":1549},[],[1551],{"type":50,"value":1038},{"type":50,"value":1553}," for SELECT queries. ",{"type":44,"tag":1021,"props":1555,"children":1556},{},[1557],{"type":50,"value":1558},"MUST",{"type":50,"value":1560}," include ",{"type":44,"tag":59,"props":1562,"children":1564},{"className":1563},[],[1565],{"type":50,"value":1566},"tenant_id",{"type":50,"value":1568}," in WHERE for multi-tenant apps. ",{"type":44,"tag":1021,"props":1570,"children":1571},{},[1572],{"type":50,"value":1558},{"type":50,"value":1574}," build SQL with ",{"type":44,"tag":59,"props":1576,"children":1578},{"className":1577},[],[1579],{"type":50,"value":1580},"safe_query.build()",{"type":50,"value":66},{"type":44,"tag":1031,"props":1583,"children":1584},{},[1585,1590,1591,1596,1598,1602,1604,1608,1610,1616,1618,1623],{"type":44,"tag":1021,"props":1586,"children":1587},{},[1588],{"type":50,"value":1589},"Schema changes:",{"type":50,"value":1515},{"type":44,"tag":59,"props":1592,"children":1594},{"className":1593},[],[1595],{"type":50,"value":1048},{"type":50,"value":1597}," with one DDL per transaction. ",{"type":44,"tag":1021,"props":1599,"children":1600},{},[1601],{"type":50,"value":1558},{"type":50,"value":1603}," batch DML under 3,000 rows. ",{"type":44,"tag":1021,"props":1605,"children":1606},{},[1607],{"type":50,"value":1558},{"type":50,"value":1609}," use ",{"type":44,"tag":59,"props":1611,"children":1613},{"className":1612},[],[1614],{"type":50,"value":1615},"CREATE INDEX ASYNC",{"type":50,"value":1617}," in a separate call. Use ",{"type":44,"tag":59,"props":1619,"children":1621},{"className":1620},[],[1622],{"type":50,"value":380},{"type":50,"value":1624}," to validate first.",{"type":44,"tag":1031,"props":1626,"children":1627},{},[1628,1633,1634,1639,1641,1645,1647,1653],{"type":44,"tag":1021,"props":1629,"children":1630},{},[1631],{"type":50,"value":1632},"Bulk load data:",{"type":50,"value":1515},{"type":44,"tag":59,"props":1635,"children":1637},{"className":1636},[],[1638],{"type":50,"value":64},{"type":50,"value":1640}," for CSV\u002FTSV\u002FParquet. Load ",{"type":44,"tag":130,"props":1642,"children":1643},{"href":832},[1644],{"type":50,"value":835},{"type":50,"value":1646}," for details. Use ",{"type":44,"tag":59,"props":1648,"children":1650},{"className":1649},[],[1651],{"type":50,"value":1652},"--dry-run",{"type":50,"value":1654}," first.",{"type":44,"tag":68,"props":1656,"children":1657},{},[],{"type":44,"tag":72,"props":1659,"children":1661},{"id":1660},"common-workflows",[1662],{"type":50,"value":1663},"Common Workflows",{"type":44,"tag":84,"props":1665,"children":1667},{"id":1666},"workflow-1-create-multi-tenant-schema",[1668],{"type":50,"value":1669},"Workflow 1: Create Multi-Tenant Schema",{"type":44,"tag":1027,"props":1671,"children":1672},{},[1673,1678,1683,1688],{"type":44,"tag":1031,"props":1674,"children":1675},{},[1676],{"type":50,"value":1677},"Create main table with tenant_id column using transact",{"type":44,"tag":1031,"props":1679,"children":1680},{},[1681],{"type":50,"value":1682},"Create async index on tenant_id in separate transact call",{"type":44,"tag":1031,"props":1684,"children":1685},{},[1686],{"type":50,"value":1687},"Create composite indexes for common query patterns (separate transact calls)",{"type":44,"tag":1031,"props":1689,"children":1690},{},[1691],{"type":50,"value":1692},"Verify schema with get_schema",{"type":44,"tag":1694,"props":1695,"children":1696},"ul",{},[1697,1702,1714,1725],{"type":44,"tag":1031,"props":1698,"children":1699},{},[1700],{"type":50,"value":1701},"MUST include tenant_id in all tables",{"type":44,"tag":1031,"props":1703,"children":1704},{},[1705,1707,1712],{"type":50,"value":1706},"MUST use ",{"type":44,"tag":59,"props":1708,"children":1710},{"className":1709},[],[1711],{"type":50,"value":1615},{"type":50,"value":1713}," exclusively",{"type":44,"tag":1031,"props":1715,"children":1716},{},[1717,1719],{"type":50,"value":1718},"MUST issue each DDL in its own transact call: ",{"type":44,"tag":59,"props":1720,"children":1722},{"className":1721},[],[1723],{"type":50,"value":1724},"transact([\"CREATE TABLE ...\"])",{"type":44,"tag":1031,"props":1726,"children":1727},{},[1728,1730],{"type":50,"value":1729},"MUST serialize arrays as JSONB; expand at query time with ",{"type":44,"tag":59,"props":1731,"children":1733},{"className":1732},[],[1734],{"type":50,"value":1735},"jsonb_array_elements_text(data)",{"type":44,"tag":84,"props":1737,"children":1739},{"id":1738},"workflow-2-safe-data-migration",[1740],{"type":50,"value":1741},"Workflow 2: Safe Data Migration",{"type":44,"tag":53,"props":1743,"children":1744},{},[1745,1747,1753],{"type":50,"value":1746},"MUST validate every DDL with ",{"type":44,"tag":59,"props":1748,"children":1750},{"className":1749},[],[1751],{"type":50,"value":1752},"dsql_lint(fix=true)",{"type":50,"value":1754}," before executing. DML does not require linting.",{"type":44,"tag":1027,"props":1756,"children":1757},{},[1758,1775,1786,1791,1796],{"type":44,"tag":1031,"props":1759,"children":1760},{},[1761,1763,1769,1771],{"type":50,"value":1762},"Validate DDL with ",{"type":44,"tag":59,"props":1764,"children":1766},{"className":1765},[],[1767],{"type":50,"value":1768},"dsql_lint(sql=..., fix=true)",{"type":50,"value":1770}," — handle diagnostics per ",{"type":44,"tag":130,"props":1772,"children":1773},{"href":366},[1774],{"type":50,"value":369},{"type":44,"tag":1031,"props":1776,"children":1777},{},[1778,1780],{"type":50,"value":1779},"Add column: ",{"type":44,"tag":59,"props":1781,"children":1783},{"className":1782},[],[1784],{"type":50,"value":1785},"transact([\"ALTER TABLE ... ADD COLUMN ...\"])",{"type":44,"tag":1031,"props":1787,"children":1788},{},[1789],{"type":50,"value":1790},"Populate existing rows with UPDATE (batched under 3,000 rows)",{"type":44,"tag":1031,"props":1792,"children":1793},{},[1794],{"type":50,"value":1795},"Verify with readonly_query COUNT",{"type":44,"tag":1031,"props":1797,"children":1798},{},[1799,1801],{"type":50,"value":1800},"Create index if needed: validate then ",{"type":44,"tag":59,"props":1802,"children":1804},{"className":1803},[],[1805],{"type":50,"value":1806},"transact([\"CREATE INDEX ASYNC ...\"])",{"type":44,"tag":1694,"props":1808,"children":1809},{},[1810,1836,1841],{"type":44,"tag":1031,"props":1811,"children":1812},{},[1813,1815,1821,1823,1828,1830],{"type":50,"value":1814},"MUST issue each ",{"type":44,"tag":59,"props":1816,"children":1818},{"className":1817},[],[1819],{"type":50,"value":1820},"ALTER TABLE",{"type":50,"value":1822}," in its own ",{"type":44,"tag":59,"props":1824,"children":1826},{"className":1825},[],[1827],{"type":50,"value":1048},{"type":50,"value":1829}," call — DSQL rejects multi-DDL transactions with ",{"type":44,"tag":59,"props":1831,"children":1833},{"className":1832},[],[1834],{"type":50,"value":1835},"multiple ddl statements not supported in a transaction",{"type":44,"tag":1031,"props":1837,"children":1838},{},[1839],{"type":50,"value":1840},"MUST add column with only name and type; apply DEFAULT via separate UPDATE",{"type":44,"tag":1031,"props":1842,"children":1843},{},[1844],{"type":50,"value":1845},"MUST batch updates under 3,000 rows in separate transact calls",{"type":44,"tag":53,"props":1847,"children":1848},{},[1849,1854,1856,1862],{"type":44,"tag":1021,"props":1850,"children":1851},{},[1852],{"type":50,"value":1853},"Recovery:",{"type":50,"value":1855}," Resume failed batches by filtering ",{"type":44,"tag":59,"props":1857,"children":1859},{"className":1858},[],[1860],{"type":50,"value":1861},"WHERE new_column IS NULL",{"type":50,"value":66},{"type":44,"tag":84,"props":1864,"children":1866},{"id":1865},"workflow-3-bulk-data-loading",[1867],{"type":50,"value":1868},"Workflow 3: Bulk Data Loading",{"type":44,"tag":53,"props":1870,"children":1871},{},[1872,1874,1879,1881,1885],{"type":50,"value":1873},"Use ",{"type":44,"tag":59,"props":1875,"children":1877},{"className":1876},[],[1878],{"type":50,"value":64},{"type":50,"value":1880}," for CSV, TSV, or Parquet loads. MUST load ",{"type":44,"tag":130,"props":1882,"children":1883},{"href":832},[1884],{"type":50,"value":835},{"type":50,"value":1886}," before advising on throughput or diagnosing slow loads.",{"type":44,"tag":1027,"props":1888,"children":1889},{},[1890,1902,1931,1950],{"type":44,"tag":1031,"props":1891,"children":1892},{},[1893,1895,1900],{"type":50,"value":1894},"Validate with ",{"type":44,"tag":59,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":50,"value":1652},{"type":50,"value":1901}," first",{"type":44,"tag":1031,"props":1903,"children":1904},{},[1905,1907,1913,1915,1921,1923,1929],{"type":50,"value":1906},"Run with ",{"type":44,"tag":59,"props":1908,"children":1910},{"className":1909},[],[1911],{"type":50,"value":1912},"--manifest-dir",{"type":50,"value":1914}," on persistent storage (not ",{"type":44,"tag":59,"props":1916,"children":1918},{"className":1917},[],[1919],{"type":50,"value":1920},"\u002Ftmp",{"type":50,"value":1922}," — tmpfs on AL2023, lost on crash) and ",{"type":44,"tag":59,"props":1924,"children":1926},{"className":1925},[],[1927],{"type":50,"value":1928},"--header",{"type":50,"value":1930}," if file has a header row",{"type":44,"tag":1031,"props":1932,"children":1933},{},[1934,1936,1942,1944],{"type":50,"value":1935},"On failure: resume with ",{"type":44,"tag":59,"props":1937,"children":1939},{"className":1938},[],[1940],{"type":50,"value":1941},"--resume-job-id",{"type":50,"value":1943},"; for duplicates use ",{"type":44,"tag":59,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":50,"value":1949},"--on-conflict do-nothing",{"type":44,"tag":1031,"props":1951,"children":1952},{},[1953,1955],{"type":50,"value":1954},"For large tables: create secondary indexes after load using ",{"type":44,"tag":59,"props":1956,"children":1958},{"className":1957},[],[1959],{"type":50,"value":1615},{"type":44,"tag":84,"props":1961,"children":1963},{"id":1962},"workflow-4-application-layer-referential-integrity",[1964],{"type":50,"value":1965},"Workflow 4: Application-Layer Referential Integrity",{"type":44,"tag":53,"props":1967,"children":1968},{},[1969,1974],{"type":44,"tag":1021,"props":1970,"children":1971},{},[1972],{"type":50,"value":1973},"INSERT:",{"type":50,"value":1975}," MUST validate parent exists with readonly_query → throw error if not found → insert child with transact.",{"type":44,"tag":53,"props":1977,"children":1978},{},[1979,1984],{"type":44,"tag":1021,"props":1980,"children":1981},{},[1982],{"type":50,"value":1983},"DELETE:",{"type":50,"value":1985}," MUST check dependents with readonly_query COUNT → return error if dependents exist → delete with transact if safe.",{"type":44,"tag":84,"props":1987,"children":1989},{"id":1988},"workflow-5-query-with-tenant-isolation",[1990],{"type":50,"value":1991},"Workflow 5: Query with Tenant Isolation",{"type":44,"tag":1027,"props":1993,"children":1994},{},[1995,2004,2067],{"type":44,"tag":1031,"props":1996,"children":1997},{},[1998,2002],{"type":44,"tag":1021,"props":1999,"children":2000},{},[2001],{"type":50,"value":1558},{"type":50,"value":2003}," authorize the caller against the tenant — format validation does not establish authorization",{"type":44,"tag":1031,"props":2005,"children":2006},{},[2007,2011,2012,2021,2023,2029,2030,2036,2038,2044,2046,2052,2054,2060,2062],{"type":44,"tag":1021,"props":2008,"children":2009},{},[2010],{"type":50,"value":1558},{"type":50,"value":1574},{"type":44,"tag":130,"props":2013,"children":2015},{"href":2014},"mcp\u002Ftools\u002Fsafe_query.py",[2016],{"type":44,"tag":59,"props":2017,"children":2019},{"className":2018},[],[2020],{"type":50,"value":1580},{"type":50,"value":2022}," — use ",{"type":44,"tag":59,"props":2024,"children":2026},{"className":2025},[],[2027],{"type":50,"value":2028},"allow()",{"type":50,"value":937},{"type":44,"tag":59,"props":2031,"children":2033},{"className":2032},[],[2034],{"type":50,"value":2035},"regex()",{"type":50,"value":2037}," for\nvalues (emits ",{"type":44,"tag":59,"props":2039,"children":2041},{"className":2040},[],[2042],{"type":50,"value":2043},"'v'",{"type":50,"value":2045},"), ",{"type":44,"tag":59,"props":2047,"children":2049},{"className":2048},[],[2050],{"type":50,"value":2051},"ident()",{"type":50,"value":2053}," for table\u002Fcolumn names (emits ",{"type":44,"tag":59,"props":2055,"children":2057},{"className":2056},[],[2058],{"type":50,"value":2059},"\"v\"",{"type":50,"value":2061},").\nSee ",{"type":44,"tag":130,"props":2063,"children":2064},{"href":354},[2065],{"type":50,"value":2066},"input-validation.md",{"type":44,"tag":1031,"props":2068,"children":2069},{},[2070,2074,2075,2080],{"type":44,"tag":1021,"props":2071,"children":2072},{},[2073],{"type":50,"value":1558},{"type":50,"value":1560},{"type":44,"tag":59,"props":2076,"children":2078},{"className":2077},[],[2079],{"type":50,"value":1566},{"type":50,"value":2081}," in the WHERE clause; reject cross-tenant access at the application layer",{"type":44,"tag":84,"props":2083,"children":2085},{"id":2084},"workflow-6-set-up-scoped-database-roles",[2086],{"type":50,"value":2087},"Workflow 6: Set Up Scoped Database Roles",{"type":44,"tag":53,"props":2089,"children":2090},{},[2091,2093,2097],{"type":50,"value":2092},"MUST load ",{"type":44,"tag":130,"props":2094,"children":2095},{"href":176},[2096],{"type":50,"value":179},{"type":50,"value":2098}," for role setup, IAM mapping, and schema permissions.",{"type":44,"tag":84,"props":2100,"children":2102},{"id":2101},"workflow-7-table-recreation-ddl-migration",[2103],{"type":50,"value":2104},"Workflow 7: Table Recreation DDL Migration",{"type":44,"tag":53,"props":2106,"children":2107},{},[2108,2110,2115,2117,2123,2125,2131,2132,2138,2140,2146,2148,2153],{"type":50,"value":2109},"Use the ",{"type":44,"tag":1021,"props":2111,"children":2112},{},[2113],{"type":50,"value":2114},"Table Recreation Pattern",{"type":50,"value":2116}," for ",{"type":44,"tag":59,"props":2118,"children":2120},{"className":2119},[],[2121],{"type":50,"value":2122},"ALTER COLUMN TYPE",{"type":50,"value":2124},", ",{"type":44,"tag":59,"props":2126,"children":2128},{"className":2127},[],[2129],{"type":50,"value":2130},"DROP COLUMN",{"type":50,"value":2124},{"type":44,"tag":59,"props":2133,"children":2135},{"className":2134},[],[2136],{"type":50,"value":2137},"DROP CONSTRAINT",{"type":50,"value":2139},", or ",{"type":44,"tag":59,"props":2141,"children":2143},{"className":2142},[],[2144],{"type":50,"value":2145},"MODIFY PRIMARY KEY",{"type":50,"value":2147},". This is a destructive workflow that requires user confirmation at each step. Every generated DDL in the pattern (CREATE new, INSERT ... SELECT, DROP old, RENAME) MUST be validated with ",{"type":44,"tag":59,"props":2149,"children":2151},{"className":2150},[],[2152],{"type":50,"value":1768},{"type":50,"value":2154}," before execution.",{"type":44,"tag":53,"props":2156,"children":2157},{},[2158,2159,2163],{"type":50,"value":2092},{"type":44,"tag":130,"props":2160,"children":2161},{"href":426},[2162],{"type":50,"value":429},{"type":50,"value":2164}," before attempting any of these operations.",{"type":44,"tag":84,"props":2166,"children":2168},{"id":2167},"workflow-8-validate-and-migrate-to-dsql",[2169],{"type":50,"value":2170},"Workflow 8: Validate and Migrate to DSQL",{"type":44,"tag":53,"props":2172,"children":2173},{},[2174,2175,2179,2181,2186,2188,2194,2196,2200,2202,2208],{"type":50,"value":2092},{"type":44,"tag":130,"props":2176,"children":2177},{"href":366},[2178],{"type":50,"value":369},{"type":50,"value":2180}," before running ",{"type":44,"tag":59,"props":2182,"children":2184},{"className":2183},[],[2185],{"type":50,"value":380},{"type":50,"value":2187},". Run ",{"type":44,"tag":59,"props":2189,"children":2191},{"className":2190},[],[2192],{"type":50,"value":2193},"dsql_lint(sql=source_sql, fix=true)",{"type":50,"value":2195}," to validate and auto-convert. For MySQL-origin SQL, MUST cross-check against ",{"type":44,"tag":130,"props":2197,"children":2198},{"href":544},[2199],{"type":50,"value":547},{"type":50,"value":2201}," even when lint returns clean. On ",{"type":44,"tag":59,"props":2203,"children":2205},{"className":2204},[],[2206],{"type":50,"value":2207},"parse_error",{"type":50,"value":2209},", fall back to manual conversion then re-lint.",{"type":44,"tag":84,"props":2211,"children":2213},{"id":2212},"workflow-9-query-plan-explainability",[2214],{"type":50,"value":2215},"Workflow 9: Query Plan Explainability",{"type":44,"tag":53,"props":2217,"children":2218},{},[2219,2221],{"type":50,"value":2220},"Explains why the DSQL optimizer chose a particular plan. Triggered by slow queries, high DPU, unexpected Full Scans, or plans the user doesn't understand. ",{"type":44,"tag":1021,"props":2222,"children":2223},{},[2224],{"type":50,"value":2225},"REQUIRES a structured Markdown diagnostic report as the deliverable.",{"type":44,"tag":53,"props":2227,"children":2228},{},[2229,2231,2235,2236,2240,2241,2245,2246,2250],{"type":50,"value":2230},"MUST load all four reference files at Phase 0: ",{"type":44,"tag":130,"props":2232,"children":2233},{"href":897},[2234],{"type":50,"value":900},{"type":50,"value":2124},{"type":44,"tag":130,"props":2237,"children":2238},{"href":919},[2239],{"type":50,"value":922},{"type":50,"value":2124},{"type":44,"tag":130,"props":2242,"children":2243},{"href":961},[2244],{"type":50,"value":964},{"type":50,"value":2124},{"type":44,"tag":130,"props":2247,"children":2248},{"href":982},[2249],{"type":50,"value":985},{"type":50,"value":2251},". The phase procedures (capture plan, gather evidence, experiment, produce report) are defined in those files.",{"type":44,"tag":53,"props":2253,"children":2254},{},[2255,2260,2262,2267,2269,2274,2275,2281],{"type":44,"tag":1021,"props":2256,"children":2257},{},[2258],{"type":50,"value":2259},"Safety.",{"type":50,"value":2261}," Plan capture uses ",{"type":44,"tag":59,"props":2263,"children":2265},{"className":2264},[],[2266],{"type":50,"value":1038},{"type":50,"value":2268}," exclusively. Rewrite DML to SELECT for plan capture. ",{"type":44,"tag":1021,"props":2270,"children":2271},{},[2272],{"type":50,"value":2273},"MUST NOT",{"type":50,"value":1609},{"type":44,"tag":59,"props":2276,"children":2278},{"className":2277},[],[2279],{"type":50,"value":2280},"transact --allow-writes",{"type":50,"value":2282}," for plan capture.",{"type":44,"tag":84,"props":2284,"children":2286},{"id":2285},"workflow-10-full-postgresql-dsql-schema-migration",[2287],{"type":50,"value":2288},"Workflow 10: Full PostgreSQL → DSQL Schema Migration",{"type":44,"tag":53,"props":2290,"children":2291},{},[2292,2293,2297,2299,2303,2304,2309],{"type":50,"value":2092},{"type":44,"tag":130,"props":2294,"children":2295},{"href":640},[2296],{"type":50,"value":643},{"type":50,"value":2298}," and ",{"type":44,"tag":130,"props":2300,"children":2301},{"href":706},[2302],{"type":50,"value":709},{"type":50,"value":2187},{"type":44,"tag":59,"props":2305,"children":2307},{"className":2306},[],[2308],{"type":50,"value":1752},{"type":50,"value":2310}," first for mechanical fixes, then apply semantic conversions from the pg-migrations references for unfixable diagnostics and patterns the linter cannot handle. Re-lint the final output before deploying.",{"type":44,"tag":84,"props":2312,"children":2314},{"id":2313},"workflow-11-orm-migration-djangohibernaterails",[2315],{"type":50,"value":2316},"Workflow 11: ORM Migration (Django\u002FHibernate\u002FRails)",{"type":44,"tag":53,"props":2318,"children":2319},{},[2320,2322,2326],{"type":50,"value":2321},"Load ",{"type":44,"tag":130,"props":2323,"children":2324},{"href":780},[2325],{"type":50,"value":783},{"type":50,"value":2327}," for adapter names and framework-specific gotchas.",{"type":44,"tag":72,"props":2329,"children":2331},{"id":2330},"error-scenarios",[2332],{"type":50,"value":2333},"Error Scenarios",{"type":44,"tag":1694,"props":2335,"children":2336},{},[2337,2358,2384,2399,2415],{"type":44,"tag":1031,"props":2338,"children":2339},{},[2340,2350,2352,2357],{"type":44,"tag":1021,"props":2341,"children":2342},{},[2343,2348],{"type":44,"tag":59,"props":2344,"children":2346},{"className":2345},[],[2347],{"type":50,"value":1175},{"type":50,"value":2349}," returns no results:",{"type":50,"value":2351}," Use the default limits in the table above and note that limits should be verified against ",{"type":44,"tag":130,"props":2353,"children":2355},{"href":1455,"rel":2354},[1457],[2356],{"type":50,"value":1460},{"type":50,"value":66},{"type":44,"tag":1031,"props":2359,"children":2360},{},[2361,2371,2373,2377,2379,2383],{"type":44,"tag":1021,"props":2362,"children":2363},{},[2364,2369],{"type":44,"tag":59,"props":2365,"children":2367},{"className":2366},[],[2368],{"type":50,"value":380},{"type":50,"value":2370}," unavailable or timing out:",{"type":50,"value":2372}," See the Error Handling section of ",{"type":44,"tag":130,"props":2374,"children":2375},{"href":366},[2376],{"type":50,"value":369},{"type":50,"value":2378},". Do not silently skip validation — inform the user and require explicit confirmation before proceeding with manual rules from ",{"type":44,"tag":130,"props":2380,"children":2381},{"href":132},[2382],{"type":50,"value":135},{"type":50,"value":66},{"type":44,"tag":1031,"props":2385,"children":2386},{},[2387,2392,2394,2398],{"type":44,"tag":1021,"props":2388,"children":2389},{},[2390],{"type":50,"value":2391},"OCC serialization error:",{"type":50,"value":2393}," Retry the transaction. If persistent, check for hot-key contention — see ",{"type":44,"tag":130,"props":2395,"children":2396},{"href":198},[2397],{"type":50,"value":201},{"type":50,"value":66},{"type":44,"tag":1031,"props":2400,"children":2401},{},[2402,2407,2409,2414],{"type":44,"tag":1021,"props":2403,"children":2404},{},[2405],{"type":50,"value":2406},"Transaction exceeds limits:",{"type":50,"value":2408}," Split into batches under 3,000 rows — see ",{"type":44,"tag":130,"props":2410,"children":2411},{"href":492},[2412],{"type":50,"value":2413},"batched-migration.md",{"type":50,"value":66},{"type":44,"tag":1031,"props":2416,"children":2417},{},[2418,2423,2425,2431,2433,2437],{"type":44,"tag":1021,"props":2419,"children":2420},{},[2421],{"type":50,"value":2422},"Token expiration mid-operation:",{"type":50,"value":2424}," Generate a fresh IAM token — see ",{"type":44,"tag":130,"props":2426,"children":2428},{"href":2427},"references\u002Fauth\u002Fauthentication-guide.md",[2429],{"type":50,"value":2430},"authentication-guide.md",{"type":50,"value":2432},". See ",{"type":44,"tag":130,"props":2434,"children":2435},{"href":198},[2436],{"type":50,"value":201},{"type":50,"value":2438}," for other issues.",{"type":44,"tag":72,"props":2440,"children":2442},{"id":2441},"additional-resources",[2443],{"type":50,"value":2444},"Additional Resources",{"type":44,"tag":1694,"props":2446,"children":2447},{},[2448,2457],{"type":44,"tag":1031,"props":2449,"children":2450},{},[2451],{"type":44,"tag":130,"props":2452,"children":2454},{"href":1455,"rel":2453},[1457],[2455],{"type":50,"value":2456},"Aurora DSQL Documentation",{"type":44,"tag":1031,"props":2458,"children":2459},{},[2460],{"type":44,"tag":130,"props":2461,"children":2464},{"href":2462,"rel":2463},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Faurora-dsql-samples",[1457],[2465],{"type":50,"value":2466},"Code Samples Repository",{"items":2468,"total":2587},[2469,2488,2506,2525,2540,2556,2575],{"slug":2470,"name":2470,"fn":2471,"description":2472,"org":2473,"tags":2474,"stars":25,"repoUrl":26,"updatedAt":2487},"amazon-location-service","integrate Amazon Location Service APIs","Integrates Amazon Location Service APIs for AWS applications. Use this skill when users want to add maps (interactive MapLibre or static images); geocode addresses to coordinates or reverse geocode coordinates to addresses; calculate routes, travel times, or service areas; find places and businesses through text search, nearby search, or autocomplete suggestions; retrieve detailed place information including hours, contacts, and addresses; monitor geographical boundaries with geofences; or track device locations. Covers authentication, SDK integration, and all Amazon Location Service capabilities.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2475,2478,2481,2484],{"name":2476,"slug":2477,"type":15},"API Development","api-development",{"name":2479,"slug":2480,"type":15},"AWS","aws",{"name":2482,"slug":2483,"type":15},"Maps","maps",{"name":2485,"slug":2486,"type":15},"Navigation","navigation","2026-07-12T08:13:53.294026",{"slug":2489,"name":2489,"fn":2490,"description":2491,"org":2492,"tags":2493,"stars":25,"repoUrl":26,"updatedAt":2505},"amplify-workflow","build full-stack apps with AWS Amplify","Build and deploy full-stack web and mobile apps with AWS Amplify Gen2 (TypeScript code-first). Covers auth (Cognito), data (AppSync\u002FDynamoDB including schema modeling, enum types, relationships, authorization rules), storage (S3), functions, APIs, and AI (Amplify AI Kit with Bedrock). Supports React, Next.js, Vue, Angular, React Native, Flutter, Swift, and Android. Always use this skill for Amplify Gen2 topics — even for questions you think you know — it contains validated, version-specific patterns that prevent common mistakes. TRIGGER when: user mentions Amplify Gen2; project has amplify\u002F directory or amplify_outputs; code imports @aws-amplify packages; user asks about defineBackend, defineAuth, defineData, defineStorage, or npx ampx. SKIP: Amplify Gen1 (amplify CLI v6), standalone SAM\u002FCDK without Amplify (use aws-serverless), direct Bedrock without Amplify AI Kit (use bedrock).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2494,2497,2498,2499,2502],{"name":2495,"slug":2496,"type":15},"Auth","auth",{"name":2479,"slug":2480,"type":15},{"name":13,"slug":14,"type":15},{"name":2500,"slug":2501,"type":15},"Frontend","frontend",{"name":2503,"slug":2504,"type":15},"TypeScript","typescript","2026-07-12T08:13:47.134012",{"slug":2507,"name":2507,"fn":2508,"description":2509,"org":2510,"tags":2511,"stars":25,"repoUrl":26,"updatedAt":2524},"analyzer","analyze queried data for trends","Analyze queried data for trends, week-over-week comparisons, distributions, funnels, cohorts, top-N lists, anomalies, sanity checks, and report-ready findings. Use after or alongside ClickHouse queries when the user wants insight rather than raw rows.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2512,2515,2518,2521],{"name":2513,"slug":2514,"type":15},"Analytics","analytics",{"name":2516,"slug":2517,"type":15},"ClickHouse","clickhouse",{"name":2519,"slug":2520,"type":15},"Data Analysis","data-analysis",{"name":2522,"slug":2523,"type":15},"Statistics","statistics","2026-07-12T08:14:05.606036",{"slug":2526,"name":2526,"fn":2527,"description":2528,"org":2529,"tags":2530,"stars":25,"repoUrl":26,"updatedAt":2539},"artifact-management","manage and organize analysis artifacts","Save, organize, and describe reusable analysis artifacts such as SQL, result snapshots, CSV exports, summaries, caveats, plots, and report-ready files. Use when users ask to save, export, share, cite, reproduce, or organize data-analysis outputs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2531,2532,2535,2538],{"name":2519,"slug":2520,"type":15},{"name":2533,"slug":2534,"type":15},"Productivity","productivity",{"name":2536,"slug":2537,"type":15},"Reporting","reporting",{"name":17,"slug":18,"type":15},"2026-07-12T08:14:09.265555",{"slug":2541,"name":2541,"fn":2542,"description":2543,"org":2544,"tags":2545,"stars":25,"repoUrl":26,"updatedAt":2555},"attorney-assist","connect with attorneys for legal consultation","Connects the user with a LegalZoom attorney for legal consultation. Use when a user asks about attorneys, lawyers, or legal help, or when contract review reveals high risks or low-confidence findings.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2546,2549,2552],{"name":2547,"slug":2548,"type":15},"Contracts","contracts",{"name":2550,"slug":2551,"type":15},"Legal","legal",{"name":2553,"slug":2554,"type":15},"Risk Assessment","risk-assessment","2026-07-12T08:13:45.878361",{"slug":2557,"name":2557,"fn":2558,"description":2559,"org":2560,"tags":2561,"stars":25,"repoUrl":26,"updatedAt":2574},"building-pydantic-ai-agents","build AI agents with Pydantic AI","Build AI agents with Pydantic AI — tools, capabilities (including on-demand loading), structured output, streaming, testing, and multi-agent patterns. Use when the user mentions Pydantic AI, imports pydantic_ai, or asks to build an AI agent, add tools\u002Fcapabilities, defer capability loading, stream output, define agents from YAML, or test agent behavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2562,2565,2568,2571],{"name":2563,"slug":2564,"type":15},"Agents","agents",{"name":2566,"slug":2567,"type":15},"LLM","llm",{"name":2569,"slug":2570,"type":15},"Multi-Agent","multi-agent",{"name":2572,"slug":2573,"type":15},"Python","python","2026-07-12T08:14:01.893781",{"slug":2517,"name":2517,"fn":2576,"description":2577,"org":2578,"tags":2579,"stars":25,"repoUrl":26,"updatedAt":2586},"query ClickHouse databases via CLI","Connect to and query ClickHouse (a local server or a ClickHouse Cloud service) from the terminal using the official clickhousectl CLI, including the browser OAuth login flow. Use when the user wants to run SQL against ClickHouse, explore schemas and tables, inspect Cloud services, or authenticate clickhousectl. For building a local dev environment or deploying to Cloud, defer to the official ClickHouse skills (see Scope).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2580,2581,2584,2585],{"name":2513,"slug":2514,"type":15},{"name":2582,"slug":2583,"type":15},"CLI","cli",{"name":2516,"slug":2517,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T08:14:06.829692",43,{"items":2589,"total":2715},[2590,2597,2605,2612,2619,2625,2632,2639,2651,2669,2689,2702],{"slug":2470,"name":2470,"fn":2471,"description":2472,"org":2591,"tags":2592,"stars":25,"repoUrl":26,"updatedAt":2487},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2593,2594,2595,2596],{"name":2476,"slug":2477,"type":15},{"name":2479,"slug":2480,"type":15},{"name":2482,"slug":2483,"type":15},{"name":2485,"slug":2486,"type":15},{"slug":2489,"name":2489,"fn":2490,"description":2491,"org":2598,"tags":2599,"stars":25,"repoUrl":26,"updatedAt":2505},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2600,2601,2602,2603,2604],{"name":2495,"slug":2496,"type":15},{"name":2479,"slug":2480,"type":15},{"name":13,"slug":14,"type":15},{"name":2500,"slug":2501,"type":15},{"name":2503,"slug":2504,"type":15},{"slug":2507,"name":2507,"fn":2508,"description":2509,"org":2606,"tags":2607,"stars":25,"repoUrl":26,"updatedAt":2524},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2608,2609,2610,2611],{"name":2513,"slug":2514,"type":15},{"name":2516,"slug":2517,"type":15},{"name":2519,"slug":2520,"type":15},{"name":2522,"slug":2523,"type":15},{"slug":2526,"name":2526,"fn":2527,"description":2528,"org":2613,"tags":2614,"stars":25,"repoUrl":26,"updatedAt":2539},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2615,2616,2617,2618],{"name":2519,"slug":2520,"type":15},{"name":2533,"slug":2534,"type":15},{"name":2536,"slug":2537,"type":15},{"name":17,"slug":18,"type":15},{"slug":2541,"name":2541,"fn":2542,"description":2543,"org":2620,"tags":2621,"stars":25,"repoUrl":26,"updatedAt":2555},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2622,2623,2624],{"name":2547,"slug":2548,"type":15},{"name":2550,"slug":2551,"type":15},{"name":2553,"slug":2554,"type":15},{"slug":2557,"name":2557,"fn":2558,"description":2559,"org":2626,"tags":2627,"stars":25,"repoUrl":26,"updatedAt":2574},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2628,2629,2630,2631],{"name":2563,"slug":2564,"type":15},{"name":2566,"slug":2567,"type":15},{"name":2569,"slug":2570,"type":15},{"name":2572,"slug":2573,"type":15},{"slug":2517,"name":2517,"fn":2576,"description":2577,"org":2633,"tags":2634,"stars":25,"repoUrl":26,"updatedAt":2586},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2635,2636,2637,2638],{"name":2513,"slug":2514,"type":15},{"name":2582,"slug":2583,"type":15},{"name":2516,"slug":2517,"type":15},{"name":13,"slug":14,"type":15},{"slug":2640,"name":2640,"fn":2641,"description":2642,"org":2643,"tags":2644,"stars":25,"repoUrl":26,"updatedAt":2650},"cline-session-history","search and browse Cline session history","Search and browse Cline session history. Use when the user asks to find, list, inspect, or export Cline sessions by time period, prompt content, status, model, provider, source, mode, workspace, or other criteria. Also use when the user wants to read a session transcript or export sessions to a directory. Trigger phrases include \"find my session\", \"search my session history\", \"show me past sessions\", \"what was that session where\", \"find the session that started with\", and any mention of past Cline conversations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2645,2646,2649],{"name":2563,"slug":2564,"type":15},{"name":2647,"slug":2648,"type":15},"History","history",{"name":2533,"slug":2534,"type":15},"2026-07-19T06:03:13.945151",{"slug":2652,"name":2652,"fn":2653,"description":2654,"org":2655,"tags":2656,"stars":25,"repoUrl":26,"updatedAt":2668},"convex-design","build reactive backends with Convex","Design and build reactive, type-safe, production-grade backends on Convex. Covers schema, queries\u002Fmutations\u002Factions, indexes, auth, file storage, scheduling, real-time multiplayer, mobile backends, and LLM\u002Fagent workflows on Convex's one-platform stack.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2657,2658,2661,2662,2665],{"name":2495,"slug":2496,"type":15},{"name":2659,"slug":2660,"type":15},"Backend","backend",{"name":13,"slug":14,"type":15},{"name":2663,"slug":2664,"type":15},"Real-time","real-time",{"name":2666,"slug":2667,"type":15},"Storage","storage","2026-07-12T08:13:37.101253",{"slug":2670,"name":2670,"fn":2671,"description":2672,"org":2673,"tags":2674,"stars":25,"repoUrl":26,"updatedAt":2688},"cosmosdb-best-practices","optimize Azure Cosmos DB performance","Azure Cosmos DB performance optimization and best practices guidelines for NoSQL,\npartitioning, queries, SDK usage, and vector search. Use when writing, reviewing,\nor refactoring code that interacts with Azure Cosmos DB, designing data models,\noptimizing queries, or implementing high-performance database operations.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2675,2678,2681,2682,2685],{"name":2676,"slug":2677,"type":15},"Azure","azure",{"name":2679,"slug":2680,"type":15},"Cosmos DB","cosmos-db",{"name":13,"slug":14,"type":15},{"name":2683,"slug":2684,"type":15},"NoSQL","nosql",{"name":2686,"slug":2687,"type":15},"Performance","performance","2026-07-12T08:13:54.531719",{"slug":2690,"name":2690,"fn":2691,"description":2692,"org":2693,"tags":2694,"stars":25,"repoUrl":26,"updatedAt":2701},"data-analyst","analyze ClickHouse analytics data","Act as an interactive data analyst for ClickHouse-backed analytics. Use when the user asks questions about internal data, metrics, dashboards, telemetry, active users, revenue, funnels, trends, distributions, or wants an analyst-style conversation, ad hoc SQL, charts, or a data export against ClickHouse (local or ClickHouse Cloud).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2695,2696,2697,2700],{"name":2513,"slug":2514,"type":15},{"name":2516,"slug":2517,"type":15},{"name":2698,"slug":2699,"type":15},"Dashboards","dashboards",{"name":2519,"slug":2520,"type":15},"2026-07-12T08:13:31.975246",{"slug":2703,"name":2703,"fn":2704,"description":2705,"org":2706,"tags":2707,"stars":25,"repoUrl":26,"updatedAt":2714},"dataproc-skills","manage Dataproc clusters and jobs","Skills to interact with your Dataproc clusters and jobs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2708,2711],{"name":2709,"slug":2710,"type":15},"Data Engineering","data-engineering",{"name":2712,"slug":2713,"type":15},"Operations","operations","2026-07-12T08:13:42.179275",45]