aoa-engineering-shape
Intent
Choose one shaping lens and return the smallest target-bound responsibility
boundary without installing an architecture framework by default.
Trigger boundary
Use this skill when:
- domain responsibilities are overloaded, stable rules are mixed with glue, or
a concrete dependency leaks across a meaningful seam
Do not use this skill when:
- the real task is source authority, decision history, verification, an
ordinary edit, or implementation after the boundary is already explicit
Inputs
- target system or code slice, target-specific owner surfaces, current responsibilities
- concrete ambiguity, repeated rule, or leaking dependency
Outputs
- exactly one typed mode result with boundary, interfaces, owner or unresolved
owner edge, migration edge,
verification need, unresolved question, and stop line
Procedure
Read references/contract.yaml and choose exactly one mode:
| Mode |
Select when |
Required procedure |
contexts |
Meanings, responsibilities, owners, or dual postures are overloaded. |
references/contexts.md |
core |
A stable rule is mixed with loading, rendering, orchestration, or infrastructure. |
references/core.md |
port-adapter |
A concrete database, API, filesystem, CLI, provider, or runtime detail leaks inward. |
references/port-adapter.md |
Read the selected reference completely. Do not load the other mode
procedures merely because their vocabulary appears nearby.
Bind owner only from a declaration that governs the target slice. An
unrelated authored surface, sibling route, recent file, or generated index
cannot supply the target owner. Keep owner: unresolved when that binding is
missing; never borrow a plausible owner.
Execute only the selected procedure. If another shaping mode is materially
necessary, finish the upstream result and hand its typed output to a later
task-local DAG node instead of blending modes.
Contracts
- owner facts remain with their owner; this bundle supplies procedure only
- proposed boundaries may continue with an unresolved owner, but cannot claim
adoption, placement authority, or an owner-specific destination
- one primary responsibility center; cross-relations stay explicit
- errors, fallback, and limits are part of a port contract, not hidden adapter
behavior
- a proposed boundary is not accepted architecture until its owner adopts it
Risks and anti-patterns
- generic clean-architecture diagrams without exact local responsibilities
- assigning a target owner from a nearby but unrelated authoritative file
- making directories, frameworks, or current technique names the semantic core
- creating a port with no consumer or a context map for a spelling fix
Verification
- confirm the selected mode matches the actual pressure
- cite the target-specific responsibility/rule/dependency and the exact owner
binding, or state that the owner remains unresolved
- state migration compatibility, what remains unresolved, and what this result
does not authorize
Stop after one reviewable boundary and next-owner question. Do not implement or
multiply abstractions unless the request separately authorizes that effect.
Adaptation points
Owners provide local vocabulary, interfaces, compatibility windows, and
validation commands. Those facts remain owner data, not forks of this skill.
1---2name: aoa-engineering-shape3description: Shape one software responsibility boundary through bounded-context, core-boundary, or port-adapter mode. Use when responsibilities, reusable rules, orchestration, or concrete dependencies are entangled and a small owner-aware boundary is needed before implementation. Do not use for source-authority lookup, ordinary edits, test design, or a boundary that is already clear.4---56# aoa-engineering-shape78## Intent910Choose one shaping lens and return the smallest target-bound responsibility11boundary without installing an architecture framework by default.1213## Trigger boundary1415Use this skill when:1617- domain responsibilities are overloaded, stable rules are mixed with glue, or18 a concrete dependency leaks across a meaningful seam1920Do not use this skill when:2122- the real task is source authority, decision history, verification, an23 ordinary edit, or implementation after the boundary is already explicit2425## Inputs2627- target system or code slice, target-specific owner surfaces, current responsibilities28- concrete ambiguity, repeated rule, or leaking dependency2930## Outputs3132- exactly one typed mode result with boundary, interfaces, owner or unresolved33 owner edge, migration edge,34 verification need, unresolved question, and stop line3536## Procedure37381. Read `references/contract.yaml` and choose exactly one mode:3940 | Mode | Select when | Required procedure |41 |---|---|---|42 | `contexts` | Meanings, responsibilities, owners, or dual postures are overloaded. | `references/contexts.md` |43 | `core` | A stable rule is mixed with loading, rendering, orchestration, or infrastructure. | `references/core.md` |44 | `port-adapter` | A concrete database, API, filesystem, CLI, provider, or runtime detail leaks inward. | `references/port-adapter.md` |45462. Read the selected reference completely. Do not load the other mode47 procedures merely because their vocabulary appears nearby.483. Bind owner only from a declaration that governs the target slice. An49 unrelated authored surface, sibling route, recent file, or generated index50 cannot supply the target owner. Keep `owner: unresolved` when that binding is51 missing; never borrow a plausible owner.524. Execute only the selected procedure. If another shaping mode is materially53 necessary, finish the upstream result and hand its typed output to a later54 task-local DAG node instead of blending modes.5556## Contracts5758- owner facts remain with their owner; this bundle supplies procedure only59- proposed boundaries may continue with an unresolved owner, but cannot claim60 adoption, placement authority, or an owner-specific destination61- one primary responsibility center; cross-relations stay explicit62- errors, fallback, and limits are part of a port contract, not hidden adapter63 behavior64- a proposed boundary is not accepted architecture until its owner adopts it6566## Risks and anti-patterns6768- generic clean-architecture diagrams without exact local responsibilities69- assigning a target owner from a nearby but unrelated authoritative file70- making directories, frameworks, or current technique names the semantic core71- creating a port with no consumer or a context map for a spelling fix7273## Verification7475- confirm the selected mode matches the actual pressure76- cite the target-specific responsibility/rule/dependency and the exact owner77 binding, or state that the owner remains unresolved78- state migration compatibility, what remains unresolved, and what this result79 does not authorize8081Stop after one reviewable boundary and next-owner question. Do not implement or82multiply abstractions unless the request separately authorizes that effect.8384## Adaptation points8586Owners provide local vocabulary, interfaces, compatibility windows, and87validation commands. Those facts remain owner data, not forks of this skill.