# Introducing \`@discourse/update-skeleton\`

**URL:** https://meta.discourse.org/t/introducing-discourse-update-skeleton/412460
**Category:** Development
**Tags:** dev-news
**Created:** [September 15, 2026, 12:05pm UTC](https://meta.discourse.org/t/introducing-discourse-update-skeleton/412460 "2026-09-15T12:05:20Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [September 15, 2026, 12:05pm UTC](https://meta.discourse.org/t/introducing-discourse-update-skeleton/412460/1 "2026-09-15T12:05:20Z")

</div>

We just published the `@discourse/update-skeleton` package on npm. This can be used to easily update existing themes and plugins to use the latest recommended config files for GitHub actions and linting.

To use it, open your theme/plugin directory, and then run

```plaintext
pnpx @discourse/update-skeleton@latest

```

This will pull the latest configs & dependency versions from `discourse-theme-skeleton` or `discourse-plugin-skeleton`, and apply them to your repository.

Output will look something like:

```plaintext
Updated package.json
Updated eslint.config.mjs
Updated .prettierrc.cjs
Updated stylelint.config.mjs
Updated tsconfig.json
Updated .rubocop.yml
Updated .streerc
Updated Gemfile
Updated .github/workflows/discourse-theme.yml
Updated .github/workflows/d-compat-branch.yml
Updated .gitignore
...
Done. Review the diff, then run:
  pnpm lint:fix
  pnpm lint
  bundle exec stree write Gemfile $(git ls-files '*.rb' '*.rake' '*.thor')
  bundle exec rubocop -A
  bundle exec rubocop

```

Once you’ve applied the updates and fixed any linting violations, create a commit on your repository as normal.

After your first update, you can use `pnpm update-skeleton` as a shortcut to run this tool.

---

_[View the full topic](https://meta.discourse.org/t/introducing-discourse-update-skeleton/412460)._
