// intelligence brief
From the Ghost Architect™ team.
Codebase intelligence, security triage, Adobe Commerce, and AI-assisted development -- written by practitioners who work with these systems every day.
3 min read
Ghost Open™ 12 is free for one person
Every single-user mode, unlimited, on your own Anthropic API key. No license key, no trial clock, no quotas. Teams, projects, white label and every-commit checks move to Ghost Architect™ Local.
6 min read
You don't need to train a model. Teach the tool.
Ghost Architect™ Local 8.0.0, in beta now: your reviewers teach it how to judge each project, with a written reason, a second approval, a version number and a rollback. Every client and every project gets its own rules.
5 min read
We Rescanned Meta's Magento Extension. Old Bugs Still There. Two New Ones.
Five months of silence on the three Critical findings we reported in March -- the repo hasn't had a commit since before we scanned it. A rescan this week found two more, reported today.
4 min read
Four fixes from one unsolicited scan
We scanned playwright-php and sent the maintainers what Ghost Architect Local found. They checked it against their code and opened four pull requests, each with tests.
2 min read
One scan, every machine you own
Machines on your network now share one scan queue. Every model call goes to the machine best placed to answer it, and an update pauses scans and carries them on.
4 min read
Stop looking for the ticket. Ask the code.
The most expensive question in software is still "where are we on that?" Your codebase already knows. Your ticketing system is a rumor about it. Ghost Architect™ Local puts the answer on a page, on your own hardware, and tells you what it did not examine.
A scan says what it did not read
7.4.42 leaves large data files out of the analysis, names the languages it cannot read, and refuses a model call that would not fit the model's window instead of answering from part of it.
figlet moves to its patched release
The library that draws the banner at the top of the interactive menu had a published denial-of-service advisory, and 7.4.41 moves to the release that fixes it.
A wrong word stops nothing
The command that stands a machine's scans down before an update now refuses any word it does not know, instead of stopping every scan.
The user's manual comes with Ghost
The 7.x user's manual now ships inside the download, as a PDF and as Markdown, in docs/manual.
Editing a profile keeps its private patterns
Changing a Ghost Partner™ profile through the menu's Edit existing profile removed the private patterns it held. They now stay.
A real finding keeps its rating, and a paused scan carries on
Two of Ghost Architect™ Local's checks set aside a finding that was real, and a scan paused by the scheduled backup could stay paused after an update. All three are fixed.
Fewer false findings, and seven advisories closed
Three kinds of wrong finding are now caught before they reach a report, and an HTTP library Ghost Architect™ Local uses for certificate renewal moves past seven advisories published on September 30.
Three new advisories, closed
A library Ghost Architect™ Local uses to match file patterns moves past three advisories published on September 29.
A dismissal sticks
A finding you dismissed no longer comes back as new when a later scan words it differently.
The same finding, on the next scan
Findings now keep one identity from scan to scan, and a live route in a folder named Test is no longer treated as test code.
A public key is public
Findings about public keys, timeouts on calls that do not exist, and files that are not in the codebase no longer count against a score.
Findings are judged by the code they read
A finding built from a project's tests instead of its code is listed rather than scored, and the check that confirms a finding now sees the code under test.
Reports that say exactly what the code says
A finding keeps the severity the analysis gave it, a quote written with dots is matched as written, and the check that confirms a finding now sees the lines it is about.
Ghost Architect™ Local scanned itself, and we fixed what it found
The model now yields to the rest of a Windows machine, a busy model no longer reads as a dead one, and findings contradicted by the code they name are set aside with the line that answers them.
Error handling is read the way it was written
A catch that re-throws is not silent, a catch that says why is LOW at most, and a timeout with a default is not missing, in JavaScript, Java, C#, PHP, Python and Ruby.
Monthly licenses that renew themselves
Ghost Architect™ Local is now priced by the month, a renewed license installs itself, and ghost --activate does what the license email says.
Findings are read more carefully against the code
A missing check that is already there is set aside, a finding that says it is not a bug is INFO, and a loose quote of a real line is kept for review, not removed.
A file a finding never discusses does not decide its rating
Findings about example or test code stay at MEDIUM even when they also cite a file they never discuss, and the usage report now counts updates and names versions.
A folder named 3rdparty is someone else's code
Folders named 3rdparty, 3rd_party or 3rd-party are now treated as copied-in code, like third_party, and their findings stay out of the score.
A CRITICAL names something an attacker can use
A finding stays CRITICAL only when it names an exposed secret, injection, an access-control bypass or exposed personal data. Anything else is HIGH at most.
A fix never makes a security control fail open
A fix step that would return or log the original value when a sanitiser or security check fails is now marked in the report as one not to follow.
A lost merge is caught, and a scan that confirmed nothing has no score
A merge step that lost every finding is set aside so the passes' findings reach the report, and a scan whose findings were all removed no longer shows a score.
Busy machines read as busy, Bats tests are read, and three more wrong claims are checked
The Scan Queue says when a machine is busy with a call. Bash test suites are read, and wrong claims about error handling, unused code and caches are set aside.
Unused and silent-error claims are checked against the code in more languages
A finding that calls a qualified name like IncludeMode::Off unused, or a Rust unwrap silent, is now answered by the code it points at.
Paused scans are not counted as cancelled, duplicate findings are merged, and copied-in code is left out
Scans paused for an update no longer count as cancelled, one finding written two ways is listed once, and code copied in from another project is left out and named.
Findings keep the severity they were given, and each machine is judged by its own speed
A severity written as Low, Medium or INFO is now read as written, and a hub that shares work with another machine no longer reports itself slow because of that machine's speed.
A finding that says nothing is wrong no longer counts, and C, C++ and C# findings are checked against the code
A finding whose own text says there is no risk and nothing to do is now listed as INFO, and a C, C++ or C# finding about an allocation the named function never makes is no longer verified.
Secrets are judged where they are, and connection-string passwords are masked
A finding about a hardcoded secret is now rated by the files that actually hold the value it quotes, and a password inside a database connection string is masked before any model reads the file.
Every scan says what it is made of, from the first pass to the finished report
The Scan Queue shows each scan's main languages under its project name, and now keeps showing them while the scan writes its report.
Ghost reads Dart, and a secret is found without Ghost's own marks being called secrets
Dart source files and Magento templates are now read, anchored and checked like any other language. Code a build tool wrote is still skipped.
Ghost reads Rust, and a scan that confirmed nothing has no score
Rust source files are now read, anchored and checked like any other language. Before this release a Rust project was scanned without its Rust.
Cleaner reports, a fleet that hands work on sooner, and Unlimited for Enterprise
Finding headings now carry the finding's own title, never the template's words or labels like (Batch 2), and a finding the findings file lists once is printed once.
A long code name is no longer mistaken for an AWS secret
Ghost hides anything shaped like an AWS secret key before the model reads your code. Some code names have exactly that shape, and Ghost was hiding them too, so the model reported a hardcoded AWS secret that was not there.
Severity you can trust, and a backup that pauses the scans
Ghost was hiding values like "dummy" and "YOUR_API_KEY" as if they were secrets, then reading the hidden value as proof of a real secret. Those findings came out CRITICAL. Ghost now leaves a placeholder as it is written and still hides anything that could be real.
A report entry that runs on is stopped in seconds, not minutes
When Ghost writes the report, the model writes one entry per finding. On a scan this week it wrote one entry as a single line of more than 52,000 characters of repeated words and kept going for over 11 minutes. Ghost already throws away an entry like that, so the time was wasted.
An update no longer throws away the work the model is doing
Before an update, Ghost stops the scans on the machine and starts them again afterwards. It now waits for the scan the model is actually working on, whether that is a pass or a merge step, until its answer is saved, and stops the scans that are only waiting in line straight away.
A merge or report line that never ends is cleaned up
The model writing a merge step or the final report sometimes starts a line and never finishes it, drifting into an endless run of loosely related words. Ghost now keeps such a line only up to its last complete sentence and keeps everything else in the answer.
Reports name the machines that did the work, and a step that repeats itself is stopped
When a hub shares a scan's model calls with peer hubs, the report now names every machine that answered and how many calls each took, and the Reports page shows the same under each report that was load balanced.
Scans keep their work through an update, and a quiet peer is reported
A long scan reads your code in passes and then merges what the passes found, step by step. Finished passes were already saved as they went; the merge steps now are too, so a scan that is stopped and started again reuses the merges it had finished.
A hub can cap the size of the work it sends each peer
When a hub is busy, it hands model calls to its peer hubs, and until now the only size check was whether a peer's model could hold the call. A machine can hold a large call and still be the wrong place for it.
A report written from all of its findings
When a scan handed its final report off to be written in the background, which is the usual way a hub finishes a scan, the step that fits the findings into the model's context window was never told how large that window is.
A merge that repeated itself, and a hub that trusted a fast re-read
On a large codebase, Ghost Architect™ Local merges the findings from its passes in steps so each step fits the model's context window. When two merged groups were each too big to go into one prompt together, every step after that sent each group back on its own, got the same group back, and tried again.
A perfect score for a scan that looked at nothing
A scan whose target resolved to zero files, a path that pointed at nothing or a profile that excluded everything, came back as "100/100, Production ready". Nothing had been looked at.
The Scan Queue named the wrong machine
The Scan Queue's "Running on" column is supposed to name the machine whose model is working on a scan right now, and to name a peer hub while a call is out on it. For a POI scan's write-up stage it never did.
The trial notice a paying customer could not get rid of
Every portal page carries an evaluation notice, and it decided whether to draw itself by asking whether a trial had ever been started on the install rather than whether the machine is an evaluation now.
A promise we emailed, and the path their CI runs on
The trial email promises Recon-only mode when an evaluation lapses, and the product refused every mode including that one; three separate doors carried the same blanket refusal, and a lapsed evaluator read the truth...
A scope that examined nothing, and a note that did arithmetic on the wrong set
A scope named by its full path matched nothing and scanned nothing, which produces a clean report that reads exactly like good news; scope entries resolve against the codebase root and against the pinned copy being...
An accent in your company name, and a green light over a switch that was off
An installer answers file carrying an accented company name had never been recorded correctly.
Names, clocks, and a test that expired while we watched it
A log archive was being deleted up to five hours early, every evening.
The crash on Q, and the day a log file is named for
Pressing Q to leave the Scan Queue no longer kills a Windows console window, and a rotated log file is named for the day it holds, on your clock.
The machine you are sitting at gets to keep working
The smallest model on the installer menu was the one that thinks before it answers.
Everyone signs in, and every line says who did it and where
Typing ghost asks who you are.
An upgrade cannot break the install it is replacing
A Windows upgrade stops its own services and moves the old copy aside.
What the second machine taught the fleet
One at a time means one at a time.
The fleet counts what it is actually doing
A call stays on a free machine.
The deadline that belonged to the wrong machine
A peer says how much it can hold, and the sender listens.
The feature that was registered everywhere and worked nowhere
Multi-hub load balancing had never sent a single call anywhere, and when it did send one it was handing off work rather than balancing it.
What a screen would not tell you
A Windows hub was never reachable by anything it exists to serve.
Windows
An upgrade no longer deletes your data folder, and the admin device token goes with it.
The Linux installer
The opt-out that turns off Node installation appears in the installer's own help at last.
Conflict detection
File pairs too large to fit in one context together are examined as the regions that relate them.
The Linux installer
The installer installs Node.js when the machine has none it can use, ending three cases the same way instead of in three different dead ends.
The Linux installer
The installer proves the service account can run what the systemd units name, and refuses before it writes a unit if it cannot.
The portal
The Project Dashboard has a search box and paging, all of it plain links and a form, so the page still works with JavaScript turned off.
The product reads the model's own answer
A file citation written with a qualifier beside it is kept, path and all.
Trust the portal's certificate, and reports that say what they could not do
The portal tells you how to trust its certificate: a guide, a warning before the first browser opens, and Admin Console prints the fingerprint and the trust commands for your platform.
Zero egress refuses, and a spoke records who ran the scan
Zero-egress mode now refuses a model endpoint that would send source code off the machine, at all three moments it can be reached.
The first tarball: a Linux hub install with a service account and two services
The first build delivered through the private delivery repository, as a tarball with a published SHA-256 to check before unpacking.
Version 7: the Local line gets its own number
Ghost Architect™ Local takes the 7.0 line, and the version the product displays derives from one place, so a release cannot show two numbers.
The first Local build: your model, your hardware, Ed25519 licences
The full architecture build.
6 min read
Ghost Triple Crown™ -- Three Passes. One Complete Picture.
In Ghost Architect™ Local, every commit can get three passes: on a pre-push hook, from your own git server, or from your own CI. Blast Radius™ maps what breaks. Conflict Detection™ finds where the codebase disagrees with itself. Ghost Brief™ writes the prompt that fixes it.
8 min read
The Ghost Triple Crown™ Process -- How One Founder Shipped Three Releases in a Weekend
A three-party review system where nothing ships until a Reviewer, an Executor, and a Founder all agree. Three votes. 47 commits. Three npm releases. Zero engineers.
5 min read
Stream or Batch. Your Scan, Your Budget.
Ghost Architect now shows you the cost before every scan. Stream for real-time results or submit as a batch and save 50% on API charges. Same analysis, same report, you decide.
6 min read
We Built a Report That Explains Your Codebase to Anyone Who Is Not a Developer
Ghost Architect™ 8.2.1 ships Executive Brief. One page. Health score out of 100. Plain-language risk summary written by AI in consultant voice. A cost comparison table that shows what remediation costs manually versus with Ghost Brief™. 24 hours and $4,800 becomes 3 hours and $3.60. Free in Ghost Open™ 12.
5 min read
We Pointed Our Own Tool at Our Own Code. Here Is What Happened.
We ran Ghost Architect™ against its own 42,729-line production codebase using Ghost Brief™. Seven passes. 53 fixes. Zero regressions. Less than 24 hours. $3.75 in total scan cost. Estimated manual remediation value: $25,000 to $45,000. We never fixed a false positive. We never chased a hallucination.
6 min read
Ghost Brief™ Ships Today. The AI Coding Market Just Confirmed Why It Matters.
SpaceX acquired Cursor today for $60 billion. Ghost Architect™ ships Ghost Brief™ today. The governed AI remediation pipeline converts every scan finding into a validated, blast-radius-aware prompt pack your AI coding agent executes immediately. Ghost finds it. Ghost tells the AI exactly what to do. The AI does it.
8 min read
Ghost Architect v5.4.0 -- Inheritance Audit Mode Ships
Four analyzers, one deal-grade PDF, in roughly 60 seconds for roughly $0.02 in API charges. Stack reality, key-person risk, hidden dependencies, and a confidence-rated 90-day modernization roadmap. Built for agency founders pricing the SOW, PE diligence pre-LOI, and fractional CTOs walking into engagements cold. Here's what Inheritance Audit Mode does, why we built it, and how it changes the first 30 days of every inherited codebase engagement.
6 min read
Ghost Architect Open v5.3.0 -- Prompt Triage Got Quieter
Same engine, same corpus, half the findings. The HIGH that was buried in MEDIUM noise is now visible. Cost stayed flat at $0.43. Dedup expansion, severity recalibration, cap removal -- three fixes, one cleaner report. Here's the quality work behind the numbers.
9 min read
Ghost Architect Open v5.2.0 -- Prompt Triage Ships Free
Your prompts are production code. Most teams have zero review process for them. v5.2.0 puts 16 detectors backed by published academic research into Ghost Open -- free, with cost pre-flight on every paid scan. 7 prompts. 116 findings. $0.41. Here's why prompt review is the next quality discipline and why we made it free.
11 min read
Magento 2.4.9 Ships May 12 -- Your Custom Modules Don't Speak PHP 8.4 Yet
The largest architectural shift in the 2.4.x line since 2.4.4. PHP 8.2 dropped, 8.4+ required. Laminas MVC removed entirely. Valkey replacing Redis as the default cache. Plus 500+ core fixes that expose latent assumptions in your custom code. Here's what every agency and merchant needs to audit before upgrade day -- and the five-step pre-upgrade sequence to walk into the conversation with data instead of guesswork.
7 min read
Ghost Architect Open v5.0.0 -- Why We Made the Full Scan Engine Free
v5.0.0 reframes Ghost Open as the full scan engine. Every finding, every severity, full PDF/MD/TXT for every scan. All five scan modes -- Chat, POI, Blast Radius, Conflict Detection, Recon -- included. Here's what changed and why.
9 min read
Introducing Ghost Architect Partner™ -- Profile-Driven Codebase Audits for Consultants
Ghost Partner™ is the consultant edition of Ghost Architect™. A YAML profile loads your firm's methodology, billing rates, and branding into every scan -- so the report comes out reading like work you actually did. Now in Ghost Architect™ Local.
8 min read
Magento 2.4.4 Hits End of Life -- Here's What That Actually Means for Your Codebase
Today, Adobe stops patching Magento 2.4.4. No more security fixes. No more support. If you're running it -- or managing clients who are -- here's what the real risks look like and what steps to take starting today.
9 min read
What Does a Codebase Triage Actually Look Like? A Real Walkthrough
From the terminal command to the three output files -- a step-by-step walkthrough of exactly what Ghost Architect produces, what a Critical finding looks like in practice, and how an agency uses it the same day as the client kickoff.
10 min read
We Ran Ghost Architect on a Real Meta Magento Extension -- 18 Findings in 10 Minutes
658 files. $0.23 in API costs. Three Critical findings including a credential exposure, a race condition inflating ad spend by 10–20%, and a mass assignment vulnerability with no CSRF protection. Here's the full breakdown.
6 min read
The $0.23 Audit: How Much Does AI Codebase Analysis Actually Cost?
We scanned 658 files, surfaced 18 findings, and the total API cost was $0.23. Here's exactly where that money goes, how one person runs 10 to 20 scans a month for $2 to $5 in API costs, and why the economics change everything about how often teams should be doing this.
7 min read
Why Claude Code Is Not Your Starting Point
AI coding agents are powerful. But pointing an autonomous agent at a codebase you don't understand is how you create expensive, hard-to-reverse problems. The right sequence is triage first, agent second -- and here's exactly why that order matters.