Featured resource
2026 Tech Forecast
2026 Tech Forecast

1,500+ tech insiders, business leaders, and Pluralsight Authors share their predictions on what’s shifting fastest and how to stay ahead.

Download the forecast
  • Lab
    • Libraries: If you want this lab, consider one of these libraries.
Labs

GitHub Copilot Across the SDLC

In this hands-on lab, you will use AI-assisted workflows in Copilot to improve documentation, requirements planning, and testing throughout the SDLC (Software Development Life Cycle). Using custom instructions and isolated review sessions, you will refine documentation, structure user stories, evaluate requirement changes, and generate test cases.

Lab platform
Lab Info
Level
Intermediate
Last updated
Nov 13, 2026
Duration
1h 0m

Contact sales

By clicking submit, you agree to our Privacy Policy and Terms of Use, and consent to receive marketing emails from Pluralsight.
Table of Contents
  1. Challenge

    Establish project level custom instructions

    When integrating AI models into your software development life cycle, it's best to start by establishing the domain knowledge, content, current goals, and any other information that may be needed to assist in proper development of your codebase. After navigating to the lab using cd sdlc_lab, launch GitHub Copilot CLI using the command:

    copilot
    

    At the interactive Copilot prompt, enter:

    Read .github/copilot-instructions.md and summarize the project constraints you will follow. Do not edit files or execute code.

    Permissions: Copilot may request approval to read, edit, or run commands. Inspect each proposed action; do not approve modifications to cart.py in this lab.

  2. Challenge

    Reconcile outdated documentation

    Once README_updated.md is created, you can go through both and see what the AI model chose to update. Also compare the features explained in README_updated.md to the actual current features of the cart.py code.

  3. Challenge

    Expand an ambiguous enhancement

    Prompting Copilot to transform an enhancement request into a structured epic helps bridge the gap between high-level business requirements and actionable development tasks. By reviewing existing code, documentation, and project instructions, Copilot can ground its recommendations in the application's current functionality rather than making unsupported assumptions.

    This approach provides several benefits:

    1. Identify ambiguity: Surface missing requirements and questions that need product-owner clarification before development begins.
    2. Improve planning: Break broad enhancement requests into prioritized user stories with testable acceptance criteria.
    3. Maintain consistency: Use existing documentation and custom instructions to align proposed changes with project constraints.
    4. Reduce rework: Identify dependencies, edge cases, and out-of-scope functionality before implementation.
    5. Preserve human oversight: Keep assumptions provisional and require human approval for unresolved business decisions.

    The goal is to use Copilot as a planning assistant rather than an autonomous decision-maker, producing a structured foundation for development while keeping requirement ownership with the appropriate stakeholders. In the already open copilot session, enter the following:

    Read planning/enhancement_request.md, cart.py, docs/README.md, and .github/copilot-instructions.md. Create planning/epic.md containing: problem and goal; confirmed behavior; ambiguities and product-owner questions; explicitly provisional assumptions; 3–5 prioritized user stories with Given/When/Then acceptance criteria; dependencies; and out-of-scope items. Do not modify production code or treat unanswered questions as approved decisions.

    Are the following key criteria addressed: discount stacking, precedence, rounding, invalid/expired promotions, and acceptance? Issues that'll block the implementation should be addressed by the AI model during this step.

  4. Challenge

    Writer/reviewer pattern with isolated CLI sessions

    Using separate Copilot CLI sessions creates cognitive isolation between writing and reviewing. A fresh reviewer session evaluates the work without inheriting the writer's reasoning, assumptions, or conversational context, reducing confirmation bias and increasing the likelihood of identifying overlooked requirements, contradictions, and risks. This writer/reviewer pattern provides a more independent evaluation while allowing the writer to incorporate feedback into an improved final deliverable. The first open Terminal will be designated the writer session. You'll open a second Terminal, which'll be the reviewer session. (This isn't required for functionality, but better separates the two sessions.)

    1. Enter exit to quit the current Copilot session (the writer session).

    2. Open a new terminal session, which'll be the reviewer session: to the right of the current Terminal, click + > New tab > Terminal.

    3. In the reviewer session, run cd sdlc_lab.

    4. Start Copilot:

      copilot
      
    5. In this fresh session, enter the following:

      Act as an independent requirements reviewer. Read .github/copilot-instructions.md, cart.py, planning/enhancement_request.md, and planning/epic.md. Do not edit the epic. Create reviews/epic_review.md identifying contradictions, unsupported assumptions, omitted edge cases, untestable acceptance criteria, and risks. Rank findings Critical, Major, or Minor and propose specific revisions. Base the review only on project files.

    6. Once done, exit this session.

    7. Switch to the writer session (the first Terminal), and start copilot.

    8. Enter the following prompt:

      Act as the requirements writer. Read planning/epic.md and reviews/epic_review.md. Revise planning/epic.md to address justified findings while keeping unresolved product decisions explicit. Create planning/review_response.md recording accepted and rejected findings and reasons. Do not modify cart.py.

    (You can use the first Terminal for the remainder of the lab.)

  5. Challenge

    Assess a disruptive mid-planning change

    Assessing disruptive mid-planning changes is important when using AI in the SDLC because AI-generated plans can quickly become outdated as requirements evolve. Evaluating how new requirements affect existing user stories, dependencies, priorities, and scope helps teams identify risks, compare alternatives, and avoid unnecessary rework. AI can accelerate impact analysis and recommend adjustments, while human oversight ensures changes remain aligned with business objectives. The product owner proposes multi-currency checkout instead of discount expansion. The existing function assumes USD and two-decimal-place rounding.

    In a new blank copilot session (exit and restart), enter the following prompt:

    The product owner proposes replacing discount expansion with multi-currency checkout. Create planning/change_impact.md. Compare A) continue discount expansion, B) pivot entirely to multi-currency, and C) phase a small discount milestone followed by multi-currency. For each option, assess scope, API/data model impact, currency precision, FX-rate sourcing, testing, dependencies, risks, and relative effort. Score each 1–5 on business alignment, feasibility, risk control, and time to value. State assumptions, rank the options, and give a conditional recommendation. Do not implement changes.

  6. Challenge

    Generate test cases with cognitive isolation

    Finally, enter the following:

    Review tests/test_plan.md for duplicates, missing negative paths, weak expected outcomes, and acceptance criteria without coverage. Append a coverage-gap summary to tests/test_plan.md. Keep unresolved product decisions explicit.

About the author

I am, Josh Meier, an avid explorer of ideas an a lifelong learner. I have a background in AI with a focus in generative AI. I am passionate about AI and the ethics surrounding its use and creation and have honed my skills in generative AI models, ethics and applications and thrive to improve in my understanding of these models.

Real skill practice before real-world application

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Learn by doing

Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.

Follow your guide

All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.

Turn time into mastery

On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.

Get started with Pluralsight