Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Tenon-Net/TenonAdmin --skill create-adaptable-composablegit clone --depth 1 https://github.com/Tenon-Net/TenonAdminWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tenon-net/tenonadmin/create-adaptable-composable)<a href="https://agentmods.dev/skills/tenon-net/tenonadmin/create-adaptable-composable"><img src="https://agentmods.dev/badge/skills/tenon-net/tenonadmin/create-adaptable-composable/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tenon-net/tenonadmin/create-adaptable-composable"><img src="https://agentmods.dev/badge/skills/tenon-net/tenonadmin/create-adaptable-composable.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00080 | $0.00661 |
| Opus 5.5 | $0.00032 | $0.00264 |
| Sonnet 5.5 | $0.00016 | $0.00132 |
| Haiku 4.5 | $0.00008 | $0.00066 |
Grade A, and why
create-adaptable-composable scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to create-adaptable-composable — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Create Adaptable Composable
Adaptable composables are reusable functions that can accept both reactive and non-reactive inputs. This allows developers to use the composable in a variety of contexts without worrying about the reactivity of the inputs.
Steps to design an adaptable composable in Vue.js:
- Confirm the composable's purpose and API design and expected inputs/outputs.
- Identify inputs params that should be reactive (MaybeRef / MaybeRefOrGetter).
- Use
toValue()ortoRef()to normalize inputs inside reactive effects. - Implement the core logic of the composable using Vue's reactivity APIs.
Core Type Concepts
Type Utilities
/**
* value or writable ref (value/ref/shallowRef/writable computed)
*/
export type MaybeRef<T = any> = T | Ref<T> | ShallowRef<T> | WritableComputedRef<T>;
/**
* MaybeRef<T> + ComputedRef<T> + () => T
*/
export type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => 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 }
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 77 lines · 80 tokens per session scan A 9d6c88225770
create-adaptable-composable is a skill published in the GitHub repository Tenon-Net/TenonAdmin (41 stars, last pushed 14d ago), licensed Apache-2.0. It adds 80 tokens to every session and 661 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to create-adaptable-composable, differing in 0 lines, and is treated as a copy.
create-adaptable-composable compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| create-adaptable-composableTenon-Net/TenonAdmin | Skill | 41 | 14d ago | Apache-2.0 | A | 80 | Claude Code, Codex |
| csharp-dotnetericrisco/rsc-harness | Skill | 503 | 2d ago | MIT | A | 89 | Claude Code, Codex |
| antdant-design/ant-design-cli | Skill | 261 | 2d ago | MIT | A | 69 | Claude Code |
| adminforth-i18n-staticdevforth/adminforth | Skill | 392 | yesterday | MIT | A | 44 | Claude Code |
| bwfc-migrationFritzAndFriends/BlazorWebFormsComponents | Skill | 455 | 4mo ago | MIT | A | 115 | Claude Code, Codex |
| webforms-migrationFritzAndFriends/BlazorWebFormsComponents | Skill | 455 | 4mo ago | MIT | A | 63 | Claude Code, Codex |
| migration-standardsFritzAndFriends/BlazorWebFormsComponents | Skill | 455 | 4mo ago | MIT | A | 79 | Claude Code, Codex |