The Problem
We run three products out of a Dublin studio. All in active development. All need QA. Manual testing doesn't scale when you're a solo dev shipping three products simultaneously.
So we built an autonomous QA system that reads your entire codebase, generates its own test plan, hunts bugs, fixes what's safe, and documents the whole operation.
Then we tested it. 3 products. Overnight.
Bugs found
Auto-fixed
Tests broken
The tool that found them is now open source.
Four Modes
/linkraft planBefore you buildScans your entire codebase and generates 12 research documents: competitors, architecture review, tech stack, database schema, API map, design tokens, risk matrix, dependency graph, executive summary, monetization model, and App Store keywords. Synthesizes all findings into a prioritized hardening plan: what blocks launch, what improves quality, what's polish. Then generates a CLAUDE.md from everything it discovered. Every future Claude session starts knowing your stack, your gaps, and what to work on next.
/linkraft preflightBefore you ship60-second read-only scan. Three scores:
Secrets, auth gaps, rate limiting, fail-open patterns
Dead code, test coverage, complexity, dependencies
Error handling, loading states, deploy config
/linkraft sheepAfter you buildSheepCalledShip: an autonomous QA agent that reads your codebase, generates its own test plan, fixes what's safe, reverts if build breaks, commits clean code, and writes a narrative field report with two personas:
Code reviewer. Reddit mod. Suggests rewriting in Rust.
Beta tester. Elderly. Tests with one finger. Finds real UX bugs.
Zero config. Reads your package.json, detects the stack, starts hunting.
/linkraft dreamrollWhile you sleepAutonomous landing page generator. Rolls a random Style Genome across 14 dimensions (millions of combinations), generates a standalone HTML page, scores it with three AI judges (BRUTUS, VENUS, MERCURY), saves it, starts the next. Doesn't stop until you stop it.
Wake up to 15–30 standalone HTML files. Open in any browser. Pick your favorites.
The Chain
/linkraft planunderstand the project/linkraft preflightsee what’s wrong (60 sec)/linkraft sheepfix what’s wrong (autonomous)/linkraft dreamrollgenerate designs (overnight)Each mode feeds the next. Plan generates the CLAUDE.md that Sheep reads. Preflight's report tells Sheep which areas to prioritize. The overnight run produces both engineering value and marketing material.
Dreamroll
/linkraft dreamrollWhile you sleepAutonomous landing page generator. Rolls a random Style Genome (14 dimensions, millions of combinations), generates a standalone HTML page, scores it with three AI judges, saves it, starts the next. Doesn't stop until you stop it.
Style archetype (30 styles from glassmorphism to cyberpunk to bauhaus), color harmony (12 schemes, algorithmically generated), typography (25 Google Font pairings).
Type scale, layout, density, mood, era, animation, imagery, border radius, shadow system, CTA style, and one Oblique Strategy constraint that forces creative deviation.
Mashup two styles. Invert the rules. Push to maximum. Strip to minimum. Franken three archetypes together. The system invents aesthetics that don't have names yet.
“Can I understand this in 3 seconds?”
“Is this genuinely beautiful?”
“Would I click that CTA?”
Average ≥ 7 = gem. Gems evolve. Weak designs get deprioritized.
You wake up to 15–30 standalone HTML files. Open in any browser. Pick your favorites.
Proven Results
First test: 3 products, overnight.
| Client | Moodscape | MahFah | TOTAL | |
|---|---|---|---|---|
| Bugs Found | 18 | 24 | 28 | 70 |
| Auto-Fixed | 15 | 20 | 24 | 59 |
| Logged | 3 | 7 | 4 | 14 |
| Files | 18 | 17 | 22 | 57 |
| Tests Before | 754 | 0 | 35 | 789 |
| Tests After | 754 | 0 | 35 | 789 |
Install
/plugin marketplace add akellaluvlace/Linkraft/plugin install linkraft/linkraft planunderstand the project/linkraft preflight60-second health check/linkraft sheepautonomous bug hunting/linkraft dreamrollovernight design generationThat's it. No API keys. No config files. No MCPs required.
Worst Bugs Found
String.fromCharCode(...new Uint8Array(imageBuffer))A 1MB photo creates 1 million function arguments. Max call stack: 65,536. The feature never worked in production. Nobody noticed.
n.read ? 'bg-surface' : 'bg-surface'A ternary that evaluates to the same string in both branches. Read and unread notifications were visually identical.
“Five routes without rate limits. The tier-limits system exists but is called by nothing. A cost control mechanism that controls no costs.”
Three moderation gates configured to fail open. When the API was unreachable, all content was approved. In a social app for 18+.
Open Source
tests
files
licensed
modes
MCP tools
friction
Dublin, Ireland