--- id: OPEN-CMIS-TCK-WP-0001 type: extension-workplan title: "OpenCMIS TCK Harness Foundation" repo: open-cmis-tck extension: open-cmis-tck domain: markitect status: completed owner: codex planning_priority: high planning_order: 2 created: "2026-05-07" updated: "2026-05-07" superseded_root_workplan: "workplans/OPEN-CMIS-TCK-WP-0001-harness-foundation.md" state_hub_workstream_id: "276483ee-1497-495b-8710-fd8bb7dace22" --- # OPEN-CMIS-TCK-WP-0001: OpenCMIS TCK Harness Foundation ## Purpose Establish `open-cmis-tck` as the first guide-board extension. 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 guide-board 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 extension keeps CMIS-specific Java/Maven orchestration, raw TCK output, and capability mapping outside the guide-board core. ## Target Architecture ```text CMIS target profile -> CMIS preflight probe -> OpenCMIS TCK runner -> raw run artifacts -> guide-board normalized evidence -> CMIS capability mapper -> JSON/Markdown report fragments ``` ## Boundary This workplan builds a guide-board extension. It does not implement CMIS server features, modify `kontextual-engine`, issue certifications, provide audit assurance, or replace legal, regulatory, or accredited assessment work. ## D1.1 - Extension Foundation ```task id: OPEN-CMIS-TCK-WP-0001-T001 status: done priority: high state_hub_task_id: "add6a26d-38a8-4500-8a3e-6fdac43fee42" ``` Acceptance: - `extensions/open-cmis-tck/INTENT.md` captures the extension purpose, scope, boundaries, and first target. - Extension README identifies how the extension plugs into guide-board. - Basic directory layout exists for configs, scripts, reports, docs, and tests. - Local generated artifacts are ignored where appropriate. Progress: - The extension manifest now lives at repo root as `extension.json`. - CMIS runners, mappings, profiles, and tests live directly in this repository. - The README documents how to load this repo with `guide-board --extension-dir ../open-cmis-tck`. - Framework-owned files moved to the separate `guide-board` repo. ## D1.2 - CMIS Target Profile Schema ```task id: OPEN-CMIS-TCK-WP-0001-T002 status: done priority: high state_hub_task_id: "2ccc74a7-bed9-4769-8608-d579fdf3a0cd" ``` Acceptance: - A CMIS 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. Progress: - Added CMIS-specific profile diagnostics in `open_cmis_tck.profile`. - Documented the CMIS profile contract in `docs/CMIS-PROFILES.md`. - Added `runtime_policy.opencmis_tck.repository_id` to the baseline assessment profile while keeping the persisted profiles compatible with guide-board core schemas. ## D1.3 - CMIS Preflight Probe ```task id: OPEN-CMIS-TCK-WP-0001-T003 status: done priority: high state_hub_task_id: "6d45885b-78a4-4e8b-8fcc-b8d6488e703b" ``` 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. Progress: - The first CMIS Browser Binding preflight runner checks endpoint reachability and parseable JSON repository metadata through the guide-board runner bridge. - The preflight runner preserves raw response metadata and body artifacts for assessment-package fingerprinting. - Failed CMIS preflight now blocks downstream OpenCMIS TCK groups instead of invoking the Java/Maven wrapper against an invalid target. - Capability flags are normalized into repository capability posture facts. - Unsupported optional capabilities can be accepted as target-profile known gaps without hiding unexpected unsupported declared capabilities. ## D1.4 - OpenCMIS TCK Runner Wrapper ```task id: OPEN-CMIS-TCK-WP-0001-T004 status: done priority: high state_hub_task_id: "502d7586-6f9e-475e-9683-43260666d5d9" ``` Acceptance: - The extension 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. Progress: - `opencmis-tck` is now a manifest-declared command runner. - The wrapper checks Java and Maven availability and returns structured blocked evidence when dependencies or final TCK invocation details are missing. - `profiles/expectations/cmis-local-harness.json` marks local bootstrap blockers as expected without hiding target preflight failures. - The wrapper can invoke a configured argv command from `runtime_policy.opencmis_tck.command` or environment variables. - The wrapper expands CMIS placeholders, captures stdout/stderr and invocation metadata under the run directory, and skips cleanly when Java/Maven or command configuration are missing. ## D1.5 - CMIS Result Normalization ```task id: OPEN-CMIS-TCK-WP-0001-T005 status: done priority: high state_hub_task_id: "716486b6-6f14-41f8-8417-5015ba746005" ``` Acceptance: - Raw TCK output is normalized into the guide-board evidence 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. Progress: - Added runner-side normalization for JSON case lists, JSON runner results, JUnit-style XML, and exit-code-only output. - Normalized result counts, case IDs, selected check group, target URL, repository ID, return code, and artifact paths are captured in guide-board evidence facts. ## D1.6 - Capability Mapping And Reports ```task id: OPEN-CMIS-TCK-WP-0001-T006 status: done priority: high state_hub_task_id: "9f7dacc5-4d19-4755-aa9a-8572d4285514" ``` 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. Progress: - `cmis-capability-map` maps initial CMIS requirement refs to repository/type, object/content, navigation, query, ACL/policy, and versioning capability groups. - Guide-board writes normalized mapping records and includes capability-group counts in Markdown reports. - Mapping coverage now includes relationships, change log, policy, and extension gap requirement refs. - Additional check groups are declared for relationships, change log, and extension/known-gap review. ## D1.7 - Optional Local Service API Adapter ```task id: OPEN-CMIS-TCK-WP-0001-T007 status: done priority: medium state_hub_task_id: "a05e47bd-88db-4878-aef4-bf328790c3f0" ``` Acceptance: - The guide-board service can list CMIS profiles, start a CMIS run, inspect run status, and fetch normalized CMIS reports. - CLI operation remains the primary path. - Long-running TCK jobs are tracked without blocking the API process. Progress: - Verified `open-cmis-tck` through guide-board's local service as an external extension. - Documented service usage in `docs/SERVICE-AND-RETENTION.md`. ## D1.8 - Historical Result Retention ```task id: OPEN-CMIS-TCK-WP-0001-T008 status: done priority: medium state_hub_task_id: "c27ea43f-41ec-49d0-a890-3681455f7c6c" ``` Acceptance: - The extension contributes compact run summaries over time. - Retention avoids unbounded raw log growth. - Summaries are suitable for trend charts and downstream capability-score updates. Progress: - CMIS runs now exercise guide-board retention summaries and trend input through extension tests. - The sample assessment profile declares 365-day summary retention and 30-day raw artifact retention. - Retention behavior is documented in `docs/SERVICE-AND-RETENTION.md`. ## Definition Of Done - A developer can configure a 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 guide-board JSON and Markdown report fragments are generated. - The `kontextual-engine` `compat-tck` target profile is represented.