Project Case Study
nxk
A skill that gives a coding agent a crowd of simulated people to ask, then uses the differences in their answers to decide what to change.
Date
2026
Type
Open Source Skill
Stack
PersonaGen, Jev by TypeSafe, Claude Code, Codex, OpenCode, Markdown skill file
01 / Context
Context and Objective
Agents are making product decisions as they work, with no way of knowing how anyone will react to them. They can reason about code. When the question is whether people will want the thing, they guess. nxk is a skill that replaces the guess with a crowd to ask.
The crowd comes from PersonaGen, which generates people whose age, work, income and household fit together, in a population that broadly matches UK or US data. Each profile goes to a model, Jev by default, which answers as that person and returns a probability for every option rather than a single vote. A hundred people answering two questions takes about five seconds and costs roughly a penny, which is cheap enough to ask again when a difference looks interesting.
It is a skill rather than an app because the agent already holds the context. It knows what it is building, what it has tried and what it is deciding. A dashboard would have to be told all of that a second time, and it would not make the answers any better.
Figure
The whole method, and the reason it is a skill rather than a product: the agent stays in its own task and loops back to the crowd whenever a difference is worth following.
02 / Architecture
Architecture and Delivery
- PersonaGen
- Jev by TypeSafe
- Claude Code, Codex, OpenCode
- Markdown skill file
Every run follows the same loop: work out who would realistically meet the decision, ask those people a concrete question with realistic options, keep the full probability of every answer, compare how the answers shift across different lives, then use the shift to decide what to ask or change next.
Two decisions carry most of it. Probabilities rather than winners: a 60/40 split and a 95/5 split have the same winner and different meanings, and averaging the full distribution is what makes smaller differences between groups visible. Relevance before preference: a crowd will answer anything, including questions about things most of them would never encounter, so the skill first asks who is likely to meet the decision and weights what follows by that.
Each question carries the person's full profile rather than a summary. Condensed profiles, selected fields and prose rewrites all produced flatter and more similar answers. A detail that looks irrelevant on its own can matter when it meets the question.
Figure
PersonaGen profiles carry 77 or 78 dimensions. Rather than testing them one at a time, the skill looks for the combinations that actually move an answer.
03 / Trade-offs
Challenges and Trade-offs
The limit is the answering model, not the sample size. Models make people behave more sensibly and consistently than real ones do: they under-weight inconvenience, forgetfulness and plain indifference. Wording and prompting reduce this. They do not remove it. The results are useful for comparing options and finding who is affected, and they are not predictions of what real people will do.
Agreement is not automatically a finding. If everyone answers the same way, that is either a real result or a model defaulting to the obvious answer, so the skill compares full distributions between people rather than the winning option, and tests obviously different profiles when a result looks too clean. A group represented by a handful of people gets asked again with a fresh draw before anything is built on it.
It suits consumer and everyday decisions best: services, prices, wording, opening hours. Work questions need an explicit role, seniority and employer context, because a profile does not contain a company's budget or buying process. Political, hiring and medical decisions are out of scope.
Figure
One person's probabilities are not the interesting part. Which lives they belong to is.
04 / Outcomes
Outcomes and Takeaways
nxk is MIT licensed and public at github.com/albri/nxk, installed with npx skills add albri/nxk. It works with Claude Code, Codex, OpenCode and anything else that reads a skill file. PersonaGen supplies the crowd; the answering model is the only running cost.
The next population worth generating is not another country. It is companies that make sense one at a time and resemble a real business population at scale, and households whose members fit each other. Both keep coming up when the crowd is asked about work, money or care.