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.

Diagram: work on the task, ask people, compare the answers, change the work, with an arrow looping back to ask another question.

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.

Diagram: 77 to 78 parts of a life branching into combinations such as income with childcare, work with transport, and age with digital confidence, ending in find what changes the answer.

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.

Diagram: one person's probabilities for morning and evening, a grid of a hundred different lives, then finding who answers differently and asking them another question.

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.