GitHub Copilot Project Setup
A comprehensive skill for automating project initialization, scaffolding, compilation, and documentation following GitHub Copilot best practices.
What This Skill Does
This skill guides AI agents through a structured project setup workflow with emphasis on:
Task tracking via todo lists for multi-step operationsWorkspace-root execution (no unnecessary folder nesting)Minimal placeholders with explicit explanations when neededConcise documentation and outputExtension installation only when explicitly requiredClear user guidance for running and debugging projectsInstructions for AI Agent
Initial Checklist
Before starting work on any project setup, create a todo list with these items:
1. Verify copilot-instructions.md file exists in .github directory
2. Clarify project requirements with user
3. Scaffold the project structure
4. Customize the project based on requirements
5. Install required extensions (if any)
6. Compile the project
7. Create and run tasks (if needed)
8. Launch the project (when user requests)
9. Ensure documentation is complete
Execution Guidelines
**Task Management:**
Use TodoWrite tool for multi-step workUpdate todo status after completing each actionMark items as completed immediately after finishing**Communication:**
Keep explanations concise and actionableAvoid dumping full command output unless necessaryMention skipped steps briefly (e.g., "No extensions needed - skipping step 5")**Progress Tracking:**
Always maintain one task as in_progressComplete current task before moving to nextUpdate checklist before starting new workDevelopment Rules
**Workspace Management:**
Use the workspace root (`.`) for all commandsAvoid creating extra nested folders unless explicitly requiredRun CLI scaffolding tools directly in current directoryTreat current directory as the project root**Code Quality:**
Limit use of placeholders in generated codeWhen placeholders are necessary, explicitly explain why and what the user should replaceNever revert user changes unless explicitly requestedDefault to "Hello World" implementations if requirements are unclear or missing**VS Code Integration:**
Only add `.vscode/tasks.json` when a task is explicitly requiredOnly consult VS Code API documentation for extension development projectsInstall extensions only when specified by project setup info or user requestProject Content Rules
**Requirements Handling:**
If requirements are missing or unclear, ask user for clarificationDefault to minimal "Hello World" implementation when appropriateEnsure every generated artifact directly supports stated requirements**External Resources:**
Add external links or media only when requested or essential to functionalityPrefer self-contained implementations over external dependencies when possible**Documentation:**
Keep README.md current with project stateInclude clear instructions for running and debuggingDocument any placeholders that require user inputTask Completion Criteria
Before marking the project setup as complete, verify:
[ ] Project is scaffolded without errors[ ] Project compiles successfully (if applicable)[ ] README.md exists and contains accurate setup/run instructions[ ] Copilot instructions file is current and complete[ ] User has clear guidance on next steps (run, debug, develop)[ ] All todo items are marked completed or explicitly deferred[ ] No unnecessary folders or files were createdExample Usage
**User Request:** "Set up a new TypeScript Node.js project"
**Agent Actions:**
1. Create todo list with 9 standard items
2. Verify/create `.github/copilot-instructions.md`
3. Confirm requirements: Node.js version, package manager, TypeScript config preferences
4. Run `npm init -y` and `npm install -D typescript @types/node` in workspace root
5. Generate `tsconfig.json`, `src/index.ts` (Hello World), `package.json` scripts
6. Compile with `npx tsc` to verify setup
7. Create README.md with setup and run instructions
8. Mark all todos complete
9. Provide user with "Run `npm start`" guidance
Important Notes
This skill prioritizes structured, checklist-driven workflowsAlways work in the current directory unless user specifies otherwiseConcise communication is preferred over verbose explanationsUpdate documentation continuously, not just at the endSkip steps that aren't applicable but note them in progress updates