Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
6333e8f
feat: migrate @contentstack/apps-cli to cli-plugins monorepo and add …
harshitha-cstk May 21, 2026
ee1001c
chore: update pnpm-lock.yaml with new dependencies for contentstack-a…
harshitha-cstk May 21, 2026
739b0b3
chore: add Snyk policy file to manage known vulnerabilities for conte…
harshitha-cstk May 22, 2026
137f9ae
Merge pull request #158 from contentstack/enh/dx-7524-migrate-apps-cl…
harshitha-cstk May 22, 2026
c261260
enh: migrate bulk-operations to cli-plugins
harshitha-cstk May 22, 2026
deb123e
feat: migrate @contentstack/cli-cm-migrate-rte to cli-plugins monorep…
harshitha-cstk May 22, 2026
deb79d1
feat(DX-7531): migrate contentstack-cli-tsgen v1 into cli-plugins mon…
cs-raj May 24, 2026
2535ee5
feat(DX-7525): migrate contentstack-cli-content-type v1 into cli-plug…
cs-raj May 24, 2026
a69c382
feat: migrate @contentstack/cli-cm-regex-validate to cli-plugins mono…
cs-raj May 25, 2026
1c00c82
fix: correct esModuleInterop imports and tsconfig for regex-validate
cs-raj May 25, 2026
8f23871
Merge pull request #163 from contentstack/enh/dx-7527-migrate-bulk-op…
harshitha-cstk May 25, 2026
f5b9176
Merge branch 'feat/migrate-external-cli-plugins-v1' into enhc/DX-7531…
cs-raj May 25, 2026
ace877a
Merge pull request #167 from contentstack/enhc/DX-7531-migrate-tsgen-v1
cs-raj May 25, 2026
e69019b
Merge branch 'feat/migrate-external-cli-plugins-v1' into enhc/DX-7530…
cs-raj May 25, 2026
f3de42a
Merge pull request #173 from contentstack/enhc/DX-7530-migrate-cli-re…
cs-raj May 25, 2026
05794eb
Merge branch 'feat/migrate-external-cli-plugins-v1' into enhc/DX-7525…
cs-raj May 25, 2026
6744b75
Merge pull request #169 from contentstack/enhc/DX-7525-content-type-m…
cs-raj May 25, 2026
60d5412
Merge branch 'development' into feat/migrate-external-cli-plugins-v1
harshitha-cstk May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion .cursor/rules/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Context-aware rules that load automatically based on the files you're editing, o

### Monorepo Structure

This is a **CLI plugins** monorepo with 12 plugin packages under `packages/`:
This is a **CLI plugins** monorepo with plugin packages under `packages/`, including:
- `contentstack-audit` - Stack audit and fix operations
- `contentstack-bootstrap` - Seed/bootstrap stacks with content
- `contentstack-branches` - Git-based branch management for stacks
Expand All @@ -50,6 +50,9 @@ This is a **CLI plugins** monorepo with 12 plugin packages under `packages/`:
- `contentstack-migration` - Content migration workflows
- `contentstack-seed` - Seed stacks with generated data
- `contentstack-variants` - Manage content variants
- `contentstack-apps-cli` - Developer Hub apps (`app:*` commands; npm `@contentstack/apps-cli`)
- `contentstack-content-type` - Content Type introspection (`content-type:*` commands; npm `contentstack-cli-content-type`; Jest tests)
- `contentstack-cli-tsgen` - TypeScript typings (`csdx tsgen`; npm `contentstack-cli-tsgen`; Jest integration tests)

All plugins depend on:
- `@contentstack/cli-command` - Base Command class
Expand Down
7 changes: 7 additions & 0 deletions .github/config/release.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
"releaseAll": true,
"plugins": {
"variants": false,
"query-export": false,
"utilities": false,
"command": false,
"config": false,
Expand All @@ -17,6 +19,11 @@
"dev-dependencies": false,
"launch": false,
"branches": false,
"apps-cli": false,
"content-type": false,
"regex-validate": false,
"tsgen": false,
"bulk-operations": false,
"core": false
}
}
40 changes: 40 additions & 0 deletions .github/workflows/release-production-plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,14 @@ jobs:
package: ./packages/contentstack-migration/package.json
tag: latest

# Migrate RTE
- name: Publishing migrate RTE (Production)
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/contentstack-migrate-rte/package.json
tag: latest

# Seed
- name: Publishing seed (Production)
uses: JS-DevTools/npm-publish@v3
Expand All @@ -127,6 +135,14 @@ jobs:
package: ./packages/contentstack-bulk-publish/package.json
tag: latest

# Bulk Operations
- name: Publishing bulk operations (Production)
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/contentstack-bulk-operations/package.json
tag: latest

# Branches
- name: Publishing branches (Production)
uses: JS-DevTools/npm-publish@v3
Expand All @@ -143,6 +159,30 @@ jobs:
package: ./packages/contentstack-query-export/package.json
tag: latest

# Content Type
- name: Publishing content-type (Production)
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/contentstack-content-type/package.json
tag: latest

# Regex Validate
- name: Publishing regex-validate (Production)
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/contentstack-cli-cm-regex-validate/package.json
tag: latest

# Tsgen
- name: Publishing tsgen (Production)
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/contentstack-cli-tsgen/package.json
tag: latest

- name: Create Production Release
id: create_release
env:
Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/tsgen-integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Tsgen Integration Tests

on:
pull_request:
types: [opened, synchronize, reopened]

jobs:
tsgen-integration:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.28.0

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build tsgen plugin
run: pnpm --filter contentstack-cli-tsgen run build

- name: Install Contentstack CLI (v1)
run: npm i -g @contentstack/cli

- name: Configure CLI region
run: csdx config:set:region ${{ secrets.REGION }}

- name: Add delivery token
run: csdx auth:tokens:add -a ${{ secrets.TOKEN_ALIAS }} --delivery -k ${{ secrets.APIKEY }} --token ${{ secrets.DELIVERYKEY }} -e ${{ secrets.ENVIRONMENT }}

- name: Link tsgen plugin
working-directory: ./packages/contentstack-cli-tsgen
run: csdx plugins:link

- name: Run integration tests
run: pnpm --filter contentstack-cli-tsgen run test:integration
env:
TOKEN_ALIAS: ${{ secrets.TOKEN_ALIAS }}

- name: Unlink tsgen plugin
working-directory: ./packages/contentstack-cli-tsgen
run: csdx plugins:unlink
if: always()
24 changes: 24 additions & 0 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,27 @@ jobs:
- name: Run tests for Contentstack Query Export
working-directory: ./packages/contentstack-query-export
run: npm run test:unit

- name: Run tests for Contentstack Apps CLI
working-directory: ./packages/contentstack-apps-cli
run: npm run test:unit:report:json

- name: Run tests for Contentstack Content Type plugin
working-directory: ./packages/contentstack-content-type
run: npm run test:unit

- name: Run tests for Contentstack Regex Validate plugin
working-directory: ./packages/contentstack-cli-cm-regex-validate
run: npm run test:unit

- name: Run tests for Contentstack Tsgen plugin
working-directory: ./packages/contentstack-cli-tsgen
run: npm run test

- name: Run tests for Contentstack Migrate RTE
working-directory: ./packages/contentstack-migrate-rte
run: npm test

- name: Run tests for Contentstack Bulk Operations
working-directory: ./packages/contentstack-bulk-operations
run: npm test
94 changes: 93 additions & 1 deletion .talismanrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,96 @@
fileignoreconfig:
- filename: packages/contentstack-migrate-rte/test/dummy/expectedEntriesResponse.json
checksum: a2784a3cb21780434958478d478dcb91d2d9a3a8025567d90fe8d74e9141b052
- filename: packages/contentstack-migrate-rte/test/dummy/entriesResponse.json
checksum: 691f3dcfbbcf69fd21e109a0d7003bdb500af2d0253bb7d7e8a0636d8f2a58f4
- filename: pnpm-lock.yaml
checksum: 89acb731dc98c886694fa4d267c11c188000b8ecbe5ee6e4809e5bc6ec33a2f3
checksum: e0fb4541c1f31354c8899eba61bc579942a4c1057658973b4691c2890c98ff93
- filename: packages/contentstack-bulk-operations/src/utils/bulk-publish-url-generator.ts
checksum: 052d811adb5da9bac8c70e5b3dc4ddf700d5aea274dd2aa90a2df374118fbd26
- filename: packages/contentstack-bulk-operations/src/utils/client.ts
checksum: efdada21291db6d66e3114b7408163dee4cafe6ddb3904f02aa67140a1a89bb6
- filename: packages/contentstack-bulk-operations/test/unit/core/index.test.ts
checksum: 0d789258f5a9664e8a7dc5f5b23da846d0eaf8c52638ff20fb1f26104d3f9f8d
- filename: packages/contentstack-migrate-rte/README.md
checksum: 3810817d905405de86814af35fc0f0a6712cacd70f43223869b4f0599b6e579c
- filename: packages/contentstack-bulk-operations/test/unit/messages/index.test.ts
checksum: e86e76db4f4afc899ae2a4742627a71a7d227a7139014361b9d83de6154b3c7a
- filename: packages/contentstack-bulk-operations/test/unit/base-bulk-command.test.ts
checksum: 18684a596707865e671f1ee57b4819cb3f4b4f2633d6c49f7f4b6ce09391359f
- filename: packages/contentstack-bulk-operations/src/base-bulk-command.ts
checksum: 34907f0e00c40096cbe517b680a24fdf57caac351e45bc44b96e41987e619b67
- filename: packages/contentstack-bulk-operations/test/unit/services/index.test.ts
checksum: aae62ba072551bedf869ec7b1f6bf90238bc039336f37e7c583da8ba0637f9be
- filename: packages/contentstack-bulk-operations/test/unit/utils/bulk-operation-log-handler.test.ts
checksum: cec7ba35157c6516d67931d41deb57b7a156d9fc05dbab93ca5116e89b95c820
- filename: packages/contentstack-bulk-operations/test/unit/utils/client.test.ts
checksum: 178611b1f153b46a0020da22cc18293d5bd9c539ec2e54557fd8c1a3c2e796b3
- filename: packages/contentstack-bulk-operations/test/unit/services/taxonomy-service.test.ts
checksum: 33af8ee198158dd92916d76207e172b5316864d063a6929526ca259b459ec79a
- filename: packages/contentstack-cli-tsgen/src/commands/tsgen.ts
checksum: 054ea78f765edca62c785714cf8962df4fb91529c0851439d1ed61e963467408
- filename: packages/contentstack-cli-cm-regex-validate/messages/index.json
checksum: 044b311bde624dcc3c12434174d6027dbb6b62eefdfae120570a1748f806c60c
- filename: packages/contentstack-cli-tsgen/AGENTS.md
checksum: 75b4f1414b547d0bd83df5ed4fb80020acc0ed849619bed2639491b565be7a1b
- filename: packages/contentstack-bulk-operations/eslint.config.js
checksum: 0d93d7f660fe4cd6d62348c85ac10bf7c66018ea0b8e3e6d5a53419433f15867
- filename: packages/contentstack-cli-cm-regex-validate/test/utils/connect-stack.test.ts
checksum: 8fcd1dc2770a2a3f55ba462b7ffd3fc2e3cf45342c63e5b6dc5c1db4c2bd9738
- filename: packages/contentstack-bulk-operations/test/unit/utils/validators.test.ts
checksum: 69cf394584e325b972d6825879de7c31b9dd1bd50b0bb057aecb739258ac0317
- filename: packages/contentstack-bulk-operations/test/unit/commands/bulk-assets.test.ts
checksum: c099c628c7ae1a40a9ca5580de0afa8309a611b2dff7837b10bb8f70eb92f8b3
- filename: packages/contentstack-bulk-operations/test/unit/core/operation-executor.test.ts
checksum: 97f0ddd4d547f37a8d93650aa1e8af4ef4dbce343dd51853e34bbde6107cd725
- filename: packages/contentstack-cli-tsgen/src/lib/helper.ts
checksum: a7ead0030ead9d15b6b6e9623f61e7def77b00325e3988f0e3d73a145180dedc
- filename: packages/contentstack-migrate-rte/test/utils/index.js
checksum: bc2a509a86174aecbaf0bfc44d6ad3afabe57ef871ec91b796d498e00177e3f0
- filename: packages/contentstack-cli-cm-regex-validate/skills/code-review/SKILL.md
checksum: b92ea1c8e2f901c9e1e60f6ef6986d348a40a7869c236e3c1f3ca53b553dbb8e
- filename: packages/contentstack-migrate-rte/test/commands/json-migration.test.js
checksum: 56e10f1e0d2794fa13bcf5a6bb3e868b28277df1762fb3df0a8a82ad44f8045b
- filename: packages/contentstack-bulk-operations/test/unit/utils/interactive.test.ts
checksum: 3ee0ff5a74929346bfe997aeb977b4e93d398ea63892efc5f85e0b51a21074f6
- filename: packages/contentstack-bulk-operations/src/core/operation-executor.ts
checksum: 46295f495f007ad291787133936c5af3c76838d72f2be0de9c235bb644d6f905
- filename: packages/contentstack-bulk-operations/src/utils/batch-queue-handler.ts
checksum: d1d031242b99f5c738e2f4587ca2f5f3e96373e479ebaf4d93b2f98152943593
- filename: packages/contentstack-bulk-operations/src/messages/index.ts
checksum: 2d904462af6dc3ddc00ae6bb4433c846500ddfecee5a9e1fb1c236bd598a2ee1
- filename: packages/contentstack-migrate-rte/src/commands/cm/entries/migrate-html-rte.js
checksum: a069c50d5152022a0957d5f597158e2d8c74803b3d24ff6bbbe3b09f0e9053e2
- filename: packages/contentstack-bulk-operations/test/unit/utils/config-builder.test.ts
checksum: d46757d3bb98d76845e83d4585f269b62b1fa9cb5bee3215b88fed38fd1dbb53
- filename: packages/contentstack-bulk-operations/src/utils/revert-retry-handler.ts
checksum: 76899098d74de1dd20f1b08401c65f23b2bec584c051388e63f70f3d24a6d1a4
- filename: packages/contentstack-bulk-operations/src/utils/interactive.ts
checksum: ba4fdd6f17c7d43cae639158f82dea3065ba8a368ddce8c476bfe49a6945e5c1
- filename: packages/contentstack-bulk-operations/test/unit/utils/taxonomy-interactive-select.test.ts
checksum: 34a085702d01d7e16e1507ea1e434b374c2cba5dd884aad5996c5484412897c0
- filename: packages/contentstack-bulk-operations/src/core/rate-limiter.ts
checksum: 81e3d624166ab34a589e3e8527b9e57ebc7e7f4374efd0483b1df0dd11788b68
- filename: packages/contentstack-bulk-operations/src/interfaces/index.ts
checksum: 0ff6bbc372758a20783f36bd391ba9d500530433fde472a1aacaf54f6b4a1688
- filename: packages/contentstack-bulk-operations/test/unit/utils/operation-confirmation.test.ts
checksum: 043185e56361ffae2116a2af5a4da16986816ad054fd94f189269e5b6150609e
- filename: packages/contentstack-cli-cm-regex-validate/skills/contentstack-cli/SKILL.md
checksum: 9420a516ba6046b05748683c90e3817d091cef76c46e029cb3745d6c0c350838
- filename: packages/contentstack-cli-cm-regex-validate/skills/dev-workflow/SKILL.md
checksum: b423dd35d0f7f0f25315e2a30198669b50db350f0ab2f917a1d3c4fbb0af0534
- filename: packages/contentstack-bulk-operations/test/unit/commands/bulk-entries.test.ts
checksum: 845512e660813a6d7d96efd89dcff6eba4591a3f9ff371dc9b1aad38921e18a6
- filename: packages/contentstack-bulk-operations/test/unit/utils/revert-retry-handler.test.ts
checksum: 078f9633edb53204ed14ebe3cf6b1d6063729dd37b7ee1c6e936a344ceabebda
- filename: packages/contentstack-migrate-rte/src/lib/util/index.js
checksum: 7d85f342c7fd7875713cebfae83f68d8592cc732a15cca48ddecbeae818cb4c5
- filename: packages/contentstack-cli-cm-regex-validate/src/utils/connect-stack.ts
checksum: c77c7c25efc6d043b26e3dd0a516e22ac50142fa9fa5ff3a53a7c9fb8f24ebd6
- filename: packages/contentstack-bulk-operations/src/utils/config-builder.ts
checksum: a7b5259ad719b8c5929f9fea3783bdc92610dc2549426204c1bb6813e7e1112a
- filename: packages/contentstack-bulk-operations/README.md
checksum: 169110e7c6159632f19dc16e17dcb5bac22e5d6880339b35ba076a2fe0d75266
- filename: packages/contentstack-bulk-operations/test/unit/utils/batch-queue-handler.test.ts
checksum: c91f1822b5cfd34a4f4ba05dfc56c10a66e0f5ddb55a1cf5b454fa9549ea0052
version: '1.0'
75 changes: 75 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Contentstack CLI plugins – Agent guide

**Universal entry point** for contributors and AI agents. Detailed conventions live in **`skills/*/SKILL.md`** (per-package).

## What this repo is

| Field | Detail |
| --- | --- |
| **Name:** | Contentstack CLI plugins (pnpm monorepo; root package name `csdx`) |
| **Purpose:** | OCLIF plugins that extend the Contentstack CLI (import/export, clone, migration, seed, audit, variants, Developer Hub apps, regex validation, etc.). |
| **Out of scope (if any):** | The **core** CLI aggregation lives in the separate `cli` monorepo; this repo ships plugin packages only. |

## Tech stack (at a glance)

| Area | Details |
| --- | --- |
| **Language** | TypeScript / JavaScript, Node **>= 18** (`engines` in root `package.json`) |
| **Build** | pnpm workspaces (`packages/*`); per package: `tsc`, OCLIF manifest/readme where applicable → `lib/` |
| **Tests** | Mocha + Chai; layouts under `packages/*/test/` (see [skills/testing/SKILL.md](skills/testing/SKILL.md)) |
| **Tests** | Mocha + Chai (most packages); Jest + ts-jest (`contentstack-cli-cm-regex-validate`); layouts under `packages/*/test/` |
| **Lint / coverage** | ESLint in packages that define `lint` scripts; nyc where configured |
| **Other** | OCLIF v4, Husky |

## Commands (quick reference)

| Command type | Command |
| --- | --- |
| **Build** | `pnpm build` |
| **Test** | `pnpm test` |
| **Lint** | `pnpm run lint` in a package that defines `lint` (no root aggregate lint script) |

CI: [.github/workflows/unit-test.yml](.github/workflows/unit-test.yml) and other workflows under [.github/workflows/](.github/workflows/).

## Where the documentation lives: skills

| Skill | Path | What it covers |
| --- | --- | --- |
| Development workflow | [skills/dev-workflow/SKILL.md](skills/dev-workflow/SKILL.md) | pnpm commands, CI, TDD expectations, PR checklist |
| Contentstack CLI | [skills/contentstack-cli/SKILL.md](skills/contentstack-cli/SKILL.md) | Plugin commands, OCLIF, Contentstack APIs (incl. `app:*` / `@contentstack/apps-cli`) |
| Framework | [skills/framework/SKILL.md](skills/framework/SKILL.md) | Utilities, config, logging, errors (incl. Developer Hub SDK, manifests, GraphQL) |
| Testing | [skills/testing/SKILL.md](skills/testing/SKILL.md) | Mocha/Chai, coverage, mocks |
| Code review | [skills/code-review/SKILL.md](skills/code-review/SKILL.md) | PR review for this monorepo |

## Apps CLI plugin (`@contentstack/apps-cli`)

- **Package path:** [packages/contentstack-apps-cli](packages/contentstack-apps-cli)
- **npm name:** `@contentstack/apps-cli` (unchanged for consumers)
- **Migrated from:** [contentstack/contentstack-apps-cli](https://github.com/contentstack/contentstack-apps-cli) — see [APPS-CLI-MIGRATION.md](APPS-CLI-MIGRATION.md)
- **v1 / v2:** Maintain on `v1-dev` (1.x CLI deps) and `v2-dev` / `v2-beta` (2.x beta deps) branches; align `@contentstack/cli-command` and `@contentstack/cli-utilities` versions with the target CLI line.
- **Docs:** OCLIF / `app:*` commands → [contentstack-cli](skills/contentstack-cli/SKILL.md#apps-cli-commands-app); SDK, manifests, GraphQL, HTTP → [framework](skills/framework/SKILL.md#apps-cli-plugin-contentstackapps-cli)

## Content Type plugin (`contentstack-cli-content-type`)

- **Package path:** [packages/contentstack-content-type](packages/contentstack-content-type)
- **npm name:** `contentstack-cli-content-type`
- **Migrated from:** [contentstack/contentstack-cli-content-type](https://github.com/contentstack/contentstack-cli-content-type) — see [CONTENT-TYPE-MIGRATION.md](CONTENT-TYPE-MIGRATION.md)
- **v1 / v2:** This branch carries the **v1 line** (`@contentstack/cli-command ^1.8.2`, `@contentstack/cli-utilities ^1.18.3`, npm tag `latest`). The v2-beta line lives on `v2-beta`.
- **Tests:** Jest + ts-jest (unlike most other packages which use Mocha + Chai)
- **Docs:** 6 commands under `content-type:*` → [packages/contentstack-content-type/AGENTS.md](packages/contentstack-content-type/AGENTS.md)
- **v1 / v2:** This branch carries the **v1 line** (`@contentstack/cli-command ^1.8.2`, `@contentstack/cli-utilities ^1.18.3`).
- **Docs:** See [packages/contentstack-apps-cli/AGENTS.md](packages/contentstack-apps-cli/AGENTS.md)

## Regex Validate plugin (`@contentstack/cli-cm-regex-validate`)

- **Package path:** [packages/contentstack-cli-cm-regex-validate](packages/contentstack-cli-cm-regex-validate)
- **npm name:** `@contentstack/cli-cm-regex-validate`
- **Migrated from:** [contentstack/cli-cm-regex-validate](https://github.com/contentstack/cli-cm-regex-validate) — see [REGEX-VALIDATE-MIGRATION.md](REGEX-VALIDATE-MIGRATION.md)
- **v1 / v2:** This branch carries the **v1 line** (`@contentstack/cli-command ^1.8.2`, `@contentstack/cli-utilities ^1.18.3`, version `1.0.0`, npm tag `latest`).
- **Tests:** Jest + ts-jest (unlike most other packages which use Mocha + Chai)
- **Command:** Single command `cm:stacks:validate-regex` (short name `RGXVLD`)
- **Docs:** [packages/contentstack-cli-cm-regex-validate/AGENTS.md](packages/contentstack-cli-cm-regex-validate/AGENTS.md)

## Using Cursor (optional)

If you use **Cursor**, [.cursor/rules/README.md](.cursor/rules/README.md) only points to **`AGENTS.md`**—same docs as everyone else.
Loading
Loading