diff --git a/.agents/skills/commit/SKILL.md b/.agents/skills/commit/SKILL.md index 0825b057c45..c9716f87489 100644 --- a/.agents/skills/commit/SKILL.md +++ b/.agents/skills/commit/SKILL.md @@ -16,7 +16,11 @@ Use this skill whenever the user asks you to create a git commit for the current 2. Only stage files relevant to the requested change. Do not include unrelated untracked files, generated files, or likely-local artifacts. 3. Read and follow `.github/CONTRIBUTING.md#commit-messages`. It is the source of truth for Ghost's commit conventions. -4. Run `git status --short` after committing and confirm the result. +4. For publishable packages, check whether a release intent is required. A + package `README.md` is published and requires a release; repository-only + Markdown such as `AGENTS.md`, `CLAUDE.md`, changelogs, and package-local + `docs/` does not. +5. Run `git status --short` after committing and confirm the result. ## Important - Do not push to remote unless the user explicitly asks diff --git a/.changeset/loose-pans-argue.md b/.changeset/loose-pans-argue.md new file mode 100644 index 00000000000..2da772de325 --- /dev/null +++ b/.changeset/loose-pans-argue.md @@ -0,0 +1,5 @@ +--- +"@tryghost/koenig-lexical": patch +--- + +Updated Koenig Lexical testing documentation. diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index f96ce800a6d..01af2f04490 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -90,6 +90,10 @@ This records which packages changed and the bump type (patch / minor / major); t pnpm change --bump none ``` +A package `README.md` is published with the package and requires a release. +Repository-only Markdown such as `AGENTS.md`, `CLAUDE.md`, changelogs, and +package-local `docs/` does not. + CI enforces this — the **Check app version bump** job fails a pull request that affects a publishable package without a covering changeset. The pre-commit hook prints a non-blocking reminder locally, and `pnpm change status` shows what's currently pending. For more detail, see the [contribution workflow](../docs/contributing/workflow.md). diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7df90c7bba3..ba606ade48e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -173,9 +173,6 @@ jobs: - '.github/workflows/ci.yml' core: - *shared - # Documentation and ownership metadata do not affect Ghost - # runtime behaviour, even when they live inside a project root. - - '!**/*.md' - '!.github/CODEOWNERS' - 'ghost/**' - '!ghost/core/core/server/data/tinybird/**' @@ -192,6 +189,10 @@ jobs: - '!koenig/kg-unsplash-selector/**' - '!koenig/kg-simplemde/**' - '!koenig/*/test/**' + # Documentation does not affect Ghost runtime behaviour, even + # when it lives inside a project root. Keep this after every + # positive pattern so micromatch cannot add Markdown files back. + - '!**/*.md' unit-test-globals: - 'vitest.config.mjs' core-unit-test-globals: diff --git a/AGENTS.md b/AGENTS.md index 3c5d55fb57c..002fae02d6e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,11 +1,8 @@ # AGENTS.md -This file provides guidance to AI Agents when working with code in this repository. - -Human-readable setup, workflow, testing, shipping, and architecture guidance -lives in the [codebase documentation](docs/README.md). Treat those guides and -nearby package READMEs as the source of truth for facts shared by humans and -agents. This file adds agent-specific execution rules and code constraints. +Agent-specific execution guidance for the Ghost monorepo. Human-readable setup, +workflow, architecture, and practice guidance lives in the +[codebase documentation](docs/README.md) and nearby package READMEs. Start with: @@ -16,192 +13,54 @@ Start with: - [Shipping](docs/contributing/shipping.md) - [Monorepo structure](docs/codebase/monorepo-structure.md) -## Package Manager - -**Always use `pnpm` for all commands.** This repository uses pnpm workspaces, not npm. - -Shared dependency versions are pinned in `pnpm-workspace.yaml` under `catalog:` and referenced as `"pkg": "catalog:"` (or `catalog:` for named catalogs). `catalogMode` is `strict`, so `pnpm add` routes new deps into the catalog automatically — don't inline the version. - -## Required Workflow +## Required workflow +- Always use `pnpm`, never npm or Yarn. External dependency versions belong in + the catalogs in `pnpm-workspace.yaml`; workspace dependencies use + `workspace:` versions. - Run `pnpm setup` before other commands in a fresh checkout or worktree. -- Use `pnpm check` as the default full validation command. Follow the - [testing guide](docs/contributing/testing.md) for focused commands and the - browser E2E and Ember Admin suites that run separately. -- Read the nearest `AGENTS.md`, `CLAUDE.md`, and README files before changing a - package or subsystem. More specific instructions override this file. - -## Architecture Patterns - -### Admin Apps Integration (Micro-Frontend) - -**Build Process:** -1. Admin-x React apps build to `apps/*/dist` using Vite -2. `apps/ember-admin/lib/asset-delivery` copies them to `ghost/core/core/built/admin/assets/*` -3. Ghost admin serves from `/ghost/assets/{app-name}/{app-name}.js` - -**Runtime Loading:** -- Ember admin uses `AdminXComponent` to dynamically import React apps -- React components wrapped in Suspense with error boundaries -- Apps receive config via `additionalProps()` method - -### Public Apps Integration - -- Built as UMD bundles to `apps/*/umd/*.min.js` -- Loaded via `