Ruthless.

Novice · Understand your app · 6 min read

Save, test and change your app safely

Make one understandable change, preserve a recoverable starting point and check the real behaviour before calling the work finished.

← All guidesNovice guidesBy Ruthless AI team

Beginner course · Lesson 6 of 6

Keep this guide beside your Ruthless chat. Copy one prompt, add the example it asks for and paste it into “Message Ruthless”. Nothing is sent until you choose to send it.

Open Ruthless in another tab ↗See all six lessons

The short answer

Before a change, identify the version you can return to and the behaviour you will check. Make one bounded change in a development or test version, compare the actual result with your starting point and understand how to restore both code and data if necessary.

What you will learn

This final lesson joins your map, click trail, data explanation and error report into a change you can judge. In our notes app, suppose Save gives an unclear confirmation. We want a clear “Note saved” message after a confirmed successful save, while preserving the existing save and privacy behaviour.

Development is where you work on the app. Production is the version real users use. Publishing or deploying moves a version into a running environment; it is not the same as editing a file. Establish which environment is open before testing. If you only have a production version, first learn what your building tool offers for previews and recoverable versions rather than experimenting on real notes.

Know what you can restore

Find your building tool’s version history, checkpoints or repository history. Version history records earlier code states; a checkpoint is useful only if you know what it includes and how to restore it. Ask the tool to explain the current version’s restore procedure without applying it. Keep the restore instructions accessible.

Code recovery and data recovery are different. Returning to old code does not automatically restore a deleted note or undo a changed database structure. A backup is a recoverable copy or recovery mechanism for the relevant data. For this lesson, choose a change that does not alter storage structure or delete data. If a proposed fix requires either, stop the exercise and get a specific recovery plan for that wider change.

Create a small change brief in GetRuthless

Bring your checked map, the relevant code, the proposed outcome and the recovery information. In GetRuthless chat, ask for a bounded plan before sending instructions to your building tool. GetRuthless cannot apply an edit to your local project merely because you discuss it in hosted chat. Review its plan, then use your builder’s normal editing workflow if the plan fits.

Define the checks before editing. For our confirmation change: save an invented note, see the message only after success, reload and read the note. Also try the existing failure case, if safely reproducible, and confirm it does not claim success. Check sign-out and return as a nearby journey. The message must tell the truth.

Try this prompt
Help me plan one small app change. Explain first; do not assume you can edit my project. Desired outcome: [specific behaviour]. Current behaviour and relevant code: [redacted evidence]. Environment: [test setup]. Recoverable code version and restore method: [reviewed details]. Data backup/recovery information: [details or unknown]. Propose the smallest change, name what must keep working, and give before/after user steps with expected results. Flag any storage, permission or deployment change as extra scope. Explain how I would recognise failure and return to the starting point.

Example: check the effect, not just the edit

Example output: “Show the confirmation after the existing save function returns success. Preserve its error path. Before editing, record what happens for one successful save and one failed save. Afterwards, repeat both and reload the saved note. If success appears on failure, restore the earlier code version and investigate the response handling.” Your actual plan must refer to your supplied function names.

After the builder makes the change, inspect its summary and the changed files. Ask GetRuthless to explain any unexpected edits before accepting a wider change. Then perform the planned checks in your test version and record actual outcomes. A successful build does not prove the user journey works. If a check fails, preserve the evidence and use your recovery method rather than piling on unrelated fixes.

Finish with a reusable handoff

Small task: write a five-sentence handoff covering the app’s purpose, checked structure, change, observed checks and remaining unknowns. Quiz: does restoring yesterday’s code restore yesterday’s data? Not necessarily. They may have separate histories and recovery methods.

The course is complete when you can explain one real journey and judge one small change against observed behaviour. Keep your handoff for the next GetRuthless conversation. For a larger task, use the better-brief guide; for a reproduced failure, use the bug-report guide. Publishing to real users is a separate step that should follow your project’s release and recovery process.

Common questions

Do I need to learn a command line first?

No. This exercise can use your builder’s file explorer, history, preview and publishing controls. Learn what those controls do and verify their results; do not run unfamiliar commands merely because a model supplied them.

What if I cannot find a restore option?

Treat recovery as unresolved. Ask your building tool for its documented version and backup capabilities, and keep the exercise at explanation until you have a recoverable starting point for the intended change.

Sources & further reading

  1. GetRuthless chat

The example prompts and workflows are GetRuthless guidance. Source references support the concepts explained; they are not an endorsement of GetRuthless.

Put the guide into practice.

Open Ruthless and choose an available standard or abliterated model suited to your task. Copy a prompt above, add the context it asks for and check the result. You can compare models in the same workspace; see current pricing before sending requests.