Skip to content

Commit c4e1033

Browse files
committed
updates spec-driven development instructions for plan and task workflows
1 parent 917cdb3 commit c4e1033

1 file changed

Lines changed: 45 additions & 141 deletions

File tree

Instructions/Labs/LAB_AK_13_implement-spec-driven-development.md

Lines changed: 45 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ Use the following steps to complete this task:
621621
622622
1. Monitor GitHub Copilot's response.
623623
624-
GitHub Copilot will analyze the `spec.md` file and generate clarification questions.
624+
GitHub Copilot will analyze the spec.md file and generate clarification questions.
625625
626626
For example, you may receive questions that are similar to the following:
627627
@@ -633,25 +633,23 @@ Use the following steps to complete this task:
633633
634634
The questions will be presented one at a time.
635635
636-
1. Take the appropriate time to consider each question before answering.
636+
1. Consider each question appropriately before answering.
637637
638-
In a production environment, your answers should reflect careful analysis of business needs, user experience considerations, and technical constraints.
638+
In a production environment, your answers should reflect careful analysis of business needs, user experience considerations, and technical constraints. However, for this training, you can selected the recommended option for each question.
639639
640-
For this training, you can selected the recommended option for each question.
641-
642-
After you provide each answer, GitHub Copilot updates the `spec.md` file with clarifications.
640+
When you provide an answer, GitHub Copilot updates the spec.md file with clarifications.
643641
644642
> **NOTE**: If Copilot presents additional rounds of questions, continue answering until it indicates there are no further clarifications needed. The clarification process typically involves 1-2 rounds of questions as Copilot refines the specification.
645643
646-
1. Once the clarification process is complete, review the updated `spec.md` file, and then accept the changes.
644+
1. Once the clarification process is complete, review the updated **spec.md** file, and then accept the changes.
647645
648646
- Check that your answers are accurately reflected in the specification
649647
- Verify that previously ambiguous areas now have clear requirements
650648
- Look for any newly added acceptance criteria based on your clarifications
651649
652650
You can make any manual edits if needed. For example, if GitHub Copilot interpreted an answer differently than you intended, edit the spec directly to correct it.
653651
654-
1. Save the updated `spec.md` file and commit your changes.
652+
1. Save the updated **spec.md** file and commit your changes.
655653
656654
The clarified specification now provides comprehensive guidance for implementation. By addressing ambiguities upfront, you reduce the risk of building the wrong solution or having to make significant changes later in the development process.
657655
@@ -663,170 +661,82 @@ In this task, you use GitHub Copilot's `/speckit.plan` command to generate a com
663661
664662
Use the following steps to complete this task:
665663
666-
1. Ensure the Copilot Chat view is open (press **Ctrl+Alt+I** if needed).
667-
668-
1. In the Chat input field, enter the `/speckit.plan` command and press **Enter**.
664+
1. Ensure the Copilot Chat view is open..
669665
670-
1. GitHub Copilot will analyze the `constitution.md` and `spec.md` files to generate the plan. It may prompt you for additional technical context. Provide the following information:
666+
1. In the Chat view, to start the technical planning process, enter the following command:
671667
672-
```plaintext
673-
Technology Stack Context:
674-
675-
Backend: ASP.NET Core 8.0 Web API with C#, Entity Framework Core 8
676-
Database: Azure SQL Database
677-
Storage: Azure Blob Storage for document files
678-
Authentication: Microsoft Entra ID with JWT tokens
679-
Hosting: Azure App Service
680-
681-
Architecture:
682-
- Repository pattern for data access
683-
- Service layer for business logic
684-
- Dependency Injection
685-
- DTOs for API contracts
686-
687-
Development:
688-
- Async/await for all I/O operations
689-
- Unit tests with xUnit
690-
- XML documentation for public APIs
691-
- Application Insights for logging
668+
```dotnetcli
669+
/speckit.plan
692670
```
693671
694-
1. Wait 2-3 minutes for GitHub Copilot to generate the technical plan in the `plan.md` file.
672+
1. Monitor GitHub Copilot's response and provide assistance in the Chat view.
695673
696-
1. Open the `plan.md` file from the EXPLORER view and verify it includes these sections:
674+
GitHub Copilot will analyze the constitution.md and spec.md files to generate the plan. Provide permission and assistance when required.
697675
698-
- **Architecture Overview**: High-level system design and component interactions
699-
- **Technology Stack**: Specific versions and frameworks to be used
700-
- **Data Model**: Database schema, entities, and relationships
701-
- **API Design**: RESTful endpoints, request/response formats
702-
- **Azure Resources**: Required cloud services and configurations
703-
- **Security Implementation**: Authentication, authorization, encryption details
704-
- **File Processing Workflow**: Upload pipeline, virus scanning, storage
705-
- **Frontend Components**: UI pages, components, and user flows
706-
- **Integration Points**: How the feature connects with existing dashboard features
707-
- **Testing Strategy**: Unit tests, integration tests, and performance tests
708-
- **Deployment Approach**: CI/CD pipeline steps and environment configuration
676+
It can take several minutes for GitHub Copilot to generate the technical plan in the plan.md file.
709677
710-
1. Review the data model section. It should include entities such as:
678+
1. Once the plan workflow is complete, take a few minutes to review the following files:
711679
712-
- **Document**: DocumentId, Title, Description, FileName, FileSize, FileType, BlobStorageUrl, Category, UploadedBy, UploadDate, LastModifiedDate
713-
- **DocumentTag**: TagId, DocumentId, TagName
714-
- **DocumentShare**: ShareId, DocumentId, SharedBy, SharedWith, SharedDate
715-
- **DocumentAuditLog**: LogId, DocumentId, Action (Upload/Download/Delete/Share), UserId, Timestamp
680+
- **plan.md**
681+
- **research.md**
682+
- **quickstart.md**
683+
- **data-model.md**
684+
- **contracts/IBlobStorageService.md**
685+
- **contracts/IDocumentService.md**
716686
717-
1. Review the API design section. It should include endpoints such as:
687+
Verify that the plan addresses all constitutional constraints.
718688
719-
```plaintext
720-
POST /api/documents - Upload new document
721-
GET /api/documents - Get user's documents (with filtering/sorting)
722-
GET /api/documents/{id} - Get document details
723-
PUT /api/documents/{id} - Update document metadata or replace file
724-
DELETE /api/documents/{id} - Delete document
725-
GET /api/documents/{id}/download - Download document
726-
GET /api/documents/{id}/preview - Get preview URL
727-
POST /api/documents/{id}/share - Share document with users
728-
GET /api/documents/project/{id} - Get project documents
729-
GET /api/documents/search - Search documents
730-
```
731-
732-
1. Check that the plan addresses all constitutional constraints:
689+
Verify the plan includes implementation phases or milestones.
733690
734-
- Uses Azure services (Blob Storage, SQL Database, Functions)
735-
- Implements Entra ID authentication
736-
- Includes encryption at rest and in transit
737-
- Follows ASP.NET Core coding conventions
738-
- Includes logging and audit trails
739-
- Specifies Entity Framework Core with repository pattern
691+
1. After reviewing the files, accept the updates.
740692
741-
1. Verify the plan includes implementation phases or milestones. For example:
693+
If the plan omits important details or makes assumptions you disagree with, you can:
742694
743-
- **Phase 1**: Database schema and models (Week 1)
744-
- **Phase 2**: Azure Blob Storage integration and file upload API (Week 2-3)
745-
- **Phase 3**: Document listing, search, and filtering (Week 4)
746-
- **Phase 4**: Version management and sharing features (Week 5-6)
747-
- **Phase 5**: Dashboard integration and notifications (Week 7)
748-
- **Phase 6**: Testing, security review, and deployment (Week 8-10)
749-
750-
1. If the plan omits important details or makes assumptions you disagree with, you can:
751-
752-
- Edit the `plan.md` file directly, or
695+
- Edit the plan.md file directly, or
753696
- Ask follow-up questions in Copilot Chat. For example:
754697
755698
```plaintext
756699
The plan should include a background job for processing virus scans. Add details about using Azure Functions with Queue Storage triggers to handle async file scanning after upload.
757700
```
758701
759-
1. Save the `plan.md` file and commit your changes:
760-
761-
```powershell
762-
git add plan.md
763-
git commit -m "Add technical implementation plan for document management feature"
764-
git push
765-
```
702+
1. Save the files, and then commit and sync your changes.
766703
767704
The technical plan now serves as a blueprint for implementation. It translates business requirements into concrete technical decisions while respecting organizational constraints. This plan will guide the creation of actionable tasks in the next step.
768705
769-
## Create the Task List
706+
## Create the task list
770707
771708
The task list breaks down the technical plan into specific, actionable implementation steps. Each task should be small enough to complete in a reasonable timeframe (typically a few hours to a day) and have clear acceptance criteria.
772709
773710
In this task, you use GitHub Copilot's `/speckit.tasks` command to generate a comprehensive task list.
774711
775712
Use the following steps to complete this task:
776713
777-
1. Ensure the Copilot Chat view is open (press **Ctrl+Alt+I** if needed).
778-
779-
1. In the Chat input field, enter the `/speckit.tasks` command and press **Enter**.
780-
781-
1. GitHub Copilot will analyze the `plan.md` file and generate tasks in the `tasks.md` file. Wait 1-2 minutes for the generation to complete.
714+
1. Ensure the Copilot Chat view is open.
782715
783-
1. Open the `tasks.md` file from the EXPLORER view.
716+
1. In the Chat view, to start generating the task list, enter the following command:
784717
785-
1. Review the generated task list. It should include tasks such as:
718+
```dotnetcli
719+
/speckit.tasks
720+
```
786721
787-
**Data Model (5 tasks):**
788-
- [ ] Task 1: Create Document entity with EF Core model
789-
- [ ] Task 2: Create DocumentTag, DocumentShare, and DocumentAuditLog entities
790-
- [ ] Task 3: Generate and apply EF Core migrations
791-
- [ ] Task 4: Create repository interfaces
792-
- [ ] Task 5: Implement repository classes
722+
1. Monitor GitHub Copilot's response and provide assistance in the Chat view.
793723
794-
**Backend API (8 tasks):**
795-
- [ ] Task 6: Create DocumentService with upload logic
796-
- [ ] Task 7: Implement POST /api/documents endpoint for upload
797-
- [ ] Task 8: Implement GET /api/documents endpoint with filtering/sorting
798-
- [ ] Task 9: Implement GET /api/documents/{id}/download endpoint
799-
- [ ] Task 10: Implement document preview generation
800-
- [ ] Task 11: Implement document search endpoint
801-
- [ ] Task 12: Implement sharing endpoints
802-
- [ ] Task 13: Implement audit logging
724+
GitHub Copilot will analyze the plan.md file and generate tasks in the tasks.md file.
803725
804-
**Frontend UI (5 tasks):**
805-
- [ ] Task 14: Create DocumentUpload component with drag-drop
806-
- [ ] Task 15: Create DocumentList component with table view
807-
- [ ] Task 16: Create document preview viewer
808-
- [ ] Task 17: Create sharing dialog
809-
- [ ] Task 18: Create "Recent Documents" dashboard widget
726+
It can take several minutes for GitHub Copilot to generate the task list. Provide permission and assistance when required.
810727
811-
**Testing (4 tasks):**
812-
- [ ] Task 19: Write unit tests for DocumentService
813-
- [ ] Task 20: Write integration tests for upload API
814-
- [ ] Task 21: Write UI tests for upload workflow
815-
- [ ] Task 22: Perform security testing
728+
1. Once the plan workflow is complete, take a few minutes to review the **tasks.md** file.
816729
817-
**Deployment (3 tasks):**
818-
- [ ] Task 23: Configure CI/CD pipeline
819-
- [ ] Task 24: Set up Application Insights monitoring
820-
- [ ] Task 25: Perform final code review
730+
Review the generated task list. It should provide a list of tasks organized by phase and user story.
821731
822-
1. Verify that the task list covers all requirements from the specification:
732+
Verify that the task list covers the requirements from the specification. For example:
823733
824734
- Each functional requirement should map to one or more tasks
825735
- Security requirements should have corresponding implementation tasks
826736
- Performance requirements should have testing tasks
827737
- Integration points should have dedicated tasks
828738
829-
1. Check that tasks are ordered logically:
739+
Verify that tasks are ordered logically:
830740
831741
- Foundation tasks (database, models) come first
832742
- Backend API tasks build on the foundation
@@ -839,26 +749,20 @@ Use the following steps to complete this task:
839749
- ✅ Good: "Create Document entity with properties: DocumentId, Title, Description, FileName, FileSize, BlobStorageUrl"
840750
- ❌ Vague: "Set up database stuff"
841751
842-
1. Verify that tasks have reasonable scope:
752+
Verify that tasks have reasonable scope:
843753
844754
- Individual tasks should be completable in a few hours to a day
845755
- If a task seems too large, note that it may need to be broken down during implementation
846756
847-
1. Add task dependencies or notes if needed. For example:
757+
You can add task dependencies or notes if needed. For example:
848758
849759
```markdown
850760
- [ ] Task 12: Implement DocumentController POST /api/documents endpoint
851761
- Depends on: Task 11 (DocumentService)
852762
- Note: Include comprehensive error handling for file size limits and unsupported types
853763
```
854764
855-
1. Save the `tasks.md` file and commit your changes:
856-
857-
```powershell
858-
git add tasks.md
859-
git commit -m "Add comprehensive task list for document management implementation"
860-
git push
861-
```
765+
1. Save the `tasks.md` file, and then commit and sync your changes.
862766
863767
The task list now provides a clear roadmap for implementation. In the next task, you'll use GitHub Copilot to help implement these tasks systematically.
864768
@@ -870,14 +774,14 @@ In this task, you'll implement a subset of the feature to demonstrate the spec-d
870774
871775
Use the following steps to complete this task:
872776
873-
1. Review the task list in `tasks.md` and identify foundational tasks to implement:
777+
1. Review the task list in tasks.md and identify foundational tasks to implement:
874778
875779
- Task 1: Create Document entity
876780
- Task 6: Implement upload service
877781
- Task 7: Create upload API endpoint
878782
- Task 14: Create upload UI component
879783
880-
1. **Create the Document entity model:**
784+
1. Create the Document entity model
881785
882786
In Visual Studio Code, create a new file in the existing `ContosoDashboard/Models/` folder: `ContosoDashboard/Models/Document.cs`
883787
@@ -896,7 +800,7 @@ Use the following steps to complete this task:
896800
897801
Position your cursor after the comment and press **Enter**. GitHub Copilot should generate the entity class. Review and accept the suggestion, or refine it as needed.
898802
899-
1. **Implement the document upload service:**
803+
1. Implement the document upload service
900804
901805
Create a new file in the existing `ContosoDashboard/Services/` folder: `ContosoDashboard/Services/DocumentService.cs`
902806

0 commit comments

Comments
 (0)