chore: deduplicate debate frontmatter with YAML anchor
CI / check (pull_request) Successful in 2m22s

Use &debater-frontmatter anchor for the shared oneOf schema between
proponent and opponent roles. Procedure blocks remain duplicated
since YAML anchors cannot be embedded inside block scalars.

capabilities: [] kept — required by WorkflowPayload type.

Addresses review suggestions from #133.
This commit is contained in:
2026-06-06 04:16:13 +00:00
parent d360b85374
commit 950dc056d8
+19 -30
View File
@@ -1,6 +1,23 @@
name: debate name: debate
description: "Multi-role structured debate with critical thinking framework and host summary." description: "Multi-role structured debate with critical thinking framework and host summary."
# Shared frontmatter schema for debater roles (YAML anchor)
x-debater-frontmatter: &debater-frontmatter
type: object
oneOf:
- properties:
$status: { const: speak }
argument: { type: string }
required: [$status, argument]
- properties:
$status: { const: conceded }
reason: { type: string }
required: [$status, reason]
- properties:
$status: { const: final }
closing: { type: string }
required: [$status, closing]
roles: roles:
proponent: proponent:
description: "Argues FOR the proposition" description: "Argues FOR the proposition"
@@ -33,21 +50,7 @@ roles:
4. Otherwise output $status: speak and counter the opponent's points. 4. Otherwise output $status: speak and counter the opponent's points.
5. Be rigorous, cite evidence, stay concise. 5. Be rigorous, cite evidence, stay concise.
output: "Debate argument" output: "Debate argument"
frontmatter: frontmatter: *debater-frontmatter
type: object
oneOf:
- properties:
$status: { const: speak }
argument: { type: string }
required: [$status, argument]
- properties:
$status: { const: conceded }
reason: { type: string }
required: [$status, reason]
- properties:
$status: { const: final }
closing: { type: string }
required: [$status, closing]
opponent: opponent:
description: "Argues AGAINST the proposition" description: "Argues AGAINST the proposition"
@@ -80,21 +83,7 @@ roles:
4. Otherwise output $status: speak and counter the proponent's points. 4. Otherwise output $status: speak and counter the proponent's points.
5. Be rigorous, cite evidence, stay concise. 5. Be rigorous, cite evidence, stay concise.
output: "Debate argument" output: "Debate argument"
frontmatter: frontmatter: *debater-frontmatter
type: object
oneOf:
- properties:
$status: { const: speak }
argument: { type: string }
required: [$status, argument]
- properties:
$status: { const: conceded }
reason: { type: string }
required: [$status, reason]
- properties:
$status: { const: final }
closing: { type: string }
required: [$status, closing]
host: host:
description: "Debate moderator — delivers impartial summary and verdict" description: "Debate moderator — delivers impartial summary and verdict"