You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
Record an ADR: skills are cut by capability, not by role #86 (skills are cut by capability, not by role) — records the
position this issue operates inside. Sequence the ADR first or in parallel:
this issue only makes sense once it is settled that independence is a
declared execution property rather than a new role.
[EPIC] Establish Agent Skills conformance and evaluation #65 — behavioural evaluation is where "did the gate actually run
independently" could ever be observed. features/skill-wiring.feature says it
explicitly: what an agent does with a skill cannot be verified there.
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 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.
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.mdis precise about when the gate runs(
## When to run it), what a blocker is, what a waiver is, and which automationtier established a finding. It never says from which context the authoritative
run must come. A search across all skills under
skills/andgeneral-semantic-contracts.mdfinds 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.mdhas the same agent implement thechange (
## 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 thecontext 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.mdstates the execution context itsauthoritative run requires, and that a result carries how it was produced.
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.mdkeeps 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.mdextends step 7: a reported result without itsexecution provenance is a review finding, like a finding without a
disposition or a blocker without its kind.
(
execution_context: fresh). Flat frontmatter keys work with the currentparser; 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:
implementation transcript in context), declared by the skill and satisfied by
whatever orchestrates it.
Relationship to other work
position this issue operates inside. Sequence the ADR first or in parallel:
this issue only makes sense once it is settled that independence is a
declared execution property rather than a new role.
independently" could ever be observed.
features/skill-wiring.featuresays itexplicitly: what an agent does with a skill cannot be verified there.
skills. This adds the missing execution property to that wiring.
layer belongs in that picture once it exists.
Acceptance criteria
authoritative result, and states it once — callers reference it rather
than restating it.
implement-issue-workflowdistinguishes the provisional self-check fromthe authoritative independent run at the integration gate.
pr-reviewtreats a missing execution provenance as a finding.proportionate size (apply Add an ADR proportionality gate to the architecture workflow #66).
skill-wiring.featurestill passes, and is extended if a new copy-prone rule appears.
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.