Borrowing it
Nothing to install: this file belongs to jahala/umbel. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/jahala/umbel/master/.claude/skills/tend-discover/SKILL.mdgit clone --depth 1 https://github.com/jahala/umbelWrote 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/jahala/umbel/tend-discover)<a href="https://agentmods.dev/skills/jahala/umbel/tend-discover"><img src="https://agentmods.dev/badge/skills/jahala/umbel/tend-discover/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/jahala/umbel/tend-discover"><img src="https://agentmods.dev/badge/skills/jahala/umbel/tend-discover.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.00072 | $0.03829 |
| Opus 5 | $0.00036 | $0.01914 |
| Sonnet 5 | $0.00014 | $0.00766 |
| Haiku 4.5 | $0.00007 | $0.00383 |
Grade A, and why
tend-discover 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 10d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 284 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Discover: Existing Code -> Feature Polyglots
Owns: feature polyglot creation from observed code, plus catalog components / personas / journey phases inferred from the code.
What this skill assumes
- The codebase exists and is readable — this is a one-time bootstrap that maps existing code into tend features.
- The user accepts that discovered checks default to
validates_job: null(code carries no human-intent signal). After discovery,/tend positionplants ICPs/Jobs and/tend brainstorm//tend changeanchors checks to them. - This skill does NOT discover opportunities. Those come from human conversation (
/tend position), not from code. - After this skill, the next leverage move is
/tend position(plant the spine), then/tend audit(claim coverage feature-by-feature).
Purpose
Reverse-engineer a feature map from an existing codebase. The input is
the repo itself - routes, modules, tests, public exports - and the output
is a set of feature polyglots whose slot claims describe what exists today,
checks describe what tests already prove, and audit is empty until
/tend audit validates them.
tend-discover is a one-time bootstrap for a codebase that has no
docs/tend/ files yet. After bootstrap, new features come from
/tend brainstorm; changes to existing features go through
/tend change.
Output
docs/tend/overview.html- garden polyglot with catalog (viatend_update_catalog)docs/tend/features/<id>.tend.html- one feature polyglot per discovered surface (viatend_create_featurethentend_update_feature)
Rules
- Ask the user for choices and confirmation. Do not proceed on assumptions when intent is ambiguous.
- Ask the user to confirm the component list before creating any feature polyglots.
- All writes go through MCP - never edit
.tend.htmlfiles as text. - Checks must be assertions (checkable outcomes), not tasks.
- Infer checks from existing tests where possible; mark inferred ones explicitly with
(inferred from test)in the description. - Every inferred check carries
validates, the slot the test seems to prove. Defaultvalidates: whatif it tests behavior;validates: whereif it tests structure; ask the user when ambiguous. - Mock-aware inference. If a test mocks the function or component the check is about (e.g.,
vi.fn()returns the value the check describes; the integration boundary is stubbed), the test is not real evidence - it proves the mock returns what you told it to. When inferring a check from such a test, mark the check description with(inferred from mocked test - needs real verification)and proposeintegration_level: integration(ore2eif a runtime is involved). Do not let the test's "passing" status bias you. - Default integration_level: unit, but watch for signals. Tests that hit real DBs, real HTTP servers, real browsers, or real filesystems are evidence for
integrationore2echecks. Tests that import only the unit under test and call its function directly (no boundaries) are evidence forunitchecks. - Set both
dependencies(technical blockers) andenables(user journey edges) where discoverable from the code (import graph, route guards, redirect flows). - All discovered features default to
status: "planned"even though the code exists. Do not setstatus: "verified"- that requiresaudit.result === 'pass'with real evidence per check. Discover only claims the code exists;tend-auditconfirms it works. - After completion: tell the user to run
/tend auditto verify discovered checks against real evidence; surface any inferred-from-mock or(needs real verification)checks as the priority targets.
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.
- 10d ago First seen · 284 lines · 72 tokens per session scan A 23176e91e73d
tend-discover is a skill published in the GitHub repository jahala/umbel (2 stars, last pushed 4d ago), licensed MIT. It adds 72 tokens to every session and 3,829 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
factory-handoff
Hand one exact agent-ready ticket to the central Factory runtime over the configured SSH forced-command boundary. Use when an operator asks to hand off an existing ticket or a prose request instead of implementing it in the current session.
ticket-spec
Turn a raw Linear Triage ticket into a fully specified ai:agent-ready one by exploring the codebase. Use when specifying, refining, or promoting tickets, or when asked why a ticket isn't dispatchable.
swarm-pr-review
Run a graph-guided, tool-augmented PR review using context packing, parallel exploration, mandatory repository-agnostic risk-family coverage with dispatch scaled to diff size and risk, independent reviewer validation, critic challenge, and metrics writeback. Use for deep pull request review with low false-positive…
bundle-safety
Bundle transform safety — minification variant selection, consumer-constraint verification, identifier preservation, and namespace re-export coverage for build output.
run-test-suite-after-registration-changes
When delegating a task affected by this skill, include.
run-failing-tests-immediately-after-test-gate-failure
When delegating a task affected by this skill, include.