Skip to content

feat(docs): Agent Skills registry + Templates gallery#36

Open
alexander-sei wants to merge 11 commits into
mainfrom
docs/skills-registry-and-templates
Open

feat(docs): Agent Skills registry + Templates gallery#36
alexander-sei wants to merge 11 commits into
mainfrom
docs/skills-registry-and-templates

Conversation

@alexander-sei

@alexander-sei alexander-sei commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

Agent Skills registry — generated from sei-skill

  • 8 Foundation skills under .mintlify/skills/<name>/SKILL.mdsei-contracts, sei-frontend, sei-precompiles, sei-nodes, sei-payments, sei-security, sei-bridges, sei-migration. Mintlify serves these at /.well-known/skills/, installable via npx skills add https://docs.sei.io.
  • Canonical source is sei-protocol/sei-skill — skill content is never hand-authored here. The committed files are generated from sei-skill@0ce5ace (post-docs(node): sync default configs from seid v6.5.1 #9: SIP-3 bridges/IBC, oracle precompile retired, Hardhat 3 + OZ upgrades v4, current gas facts, LayerZero V2 only) via scripts/build-mintlify-skills.mjs, each stamped with a GENERATED FROM sei-protocol/sei-skill@<ref> banner.
  • Enforced by CI: a new validate-docs step fails any SKILL.md missing the generated marker, so divergent hand-edits can't land. .github/workflows/sync-skills.yml regenerates on demand (workflow_dispatch, or repository_dispatch type sei-skill-release) and opens a review PR; fixed to stage before diffing so brand-new skill files are detected.
  • Registry page at /ai/skills with a filterable card grid (snippets/skills-registry.jsx), a per-skill copy-install command, and a community-skills CTA (community skills are hosted on their own docs sites and listed here — not committed to this repo).

Generation verification

  • Every hex constant grep-matched verbatim against its sei-skill source bundle; no invented addresses/values.
  • All 49 unique docs.sei.io links map to existing pages in this repo and returned HTTP 200 live.
  • No dropped content reintroduced (no Axelar, no LayerZero v1 API, no Seitrace, native oracle only as retired/reverting).
  • Frontmatter + marker validated on all 8; registry card ids match skill directories.

Templates gallery

  • Gallery at /evm/templates (next to create-sei) listing the real @sei-js/create-sei entries — the Next.js + wagmi template and the precompiles extension — each with a working one-command scaffold.

Navigation + redirects (docs.json)

  • Added ai/skills and evm/templates to the nav.
  • Redirects /skills → /ai/skills and /templates → /evm/templates.

Notes

  • Skills link to live docs for governance-adjustable params (gas, deposits) rather than hardcoding values that can change.
  • .gitignore: .mintlify/ is the Mintlify CLI's local cache and was fully ignored. Changed to .mintlify/* + !.mintlify/skills/ so the skills subtree ships while the cache stays ignored.
  • Follow-ups (separate repos/settings, not this PR): add a release workflow to sei-skill that sends the sei-skill-release repository dispatch, and set the ANTHROPIC_API_KEY repo secret for sync-skills.yml.

🤖 Generated with Claude Code

Closes the P1 #4 (Agent Skills registry) and P1 #5 (Templates gallery)
gaps from the Sei-vs-Solana docs review.

Skills (P1 #4):
- 6 Foundation skills under .mintlify/skills/<name>/SKILL.md
  (sei-contracts, sei-frontend, sei-precompiles, sei-nodes,
  sei-payments, sei-security), installable via `npx skills add docs.sei.io`
  and served at /.well-known/skills/.
- Registry page at /ai/skills with a filterable grid
  (snippets/skills-registry.jsx) and one-command install.
- .gitignore: un-ignore .mintlify/skills/ so the skills deploy
  (the rest of .mintlify/ stays ignored as a local cache).

Templates (P1 #5):
- Gallery at /evm/templates listing the real @sei-js/create-sei
  entries only (Next.js + wagmi template, precompiles extension) —
  no fabricated demos or screenshots.

Nav + redirects (docs.json): add ai/skills and evm/templates;
redirect /skills -> /ai/skills and /templates -> /evm/templates.

SSTORE gas is cited as 72,000 (same on both networks, governance
Proposal #109), consistent with /evm/differences-with-ethereum.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
sei-docs 🟢 Ready View Preview Jun 27, 2026, 6:05 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@cursor

cursor Bot commented Jun 27, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Large generated MDX surface and LLM-assisted sync can drift or break Mintlify deploy if skills aren't MDX-clean; committed skill content should be reviewed like any docs change.

Overview
This PR ships Foundation agent skills on docs.sei.io: eight generated SKILL.md files under .mintlify/skills/ (contracts, frontend, precompiles, nodes, payments, security, bridges, migration), installable via npx skills add https://docs.sei.io and discoverable at /.well-known/skills/. Content is not hand-authored here — it comes from sei-protocol/sei-skill through scripts/build-mintlify-skills.mjs, with a GENERATED FROM marker enforced in CI.

Automation and quality gates: new sync-skills.yml regenerates skills (manual or sei-skill-release dispatch) and opens a review PR; validate-docs.yml rejects skills missing the marker; link-check documents that skills must stay MDX-safe. .gitignore now tracks .mintlify/skills/ while ignoring the rest of .mintlify/.

New docs UX: /ai/skills (Skills Registry with snippets/skills-registry.jsx), /evm/templates (create-sei template gallery), nav entries and redirects from /skills and /templates. Minor updates to create-sei stack copy, ecosystem bridge list, and node operator docs (sc-write-mode, evm-ss-split vs old dual-read/write keys).

Bundled skill snapshot: initial generated skills at sei-skill@0ce5ace (SIP-3 bridge/IBC posture, retired oracle precompile, current tooling facts).

Reviewed by Cursor Bugbot for commit 03db520. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread .mintlify/skills/sei-security/SKILL.md Outdated
- Skills: import sei/seiTestnet viem chains from viem/chains (the
  @sei-js/precompiles package only exports seiLocal); keep
  @sei-js/precompiles for precompile addresses/ABIs. Fixes the runnable
  examples in sei-precompiles, sei-security, and sei-contracts.
- templates: correct the create-sei stack to Next.js 15 / React 19,
  add RainbowKit, note Tailwind v4.
- skills install command uses the https:// scheme (npx skills add
  https://docs.sei.io).
- sei-contracts: separate the 6-decimal usei micro-denom from the
  18-decimal EVM wei representation.
- Drop the imprecise "(proposal 99)" CosmWasm-freeze attribution
  (per SIP-3); deep-link "live value" pointers to
  /evm/differences-with-ethereum (and /evm/networks).
- sei-precompiles: getSeiAddr reverts or returns "" when unassociated.
- sei-nodes: replace the ~28h figure with ~100k blocks; name the
  current evm-ss-split flag for Giga storage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Independent-review fixes for the Agent Skills registry (PR #36):

- sei-security: getSeiAddr REVERTS for an unassociated address (verified
  against sei-chain precompiles/addr/addr.go:128-132 — returns a non-nil
  error, no empty-string path). The old `require(bytes(actual).length != 0)`
  guard was dead code; wrap the call in try/catch and treat the revert as
  "not associated". Fix the off-chain prose to match.
- sei-precompiles: drop the "reverts or returns ''" hedge so all skills
  agree the call reverts when unassociated.
- All skills: remove the false "no safe/finalized block tags" claim — on Sei
  safe/finalized/latest all resolve to the same instantly-final block (per
  evm/differences-with-ethereum.mdx), so just query latest.
- ai/skills + snippet: clarify every card copies the same full-set install
  command; add per-skill aria-labels for accessibility.
- sei-frontend: @sei-js/precompiles ships only the seiLocal viem chain,
  not sei/seiTestnet.
- sei-contracts/sei-security: use ~22,100 for the revm SSTORE figure to
  match differences-with-ethereum.mdx.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Comment thread .mintlify/skills/sei-security/SKILL.md Outdated
Comment thread .mintlify/skills/sei-frontend/SKILL.md Outdated
Update skill documentation to use seiTestnet by default instead of mainnet in code examples. Replace hardcoded chain IDs with testnet chain objects and add comments reminding developers to get explicit approval before switching to mainnet (1329). This enforces safer defaults and makes the approval requirement explicit in the code.
Remove hand-authored .mintlify/skills SKILL.md files and introduce an automated generation pipeline: add .github/workflows/sync-skills.yml and scripts/build-mintlify-skills.mjs to regenerate docs skills from the canonical sei-skill repo (LLM-assisted, opens PRs). Update docs and UI to reflect the new skills and content changes: add Bridges and Migration skills in snippets/skills-registry.jsx and filters, tweak ai/skills.mdx and ai/sei-skill/index.mdx, bump create-sei tech stack, clarify SIP-03 migration notes, and revise node operator docs (SC/SS/Giga storage migration config keys). This centralizes skill authorship in sei-skill and automates safe regeneration for review.
alexander-sei and others added 2 commits July 6, 2026 10:47
…n new files

- validate-docs.yml: new CI step fails if any .mintlify/skills/*/SKILL.md
  lacks the 'GENERATED FROM sei-protocol/sei-skill' marker — mechanically
  enforces that skill content is authored only in sei-skill.
- sync-skills.yml: stage before diffing (git diff --quiet ignores untracked
  files, so generating into an empty skills dir silently no-op'd).
- skills-registry.jsx: stop advertising the retired Oracle precompile on the
  sei-precompiles card.
- ai/skills.mdx: state that Foundation skills are generated from
  sei-protocol/sei-skill (content PRs go there), and stop inviting
  hand-authored community skills into this repo (they'd fail the new guard).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Populate .mintlify/skills/ via the scripts/build-mintlify-skills.mjs flow
(no-key mode: per-skill PROMPT.md + SOURCE_BUNDLE.md handed to the LLM),
sourced from sei-protocol/sei-skill@0ce5ace — the post-#9 canonical state
(SIP-3 bridges/IBC, oracle precompile retired, Hardhat 3 + OZ upgrades v4,
current gas facts, LayerZero V2 only, no Axelar).

Six skills regenerated at 1.1.0 against their reviewed 8c8132d versions as
the quality bar (preserving the Addr-reverts and testnet-first review
fixes); sei-bridges and sei-migration are new at 1.0.0.

Verified: frontmatter + GENERATED marker on all 8; every hex constant
grep-matched verbatim against its source bundle; all 49 linked docs.sei.io
pages exist in-repo and return HTTP 200 live; no Axelar/Seitrace/LZ-v1
content; registry ids match skill dirs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
alexander-sei and others added 2 commits July 6, 2026 10:53
… URLs

- link-check.yml: mint broken-links parses every .md as MDX and chokes on
  the skills' HTML-comment generation banner. Stash .mintlify/skills/ for
  that step — skill links are covered by the lychee external-links workflow.
- lychee.toml: exclude 1rpc.io (JSON-RPC, 400 on GET) and api.pimlico.io
  (401 without key) — live endpoints the skills reference.
- skills: replace two rotted URLs that came in from the sei-skill source
  (atlantic-2.app.sei.io/faucet -> docs.sei.io/learn/faucet; LayerZero
  /v2/concepts/intro -> /v2) — flagged for upstream backport.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Mintlify platform (and mint broken-links) parse .md as MDX, where the
HTML comment banner is a syntax error — the previous deploy failed on it.
Move the marker into the frontmatter as YAML comments (invisible to YAML/
skill consumers, ignored by MDX), update stampGenerated in the generator
to emit the same shape, and revert the link-check stash: keeping skills in
mint broken-links now surfaces an unparseable generated skill with a
file:line instead of an opaque deployment failure. Local mint broken-links
passes with the skills tree included.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Future regenerations must not reintroduce MDX-hostile constructs (HTML
comments, bare angle brackets/braces outside code spans) — mint and the
Mintlify platform parse the skill files as MDX.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@alexander-sei alexander-sei marked this pull request as ready for review July 8, 2026 11:56

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 03db520. Configure here.

if [[ "$bad" -gt 0 ]]; then
exit 1
fi
echo "All ${count} skill(s) carry the generated-from-sei-skill marker."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CI allows zero skills

Medium Severity

The new “generated-only agent skills” step only checks markers on files that exist. With nullglob, an empty or missing .mintlify/skills/*/SKILL.md set leaves count at 0 and the job still exits successfully, so the registry can ship with no installable skills.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 03db520. Configure here.

git add .mintlify/skills
if git diff --cached --quiet; then
echo 'No skill changes; nothing to do.'
exit 0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Sync succeeds without generation

Medium Severity

The sync job always runs build-mintlify-skills.mjs --write, but that script only writes .mintlify/skills/ when ANTHROPIC_API_KEY is set. Without the secret, generation is skipped, git diff --cached is empty, and the workflow exits 0 as if nothing were wrong.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 03db520. Configure here.

writeFileSync(dest, skillMd);
}
console.log(` ✓ ${m.name}/SKILL.md${write ? ' (written into .mintlify/skills/)' : ''}`);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing sources still generate

Low Severity

When canonical sei-skill source paths are missing, the script logs missing files but continues with a partial bundle and still calls the model with --write, which can overwrite committed skills with incomplete content.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 03db520. Configure here.

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.

1 participant