Files
awesome-copilot/skills/noob-mode/references/examples.md
Dan Velton a893b069d9 Add noob-mode skill and plugin (#857)
Noob Mode is a plain-English translation layer for non-technical Copilot
CLI users (PMs, business stakeholders, designers, and anyone new to the
command line). When activated, it translates every approval prompt, error
message, and technical output into clear, jargon-free English with
color-coded risk indicators.

Includes:
- Standalone skill (skills/noob-mode/) with SKILL.md and bundled
  glossary (100+ terms) and before/after examples
- Plugin (plugins/noob-mode/) for installation via
  copilot plugin install noob-mode@awesome-copilot

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-03 10:31:40 +11:00

12 KiB
Raw Blame History

Noob Mode — Before & After Examples

These examples show how Copilot CLI behaves without Noob Mode vs. with Noob Mode active. Same actions, completely different experience.


1. File Read Approval

Without Noob Mode

Allow tool: view on path "/Users/you/contracts/nda-template.md"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to open and read the file "contracts/nda-template.md" to see what's in it.

🎯 WHY:
You asked me to review your NDA template, so I need to read it first.

⚠️ RISK: 🟢 Low
This just reads the file — nothing gets changed or deleted. It's like opening a document to look at it.

✅ If you approve: I'll read the file and then tell you what I found.
❌ If you decline: I won't be able to see the file, so we'll need another approach.

[y/n]

2. File Edit Approval

Without Noob Mode

Allow tool: edit on path "/Users/you/memo.md"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to edit the file "memo.md" — specifically, I'll update the third paragraph to include the new licensing terms you mentioned.

🎯 WHY:
You asked me to revise the memo with the updated licensing language.

⚠️ RISK: 🟡 Moderate
I'll be changing an existing file. The specific change is adding two sentences to paragraph 3.

✅ If you approve: I'll make the edit. You'll be able to see exactly what changed.
❌ If you decline: The file stays untouched. I can show you the proposed changes first if you'd prefer.

[y/n]

3. Bash Command — Safe Command

Without Noob Mode

Allow tool: bash with command "grep -r 'indemnification' ./contracts/"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to search all files in your "contracts" folder for the word "indemnification."

🎯 WHY:
You asked me to find every mention of indemnification across your contract files.

⚠️ RISK: 🔴 High (but safe in this case)
Running commands is generally high-risk, but this command only searches — it doesn't change or delete anything.

✅ If you approve: I'll search and show you every file where "indemnification" appears.
❌ If you decline: I can read files one by one instead, but it'll take longer.

[y/n]

4. Bash Command — Risky Command

Without Noob Mode

Allow tool: bash with command "rm -rf node_modules && npm install"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to (1) delete the "node_modules" folder, which contains downloaded software libraries, and then (2) re-download all of them fresh.

🎯 WHY:
Some of the downloaded libraries seem corrupted. Deleting and re-downloading them is a common fix.

⚠️ RISK: 🔴 High
The first part deletes an entire folder. However, the second part immediately re-downloads everything, so nothing is permanently lost. This might take 1-2 minutes.

✅ If you approve: The old libraries get deleted and fresh copies are downloaded. Your project files are NOT affected.
❌ If you decline: The corrupted libraries stay, and the error we're seeing will likely persist.

[y/n]

5. Git Operation

Without Noob Mode

Allow tool: bash with command "git push origin feature/update-terms"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to upload your changes to the shared server (GitHub) on a branch called "feature/update-terms."

🎯 WHY:
You said you're ready to share these edits with your team for review.

⚠️ RISK: ⛔ Critical
This sends your changes to a shared server where your colleagues can see them. It doesn't change the main version — it creates a separate branch (copy) for review.

✅ If you approve: Your changes will be visible on GitHub. You or a colleague can create a pull request (a formal review request) from there.
❌ If you decline: Changes stay only on your computer. Nobody else can see them yet.

[y/n]

6. URL Access

Without Noob Mode

Allow tool: web_fetch on URL "https://api.github.com/repos/github/docs/issues"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to visit a GitHub web page that lists issues (tracked tasks and bugs) for the "docs" project.

🎯 WHY:
You asked about open documentation issues. This page has the list.

⚠️ RISK: 🔴 High
This connects to an external website (GitHub's API). It only reads information — it doesn't post, change, or submit anything.

✅ If you approve: I'll fetch the list and show you a summary of the open issues.
❌ If you decline: I can't access the live issue list. I can only work with what's already on your computer.

[y/n]

7. Build Error Output

Without Noob Mode

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! Found: react@18.2.0
npm ERR! node_modules/react
npm ERR!   react@"^18.2.0" from the root project
npm ERR! Could not resolve dependency:
npm ERR!   peer react@"^17.0.0" from react-beautiful-dnd@13.1.1

With Noob Mode

❌ WHAT WENT WRONG:
Two software libraries need different versions of the same tool (React), and they're incompatible.

💡 WHAT THIS MEANS:
It's like two apps on your phone that each require a different version of iOS — you can't satisfy both at the same time. The library called "react-beautiful-dnd" needs an older version of React (17), but this project is using the newer version (18).

🔧 WHAT WE CAN DO:
Option A: Update "react-beautiful-dnd" to a newer version that works with React 18
Option B: Force the install anyway (might cause subtle issues later)
Option C: Find an alternative library that works with React 18

💡 I'd recommend Option A — it's the cleanest fix.

8. Test Failure Output

Without Noob Mode

FAIL src/utils.test.ts
  ● validateEmail  should reject invalid emails
    expect(received).toBe(expected)
    Expected: false
    Received: true
      12 |   test('should reject invalid emails', () => {
      13 |     const result = validateEmail('notanemail');
    > 14 |     expect(result).toBe(false);

With Noob Mode

❌ WHAT WENT WRONG:
One of the automated checks failed. The email validation function has a bug.

💡 WHAT THIS MEANS:
There's a function that checks whether an email address is valid. When it was given "notanemail" (which is clearly not a valid email), it said "yes, that's valid" instead of "no, that's not valid."

🔧 WHAT WE CAN DO:
The email validation logic in the file "src/utils.ts" needs to be fixed so it correctly rejects strings that aren't real email addresses.

Want me to look at the validation code and fix it?

9. Git Status/Diff Output

Without Noob Mode

On branch main
Changes not staged for commit:
  modified:   src/config.ts
  modified:   README.md
Untracked files:
  docs/new-guide.md

With Noob Mode

✅ HERE'S WHAT'S GOING ON WITH YOUR FILES:

📝 Changed files (edited but not yet saved to version history):
  • src/config.ts — Modified (this file was changed)
  • README.md — Modified (this file was changed)

🆕 New files (not yet tracked):
  • docs/new-guide.md — This is a brand-new file that version control hasn't seen before

💡 SUMMARY: You have 2 files with unsaved changes and 1 new file. None of these changes have been "committed" (saved to your project's history) yet.

10. Multi-Step Task Planning

Without Noob Mode

I'll read the current implementation, refactor the auth module, update the tests, and run the test suite.

With Noob Mode

📍 HERE'S MY PLAN (4 steps):

1. 📖 Read the current login code to understand how it works
2. ✏️ Rewrite it to use the new approach you described
3. 🧪 Update the automated checks to match the new code
4. ▶️ Run all the checks to make sure nothing broke

I'll ask for your permission at each step, and I'll explain what happened after each one.

Starting with step 1 now...

11. Technical Question to User

Without Noob Mode

Should I use a relative or absolute path for the import?

With Noob Mode

I need your input on something:

**Option A: Relative path**
What this means: Reference the file based on where THIS file is located (like saying "the folder next door").
Trade-off: Works well when files are near each other, but can break if you move files around.

**Option B: Absolute path**
What this means: Reference the file using its full address from the project root (like giving a complete street address).
Trade-off: Always works regardless of where things move, but is more verbose.

💡 I'd recommend Option B — it's more resilient if the project structure changes later.

12. Package Installation

Without Noob Mode

Allow tool: bash with command "npm install lodash@4.17.21"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to download a widely-used utility library called "lodash" (version 4.17.21). It provides helper functions for working with data.

🎯 WHY:
The code I'm writing needs a function to safely access nested data. Lodash provides this, and it's the industry standard.

⚠️ RISK: 🟡 Moderate
This downloads code from the internet and adds it to your project. Lodash is extremely well-known and trusted — it's used by millions of projects.

✅ If you approve: The library gets downloaded into a "node_modules" folder. Your actual project files aren't changed.
❌ If you decline: I'll write the utility function by hand instead, which takes a bit longer.

[y/n]

13. File Deletion

Without Noob Mode

Allow tool: bash with command "rm src/deprecated/old-auth.ts"?
[y/n]

With Noob Mode

📋 WHAT I'M ASKING TO DO:
I want to permanently delete the file "src/deprecated/old-auth.ts."

🎯 WHY:
This file contains the old login code that we just replaced. No other file references it anymore, so it's safe to remove.

⚠️ RISK: 🔴 High
Deleting a file is permanent — there's no recycle bin for this. However, this file is tracked by git (version control), so we could recover it from history if needed.

✅ If you approve: The file is deleted from your computer. It can still be recovered from git history if you ever need it.
❌ If you decline: The file stays. It won't cause any harm — it's just unused clutter.

💡 SAFETY NOTE: Want me to make a backup copy before deleting it?

[y/n]

14. Complex Error Message

Without Noob Mode

Error: EACCES: permission denied, open '/usr/local/lib/node_modules/@github/copilot/package.json'
    at Object.openSync (node:fs:603:3)
    at Object.readFileSync (node:fs:471:35)

With Noob Mode

❌ WHAT WENT WRONG:
The computer blocked access to a file because your user account doesn't have permission to modify it.

💡 WHAT THIS MEANS:
The file is in a protected system folder ("/usr/local/...") that requires administrator privileges to change. This is actually a security feature — it prevents programs from accidentally modifying important system files.

🔧 WHAT WE CAN DO:
Option A: Run the command with administrator privileges ("sudo") — this temporarily elevates your permissions
Option B: Install to a different location that doesn't require special permissions

💡 I'd recommend Option B — it's safer and avoids needing admin access.

15. Task Completion Summary

Without Noob Mode

Done. Created the analysis file.

With Noob Mode

✅ ALL DONE — Here's what happened:

📄 Files created:
  • ~/Desktop/IP-Risk-Analysis.md — A 3-page analysis of the IP risks in the proposed partnership, organized by risk level (high, medium, low)

📝 Files changed:
  • (none — I didn't change any existing files)

🗑️ Files deleted:
  • (none)

💡 SUMMARY:
I created a new document on your Desktop with the IP risk analysis you requested. It covers:
- 3 high-risk items (patent exposure, GPL contamination, trade secret concerns)
- 5 medium-risk items (trademark usage, attribution requirements, etc.)
- 2 low-risk items (standard OSS components)

Each item includes a plain-English explanation and recommended next steps.

🔄 TO UNDO: Delete the file at ~/Desktop/IP-Risk-Analysis.md

🎉 Anything else you'd like me to help with?