ai-skills / extension-dev-skill
AGENTS.md6 starsChanged 6 months agoApache-2.0View on GitHub
Core rules, mapping table, pitfalls, recipes index, execution workflow, and error handling standards are all in SKILL.md. This file covers only conventions and tooling guidance not present in SKILL.md. Do not duplicate content. Language: TypeScript · Runtime: EasyEDA Pro browser sandbox (not Node.js) When you already know the class name, prefer reading the doc file directly (e.g., resources/references/classes/DMT_SelectControl.md) over broad grepSearch. When an API query result contains any of the following, continue querying recursively: Core rules (try/catch, browser API restrictions,…
- Installs packages
We split this AGENTS.md into the rules it gives an agent
6 rules. About 0 are common, 1 is distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
When you already know the class name, prefer reading the doc file directly (e.g., resources/references/classes/DMT_SelectControl.md) over …
- Distinctive: line 23
When an API query result contains any of the following, continue querying recursively:
- Very specific: line 37
Prefer async/await over .then() chains
- Very specific: line 38
All generated code must be valid TypeScript.
- Very specific: line 85
Update package.json accordingly when adding new dependencies
- Very specific: line 96
Add node scripts/lint-eda-api.js src/ as a validation step before npm run build in the execution workflow.
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md — Supplementary Agent Guide
Core rules, mapping table, pitfalls, recipes index, execution workflow, and error handling standards are all in
SKILL.md. This file covers only conventions and tooling guidance not present inSKILL.md. Do not duplicate content.
Project Context
Language: TypeScript · Runtime: EasyEDA Pro browser sandbox (not Node.js)
grepSearch Standards
| Search Target | Correct Pattern | Incorrect Pattern |
| Class/Interface name | SCH_PrimitiveComponent | class SCH_PrimitiveComponent |
| Method name | getCurrentDocumentInfo | function getCurrentDocumentInfo |
| Enum name | EDMT_EditorDocumentType | enum EDMT_EditorDocumentType |
| eda property | dmt_SelectControl | eda.dmt_SelectControl |
When you already know the class name, prefer reading the doc file directly (e.g., resources/references/classes/DMT_SelectControl.md) over broad grepSearch.
Recursive Query Triggers
When an API query result contains any of the following, continue querying recursively:
- Returns
Promise<IPCB_*>orPromise<ISCH_*>→ Read the corresponding interface doc inreferences/interfaces/ - Parameter contains a complex interface → Read its interface doc for property structure
- Interface has inheritance → Read both parent and child docs
- Return value is a union type → Read each member's doc
- Enum type parameter → Read the enum doc in
references/enums/for all possible values
Code Generation Conventions
Core rules (try/catch, browser API restrictions, logging standards, defensive checks) are in
SKILL.md. Below are additional conventions only:
- npm dependencies can be imported as needed; update
package.jsonaccordingly - Define a
PLUGIN_TAGconstant at the top of each file for consistent log prefixes - Prefer
async/awaitover.then()chains - All generated code must be valid TypeScript; avoid
anyunless unavoidable
Generated Plugin Project Structure
├── src/ Main plugin code (src/index.ts entry point)
├── iframe/ Frontend code for custom UI panels
├── locales/ i18n files (en.json + zh-Hans.json)
│ └── extensionJson/ Menu title translations (en.json + zh-Hans.json)
├── images/ Extension preview images
├── build/ Build output directory
├── extension.json Plugin metadata and menu configuration
├── package.json NPM configuration
├── eslint.config.mjs ESLint configuration
└── tsconfig.json TypeScript compilation configurationMenu Title i18n: Use locales/extensionJson/
Menu titles in extension.json are not translated via locales/en.json. They use a separate directory: locales/extensionJson/.
locales/en.json+locales/zh-Hans.json— for code-leveleda.sys_I18n.text()translationslocales/extensionJson/en.json+locales/extensionJson/zh-Hans.json— forextension.jsonheaderMenus[].titletranslations
The title value in extension.json is used as the lookup key in locales/extensionJson/:
// extension.json
{ "id": "About", "title": "About...", "registerFn": "about" }// locales/extensionJson/en.json
{ "About...": "About..." }
// locales/extensionJson/zh-Hans.json
{ "About...": "关于..." }⚠️ Do not use
%key%syntax inextension.jsonmenu titles. The title text itself is the key, matched directly againstlocales/extensionJson/files.
npm Packages in iframe
npm dependencies can be used inside iframe/ code. The iframe runs in a standard browser context, so bundled npm packages (e.g., chart libraries, UI frameworks, utility libraries) work normally.
- Install via
npm install <package>and import in iframe source files - The build process bundles iframe dependencies into the output
- Update
package.jsonaccordingly when adding new dependencies - This does not apply to
src/main process code, which runs in the EDA sandbox
Lint Script for Code Validation
The SDK includes ESLint with @antfu/eslint-config. Use it to catch errors before building:
npm run fix # Auto-fix issuesAdd node scripts/lint-eda-api.js src/ as a validation step before npm run build in the execution workflow.
MCP Debugging Workflow (Optional)
Requires the eext-dev-mcp MCP service:
- Build:
npm run build(output inbuild/dist/*.eext) listDirectoryto find the.eextabsolute path- MCP
dev_pluginto import - MCP
get_console_logsto retrieve logs - Fix and repeat
Without MCP: manually upload the .eext file via the EDA Extension Manager.
Do Not Modify
resources/guide/andresources/references/— API documentation sourceSKILL.mdfront matter — Skill metadata
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository34 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .agents/skills/vercel-react-best-practices/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-browserSkill
- architecture-designerSkill
- architecture-patternsSkill
- browser-useSkill
- deep-researchSkill
- docxSkill
- enhance-promptSkill
- extension-dev-skillSkill
- find-skillsSkill
- frontend-designSkill
- gh-cliSkill
- humanizer-zhSkill
- langchain-architectureSkill
- mcp-builderSkill
- mermaid-visualizerSkill
- microservices-architectSkill
- obsidian-basesSkill
- obsidian-cliSkill
- obsidian-markdownSkill
- pdfSkill
- planning-with-filesSkill
- playwright-cliSkill
- plugin-creatorSkill
- pptxSkill
- remotion-best-practicesSkill
- skill-creatorSkill
- tailored-resume-generatorSkill
- text-to-sqlSkill
- ui-ux-pro-maxSkill
- vercel-react-best-practicesSkill
- web-design-guidelinesSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

