mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-13 12:45:13 +00:00
12 KiB
12 KiB
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?