Package slug-template for npm init use #231

Closed
opened 2026-06-28 22:33:12 -05:00 by erik · 3 comments
Owner

Goal

Create @evcraddock/slug-template as a versioned npm artifact that slug init can consume while keeping generated sites standalone and free of CLI source code.

Requirements

  • Implement the work described in docs/npm-specs/06-slug-template.md.
  • Create packages/slug-template or equivalent template packaging workspace with TypeScript build/tests where appropriate, README, package metadata, and public exports.
  • Package the canonical template-site source for distribution.
  • Add template metadata describing included Slugkit package versions.
  • Define copy filters that prevent toolkit-only files and CLI source from entering generated sites.
  • Define placeholder replacement rules for package name, site title, and other safe initialization values.
  • Update @evcraddock/slug-cli so slug init consumes @evcraddock/slug-template.
  • Ensure generated sites use published @evcraddock/slug-* dependency versions, not workspace:*.
  • Publish the package to npm and verify post-publish slug init behavior.

Acceptance criteria

  • @evcraddock/slug-template exists as a workspace package.
  • slug init consumes the template package rather than relying only on ad hoc in-repo paths.
  • Generated sites created after release use published @evcraddock/slug-* dependency versions.
  • Generated sites do not contain CLI source.
  • Template metadata records included package versions.
  • Package is published and post-publish slug init verification succeeds.
  • ./scripts/pre-pr.sh passes.

Dependencies

  • task-982e97df
## Goal Create `@evcraddock/slug-template` as a versioned npm artifact that `slug init` can consume while keeping generated sites standalone and free of CLI source code. ## Requirements - Implement the work described in `docs/npm-specs/06-slug-template.md`. - Create `packages/slug-template` or equivalent template packaging workspace with TypeScript build/tests where appropriate, README, package metadata, and public exports. - Package the canonical template-site source for distribution. - Add template metadata describing included Slugkit package versions. - Define copy filters that prevent toolkit-only files and CLI source from entering generated sites. - Define placeholder replacement rules for package name, site title, and other safe initialization values. - Update `@evcraddock/slug-cli` so `slug init` consumes `@evcraddock/slug-template`. - Ensure generated sites use published `@evcraddock/slug-*` dependency versions, not `workspace:*`. - Publish the package to npm and verify post-publish `slug init` behavior. ## Acceptance criteria - [ ] `@evcraddock/slug-template` exists as a workspace package. - [ ] `slug init` consumes the template package rather than relying only on ad hoc in-repo paths. - [ ] Generated sites created after release use published `@evcraddock/slug-*` dependency versions. - [ ] Generated sites do not contain CLI source. - [ ] Template metadata records included package versions. - [ ] Package is published and post-publish `slug init` verification succeeds. - [ ] `./scripts/pre-pr.sh` passes. ## Dependencies - task-982e97df
Author
Owner

Synced from todu comment by @todu on 2026-06-30T05:13:20.530Z

Review update

  • PR: #247 is open with Forgejo CI run #356 passing.
  • Result: approved for merge.
  • Verified: @evcraddock/slug-template workspace/package extraction, package metadata/copy filters/placeholder rules, package-backed slug init, generated-site published dependency versions, no CLI source in generated sites, package pack/release dry-runs, built-CLI init smoke test, ./scripts/pre-pr.sh, and Forgejo CI build-lint-test passed.
  • Follow-up: after merge, publish @evcraddock/slug-template@0.1.0 through Forgejo CI and verify post-publish slug init before task closure.
_Synced from todu comment by @todu on 2026-06-30T05:13:20.530Z_ ### Review update - PR: #247 is open with Forgejo CI run #356 passing. - Result: approved for merge. - Verified: `@evcraddock/slug-template` workspace/package extraction, package metadata/copy filters/placeholder rules, package-backed `slug init`, generated-site published dependency versions, no CLI source in generated sites, package pack/release dry-runs, built-CLI init smoke test, `./scripts/pre-pr.sh`, and Forgejo CI `build-lint-test` passed. - Follow-up: after merge, publish `@evcraddock/slug-template@0.1.0` through Forgejo CI and verify post-publish `slug init` before task closure.
Author
Owner

Synced from todu comment by @todu on 2026-06-30T12:00:40.879Z

Merge and release update

  • PR #247 merged into main.
  • Forgejo push CI passed: run #358.
  • Published @evcraddock/slug-template@0.1.0 through Forgejo release workflow: run #361 succeeded after propagation-related reruns.
  • Verified npm registry/package availability: npm view @evcraddock/slug-template@0.1.0 version returned 0.1.0.
  • Verified post-publish slug init behavior by packing the updated CLI, installing it in a temp project so @evcraddock/slug-template@0.1.0 resolved from npm, and running npx slug init. Generated site used @evcraddock/slug-template/default, used published @evcraddock/slug-core@0.1.0, and did not include @evcraddock/slug-template as a runtime dependency.
_Synced from todu comment by @todu on 2026-06-30T12:00:40.879Z_ ### Merge and release update - PR #247 merged into `main`. - Forgejo push CI passed: run #358. - Published `@evcraddock/slug-template@0.1.0` through Forgejo release workflow: run #361 succeeded after propagation-related reruns. - Verified npm registry/package availability: `npm view @evcraddock/slug-template@0.1.0 version` returned `0.1.0`. - Verified post-publish `slug init` behavior by packing the updated CLI, installing it in a temp project so `@evcraddock/slug-template@0.1.0` resolved from npm, and running `npx slug init`. Generated site used `@evcraddock/slug-template/default`, used published `@evcraddock/slug-core@0.1.0`, and did not include `@evcraddock/slug-template` as a runtime dependency.
erik 2026-06-30 07:15:05 -05:00
Author
Owner

Synced from todu comment by @todu on 2026-06-30T12:10:28.484Z

Closing summary

All acceptance criteria are satisfied.

  • @evcraddock/slug-template exists as a workspace package in packages/slug-template with package metadata, README, public exports, build/test support, template metadata, copy filters, and placeholder rules.
  • slug init consumes the package-backed default template and generated sites remain standalone.
  • Generated sites use published @evcraddock/slug-* semver dependencies and do not contain CLI source.
  • PR #247 merged into main; Forgejo push CI run #358 passed.
  • @evcraddock/slug-template@0.1.0 was published through Forgejo release workflow run #361.
  • Post-publish verification succeeded with a temp CLI install and npx slug init using the published template package.
_Synced from todu comment by @todu on 2026-06-30T12:10:28.484Z_ ### Closing summary All acceptance criteria are satisfied. - `@evcraddock/slug-template` exists as a workspace package in `packages/slug-template` with package metadata, README, public exports, build/test support, template metadata, copy filters, and placeholder rules. - `slug init` consumes the package-backed default template and generated sites remain standalone. - Generated sites use published `@evcraddock/slug-*` semver dependencies and do not contain CLI source. - PR #247 merged into `main`; Forgejo push CI run #358 passed. - `@evcraddock/slug-template@0.1.0` was published through Forgejo release workflow run #361. - Post-publish verification succeeded with a temp CLI install and `npx slug init` using the published template package.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/slugkit#231
No description provided.