5.0 KiB
id, type, title, repo, domain, status, owner, planning_priority, planning_order, created, updated, state_hub_workstream_id
| id | type | title | repo | domain | status | owner | planning_priority | planning_order | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|---|
| GUIDE-BOARD-WP-0003 | workplan | Extension SDK Maturity | guide-board | markitect | completed | codex | high | 3 | 2026-05-15 | 2026-05-15 | 26aa9511-cd5c-4dd5-989c-d2838ba3b50d |
GUIDE-BOARD-WP-0003: Extension SDK Maturity
Purpose
Harden the external extension SDK now that guide-board has a repeatable assessment operations baseline. External extension repositories should be able to declare their own validation surfaces, normalization boundaries, and acceptance fixtures without pushing domain logic back into the core.
Background
GUIDE-BOARD-WP-0002 made assessment operation repeatable for CLI, service,
container, candidate handoff, retained results, and external extension
acceptance. The next repo-level gap is SDK maturity: the core can discover
external extensions and run their entrypoints, but extension-owned validation
and normalizer contracts are still mostly prose.
Boundary
This workplan owns extension-neutral SDK contracts and core enforcement points. Domain-specific schemas, CMIS runner behavior, harness dependencies, and certification interpretations remain owned by external extension repositories.
D3.1 - Extension-Owned Profile Schema Validation
id: GUIDE-BOARD-WP-0003-T001
status: done
priority: high
state_hub_task_id: "1bc729ec-683c-410e-8b47-1b13eb61da00"
Acceptance:
- Allow extension manifests to declare profile schema descriptors without breaking the existing string shorthand.
- Validate extension-owned target and assessment profile schemas during CLI profile validation and run planning.
- Keep extension schemas loaded from the extension root and reject schema paths that escape that root.
- Add focused tests and SDK documentation.
Progress:
- Extended
profile_schemasto support descriptor objects while preserving the existing string shorthand. - Applied extension-owned target and assessment schema validation in CLI profile validation and run planning.
- Added tests for successful extension-owned validation, validation failure, and schema-path root containment.
- Documented the descriptor contract in
docs/EXTENSION-SDK.md.
D3.2 - Normalizer Plug-in Contract
id: GUIDE-BOARD-WP-0003-T002
status: done
priority: high
state_hub_task_id: "b87e68c1-6eca-4274-8e3f-6e2854c5a1e1"
Acceptance:
- Define how extension normalizers are declared, loaded, and invoked.
- Preserve the current runner-result contract while allowing an extension to normalize native result artifacts explicitly.
- Add tests that prove a normalizer can map native output into evidence.
Progress:
- Added
guide_board.normalizers.normalize_step_result. - Extended
normalizersmanifest entries to support Python module descriptor objects while preserving the existing string shorthand. - Invoked matching normalizers after runner execution and before evidence writing.
- Merged normalizer result fields over runner results and recorded
normalizer_refsin evidence facts. - Added test coverage through the SDK fixture run.
D3.3 - SDK Fixture Extension And Acceptance Tests
id: GUIDE-BOARD-WP-0003-T003
status: done
priority: medium
state_hub_task_id: "f3738751-5a0d-4eaf-85b1-75e599a78060"
Acceptance:
- Add a compact SDK fixture extension that exercises the mature contracts.
- Keep the fixture dependency-light and suitable for unit tests.
- Cover external repo discovery, schema validation, normalizer invocation, plan generation, and result package shape.
Progress:
- Added
extensions/sdk-fixture. - Included extension-owned target and assessment schemas, fixture profiles, a native-output runner, a normalizer, and a mapping set.
- Added a unit test that copies the fixture as an external extension repository and verifies plan, evidence, mapping, and assessment package output.
D3.4 - Extension Authoring Documentation Refresh
id: GUIDE-BOARD-WP-0003-T004
status: done
priority: medium
state_hub_task_id: "3d390bd4-755b-462a-9e16-9c859990d99e"
Acceptance:
- Refresh
docs/EXTENSION-SDK.mdwith the finalized profile-schema and normalizer contracts. - Update templates or examples so extension authors can copy working shapes.
- Link the SDK maturity guidance from the assessment operations and external extension acceptance docs where useful.
Progress:
- Refreshed
docs/EXTENSION-SDK.mdwith profile schema descriptors, normalizer descriptors, context fields, merge semantics, and fixture guidance. - Linked SDK authoring contracts from
docs/ASSESSMENT-OPERATIONS.md. - Linked
extensions/sdk-fixturefromdocs/EXTERNAL-EXTENSION-ACCEPTANCE.md. - Added README references for the SDK fixture and WP3.
Definition Of Done
- External extension repositories can declare and test domain-specific profile validation without core code changes.
- Normalizer plug-ins have a documented and tested core contract.
- The SDK includes a small fixture path that future extension work can reuse.
- Operator docs and authoring docs agree on the supported extension lifecycle.