Propose AttributeValueType catalog research and CE-WP-0012.
Document gap vs InfoTechCanon Data Model stubs; plan consumer types time/datetime/amount/one-of/some-of aligned with a future ITC catalog.
This commit is contained in:
parent
154e48cdd2
commit
d4327b6be6
3 changed files with 388 additions and 2 deletions
184
workplans/CE-WP-0012-attribute-value-types.md
Normal file
184
workplans/CE-WP-0012-attribute-value-types.md
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
---
|
||||
id: CE-WP-0012
|
||||
type: workplan
|
||||
title: "Attribute value types — time, datetime, amount, one-of, some-of"
|
||||
domain: infotech
|
||||
repo: citation-evidence
|
||||
repo_id: a677c189-b4e2-4f2a-9e48-faa482c277e6
|
||||
topic_slug: citation_evidence_mvp
|
||||
topic_id: cee7bedf-2b48-46ef-8601-006474f2ad7a
|
||||
status: proposed
|
||||
owner: codex
|
||||
created: "2026-07-30"
|
||||
updated: "2026-07-30"
|
||||
depends_on_workplan: CE-WP-0011
|
||||
planning_order: 12
|
||||
planning_priority: high
|
||||
spec_refs:
|
||||
- wiki/AttributeValueTypes-proposal.md
|
||||
- workplans/CE-WP-0010-annotate-attributes-ux.md
|
||||
- ../info-tech-canon/seeds/InfoTechCanonDataModel_RC1_seed.md
|
||||
---
|
||||
|
||||
# CE-WP-0012 — Attribute Value Types
|
||||
|
||||
Extend Capture attributes beyond `text` / `textarea` / `date` with the types
|
||||
needed for real evidence work, aligned with a **canonical AttributeValueType
|
||||
catalog** (proposed under InfoTechCanon; interim consumer profile in
|
||||
`wiki/AttributeValueTypes-proposal.md`).
|
||||
|
||||
## Research summary (locked finding)
|
||||
|
||||
InfoTechCanon **Data Model** already defines **Attribute**, **Field**,
|
||||
**DataType**, **Representation**, and **CodeList**, but **DataType is a stub**
|
||||
and there is **no closed catalog** of application value types. Representation
|
||||
only lists open examples (`string`, `date`, `timestamp`, `code`, …).
|
||||
|
||||
Therefore: establish the catalog in InfoTechCanon (ITC-WP-0013), implement UI
|
||||
and persistence here as a **consumer**.
|
||||
|
||||
## User-requested types (MVP slice)
|
||||
|
||||
| Type | Purpose |
|
||||
|------|---------|
|
||||
| `time` | Clock time without date |
|
||||
| `datetime` | Date + time |
|
||||
| `amount` | Quantity with currency (or unit) |
|
||||
| `one-of` | Single choice from options |
|
||||
| `some-of` | Multi choice from options |
|
||||
|
||||
Keep existing: `text`, `textarea` (alias `text-long`), `date`.
|
||||
|
||||
## Goals
|
||||
|
||||
1. Schema + UI support for the MVP types above.
|
||||
2. Option lists for `one-of` / `some-of` editable in Capture.
|
||||
3. Wire encoding documented and round-tripped in capture-state + tests.
|
||||
4. No fork of type ids: prefer names from `wiki/AttributeValueTypes-proposal.md`
|
||||
once ITC catalog exists; until then use the proposal as interim canon.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Full ISO 11179 registry product.
|
||||
- Arbitrary JSON Schema forms.
|
||||
- Server-side validation service.
|
||||
- Publishing a shared npm package in this workplan (may follow).
|
||||
|
||||
## Dependency order
|
||||
|
||||
```
|
||||
T01 (decide wire encodings + finalize interim catalog in wiki)
|
||||
└─ T02 (extend FormFieldSchema + FieldDefinitionForm types)
|
||||
└─ T03 (widgets: time, datetime, amount)
|
||||
└─ T04 (widgets: one-of, some-of + options editor)
|
||||
└─ T05 (persist options; migrate legacy textarea if needed)
|
||||
└─ T06 (tests + demo schema examples)
|
||||
```
|
||||
|
||||
Parallel: **ITC-WP-0013** formalizes the catalog in info-tech-canon; CE may
|
||||
ship T01–T06 against the wiki proposal and remap ids if ITC renames.
|
||||
|
||||
---
|
||||
|
||||
## T01 — Finalize interim catalog + encodings
|
||||
|
||||
```task
|
||||
id: CE-WP-0012-T01
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
Resolve decision asks in `wiki/AttributeValueTypes-proposal.md` §8 with
|
||||
operator; freeze MVP wire forms for amount / one-of / some-of.
|
||||
|
||||
**Acceptance:** proposal §4 marked “accepted for CE MVP” (or amended).
|
||||
|
||||
---
|
||||
|
||||
## T02 — Schema extension
|
||||
|
||||
```task
|
||||
id: CE-WP-0012-T02
|
||||
status: todo
|
||||
priority: high
|
||||
depends_on: [T01]
|
||||
```
|
||||
|
||||
Extend `FormFieldSchema` / `FieldType` in evidence-binder:
|
||||
|
||||
- add `time`, `datetime`, `amount`, `one-of`, `some-of`
|
||||
- optional `options?: { id, label }[]` for choice types
|
||||
- optional amount metadata (default currency) if needed
|
||||
|
||||
**Acceptance:** typecheck green; FieldDefinitionForm lists new types.
|
||||
|
||||
---
|
||||
|
||||
## T03 — Scalar widgets (time, datetime, amount)
|
||||
|
||||
```task
|
||||
id: CE-WP-0012-T03
|
||||
status: todo
|
||||
priority: high
|
||||
depends_on: [T02]
|
||||
```
|
||||
|
||||
Render HTML `time`, `datetime-local` (or split date+time), and amount UI.
|
||||
Values persist as strings (or structured JSON for amount per T01).
|
||||
|
||||
**Acceptance:** add/edit/value round-trip for each type in DOM tests.
|
||||
|
||||
---
|
||||
|
||||
## T04 — Choice widgets (one-of, some-of)
|
||||
|
||||
```task
|
||||
id: CE-WP-0012-T04
|
||||
status: todo
|
||||
priority: high
|
||||
depends_on: [T02]
|
||||
```
|
||||
|
||||
- `one-of`: select or radio
|
||||
- `some-of`: checkbox group
|
||||
- options editor when defining the attribute
|
||||
|
||||
**Acceptance:** create attribute with options, select values, persist.
|
||||
|
||||
---
|
||||
|
||||
## T05 — Capture-state compatibility
|
||||
|
||||
```task
|
||||
id: CE-WP-0012-T05
|
||||
status: todo
|
||||
priority: medium
|
||||
depends_on: [T03, T04]
|
||||
```
|
||||
|
||||
- load/save options in capture-state
|
||||
- accept legacy sessions without options
|
||||
- document amount/some-of JSON in capture-persistence comments
|
||||
|
||||
---
|
||||
|
||||
## T06 — Tests + demo attributes
|
||||
|
||||
```task
|
||||
id: CE-WP-0012-T06
|
||||
status: todo
|
||||
priority: medium
|
||||
depends_on: [T05]
|
||||
```
|
||||
|
||||
- unit/DOM coverage for new types
|
||||
- optional demo schema fields exercising amount + one-of
|
||||
- `pnpm test` green
|
||||
|
||||
---
|
||||
|
||||
## Out of scope / follow-ups
|
||||
|
||||
- Align TypeScript const enum with published ITC YAML.
|
||||
- Evidence extraction helpers that suggest amount/date from PDF quotes.
|
||||
- Validation constraints (min/max, regex) as first-class UI.
|
||||
Loading…
Add table
Add a link
Reference in a new issue