Skip to content

Feature: a ci step that checks the tutorial for cononical usage #18

Description

@nadvolod

Title: CI agent — Temporal canonical-usage review for tutorial PRs

▎ Goal: Block PRs from landing tutorial code that violates documented Temporal SDK rules.

▎ Scope: Every PR in temporalio/edu-* repos (and other repos opting in via
▎ .github/canonical-temporal-review.yml). Reviews these file types: *.py, *.go, *.java, *.ts, .cs,
▎ and .md for tutorial prose. Skips vendored, generated, and lock files.

▎ Rule source of truth: temporalio/skill-temporal-developer/references/{language}/
.md and
▎ references/core/
.md. Every finding must cite a specific section. docs.temporal.io and
▎ temporal.mcp.kapa.ai serve as secondary lookup, not as rule sources.

▎ Output: A GitHub Check Run with line-anchored annotations. One annotation per finding. Each finding
▎ includes:
▎ - Priority (High / Medium / Low — definitions in the appendix).
▎ - One-sentence problem statement.
▎ - One-line suggested fix.
▎ - Citation: skill-temporal-developer/{path}#section.
▎ - Annotations are scoped to lines changed in this PR, never to unchanged context.

▎ Gate behavior: Check Run fails on any High-priority finding (blocks merge by branch protection);
▎ Medium and Low are advisory.

▎ Coexistence: This agent owns Temporal-specific rules. Copilot reviewer keeps general code review.

▎ Failure mode: If the LLM provider is unavailable or token budget is exceeded, return a neutral
▎ check-run with a message asking for manual review. Never fail-open silently.

▎ Observability: Emit a metric per PR for: number of findings by priority, agent runtime, token cost,
▎ and dismissal rate (from the next push that resolves a finding).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions