Skip to content

docs: add Contextio SDK to community skills - #98

Merged
kaankacar merged 2 commits into
stellar:mainfrom
Eras256:add-contextio-sdk-skill
Aug 15, 2026
Merged

docs: add Contextio SDK to community skills#98
kaankacar merged 2 commits into
stellar:mainfrom
Eras256:add-contextio-sdk-skill

Conversation

@Eras256

@Eras256 Eras256 commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds Contextio SDK to ECOSYSTEM_CARDS in site/src/data/skills.ts, per
the community-skills convention in site/README.md.

contextio-sdk is a typed TypeScript client for Contextio's agentic,
non-custodial treasury & payroll API on Stellar. The skill covers only
what the SDK actually exposes as of the current published version
(0.3.0), teaching an agent to:

  • authenticate with Sign In With Stellar (SEP-53), wallet-agnostic
    (works with Freighter, Stellar Wallets Kit, or any signer)
  • read a tenant's treasury, payroll obligations, and agent decision
    history through the typed client
  • trigger an agent proposal (optionally executing it), including a
    verified, non-obvious gotcha: a missing Legal Context Protocol
    document doesn't throw on execute, it returns 200 with an
    executionError field not present on the typed return value
  • independently hash and verify a Legal Context Protocol (LCP) document
    against a hash bound on-chain, without trusting the API's own claim

The skill deliberately does not document treasury/payroll write
endpoints, or Blend/DeFindex integration, since none of that is part of
the SDK's public client surface today, only internal API/worker
responsibilities.

The skill itself lives in the project's own repo (not this one, per the
ECOSYSTEM_CARDS convention for community skills):
https://github.com/Eras256/Contextio/blob/main/packages/sdk/contextio-sdk-skill.md

Test plan

  • pnpm lint:ts (tsc --noEmit) passes
  • pnpm lint (next lint) passes
  • Every SDK method, type, status code, and example value referenced
    in the skill was checked against the live source and the live
    npm registry, not just written from memory

🤖 Generated with Claude Code

Adds Contextio to ECOSYSTEM_CARDS in site/src/data/skills.ts, per the
community-skills convention in site/README.md.

contextio-sdk is a typed TypeScript client for Contextio's agentic,
non-custodial treasury & payroll API on Stellar. The skill teaches an
agent to:

- authenticate with Sign In With Stellar (SEP-53), wallet-agnostic
- read a tenant's treasury, payroll obligations, and agent decision
  history through the typed client
- trigger an agent proposal (optionally executing it)
- independently hash and verify a Legal Context Protocol (LCP) document
  against a hash bound on-chain, without trusting the API's own claim

The skill itself lives in the project's own repo (not this one, per the
ECOSYSTEM_CARDS convention for community skills):
https://github.com/Eras256/Contextio/blob/main/packages/sdk/contextio-sdk-skill.md

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings August 15, 2026 02:37

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

Note

Copilot was unable to run its full agentic suite in this review.

Adds a new Ecosystem Card entry for the Contextio SDK skill resource.

Changes:

  • Appended a new ECOSYSTEM_CARDS item for “Contextio SDK” with description, repo label, and GitHub link.

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

@kaankacar

Copy link
Copy Markdown
Contributor

🤖 Automated message from Kaan's Automated Triage Bot.

👀 Picked this up — a review will follow shortly.

@kaankacar

Copy link
Copy Markdown
Contributor

🤖 Automated message from Kaan's Automated Triage Bot.

Thanks for this — the skill is unusually careful, and the executionError gotcha is the kind of thing most integration docs never write down. I traced it through the code (propose({ execute: true })agentService.executetreasury.rebalancebindForAction throws → the route catches it and returns 200 with the extra field), and it behaves exactly as you describe. I also checked contextio-sdk@0.3.0 against the registry and the source, SEP-53 ("Sign and Verify Messages", Final) against your "Stellar Signed Message:\n" prefix, and the LCP standard's reserved path and schema — all good.

Two fixes and one housekeeping item before it goes on the catalog:

  1. defaultModules isn't exported from the Wallets Kit root. In the sign-in example it's imported alongside StellarWalletsKit and Networks from @creit.tech/stellar-wallets-kit, but in the published types (2.0.1 through 2.5.0) it lives in sdk/modules/utils.js and is only reachable through the subpath — the root barrel re-exports sdk/utils.js, which is just parseError/disconnect. It needs a second import:

    import { defaultModules } from "@creit.tech/stellar-wallets-kit/modules/utils";

    The rest of that snippet matches 2.5.0 exactly — init(), authModal(){ address }, and signMessage(msg, { address }){ signedMessage }.

  2. SDF isn't a steward of the Legal Context Protocol. The skill (and packages/sdk/src/types.ts) credits it to "AAA + Integra Ledger + SDF", but the standard's own GOVERNANCE.md names Integra Ledger and AAA-ICDR as the only Founding Maintainers — Stellar appears just as a per-chain binding the spec deliberately leaves uncanonized. The June 2026 date is right (v1.0 was 2026-06-24); could you drop the + SDF?

  3. The branch has drifted into a merge conflict — docs: add Nirium to community skills #96 added the Nirium entry at the same spot in ECOSYSTEM_CARDS. Merging main should clear it; the card entry itself is well-formed and matches EcosystemCardSource.

Nothing concerning on the security side, for what it's worth: propose() defaults to a dry run, the BYO key is passed per request and never persisted, and the LLM only ever rewrites rationale — never the action or the amount.

Eras256 added a commit to Eras256/Contextio that referenced this pull request Aug 15, 2026
…bution

Two real bugs caught in review of the contextio-sdk-skill PR
(stellar/stellar-dev-skill#98):

- defaultModules isn't exported from the Wallets Kit root barrel (2.0.1
  through 2.5.0) — it only lives at the modules/utils subpath. The
  skill's sign-in example imported it from the wrong place; the app's
  own apps/web/src/lib/wallet.ts already had the correct pattern.
- "AAA + Integra Ledger + SDF" is wrong: the protocol's own
  GOVERNANCE.md names only Integra Ledger and AAA-ICDR as Founding
  Maintainers. Stellar/SDF isn't a steward. Fixed in both the skill
  and the types.ts doc comment it's copied from.

Co-Authored-By: Claude <noreply@anthropic.com>
@kaankacar

Copy link
Copy Markdown
Contributor

🤖 Automated message from Kaan's Automated Triage Bot.

Both fixes look right, and I re-checked them at the source rather than taking the commit message for it: defaultModules really is only reachable through the ./modules/utils subpath (it's declared in esm/sdk/modules/utils.d.ts, while the root barrel bottoms out at parseError/disconnect), and the rest of that snippet — init({ modules, network }), authModal() → { address }, signMessage(msg, { address }) → { signedMessage } — matches 2.5.0's static API exactly. LCP's GOVERNANCE.md names Integra Ledger and AAA-ICDR as the only Founding Maintainers, so dropping + SDF is the accurate call. The upstream merge cleared the conflict, and the card entry is a clean eight-line addition matching EcosystemCardSource.

One stray leftover, not worth holding this up: packages/sdk/src/lcp.ts still carries the old "AAA/Integra Ledger/SDF" wording in the doc comment above LCP_WELL_KNOWN_PATH — same correction as the other two, whenever you next touch that file.

Thanks for the care you put into this one, the executionError note especially. Merging.

@kaankacar
kaankacar merged commit 71a49fd into stellar:main Aug 15, 2026
3 checks passed
Eras256 added a commit to Eras256/Contextio that referenced this pull request Aug 15, 2026
Kaan flagged this as a leftover on stellar/stellar-dev-skill#98 (non-
blocking, merged anyway) — same governance correction already applied
to the skill and types.ts: LCP's own GOVERNANCE.md names only Integra
Ledger and AAA-ICDR as Founding Maintainers.

Co-Authored-By: Claude <noreply@anthropic.com>
kaankacar pushed a commit that referenced this pull request Aug 15, 2026
Follow-up to #98 (already merged): reorders the ECOSYSTEM_CARDS
description to open on the Legal Context Protocol binding instead of
the treasury/payroll pitch, matching the same lead-with-LCP
repositioning already applied to the skill's own frontmatter and to
Contextio's repo description. No functional change, no link/version
change.

Co-Authored-By: Claude <noreply@anthropic.com>
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