Add Pretty Table project: plan, accepted documents and code

Business Case, Stakeholder Analysis, Project Plan and milestone MIL-001
with review records RC-001 to RC-003, then the Python project: PrettyTable
Pokemon table, constants, pytest tests, pyproject.toml, Doxyfile, CI
workflow and README.

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6
Task: MIL-001#7
Task: MIL-001#8
This commit is contained in:
2026-10-07 12:02:59 +08:00
parent 115b6c64bf
commit b0a7414204
137 changed files with 6801 additions and 1 deletions
+27
View File
@@ -0,0 +1,27 @@
# Operation Contract (OC)
Cite in `CrossReference` only if the instance exists (`new-artifact.sh` checks this for you):
- **SSD** — **Required source**: each contract traces to exactly one SSD message
- **DM** — Classes/associations named in pre/postconditions
- **SD** — Forward: the design realizing each contract's postconditions
## Required sections (after Metadata / Version History)
One block per system operation, each containing:
1. **Operation** — complete signature: name, parameter types, return type
(must match the SSD message).
2. **Cross References** — the SSD message it traces to (one contract per
message) and the Domain Model concepts touched.
3. **Preconditions** — required state before execution, expressed in Domain
Model terms.
4. **Postconditions** — state changes only, in Larman's style: *instance
created / instance associated / attribute modified*. Declarative ("what"),
never algorithmic ("how"); avoid vague text like "system processes the
request".
5. **Exceptions** — error conditions, each with the failing precondition.
## Terminology
Use the IT terms from the dictionary (`DICT`), not the PO terms the Domain Model uses.