create-adaptable-composable

Library-grade Vue composables that accept plain values, refs, or getters as inputs. Use MaybeRefOrGetter for read-only inputs (computed-friendly) and MaybeRef for writable two-way inputs; normalize with toRef() for reactive sources and toValue() for non-reactive values Avoid MaybeRefOrGetter when parameters are callbacks or predicates to prevent accidental function invocation Requires Vue 3 or Nuxt 3; follow the four-step design pattern: confirm API, identify reactive params, normalize inputs in effects, implement core logic

INSTALLATION
npx skills add https://github.com/hyf0/vue-skills --skill create-adaptable-composable
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2a

/**

  • MaybeRef + ComputedRef + () => T

*/

export type MaybeRefOrGetter<T = any> = MaybeRef | ComputedRef | (() => T);

### Policy and Rules

- Read-only, computed-friendly input: use `MaybeRefOrGetter`

- Needs to be writable / two-way input: use `MaybeRef`

- Parameter might be a function value (callback/predicate/comparator): do not use `MaybeRefOrGetter`, or you may accidentally invoke it as a getter.

- DOM/Element targets: if you want computed/derived targets, use `MaybeRefOrGetter`.

When `MaybeRefOrGetter` or `MaybeRef` is used:

- resolve reactive value using `toRef()` (e.g. watcher source)

- resolve non-reactive value using `toValue()`

### Examples

Adaptable `useDocumentTitle` Composable: read-only title parameter

import { watch, toRef } from 'vue'

import type { MaybeRefOrGetter } from 'vue'

export function useDocumentTitle(title: MaybeRefOrGetter<string>) {

watch(toRef(title), (t) => {

document.title = t

}, { immediate: true })

}


Adaptable `useCounter` Composable: two-way writable count parameter

import { watch, toRef } from 'vue'

import type { MaybeRef } from 'vue'

function useCounter(count: MaybeRef<number>) {

const countRef = toRef(count)

function add() {

countRef.value++

}

return { add }

}

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card