Skip to content

Model execution independence as a declared property of gate skills #87

Description

@dieterbaier

Problem

A Convergence Check result is only worth as much as the independence of whoever
produced it. Today nothing in the toolkit says anything about that.

skills/convergence-check/SKILL.md is precise about when the gate runs
(## When to run it), what a blocker is, what a waiver is, and which automation
tier established a finding. It never says from which context the authoritative
run must come. A search across all skills under skills/ and
general-semantic-contracts.md finds no notion of execution context at all —
no skill declares who executes it or what that executor may already know.

The consequence is visible in the workflow that owns the gate moment:
skills/implement-issue-workflow/SKILL.md has the same agent implement the
change (## Implement), record a provisional result (## Create the PR,
step 6), and then run the authoritative check before integration
(## PR Integration). The authoritative run therefore happens inside the
context that produced the change it is judging.

Why this matters

An agent that carries the implementation dialog cannot check its own work
neutrally, no matter how well the skill is written. It shares the assumptions
that produced the artifacts, so a contradiction between two artifacts reads as
consistent from inside that context.

This is the one thing role-based agent architectures genuinely get right:
independence is an execution property, and prose cannot enforce it.

What this is not

This is not a proposal to decompose the toolkit into planner/coder/reviewer
agents, and not a proposal for a role-based skill taxonomy. The skill cut stays
capability-oriented — that position belongs to its own ADR (see below). This
issue extracts the single property that a role provides and that a capability
cut currently cannot express.

Scope

  • skills/convergence-check/SKILL.md states the execution context its
    authoritative run requires, and that a result carries how it was produced.
  • The gate reports its execution provenance next to its result:
    independent of the implementation, or produced from the implementation
    context. Same spirit as the automation boundary — a result whose provenance is
    unstated claims something it cannot know. A result produced from the
    implementation context is not invalid; it is a result with a named weakness,
    and hiding that weakness is the defect.
  • skills/implement-issue-workflow/SKILL.md keeps the provisional self-check
    (step 6 already marks it provisional — that part is correct today) and
    requires a fresh context for the authoritative run before integration.
  • skills/pr-review/SKILL.md extends step 7: a reported result without its
    execution provenance is a review finding, like a finding without a
    disposition or a blocker without its kind.
  • Decide whether the declaration is prose only or also skill frontmatter
    (execution_context: fresh). Flat frontmatter keys work with the current
    parser; anything richer depends on Use YAML parser for richer skill frontmatter #52.

Open question this issue owns

What does "fresh" mean operationally, and what evidences it?

The toolkit cannot verify the claim — it has no execution layer for prose
contracts. It can only require the claim, define what it asserts, and make its
absence visible. That limitation is a standing property of the medium, not a
blocker on this change; the Convergence Check's own rule ("a standing limitation
is not this change's blocker") applies to the gate describing itself here.

Decide whether the honest minimum is:

  • a self-declared provenance line, or
  • a named condition the runtime must satisfy (separate session, no
    implementation transcript in context), declared by the skill and satisfied by
    whatever orchestrates it.

Relationship to other work

Acceptance criteria

  • The Convergence Check states the execution context required for an
    authoritative result, and states it once — callers reference it rather
    than restating it.
  • Every reported result carries its execution provenance.
  • implement-issue-workflow distinguishes the provisional self-check from
    the authoritative independent run at the integration gate.
  • pr-review treats a missing execution provenance as a finding.
  • The open question above is answered and the answer is recorded at a
    proportionate size (apply Add an ADR proportionality gate to the architecture workflow #66).
  • The declaration is not duplicated across skills; skill-wiring.feature
    still passes, and is extended if a new copy-prone rule appears.
  • No role-based skill taxonomy is introduced.

Origin

Raised on 2026-09-04 while comparing this toolkit with a role-based
"software factory" agent architecture (planner / coder / reviewer). The
comparison confirmed the capability cut and isolated independence as the one
property the role cut provides that the toolkit currently cannot express.
Backed by usage evidence: an implementation plus its own Convergence Check
looked plausible, while an independent review still found contradictions.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions