Files
chemenu/kb/entities/COLLECTION.md
T
torben 177c7e9ce8
CI / verify (push) Successful in 55s
Release / release (push) Successful in 38s
feat: Prosa ist kein Identifier - Link-Taxonomie als Enum, generierte Regionen mit Markern (4.0.0)
Files changed:
- .gitea/workflows/ci.yml
- AGENTS.md
- CHANGES.md
- VERSION
- instructions/CONTRACT.md
- instructions/link-taxonomy.md
- instructions/migrations/4.0.0-link-taxonomy.md
- instructions/setup-instance.md
- kb/CONTRACT.md
- kb/CONVENTIONS.md
- kb/CONVENTIONS.md.template
- kb/comparisons/COLLECTION.md
- kb/concepts/COLLECTION.md
- kb/entities/COLLECTION.md
- kb/sources/COLLECTION.md
- tools/CONTRACT.md
- tools/README.md
- tools/chemenu/blocks.py
- tools/chemenu/cli.py
- tools/chemenu/commands/cite_cmd.py
- tools/chemenu/commands/dist_cmd.py
- tools/chemenu/commands/docs_verify.py
- tools/chemenu/commands/doctor.py
- tools/chemenu/commands/links_cmd.py
- tools/chemenu/commands/migrate_cmd.py
- tools/chemenu/commands/new_page.py
- tools/chemenu/commands/page_ops.py
- tools/chemenu/commands/run_budget.py
- tools/chemenu/commands/xref.py
- tools/chemenu/conventions.py
- tools/chemenu/corpus_diff.py
- tools/chemenu/frontmatter_io.py
- tools/chemenu/kb_collections.py
- tools/chemenu/kb_state.py
- tools/chemenu/links.py
- tools/chemenu/lint_core.py
- tools/chemenu/provenance.py
- tools/chemenu/sections.py
- tools/chemenu/tests/conftest.py
- tools/chemenu/tests/test_blocks.py
- tools/chemenu/tests/test_cite_cmd.py
- tools/chemenu/tests/test_conventions.py
- tools/chemenu/tests/test_dist_cmd.py
- tools/chemenu/tests/test_doctor.py
- tools/chemenu/tests/test_migrate_cmd.py
- tools/chemenu/tests/test_new_page.py
- tools/chemenu/tests/test_pipeline_l0.py
- tools/chemenu/tests/test_types_cmd.py
- tools/chemenu/tests/test_xref.py
- types/concept.schema.yaml
- types/entity.md
- types/entity.schema.yaml
- types/instruction.schema.yaml
- types/type-spec.md
- work/link-taxonomy-migration/README.md
- work/link-taxonomy-migration/plan.md
2026-09-02 18:39:22 +02:00

76 lines
3.6 KiB
Markdown

---
profile: entities
outbound:
entities: [depends-on, required-by, runs-on, hosts, uses, produces, consumes, maintains, owns, part-of, composition, supersedes, see-also]
concepts: [implements, exemplifies, rests-on, applies-when, operates-on, invokes, see-also]
sources: [evidenced-by, defined-in, see-also]
comparisons: [compares-with, see-also]
required_by_stack: false
---
# kb/entities/ - Collection Contract
Concrete things that exist: a project, a deployed system, a CLI tool, a technology, a person or
an organization. If it can be pointed at, it is an entity.
**Quality goal:** pointability + currency - a reader should come away knowing what the thing
is, where it actually is, and whether that is still true. An entity page that describes a
system correctly but names no host, path, version or status has not earned its keep.
Inherits [kb/CONTRACT.md](../CONTRACT.md) for the rules the stack enforces - linking mechanics,
provenance, citation, the confidence machinery - and
[kb/CONVENTIONS.md](../CONVENTIONS.md) for what this instance decided: language, naming forms,
tone, relationship labels, the confidence rubric. Neither is restated here.
## Types offered
`entity` (`tools/wikitool types describe entity`). The `entity_type:` field selects the area:
| Area | Holds |
|------|-------|
| `projects/` | Codebases and initiatives, named after their repository or common name |
| `systems/` | Deployed and running systems, given a descriptive name |
| `tools/` | CLI and desktop tools, named as the tool names itself |
| `technologies/` | Protocols, languages, formats, in their standard spelling and capitalization |
| `people/` | People and organizations, by full name or common handle |
These are areas, not collections: they inherit this contract and carry no `COLLECTION.md`.
## Per-area emphasis
- **Projects** - purpose, status, language/stack, owner, repository, dependencies on other
projects and systems, architectural decisions.
- **Systems** - purpose, components, dependencies, configuration locations, deployment,
operational status, monitoring.
- **Technologies** - purpose, use cases, trade-offs, version compatibility, which projects and
systems use it.
- **Tools** - purpose, installation, usage, notable options, which projects use it.
- **People** - role, affiliation, and the projects or decisions they are connected to. Nothing
personal beyond what the source states.
## Authorised labels
The `outbound:` block above is what `wikitool lint` and `xref add` check: which labels a page in
this collection may use, per destination. The catalogue they are drawn from - and what each one
asserts - is [instructions/link-taxonomy.md](../../instructions/link-taxonomy.md), which binds
nothing on its own.
Operational labels dominate here because an entity's relationships are mostly to other concrete things. `implements` points *out* to a concept; the concept does not point back unless that direction is a statement of its own.
Adding a label here is a deliberate contract change, not a way around a refusal.
## Outbound linking
An entity links to the technologies it uses, the systems it runs on, the projects that depend
on it, and the concepts it implements.
An entity that mentions a concept without linking it is incomplete; the concept page is where
the *why* lives, and the entity page should not restate it.
## What does not belong here
- A pattern, protocol, architecture or decision - those are concepts, even when only one entity
uses them.
- A page about a source document - that is a `source` page in `kb/sources/`.
- Singular naming is required: `ha-core.md`, not `ha-cores.md`.