AI-Enabled SDLC: A Structured, Human-Centered Workflow for AI-Assisted Development

Dylan McCarthy
Principal Engineer

Dylan McCarthy
Principal Engineer
Introduction
AI tools like GitHub Copilot are changing how we build software. Instead of treating them as magic black boxes or a threat to traditional roles, what if we placed them into a structured, thoughtful workflow? This is the idea behind AI-Enabled SDLC: a software development lifecycle that incorporates AI meaningfully at every stage, from planning to delivery.
In this post, we’ll explore how to use GitHub Copilot to create a predictable, reusable development flow powered by three core documents: spec.md, plan.md, and status.md. This methodology supports experienced engineers and provides a clear, supportive framework for juniors to grow, learn, and deliver value with confidence.
The Current State of SDLC
Most engineering teams today operate within some variant of the traditional Software Development Life Cycle (SDLC). The SDLC provides a structured approach to software creation, aiming to ensure quality, predictability, and maintainability. Its core phases are:
- Requirements Gathering: Understand the problem space and what needs to be solved.
- Design: Architect a solution, choosing technologies, defining interfaces, and laying out components.
- Implementation: Translate designs into working code.
- Testing: Validate that the code works as intended, meets requirements, and handles edge cases.
- Deployment: Release the solution to users.
- Maintenance: Fix bugs, improve performance, and adapt to change over time.
This structure is often executed via methodologies like Waterfall (sequential), Agile (iterative), or DevOps (continuous). Each has its tradeoffs, but all rely on a few common elements:
- Human-driven decision-making
- Team-based communication and context
- Lightweight or optional documentation, especially in Agile environments
- Tacit knowledge passed through meetings, chat, and code reviews
In these models, engineers carry significant cognitive load keeping context in mind across meetings, implementations, and handoffs. As systems scale and teams become more distributed, maintaining alignment becomes more difficult.
The Introduction of AI Tooling
The introduction of AI tools like GitHub Copilot has been disruptive. They are capable of producing code, tests, and even documentation on demand. However, many teams use these tools opportunistically without defined structure leading to:
- Loss of alignment between spec and implementation
- Context drift during long sessions
- Reduced clarity for junior team members
- Inconsistent documentation and planning
There is also a clear trend that organisations are enabling the tools without providing training or guidance on how to best utilize them, leaving it up to developers to try and find their own way.
So to benefit from AI without losing the benefits of structured SDLC, we need a new framework.
So what does an AI-Enabled SDLC look like?
Traditional SDLC assumes humans are the drivers of both planning and implementation. The clarity and traceability of work relies on process discipline and human memory. But AI introduces both opportunity and risk:
- Opportunity: Rapid code generation, faster prototyping, built-in suggestions, and documentation support.
- Risk: AI has no persistent memory, is context-limited, and can easily generate plausible but incorrect outputs.
Without structure, it’s easy for even experienced engineers to lose alignment between goals and implementation. Junior engineers, in particular, may feel disoriented unsure what to trust, what to review, or how to contribute.
That’s where AI-Enabled SDLC comes in. It proposes a structured approach to integrating AI tools like GitHub Copilot through a repeatable documentation and interaction cycle.
The Three Key Documents
spec.md
This file captures the technical specification for the component or feature being built. It includes:
- A clear problem statement
- Inputs and expected outputs
- Business rules and edge cases
- Architectural considerations or constraints
This is your source of truth. It provides context not just for GitHub Copilot, but for any human engineer reviewing or maintaining the code.
plan.md
When dealing with a more complex implementation, plan.md outlines an implementation roadmap. It might include:
- Sequenced steps to build the feature
- Identification of dependencies
- Tasks assigned per file or module
It serves as a scaffolding layer, helping break the problem into actionable steps that GitHub Copilot or a developer can tackle incrementally.
status.md
Once work is complete, status.md summarizes:
- What was built
- Which parts of the spec were implemented
- Any issues encountered or deviations from plan
- Remaining tasks, bugs, or TODOs
This file promotes transparency and supports asynchronous collaboration, especially helpful for onboarding and handoffs.
Together, these documents define the AI-Enabled SDLC workflow: clarify intent, structure execution, capture outcomes, and repeat with a clean slate. This helps ensure that AI stays aligned with human goals, even as work becomes distributed and iterative.
Creating the Spec File
The spec.md file is the cornerstone of the AI-Enabled SDLC process. It defines the boundaries of the work, sets expectations, and communicates intent both to GitHub Copilot and to other engineers who may read or extend the code later.
While it’s possible (and often tempting) to write this spec entirely by hand, there’s immense value in bringing AI into the process early not to replace your thinking, but to challenge your assumptions and fill in gaps.
From my experience, even when I take the time to write a thorough spec, I unconsciously omit details based on my background and familiarity with the domain. When I take that draft and prompt GitHub Copilot with it asking for a fleshed-out, more verbose version the result is often:
- Richer in detail
- More explicit about edge cases
- More useful when revisited later
However, this is also where AI can do the most damage if unchecked. An incorrect or vague spec propagates confusion through the rest of the process. That’s why this stage demands the highest level of human scrutiny. Always:
- Read the output carefully
- Cross-check against business goals
- Simplify anything ambiguous
- Treat it as a living artifact that evolves through feedback and iteration
The better your spec.md, the smoother every other step becomes. It’s not about perfection — just clarity, completeness, and shared understanding.
AI-Enabled SDLC in Practice
This workflow becomes most effective when applied consistently inside your development environment. GitHub Copilot Chat now supports a wide range of actions beyond code generation: it can read files, create new ones, suggest shell commands, and help you maintain structured documentation as you go. To utilize this we will be using the Agent mode of GitHub Copilot in this workflow.
Here’s how to apply the AI-Enabled SDLC practically using GitHub Copilot and your IDE (like VS Code):
Step 1: Bootstrap the spec.md
- In your project folder, open GitHub Copilot Chat.
- Describe the application or feature in natural language.
- Ask GitHub Copilot: “Create a new file called spec.md with a technical specification for this component.”
- Let it generate the file content based on your prompt. Review and refine it directly in the editor.
- Use GitHub Copilot’s file-aware capabilities to reference other parts of the project as needed.
Step 2: Break Down the Work with plan.md
- Once the spec.md is complete, ask GitHub Copilot: “Read the spec.md and create a plan.md that breaks down the implementation into clear tasks.”
- Let GitHub Copilot create the plan.md file automatically using its file system interaction.
- Review and iterate on the plan. Add notes, adjust sequencing, and clarify any ambiguous steps.
Step 3: Implement from Plan or Spec
- For each task, open a fresh GitHub Copilot chat and paste the relevant plan step.
- Ask things like: “Implement this task in a new file,” or “Add this method to UserService.cs based on the plan.”
- GitHub Copilot can propose file names, suggest folder structure, or even scaffold the project if prompted.
- Use it to generate code incrementally, review changes, and edit directly in the IDE before committing.
Step 4: Summarize Progress in status.md
- When a task or milestone is complete, ask: “Summarize what was just implemented in a status.md file.”
- Let GitHub Copilot create the status.md file or append to it if it already exists.
- The summary should describe what was built, any deviations from spec or plan, and any outstanding work.
Step 5: Reset Context and Realign
Before starting the next component:
- Reset the chat context (start a new thread).
- Prompt GitHub Copilot with: “Here are the current spec.md, plan.md, and status.md files. Based on these, what’s the next logical task?”
- Let GitHub Copilot generate the next step, and repeat the cycle.
Using GitHub Copilot’s ability to manage files, understand project structure, and contextually generate both content and commands, this workflow turns the IDE into a guided collaborative space not just a coding editor.
The key is not just writing prompts, but building habits: clear files, small increments, frequent checkpoints, and consistent resets to prevent drift. GitHub Copilot becomes your assistant architect, not your lead engineer, and that’s exactly how it should be. This structure scales well with teams, promotes clean documentation habits, and helps onboard others into the context of the work quickly.
Comparisons with Other Models
The AI-Enabled SDLC shares many principles with established methodologies but introduces a distinct structure for incorporating AI meaningfully across each stage. Rather than displacing existing ways of working, it complements them — providing an optional, structured overlay that helps teams harness the strengths of AI tooling more intentionally.
Agile (Scrum, Kanban, XP)
Agile is centered on adaptability, collaboration, and delivering small increments of value. It emphasizes people over process and prefers working software over comprehensive documentation.
- What’s similar: Iterative delivery, human-centered workflows, continuous feedback.
- What’s different: AI-Enabled SDLC leans more heavily on structured documentation (spec.md, plan.md, status.md) to keep AI on track, whereas Agile often minimizes documentation in favor of team conversation.
BDD (Behavior-Driven Development)
BDD defines behavior through examples, written in natural language, that drive the implementation of features through automated tests.
- What’s similar: BDD and AI-Enabled SDLC both begin with intent captured in structured files.
- What’s different: BDD focuses on user-facing behavior and tests, while AI-Enabled SDLC starts earlier in the development process capturing high-level technical intent, architecture, and planning before tests are written.
Agentic AI Tools (Claude, Kiro)
Agentic development tools aim to orchestrate entire projects autonomously. They can take a goal and self-manage planning, file creation, and code generation.
- What’s similar: Both aim to reduce manual overhead and accelerate delivery.
- What’s different: AI-Enabled SDLC keeps a human at the center. It treats AI as a tool to augment engineering discipline not to replace engineering judgment.
“Vibe Coding”
Vibe coding is an informal term used to describe coding by feel prompting an AI as you go, without clear structure or planning.
- What’s similar: Both make use of AI tools like GitHub Copilot.
- What’s different: Vibe coding is reactive and exploratory. AI-Enabled SDLC is deliberate and repeatable. It provides a foundation to scale AI usage responsibly.
These methods aren’t mutually exclusive. Many teams will find value in mixing techniques for example, writing behavior specs BDD-style while planning feature work with plan.md, or combining Agile sprints with structured GitHub Copilot tasks. The goal is not to abandon what works, but to offer a pattern that makes AI a first-class citizen in the software delivery lifecycle.
Benefits and Considerations
The AI-Enabled SDLC offers numerous advantages for individual developers and teams experimenting with AI integration, but also presents several design considerations, especially when scaling the workflow beyond a solo environment.
Benefits:
- Clear separation between spec, plan, and implementation
- Easy for juniors to onboard and follow along
- Enables safe and explainable AI usage
- Maintains traceability across features
- Promotes good habits around documentation and testing
- Reduces context-switching with GitHub Copilot’s ability to read and write project files
- Accelerates prototyping without sacrificing structure
Considerations:
- Still requires human judgment and review at each step
- Needs discipline to follow structure, especially in solo projects
- Not all specs can be perfectly written upfront, iteration is part of the loop
- Works best when a single engineer owns the component or feature
- Scaling to teams requires coordination around shared documents
Adapting the Workflow for Teams
The current format of AI-Enabled SDLC is optimized for a single developer working on a single application or feature area. To adapt this to larger teams, consider the following enhancements:
- Centralized spec.md and plan.md: Have these documents maintained by a tech lead or feature lead and stored in a discoverable location within the repository (e.g. /docs/ai-specs/feature-x/).
- Branch-local ephemeral status.md files: Individual developers can generate status files within their own branches or working directories to track in-flight work and context.
- Pull request integration: Require inclusion or reference to the relevant spec, plan, and a status summary in the PR description to provide reviewers with AI and human-aligned context.
- Periodic rollups: Designate a lead to consolidate individual status files into a project-wide update that reflects true implementation progress.
These changes allow the AI-Enabled SDLC to scale beyond individuals, giving teams structure without removing the autonomy that makes GitHub Copilot and similar tools so effective in modern workflows.
Best Practices
To make the most of AI-Enabled SDLC, consistency and structure are key. Here are some guiding practices for both individuals and teams:
General Principles
- Start with clarity: A strong spec.md reduces confusion and accelerates all downstream work.
- Think incrementally: Work in small batches of tasks to avoid overwhelming the AI context window.
- Review everything: Treat AI output as a suggestion — not truth. Edit, revise, and test diligently.
- Name things well: Use clear, consistent naming for files, components, and prompts to improve GitHub Copilot understanding.
- Use file-aware prompting: Refer to spec.md, plan.md, and relevant source files explicitly in your prompts to guide GitHub Copilot effectively.
Collaboration Habits
- Document before you code: Begin with spec.md and plan.md before implementation to guide structure.
- Summarize often: Use status.md not just at the end, but as a running log of decisions and progress.
- Reset GitHub Copilot chat context regularly: Prevent hallucination and context drift by starting fresh at logical boundaries.
Team Considerations
- Encourage ephemeral local docs: Let developers manage short-term status.md notes in their branches without cluttering main.
- Promote centralized planning: Designate a planning lead or architect to maintain canonical spec.md and plan.md documents.
- Include docs in PRs: Treat documentation files as part of the deliverable not an afterthought.
By building muscle memory around these habits, teams can work faster and more safely with AI assistance avoiding the pitfalls of chaotic prompting while still moving with agility.
Final Thoughts
AI-Enabled SDLC is a way to collaborate with AI tools without losing structure, human judgment, or team cohesion. It’s not about replacing developers, it’s about giving them leverage.
This workflow isn’t intended to be prescriptive or exhaustive. It represents one possible implementation my current iteration based on experience, experimentation, and a desire to bring more intention to how we work with AI. It’s a starting point, not a destination.
Every team, project, and developer has unique needs and constraints. You should feel free to adapt this process: swap out tools, restructure documents, or change the cadence of the workflow to better suit your context. The goal is not to force conformity but to foster clarity and creativity within a new paradigm.
For those working solo, this can be a way to stay organized, productive, and reflective. For teams, it offers a framework to begin standardizing how AI is used collaboratively. In both cases, the documents you create, and the conversations they spark are just as valuable as the code itself.
Let this model evolve. Build your own version. Share what works. And together, we can make AI something that uplifts engineering culture instead of displacing it.