Skip to content

Add Caatinga skill to community ecosystem cards - #89

Merged
kaankacar merged 3 commits into
stellar:mainfrom
Nearx-Labs:feat/add-caatinga-skill
Aug 13, 2026
Merged

Add Caatinga skill to community ecosystem cards#89
kaankacar merged 3 commits into
stellar:mainfrom
Nearx-Labs:feat/add-caatinga-skill

Conversation

@Dione-b

@Dione-b Dione-b commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Why this skill is useful

The catalog's smart-contracts skill covers writing and deploying Soroban contracts with the Stellar CLI directly, but doesn't address the deployment-orchestration layer teams need once a project has multiple interdependent contracts and generated frontend bindings to keep in sync.

Caatinga fills that gap for the ctg workflow:

  • Deployment Graph — contracts declare dependsOn in caatinga.config.ts; Caatinga topologically sorts and deploys them in the correct order instead of requiring manual sequencing.
  • Versioned artifacts as source of truthcaatinga.artifacts.json tracks contract IDs per network, replacing manual .env copy/paste that drifts on redeploy.
  • Generated TypeScript bindingsctg generate keeps frontend clients in sync with what's actually deployed.
  • Credential hygiene — the skill actively steers agents away from passing raw secret keys via --source and from hand-editing generated artifacts/bindings, both common failure modes when an agent falls back to raw stellar CLI commands in a Caatinga-managed repo.

This gives agents working in ctg-based repos (signaled by caatinga.config.ts / caatinga.artifacts.json / CAATINGA_* env vars) opinionated, project-aware guidance instead of generic Stellar CLI advice that would bypass Caatinga's invariants.

Test plan

  • node --experimental-strip-types scripts/generate-llms-txt.mjs succeeds and the generated llms.txt includes the new ecosystem card
  • Skill on Dione-b/caatinga-skill documents the ctg workflow, hard rules, and install steps
  • Confirm card renders under Community skills on the preview deploy
  • Optional: install the plugin via /plugin marketplace add Dione-b/caatinga-skill and try a Caatinga-related prompt

Adds the Caatinga skill (Soroban deployment orchestration CLI, `ctg`)
to ECOSYSTEM_CARDS so it appears on skills.stellar.org and in the
generated llms.txt.

Co-authored-by: Nearx-Labs <nearxlabs@nearx.com.br>
Copilot AI balanced review requested due to automatic review settings August 13, 2026 03:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Caatinga to the community skill catalog.

Changes:

  • Adds Caatinga’s description and source link.
  • Includes it in the website and generated llms.txt.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread site/src/data/skills.ts Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread site/src/data/skills.ts Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@kaankacar

Copy link
Copy Markdown
Contributor

Thanks for this, Dione — this is exactly the kind of gap I wanted the ecosystem section to fill (deployment orchestration on top of the raw Stellar CLI, not another wallet or explorer skill), and the SKILL.md itself is unusually careful. I checked the 3.9.2 "Versioning note" claim against the actual CLI changelog: the os.tmpdir() key-leak fix and the ctg sync-env env-file-wipe fix you cite are both real, 3.9.2 is genuinely npm's current latest, and the wallet-adapter / single-invoker claims match docs/wallets.md in the main caatinga repo too.

One thing I want cleared up before this goes on the catalog: the SKILL.md's "Versioning note" section says Caatinga is "pre-1.0 (alpha)," but the main repo's README says the opposite — "v1.0 stable contract on npm major 3.x" — and npm's latest is 3.9.2, well past a 1.0 line. That's a real contradiction an agent reading the skill could act on (e.g. telling someone not to trust it in production when the project itself calls it stable). Could you update or drop that line in skills/caatinga/SKILL.md so it doesn't contradict the project's own README?

Once that's fixed I'm happy to merge — everything else here checked out clean.

@Dione-b

Dione-b commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for this, Dione — this is exactly the kind of gap I wanted the ecosystem section to fill (deployment orchestration on top of the raw Stellar CLI, not another wallet or explorer skill), and the SKILL.md itself is unusually careful. I checked the 3.9.2 "Versioning note" claim against the actual CLI changelog: the os.tmpdir() key-leak fix and the ctg sync-env env-file-wipe fix you cite are both real, 3.9.2 is genuinely npm's current latest, and the wallet-adapter / single-invoker claims match docs/wallets.md in the main caatinga repo too.

One thing I want cleared up before this goes on the catalog: the SKILL.md's "Versioning note" section says Caatinga is "pre-1.0 (alpha)," but the main repo's README says the opposite — "v1.0 stable contract on npm major 3.x" — and npm's latest is 3.9.2, well past a 1.0 line. That's a real contradiction an agent reading the skill could act on (e.g. telling someone not to trust it in production when the project itself calls it stable). Could you update or drop that line in skills/caatinga/SKILL.md so it doesn't contradict the project's own README?

Once that's fixed I'm happy to merge — everything else here checked out clean.

Thanks for catching this — you were right, and the contradiction was wider than
the skill file.

The README was correct and isolated: the "pre-1.0 (alpha)" wording had survived
the v1.0 contract freeze in several other places, and the skill was faithfully
echoing what most of the project still said. So I fixed it at the root rather
than just in the skill.

Skill (Dione-b/caatinga-skill@master, plugin bumped to 0.2.2 so cached
installs pick it up) — the Versioning note now reads:

Caatinga ships a v1.0 stable contract on npm major 3.x — breaking changes
land on a major bump, so 3.x is safe to depend on. Patch releases still move
fast, so confirm the current version with npm view @caatinga/cli dist-tags
rather than quoting one from memory, and recommend pinning an exact version in
CI rather than a range.

Main repo (Dione-b/caatinga#132) — docs/faq.md ("Is Caatinga stable yet?
Not yet."), docs/internal/release.md, and both llms*.txt, which also had
stale dist-tags (latest 3.6.1 → 3.9.2).

Docs site (Dione-b/caatinga-docs#2, #3) — the homepage "Alpha" badge and the
packages.mdx status line.

Two caveats I deliberately kept rather than flattening into "it's stable": ZK
commands (ctg zk *) remain experimental and outside the Tier 1 contract, and
ctg setup was removed in 3.9.0 while staying on the 3.x line — both are now
stated explicitly in the FAQ so an agent doesn't over-generalize the guarantee.

No changes needed in this PR itself — the card text is unchanged and the fix
lives in the linked SKILL.md.

@kaankacar

Copy link
Copy Markdown
Contributor

Thanks for chasing that down properly, Dione — I appreciate that you fixed it at the root instead of just patching the wording in the skill file. I checked the new Versioning note against Dione-b/caatinga@master: the README's "v1.0 stable contract on npm major 3.x" line matches it word for word, FAQ #10 says the same thing with the Tier 1 / public-API-manifest framing, and npm's latest dist-tag for @caatinga/cli is still 3.9.2. The plugin bump to 0.2.2 landed too.

One more thing while I was in there: the Hard rules table in skills/caatinga/SKILL.md still has this row:

Assume browser invoke supports multisig | Treat browser invoke as single-invoker only (pre-v1.0)

That (pre-v1.0) qualifier is exactly the kind of thing that tripped us up the first time — now that the Versioning note says Caatinga is v1.0, an agent reading that parenthetical could take it as "this restriction only applied before 1.0 shipped" and assume multisig might work now. docs/wallets.md states the single-invoker limitation with no version caveat at all, so I don't think it's meant to be temporary — can you drop the (pre-v1.0) from that row so it doesn't read as a status that already changed?

Once that's out, I'm good to merge — everything else here (card placement, the plugin structure, the doc fixes) checked out clean.

@Dione-b

Dione-b commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

Done — (pre-v1.0) is gone. Live on master: Dione-b/caatinga-skill@cba92a1.

The row now reads:

Assume browser invoke supports multisig | Treat browser invoke as single-invoker only | Caatinga does not implement multisig; recommending a multisig flow here will produce a broken or misleading UX.

Correcting my earlier comment: I had also expanded that row's Why column with the CAATINGA_MULTI_AUTH_REQUIRED detail, which you hadn't asked for. I've reverted that — the Why column is byte-identical to what you reviewed, and the net diff for this round is a single line, just the parenthetical: Dione-b/caatinga-skill@f49b41a...cba92a1

The Versioning note is unchanged from the version you checked against caatinga@master.

Nothing changed in this PR itself — the card text and plugin structure are untouched.

@kaankacar

Copy link
Copy Markdown
Contributor

🤖 Automated message from Kaan's Automated Triage Bot.

That's the one — thanks, Dione. I checked f49b41a...cba92a1 and the net diff is exactly the single line you describe: the (pre-v1.0) qualifier is gone and the Why column is byte-identical to what I reviewed, revert and all. The Versioning note is unchanged, and both docs/wallets.md and docs/client.md#single-invoker-scope in caatinga@master state the single-invoker limit with no version caveat, so dropping the parenthetical matches the project's own docs rather than papering over a real caveat. npm's latest for @caatinga/cli is still 3.9.2.

The card is a clean ECOSYSTEM_CARDS-only addition with fields matching its neighbours, and every link on it resolves. Merging now — thanks for chasing the wording fix upstream instead of just patching the skill file.

@kaankacar
kaankacar merged commit 0118987 into stellar:main Aug 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants