citation-evidence/workplans/CE-WP-0012-attribute-value-types.md
codex 40a876db99
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
fix(workplans): adopt ADR-007 derived identifiers for unregistered records
These workplans exist only in the retired local hub. Their random pre-ADR-007
identifiers are refused by C-06 as stale references, so they cannot be
registered. Deriving from the canonical record id takes no identity from
anything: central does not hold them and the old ids die with the cache.

Records central already holds were deliberately left untouched.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-25 20:07:52 +02:00

5.2 KiB
Raw Blame History

id type title domain repo repo_id topic_slug topic_id status owner created updated depends_on_workplan planning_order planning_priority spec_refs state_hub_workstream_id
CE-WP-0012 workplan Attribute value types — time, datetime, amount, one-of, some-of infotech citation-evidence a677c189-b4e2-4f2a-9e48-faa482c277e6 citation_evidence_mvp cee7bedf-2b48-46ef-8601-006474f2ad7a finished codex 2026-07-30 2026-07-30 CE-WP-0011 12 high
wiki/AttributeValueTypes-proposal.md
workplans/CE-WP-0010-annotate-attributes-ux.md
../info-tech-canon/seeds/InfoTechCanonDataModel_RC1_seed.md
46704d45-5ee2-5f8d-a0e7-ddeb931ffa27

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 T01T06 against the wiki proposal and remap ids if ITC renames.


T01 — Finalize interim catalog + encodings

id: CE-WP-0012-T01
status: done
priority: high
state_hub_task_id: "2df0deb2-0e99-591d-9de1-36c98789c741"

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

id: CE-WP-0012-T02
status: done
priority: high
depends_on: [T01]
state_hub_task_id: "6f2369e8-aa52-5540-9362-19d558a17637"

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)

id: CE-WP-0012-T03
status: done
priority: high
depends_on: [T02]
state_hub_task_id: "18f3c81f-5f52-5635-bd75-9748c748e49b"

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)

id: CE-WP-0012-T04
status: done
priority: high
depends_on: [T02]
state_hub_task_id: "975de5c5-61a3-5efb-b97c-fcaa0792fd85"
  • 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

id: CE-WP-0012-T05
status: done
priority: medium
depends_on: [T03, T04]
state_hub_task_id: "299c534b-627f-5072-840c-1c209a615af7"
  • load/save options in capture-state
  • accept legacy sessions without options
  • document amount/some-of JSON in capture-persistence comments

T06 — Tests + demo attributes

id: CE-WP-0012-T06
status: done
priority: medium
depends_on: [T05]
state_hub_task_id: "1364d9f5-8ff8-59dc-bb8c-c5683add4b66"
  • 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.