37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# OTKO — specifications (this repo)
|
||
|
||
This folder holds **OTKO's own planning documents**. It is deliberately
|
||
separate from the greenfield rebuild spec set at
|
||
`~/Sync/otko-development/specifications` (docs `00`–`14`), which stays the
|
||
reference for *what a conformant rebuild looks like*. Requirement IDs of
|
||
the form `[AREA-NNN]` cited in this folder refer to that rebuild set.
|
||
|
||
## Why this folder exists
|
||
|
||
`~/Sync/otko` (this repo) is the **working, feature-rich app** and is the
|
||
primary deliverable. `~/Sync/otko-development` is a **greenfield rebuild**
|
||
that conforms closely to the rebuild specs but is less capable in several
|
||
areas (transient/pushover/response-spectrum, richer element/material
|
||
coverage, `.osmodel` corpus, HDF5). The goal of the plan below is to
|
||
**harvest the rebuild's good, spec-conformant capabilities into this app
|
||
without breaking what already works** — not to rewrite this app to the
|
||
rebuild's architecture.
|
||
|
||
## Documents
|
||
|
||
| # | Document | Purpose |
|
||
|---|---|---|
|
||
| 15 | [15-rebuild-adoption-plan.md](15-rebuild-adoption-plan.md) | Dependency-ordered plan for porting rebuild capabilities into this repo, with adoption matrix, phases, gates, risks and explicit skips. |
|
||
|
||
## Ground rules (summary — see doc 15 §3)
|
||
|
||
- **Additive, never replacement.** This repo is a superset of the rebuild
|
||
in the solver/runner/export surface; protect that.
|
||
- **Keep the working app working:** `.osmodel` format, AGPL-3.0 license,
|
||
Python 3.10–3.12 support, existing tests green.
|
||
- **Adapt, don't copy:** re-type ported code to this repo's APIs
|
||
(`StaticResults`/`ModalResults`, mutable `Project`, 4-value `UnitSystem`).
|
||
- **One phase = one branch = independently shippable**, each with its own
|
||
tests and gate.
|
||
- **License hygiene:** the rebuild is MIT, this repo is AGPL-3.0; MIT→AGPL
|
||
is compatible, but ported files need attribution (see doc 15 §7).
|