AI in development
We use AI in two places: in how we build software, and inside the software itself. In both, the AI does the work and the engineering around it decides whether that work is kept.
Agent-driven development
We build with AI coding agents, mainly Claude Code. The useful part is not the code they write. It is the process around them.
- Plan first, in the repository. Work starts as a written plan with research behind it, before any code is written. The plan is kept next to the code, so the reasons for a decision are still there when someone asks a year later.
- Rules the agent reads every time. Most of our projects have a rules file setting out how each is built, what must never be done, and the mistakes that fail silently. That knowledge lives in the project, not in one person’s memory.
- Reusable workflows. Our own commands take a piece of work from priming the agent on a codebase, through planning and execution, to review and commit. Every project runs the same way.
- Agents working in parallel. Independent tasks in a plan can go to a team of agents at the same time, each with its own files to change.
Review and guardrails
- The author does not review its own work. Changes are reviewed by separate agents that start with no context, each looking for something different, rather than by the session that wrote them.
- Hard limits, not good intentions. Hooks and permission rules block the most destructive commands, such as force-pushes, and stop agents reading secrets files directly.
- The pipeline still decides. Automated tests and secret scanning run in CI on every pull request, and on this website accessibility and performance budgets as well. AI-written code passes the same gates as anything else.
AI inside the product
Both sites in our portfolio use language models in production. The patterns are the ones we would bring to your system.
- Deterministic first, model second. Events Hub reads event pages with ordinary code first, and uses a Claude model only for pages the code cannot read.
- Check the answer against the source. At Events Hub, a link the model proposes is kept only if the page itself offers it, and the dates it reads are checked against the page’s own wording: an event whose date the page contradicts is published with a plain warning, not silently.
- Confidence thresholds, caching and a fallback model. Uplifting News publishes a story only when the model is confident, caches the main model’s verdicts so a headline is normally judged once, and switches to a second model if the first one fails.
- Respect for publishers. Sources whose robots.txt turns away Anthropic’s crawlers are kept out of the model entirely.
Measuring the model, not trusting it
Model choice is an engineering decision, so it is measured. Uplifting News chose its model after running two candidates side by side on the same 686 real headlines. Events Hub’s guides are benchmarked against guides written by hand, and the time a model call takes is measured rather than assumed.