feat: add standards wiki, MCP registry, and app template
This commit is contained in:
57
standards_src/wiki/12_genericity_matrix.md
Normal file
57
standards_src/wiki/12_genericity_matrix.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Genericity Matrix
|
||||
|
||||
## Summary
|
||||
|
||||
This page states precisely what is **reusable as-is**, what is a **template to
|
||||
adapt**, and what is **app-specific and must be authored**. Use it to scope a
|
||||
new build.
|
||||
|
||||
---
|
||||
|
||||
## Reusable as-is (do not rewrite)
|
||||
|
||||
| Area | Artifact |
|
||||
|---|---|
|
||||
| Layering & dependency rule | the package layout and import rules |
|
||||
| Composition root | the `init.py` shape, idempotency, `get_svc` overloading |
|
||||
| Web edge | `OpenAPIFirstApp` bootstrap, handler-name = `operationId`, thin handlers |
|
||||
| CRUD slice | the four-file pattern (model / ports-db / ports-service / converters) |
|
||||
| Generic CRUD service | the base service adaptor |
|
||||
| Repository factory | base / populating / cached selection |
|
||||
| Worker | the poll loop, backoff, retry, status machine |
|
||||
| Progress bus | the bus port + in-memory adapter + streaming endpoint |
|
||||
| Human-in-the-loop | the durable pause + question document + resolve endpoint + resume map |
|
||||
| Infra adaptors | HTTP cache decorator, KV store port, LLM pool scaffold |
|
||||
| Testing | integration harness with fakes, fixture-parity pattern |
|
||||
| Docs | GSDFC + generated stubs + MCP bundle pipeline |
|
||||
|
||||
## Template to adapt (copy, then change names)
|
||||
|
||||
| Artifact | Change |
|
||||
|---|---|
|
||||
| `pyproject.toml` | project name, dependencies |
|
||||
| `Dockerfile` / `docker-compose.yaml` | service name, ports, services |
|
||||
| `.env.example` | connection strings, provider keys |
|
||||
| `openapi.yaml` | every path/schema/operationId |
|
||||
| `scripts/` | seed and operator tasks |
|
||||
|
||||
## App-specific (must be authored)
|
||||
|
||||
| Artifact | Why |
|
||||
|---|---|
|
||||
| Resource models | the business shape |
|
||||
| Repository populate/cache rules | the relationships |
|
||||
| Service business logic | domain behaviour |
|
||||
| Pipeline families (if any) | the transformation graph |
|
||||
| Pattern/rule resources | data-driven policy |
|
||||
| Fixtures & golden outputs | test data |
|
||||
|
||||
## The two axes
|
||||
|
||||
Everything app-specific reduces to **two axes**:
|
||||
|
||||
1. **Resource model** — the set of resources, their fields, relationships, and
|
||||
the OpenAPI contract.
|
||||
2. **Pipeline family** — only if inputs require multi-step transformation.
|
||||
|
||||
If you can specify those two axes, the rest of the app follows mechanically.
|
||||
Reference in New Issue
Block a user