This document describes how GitHub Copilot was used throughout the development and improvement of the SESAP platform for the Agents League — Creative Apps Track competition.
GitHub Copilot served as a core development partner across every phase of the SESAP project — from codebase analysis and architecture decisions to code implementation, testing, and documentation. The MCP server integration makes SESAP a tool that Copilot can use directly, creating a bidirectional relationship: Copilot builds SESAP, and SESAP extends Copilot's capabilities.
Copilot was used to perform deep analysis of the entire SESAP codebase to understand the architecture, dependency chains, and data flow before making any changes. This included:
- Dependency graph tracing: Mapped the full data flow from transcript upload → LLM pipeline → Accord rendering → HTML preview
- State management audit: Analyzed the Zustand store's
rebuild()debounce pattern, cancelation handling, and editor/applied state separation - Accord Project integration review: Traced how Concerto models, TemplateMark templates, and JSON data flow through both the browser-side and server-side Accord engines
- Tech debt identification: Found dead files, unused directories, outdated environment variables, and debug logging left from development
Copilot drove the entire cleanup process across multiple files:
- Dead code removal: Identified and removed build logs, empty directories, unused config files, and orphaned constants
- Console.log cleanup: Analyzed 13+ debug logging statements across
store.ts,App.tsx, andmain.tsx, removing[DEBUG]-prefixed logs while preserving production-appropriate[Store],[API], and[Accord]prefixed logging - Environment sanitization: Rewrote
.env.examplefrom scratch, removing 15+ outdated variables (WEB3AUTH, PostgreSQL, Blockchain, NextAuth) and keeping only the 6 MVP-required Azure AI Foundry variables - .gitignore hardening: Added patterns for build logs and ensured
.env.examplewas explicitly included while.envremained excluded
The MCP server is the key differentiator for the competition. Copilot was instrumental in building it:
- SDK research: Used Copilot to query the
@modelcontextprotocol/sdkv1.26.0 documentation, discovering the correct import paths (@modelcontextprotocol/sdk/server/mcp.jsvs the v2 split packages) and theserver.tool()/server.resource()registration API - Architecture design: Structured the MCP server as three files (
index.ts,tools.ts,resources.ts) following separation of concerns - Tool implementation: Built three tools that reuse existing server modules:
generate_contract: Wraps the 3-step LLM pipeline fromtranscript-to-contract.tsrender_contract: Wraps the Accord engine fromserver/accord/engine.tsvalidate_contract: Validates Accord artifacts without full generation
- Resource implementation: Created two resources providing sample data and platform documentation
- Integration testing: Verified the server starts without errors and handles the stdio transport correctly
Copilot generated comprehensive test suites that significantly improved code quality:
- Zod schema tests (19 tests): Validated every schema in
server/schemas/contract.ts—ContactSchema,PartySchema,PhaseSchema,ContractStructureSchema,AccordArtifactsSchema,ValidationResultSchema— testing both valid data and rejection of invalid inputs stripNullValuestests (13 tests): Tested the critical null-stripping utility that bridges LLM output (which usesnull) with Concerto (which expects field omission). Covered edge cases including$classpreservation, nested objects, arrays with null elements, and deeply nested LLM output structures- Store utility tests (17 tests): Tested
formatError(Concerto-style errors, nested errors, string errors),isCancelation(debounce type guard), andgetInitialTheme(localStorage persistence) - Result: Test count increased from 4 to 53, all passing
Copilot authored all documentation changes:
- Sensitive content audit: Reviewed 12 internal documents for PII, proprietary pricing, real client data, and business-specific content. Identified and removed files containing real names, financial data, and meeting recordings
- README rewrite: Created a competition-grade README with architecture diagrams, pipeline visualization, quick start guide, MCP server documentation, tech stack table, and project structure overview
- Instruction files: Rewrote
.github/instructions/TroubleShooting.instructions.mdandImplementation.instructions.mdwith SESAP-specific context, architecture diagrams, gotchas, and investigation protocols - Competition strategy: Created
docs/AGENTS_LEAGUE_STRATEGY.mdwith codebase audit, rubric analysis, and phased implementation plan
Copilot analyzed the Agents League competition requirements and created the implementation strategy:
- Track selection: Evaluated all three tracks (Creative Apps, Reasoning Agents, Enterprise Agents) against SESAP's capabilities and recommended Creative Apps
- Rubric mapping: Analyzed the judging criteria (Accuracy 20%, Reliability & Safety 20%, UX & Presentation 15%, etc.) and mapped each to specific implementation tasks
- Risk assessment: Identified risks (judges unfamiliar with Accord Project, build issues for evaluators, MCP being too new) with mitigation strategies
- GitHub issue creation: Generated 9 GitHub issues with labels, priorities, and detailed descriptions for systematic execution
| Mode | Use Case |
|---|---|
| Chat | Architecture analysis, debugging, code review, strategy discussions |
| Inline completions | Code generation within editors |
| Agent mode (@workspace) | Multi-file codebase searches, cross-reference analysis |
| MCP tools | After building the MCP server — using SESAP's own tools via Copilot |
Copilot researched the MCP SDK transport options and recommended stdio over HTTP/SSE because:
- VS Code natively manages stdio MCP servers via
.vscode/mcp.json - No port conflicts or CORS configuration needed
- Process lifecycle is managed by the editor
- Environment variables are passed cleanly from the shell
Copilot identified that importing server/api.ts directly in tests would trigger Express server startup (side effects). Instead, the function was re-implemented in the test file to test the logic in isolation — a pattern that avoids test environment pollution.
Copilot verified through the OpenAI SDK documentation that structured output requires all fields to be required. The workaround is using .nullable() so optional fields are represented as null in the JSON, then stripped by stripNullValues() before passing to Concerto.
| Metric | Before | After |
|---|---|---|
| Unit tests | 4 | 53 |
| Debug console.logs | 13+ | 0 |
| Dead files/dirs | 9+ | 0 |
| Internal docs with PII | 12 | 0 |
| MCP tools | 0 | 3 |
| MCP resources | 0 | 2 |
| README sections | 5 | 15+ |
| .env.example vars | 20+ (outdated) | 6 (current) |