NEW / APP CREATION
Learn to build your app
Step-by-step guides for Expo, React Native, SwiftUI, Kotlin and Flutter.
Open the learning pathsUSER GUIDE · OCTOBER 2026
Choose your tool.
Follow the evidence.
Practical instructions for all nine tools. App Breaker is a desktop private beta; App Guide is an early planning workspace. The seven analysis tools work with files you import. They do not continuously monitor your systems.
New here? Start with guided input
Each analysis tool opens in Guide me through it mode. Fill in the questions or choose the requested files, then select Analyse evidence. The result explains what was found, what to do next and what the check cannot establish.
Choose Advanced JSON / import to use existing evidence files, examples, multiple data rules or detailed inputs. Switching modes keeps the form’s current answers until you change tools or reload. Analysis results clear when inputs change so you do not mistake an old report for a new check.
For Data Integrity Sentinel, upload a CSV with column names and choose a simple rule. For Dependency Guardian, upload an npm package-lock.json; online advisory lookup requires the checkbox authorising package names and versions to be sent to OSV. ConfigGuard needs two fingerprint snapshots created with the local collector.
Building with AI
In App Guide, answer “Are you using AI to help you build?” and describe your project. Each lesson provides prompts for planning, implementing and reviewing the step. Copy or download the prompt into your chosen AI assistant. DevWorkroom does not send the brief to an AI service or run the suggested changes. Verify the lesson’s result before checking it off.
START HERE
Your first analysis in two minutes
- Open ChangeTrace, or choose another analysis tool.
- Select Load an example, then Analyse evidence. Examples are fictional and remain labelled as examples.
- Read the observations and Coverage and limits. Expand the extra details where available.
- Select Download input template when you are ready to prepare your own evidence. JSON is a structured text format: keep the field names, quotation marks and brackets.
- Replace all example records with your own authorised evidence. Remove the top-level
"example": truefield only after replacing the example data. Save the file and use Choose an evidence file to import it. Editing an example directly on the page keeps its example label. - Select Analyse evidence again. Review the result, then Export report for a local JSON copy.
Inputs must be JSON files smaller than 2 MB. Reports and input templates are different files: a report is the output, not a reusable input template. Changing tools clears the current input and result, so export anything you need first.
Warning: an observed problem or missing requirement needs attention. Review: investigate or confirm the evidence. Unknown: evidence is missing or insufficient. Info: context for your investigation. Zero observations does not prove that a system is healthy.
01 · DESKTOP PRIVATE BETA
App Breaker
Use it to exercise software you are authorised to test and collect a report of actions, findings and screenshots.
See desktop availability →Before you begin
You need an App Breaker desktop build and a disposable test environment. Public downloads are not open yet. The Mac candidate supports Apple Silicon; the Windows candidate is unsigned. Website testing includes Chromium. iOS Simulator needs a Mac and Xcode; Android needs Android tools and a connected target. Broader Android and native desktop acceptance is still in progress.
- On Mac, unzip the supplied package, move App Breaker into Applications and open it. Allow the permissions required by the selected target. Follow the supplied beta instructions for Windows.
- In Configure Break Run, give the project a name. First choose Mock pipeline under Runner mode to check report generation without operating a real target.
- For a real test, choose the appropriate runner and target. For a website, enter its URL, select Generate backend challenge, serve the displayed exact marker at the displayed route, then select Verify live backend control. You need access to that website’s deployment. Verification is tied to its origin and expires.
- Choose the test area, modules and a short initial duration. Use test accounts and disposable data: actions can change data inside the target.
- Confirm your authorisation and select Start authorised test. Watch Live Session; use Stop safely when needed.
- After the run ends, select Open Break Report. Review the screenshots and action history behind each finding; use JSON if you need the structured report.
What to do with the result
Reproduce important findings in the same test environment before deciding on a fix. A mock run validates the reporting pipeline; it does not test your application. A completed real run describes only the actions it observed and does not certify security or release readiness. App Breaker does not repair your code.
Reports stay on your computer, under Application Support/App Breaker on Mac or Local AppData/App Breaker on Windows. Review screenshots and target data before sharing. Local evaluation is available without an account during this beta; paid subscriptions and the proposed trial are not active.
02 · PLANNING WORKSPACE
App Guide
Use it to turn an idea into a written plan with requirements, decisions and milestones.
Open App Guide →- Select New project. Enter a project name, what you are building, who it is for and what success means.
- Add requirements that can be checked. For example: “A signed-out visitor cannot open a private project.” Select Add requirement after writing each one.
- Record each decision and its reason, then select Add decision.
- Add concrete milestones. Mark work complete only after checking the result, and review the launch checklist against your own product’s needs.
- Sign in with your App Breaker account and select Save project. Confirm the saved status before closing. Saving is explicit, not automatic.
- Use Export JSON for a structured copy or Export brief for a readable Markdown document. Drafts can be exported without signing in.
Saved projects appear in Your projects. Use Reload projects to refresh the list. If another session changed a project, export your local draft before reloading, then reconcile the changes and save again.
This workspace records your plan; it does not build the application or send the project to App Breaker automatically. The starter checklist is not a launch guarantee.
03 · INCIDENT INVESTIGATION
ChangeTrace
Use it when something failed and you want to compare changes around the first symptom.
Open ChangeTrace →- Record the first symptom’s timestamp, service and environment in
incident. Use timestamps with a timezone, such as2026-09-22T10:00:00Z. - Add
eventswith uniqueid,at,service,environment,kindandsummary. List explicitly related services independencies. The default look-back window is 24 hours; optionalwindowHourssupports up to 168 hours. - Import the file and analyse it. Expand candidates and timeline.
- Read both supporting and opposing evidence. Verify promising candidates against actual deployment and incident records.
Collect a GitHub timeline
Download the GitHub collector. It requires Python 3.10 or later and the GitHub CLI signed in to an account that can read your repository. Run this in the folder containing the downloaded script, replacing the repository, time and service:
python3 github_timeline.py --repo OWNER/REPO --incident-at 2026-09-22T10:00:00Z --service YOUR_SERVICE --environment repository --output changes.jsonImport changes.json. Collection covers at most the latest 100 commits and 100 workflow runs. Commits are tagged repository; workflow runs are tagged ci. Add verified deployment/configuration events with their real environment for a production incident.
A nearby commit is not proof of a production deployment or a cause. Candidate relevance is a screening order, not a probability. Later, unrelated and different-environment events do not qualify as relevant preceding changes.
04 · PACKAGE REVIEW
Dependency Guardian
Use it to match exact npm package versions with collected vulnerability advisories.
Open Dependency Guardian →- Download the npm collector. You need Node 20 or later and a version 2 or 3
package-lock.json. - Place the script beside your lockfile, or provide the lockfile’s full path. Run the command below to collect versions and query OSV.
- Import
inventory.json, select Analyse evidence and review each package’s result and lookup time. - Follow the advisory links to assess applicability. Check an upgrade in your own test environment before changing production.
node npm_inventory.mjs package-lock.json inventory.json --query-osv--query-osv sends package names and exact versions to OSV, not source code. Omit it to collect inventory without network lookups; those checks will remain unknown.
Missing, incomplete or unresolved package checks mean unknown. A complete lookup with no known advisories is not a security guarantee. This release does not monitor upstream service/API breaking changes.
05 · CONFIGURATION DRIFT
ConfigGuard
Use it to find added, removed or changed configuration entries without importing their values.
Open ConfigGuard →- Download the configuration collector. It requires Python 3.10 or later. Prepare local JSON objects mapping configuration names to their values.
- Create a baseline fingerprint file and private key using the first command below.
- Collect the current configuration using the same key and environment with the second command.
- Combine the complete contents of the two generated snapshot files into an object with
baselineandcurrentfields, as shown below. - Import that combined file and analyse it. Review each changed entry against the intended configuration.
python3 config_snapshot.py --input baseline-config.json --key private-fingerprint.key --create-key --environment staging --output baseline.json
python3 config_snapshot.py --input current-config.json --key private-fingerprint.key --environment staging --output current.jsonCombined file structure (replace the explanatory placeholders with the snapshot objects):
{
"baseline": { ...contents of baseline.json... },
"current": { ...contents of current.json... }
}The placeholders above are not valid JSON. Paste each full snapshot object, including its environment, key ID and entries.
Keep raw configuration files and the private key on your computer. Never upload or commit them. Only generated names and keyed fingerprints belong in the import. On Windows, restrict key-file access to your account. Different keys or environments cannot be compared. Matching fingerprints do not prove the configuration is correct.
06 · DATA RULES
Data Integrity Sentinel
Use it to check a reviewed data export against rules you define.
Open Data Integrity Sentinel →- Download the input template. Replace
tableswith your exported table names and arrays of rows. Remove fields you do not need. - Set
rulesfor the constraints you want checked. Each rule needstype,tableandfield. - Import and analyse. Match reported row numbers to the exact imported snapshot, starting at row 1.
- Investigate violations in your source system. Any repair is a separate, deliberate action.
- required
- Flags missing, null and empty-string values.
- unique
- Flags repeated nonempty values after their first occurrence.
- reference
- Checks values against
targetTableandtargetField. Number1and string"1"are different. - range
- Checks numeric values against
min,max, or both.
Example rule: {"type":"range","table":"orders","field":"total","min":0}.
Add a separate required rule if empty values must fail other checks. Limit each import to 10,000 total rows and 100 rules. Evidence lists at most 100 row numbers per rule. The tool checks the supplied snapshot only; it does not connect to or modify your database.
07 · RELEASE HEALTH
Release Guardian
Use it to compare failure counts before and after a release.
Open Release Guardian →- Download the input template. Enter a
releaseidentifier and two windows:baselineandcurrent. - Use the same environment and comparable traffic. Each window needs timezone-aware
startandend; baseline must finish before or when current begins. - For each metric, supply matching
name, total observations intotaland failed observations infailures. Use whole numbers; failures cannot exceed total. - Analyse and review the before/after rates and the change in percentage points.
For example, 5 failures from 1,000 observations versus 100 from 1,000 changes the observed failure rate from 0.5% to 10%. This is an illustrative example, not a measured incident.
The screen reports unknown when either sample has fewer than 100 observations or a matching metric is absent. A warning requires an increase of at least one percentage point by default and non-overlapping approximate 95% intervals. Optional minimumIncreasePoints changes the increase threshold.
Traffic changes, repeated observations and other deployments can affect the comparison. A warning does not prove the release caused the change; no warning does not rule out a regression. This tool does not monitor live telemetry or roll back releases.
Collect observed release counts
The local runner can aggregate authorised JSONL request observations. Each record identifies its release, environment, metric, timestamp, unique observation ID and whether it failed. Choose separate baseline/current releases and fixed time windows in the runner’s documented configuration. Only aggregate counts are exported; repeated IDs are deduplicated and conflicting duplicates stop collection.
Follow the Release Guardian: refresh local request telemetry section in runtime/README.txt. Start with --once and review the results before using --watch. Missing windows remain unknown. The collector cannot establish complete delivery or prove that a release caused a change.
08 · REPRODUCTION PACKAGE
Bug Capsule
Use it to give another developer a clear, reviewed description of a reproducible problem.
Open Bug Capsule →- Download the input template. Add a short
titleand the environment:platform,os,appVersion,browserand/orbuild. - Write ordered
steps, starting from a known state. Explainexpectedandactualbehaviour. Add relevant text lines in optionallogs. - Analyse and expand Review the filtered capsule.
- Read every field for private information. Edit the original input and analyse again if anything should be removed.
- Export the report. Its
capsulefield contains the filtered reproduction package. Share only after your review.
Filtering removes recognised credential patterns, email addresses and URL queries/fragments. It omits extra environment fields and separate headers/request-body fields. It cannot reliably remove every secret, name, path or identifier, including sensitive data pasted into logs. This release creates a diagnostic package; it does not replay the bug or attach recordings.
Reopen an exported capsule
- Select Bug Capsule and choose your previously exported
capsule-report.json. A standalonebug-capsuleversion 1 object is also supported. - Select Analyse evidence. The tool validates the version and numbered steps, then filters the content again. Unknown formats and broken step sequences are rejected.
- Expand Review the filtered capsule and check the steps, environment and logs. Export a fresh report only after reviewing it. Importing never runs the steps or visits the target application.
09 · MOBILE SUBMISSION REVIEW
StoreShield
Use it for a limited review of supplied iOS or Android submission metadata.
Open StoreShield →- Download the input template. Set
platformtoiosorandroid. Supplyidentifier,versionandbuildas strings from the actual package. - Add
privacyPolicyUrl. SetcreatesAccountsandaccountDeletionto true or false based on actual app behaviour. - For iOS, supply
permissionswith each permission’snameand user-facingpurpose. For Android, use the resulting reminders to review Data Safety and target API requirements manually. - Analyse, follow the report’s official platform links and check the actual build and submission forms. Resolve warnings and record manual review decisions separately.
Read an iOS app’s metadata
Download the iOS metadata collector. With Python 3.10 or later, run:
python3 ios_metadata.py /path/to/Your.app metadata.jsonUse an extracted iOS .app bundle, not a macOS app or an IPA archive. The collector reads Info.plist without executing the app. Add the privacy-policy URL and account behaviour manually before importing the file.
This is a small preflight rule set, not store approval or a complete policy audit. It does not establish SDK privacy compliance, check every binary or confirm a policy URL is accessible. Use the report’s source links to verify current requirements before submission.
LOCAL OPERATION
Repeat checks and keep a history
Download the local runner and unzip it. You need Node.js 20 or later. Keep the runtime and collectors folders together, open a terminal in runtime, and follow its README to create a configuration file specifying your tool, evidence input, output folder and check interval.
node monitor.mjs configuration.json --once
node monitor.mjs configuration.json --watchUse the first command for a single pass; use the second to repeat until Ctrl+C. Inputs must be outside the output folder. Each check creates latest.json and retains changed results according to your chosen retention. Errors replace previous success, and a file-age limit can flag evidence that has not been refreshed.
This runner can refresh GitHub timelines, explicitly selected SQLite data, npm inventories, configuration fingerprints and local release observations before analysis. GitHub needs Python 3 and an authorised gh login; SQLite needs Python 3. OSV queries require explicit permission to send package names and versions and an interval of at least one hour. Other evidence must be refreshed separately. The runner does not run in the cloud or continue while your computer is asleep. There are no email or chat notifications. File modification time cannot establish whether the evidence itself is current. Read the limits before relying on a report.
Automatic configuration comparisons
ConfigGuard can now refresh a local configuration comparison on every check. First create a fingerprint baseline using the ConfigGuard collector above. In the runner configuration, set product to config, choose a separate input evidence file and add:
"collector": {
"type": "config",
"configuration": "./configuration.json",
"keyFile": "./fingerprint.key",
"baseline": "./baseline.json",
"environment": "staging"
}Paths are relative to your runner configuration. Use the same key and environment as the baseline. Each cycle reads the current configuration, writes only names and fingerprints to evidence, and reports changes. It never uploads or modifies the configuration, key or baseline. A failed refresh records an error and preserves old evidence. Keep all source files outside the report folder. To accept an intentional change, explicitly create and review a new baseline, update the runner configuration and restart. Entry names appear in reports; never put secrets in names.
Read-only SQLite data collection
Download the SQLite collector. Prepare a selection file containing table names, explicit column lists and Data Integrity Sentinel rules. See collector instructions and example.
python3 sqlite_snapshot.py app.sqlite selection.json data.jsonThe collector opens the database read-only and uses a consistent transaction. It accepts ordinary tables only, rejects arbitrary SQL, and fails instead of truncating beyond 10,000 rows or 2 MB. Review selected values for private data before importing. Other database engines are not connected by this collector.
KEEP YOUR WORK
Saving, accounts and privacy
For the seven analysis tools, analysis runs locally in your browser. No account is needed to analyse or export. Input is not automatically uploaded or saved, and unsaved work can be lost on navigation or reload.
- Review the displayed report, including its expanded details.
- In Your report library, sign in with your App Breaker account and enter a report title.
- Tick I have reviewed this report and want to save it to my account, then select Save report.
- Use Load saved reports to list your reports, Open to read one or Delete to remove it. Export a copy first if you need to keep it.
Saving uploads the report and title, not the raw input file. A report may still contain summaries, names, URLs, timestamps or filtered logs derived from that input. Saved reports are snapshots; analyse and save again to create an updated report.
App Guide saves its project content online when you select Save project. App Breaker desktop reports remain local. Website sign-in sessions clear on reload; sign in again to access your saved work. Account creation is on the account page; email confirmation and recovery are still being prepared for public launch.
WHEN SOMETHING DOESN’T WORK
Troubleshooting
“Cannot read input” or invalid JSON
Start from the tool’s input template. Use double quotes around field names and text, remove trailing commas and explanatory placeholders, and import the input file rather than an exported report.
File too large or analysis timed out
Keep input below 2 MB and reduce the investigation window or exported sample. Analysis stops after about 10 seconds. Record any sampling limits when interpreting the smaller result.
My real data still says “Example”
Replace every example record in the downloaded template, remove its top-level example flag, save the file and import it through Choose an evidence file. Editing a loaded example on the page intentionally preserves the label.
A collector will not run or its output already exists
Check the required Python/Node version and the file paths. On Windows, use py -3 in place of python3 if that is your Python launcher. Collectors avoid overwriting existing output: choose a new filename. GitHub collection also requires an authenticated GitHub CLI account with repository access. Read the collector instructions.
Saving fails or a project changed in another session
Export your work first. Check your connection, sign in again and retry. For App Guide conflicts, preserve your draft before reloading the latest saved project. The website session does not survive a reload.
There are no findings
Check whether the evidence is complete and the rules cover your question. Read Coverage and limits. No findings means the tool did not report a problem from these inputs; it does not certify the application.