Learn: Your Daily Developer Workflow
The Problem with Ad-Hoc Copilot Use
Without a workflow, every developer has a different Copilot habit:
- Some describe requirements in every prompt (slow)
- Some forget to add tests
- Some commit AI-generated code without reviewing
- Context is lost at the end of every session
This guide shows the single workflow every developer follows — beginner or senior.
Starting a New Issue
Morning: A new task comes in
Product: "We need to add rate limiting to the login endpoint"
Step 1: Open Copilot Chat → run /start-issue
This is always the first action. Enter the issue description and issue ID when prompted.
/start-issue will:
- Check
.github/copilot-instructions.mdfor your primary branch (dev,develop,main, etc.) - If not set, ask you once: “What is your team’s primary branch?” and save it permanently
- Show your current branch and ask: A) Stay here or B) Create fresh branch from primary
- If B: pull the latest from primary and create
<type>/042-login-rate-limiting - Run
npm testto confirm baseline is green - Create the work folder at
work/ISSUE-042-login-rate-limiting/withplan.mdandresult.mdtemplates - (If GitHub/GitLab repo) Offer to create a tracker issue (
gh/glabissue create) - Append entry to
logs/copilot/agent-activity.log - Hand off to the Discuss agent
Never manually
git checkout -bbefore defining requirements. Let/start-issuecreate the branch — it ensures you’re always branching from the freshest version of your primary branch.
Step 2: The Discuss agent detects your Git provider and defines requirements
"We need to add rate limiting to the login endpoint.
Max 5 attempts per 15 minutes per email address."
Answer Discuss’s focused questions — it takes about 10 minutes to lock in clear, agreed requirements.
Step 3: Discuss finishes → Research auto-starts
Copilot scans the codebase and finds relevant files and existing patterns. Updates work/ISSUE-042-login-rate-limiting/plan.md Phase 2.
Step 4: Review research findings, run /plan
The Planner creates a task checklist in Phase 3. Review each item — if anything looks wrong or is missing, say so now.
Step 5: Approve the plan, run /execute work/ISSUE-042-login-rate-limiting
Choose execution mode:
- Mode A (Agent Mode): Copy context bundle to new chat, implement, return to
/verify(best for complex features) - Mode B (TDD Agent): Strict Red-Green-Refactor in same chat (best for routine work)
Whichever mode completes: updates result.md Phase 4, optionally creates GitHub PR.
Step 6: Implementation finishes → run /verify work/ISSUE-042-login-rate-limiting
The Verify agent checks all requirements, tests, and docs — pass/fail report. Updates result.md Phase 5.
Step 7: Fix anything caught, then use /finish-branch to merge or create PR.
If GitHub repo: Offers to merge PR automatically with gh pr merge.
If GitLab repo: Offers to merge MR automatically with glab mr merge.
Resuming Work the Next Day
The most important habit: tell Copilot to read the work folder FIRST.
"Continue ISSUE-042. Read work/ISSUE-042-login-rate-limiting/plan.md and result.md first."
Copilot reads:
- Phase 1 requirements (what was agreed)
- Phase 2 research (what files are involved)
- Phase 3 plan (what tasks remain)
- Phase 4 progress (what’s done, what’s next)
No re-explaining. No “as we discussed” context setting. Just pick up from where you left off.
Working on an External API
This is the most specific workflow — external API work has a required prep step.
Before writing any code, open the external API doc:
"Read #docs/external-apis/dynamics/accounts.api.md"
Then run /add-new-api:
/add-new-api
→ Which external API? dynamics
→ Which entity? accounts
→ What operation? get by ID
The ApiBuilder agent reads the external API doc → writes transformer → writes wrapper → writes service → writes controller → writes tests.
Rule: Never open a wrapper file without first telling Copilot to read the external API doc.
Before Committing
Run these manually before every git commit:
npm test # all tests must pass
npm run lint # no lint errors
npx tsc --noEmit # no TypeScript errors
If you changed an endpoint:
/update-api-doc
Copilot reads the git diff and updates docs/apis/ for you.
Commit format:
feat: add rate limiting to login endpoint Fixes #42
Updated:
- docs/apis/auth/login.api.md (added 429 response, rate limit rules)
- work/ISSUE-042-login-rate-limiting/result.md (Phase 4 progress)
Code and docs in the same commit, always. Issue reference links commit to the tracker issue.
Step 5 — Requesting Code Review (/review)
Goal: Catch architectural or performance issues before they reach your lead.
What to do:
Before you create a PR, run the /review command. This dispatches a specialized code-reviewer agent that audits your diff against the requirements in the Issue doc.
How to act on feedback:
- Critical: Fix immediately.
- Important: Fix before merging.
- Minor: Note for a future issue.
Step 6 — Creating the PR
- Run
/verify— get the verification report - Fix every ❌ item the Verify agent found
- Run
/finish-branch— it re-runs tests, checks lint + TypeScript, confirms requirements, then presents options: Merge locally / Push PR/MR / Keep as-is / Discard - For PR/MR option:
gh pr create(GitHub) orglab mr create(GitLab) is run automatically with a description from the Issue doc - Request a teammate to review
The reviewer runs /code-review on the PR files for a systematic multi-dimension review.
Switching Between Issues
One Copilot session per Issue. When you switch Issues, start a fresh chat session.
# Finishing ISSUE-042
/verify → passed → merge or open PR → done for now
# Starting ISSUE-043
[New Copilot Chat session]
"Continue ISSUE-043. Read work/ISSUE-043-export-orders/plan.md and result.md first."
Mixing issues in one session causes context bleed — Copilot starts mixing requirements from different Issues.
Quick Command Reference
| Situation | Command |
|---|---|
| Starting a new Issue | /start-issue (creates branch + work folder) |
| Resuming an issue | “Read work/ISSUE-XXX/plan.md and result.md first” |
| Check current progress | /status |
| End of session | /summarize (save context to work folder) |
| Planning code | /plan |
| Implementing | /execute work/ISSUE-XXX (choose Mode A or B) |
| Adding external API | /add-new-api |
| Reviewing code | /code-review |
| Before PR | /verify work/ISSUE-XXX → /finish-branch |
| Changed endpoint | /update-api-doc |
| New endpoint | /generate-api-doc |
| After refactoring | /sync-docs (bulk doc updates) |
The Daily Checklist
Morning:
□ git pull (get latest from team)
□ Check open Issues in docs/issues/ — what's your priority today?
□ Open Copilot → read Issue doc → start where you left off
During work:
□ One session per Issue
□ Tests before implementation (TDD agent handles this in Mode B)
□ Commit with GitHub issue reference: "feat: <description> Fixes #XX"
□ Changed an external API call → update the external API doc first
End of day:
□ npm test — all green?
□ git push
□ /summarize (save session context to work folder)
□ Update result.md Phase 4 progress if needed
□ (Session auto-commit hook runs automatically when session ends)
What You Do NOT Need to Do
❌ Configure Copilot before each session (instructions load automatically)
❌ Explain your architecture in every prompt (instructions carry it)
❌ Remember external API field names (external API docs carry them)
❌ Write PR descriptions manually (GitHub CLI creates PRs with issue reference)
❌ Manually commit at session end (session-auto-commit hook does it)
Next: Hooks and Automation → 06-hooks-and-automation.md
Further Reading
- Git branching strategies — the branch-per-issue pattern this workflow uses
- Conventional Commits — the
feat:commit format explained - GitHub CLI — the
ghcommand used for issue/PR automation -
VS Code Copilot — Slash Commands — how prompt files become slash commands
← Part 04: Documenting External APIs · 📚 Learn Series · Part 06: Hooks and Automation →