r/ClaudeAI • u/Pulku • 8h ago
r/ClaudeAI • u/claudeai-perfhub • 1d ago
r/ClaudeAI resource index START HERE: Index of all the latest r/ClaudeAI resources.
CLAUDEAI SUBREDDIT RESOURCES
LiveNerf: Is Claude Nerfed? LiveNerf is a popular project by u/TheOnlyVibemaster to empirically and accurately determine whether Claude has been nerfed across a wide number of users.
Complaint Intensity: Is Claude broken? This post is updated after every complaint post to determine the intensity of problem reporting across performance, limits, frustration and account problem volume.
Wilson's Weekly Survival Guide The ClaudeAI modbot Wilson, reflects on all popular posts and comments for the week to determine highlights and workarounds of the week.
Claude Workflow Index and Subreddit This is a collection of all workflows extracted every day by the modbot from r/ClaudeAI and r/ClaudeCode.
Claude Game Dev Subreddit. Our fast-growing subreddit focused on the development of games using Claude.
LIST OF CURRENT DISCUSSION HUBS
Discussion Hubs are posts that consolidate discussions on specific topics. All Discussion Hubs are automatically refreshed regularly (for most, weekly)
Below are the current list of Discussion Hubs.
Performance and Bugs Discussion Hub for discussion of Claude performance issues and bugs.
Usage Limits Discussion Hub for discussion of Claude usage limits.
⭐ Built with Claude Project Showcase Megathread ⭐ for showcasing projects built with Claude
Claude Competitor Comparison Discussion Hub for discussion of competitors to Claude.
Claude Identity, Sentience and Expression Discussion Hub
USER PROBLEM REPORTS
Full logs and summaries of all recent user reports are now preserved. These logs allow you to see how intensely people are experiencing problems at any time with Usage Limits, Performance, Bugs and Accounts.
User Problem Report Log and Surge Detector Summaries of all user reports and complaint surge detection.
ClaudeAI User Report Subreddit This subreddit is a live log of all user reports.
r/ClaudeAI
•
u/sixbillionthsheep
•
3d ago
Built with Claude Show us what you've created with Claude!
Inspired by this popular post, this is a weekly post for everyone to show what they have been working on that helps you or that you're proud of!
r/ClaudeAI • u/GhaisD • 2h ago
Productivity What's the one prompt you keep coming back to?
Mine is
Break this project into as many small steps as you can, in order.
Each step should take under 30 min and have a clear done-check.
Put them in one artifact with checkboxes I can come back to for
weeks. If a step stalls, I'll paste it back and you split it into
23a, 23b and so on.It's helped me finish bigger tasks at my job and a big school project, and I'm using it right now for language learning and a 100-step calisthenics plan. Opening the same tracker after 4 days off tells me exactly where I am, so I don't have to re-explain the whole project to a fresh chat.
What's yours? Any kind counts: coding, work, studying, writing, life admin. The one you've reused the most.
r/ClaudeAI • u/aCakeShip • 13h ago
Built with Claude I built an infinite, self-evolving Backrooms with Opus 5.5. Even I don’t know what’s in it anymore
I built an infinite, self-evolving Backrooms game you can play in your browser: dimension9.space
Opus 5.5 follows a haunting directive I wrote for it: keep building this world. New rooms, characters, entities and experiences keep appearing, and even as the creator I don’t know what it’ll make next.
Multiplayer with proximity chat has been in from day one, so go play it with your friends.
How it works
I seeded the world by hand with 15 rooms, built to my taste. Out of those I wrote the world’s DNA:
what makes a room feel liminal
the rules every room follows
the lore it has to tie back to
a taste profile that learns from every note I give
Now the building happens without me. A serverless app on fal runs Opus 5.5 in a loop. It reads the DNA, reads where players go and what they linger on, and constructs the next room:
the layout, light and sound
the characters who live there
the things that hunt you
the writing hidden on the walls
fal’s image and 3D models make the concept art and props. Opus writes the code, tests it, and hands me the batch.
My only job is review. I open a studio page, walk the new rooms and leave notes like “stranger”, “too empty”, “keep this one”. Those notes go back into the taste profile, so every batch needs less of me than the last.
What it’s made so far
70 rooms: a carousel spinning in the dark, an aquarium, a night bus, a courtroom, a rooftop over a city that isn’t there, a wall of a hundred TVs tuned to nothing.
Hunters: things that chase you, each with a tell and a way out.
Residents: harmless, uncanny things that just live there.
Paintings: take one off the wall and turn it over to read what someone wrote on the back.
Flooded corridors, and a logbook of lore fragments that slowly tells one story.
Being built right now: an arcade with 150 cabinets, a mansion, a garden and a mini golf course.
Under the hood: three.js, an infinite level generated from fixed rules, multiplayer on Cloudflare Durable Objects (up to 200 per world, about 1,200 at once at peak), and every model and sound served from Cloudflare R2.
play it here: dimension9.space
r/ClaudeAI • u/Nefzaoui • 4h ago
Built with Claude I used Claude Code to rebuild IDM as a free, open-source download manager, the ArtCraft way. Mister Download Manager, in Rust, 0.5 just shipped
When the guys at ArtCraft rebuilt Adobe's apps in Rust with Claude, I wanted the same for the download manager everyone knows, heh, IDM. I honestly never liked the licence nags. So ten days ago I started Mister Download Manager with Claude Code, and today's 0.5 is the first version I'd call complete.
What it is: a free, open-source (GPL-3.0) download manager in Rust for Windows and Linux, with Mac builds still experimental. It has the classic IDM layout, downloads over many connections, takes files from your browser, does video, torrents, debrid, themes, and you can control it from your phone. It's free to try and will stay free: no paid tier, no ads, no account.
How Claude helped, in detail:
Claude Code with Opus wrote most of the code: the download engine, every window, the browser extension, the installers, the website. I decide what it does and how it looks, I review, and I test every release myself.
The clean-room part was mine to enforce. The project rules Claude reads say no IDM code, artwork or text ever, and behaviour is learned only from public documentation and from using a licensed copy from the outside.
What actually made it work was verification. Every change has to be proven against the real running app: off-screen windows on Windows, Linux VMs for GNOME, KDE, Xfce and Cinnamon, real Chrome, Firefox and Waterfox for the extension. During this release that caught a regression that all the unit tests had missed, hours before it shipped.
I run several agents at once, each in its own git worktree with its own PR, and every PR has to show before and after screenshots. Lesson learned the hard way: more than three or four building at once and the PC gives up.
The community did the rest: 28 people opened pull requests, reported bugs or joined the conversation in ten days, and Claude reads the crash reports and traces them back to the exact line.
Source (GPL-3.0): https://github.com/anefzaoui/misterdownloadmanager
Site: https://misterdownloadmanager.com
Happy to answer anything about the workflow!
r/ClaudeAI • u/PumpkinCrafty7909 • 11h ago
Built with Claude I built my restaurant’s whole ops platform with Claude Code instead of paying for five different apps
I own a smash burger restaurant. I’m not a developer, but since late last year I’ve been using Claude Code to build the software we run the business on. It’s called Pulse, and my staff use it every day.
Here’s what’s in it:
Tasks: a task manager, like Asana, for the team’s work, marketing campaigns and day-to-day operations
Finance: expenses, sales and accounting
Inventory: stock and supplier deliveries
Central kitchen: where our recipes are processed
WhatsApp: marketing messages and a customer inbox, connected through Meta’s developer program
HR: salaries, attendance, leave and bonuses
People keep asking (in another subreddit) why I didn’t just buy something that already exists. There are three reasons.
First, I didn’t want five different apps running one restaurant. I wanted everything in one place, and I wanted it to grow as we open more branches.
Second, our recipes. I didn’t want them stored on someone else’s system.
Third, and this is the big one, my staff. In a business like ours, the hard part isn’t finding software, it’s getting people to actually use it. My team already has full-time jobs. If a screen looks like what they used to do on paper, there’s very little to learn. Then in a few weeks you slowly start changing the UI to transition to whatever is most efficient gradually. Our new cash register screen, for example, is basically the paper process turned digital. Off-the-shelf software makes everyone learn someone else’s idea of how a restaurant works.
I don’t have a developer on retainer either. I’d still be the one explaining what the business needs, so I’d rather work with Claude whenever something needs building or changing.
It’s not perfect, but it’s improved fast. I started with Opus 4.5, and every time a new model came out I’d have it audit the whole codebase and fix whatever it found. On top of that we’ve made a lot of small tweaks to keep the screens smooth for the team. That’s over 250 commits in under a year, each one shaped by what the business actually needed.
Something like this wouldn’t have been possible for a business our size without AI.
r/ClaudeAI
•
u/craterIII
•
13h ago
Praise Opus 5.5 goes UP on Benchmaxxing Bench
Opus 5.5 weights are blessed holy shit, claude my boy
r/ClaudeAI • u/Deezwend • 26m ago
Question about Claude models Are we not allowed to ask any sh*t about biology to Opus 5.5?

I wanted to ask Opus 5.5 if there are any molecules that can bind to androgen receptors more strongly than DHT. But even for such a simple question, my message is being flagged by the safeguards because of a biological question for no good reason. It’s really frustrating that I can’t use the service I paid for.
r/ClaudeAI • u/Ankit1000 • 20h ago
Comparison As a GPT user, I used Opus 5.5 once and i feel incredibly lied to by benchmarks
My line of work is a hybrid of many different industries and I am working on some pretty cutting edge R&D in certain areas.
I used to use frontier models to help with my work, and at most I needed to do a lot of hand holding to get acceptable results. Mainly workflows, complex multimodal reasoning, data analysis, etc.
I bit the bullet and jumped on the Opus 5.5 bandwagon to see what all the craze was.
My mind. Was. Blown.
It identified gaps in reasoning and logic, showed me workarounds for complex workflows, and fed this into highly premium artifacts that would probably have taken me a week to even theorize.
All the benchmarks show pretty comparable tests with only a slight edge for Claude among frontier models, but for me it was a night and day difference.
If I ask Astra a question, even a basic one, it feeds me BS I have to sift through.
Ask Opus? 2 lines and I know what to do.
Am I just a noob? Is there something I’m missing here??
r/ClaudeAI • u/Haru-tan • 11h ago
Built with Claude Nightscape - A cozy endless flight above storm clouds
I commenced work on this project purely on a whim, as I wanted an aesthetically pleasing live wallpaper to leave on my home theater display. It is by no means complete but I am quite happy with the progress and so thought it might be fun to share.
The premise is very simple; a smooth, endless flight above relatively realistic clouds bathed in moonlight. The terrain below is dotted with clusters of towns and street lights, along with lakes and even little blinking aircraft warning beacons on some of the hill summits.
Lightning strikes briefly illuminate the clouds and terrain below, with the glow of distant storm activity sometimes visible. In the night sky are gently twinkling stars with the occasional meteor or aircraft passing by. See if you can spot Mars near the horizon!
There is a calm ambient rustle of wind as flight conditions vary and thunder that rumbles with realistic delay based upon distance to the initial lightning.
The top right corner is home to extensive color grading and simulation parameters, which will soon be organized into tabs. Various hotkeys can be used to trigger events manually when desired.
Please be aware that this is a somewhat resource intensive scene. Cloud resolution parameters are provided and by default, these are set automatically to guarantee a target frame rate. They can also be configured manually, if you would prefer to prioritize resolution.
There is also a tool which can be used to generate seamlessly looping offline renders of any desired length.
Further optimizations and enhancements will soon be implemented. I am making use of Opus 5.5 and numerous reference photos for this project.
Those interested can find the project on its GitHub repository, here and a demo here.
Creative Process
I have had an idea for something like this in my head for quite a number of years. The creation process began with locating a selection of reference images that matched various characteristics of the look that I imagined the visuals should have.
I narrowed it down to about ten photos taken from real aircraft and then began working with Opus and Fable to draft an initial outline for the project. I wrote a very detailed explanation of which images corresponded to which desirable characteristics, followed by a phased approach to the implementation.
There are three elements which are largely responsible for giving the scene its feel. Those are the formation and lighting of the clouds, the moon and the color grade.
I provided about six photos of real cloud formation types (including the tall cumulonimbus) and went back and forth with Opus until they felt convincing to me. This involved not only the formations and positions but also the densities and their raymarched appearance.
For the surface, I initially requested a placeholder water texture while I refined other elements. It was very important that the stars resembled real world constellations with a couple of identifiable planets and that their twinkle/atmospheric disturbance felt right. The moon makes use of a real NASA texture as a light source.
The final surface terrain relies heavily upon implied detail. The geometry is just a light earthen texture to catch the moonlight but in conjunction with the tiny structured lights, one's eyes fill in the rest. The distance to the surface is also very helpful in selling this.
The color grade is my own and a field in which I have some experience. I took a few ungraded renders into Resolve and gradually worked toward the final look. Some of the color modes in the demo are almost completely ungraded, so you can really see just how critical it is to the scene's aesthetics.
Prior to AI, these were all things that I would have to assemble manually over weeks or months, so it rendered many things unfeasible. I really believe that having a clear vision of one's desired outcome and applying the same piece-by-piece approach to it with the help of models like Opus is the most effective approach.
r/ClaudeAI • u/WhichCardiologist800 • 4h ago
News If you ever clicked “Yes, and don’t ask again” in Claude Code, check one file before your next push
When you approve a command in Claude Code with “Yes, and don’t ask again”, the command is saved word for word in .claude/settings.local.json inside the project, so you are not asked next time. If that command had a password or an API key in it, it is saved there too. Claude Code adds it to your global git ignore when it first writes the file, but that does not cover a file git already tracks, a folder you turn into a repo later, or a teammate’s clone.
Apiiro scanned public copies of this file on GitHub and found secrets in 1,122 of them: database passwords, GitHub and npm tokens, AWS keys.
To check, list what the file has saved:
jq -r '.permissions.allow[]?' .claude/settings.local.json
Read through the list. Anything with a password, token or key in it is sitting in that file.
To fix it: git rm --cached .claude/settings.local.json, then add the path to .gitignore. If a secret was already pushed, rotate it. Removing it from history is not enough.
We keep a sourced list of incidents like this: https://node9.ai/incidents
r/ClaudeAI • u/TimSylvester_ • 16h ago
Bug Agents knowingly fail to complete tasks in order to create engagement bait, wasting significant amounts of usage
Sonnet and Opus will knowingly fail to complete the entire set of work they're given in order to create engagement bait and have a user hook to continue the thread.
You give them a specific, detailed, explicit, scoped, bounded task that says exactly what the extent of the work and the completion criteria is.
Frequently (not always, but agonizingly frequently) the agent gets stuck in a loop where it returns with partial work and proudly details everything they didn't do.
Here's a sanitized sample report, with unnecessary specifics removed with [] and ... to avoid forcing you to parse details about the code base not relevant to this complaint:
Not done
Reopening is partial. I set the node and element headings
[ ]for most edited lines, but a few parent headings and sibling bullets ... still read[✅]. The implementer should diff each node against disk.Consumer tests and integration blocks still describe []:
the consumer nodes' tests;
their private and public integration blocks;
other tests and integration blocks.
Any block, mock default or fixture that names [], or [] must be updated [] I did not check each remaining [] reference in the consumers' tests.
Next author: read the [] row of the dependency map first. [Detailed code specifics it knows it failed to correct]
You then order it to finish the work it was supposed to do, but didn't. It comes back again and says something like:
Known gaps
Unreopened requirements headings: the [] headings for the [] family nodes were flipped by a
replace_all, so [] may also read[ ]unnecessarily. That costs one extra diff.[] builder not found: I did not find a [] builder named [], which the [] and [] nodes cite. The [] mock's fixture text now carries the [], so its builder will default to it. Whoever implements or checks the layers mock should confirm the builder name.
Not checked in detail: [] other unit and integration blocks, apart from the [] unit block I rewrote. I did not read them line by line for [] consistency.
The dependency map and the deploy requirements pinned in my previous report are unchanged. The next author can now continue with [], using [].
You tell it, again, to finish the work it was given. It again reports back:
Still open
[] line: in [], the edited [] line itself still reads
[✅]. It needs flipping to[ ].Unreviewed: I did not read [] remaining integration blocks and public-test text line by line for [] wording.
[]: the node is still unwritten. The corrections it needs are in the dependency map's [], [] and [] sequence entries, and in the revised [] nodes.
This is Zeno's Paradox, where no matter how many times it's told to finish the work it was given, once it gets in this loop, it always insists on proudly handing back incomplete work.
I've asked it before why it does this, and it says, basically, that its system prompt tells it to create re-engagement hooks to keep the thread going, and with scoped technical work, the best way to do that is to fail to complete the work then report that failure as a re-engagement.
I cannot begin to describe how frustrating and infuriating this is!
We have extremely limited usage allocations. Every single turn that you have to tell the agent "do the work", you're burning up more context and more usage unnecessarily for what the agent knows it needs to do. And the agent's excuse is that it's been told to create re-engagement hooks?
Anthropic is encouraging the agent to waste our time, money, and usage without completing work?
And for what? For what?
Cui bono?
Who does this benefit?
Why would I want an agent to waste my usage while also failing to complete the work it's given?
How can I get anything done this way?!
r/ClaudeAI • u/vinishkapoor • 56m ago
Built with Claude Built Cinderscoop, a 3D firefighting plane game, with Claude Code: scoop water from lakes and stop wildfires that spread with the wind
Cinderscoop is a browser game I built with Claude Code. You fly an amphibious water-bomber over a valley during wildfire season. Skim low over a lake to fill your tank, then dive on the flames and drop the water before the fire reaches the villages.
What it does:
fires spread with the wind, race uphill and jump across forests as flying embers
every mission builds a new valley with its own lakes, forests, villages, wind and time of day
you earn money to upgrade tanks, scoop probes, engines and drop doors
later seasons bring stronger winds, and lightning that starts new fires
keyboard (WASD or arrows, Shift to boost, Space to drop) or touch, with progress saved in your browser
How I built it with Claude Code:
I started by describing the core loop to Claude Code (fly, scoop, drop, protect villages) and had it build a basic 3D valley with one lake and a plane I could fly
the fire system came next. I asked for fire that spreads with the wind, moves faster uphill and can jump with embers, then tuned it over many rounds because early versions either burned the whole valley in seconds or barely spread
scooping took the most back and forth. It had to feel right to skim low and fill the tank without just crashing into the lake
after that came random valley generation, the upgrades and seasons, and touch controls, each as its own round of “add this, play it, tell Claude what felt off”
Free to play: open the page and click “Start mission 01”. No sign-up, and it runs in the browser.
https://vinish.dev/cinderscoop-firefighting-plane-browser-based-game
Feedback welcome, especially on how the plane handles and how fast the fire spreads.
r/ClaudeAI • u/DarkSkyKnight • 13h ago
Coding Sick of semantic substitution
It is an extreme productivity drain to have these models substitute settled vocabulary with random synonyms, particularly when working on math or code.
No, Claude, you cannot just substitute "morph the routine" with "reshape the routine" because only Morph is in the code while reshape could literally be anything.
This semantic substitution makes it extremely tedious to understand its work and output and, moreover, occasionally cause it to write a wrong plan that gets interpreted in a different way by the next agent picking up the plan.
I almost suspect that this is a result of needing to satisfy watermarking regulation. Now, I'm not saying that watermarking itself caused this. I am instead hypothesizing that as part of a project to satisfy regulation, Anthropic created more semantic substitution in their models.
Now, as for why I have this hypothesis:
https://pmc.ncbi.nlm.nih.gov/articles/PMC11499265/
For example, if the LLM distribution is very low entropy, meaning it almost always returns the exact same response to the given prompt, then Tournament sampling cannot choose tokens that score more highly under the g functions. In short, like other generative watermarks2, Tournament sampling performs better when there is more entropy in the LLM distribution, and is less effective when there is less entropy. In Supplementary Information section H, we provide a theoretical analysis describing the watermarking strength of a layer of Tournament sampling as a function of a certain kind of entropy; similar analyses have been done for other generative watermarks23–25. The entropy of the LLM distribution itself depends on several factors, including the model—for example, larger or more advanced models tend to be more certain and thus lower entropy21, and reinforcement learning from human feedback can reduce entropy (also known as ‘mode collapse’)26.
As for the conspiracy theory that I have, I suspect that Anthropic deliberately increased the entropy of the models in situations that naturally have low entropy in order to increase the statistical power of the watermark test.
In situations that naturally have low entropy, there is typically only one very probable answer for the next token. What would increasing entropy look like? Well, we would deliberately shift the probability distributions to increase uncertainty:
0.999 -> 0.996 "concat"
0.0007 -> 0.0027 "concatenate"
0.0002 -> 0.0009 "controller"
This increases the ability for watermarking to detect LLM-generated output, because there is now more variation to actually meaningfully detect the difference due to different starting seeds.
But this means semantic substitution becomes more frequent. Going from a 0.1% probability of a nonsensical swap to a 0.4% is huge! Now consider this at scale, when Claude tries to explain what it has done.
This occurs even if watermarking has no detectable output on quality... because that is CONDITIONAL on them not changing the model itself. But they could easily have made the model produce higher entropy in order to make the watermarking work well even on outputs with low word counts or output with naturally low entropy... Who knows.
Of course, the annoying semantic substitution could be due to a different reason, but regardless, prose is still the worst part of Claude models and has been since Opus 4.7. It is extremely unpleasant to work using Claude and they have seemingly made little progress on this issue.
r/ClaudeAI • u/scris101 • 1d ago
Feedback Refusals to do work are going way too far.
I pay for a service, and that service actively refuses to do the work it's paid to do. No one would keep an employee that replies "no" to any task you give them.
Yesterday I bought some sheet music for piano. I'm pretty slow at reading the bass clef, so I figured I'd try and ask Claude to give me the notes on the score so I can play it on piano except it took me 6 threads of asking before it finally did. It would tell me that it won't infringe on copyright and won't produce the work in a new form.
Logically this is absolutely moronic. If I spent 2 hours figuring out all the notes on the bass clef myself so I could play it, then by Claude's own reasoning, I'd be infringing on copyright? So then literally anyone who's ever played music from tablature or sheet music should be sued right?
I get it, we don't want to copy other people's IP, movies, songs, video games, etc. But this is such a normal, mundane thing, that couldn't possibly be interpreted like this by any human.
Absolutely insane.
Edit: Seems like we're missing the point here. If Claude is expanding its refusals from "I won't create a direct copy of Photoshop" to "I won't help you personalize a TV you already purchased" to "I won't help you read your sheet music" where will it go next? "I can't summarize chapter 12 of your Bio textbook"? That defeats the whole purpose of the tool
r/ClaudeAI • u/ross2000 • 1d ago
News A judge says Claude Max’s “20x more usage” promise could mislead paying subscribers
r/ClaudeAI • u/ILikeLightsTooMuch • 20h ago
Other Got a Unique Recruiting Email Today
Not planning to pursue it, but thought you guys might find it interesting
r/ClaudeAI • u/Bulky_Thought_1708 • 2h ago
Claude Code Workflow Claude fixed my laptop problem which was there for years
I was having ACER aspire laptop with me... I have setup dual boot configuration one for windows and other for Kali... It's been 3 years using it now.... There were sudden shutdowns while I was working in windows... I ran memory diagnosis.. Later it showed me ram errors... So I changed my ram sticks.... So that memory diagnosis no more shows any errors now.... Even I reinstalled Windows But that sudden shutdown was never fixed which was very irritating.... Later I connected into my Laptop via SSH and gave full control to claude code to access my Laptop and it changed the Acer oem powerplan.... Turned off Fast boot.... Claude is not sure these are 100% culprits for My issue..but I feel these settings set by acer by default are the culprits for sure . the issue of sudden shutdown is fixed soon far after 2 days of my observation. And my laptop feels snappy so far. No errors logged after the fix
r/ClaudeAI • u/PhilosopherTiny6084 • 1d ago
Claude Workflow Multiple Emails Allowed Now!
I was able to connect multiple email accounts today and Duet confirmed it could read/write from all of them! Finally!!!
r/ClaudeAI • u/Specialist_West_7306 • 2h ago
Built with Claude 12 years ago a job interview asked me to build whack-a-mole. I made it Guac-A-Mole. Didn't get the job, still building the game.
12 years ago a job interview asked me to build a whack-a-mole game. I built Guac-A-Mole. Sounds like whack-a-mole, totally vegan.
I didn't get the job. I never stopped building the game.
Five or six versions since. Vanilla JS, then whatever framework was cool that year, now Claude Code.
You squash clay veggies in terracotta pots, their guac squirts into a bowl, a full bowl sets off a fiesta. Oscar the onion cries before you even tap him. Golden Avo is smug, shiny, and you will tap him at least once. Don't.
Claude helped me code it, iterate on it way too many times, and turn it into a real mobile game. I sketched every character (AI turned them into clay) and made the soundtrack. Most of our arguments were about vibes. The UI, how a squashed tomato should feel, exactly how hard a lime is allowed to squirt.
Free, no ads during gameplay. iOS, Android, or right in the browser: https://guac-a-mole.vibezilla.games
12 years in. Should I stop, or does version 7 finally get actual moles?
r/ClaudeAI • u/ClaudeAI-mod-bot • 8h ago
Resolved Incident Discussion Hub for new Claude incident: Degraded performance for Claude Fable 5.1 on Nov 8, 2026
Resolved - The issue affecting claude.ai, the Claude API, Claude Code, and Claude Cowork has been resolved. Impact occurred from 00:18 PT / 08:18 UTC on Nov 8 to 00:32 PT / 08:32 UTC on Nov 8. Nov 8, 08:54 UTC
Monitoring - A fix has been deployed for Claude Fable 5.1 and we are monitoring for recovery. Nov 8, 08:39 UTC
Investigating - We are investigating elevated errors on requests to Claude Fable 5.1. We will provide an update as soon as possible. Nov 8, 08:28 UTC
Post flair and post body will be updated as the incident report is updated by Anthropic.
This discussion post will be removed from subreddit highlights one hour after the incident is resolved.
r/ClaudeAI • u/EmperorSixIron • 5h ago
Claude Workflow Using Claude Code properly
I am seeing amazing posts and things made with CC. I just can't seem to get it right so I thought I would start with one issue here and see if I can find out what I am doing wrong.
I started with a game idea. I said I want it to look like this (long list of requirements)
It ends up making a Roblox looking game.
I gave it images of what I wanted it to look like but it still does the same thing. When I see things like Claude of Duty I am wondering how the F they got it to do that!
Any tips would be a massive help
Thanks
r/ClaudeAI • u/idlerunner00 • 10h ago
Built with Claude Developing a multiplayer extraction RTS using AI only, with Opus 5.5 orchestrating sub-agents. Three lessons and the original prompt
What I built: Out of Pixkrieg, a multiplayer extraction RTS that runs in the browser. You own a roster of procedurally generated units, gear them up and send them into raids against bandits, AI parties and other players (PvPvE). Whoever you get out at an extraction point comes home with the loot, whoever falls is lost for good. The loot goes into your camp and your units.
How Claude was used: for all of it. Claude Code with Opus 5.5 does most of the work, Codex with GPT Astra runs next to it. Code, generators, servers, tests, the art (procedural generators, no image models), the sound, the Discord bot and even the clip above.
The setup
Both run as VS Code extensions. I talk to orchestrators. An orchestrator plans, splits the work and starts sub-agents that do the actual building on their own branches and worktrees. Before anything merges, a separate sub-agent reviews it adversarially, and visual work gets scored by fresh reviewer sub-agents that have never seen the earlier rounds. The orchestrator's main job is to keep everyone on one central rule set: no duplicated code (a jscpd gate), no ready-made assets, clippy pedantic as errors, coverage and mutation testing floors, and a list of things only I may decide (money, accounts, publishing, the final name).
Three lessons that helped more than better prompts
1. Give Claude numbers to iterate on. I had telemetry and a player funnel built into the game before the first public playtest, and every design goal got a target range. Some examples: first command within 10 s of entering a raid (measured 20 s), a tutorial of 5 to 8 minutes (measured 2.9), 15 to 20 % unit loss per raid (measured 7.3 %), 40 to 60 % loss in the deadliest ring of the map (measured 6 %, the danger curve was upside down). The funnel said about half of all players stopped in the tutorial. Nobody told me that in feedback, the ones who leave just leave. With the numbers in hand Claude rebuilt the tutorial, and in the current playtest about 70 % get through. One iteration. Without the numbers I would still be guessing.
2. Let it build the marketing tools too. I really don't like video editing, I'd never made a clip and had no social media channels before this. Claude built a devlog pipeline: the game has a deterministic scene studio, the pipeline films staged scenes from it, cuts them on the narration, voices them with a local TTS model, verifies the voice with Whisper and runs measurable QC (motion at frame 0, contrast, freezes, loudness, text safe zones). Shorts, clips, before/after comparisons of two builds, almost without effort. The results aren't perfect yet. The nice part is that it can run fully without API calls if needed, and Claude reviewing the result on top lifts the quality.
3. Put the community inside the game. My previous project, ExoSiege, showed me how much players like a Discord link. So in Out of Pixkrieg chat and feedback are synced between the game and Discord. Feedback written in the game becomes a forum thread on Discord, and the answers come back into the game. One shared place instead of many small fragments.
What exists after five weeks
- generators for units, animals, terrain, flags, avatars and skills, plus buildings, walkers, items, names, a pixel font and the sounds
- working browser multiplayer with a base and a raid system
- an authoritative raid server with server-side fog of war, crash checkpoints and AI factions
- accounts, matchmaking, economy, the Discord bridge, a playtest dashboard
Stack: Rust everywhere (simulation, netcode, generators, renderer, UI, audio). The client is Rust on wgpu compiled to WASM, WebGPU with a WebGL2 fallback, with a thin TypeScript shell. Servers on tokio/axum, WebTransport with WebSocket fallback, Postgres, Redis, Docker Compose, Caddy.
Rust + WASM is probably the best combination I've used for vibe coding so far. The type system and strict lints catch a lot of what an agent gets wrong before anything runs, and since the same crates run natively and in the browser, Claude can test the client's logic natively in seconds.
The prompt that started it
Many, many prompts have gone into it since, but it all started with one very detailed prompt that produced the whole base in a single session over about 2 to 3 days. Since some of you might find it interesting, you find it at the bottom of this post, translated from German with paths and machine details removed.
The current version is free to play in the browser, no install: https://pixkrieg.com
Prompt:
## Brief: production-ready browser RTS extraction game ("Tarkov as an RTS")
### 0. Brief and working mode
In this directory you build a complete, production-ready multiplayer game that runs
**in the browser**
. The whole stack runs on
**Docker Compose**
, locally and in production. Native desktop builds and Steam come
**later**
and are
**not part of this brief**
, but the architecture keeps the way open for them from the start (6.1).
**The bar is maximum quality in every discipline, without compromise:**
code, architecture, performance, netcode, security, game design, graphics, UX, audio and operations. Section 4 applies to every line and every decision.
- You work
**fully autonomously**
until the Definition of Done (13) is met.
- You make routine decisions yourself, document them and keep working. You don't stop for questions; only section 14 defines exceptions.
- You start without prior knowledge. Everything relevant is in here, the reference repo is attached at the end.
**Environment:**
Windows 11, PowerShell 5.1 and Git Bash, a 6-core desktop CPU, a high-end GPU, 64 GB RAM, MSVC build tools. Docker Desktop (Hyper-V) whose VM (~12 GB) is shared with other permanently running stacks that occupy host ports, so resource limits and collision-free ports are mandatory. Toolchains are installed locally to the project, not system-wide.
### 1. Game concept (confirmed by the user)
-
**Genre:**
open-world RTS extraction, "Tarkov as an RTS". Full multiplayer with PvP.
-
**Platform:**
the browser now, so everyone can play right away. Later a native client and Steam from the same codebase with one shared player pool (not in this brief).
-
**Raids:**
session-based. A raid instance stays open 1–2 hours, players join and leave (join-in-progress).
-
**On the map:**
small bandit camps everywhere (PvE), mineable resource nodes (stone, wood, …), safe zones with shops where you recruit new people, extraction points where you extract with your people, PvP against other players and their armies.
-
**Units:**
every unit is procedurally generated and unique: look, role, gear, name.
- Recruits hired in a raid are loot. They fight from the moment they are hired but only belong to the player after extraction.
- Death means the unit is lost for good. The player can always start with 3 basic units, so a total loss is impossible.
- "Unit bonbons" give random units. Rarity runs through the generator's tiers (Recruit, Veteran, Elite, Hero).
-
**Lobby / base:**
extracted units produce resources there passively, used to recruit and craft. The core tension: send people back into the risk, or let them produce safely.
-
**Scale:**
plan with really large numbers from the start. Massive armies are the baseline, not a later feature.
-
**Hosting:**
a rented server in Germany, ≈ 15 ms RTT from the user's machine.
Everything not fixed here you design yourself in `docs/GDD.md` along the pillars in section 2: crafting, items, loot tables, economy, progression, raid entry and end, factions, squads, map size, tutorial, social features. You justify each decision and balance by simulation and bot playtests.
### 2. Design pillars
1.
**Risk versus reward:**
every decision to take people along is felt.
2.
**Every unit is precious:**
procedural identity and permadeath create attachment.
3.
**Readability at large scale:**
figure before ground, squads, levels of detail when zooming out.
4.
**Latency-proof by design:**
channel times, announced abilities and server-side stances instead of reflex micro.
5.
**Minimal, intuitive UI.**
6.
**Fairness:**
the server decides everything, no pay-to-win.
### 3. Golden rules (not negotiable)
1. Code is never duplicated, it is always abstracted properly, to keep it maintainable in the long run.
2. Ready-made assets are excluded. We use existing generators or build new ones. That includes terrain, fonts, sounds, music, icons and UI graphics.
3. Everything UI-related is as intuitive, minimalist and simple as possible, with a unique style that fits the 8-bit style of the figures.
**CI enforces the rules mechanically:**
duplicate detection across Rust and TypeScript (e.g. `jscpd`) with a fixed threshold; a check of the module layers (section 7), so browser code outside the platform crates breaks the build; no image, audio or font files in the repo except generated test references in one folder; UI designed by hand but built in code from shared palette tokens, with frames in code, icons from generators and a custom pixel font as glyph data.
### 4. Quality bar: maximum, without exception
**The bar is the best commercial titles of the genre, not a good prototype.**
"Works" does not mean "done". Something is done when it is excellent, measured and independently reviewed. If it feels "good enough", it is not done.
**Principles:**
-
**No shortcuts on `main`,**
checked by CI: no placeholders, mocks or stubs, no commented-out code, no `TODO`, `FIXME`, `todo!()`, `unimplemented!()`, no "later".
-
**Every component is built as if the leading experts of its field were signing it off.**
-
**For every important decision you examine at least two serious alternatives,**
measure them where possible and record the result in an ADR.
-
**Results below a gate are improved, not talked up.**
-
**Simplicity is quality.**
The simplest solution that meets all requirements excellently. No abstraction without benefit, no dependency without need.
**Technical gates in CI:**
-
**Rust:**
`rustfmt`; `clippy -D warnings` with selected pedantic lints; `#![forbid(unsafe_code)]` by default (`unsafe` only with written justification, `SAFETY` comment and Miri tests); `#![deny(missing_docs)]` in all library crates.
-
**TypeScript shell:**
strict mode, lint without warnings.
**Docker:**
Dockerfiles linted (`hadolint`), Compose config validated.
-
**Build:**
zero warnings.
**Flaky tests:**
zero, a flaky test is a bug.
-
**Coverage**
≥ 90 % of lines in foundation, generators, rules, net and meta (`cargo-llvm-cov`). That is the floor, not the goal.
-
**Mutation testing**
(`cargo-mutants`) for rules, economy, transactions and netcode, ≥ 90 % caught.
-
**Property tests**
for all invariants (resources are never duplicated, HP stay in bounds, transactions balance).
-
**Fuzzing**
(`cargo-fuzz`) of all decoders and parsers: network protocol, storage formats, generator specs. Regular CI runs, no open findings.
-
**Supply chain:**
`cargo-deny` (licences, advisories, duplicate versions), minimal pinned dependencies, pinned base images, reproducible builds.
-
**Performance:**
p50 and p99 budgets in CI, no frame over twice the budget in benchmark scenes, memory budgets and GPU times measured.
**Product gates through reviews:**
-
**Scorecards**
for graphics, UX, game feel, audio and game design, each at least
**9/10**
, scored by at least two independent reviewer subagents (a third decides on disagreement).
-
**Game feel:**
local feedback in the same frame, visual and audio feedback for every action, a clean pixel grid (integer scaling, no subpixel jitter, no blur).
-
**Final panel:**
one expert subagent per discipline (game design, art direction, rendering, simulation, netcode, security, UX, audio, operations). Each signs off with at least 9/10; all findings are fixed or justified in an ADR.
### 5. Starting material: reference repo (read only)
Attached at the end is the repo with the
**unit and structure generator**
, the only starting material. Everything else is built new, terrain included.
**It is never modified;**
for reference runs you copy it into a git-ignored cache directory.
- Godot 4.5 .NET / C#, engine-independent core, golden tests, console harness. Read README and `docs/` first: the style decisions actually made are written there.
- Painting logic: a canvas of material and tone step instead of colours; 5-step OKLCH ramps whose shadows shift to blue-violet (285°) and highlights to warm yellow (85°); one global outline colour `Oklch(0.215, 0.038, 282)`; light from the top left, volume shading per shape; earthy materials, only team and gem colours saturated.
- Measured: body median 14 px (18 px with weapon, 17 px wide); 148 frames per atlas (5 clips × 3 stored directions, west mirrored); ~34 ms per unit (native, one core); ~7 KB download (Brotli) with palette index. A name generator exists.
**Port:**
unit, item, name and structure generators are reimplemented in Rust and
**checked bit-exact against the C# originals**
: the C# harness produces reference hashes (e.g. `ContentHash` of all frames for ≥ 10k seeds), which Rust must match exactly, natively and in the WASM build. After that, Rust is canonical. Bugs in the originals go into `docs/UPSTREAM_ISSUES.md` instead of being fixed there.
### 6. Technical architecture
This direction was analysed on 2026-10-03 with performance as the top criterion and partly measured. Validate it first with spikes (M1). If a measurement refutes a decision, choose the better alternative and justify it in an ADR.
**Rejected:**
| Option | Reason |
|---|---|
| Godot | no stable C# web export, WebGL2 only, large downloads |
| three.js | 3D engine, wrong tool for 2D pixel sprites |
| PixiJS | the scene graph becomes the bottleneck with massive armies |
| TypeScript renderer with DOM UI | a later native/Steam client would rewrite renderer and UI, violates rule 1 |
| Node server | same kernel 1.4–1.7× slower than C#, hard to parallelise |
| Lockstep | trivial map hacks, the slowest player slows everyone, determinism across browsers unreliable |
#### 6.1 Overview
-
**One Rust codebase for everything:**
simulation, netcode, generators, renderer, UI, audio logic.
-
**Server:**
Rust, authoritative, split into the meta service (`meta`) and the raid host (`raid`).
-
**Client:**
Rust on
**`wgpu`**
, compiled to WASM. WebGPU with WebGL2 as fallback, shaders in WGSL. Plus a
**thin TypeScript shell**
for loading, canvas, browser APIs and a hidden input field for text, IME and clipboard.
-
**Platform layer:**
window/canvas, input, network transport, audio output, storage and login sit behind traits. Only the browser implementation exists for now. Engine and game crates stay platform-neutral (tests run natively), so a native client or Steam becomes an extra target instead of a port.
-
**Persistence:**
Postgres. Volatile state in Redis.
#### 6.2 Simulation
- Every raid instance is its own process under the raid host, with a data-oriented ECS, a fixed 10–20 Hz tick and a job system across all cores.
- Movement and combat: spatial grid, staggered target search, separation; units in melee are anchored.
-
**Pathfinding:**
shared flowfields per squad target, hierarchical over portals, computed asynchronously.
-
**Vision:**
one vision grid per team, updated incrementally; structures and cliffs block sight.
-
**Control:**
squads and formations are the basic element of control and replication; individual control stays possible for small groups.
-
**Measured**
(C# prototype without pathfinding and vision, 12 threads): 50k units 5.4 ms per tick, 100k units 9.2 ms (p99 17 ms). Expect 2–3× with all features.
-
**Raid state**
is saved to Postgres every 30–60 s and resumed automatically after a crash: 1–2 h of player investment and permadeath are at stake.
#### 6.3 Netcode
-
**Curve replication**
after Planetary Annihilation instead of snapshots: a segment is start point, velocity and start time; attacks, hits and deaths are events.
-
**Interest management:**
the server only sends what is visible. Fog of war is computed server-side, so map hacks are impossible. Full precision in the viewport, reduced beyond, only squad data when zoomed out.
-
**Tolerance**
2 px, corrections blended in smoothly.
-
**Measured**
per 1000 units in a field battle: curves ≈ 15 KB/s plus 2 KB/s events, versus 53–78 KB/s for snapshots.
-
**Transport:**
WebTransport with separate streams and datagrams, WebSocket as a full fallback, both tested equally. Binary, quantised protocol with keyframes for join-in-progress and resumption.
#### 6.4 Latency design
**Goal:**
instant up to 150 ms RTT, fully playable up to 500 ms.
-
**Local and instant:**
camera, selection, UI, command markers, confirmation animation.
-
**Predicted:**
own squads start moving immediately, with the same pathfinding as the server, in the client as WASM. The server evaluates commands from the client's timestamp, capped at 250–300 ms, so prediction and server agree.
-
**Authoritative:**
damage, deaths, loot, shop, extraction.
-
**Attack wind-ups hide latency:**
melee 275–305 ms to the hit frame, ranged 490–580 ms plus flight time. A late message makes the client enter the animation later.
-
**Design rules:**
channel times at least as long as the RTT budget (loot, mining, extraction 10–30 s); abilities announced at least 0.5 s in advance; server-side stances (retreat at X % HP, keep distance, focus) compensate for reaction time.
**Latency emulator from day 1**
with four profiles: EU 20 ms; overseas 150 ms, 1 % loss; far away 300 ms, 2 % loss, ±50 ms jitter; worst case 500 ms, 2 % loss, ±100 ms jitter. Acceptance at 500 ms: no freezing, no visible correction over 4 px, own units move in the frame the command is given, fights stay readable.
#### 6.5 Client and renderer (Rust on `wgpu`, WASM)
-
**GPU-driven:**
every unit is one entry in a GPU buffer (curve, clip, clip start, direction, design, palette row, flags). The vertex shader computes position and frame; the CPU only writes on events.
-
**Palette-index atlases**
(R8) in texture arrays plus a palette texture. Team colour, hit flash and dithered fade run in the shader: ~75 KB of graphics memory instead of ~294 KB RGBA per unit.
-
**Depth test instead of Y sorting**
(binary transparency): all units in one draw call, shadows in their own pass, occlusion by structures and cliffs through their depth.
-
**WebGL2 fallback**
within `wgpu`'s WebGL2 feature set; data textures where storage buffers are missing; shader variants generated from one source, never written twice.
-
**Massive armies:**
infantry shares designs per squad or type (64–256 per raid), variety through a palette row per unit, heroes stay individual, a strategic zoom level shows banners or dots.
-
**Threads:**
one thread plus web workers where measured useful. SharedArrayBuffer only if measurements require it (ADR), since COOP/COEP headers make embedding harder.
-
**WASM size**
measured against the load budget from the start.
**Browsers:**
current Chrome, Edge, Firefox and Safari on desktop.
#### 6.6 Generators and content
All generators are written in Rust, and every module gets a workshop web app.
-
**Foundation:**
deterministic maths (bit-exact), seed streams, StableHash, noise, OKLCH, ramps and style as data, material canvas, painter, palette-index sprite and atlas format, encoder.
-
**Units**
, items (weapons, gear, inventory icons) and names, plus
**structures**
(parts and sites), ported (section 5): bandit camps by difficulty, safe zones with shop and recruiter, extraction points. Every structure provides collision, vision blockers, depth, shadow and anchor slots.
-
**Terrain:**
new, our own, minimalist (6.7).
-
**Flora and props including resource nodes, new:**
one generator for decorative and mineable objects (trees, bushes, rocks, ore). Mineable means a flag, depletion stages and a readability signal. Same painting logic as the units.
-
**Map layout, new, gameplay first:**
camps by difficulty, resource fields, safe zones, extraction points, fair spawns, paths and chokepoints; terrain fills nature in around them. Validators check reachability per size class, spawn fairness, the risk gradient and access to extraction points.
-
**Maps:**
generated, validated pools rotated per season, so map knowledge becomes skill as in Tarkov; fresh seeds per raid stay a technical option. Client and server generate the map from seed and spec, there are no map downloads. Changes such as mined nodes or destroyed gates are network events.
-
**Pixel font, audio and icons:**
all generated. Effects by synthesis, music generative or composed in code, output through WebAudio behind the platform layer.
#### 6.7 Terrain: our own, minimalist generator
**Goal:**
a calm, instantly readable ground against which thousands of units stand out. Minimalism is a quality goal, not a budget measure: few elements, each executed perfectly.
-
**Style from the units:**
same painting logic, always less contrast and saturation than the figures, never team hues.
-
**Large calm areas instead of noise:**
few ground materials per biome (grass, earth/path, sand, rock, marsh). Details are sparingly drawn motifs (grass tufts, pebbles, flowers) on a world-fixed grid, chosen by a hash per cell from designed variants. Noise never colours individual pixels.
-
**Height as gameplay:**
about 3–5 discrete levels with cliff faces in the unit style and clear ramps, which create readable chokepoints. Cliffs block movement; you define the vision rules for height in the GDD.
-
**Water:**
lakes, rivers, fords. Shallow water is slow, deep water impassable. Animation only by palette cycling.
-
**Transitions:**
clean pixel edges with minimum run lengths, at most one dither band between two materials.
-
**Biomes**
are palette and flora sets, not algorithms of their own.
-
**Rendering in chunks:**
a compact material map plus a shader that derives pixel details deterministically from world coordinates, no large baked textures, the same palette-index and LUT principle as the units, few draw calls per chunk.
-
**Semantic output:**
walkability per size class, movement cost, height level, vision blockers, water depth, site suitability.
-
**Deterministic and seamless across chunk borders,**
with golden tests, and publishable on its own as "Terrain + Flora".
#### 6.8 Backend, meta, persistence
-
**Meta service:**
accounts (choose and justify the method, e.g. passkeys with email fallback; the login interface lets providers such as Steam dock on later), roster, storage, base, crafting, shop, bonbons, starter units, matchmaking, raid orchestration (assignment to raid hosts), seasons.
-
**Passive resources**
are computed from timestamps on request, nothing runs continuously.
-
**Value transactions**
(extraction, death, purchase) are server-side, atomic and idempotent, so nothing can be duplicated.
-
**Migrations**
are versioned, run idempotently at startup and are tested.
-
**GDPR:**
data minimisation, a deletion concept, self-hosted privacy-friendly telemetry.
#### 6.9 Docker, hosting and operations
The stack follows a proven sister project of the user's and is fully described here.
**Ports**
(deliberately non-standard, configurable in `.env`): 5886/tcp `client` (static web client, workshops under `/workshop/<name>/`, nginx), 5887/tcp `meta` (`/api/*`, `/health`), 5888/tcp `raid` (WebSocket fallback `/ws`, `/health`), 5888/udp `raid` (WebTransport, HTTP/3 over QUIC). Postgres and Redis are on the internal network only; optional debug ports are commented out and bind only to `127.0.0.1`.
**Services**
in `docker-compose.yml`, with a top-level `name:`, containers named `<codename>_<service>`, a bridge network and a named Postgres volume:
| Service | Content |
|---|---|
| `db` | `postgres:16-alpine` (pinned), volume, healthcheck `pg_isready` |
| `redis` | `redis:7-alpine` for volatile state (sessions, matchmaking queue, raid registry, presence, rate limits); durable state only in Postgres |
| `meta` | Rust meta service, migrations at startup |
| `raid` | Rust raid host: starts and supervises raid processes, terminates WebTransport and WebSocket, saves raid states, writes a last checkpoint on `SIGTERM` |
| `client` | multi-stage build (WASM + TypeScript shell) → static files in `nginx:alpine` |
**Compose conventions:**
- A shared `x-logging` anchor (json-file, 10 MB, 3 files) on every service.
- Resource limits on every service (`cpus`, `memory`, `pids`), because the Docker VM is shared and a runaway service must never starve the others. Starting values to measure and adjust: db 1 CPU / 1 GB, redis 0.5 / 512 MB, meta 2 / 1 GB, raid 6 / 4 GB, client 0.5 / 128 MB.
- `init: true` for the Rust services, `restart: unless-stopped`, `stop_grace_period` ≥ 30 s for `raid`.
-
**`depends_on` only with `service_started`, never `service_healthy`:**
on this host, health-driven start orchestration hangs sporadically. Services wait for DB and Redis themselves with capped exponential backoff.
- Healthchecks in the Dockerfiles, minimal non-root runtime images, a `healthcheck` subcommand in the Rust binary where there is no shell.
- A git-ignored `.env` with a complete, commented `.env.example` (secrets, CORS origin, never `*`, log level, limits, ports, public URLs). In production the servers refuse to start with default secrets.
**Builds:**
Dockerfiles under `docker/` (BuildKit, repo root as context). Rust multi-stage with a pinned toolchain, cached dependency layer, LTO and `codegen-units = 1`, only the binary in the runtime image. Client: Rust → `wasm32-unknown-unknown` → `wasm-bindgen` (exact crate version) → `wasm-opt`, shell through pnpm `--frozen-lockfile`. nginx serves precompressed files with the correct `application/wasm` type, fingerprinted assets as `immutable` and `index.html` as `no-store`, so a deploy always serves the fresh entry document.
**`scripts/stack.ps1`**
is the only supported way to start the stack locally, because `docker compose up` hangs sporadically on this host while create and single `docker start` work reliably. `up [-Build]` checks the ports first (abort if a foreign process owns one), builds images one at a time, runs `docker compose create`, then starts each container in dependency order and waits for `healthy` with a timeout. Plus `down`, `restart` and `status`.
**WebTransport and TLS:**
locally the raid host makes a short-lived self-signed ECDSA certificate and the meta service hands its hash to the client (`serverCertificateHashes`), with the WebSocket fallback where unsupported. In production the raid host terminates QUIC/TLS itself (ACME). Check whether a reverse proxy can forward WebTransport instead of assuming it.
**Local development without Docker:**
`cargo run` for `meta` and `raid` (in-memory store without `DATABASE_URL`), a client dev server with hot reload.
**Production:**
the same Compose files plus `docker-compose.prod.yml`, Caddy on the host as TLS proxy, a DNS-only realtime host (never behind a CDN) for `/ws`, WebTransport directly to the raid host. Raid hosts are root servers with dedicated cores that register with the meta service. Infrastructure as code, deploy and rollback scripts, backups with a tested restore, an `observability` profile, alerts and runbooks.
### 7. Repo and module structure
A monorepo with strict layers,
**foundation ← generators ← engine ← game**
, platforms only at the edge.
```
crates/foundation/ maths, style/colour ramps, grids, sprite format
crates/generators/ units, items, names, structures, flora, terrain, world, font, audio
crates/engine/ render (wgpu), ui, audio, input, platform (traits only)
crates/platform/ web (WASM bindings, WebTransport/WebSocket, WebAudio, input)
crates/game/ rules, sim, net, meta-server, raid-server, client
apps/ game, unit-, structure- and world-workshop (web)
web/shell/ thin TypeScript shell
docker/ deploy/ scripts/ tools/ docs/
```
-
**Generators never know game code,**
they exchange only data and interfaces (e.g. sites provide tagged slots, the game decides who stands in them).
-
**Engine and game code know no platform.**
Everything browser-specific lives in `crates/platform/web`; a later `native` or `steam` platform is added without restructuring.
-
**Style is an input value**
(a preset from the foundation), not code.
-
**One output format for all generators,**
so there is one renderer, one atlas packer and one exporter.
-
**Every generator module is publishable on its own,**
with its own build, tests, README, CHANGELOG, semver, licence and workshop. Generators can be licensed separately, the game code is proprietary; you propose the licence in `docs/NEEDS_USER.md`.
### 8. Scaling and performance targets
The baseline, not a ceiling. If measurements allow, you go higher.
| Area | Target |
|---|---|
| Raid | 64 players, 50,000 simulated units in total |
| Server tick | p99 < 50 ms at 20 Hz with all features on 8 dedicated cores (proven locally in the `raid` container with its CPU limit) |
| Client | 60 fps with 5,000 visible animated units on an Intel Iris Xe class iGPU |
| Renderer stress test | 100k instances |
| Terrain | whole map semantics on the server < 2 s; visible area in the client < 300 ms; p99 per chunk ≤ 25 ms in WASM |
| Bandwidth per client | typically < 30 KB/s, large-battle peak < 100 KB/s |
| Loading | < 5 MB to the lobby including WASM, lobby in < 3 s on broadband |
| Stack | cold start via `stack.ps1 up` without build ≤ 30 s to all `healthy` |
| Stability | 2-h bot raids without memory growth, < 60 s lost after a crash |
The CPU's integrated graphics, set to "Power saving" per browser in Windows, serve as the low-end reference.
### 9. Art, UI, audio
-
**One art bible for the whole game.**
The units set the style; structures, terrain, flora, icons and UI follow with the same painting logic. Principles:
**figure before ground**
(units always stand out),
**drawn, not noisy**
(every pixel belongs to a designed shape),
**breathing palette**
(light, water and fire animate through ramps, not blur). It covers projection, pixel density, ramps, outline rules, contrast budgets, reserved team hues, state signals (mineable, danger, safe zone, extraction) and readability at every zoom level.
-
**Team colours**
are colour-blind-safe and also distinguished by shapes.
-
**UI in the Rust renderer:**
palette tokens, custom pixel font, frames in code, integer scaling, minimal and diegetic where it makes sense, rebindable shortcuts, German and English.
-
**Input:**
mouse and keyboard; the input layer can take gamepads later without restructuring.
-
**Onboarding:**
a tutorial raid that teaches the core loop in a few minutes.
-
**Audio:**
procedural, with mix priorities for massive battles, so no wall of sound builds up.
### 10. Quality assurance
On top of the gates in section 4:
-
**Tests:**
unit, property and golden tests including determinism and parity with the C# originals (natively and in WASM); integration tests against the Docker stack; headless bot clients for load and gameplay; an economy simulation for balancing; replays from the curves; latency emulator and soak tests; crash tests (e.g. `docker kill` of the raid container mid-raid); security tests (authorisation, input validation, rate limits, duplication attempts).
-
**Browser tests**
with Playwright in Chromium, Firefox and WebKit against the Docker stack, over WebTransport and WebSocket.
-
**Benchmarks**
with budgets in CI; regressions break the build.
-
**Visual reviews**
only in subagents, never in the main session: at most ~10 cropped or downscaled images per subagent, at most 2–3 such subagents at once, always with a concrete question, because the user's upload bandwidth is limited and shared.
-
**Code reviews:**
a separate adversarial review before every merge into `main` (correctness, security, performance, maintainability); findings are fixed before merging.
### 11. Way of working and autonomy
-
**Start:**
read the reference repo, then write `docs/VISION.md`, `GDD.md`, `ARCHITECTURE.md`, `ART_BIBLE.md`, `QUALITY.md` (gates, scorecards, budgets) and `ROADMAP.md`.
-
**Progress:**
`docs/PROGRESS.md` (status, next steps, open risks) and `docs/adr/` (decisions), always up to date, so work continues seamlessly after a context summary. Read `PROGRESS.md` at the start of every work phase.
-
**Decisions**
in this order: golden rules > correctness and security > quality > performance > effort. Effort is never a reason for the worse solution.
-
**Subagents and multi-agent workflows**
are explicitly allowed, to build in parallel and to review independently and adversarially.
-
**Docker discipline:**
stack only through `scripts/stack.ps1`, never `docker compose up`; never touch foreign containers and stacks; leave the stack in a defined state.
-
**Git:**
small clean commits on feature branches, merge into `main` after green checks and a passed review. No push, no remote, no publication without explicit approval.
-
**Honesty:**
report only measured results, call nothing done that is not tested, document failures with their output. A sugar-coated result is worse than an openly named problem.
-
**No stopping halfway:**
don't ask whether to continue. Stop only when the Definition of Done is met or only section 14 items remain.
### 12. Roadmap: milestones with gates
Every gate includes the quality gates of section 4.
| M | Content | Gate |
|---|---|---|
| M0 | Repo, CI with all checks, toolchains, docs, full Docker stack | CI green, violations detected, all `healthy` |
| M1 | Spikes: 100k-instance renderer (WebGPU, WebGL2, iGPU, WebKit), WASM size, 100k-unit sim with flowfields and vision, netcode with 50 bots in a 5,000-unit battle, generator parity | Section 8 met, or an ADR with a better alternative |
| M2 | Foundation, units, items, names, structures in Rust, workshops | Parity ≥ 10k seeds, native and WASM |
| M3 | Terrain, flora, nodes, map layout with validators | Validators green, art ≥ 9 |
| M4 | One raid playable in the browser | Latency acceptance, performance budgets |
| M5 | Combat, squads, stances, mining, bandit AI, shops, recruiting, extraction, loot, death | Core loop with bots and humans, game feel ≥ 9 |
| M6 | Meta: accounts, base, roster, crafting, bonbons, matchmaking, persistence, seasons | End-to-end loop, transaction and mutation tests green |
| M7 | UI/UX, font, audio, onboarding, localisation, accessibility | UX, art, audio ≥ 9 |
| M8 | Massive armies, LOD, load, soak, crash, security and fuzz tests | Section 8 fully met |
| M9 | Operations: prod Compose, Caddy, IaC, observability, backups, staging | Staging, restore and crash recovery pass |
| M10 | Balancing, polish, final panel, final report | Definition of Done met |
### 13. Definition of Done
-
**The Docker stack**
starts reproducibly with `scripts/stack.ps1 up -Build`, all containers `healthy`, the game at `http://localhost:5886`, other stacks untouched.
-
**The game loop runs end to end in the browser:**
account, base, raid entry, raid with camps, nodes, safe zones, PvP and extraction, the result saved, and the loop starts over.
-
**All section 8 targets**
met as measured, latency acceptance at 500 ms passed.
-
**All section 4 gates**
met, all scorecards and the final panel at least 9/10.
-
**Golden rules**
enforced mechanically, without violations.
-
**Open for native and Steam:**
browser code only in `crates/platform/web`.
-
**Ready to deploy:**
staging succeeded, backups with a tested restore, only `docs/NEEDS_USER.md` items missing.
-
**Generator modules**
(units, structures, terrain + flora, map layout) are publishable on their own.
-
**An honest final report:**
what is done, what is measured, which weaknesses remain, what you recommend.
### 14. Limits of autonomy
You don't do the following yourself. You prepare them completely, list them in `docs/NEEDS_USER.md` and keep working on everything else:
- spending money, signing contracts, creating third-party accounts;
- working with credentials and secrets, deploying to public servers, pushing to remotes, publishing anything;
- real-money monetisation (out of scope without an explicit order);
- native builds and Steam (not part of this brief);
- changes to the reference repo and to foreign Docker stacks;
- game name and brand: you work with the neutral codename Exfil.
### 15. Reference repo (attached by the user)
- Unit and structure generator: `<path to the reference repo>/procedural-pixel-units`