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