

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# AionUi - Project Guide23All contributors (human and AI) must follow [CONTRIBUTING.md](CONTRIBUTING.md) before opening a PR. ([Chinese version](CONTRIBUTING.zh.md))45## Code Conventions67### File & Directory Structure89- **Directory size limit**: Prefer ≤ **10** direct children per directory; new or substantially reorganized directories must satisfy this.1011See [docs/contributing/file-structure.md](docs/contributing/file-structure.md) for complete rules. Agents must also follow the `architecture` skill (`.claude/skills/architecture/SKILL.md`) when creating files or modules.1213### Naming1415- **Components**: PascalCase (`Button.tsx`, `Modal.tsx`)16- **Utilities**: camelCase (`formatDate.ts`)17- **Hooks**: camelCase with `use` prefix (`useTheme.ts`)18- **Constants files**: camelCase (`constants.ts`) — values inside use UPPER_SNAKE_CASE19- **Type files**: camelCase (`types.ts`)20- **Style files**: kebab-case or `ComponentName.module.css`21- **Unused params**: prefix with `_`2223### UI Library & Icons2425- **Components**: `@arco-design/web-react` — no raw interactive HTML (`<button>`, `<input>`, `<select>`, etc.)26- **Icons**: `@icon-park/react`2728### CSS2930- Prefer **UnoCSS utility classes**; complex styles use **CSS Modules** (`ComponentName.module.css`)31- Colors must use **semantic tokens** from `uno.config.ts` or CSS variables — no hardcoded values32- Arco theme overrides go in `packages/desktop/src/renderer/styles/arco-override.css`; component-scoped Arco overrides use CSS Module with `:global()`33- Global styles only in `packages/desktop/src/renderer/styles/`3435Formatting rules (Oxfmt, Prettier-compatible):3637- Single-element arrays that fit on one line → inline: `[{ id: 'a', value: 'b' }]`38- Trailing commas required in multi-line arrays/objects39- Single quotes for strings4041### TypeScript4243- Strict mode enabled — no `any`, no implicit returns44- Use path aliases: `@/*`, `@process/*`, `@renderer/*`45- Prefer `type` over `interface` (per Oxlint config)46- English for code comments; JSDoc for public functions4748### Internationalization (i18n)4950New or changed user-facing text must use i18n keys; do not introduce hardcoded strings. Languages and modules are defined in `packages/desktop/src/common/config/i18n-config.json`.5152See the `i18n` skill (`.claude/skills/i18n/SKILL.md`) for complete workflow, key naming, and validation steps.5354## Architecture5556Two process types — never mix their APIs:5758| Process | Path | Restriction |59| -------- | -------------------------------- | --------------- |60| Main | `packages/desktop/src/process/` | No DOM APIs |61| Renderer | `packages/desktop/src/renderer/` | No Node.js APIs |6263Cross-process communication must go through the IPC bridge (`packages/desktop/src/preload/`).64See [docs/architecture/overview.md](docs/architecture/overview.md) for details.6566## Testing6768**Framework**: Vitest 4 (`vitest.config.ts`). Project coverage target is ≥ 80%; ordinary changes should add focused tests for changed behavior.6970```bash71bun run test # run all tests72bun run test:coverage # with coverage report73```7475See the `testing` skill (`.claude/skills/testing/SKILL.md`) for complete workflow and quality rules.7677## Workflow7879### Scope & Enforcement8081- **Hard blockers**: process boundary violations, TypeScript errors, failing tests, unsafe IPC usage, missing i18n for new or changed user-facing text, and raw interactive HTML in new UI.82- **Current-change requirements**: naming, CSS, file placement, tests, docs, directory size, and single-file-directory rules apply to files created or meaningfully modified by the current change.83- **Ratchet rules**: existing directory size or single-file-directory violations do not require cleanup during ordinary feature work or bugfixes, but the current change must not make them worse.84- **No scope expansion**: implementation plans and reviews must not create extra tasks, phases, or acceptance criteria for cleanup unless the user asks for that scope.85- **Ignored working docs**: `docs/superpowers/` is intentionally gitignored for local Superpowers specs and plans. Do not force-add or otherwise commit files from this directory.8687### During Development8889Auto-fix as you edit:9091```bash92bun run lint:fix # auto-fix lint issues (oxlint)93bun run format # auto-format all files (oxfmt)94bunx tsc --noEmit # verify no type errors95```9697If your changes touch `packages/desktop/src/renderer/`, `locales/`, or `packages/desktop/src/common/config/i18n`, also run:9899```bash100bun run i18n:types101node scripts/check-i18n.js102```103104### Before Pushing105106AI agents must not push unless explicitly asked. When pushing, use `just push`, never `git push`:107108```bash109just push # lint → format-check → typecheck → test → git push110just push -u origin feat/branch # same checks, with extra git push args111```112113Any step that fails aborts the push. Fix the issue, commit, then retry.114115> **Note for AI agents**: `just push` uses `--quiet` for lint — only errors cause failure. The project has many pre-existing lint _warnings_ which do NOT indicate failure. Judge success by exit code, not by output volume.116117### Before PR (optional stricter check)118119`prek` replicates the **exact CI pipeline** (includes end-of-file, trailing whitespace checks on all file types):120121```bash122# One-time setup123npm install -g @j178/prek124125# Run126prek run --from-ref origin/main --to-ref HEAD127```128129> `prek` is read-only — it reports but does not fix. If it reports issues, run the auto-fix commands above, commit, then re-run.130131### Commit & PR Format132133Commits and PR titles must follow the Conventional Commit format defined in [CONTRIBUTING.md](CONTRIBUTING.md):134135```text136<type>(<scope>): <subject>137```138139Allowed types: `feat`, `fix`, `perf`, `refactor`, `docs`, `style`, `chore`, `test`, `ci`, `build`.140141When opening a PR, fill in the PR body using [.github/pull_request_template.md](.github/pull_request_template.md) and complete its checklists honestly (only check items you actually ran or verified).142143**NEVER add AI signatures** (Co-Authored-By, Generated with, etc.).144145## Skills Index146147| Skill | Purpose | Triggers |148| ---------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |149| **architecture** | File & directory structure conventions for all process types | Creating files, adding modules, architectural decisions |150| **i18n** | Internationalization workflow and standards | Adding or changing user-facing text, modifying `locales/` or `packages/desktop/src/common/config/i18n` |151| **testing** | Testing workflow and quality standards | Writing tests, changing runtime behavior, fixing bugs, or claiming behavior is verified |152| **bump-version** | Version bump workflow: update package.json, checks, branch, PR, tag release | Bumping version, `/bump-version` |153154> Skills are located in `.claude/skills/` and contain project conventions that apply to **all** agents and contributors.155
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| TryGhost/Ghoste2e/AGENTS.md · 55k | AGENTS.md | setupteststylearch+2 | 100/100 | today | |
| mui/material-uiAGENTS.md · 99k | AGENTS.md | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 68k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 13 days ago | |
| aaif-goose/gooseAGENTS.md · 53k | AGENTS.md | setupbuildtestlint-format+7 | 100/100 | 8 days ago | |
| deepseek-ai/deepseek-harnessnative/landlock-run/AGENTS.md · 104k | AGENTS.md | setupteststylearch+3 | 100/100 | today | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 201k | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| elastic/elasticsearchx-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/AGENTS.md · 78k | AGENTS.md | buildtestlint-formatstyle+2 | 100/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/iofficeai-aionui-agents)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.