docs/waves/wap_1_2_1_compliance_program.md
WAP 1.2.1 / WML 1.3 Compliance Program
Version: v0.3 Status: active pre-conformance program
Outcome
The primary target is a data-client implementation compatible with WAP 1.2.1 and WML 1.3 observable behavior. This is a compatibility target, not a claim of historical WAP Forum certification.
The first strict profile is the exact WAP-215 Class C data client
CCR-CLASSC-C-001. Its mandatory client feature groups are WAE, WML, WBXML,
WMLScript, WMLScript libraries, caching, WSP, WDP, and WCMP. WTP becomes
mandatory only when connection-mode WSP is supported. WTLS, WIM, Push,
WTA/WTAI, UAProf, and WMLScript Crypto remain separately declared
capabilities.
The machine-readable execution authority is:
docs/waves/wap-1.2.1-compliance-program.json
Validate it with:
node scripts/check-wap-compliance-program.mjs
node spec-processing/scripts/check-wap-class-conformance.mjs
node scripts/check-wap-conformance-ledger.mjs
node scripts/check-wap-selected-normative-clauses.mjs
node scripts/check-wap-wae-conformance-ledger.mjs
node scripts/check-wap-wbxml-conformance-ledger.mjs
node scripts/check-wap-wmlscript-conformance-ledger.mjs
node scripts/check-wap-caching-conformance-ledger.mjs
node scripts/check-wap-transport-conformance-ledgers.mjs
All nine selected Class C family increments are complete at SCR level:
- together they contain 712 effective source rows and 198 selected strict rows;
- the selected implementation audit is 23 implemented, 77 partial, and 98 missing;
- every selected row has an implementation owner and work-item mapping;
CONF-003is complete: all nine families and all 198 selected parent rows expand into 761 deduplicated, source-anchored clauses; the selected WDP and WCMP paths contribute 58 assessed, direct fixture-backed clauses;CONF-004,CONF-005, andCONF-006are complete: strict dispositions, the SCR-to-requirement/work/evidence crosswalk, and active-document status rollups are now guarded by a deterministic drift check;CONF-007is complete for all 198 selected rows: 17 implementation foundations are successor-derived or cross-checked, of which two are compatible and 15 require strict target correction;- 76 effective WML 1.3 SCR rows are extracted;
- 47 are mandatory and 29 optional;
- the selected Class C client scope is 39 required, 27 optional, and 10 server/encoder rows not applicable to the client;
- all four SCR actors and the
WML-C-32 -> WML-C-54dependency are preserved; - every mandatory row has an implementation work-item lane;
- the source-wide mandatory code audit finds 7 implemented, 23 partial, and 17 missing; the selected 39-row client subset is 7 implemented, 23 partial, and 9 missing;
- 30 rows have direct code symbols and runnable test evidence.
WML-201directly projects all 76 WML rows and all 174 selected WML clauses; the remaining 17 mandatory gaps and 29 optional unassessed rows stay explicit rather than becoming inferred implementation claims.- 86 effective WAE SCR rows are extracted after applying the WAP-190 SIN chain, with another 22 removed rows retained as historical change records;
WAESpec:MCFselects 11 mandatory WAE client rows, while 40 optional client rows and 35 server rows remain explicitly separated;- the selected WAE audit is 5 implemented, 3 partial, and 3 missing, with direct code/test evidence linked to 8 rows;
- all 11 selected WAE concepts are classified against WAP-236 as successor-delta evidence without changing the WAP 1.2.1 target.
- 15 effective WBXML 1.3 SCR rows are extracted after applying
WAP-192_105, with 11 mandatory and 4 optional rows; WBXML:MCFselects exactly three mandatory client rows and leaves 12 server/document/encoder rows outside the selected client profile;- the selected WBXML audit is 0 implemented, 3 partial, and 0 missing; a pinned built-in decoder and 42-case source-derived corpus link direct normative tests to all 3 rows, with all 47 selected client clauses implemented. The encoder-only unrepresentable-name clause remains preserved outside the selected client profile.
- 112 effective WMLScript rows are extracted from the consolidated
WAP-193_101 table;
WMLScript:MCFselects 41 mandatory interpreter rows; - the selected WMLScript audit is 0 implemented, 23 partial, and 18 missing, with zero direct normative WAP bytecode tests;
- all 41 selected WMLScript language rows expand into 107 anchored clauses, with 105 required and two recommended behaviors;
- 95 effective WMLScript Libraries rows are extracted after adding optional
WMLSSL-C-095;WMLScriptLibs:MCFselects 80 mandatory interpreter rows; - the selected libraries audit is 0 implemented, 14 partial, and 66 missing, with zero direct normative library tests;
- all 80 selected WMLScript Libraries rows expand into 211 required anchored clauses covering shared rules, identifiers, signatures, outcomes, errors, and host-visible effects;
- source-exact
WMLSSL048is preserved with normalized aliasWMLSSL-048. - 11 WAP-120 caching SCR rows are extracted;
WAPCachingMod:MCFselects exactly five mandatory user-agent rows and leaves optional time synchronization plus all gateway rows outside the selected client profile; - the selected caching audit is 0 implemented, 3 partial, and 2 missing, with zero direct normative WAP-120 tests; the current no-storage behavior is treated only as a provisional zero-byte-cache profile.
- 317 effective WDP/WCMP/WSP SCR rows are extracted with all actor, M/O, source-order, and dependency expressions preserved;
- the selected connectionless transport path resolves to 22 rows: 9 WDP using CDPD-shaped UDP/IPv4, 2 ICMP-backed WCMP rows, and 8 connectionless WSP rows;
- the selected transport audit is 11 implemented, 8 partial, and 0 missing: all nine selected WDP rows and both selected WCMP rows have direct normative evidence, while the eight connectionless WSP rows remain partial;
- connection-oriented WSP and WTP remain a separately activated capability;
the selected CDPD
TIAEIA-732family citation is authority-locked as a licensed-payload, metadata-only informative capability reference.
See docs/waves/WAP_1_2_1_WML_SCR_LEDGER.md and
docs/waves/WAP_1_2_1_WAE_SCR_LEDGER.md, and
docs/waves/WAP_1_2_1_WBXML_SCR_LEDGER.md,
docs/waves/WAP_1_2_1_WMLSCRIPT_SCR_LEDGER.md, and
docs/waves/WAP_1_2_1_WMLSCRIPT_LIBRARIES_SCR_LEDGER.md, and
docs/waves/WAP_1_2_1_CACHING_SCR_LEDGER.md, and
docs/waves/WAP_1_2_1_TRANSPORT_SCR_LEDGERS.md.
Compatibility and enhancement policy
Strict conformance is the floor, not a ceiling.
- Core mechanics must match the selected release and profile.
- Modern implementations, safer internals, improved performance, better diagnostics, and modern host UX are encouraged.
- A behavior-preserving improvement must pass strict differential tests.
- A behavior-changing feature must be an explicit Waves capability or enhanced mode.
- An enhancement cannot satisfy, replace, or waive a strict obligation.
- Optional WAP profiles remain capability-gated and do not silently expand the first release claim.
Evidence hierarchy
Compliance is accounted for from the source outward:
release member -> effective base/SIN family -> CCR profile dependency
-> SCR feature -> normative clause -> implementation owner
-> ticket -> executable test/evidence -> release claim
Source-file counts, thematic requirement groups, completed ticket counts, or passing unit tests alone are not a compliance percentage. Every mandatory selected-profile obligation must ultimately have an exact source anchor and executable evidence.
Dependency-ordered program
The program contains 13 sprints and 79 unique work items. Existing completed tickets remain historical facts; the program maps to them where relevant and adds work only for uncovered obligations.
| Sprint | Scope | Depends on | Exit meaning |
|---|---|---|---|
SRC-0 |
Authoritative release, assets, class sources, and redistribution posture | — | Source control plane is reproducible |
CONF-1 |
CCR, SCR, and normative-clause ledgers | SRC-0 |
Selected-profile obligations are one-to-one accountable |
WML-2 |
Parser, deck model, validation, and WML/WBXML input | CONF-1 |
WML input and deck structure meet strict fixtures |
WML-3 |
State, tasks, events, forms, and navigation | WML-2 |
Runtime mechanics are deterministic and source-backed |
REN-4 |
Historical layout, focus, keypad, and softkeys | WML-2, WML-3 |
Observable device interaction is reproducible |
WMLS-5 |
WMLScript language, bytecode, VM, and libraries | CONF-1, WML-3 |
Script execution and failure behavior are bounded and compliant |
WAE-6 |
WAE integration, caching, formats, and content behavior | CONF-1, WML-3, REN-4, WMLS-5 |
Browser-environment behavior closes across engine features |
TRN-7 |
WDP, WCMP, and conditional WTP core | CONF-1 |
Protocol PDUs, state, bounds, and errors meet vectors |
WSP-8 |
WSP session/connectionless behavior and host fetch | CONF-1, TRN-7, WAE-6 |
Native transport reaches the browser contract correctly |
INT-9 |
Native/WASM parity and end-to-end interoperability | Runtime and transport sprints | Cross-layer strict scenarios have auditable evidence |
REL-10 |
Strict Class C-compatible release gate | INT-9 |
No mandatory obligation is unmapped and all build gates pass |
OPT-11 |
Security, Push, telephony, identity, and other optional profiles | CONF-1, REL-10 |
Optional capabilities are independently declared and tested |
ENH-12 |
Behavior-preserving improvements and Waves extensions | REL-10 |
Modern features cannot regress or obscure strict behavior |
Source acquisition status
Source Sprint SRC-0 now has reproducible research-access evidence:
- 97/97 technical release PDFs and 97/97 text extractions are hash/size
recorded in
wap-1.2.1-ingestion-status.json; - 43/43 locked external dependencies have acquisition records backed by 48 artifacts;
- 36 external dependencies have full primary artifacts, two have partial historical evidence, and five licensed IEEE/ISO/TIA payloads remain metadata-only;
- the external open-label queue is reduced from 69 to 60; all three residual groups have non-blocking selected-profile dispositions, activation triggers, and future work owners.
WAP-215 has also been recovered from the official live WAP Forum directory,
hash-locked, and extracted into exact Class A/B/C client/server graphs. This
closes SRC-004 without changing the redistribution boundary.
Immediate execution order
- Treat
SRC-005external-dependency normalization as complete, including the selectedTIAEIA-732metadata/license boundary. KeepSRC-006redistribution guidance as the remaining source-program blocker. - Treat
CONF-002family-level SCR extraction andCONF-003nested-clause planning plusCONF-004..006governance controls as complete. Add WTP only when connection-oriented WSP is claimed. - Treat
CONF-007, the unified selected-profile successor delta register, as complete. Keep optional-media and later OMA follow-on deltas separate. - Continue the completed first-pass implementation audits into exact source-derived fixtures. Do not reopen completed tickets; add narrowly scoped gap work.
- Refresh the master priority plan from the reconciled obligation ledger.
- Execute the runtime and protocol sprints in dependency order, then close cross-layer and release evidence.
- Start optional profiles and Waves enhancements only after their declared strict gates.
The program status now reflects those facts directly: CONF-1 is complete;
SRC-0 is blocked only by SRC-006; runtime sprints are todo or
in-progress according to their child work items. The validator derives and
checks each sprint status so planning rollups cannot drift from work-item
state.
Source blockers
One source action is intentionally blocked:
SRC-006: promote recovered WAP PDFs, DTDs, or parsed derivatives into Git only after explicit redistribution approval.
This blocker does not prevent metadata locking, temporary internal extraction, effective-family modeling, dependency research, or conformance-ledger design. It prevents public-repository source promotion, not exact Class C profile selection.
All 97 technical members are already available for private requirement
extraction. SRC-006 is now blocked only on public promotion/derivative
permission and the subsequent canonical cleanup/provenance workflow, not on
research access.
The detailed WAP-215 recovery evidence, OMA contact route, permission draft,
and Wayback procedure are in
docs/waves/WAP_SOURCE_RECOVERY_AND_PERMISSION.md.
Strict release gate
REL-10 requires:
- zero unmapped mandatory selected-profile obligations;
- exact source, build, fixture, and test identity in the evidence bundle;
- native Rust and WASM parity for parity-critical engine behavior;
- passing engine, transport, host, frontend, contract, type, lint, WASM, and desktop production-build gates;
- explicit optional-feature support statements and known deviations;
- a compatibility statement that identifies
CCR-CLASSC-C-001, discloses optional and conditional profiles, and does not imply formal certification.
The frontend CSS-minification defect tracked by REL-1004 is closed: the
vendored WebKit scrollbar selector is valid, and clean frontend and Tauri
production builds pass under the declared Node and pnpm toolchain. Production
builds remain explicit release evidence, so a green unit-test count cannot
conceal a red build.
Planning relationship
This program defines target completeness and compliance dependencies.
docs/waves/WAP_1_2_1_PLANNING_BASELINE.md is the human closure checkpoint.
docs/waves/SPRINT_PLAN_2026-03_MASTER_PRIORITIZED.md retains cross-lane
ordering for work already in flight and has been rebased to this program’s
dependency order. This program is authoritative for new WAP 1.2.1 work and
completion claims.