Skip to content

feat: add npm publishing, new agent skills, and skill auto-update#36

Merged
rfgamaral merged 10 commits into
mainfrom
ricardo/prepare-npm-publishing
Mar 25, 2026
Merged

feat: add npm publishing, new agent skills, and skill auto-update#36
rfgamaral merged 10 commits into
mainfrom
ricardo/prepare-npm-publishing

Conversation

@rfgamaral

@rfgamaral rfgamaral commented Mar 25, 2026

Copy link
Copy Markdown
Member

Overview

This PR prepares outline-cli for npm publishing as @doist/outline-cli (v1.0.0) and brings it in line with the other Doist CLIs.

The skill infrastructure was missing the update method and the postinstall hook that auto-updates installed skills on CLI upgrade — I've added both. I've also added support for gemini, pi, and universal agents. The universal agent installs to ~/.agents/ for compatibility with Amp, OpenCode, and similar tools. The installer skips the agent directory existence check for universal since there's no specific agent to verify.

Publishing is set up with semantic-release, following the same pattern as twist-cli. CI workflows were updated to use .nvmrc and the test/lint workflows now only run on PRs since the release workflow handles main.

The postinstall script uses a cross-platform Node.js wrapper (scripts/postinstall.js) instead of test -f, which doesn't work on Windows. The redundant prepare script for lefthook installation was also removed — lefthook's own postinstall already handles this.

Reference

Test plan

  • Code review
  • CI passes (test, lint, type-check)
  • First release publishes as @doist/outline-cli@1.0.0 on npm

@rfgamaral rfgamaral self-assigned this Mar 25, 2026
@rfgamaral rfgamaral added the 🙋 Ask PR PR must be reviewed before merging label Mar 25, 2026
@rfgamaral rfgamaral requested a review from gnapse March 25, 2026 03:26

@doistbot-app doistbot-app Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR prepares outline-cli for its first npm release and introduces new agent skills alongside an auto-update mechanism. These additions nicely align the project with other Doist CLI tools and improve the user experience with automatic skill updates. However, a few adjustments are needed to ensure a smooth first release, such as adding the necessary semantic-release dependencies, making the postinstall script cross-platform and safe for local checkouts, and excluding test artifacts from the published bundle.

Share FeedbackReview Logs

Comment thread .github/workflows/release.yml
Comment thread package.json Outdated
Comment thread src/postinstall.ts
Comment thread package.json
Replace `test -f` shell command with a Node.js script that works on
Windows, macOS, and Linux.

@gnapse gnapse left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was less certain about us (Doist) wanting to own and publish an npm package about an external tool. But I guess it makes sense.

Lefthook's own postinstall already handles git hook installation,
including skipping when there's no .git directory or in CI.
@rfgamaral

Copy link
Copy Markdown
Member Author

Thanks for the clarification, @gnapse.

@rfgamaral rfgamaral merged commit bcb2e75 into main Mar 25, 2026
3 checks passed
@rfgamaral rfgamaral deleted the ricardo/prepare-npm-publishing branch March 25, 2026 12:44
github-actions Bot pushed a commit that referenced this pull request Mar 25, 2026
# 1.0.0 (2026-03-25)

### Bug Fixes

* broaden CI detection to handle all truthy values ([7dc2806](7dc2806))
* exclude dist from biome checks ([0dc49a3](0dc49a3))

### Features

* add API Spinner Proxy ([#17](#17)) ([a3bc75a](a3bc75a))
* add fuzzy reference resolution ([#19](#19)) ([6c1c6f9](6c1c6f9))
* add npm publishing, new agent skills, and skill auto-update ([#36](#36)) ([bcb2e75](bcb2e75)), closes [Doist/todoist-cli#176](Doist/todoist-cli#176) [Doist/bob-cli#17](Doist/bob-cli#17) [Doist/twist-cli#101](Doist/twist-cli#101)
* add structured error formatting with codes and hints ([#18](#18)) ([17658d2](17658d2))
* implement OAuth PKCE browser login ([#20](#20)) ([b7f6eec](b7f6eec)), closes [#7](#7) [outline/outline#11254](outline/outline#11254)
* improve oauth login inputs and callback UX ([#31](#31)) ([3011b28](3011b28))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🙋 Ask PR PR must be reviewed before merging released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants