Un producto de software
El ejemplo desarrollado que distribuye Eidos: un subconjunto de YouTube: ver un vídeo, reanudarlo, subir a un canal, suscribirse a uno. Producto suficiente para ser real, lo bastante pequeño para leerlo de una sentada.
El árbol
Sección titulada «El árbol»DirectorioBlueprints/
- README.md
Directorio_eidos/
Directorioshapes/
- frame.architecture.md
- frame.audience.md
- frame.criteria.md
- frame.market.md
- spec.full.md
- spec.micro.md
Directorioroles/ framework-owner, developer, designer, project-manager, stakeholder
- …
- Framework.md
- me.md personal, en gitignore
Directorioframes/
- index.md
- architecture.md
- audience.md
- criteria.md
- market.md
Directoriospecs/
- index.md
Directorioplayback/
- watch-a-video.md
- resume-playback.md
Directoriochannels/
- upload-a-video.md
- subscribe-to-a-channel.md
- roadmap.md un documento de nivel superior
- blueprint-map.canvas generado
Qué declara el Framework
Sección titulada «Qué declara el Framework»### specs
The product's units, one per blueprint, grouped by domain.
- **Leaf:** [specs/index.md](../specs/index.md)- **Flavors:** - [full](shapes/spec.full.md) — the complete spec shape (default). - [micro](shapes/spec.micro.md) — Intent, Open Questions, ACs, Out of Scope.- **Canvas:** card from `## Intent`- **Domains:** - **playback** — watching a video, and picking up where you left off. - **channels** — publishing to a channel, and following one.Dos dominios, así que specs/ tiene dos subcarpetas y cada spec lleva
domain: playback o domain: channels coincidiendo exactamente con su carpeta.
El shape de spec
Sección titulada «El shape de spec»spec.micro |
spec.full |
|---|---|
## Intent |
## Intent |
### Assumptions |
### Assumptions |
| — | ### Implementation Notes |
## Open Questions |
## Open Questions |
## Behaviors & Acceptance Criteria |
## Behaviors & Acceptance Criteria |
| — | ### Functional · ### Performance · ### Design · ### External interface · ### Quality attributes |
## Out of Scope |
## Out of Scope |
| — | ## Dependencies · ## Testing · ## Constraints & Decisions |
Sus propiedades personalizadas
Sección titulada «Sus propiedades personalizadas»| Nombre | Tipo | Applies To | Significado |
|---|---|---|---|
status |
Text | all | Draft / Intake / In Progress / Done / Archived / Deprecated |
date_created · date_modified |
Date | all | YYYY-MM-DD |
tags |
List | all | Etiquetas libres |
domain |
Text | specs |
La agrupación, coincidiendo con la subcarpeta |
depends_on |
List | specs |
Blueprints que este necesita, cada uno un enlace |
type |
Text | specs |
Etiqueta blanda: feature, capability, integration |
Un Blueprint real
Sección titulada «Un Blueprint real»---id: watch-a-videotitle: Watch a Videosummary: play a video reliably, signed in or not, adapting to the connection.type: featuredomain: playbackstatus: Intakedepends_on: [video-catalog, cdn-delivery]tags: [playback]---
# Watch a Video
## Intent
A view is the core action of the whole product. If a video is slow to startor stalls, the viewer leaves — so what "playing a video" means, and what aviewer can count on, is the first thing to pin down. It must hold whether theviewer is signed in or arrived from a shared link.
### Assumptions
Assuming adaptive-bitrate delivery over the CDN is available and affordableat launch scale — if it isn't, the whole playback approach changes.
## Open Questions
- How long should a signed playback URL stay valid before it has to refresh?- Does a view count on play start, or only after a watch-time threshold?
## Behaviors & Acceptance Criteria
### Functional
- **AC1:** A viewer opens a video and the player loads with its title, channel, and controls.- **AC3:** A signed-out viewer who opens a shared link can still watch.
### Quality attributes
- **AC7:** A stalled segment recovers by dropping quality rather than stopping playback.- **AC8:** A view is counted at most once per viewer per video within a window — replays and seeks don't inflate it.
## Out of Scope
- No comments, ratings, or next-up recommendations on the watch page.Qué están haciendo los no-objetivos
Sección titulada «Qué están haciendo los no-objetivos»La spec hermana, resume-playback.md, lleva una línea:
## Out of Scope
- Cross-account resume. A shared TV is one device, not one person.Doce palabras que evitan que una petición de funcionalidad plausible se registre como error, registran el razonamiento para que un lector futuro pueda ver si sigue valiendo, y terminan una discusión antes de que ocurra. Por qué los no-objetivos son los que más pesan →
Léelo entero
Sección titulada «Léelo entero»La raíz completa está en el repositorio:
examples/Blueprint/.
Siguiente
Sección titulada «Siguiente»- Un programa de investigación: la misma maquinaria, otras palabras.
- Un libro