DEV Community

Cover image for How I Used GitHub Copilot to Turn a Half-Finished Protocol Into a Certified Standard published
Rodrigo Giuliani
Rodrigo Giuliani

Posted on

How I Used GitHub Copilot to Turn a Half-Finished Protocol Into a Certified Standard published

GitHub “Finish-Up-A-Thon” Challenge Submission

This is a submission for the GitHub Finish-Up-A-Thon Challenge

What I Built

DoSync Protocol is an open-source communication protocol (Apache 2.0) that lets AI agents control physical devices using semantic intentions instead of commands. Instead of lock.unlock(), an AI agent says ensure_safety — and every registered device figures out its own role automatically.
The Python reference implementation was running in production on a Raspberry Pi 5. But a protocol with only one implementation isn't a standard — it's a library. The unfinished piece: a second independent Node.js implementation that could pass the DoSync certification suite.

Demo

GitHub: https://github.com/giulianireg-spec/dosync-protocol

VS Code with GitHub Copilot Chat suggesting the GET /v1/status endpoint on the right, and the terminal showing DoSync Standard certification passing 11/11 on the left

── Tier BASIC ─────────────────────────────────────────────
  ✓  Hub reachable — version 0.1.0
  ✓  Protocol version declared — dosync/0.1
  ✓  Device can register — registered
  ✓  Device appears in registry — 1 device registered
  ✓  Hub returns device detail — status=200
  ✓  Capability manifest has all required fields — all present
── Tier STANDARD — Intents and events ─────────────────────
  ✓  Hub accepts notify_family intent — 4 actions executed
  ✓  Intent resolves correctly — 4 actions processed
  ✓  Device can send event — received
  ✓  Hub rejects unknown intents with 422 — status=422
  ✓  Hub rejects unregistered device events with 404 — status=404
── Result ──────────────────────────────────────────────────
  Tests passed: 11
  Tests failed: 0
  ✓ CERTIFIED — DoSync STANDARD
Enter fullscreen mode Exit fullscreen mode

The Comeback Story

Before: The Node.js implementation (implementations/dosync-node) passed Basic certification (6/6 tests) — it could register devices and handle simple queries. But Standard tier was failing at test 1 because the server was missing GET /v1/status, the endpoint the certification suite uses to verify hub identity and protocol version.
Additionally, the certification CLI (certify.py) only supported HTTP — but the production hub runs on HTTPS with a local PKI. Running Standard tests against real infrastructure was impossible.
What changed:
certify.py — fixed to support real deployments:

HTTPS support with CA certificate validation via DOSYNC_CA_CERT
Bearer token injection via DOSYNC_TOKEN
Localhost detection: HTTP for local dev, HTTPS for remote
Connectivity test fixed to use /v1/status instead of / (which returns the HTML dashboard)

dosync-node — the missing endpoint, added with Copilot:

GET /v1/status — the single endpoint that unlocked Standard certification

After: dosync-node passes DoSync Standard certification (11/11). Two independent implementations in different languages, same protocol, same certification suite — the minimum criterion for an open standard.

My Experience with GitHub Copilot

Copilot contributed in two ways during this session.
Inline suggestions while editing certify.py. As I was modifying the HTTP helper to support HTTPS and token injection, Copilot's inline suggestions consistently anticipated the next line — the SSL context setup, the os.environ.get() calls, the exception handling pattern. It didn't write the logic, but it reduced the friction of writing boilerplate correctly on the first pass.
The endpoint that closed the gap. Once I identified that GET /v1/status was the missing piece, I asked Copilot Chat:

"I'm implementing the DoSync Protocol in Node.js. The certification suite requires a GET /v1/status endpoint that returns name, version, protocol, status, devices count, and audit_entries count. The existing code uses Fastify. Please add this endpoint following the same patterns already in the file."

Copilot read the existing file, identified the right variable names (registry, auditLog, VERSION, PROTOCOL), and generated:

javascript// GET /v1/status
app.get('/v1/status', async () => ({
  name:          'DoSync Hub',
  version:       VERSION,
  protocol:      PROTOCOL,
  status:        'running',
  devices:       registry.size,
  audit_entries: auditLog.length,
}))
Enter fullscreen mode Exit fullscreen mode

Correct variable names. Correct Fastify pattern. No hallucinations. The key was giving Copilot the right context: the spec requirement, the existing code pattern, and the constraint. It didn't need to invent — it needed to synthesize what was already there.
After accepting the suggestion, the certification run went from 0/11 to 11/11. GitHub Copilot helped close the gap between "protocol with one implementation" and "protocol with a certified standard."

Repository: https://github.com/giulianireg-spec/dosync-protocol
License: Apache 2.0

Top comments (0)