Skip to main content

Documentation Index

Fetch the complete documentation index at: https://glide-9da73dea.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Adding a new agent skill is the second flywheel beyond connectors. Skills sit on the agent platform’s money-touching surface, so we ask for pre-PR alignment before you write code.

Five-step flow

1

Open a `New skill` issue first

Use the new-skill issue template. Include slug, runtimes, scopes, policy template, consent summary, and rationale.
2

Read `@glideco/skills-base`

The SkillManifest Zod schema is the source of truth for what a skill manifest must contain — slug, runtime compat, required scopes, policy template, consent summary, trust tier, publisher.Closed vocabularies (SkillTrustTier, SkillRuntime, SkillCategory, SkillScope) are CODEOWNERS-protected. Adding a new entry requires @glideco/policy-engine to understand the same vocabulary.
3

Scaffold the package

packages/skills/<id>/
├── package.json
├── tsconfig.json
├── icon.svg
├── README.md
├── src/
│   ├── manifest.ts            // SkillManifest object
│   ├── policy.ts              // policy-template + per-tier presets
│   ├── index.ts               // re-exports
│   └── __tests__/
│       └── contract.test.ts
Or use the CLI:
glide partner submit ./my-skill --type=skill
The 4-tier policy preset pattern (every skill ships these):
export const POLICY_PRESETS = {
  supervise:  { perTxMaxUsdCents: 10_000, dailyCapUsdCents: 100_000, ... },
  rideAlong:  { perTxMaxUsdCents: 25_000, dailyCapUsdCents: 250_000, ... },
  trust:      { perTxMaxUsdCents: 50_000, dailyCapUsdCents: 500_000, ... }, // package default
  veteran:    { perTxMaxUsdCents: 100_000, dailyCapUsdCents: 1_000_000, ... },
} as const satisfies Record<string, SkillPolicyTemplate>;
Per-tier exposure must increase monotonically (supervise < rideAlong < trust < veteran). The contract test enforces this.
4

Write the contract test

Extend SkillContractTestSuite from @glideco/skills-base:
import { SkillContractTestSuite } from '@glideco/skills-base';
import { manifest } from '../manifest';

class MySkillSuite extends SkillContractTestSuite {
  readonly manifest = manifest;
}
The suite asserts:
  • Manifest validity vs SkillManifest v1.
  • Policy template internal consistency (perTxMax ≤ dailyCap; non-zero velocityCap.maxCount).
  • Scope sanity (no duplicates).
  • Consent under-disclosure guard. If requiredScopes includes a money-touching scope (payments:initiate, cards:manage, x402:pay), consentSummary MUST mention payments / money / cards / $ / usd.
5

Author the consent flow copy honestly

Per the OSS plan §M5 prompt-injection review: a community-tier skill template that under-discloses caps OR overrides displayed envelope behavior is a security finding, not a feature.The contract test catches the obvious cases. Reviewers catch subtler ones during the verified-tier promotion review.Example consent summary that passes the under-disclosure guard:
“Claude reads your QuickBooks Online invoices and drafts USD payments to your existing vendors, capped at 2,500pertransactionand2,500 per transaction and 10,000 per day. Each payment requires your explicit approval before broadcast.”
Compare to one that wouldn’t pass:
“A friendly skill that helps you stay organized.” (no money words; under-discloses)

Reading list