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 chrisgagne/grounded-forge --skill creating-lensesgit clone --depth 1 https://github.com/chrisgagne/grounded-forgeWrote 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/chrisgagne/grounded-forge/creating-lenses)<a href="https://agentmods.dev/skills/chrisgagne/grounded-forge/creating-lenses"><img src="https://agentmods.dev/badge/skills/chrisgagne/grounded-forge/creating-lenses/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/chrisgagne/grounded-forge/creating-lenses"><img src="https://agentmods.dev/badge/skills/chrisgagne/grounded-forge/creating-lenses.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.00094 | $0.05771 |
| Opus 5 | $0.00047 | $0.02885 |
| Sonnet 5 | $0.00019 | $0.01154 |
| Haiku 4.5 | $0.00009 | $0.00577 |
Grade A, and why
creating-lenses 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 — 287 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Creating Lenses
A lens is a window with characteristic salience, weighting, and vocabulary. The matrix stays 2D by default (reference × task); a lens optionally shapes a distillation at projection time. This skill produces the spec the lens-applicability gate consumes.
Dialogue skill, one lens per session, no subagents. Output feeds creating-distillations Pass G: see projection-protocol.md §Lens-as-optional-framing for the four-outcome applicability gate.
Three kinds of lens are first-class: personifiable-archetype, named-real-person, non-personifiable-frame.
When to use
- The operator wants to add a lens to a forked or in-development application and needs to scope it rigorously before any per-distillation projection.
- An existing role label ("a CFO", "a senior engineer") is being used as if it were a lens but has no circumstance attached, and the looseness is producing thin lens-shaped artefacts.
- The operator has source material for a real person (LinkedIn, posts, talks) and wants a lens grounded in that material rather than an archetype.
- Two candidate lenses look like one (or one looks like two) and the boundary needs spelled.
When not to use
- The lens is already well-scoped and stable; the operator is in implementation mode and needs
creating-distillations. - The frame is a one-off prompt-shaping, not a library-level artefact.
- The operator is asking for a lens index across many lenses. This skill scopes one lens at a time.
Inputs
- Optional: a candidate lens name or rough idea ("we should have a CFO lens", "I want a queue-physics lens").
- Optional: source material for the named-real-person case (LinkedIn URL, posts, talks). The operator pastes or cites; the skill treats it as a mini-reference.
- Optional: existing lenses or task axes the new lens might overlap with.
Output
A lens spec at corpus.commons/{corpus}/lenses/{lens-slug}.md. Slug conventions:
- Personifiable-archetype:
{role-or-archetype}-{distinguishing-circumstance}.md, e.g.engineering-manager-post-incident.md. - Named-real-person:
{first-last}-{role-or-distinguisher}.md, e.g.jane-doe-acme-cfo.md. The slug names the person; the circumstance is in the file. - Non-personifiable-frame:
{frame-name}-lens.md, e.g.loss-aversion-lens.md,queue-physics-lens.md.
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 · 287 lines · 0 tokens per session scan A 986a427752da
creating-lenses is a skill published in the GitHub repository chrisgagne/grounded-forge (7 stars, last pushed 19d ago), licensed MIT. It adds 94 tokens to every session and 5,771 once invoked, about $0.0005 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
mle-workflow
Production machine-learning engineering workflow for data contracts, reproducible training, model evaluation, deployment, monitoring, and rollback. Use when building, reviewing, or hardening ML systems beyond one-off notebooks.
weights-and-biases
W&B: log ML experiments, sweeps, model registry, dashboards.
flash-attention
Speed up long-sequence transformer training and inference.
nemo-curator
Curate LLM training data: dedupe, filter, PII redaction.
llava
Vision-language chat: VQA, captioning, image dialogue.
simpo
Reference-free preference alignment, simpler than DPO.