diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index 4c9263ab..ad5a3867 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -9,8 +9,8 @@ | Kind | ID | Status | Lane | Source | | --- | --- | --- | --- | --- | | workplan | MARKITECT-WP-0001 | finished | — | workplans/MARKITECT-WP-0001-statehub-bootstrap.md | -| workplan | MARKITECT-WP-0002 | backlog | — | workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md | +| workplan | MARKITECT-WP-0002 | blocked | — | workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md | | task | MARKITECT-WP-0001-T01 | done | — | workplans/MARKITECT-WP-0001-statehub-bootstrap.md | | task | MARKITECT-WP-0001-T02 | done | — | workplans/MARKITECT-WP-0001-statehub-bootstrap.md | | task | MARKITECT-WP-0001-T03 | done | — | workplans/MARKITECT-WP-0001-statehub-bootstrap.md | -| task | MARKITECT-WP-0002-T01 | todo | — | workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md | +| task | MARKITECT-WP-0002-T01 | done | — | workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md | diff --git a/roadmap/testdrive-jsui-publication/PLAN.md b/roadmap/testdrive-jsui-publication/PLAN.md index 3ee3a576..3f859afd 100644 --- a/roadmap/testdrive-jsui-publication/PLAN.md +++ b/roadmap/testdrive-jsui-publication/PLAN.md @@ -1,5 +1,79 @@ # TestDrive-JSUI — npm Publication + +## Current disposition — 2026-09-28 + +**Status: blocked.** Tracked by `MARKITECT-WP-0002`; its T01 readiness-definition +task is complete. This section supersedes the historical assumptions and +commands below. Existing P.1–P.9 remain the release checklist; no new workstream +is needed. + +### Package scope and ownership (P.1 complete) + +Option B is already implemented. `.gitmodules` records the standalone +`coulomb/testdrive-jsui` repository at `capabilities/testdrive-jsui`; Markitect +consumes its pinned commit `b8f13b4ae5e80e76a162187613b67cbdc3a65171`. +Publish from the standalone repository. Do not publish this repo's root +`package.json` or create a Markitect `v1.0.0` tag for the library. + +The package manifest declares the unscoped name `testdrive-jsui`, MIT licensing, +a JavaScript markdown editor with CJS/ESM/browser bundles and CSS, and the +required `marked` peer range `^11.0.0 || ^12.0.0 || ^13.0.0`. Its allowlist is +`dist/`, README, LICENSE, and CHANGELOG (plus npm's package metadata). +Python adapters and PyPI distribution are separate from this npm release. +The standalone owner must resolve P.3's Python `STANDALONE_PLAN.md`; an npm +bundle alone does not satisfy that plan's Python packaging acceptance. + +### Versioning + +Use the library manifest's `1.0.0` as the candidate, not proof of publication. +Before release, the standalone maintainer must check registry ownership and +whether that version already exists. Preserve published versions; use a new +patch for compatible fixes, a minor for compatible features, and a major for +breaking public API changes. Match the manifest, lockfile, changelog, tag, and +release artifact. Create `v1.0.0` only in the standalone repository after the +candidate passes verification, or use the next appropriate unused version. + +### Existing release steps and acceptance + +| Step | Current disposition / evidence required | +| --- | --- | +| P.1 | Done: standalone repository and gitlink already exist. | +| P.2 | Blocked in this checkout: the submodule is uninitialized, so `make -n testdrive-jsui-test-all` exits 2 with no matching target. Initialize the pinned submodule, install its documented dependencies, run its JS/Python integration checks, and verify actual Markitect view/edit behavior. Historical counts are not current test evidence. | +| P.3 | Standalone owner must explicitly reconcile the Python standalone plan; do not silently archive it as satisfied by npm. | +| P.4 | In the standalone checkout, run lint, Jest, production build, pack, isolated tarball install, consumer smoke checks, and publish dry-run. Check every advertised entry point and the exact file list. | +| P.5 | Tag the verified standalone commit; align the changelog with the actual release date and version. | +| P.6 | Standalone maintainer verifies registry ownership/access, publishes the verified candidate, and records registry plus CDN receipts. Route credential needs through `warden route` before requesting access; no credentials belong in this record. | +| P.7 | Install the published version in a clean directory and verify editor initialization, edit/view behavior, CSS, and supported peer dependencies. | +| P.8 | Create the release on the standalone repo's actual forge, with verified package/CDN links. The historical GitHub destination is not established by this checkout. | +| P.9 | Add badges only after publication is verified; name the person responsible for the one-week follow-up. | + +### Readiness evidence and unresolved gates + +Read-only inspection of the clean standalone checkout at +`701341d7fa520f860245e28eb16d44b767fd116b` found the four advertised JS/CSS +entry files present, but `types: dist/index.d.ts` points to a missing file. +The pinned commit advertises that same declaration path. The standalone owner +must generate and test declarations or remove the unsupported promise before +release. Also test CJS consumption explicitly: the manifest combines +`type: module` with a `.cjs.js` entry name. File presence does not prove loading. + +The standalone `JSUI-WP-0002` records 68 passing Jest tests and build evidence +from July 8. Its checklist still leaves post-publication verification open; +that historical readiness result is not proof of an npm release. This review +has not rerun those tests or checked registry availability. + +For P.4, inspect `npm pack --dry-run --json`, then install the actual tarball +in an isolated consumer directory. Exercise ESM, CommonJS, and browser loading +with the supported `marked` peer and CSS. Confirm declarations resolve if +advertised. Source maps currently exist and the changelog explicitly promises +them, so review their contents and inclusion intentionally; the older blanket +exclusion below is not the current packaging decision. Run +`npm publish --dry-run` only after lint, build, tests, and consumer checks pass. +Record exact command results and artifact/version identity before releasing. + +## Historical plan (retained for context) + ## Context TestDrive-JSUI is a JavaScript-first markdown editor library living at diff --git a/workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md b/workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md index faa945c9..bef87ee8 100644 --- a/workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md +++ b/workplans/MARKITECT-WP-0002-testdrive-jsui-publication.md @@ -4,26 +4,42 @@ type: workplan title: "TestDrive-JSUI — npm Publication" domain: communication repo: markitect-main -status: backlog +status: blocked flavor: implementation owner: codex topic_slug: communication created: "2026-06-22" -updated: "2026-06-22" +updated: "2026-09-28" state_hub_workstream_id: "e03ef262-5284-5dd3-92d2-dbd85c6b6159" --- # TestDrive-JSUI — npm Publication -Backlog workstream for publishing the TestDrive JSUI package to npm. +Publication workstream for the standalone TestDrive-JSUI package. +The local readiness definition is complete; actual release remains blocked. ## Publication Readiness ```task id: MARKITECT-WP-0002-T01 -status: todo +status: done priority: medium state_hub_task_id: "1852eca1-92e2-518e-bb21-9dffbeb32a4f" ``` Define package scope, versioning, and publication checklist for TestDrive-JSUI. + + +Result 2026-09-28: Defined package ownership, distribution scope, versioning, +and an evidence-based release checklist in +[the existing publication roadmap](../roadmap/testdrive-jsui-publication/PLAN.md). +The repository split already exists: `.gitmodules` points to the standalone +`coulomb/testdrive-jsui` repository. No new tasks or workplans were created. + +Remaining publication work stays in the roadmap's existing P.2–P.9 steps. +This workplan is **blocked**, despite T01 being done, because completing a +readiness definition does not establish a published release. The standalone +package owner must resolve its missing advertised declaration file, validate +packed consumer entry points, and supply release evidence. Markitect's pinned +submodule must also be initialized and its view/edit integration verified. +No release tag, registry publication, or browser acceptance is claimed.