--- id: OPEN-CMIS-TCK-WP-0001 type: workplan title: "OpenCMIS TCK Harness Foundation" repo: open-cmis-tck status: active owner: codex planning_priority: high planning_order: 1 created: "2026-05-07" updated: "2026-05-07" --- # OPEN-CMIS-TCK-WP-0001: OpenCMIS TCK Harness Foundation ## Purpose Establish `open-cmis-tck` as a reusable CMIS compatibility test facility. The first usable outcome is a local harness that can run selected Apache Chemistry OpenCMIS TCK checks against a configured CMIS Browser Binding target and produce normalized capability evidence. ## Background `kontextual-engine` now exposes a conservative CMIS 1.1 Browser Binding subset with explicit unsupported flags. Its current scorecard is estimation-based. Running selected OpenCMIS TCK checks is the next step to turn that estimate into evidence-backed capability scoring. This repository keeps the TCK harness separate so product repositories do not have to carry Java/Maven orchestration, raw TCK output, or test-facility service code in their own trees. ## Target Architecture ```text target profile config -> preflight probe -> OpenCMIS TCK runner -> raw run artifacts -> normalized result model -> capability-group mapper -> JSON/Markdown reports -> optional service API ``` ## Boundary This workplan builds a test facility. It does not implement CMIS server features, modify `kontextual-engine`, or claim formal CMIS certification. ## D1.1 - Repository Foundation ```task id: OPEN-CMIS-TCK-WP-0001-T001 status: todo priority: high ``` Acceptance: - `INTENT.md` captures the project purpose, scope, boundaries, and first target. - Repository README identifies the project and points to the workplan. - Basic directory layout exists for configs, scripts, reports, docs, and tests. - Local generated artifacts are ignored where appropriate. ## D1.2 - Target Profile Schema ```task id: OPEN-CMIS-TCK-WP-0001-T002 status: todo priority: high ``` Acceptance: - A target profile config format defines endpoint URL, binding, repository ID, credentials or auth mode, expected capability groups, known gaps, and timeout settings. - A `kontextual-engine` `compat-tck` example profile is included. - Profile validation produces actionable diagnostics for missing or invalid fields. ## D1.3 - Preflight Probe ```task id: OPEN-CMIS-TCK-WP-0001-T003 status: todo priority: high ``` Acceptance: - Preflight checks verify target reachability, repository info, CMIS version, binding posture, and capability flags before invoking the Java TCK. - Unsupported optional capabilities can be accepted as expected gaps. - Preflight output is captured as structured JSON. ## D1.4 - OpenCMIS TCK Runner Wrapper ```task id: OPEN-CMIS-TCK-WP-0001-T004 status: todo priority: high ``` Acceptance: - The harness documents Java and Maven requirements. - A runner command can invoke selected OpenCMIS TCK groups against one target. - Raw logs and machine-readable run metadata are written under a run directory. - TCK execution can be skipped cleanly when Java/Maven are unavailable. ## D1.5 - Result Normalization ```task id: OPEN-CMIS-TCK-WP-0001-T005 status: todo priority: high ``` Acceptance: - Raw TCK output is normalized into a stable result schema. - Results distinguish pass, fail, expected skip, unsupported by design, and infrastructure error. - Failures include enough context to map back to TCK group, capability group, target profile, and raw artifact paths. ## D1.6 - Capability Mapping And Reports ```task id: OPEN-CMIS-TCK-WP-0001-T006 status: todo priority: high ``` Acceptance: - Capability-group mapping aligns TCK groups with repository/type, navigation, object/content, versioning, query, relationships, ACL/policy, change log, and extension gaps. - JSON reports are compact and suitable for scorecard ingestion. - Markdown reports summarize pass/fail/skip counts and unexpected gaps. - Known gaps do not hide unexpected failures in the same capability area. ## D1.7 - Optional Local Service API ```task id: OPEN-CMIS-TCK-WP-0001-T007 status: todo priority: medium ``` Acceptance: - A small local API can list target profiles, start a run, inspect run status, and fetch normalized reports. - The service is optional; CLI operation remains the primary path. - Long-running TCK jobs are tracked without blocking the API process. ## D1.8 - Historical Result Retention ```task id: OPEN-CMIS-TCK-WP-0001-T008 status: todo priority: medium ``` Acceptance: - The harness keeps compact run summaries over time. - Retention avoids unbounded raw log growth. - Summaries are suitable for trend charts and downstream capability-score updates. ## Definition Of Done - A developer can configure a target CMIS Browser Binding endpoint. - Preflight can verify the target before TCK execution. - Selected OpenCMIS TCK checks can be invoked or cleanly skipped when dependencies are missing. - Normalized JSON and Markdown reports are generated. - The `kontextual-engine` `compat-tck` target profile is represented. - The repository has a clear path for StateHub registration.