Skip to content
Back to skills

Design An Interface

ASecurity

Design-an-interface skill with N=3 parallel alternatives and architectural vocabulary. Use when designing a new module interface, when user mentions 'varias alternativas', 'design this module', or '/design-an-interface'.

  • 50 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsgobash

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add gonzalezpazmonica/savia --skill design-an-interface --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design An Interface?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design An Interface
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gonzalezpazmonica-design-an-interface/badge)](https://www.skillsdirectory.com/skills/gonzalezpazmonica-design-an-interface)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
layer: peripheral
name: design-an-interface
description: "Design-an-interface skill with N=3 parallel alternatives and architectural vocabulary. Use when designing a new module interface, when user mentions 'varias alternativas', 'design this module', or '/design-an-interface'."
metadata:
  # --- metadata.savia.* (SE-333) ---
  savia.attribution: "Clean-room re-implementation of mattpocock/skills/design-an-interface (MIT, 26.4k*). Prose and process are original."
  savia.maturity: beta
  savia.category: architecture
  savia.context: fork
  savia.context_cost: medium
  savia.priority: high
  savia.se: SE-087
  savia.tags: "architecture, interface-design, parallel-agents, sdd"
---

# Skill: Design an Interface

> **Attribution**: Clean-room re-implementation of `mattpocock/skills/design-an-interface` (MIT). SE-087.

Genera 3 disenos alternativos de interfaz en paralelo y consolida en tabla comparativa con recomendacion justificada.

## Authoritative Paths

> Lee estos paths antes de actuar.

| Para | Lee este path |
|---|---|
| Vocabulario arquitectonico | `docs/rules/domain/architectural-vocabulary.md` |
| Codigo existente del proyecto | `projects/<nombre>/` |
| Specs SDD activas | `docs/propuestas/SPEC-*.md` |
| Reglas de dominio | `docs/rules/domain/` |

## Cuando usar

- Se necesita disenar una interfaz nueva para un modulo y no hay precedente claro.
- Se quiere comparar enfoques antes de comprometerse con uno.
- La spec SDD requiere definicion de interfaz antes de implementar.

## Cuando NO usar

- La interfaz ya existe y solo necesita extension — leer el codigo y ampliar.
- El scope es un metodo privado o una funcion de utilidad (demasiado granular).
- La interfaz tiene un patron establecido en el proyecto — seguir el patron existente.

## Decision Checklist

1. El modulo esta definido con nombre y contexto de uso? Si NO: solicitar antes de continuar.
2. Hay restricciones conocidas (rendimiento, compatibilidad, framework)? Si NO: asumir ninguna y documentarlo.
3. Existe codigo relacionado en el proyecto? Si SI: designar como base para Diseno C.

### Abort Conditions

- Si el nombre del modulo es vago o el contexto insuficiente: pedir aclaracion y abortar.
- Si las restricciones implican un unico diseno posible: no lanzar alternativas, documentar la restriccion.

## Workflow

`Recibir → Lanzar 3 sub-agentes paralelos → Consolidar tabla → Recomendar`

### Sub-agentes en paralelo (mismo mensaje, sin dependencias)

Agent tool (Task en OpenCode) con `subagent_type=architect`; cada prompt incluye el vocabulario de SE-082.

**A — Maxima simplicidad**: minimo metodos, sin estado, facilidad de uso.
**B — Maxima flexibilidad**: extensible, plugin-friendly, facil de mockear.
**C — Pragmatico**: equilibrio A+B, inspirado en codigo existente del proyecto.

### Formato de output de cada sub-agente

```
Interface: <NombreInterfaz>
Methods:
  - <metodo>(<param>: <tipo>): <retorno>
Invariants:
  - <descripcion>
Trade-offs:
  + <ventaja>
  - <desventaja>
```

### Consolidacion

Tabla comparativa con columnas: Criterio | Diseno A | Diseno B | Diseno C.
Criterios minimos: numero de metodos, estado requerido, testabilidad, extension futura, coherencia con codigo existente.

### Recomendacion

Un parrafo usando vocabulario de `docs/rules/domain/architectural-vocabulary.md`:
- **Module**, **Interface**, **Seam**, **Depth**, **Leverage**, **Locality**.
- Justificar por que el diseno elegido maximiza Depth y Locality para el contexto dado.

## Outputs esperados

- Tabla comparativa de los 3 disenos.
- Recomendacion con justificacion en vocabulario arquitectonico.
- Opcionalmente: fichero `docs/propuestas/<modulo>-interface-design.md` si se requiere trazabilidad.
  Sin frontmatter no entra en `INDEX.md`. Con frontmatter, regenera el indice o el gate `--check` de validate-ci-local falla:

```bash
bash scripts/propuestas-index-gen.sh
```

## Memory hooks

Cuando la usuaria elige diseno, guardarlo (`--source` es obligatorio por SE-072; sin el, exit 1 y no se guarda nada):

```bash
bash scripts/memory-store.sh save --type decision --title "interface design: <modulo>" \
  --content "<diseno elegido y por que>" --source user:explicit
```

## Related

- Rule: `docs/rules/domain/architectural-vocabulary.md` (SE-082 — vocabulary obligatorio en outputs)
- SE-074: `scripts/parallel-specs-orchestrator.sh` — disenos grandes (>1h por agente). Solo acepta IDs de spec en `docs/propuestas/` (no hay "design tracks"): escribir cada alternativa como spec y planificar antes de lanzar:
  `bash scripts/parallel-specs-orchestrator.sh --dry-run <SPEC-A> <SPEC-B> <SPEC-C>`
- Skill: `.opencode/skills/spec-driven-development/SKILL.md`
- Agent: `.opencode/agents/architect.md`
- Roadmap: `docs/ROADMAP.md`

Files in this skill

  • DOMAIN.md1.8 KB
  • SKILL.md4.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…