Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .agents/skills/composables/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,13 @@ const filteredRules = computed(() =>
)
```

## When Not to Write a Composable

Keep logic inside the component when only that component uses it, a single
`useQuery` included. Write a composable only when two or more components share
the logic, or when moving it out makes the component clearly easier to read.
Don't move single-use functions to a shared file "for later".

## Composable vs. Pinia Store

| Use composable | Use Pinia store |
Expand Down
16 changes: 8 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ Requires `.env.development` copied from `.env.development.sample`. See [CONTRIBU

| Skill | Trigger |
| ------------------------------------------------------------ | ------------------------------------------------------------------------------ |
| [vue-components](.github/skills/vue-components/SKILL.md) | Writing or reviewing Vue components/views; Ne\* component library usage |
| [data-fetching](.github/skills/data-fetching/SKILL.md) | Adding `useQuery`, `useMutation`, `ubusCall`, or migrating manual loading refs |
| [typescript](.github/skills/typescript/SKILL.md) | Typing API responses, avoiding `any`, ESLint-clean TypeScript |
| [composables](.github/skills/composables/SKILL.md) | Creating or refactoring `use*` composables in `src/composables/` |
| [forms-validation](.github/skills/forms-validation/SKILL.md) | Building forms with `valibot`, `MessageBag`, `ValidationError` |
| [testing](.github/skills/testing/SKILL.md) | Writing Vitest tests (TDD, edge cases, mocking `ubusCall`) |

Ne\* component reference: [.github/skills/vue-components/references/ne-components.md](.github/skills/vue-components/references/ne-components.md)
| [vue-components](.agents/skills/vue-components/SKILL.md) | Writing or reviewing Vue components/views; Ne\* component library usage |
| [data-fetching](.agents/skills/data-fetching/SKILL.md) | Adding `useQuery`, `useMutation`, `ubusCall`, or migrating manual loading refs |
| [typescript](.agents/skills/typescript/SKILL.md) | Typing API responses, avoiding `any`, ESLint-clean TypeScript |
| [composables](.agents/skills/composables/SKILL.md) | Creating or refactoring `use*` composables in `src/composables/` |
| [forms-validation](.agents/skills/forms-validation/SKILL.md) | Building forms with `valibot`, `MessageBag`, `ValidationError` |
| [testing](.agents/skills/testing/SKILL.md) | Writing Vitest tests (TDD, edge cases, mocking `ubusCall`) |

Ne\* component reference: [.agents/skills/vue-components/references/ne-components.md](.agents/skills/vue-components/references/ne-components.md)
Loading