Skip to content

Record an ADR: skills are cut by capability, not by role #86

Description

@dieterbaier

Problem

The toolkit cuts its skills by lifecycle capability and verifiable outcome —
architecture-impact, bdd-specification, implement-issue-workflow,
pr-review, convergence-check. It deliberately does not cut them by
persona (planner, coder, reviewer), which is the common alternative in
role-based "software factory" agent architectures.

That is a real architectural decision. It constrains how every future skill is
shaped, and it is currently recorded nowhere. AGENTS.md describes the contract
order, README.md presents capabilities, and the skills embody the cut — but no
artifact says why the cut is capability-oriented, or what was rejected.

Anyone adopting the toolkit next to a role-based agent platform will ask this,
and the answer is currently reconstructed from scratch each time.

Proportionality check (#66)

Applying the decision test from #66 — without this record, would a later
contributor probably make a materially different decision?

  • Reversal is costly: every skill would have to be re-cut and every
    cross-skill delegation re-wired.
  • It constrains multiple future changes: it decides the shape of every skill
    added from here on.
  • It establishes a cross-cutting rule: skills describe work, not workers.
  • The rejected alternative is plausible and will recur: role-based agent
    architectures are widespread and organisationally attractive.

All four apply. An ADR is the proportionate record, not prose in AGENTS.md.

Decision to record

Skills are cut by lifecycle capability and verifiable outcome, never by persona.

Roles may legitimately exist as an orchestration layer above the toolkit:
separate agents for planning, implementation and review are a sound runtime
choice, and they bring real benefits — context limitation, permission
limitation, and independence. What they must not have is separate process
truth
. A role consumes the canonical skills; it does not own a copy of the
lifecycle.

Options the ADR should compare

  1. Capability-cut skills, roles as orchestration above (proposed).
  2. Persona-cut skill sets — one skill stack per role.
  3. Hybrid with per-role copies of shared process rules.

Criteria worth putting in the Pugh matrix: single source of process truth, drift
cost when the lifecycle changes, skill reusability across tasks, independence of
verification, organisational mappability (option 2 genuinely wins here — a role
maps onto a team, a permission set and an audit trail, and the ADR should say so
rather than pretending the rejected option has no merit), and context cost.

Relationship to ADR-005

ADR-005-engine-independent-skills makes the same shape of argument one level
down: skills stay independent of any one AI engine, and engine specifics live
in adapters. This decision keeps them independent of any one agent persona,
with personas living in an orchestration layer.

Decide whether the new ADR refines ADR-005 or stands beside it, and record only
authoritative outgoing relations (see #1).

Consequences to record

  • Independence of verification, which the role cut would have provided for free,
    must be modelled explicitly instead — see Model execution independence as a declared property of gate skills #87 on execution
    independence.
  • Adapters stay thin and generated; they route, they do not acquire personas.
  • A future role-based consumer of the toolkit is supported, not excluded.

Scope

  • One ADR under src/docs/arc42/09-architecture-decisions/, authored with
    skills/adr/SKILL.md.
  • status: proposed, reviewed: false — AI-assisted, and not accepted
    architecture truth until the accountable owner reviews it.
  • Authoritative outgoing relations only; regenerate the derived views and the
    ADR index.
  • Reference the canonical rules rather than restating them.
  • Do not restate the decision in AGENTS.md or in the skills; if an operational
    rule falls out of it, that rule belongs in general-semantic-contracts.md
    once, and the ADR links to it.

Relationship to other work

Acceptance criteria

  • An ADR records the capability-over-persona cut, its drivers, the rejected
    options and their honest trade-offs, including where the persona cut is
    genuinely better.
  • The relationship to ADR-005 is decided and recorded as an outgoing
    relation.
  • The consequence for independent verification is recorded and linked to
    the companion issue.
  • Status is proposed and reviewed: false.
  • Metamodel validation, generation and render checks pass; the ADR index
    includes the new decision.
  • No duplicated decision text in AGENTS.md, README.md or the skills.

Origin

Raised on 2026-09-04 while comparing this toolkit with a role-based
"software factory" agent architecture. The comparison showed the position is
sound but undocumented, and that the argument has to be made from first
principles every time it comes up.

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

    architecturedocumentationImprovements or additions to documentationpriority:p3Metamodel and contract consistency

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions