feat(docs): Agent Skills registry + Templates gallery#36
feat(docs): Agent Skills registry + Templates gallery#36alexander-sei wants to merge 11 commits into
Conversation
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>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
PR SummaryMedium Risk Overview Automation and quality gates: new New docs UX: Bundled skill snapshot: initial generated skills at Reviewed by Cursor Bugbot for commit 03db520. Bugbot is set up for automated code reviews on this repo. Configure here. |
- 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>
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.
…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>
… 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>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.
❌ 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." |
There was a problem hiding this comment.
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.
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 |
There was a problem hiding this comment.
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.
Reviewed by Cursor Bugbot for commit 03db520. Configure here.
| writeFileSync(dest, skillMd); | ||
| } | ||
| console.log(` ✓ ${m.name}/SKILL.md${write ? ' (written into .mintlify/skills/)' : ''}`); | ||
| } |
There was a problem hiding this comment.
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.
Reviewed by Cursor Bugbot for commit 03db520. Configure here.


Agent Skills registry — generated from
sei-skill.mintlify/skills/<name>/SKILL.md—sei-contracts,sei-frontend,sei-precompiles,sei-nodes,sei-payments,sei-security,sei-bridges,sei-migration. Mintlify serves these at/.well-known/skills/, installable vianpx skills add https://docs.sei.io.sei-protocol/sei-skill— skill content is never hand-authored here. The committed files are generated fromsei-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) viascripts/build-mintlify-skills.mjs, each stamped with aGENERATED FROM sei-protocol/sei-skill@<ref>banner.validate-docsstep fails anySKILL.mdmissing the generated marker, so divergent hand-edits can't land..github/workflows/sync-skills.ymlregenerates on demand (workflow_dispatch, orrepository_dispatchtypesei-skill-release) and opens a review PR; fixed to stage before diffing so brand-new skill files are detected./ai/skillswith 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
sei-skillsource bundle; no invented addresses/values.docs.sei.iolinks map to existing pages in this repo and returned HTTP 200 live.Templates gallery
/evm/templates(next tocreate-sei) listing the real@sei-js/create-seientries — the Next.js + wagmi template and theprecompilesextension — each with a working one-command scaffold.Navigation + redirects (
docs.json)ai/skillsandevm/templatesto the nav./skills → /ai/skillsand/templates → /evm/templates.Notes
.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.sei-skillthat sends thesei-skill-releaserepository dispatch, and set theANTHROPIC_API_KEYrepo secret forsync-skills.yml.🤖 Generated with Claude Code