Relay workflow
Master workflow skill for Relay. Defines the end-to-end lifecycle for Power Platform projects: discovery → planning → review → adversarial pass → build → verification → deploy. Automatically triggered when Conductor starts a project.From its SKILL.md
npx -y skills add Genb2nu/Relay --skill relay-workflowAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.9 KB, as published. Nobody here has run it
Relay Workflow
Overview
Relay is an AI squad for Power Platform development. Specialist subagents collaborate through a structured workflow with quality gates at every handoff.
Phases
Phase 1 — Discovery
- Agent: Scout
- Input: User's project brief
- Output:
docs/requirements.md - Gate: User approves requirements
Phase 2 — Planning
- Agent: Drafter
- Input: Approved
docs/requirements.md - Output:
docs/plan.md,docs/security-design.md - Gate: The plan is explicit enough for Vault to build without inventing missing schema details
Phase 3 — Plan Review
- Agents: Auditor + Warden (can run in sequence)
- Input:
docs/plan.md,docs/security-design.md - Output: Structured review feedback
- Gate: Both return
{status: "approved"} - Loop: If either finds issues → Drafter revises → re-review
Phase 4 — Adversarial Pass
- Agent: Critic
- Input:
docs/plan.md,docs/security-design.md,docs/requirements.md - Output:
docs/critic-report.md - Gate: Critic returns
{status: "approved"} - Mode: Checklist first. Free-form only if checklist finds FAIL items.
- Loop: If issues → Drafter/Warden revise → re-run all three reviewers
- LOCK: After all three approve, checksum plan.md and security-design.md
Phase 5 — Build
- Agents: Vault (schema) + Stylist (design) + Forge specialists (apps/flows/code)
- forge-canvas → Canvas App screens
- forge-mda → Model-Driven App sitemap + forms
- forge-flow → Flow build guides (temporary — automation planned v0.6.x)
- forge-pages → Power Pages portals
- forge → Plugins, code apps, web resources, env vars
- Input: Locked
docs/plan.md,docs/security-design.md - Output: Dataverse schema, apps, flows, code in
src/ - Warden on-call: Available for security questions during build
- Fallback: If a build specialist cannot execute directly but returns exact scripts/artifacts, Conductor persists and runs them instead of treating the phase as failed immediately
Phase 6 — Verification
- Agents: Sentinel (functional) + Warden (security)
- Input: Built solution + locked plan + locked security design
- Output:
docs/test-report.md,docs/security-test-report.md - Gate: Both return passed status
- Loop: If issues → Forge specialist/Vault fix → re-verify
- On-demand: Critic can be invoked if material issues suggest plan was wrong
Phase 7 — Deploy
- Agent: Conductor (or Courier if available)
- Input: Verified solution
- Output: Exported managed solution, deployment summary
Phase 8 — Wrap
- Agent: Conductor
- Output: Summary to user with: what was built, security posture, open items
State Management
All state is stored in .relay/state.json, never in conversation memory.
Conductor reads this file at session start and updates it at every phase transition.
Token Discipline
- Subagents return 3–5 line summaries, not transcripts
- Pass file paths to subagents, not file contents
- Critic is checklist-first (cheap) then adversarial (expensive, only if needed)
- Plan phase and build phase should ideally run in separate sessions
- Use
/compactbetween phases if context grows large
Dataverse MCP — Tools Available to Vault, Warden, Analyst
When Dataverse MCP is connected, these tools are available:
| Tool | Used by | Purpose |
|---|---|---|
| list_tables | Vault, Analyst | Discover existing tables in the environment |
| describe_table | Vault, Analyst | Get schema of a specific table |
| create_record | Vault, Forge | Insert rows (seed data, test data) |
| read_query | Vault, Warden, Analyst, Sentinel | Query records with SELECT |
| update_record | Vault, Forge | Update existing rows |
| delete_record | Vault | Delete rows (cleanup, test data) |
| Create Table | Vault | Create new Dataverse table |
| Update Table | Vault | Modify table schema/metadata |
| search | Analyst | Full-text search across Dataverse |
| fetch | Analyst, Sentinel | Retrieve specific record by ID |
Connection URL pattern
https://<org-name>.crm5.dynamics.com/api/mcp
Org URL found at: make.powerapps.com → Settings gear → Session details → Instance URL
Enabling in Power Platform Admin Center
- PPAC → Environments → select env → Settings → Product → Features
- Enable: "Allow MCP clients to interact with Dataverse MCP server"
- Advanced Settings → enable "Microsoft GitHub Copilot" client