Keyboard Shortcuts N Next post
P Previous post
S Save / unsave
R Read aloud
T Toggle theme
/ Focus search
Esc Close panels
🔥
Ready to read...
beginner GitHub Copilot IMCSEIAN Tutorial Verification Workflow

Accept, Reject, Iterate: A Healthy Workflow with AI Suggestions

Reviewed & accurate
AI Summary
IMCSEIAN · GitHub Copilot Master Course

Accept, Reject, Iterate: A Healthy Workflow with AI Suggestions

Build the habit of evaluating suggestions — the loop that prevents Copilot-induced bugs.

Phase 1 — Beginner Lesson BE-13 Difficulty: Beginner 7 min read
Course: GitHub Copilot Phase 1 — Beginner 7 min read Last verified: 2026-08-30

What You Will Learn

  • Adopt the read-evaluate-accept-or-iterate loop.
  • Define a personal rule for when to accept vs reject.
  • Use follow-up prompts to iterate on bad suggestions.
  • Build verification into every acceptance.
  • Recognize anti-patterns like Tab-Tab-Tab.

Why This Matters

The single biggest source of Copilot-induced bugs is accepting suggestions without reading them. The single biggest source of Copilot disappointment is rejecting good suggestions because the prompt was vague. This lesson gives you a loop that prevents both.

Concept Explained

Every Copilot suggestion deserves a deliberate read. The mental loop is: read → evaluate → accept or iterate → verify. Reading means understanding what the code does. Evaluating means judging it against your intent and conventions. Accepting means committing; iterating means refining the prompt. Verifying means running tests or checking output.

How It Works

The loop runs on every suggestion. Reading is mental, takes 2–10 seconds. Evaluating compares the suggestion to: correctness, idioms, security, performance, edge cases. Accepting = Tab. Iterating = follow-up prompt. Verifying = run tests or execute. The loop closes when the suggestion is correct and verified.

Step-by-Step Tutorial

1. Read

Read the suggestion word-by-word. Don't skim. Identify what each line does.

2. Evaluate

Ask: is it correct? Idiomatic? Secure? Handles edge cases? Matches our conventions?

3. Accept or iterate

If yes, accept. If no, write a follow-up prompt that targets the issue.

4. Verify

After accepting, run tests or execute. Don't trust until verified.

5. Document

For non-trivial suggestions, note why you accepted — helps with code review later.

Real-World Example

A developer accepted a Copilot suggestion for a JWT validation function without reading it carefully. The function looked correct but accepted tokens with `alg: none` — a known JWT vulnerability. Two weeks later a security audit caught it. The fix was a one-line change, but the trust cost was higher. A 30-second read would have caught the issue.

Example Prompts / Commands / Code

Iteration exampleimcseian
# Initial prompt:
function authenticate(token) { ... }

# Copilot suggests:
function authenticate(token) {
  const decoded = jwt.decode(token);
  return decoded.user;
}

# Iterate (reject, then):
Add signature verification. Reject alg=none. Throw on invalid token.

# Better suggestion:
function authenticate(token) {
  const decoded = jwt.verify(token, SECRET, { algorithms: ['HS256'] });
  if (!decoded.user) throw new Error('Invalid token');
  return decoded.user;
}

Common Mistakes

  • Tab-Tab-Tab — accepting without reading.
  • Rejecting good suggestions because the prompt was vague.
  • Iterating endlessly — sometimes the model just can't help; write it yourself.
  • Accepting without verifying — tests catch what your eyes miss.

Best Practices

  • Read every suggestion; don't skim.
  • Define a personal rule: accept if correct, idiomatic, secure, and matches conventions.
  • Iterate via follow-up prompts rather than starting over.
  • Verify every acceptance with tests or execution.
  • For non-trivial code, document why you accepted for code review.

Troubleshooting

ProblemHow to Fix
Iteration isn't improvingThe model can't help with this task. Write it yourself or try a different model.
Always rejectingYour prompts may be too vague. See BE-15 on specificity.
Accepting but tests failVerify immediately after accepting. Don't accumulate untested code.

Practical Exercise

Your Turn

Pick a function you need to write. Use Copilot to generate a first draft. Apply the read-evaluate-accept-or-iterate loop until you have a version you'd commit. Write down how many iterations it took.

Key Takeaways

  • Loop: read → evaluate → accept or iterate → verify.
  • Reading is non-negotiable — never Tab without reading.
  • Iterate via follow-up prompts, not by starting over.
  • Verify every acceptance with tests or execution.
  • Document non-trivial acceptances for code review.

Frequently Asked Questions

How long should I spend reading?
2–10 seconds for short suggestions, longer for multi-line. Don't accept what you can't explain.
What if I'm not sure if a suggestion is correct?
Don't accept. Write a test, or ask Copilot to explain its reasoning.
Is rejecting bad for the model?
No — your rejects don't directly retrain the model unless you have feedback enabled.

Further Reading

Official References

Related lessons: BE-07, BE-15, BE-31

SEO Metadata

SEO title: Accept, Reject, Iterate: A Healthy Workflow with AI Suggestions

Meta description: Build the habit of evaluating suggestions — the loop that prevents Copilot-induced bugs.

Primary keyword: accept, reject, iterate

Secondary keywords: accept, reject, iterate: a healthy workflow with ai suggestions

Search intent: Informational

URL slug: /accept-reject-iterate-copilot-workflow

Categories: AI Tools, GitHub Copilot

Tags: GitHub Copilot, Beginner, Workflow, Verification, IMCSEIAN, Tutorial, IMCSEIAN

Featured image concept: IMCSEIAN lesson card for Accept, Reject, Iterate: A Healthy Workflow with AI Suggestions

Test Your Knowledge
How did you find this?

Comments

Join the discussion! Sign in with your Google or Blogger account, or comment as Anonymous - no account needed. For quick questions, also reach me on Telegram @cytestch.

Comments