Skip to content

refactor: v3 - #454

Draft
wesleyboar wants to merge 35 commits into
mainfrom
epic/v3
Draft

wesleyboar wants to merge 35 commits into
mainfrom
epic/v3

Conversation

@wesleyboar

Copy link
Copy Markdown
Member

Overview

Fix all the problems with Core-Styles v2.

Important

  • Styles are backwards-compatible.
  • The directory structure is not backwards-compatible.
  • The /dist directory is not committed to GitHub.

Related

Changes

Testing

UI

* feat!: remove dist

* conf!: ignore dist

* feat!: prevent publish if .css in src

Need next to:
- Rename source files to .postcss.
- Deal with demo stylesheets.

* feat: log if no dist found in source

* refactor: optimizations

* refactor: renamed vars

* refactor: renamed source .css files to .postcss

* refactor: move **/*.css source to ../*.postcss

* fix/refactor: load .postcsss not .css

* temp: restore dist (rebuilt) to diff

* revert "conf!: ignore dist" (manually)

* chore: delete & ignore dist (again)

I checked diff with base branch. All good:
- Diff had changes (unexpected).
- Diff changes were rmeoval of demo and outdated files.

* chore: ignore dist

* chore: delete util script

* fix: ignore fractal util file
* test: demo action

* feat: lint dir & worflow to do so, UNTESTED

* fix: lint workflow job step names

* test: lint workflow job name

* config: lint workflow on .css change for epic/v3

* test: build .css files

* config: output paths from repo root not fs root

* fix: delete align.css

* fix: delete admonition.css

* noop: test commit (new line)

* Revert "noop: test commit (new line)"

This reverts commit 88cf542.

* noop: test commit (new line) in a .css file

* Revert "noop: test commit (new line) in a .css file"

This reverts commit d6aa2ca.
@wesleyboar wesleyboar added enhancement Improvements or additions to existing features feature A new feature or replacement of existing feature refactor Re-writes/structures code but retains behavior major An incompatible API change labels Feb 18, 2025
wesleyboar and others added 2 commits March 17, 2026 13:00
## Overview / Changes

- Fix outdated undocumented lint script.
- Fix inaccurate path imports since merging main.

## Related

- cleans up #454
    - as does #603

## Testing

1. `npm run build` - no errors
2. `npm run lint` - no errors

## UI

### `npm run build`

```
Core-Styles-v3 % npm run build

> @tacc/core-styles@3.0.0-alpha.0 build
> npm run build:css && npm run build:demo


> @tacc/core-styles@3.0.0-alpha.0 build:css
> bin/build.js --build-id=$npm_config_build_id

Tagging CSS version as @tacc/core-styles 3.0.0-alpha.0+ | MIT | github.com/TACC/Core-Styles
Creating tokens for v1, v2, v3, ds
Building stylesheet(s)  to /Users/wbomar/Code/TACC/Core-Styles-v3/dist

> @tacc/core-styles@3.0.0-alpha.0 postbuild:css
> rm -rf dist/fonts && cp -r src/lib/fonts dist/fonts


> @tacc/core-styles@3.0.0-alpha.0 prebuild:demo
> rm -rf dist/_utils && cp -r src/lib/_utils dist/_utils


> @tacc/core-styles@3.0.0-alpha.0 build:demo
> fractality build

Fractality version mismatch! Global: 3.0.0-alpha.0 / Local: 1.6.3
✔ Build started...
⚑ Exported 966 of 966 items
✔ Build finished with no errors.
```

### `npm run lint`

```
Core-Styles-v3 % npm run lint

> @tacc/core-styles@3.0.0-alpha.0 lint
> npm run lint:dirs


> @tacc/core-styles@3.0.0-alpha.0 lint:dirs
> bin/only-commit-source.js

No dist files found in source. Ready to publish.
```

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Wesley B <wesleyboar@users.noreply.github.com>
@wesleyboar wesleyboar mentioned this pull request Aug 5, 2026
wesleyboar and others added 3 commits August 6, 2026 10:49
## Overview

Syncs `epic/v3` with `main` (90 commits behind).

> [!WARNING]
> Performed by AI, Claude Sonnet 5 (under my direction).

## Related

- updates #454

## Changes

- **merged** `main` into `epic/v3`
- **resolved** `dist/*` modify/delete conflicts by keeping `epic/v3`'s
deletion (`dist/` is not committed on v3)
- **resolved** 4 renamed source files (`headings--cms`,
`headings--docs`, `html-elements.docs`, `s-footer`) using `main`'s
content with v3's `.postcss` import extensions
- **renamed** 5 new source files added by `main` (`x-headings*`,
`typography-headings--cms`/`docs`) from `.css` to `.postcss` to match
v3's source convention
- **regenerated** `package-lock.json` via `npm install`, keeping v3's
`package.json` version

## Testing

1. `npm run build` - no errors
2. `npm run lint` - `No dist files found in source. Ready to publish.`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Garrett Edmonds <43251554+edmondsgarrett@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
main's tip (#682) was already applied to epic/v3 via #680's chain
propagation, but #680 was squash-merged, severing epic/v3's ancestry
link to main. Recording this merge with the 'ours' strategy (verified
zero net content change) to restore that link so future `git merge
main` operations compute the correct merge-base instead of redoing
already-resolved conflicts.
Show how to append core-styles.cms.v2-bridge-for-v3-users.css atop
core-styles.cms.css for v3 sites whose CMS content still uses <h2> as an
intro paragraph.

The stylesheet itself isn't added here — it'll arrive via the merge of
main after #683 lands, rather than being hand-ported.
Pulls in #683's x-lead/s-lead extraction and the two
opt-in heading bridges. New .css files from main renamed to .postcss
to match this branch's convention; internal @imports updated to
match. Dropped the orphaned bootstrap4/content/lead.css dist output
(bootstrap4's own .postcss reorg hasn't landed on this branch yet),
and untracked the 8 other dist/ files the merge re-added — this
branch doesn't commit dist/ (#407).
@wesleyboar wesleyboar mentioned this pull request Aug 14, 2026
wesleyboar added a commit that referenced this pull request Aug 14, 2026
## Overview

Resolves #454's merge conflict by bringing `epic/v3` up to date with
`main`.

## Related

#454

## Changes

- **merged** `main`
- **renamed** new files from the merge to `.postcss`
- **removed** orphaned `bootstrap4/content/lead.css` dist output
- **untracked** 8 leaked `dist/` files

## Testing

1. `npm run build:css`
2. `npm start`
3. Confirm the style guide still loads without errors

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Wesley B <wesleyboar@users.noreply.github.com>
# Conflicts:
#	dist/bootstrap4/components/btn.css
#	dist/components/c-button.css
#	dist/components/c-form--login.css
#	dist/components/c-form.css
#	dist/core-styles.base.css
#	dist/core-styles.bootstrap4.css
#	dist/trumps/s-form--login.css
#	dist/trumps/s-form.css
…ts (#700)

## Overview

Automates the mechanical part of syncing a `dist/`-untracked branch
(e.g. `epic/v3`) with `main`.

<details>

`main` commits `dist/`, `epic/v3` doesn't, so every `main` commit
touching `dist/` produces a modify/delete conflict with a single correct
resolution (keep it deleted). This script does that resolution, then
rebuilds and untracks anything the merge re-added, and stops for a human
on any other conflict.

</details>

## Related

- #454

## Changes

- **added** `bin/sync-main.sh`
- **added** AGENTS.md note pointing to it

## Testing

1. On a branch that doesn't commit `dist/` (e.g. `epic/v3`), run
`bin/sync-main.sh`
<sub>(verified live against a disposable branch off `epic/v3`: correctly
auto-resolved 10 `dist/` modify/delete conflicts, rebuilt, and committed
cleanly)</sub>
2. Confirm it exits with an error and does nothing if run on a branch
where `dist/` isn't gitignored
3. Confirm it exits with an error and leaves the merge unresolved if a
non-`dist/` conflict is present
# Conflicts:
#	dist/bootstrap4/components/alert.css
#	dist/bootstrap4/components/alert/demo.css
#	dist/bootstrap4/components/btn.css
#	dist/bootstrap4/components/btn/demo.css
#	dist/bootstrap4/components/card.css
#	dist/bootstrap4/components/card/demo.css
#	dist/bootstrap4/components/media.css
#	dist/bootstrap4/components/media/demo.css
#	dist/bootstrap4/content/lead.css
#	dist/bootstrap4/content/typography-headings/typography-headings--cms.css
#	dist/bootstrap4/content/typography-headings/typography-headings--docs.css
#	dist/bootstrap4/utilities/color-text.css
#	dist/bootstrap4/utilities/color-text/demo.css
#	dist/bootstrap5/utilities/link.css
#	dist/bootstrap5/utilities/link.selectors.css
#	dist/branding_logos.css
#	dist/components/README.css
#	dist/components/admonition.css
#	dist/components/admonition/demo.css
#	dist/components/align.css
#	dist/components/align/demo.css
#	dist/components/bootstrap.col.css
#	dist/components/bootstrap.container.css
#	dist/components/bootstrap.css
#	dist/components/bootstrap.dropdown.css
#	dist/components/bootstrap.figure.css
#	dist/components/bootstrap.form.css
#	dist/components/bootstrap.modal--cms.css
#	dist/components/bootstrap.modal--portal.css
#	dist/components/bootstrap.modal.css
#	dist/components/bootstrap.nav-tabs.css
#	dist/components/bootstrap.pagination.css
#	dist/components/bootstrap.row.css
#	dist/components/bootstrap/bootstrap--col.demo.css
#	dist/components/bootstrap/bootstrap--form.demo.css
#	dist/components/bootstrap/bootstrap--modal.demo.css
#	dist/components/bootstrap/bootstrap--pagination.demo.css
#	dist/components/bootstrap/demo.css
#	dist/components/bootstrap3.breadcrumb.css
#	dist/components/bootstrap3.css
#	dist/components/bootstrap5.border-spinner.css
#	dist/components/c-app-card.css
#	dist/components/c-app-card/demo.css
#	dist/components/c-button--cms.css
#	dist/components/c-button.css
#	dist/components/c-button.selectors.css
#	dist/components/c-button/demo.css
#	dist/components/c-callout.css
#	dist/components/c-callout/demo.css
#	dist/components/c-card--docs.css
#	dist/components/c-card--from-tup-cms.css
#	dist/components/c-card--frontera-about-page.css
#	dist/components/c-card-list.css
#	dist/components/c-card.css
#	dist/components/c-card.selectors.css
#	dist/components/c-card/c-card--frontera.demo.css
#	dist/components/c-card/c-card.demo.css
#	dist/components/c-card/c-card.demo.images.css
#	dist/components/c-content-block.css
#	dist/components/c-data-list.css
#	dist/components/c-feed-list.css
#	dist/components/c-feed-list.selectors.css
#	dist/components/c-form--cms.css
#	dist/components/c-form--login.css
#	dist/components/c-form--portal.css
#	dist/components/c-form.css
#	dist/components/c-form.selectors.css
#	dist/components/c-hero-banner.css
#	dist/components/c-hero-banner/c-hero-banner.demo.css
#	dist/components/c-image-map.css
#	dist/components/c-image-map.skin.css
#	dist/components/c-image-map.structure.css
#	dist/components/c-island.css
#	dist/components/c-island/demo.css
#	dist/components/c-message--compact.css
#	dist/components/c-message--expanded.css
#	dist/components/c-message.css
#	dist/components/c-message.selectors.css
#	dist/components/c-message/demo.css
#	dist/components/c-nav.css
#	dist/components/c-nav/demo.css
#	dist/components/c-page.css
#	dist/components/c-page/demo.css
#	dist/components/c-pill.css
#	dist/components/c-pill.selectors.css
#	dist/components/c-pill/demo.css
#	dist/components/c-recognition.css
#	dist/components/c-see-all-link.css
#	dist/components/c-show-more.css
#	dist/components/c-tag.css
#	dist/components/c-tag.selectors.css
#	dist/components/c-tag/demo.css
#	dist/components/c-update.css
#	dist/components/cortal-icon-font.css
#	dist/components/cortal-icon.css
#	dist/components/cortal-icon/demo.css
#	dist/components/cortal.icon.css
#	dist/components/cortal.icon.font.css
#	dist/components/demo.css
#	dist/components/django-cms-forms.css
#	dist/components/django-cms-forms.hacks.css
#	dist/components/django-cms-forms.selectors.css
#	dist/components/mui.tabs.css
#	dist/components/pymdownx--tabbed.css
#	dist/components/pymdownx.css
#	dist/components/tacc-docs.css
#	dist/core-styles.base.css
#	dist/core-styles.bootstrap4.css
#	dist/core-styles.bootstrap5.css
#	dist/core-styles.cms.css
#	dist/core-styles.cms.v2-bridge-for-v3-users.css
#	dist/core-styles.cms.v3-bridge-for-v2-users.css
#	dist/core-styles.demo.css
#	dist/core-styles.docs.css
#	dist/core-styles.header.css
#	dist/core-styles.portal.css
#	dist/core-styles.settings.css
#	dist/core-styles.theme.default.css
#	dist/core-styles.theme.has-dark-logo.css
#	dist/core-styles.wysiwyg.css
#	dist/djangocms-blog/cms-pagination.css
#	dist/elements/README.css
#	dist/elements/bootstrap.css
#	dist/elements/demo.css
#	dist/elements/form.css
#	dist/elements/headings--cms.css
#	dist/elements/headings--docs.css
#	dist/elements/headings-as-v2.css
#	dist/elements/headings-as-v3.css
#	dist/elements/headings/demo.css
#	dist/elements/html-elements.cms.css
#	dist/elements/html-elements.css
#	dist/elements/html-elements.docs.css
#	dist/elements/html-elements/demo.css
#	dist/elements/irregular-link.css
#	dist/elements/links.css
#	dist/elements/mailto-link.css
#	dist/elements/monospace.css
#	dist/elements/root--cms.css
#	dist/elements/root--demo.css
#	dist/elements/root--docs.css
#	dist/elements/root--portal.css
#	dist/elements/root.css
#	dist/elements/sticky-footer.css
#	dist/elements/sticky-footer/demo.css
#	dist/elements/table--basic.css
#	dist/elements/table--nested.css
#	dist/elements/table.cms.css
#	dist/elements/table.css
#	dist/elements/table.docs.css
#	dist/elements/table.portal.css
#	dist/elements/table.selectors.css
#	dist/elements/tacc-search-bar.css
#	dist/generics/README.css
#	dist/generics/attributes.css
#	dist/generics/attributes/demo.css
#	dist/generics/fonts.css
#	dist/generics/pseudo-elements.css
#	dist/objects/README.css
#	dist/objects/o-fixed-header-table.css
#	dist/objects/o-fixed-header-table/demo.css
#	dist/objects/o-flex-item-table-wrap.css
#	dist/objects/o-flex-item-table-wrap/demo.css
#	dist/objects/o-float-content.css
#	dist/objects/o-grid.css
#	dist/objects/o-heading-steps.css
#	dist/objects/o-offset-content.css
#	dist/objects/o-section--docs.css
#	dist/objects/o-section.css
#	dist/objects/o-section.selectors.css
#	dist/objects/o-section/demo.css
#	dist/objects/o-site.css
#	dist/objects/o-table-wrap.css
#	dist/objects/o-table-wrap/demo.basic.css
#	dist/objects/o-table-wrap/demo.extra.css
#	dist/objects/o-table-wrap/example.flexible-horz.css
#	dist/objects/o-table-wrap/example.overflow-hidden.css
#	dist/objects/o-table-wrap/example.overflow-scroll.css
#	dist/objects/o-table-wrap/o-table-wrap--flexible-horz.css
#	dist/objects/o-table-wrap/o-table-wrap--flexible-vert.css
#	dist/objects/o-table-wrap/o-table-wrap--overflow-hidden.css
#	dist/objects/o-table-wrap/o-table-wrap--overflow-scroll-extra.css
#	dist/objects/o-table-wrap/o-table-wrap--overflow-scroll.css
#	dist/settings/README.css
#	dist/settings/border.css
#	dist/settings/color--cms.auto.css
#	dist/settings/color--cms.css
#	dist/settings/color--cms.selectors.css
#	dist/settings/color--demo.css
#	dist/settings/color--docs.css
#	dist/settings/color--docs.selectors.css
#	dist/settings/color--portal.css
#	dist/settings/color--portal.selectors.css
#	dist/settings/color--portal.v1.css
#	dist/settings/color--portal.v2.css
#	dist/settings/color.accent.css
#	dist/settings/color.accent.v3.css
#	dist/settings/color.css
#	dist/settings/color.v3.css
#	dist/settings/color/demo.css
#	dist/settings/demo.css
#	dist/settings/font--cms.css
#	dist/settings/font--docs.css
#	dist/settings/font--portal.css
#	dist/settings/font.css
#	dist/settings/font/demo-family.css
#	dist/settings/font/demo-size.css
#	dist/settings/font/demo-style.css
#	dist/settings/font/demo-weight.css
#	dist/settings/max-width.css
#	dist/settings/space.css
#	dist/tools/README.css
#	dist/tools/media-queries.css
#	dist/tools/selectors.common.css
#	dist/tools/selectors.css
#	dist/tools/selectors.form.css
#	dist/tools/selectors.monospace.css
#	dist/tools/x-action.css
#	dist/tools/x-article-link.css
#	dist/tools/x-blockquote.css
#	dist/tools/x-breadcrumbs.css
#	dist/tools/x-center.css
#	dist/tools/x-drop-cap.css
#	dist/tools/x-drop-cap.demo.css
#	dist/tools/x-fake-border.css
#	dist/tools/x-feed-list.css
#	dist/tools/x-figure.css
#	dist/tools/x-grid.css
#	dist/tools/x-headings--cms.css
#	dist/tools/x-headings--docs.css
#	dist/tools/x-headings.cms.v2.css
#	dist/tools/x-headings.css
#	dist/tools/x-hero-banner.css
#	dist/tools/x-layout.css
#	dist/tools/x-lead.css
#	dist/tools/x-lead.demo.css
#	dist/tools/x-link.css
#	dist/tools/x-link/demo.css
#	dist/tools/x-mailto-text-replace.css
#	dist/tools/x-message.css
#	dist/tools/x-message.demo.css
#	dist/tools/x-message.v1.css
#	dist/tools/x-message/demo.css
#	dist/tools/x-offset-content.css
#	dist/tools/x-offset-content.demo.css
#	dist/tools/x-overlay.css
#	dist/tools/x-pagination.css
#	dist/tools/x-pagination/demo.css
#	dist/tools/x-pill.css
#	dist/tools/x-pill.demo.css
#	dist/tools/x-pill/demo.css
#	dist/tools/x-tabs.css
#	dist/tools/x-tabs.skin.css
#	dist/tools/x-tabs.structure.css
#	dist/tools/x-tabs/demo.css
#	dist/tools/x-tag.css
#	dist/tools/x-tag.demo.css
#	dist/tools/x-truncate.css
#	dist/trumps/README.css
#	dist/trumps/demo.css
#	dist/trumps/s-affixed-input-wrapper.css
#	dist/trumps/s-affixed-input-wrapper/demo.css
#	dist/trumps/s-article-list.css
#	dist/trumps/s-article-preview.css
#	dist/trumps/s-blockquote.css
#	dist/trumps/s-breadcrumbs.css
#	dist/trumps/s-cms-nav.css
#	dist/trumps/s-document.css
#	dist/trumps/s-drop-cap.css
#	dist/trumps/s-footer--thick.css
#	dist/trumps/s-footer--thin.css
#	dist/trumps/s-footer.css
#	dist/trumps/s-footer.properties.css
#	dist/trumps/s-footer/demo.css
#	dist/trumps/s-form--cms.css
#	dist/trumps/s-form--login.css
#	dist/trumps/s-form--portal.css
#	dist/trumps/s-form-page.css
#	dist/trumps/s-form-page/demo.css
#	dist/trumps/s-form-page/example.css
#	dist/trumps/s-form.css
#	dist/trumps/s-form.selectors.css
#	dist/trumps/s-guide-doc.css
#	dist/trumps/s-header.css
#	dist/trumps/s-header/s-header.demo.css
#	dist/trumps/s-hero-banner.css
#	dist/trumps/s-hero-banner/s-hero-banner.demo.css
#	dist/trumps/s-image-grid.css
#	dist/trumps/s-inline-dl.css
#	dist/trumps/s-irregular-links.css
#	dist/trumps/s-lead.css
#	dist/trumps/s-paragraph-table.css
#	dist/trumps/s-portal-nav.css
#	dist/trumps/s-references.css
#	dist/trumps/s-style-guide.css
#	dist/trumps/s-system-specs.css
#	dist/trumps/s-truncated-table.css
#	dist/trumps/tacc-search-bar.css
#	dist/trumps/u-empty.css
#	dist/trumps/u-hide.css
#	dist/trumps/u-highlight.css
#	dist/trumps/u-highlight/u-highlight.demo.css
#	dist/trumps/u-image-zoom.css
#	dist/trumps/u-image-zoom.selectors.css
#	dist/trumps/u-image-zoom/u-image-zoom.demo.css
#	dist/trumps/u-mailto-text-replace.css
#	dist/trumps/u-nested-text-content.css
#	dist/trumps/u-summary.css
#	dist/trumps/u-summary/u-summary.demo.css
#	dist/vendors/bootstrap5--border-spinner.css
#	dist/vendors/bootstrap5/demo.css
#	package-lock.json
#	package.json
## Overview

Bring #683's `x-lead`/`s-lead` extraction and heading-bridge work into
`epic/v3`, and apply the actual heading redesign as the default rather
than leaving it an opt-in preview.

## Related

- #683

## Changes

- **merged** `main`
- **removed** leaked `dist/` files
- **changed** default heading look to v3's redesign
- **added** "CMS (v2)" demo variant
- **removed** redundant "CMS (v3)" demo variant

## Testing

1. `npm run build:css`
2. `npm start`
3. Open `/components/detail/headings--cms`
    <sup>(h2/h3/h4 should show the shifted-down look)</sup>
4. Compare it against its pre-PR state
    <sup>(see "Before vs. after" screenshots below)</sup>
5. Open `/components/detail/headings--cms-v2`
<sup>(should match `headings--cms`'s pre-PR look — the bridge restoring
v2)</sup>
6. Confirm `.h1`-`.h6` utility classes are unaffected
<sup>(only the native h1-h6 element mapping changed, not the heading-N
mixins)</sup>

## UI

### Headings: CMS — before vs. after this PR

h2/h3/h4 shift down a level by default; no longer just an opt-in
preview.

| Before | After |
| - | - |
| <img width="1000" height="1400" alt="headings-cms-before"
src="https://github.com/user-attachments/assets/2810fa10-35eb-44c6-ab4c-41b2c22ca320"
/> | <img width="1000" height="1400" alt="headings-cms-after"
src="https://github.com/user-attachments/assets/0fdb44ea-f2bf-46cf-a2f1-d73ed62ba2c6"
/> |

### Headings: CMS vs. CMS (v2)

`headings--cms-v2` (the bridge) should match `headings--cms`'s pre-PR
look.

| CMS | CMS (v2) |
| - | - |
| <img width="1000" height="1400" alt="headings-cms"
src="https://github.com/user-attachments/assets/785ccead-9607-4a06-a29d-e3a47302d3b4"
/> | <img width="1000" height="1400" alt="headings-cms-v2"
src="https://github.com/user-attachments/assets/c1daad5e-9b83-47c5-813b-8366025f1115"
/> |
# Conflicts:
#	dist/components/bootstrap.nav-tabs.css
#	dist/core-styles.base.css
#	src/lib/_imports/components/bootstrap.nav-tabs.postcss
# Conflicts:
#	dist/bootstrap4/content/typography-headings/typography-headings--cms.css
#	dist/bootstrap4/content/typography-headings/typography-headings--docs.css
#	dist/core-styles.cms.css
#	dist/core-styles.cms.v2-bridge-for-v3-users.css
#	dist/core-styles.docs.css
#	dist/elements/headings--cms.css
#	dist/elements/headings--docs.css
#	dist/elements/headings-as-v2.css
#	src/lib/_imports/elements/headings--docs.css
#	src/lib/_imports/trumps/s-lead.css
# Conflicts:
#	dist/bootstrap4/components/alert.css
#	dist/bootstrap4/components/btn.css
#	dist/bootstrap5/utilities/link.css
#	dist/components/admonition.css
#	dist/components/bootstrap.dropdown.css
#	dist/components/bootstrap.nav-tabs.css
#	dist/components/bootstrap.pagination.css
#	dist/components/bootstrap3.breadcrumb.css
#	dist/components/c-app-card.css
#	dist/components/c-button--cms.css
#	dist/components/c-button.css
#	dist/components/c-callout.css
#	dist/components/c-card--frontera-about-page.css
#	dist/components/c-card.css
#	dist/components/c-card/c-card.demo.images.css
#	dist/components/c-feed-list.css
#	dist/components/c-form--cms.css
#	dist/components/c-form--login.css
#	dist/components/c-form--portal.css
#	dist/components/c-form.css
#	dist/components/c-hero-banner.css
#	dist/components/c-message--compact.css
#	dist/components/c-message.css
#	dist/components/c-nav.css
#	dist/components/c-page.css
#	dist/components/c-tag.css
#	dist/components/pymdownx--tabbed.css
#	dist/components/pymdownx.css
#	dist/components/tacc-docs.css
#	dist/core-styles.base.css
#	dist/core-styles.bootstrap4.css
#	dist/core-styles.bootstrap5.css
#	dist/core-styles.cms.css
#	dist/core-styles.cms.v2-bridge-for-v3-users.css
#	dist/core-styles.demo.css
#	dist/core-styles.docs.css
#	dist/core-styles.header.css
#	dist/core-styles.portal.css
#	dist/djangocms-blog/cms-pagination.css
#	dist/elements/demo.css
#	dist/elements/form.css
#	dist/elements/headings--cms.css
#	dist/elements/headings--docs.css
#	dist/elements/headings-as-v2.css
#	dist/elements/html-elements.cms.css
#	dist/elements/html-elements.css
#	dist/elements/html-elements.docs.css
#	dist/elements/mailto-link.css
#	dist/elements/monospace.css
#	dist/elements/table.portal.css
#	dist/objects/o-grid.css
#	dist/objects/o-offset-content.css
#	dist/objects/o-section.css
#	dist/objects/o-table-wrap/demo.extra.css
#	dist/settings/color/demo.css
#	dist/tools/x-blockquote.css
#	dist/tools/x-drop-cap.demo.css
#	dist/tools/x-feed-list.css
#	dist/tools/x-hero-banner.css
#	dist/tools/x-layout.css
#	dist/tools/x-lead.demo.css
#	dist/tools/x-message.demo.css
#	dist/tools/x-offset-content.demo.css
#	dist/tools/x-pagination.css
#	dist/tools/x-pill.demo.css
#	dist/tools/x-tabs.css
#	dist/tools/x-tabs.skin.css
#	dist/tools/x-tag.demo.css
#	dist/trumps/s-affixed-input-wrapper.css
#	dist/trumps/s-article-list.css
#	dist/trumps/s-article-preview.css
#	dist/trumps/s-breadcrumbs.css
#	dist/trumps/s-drop-cap.css
#	dist/trumps/s-footer.css
#	dist/trumps/s-form--cms.css
#	dist/trumps/s-form--login.css
#	dist/trumps/s-form--portal.css
#	dist/trumps/s-form-page.css
#	dist/trumps/s-form.css
#	dist/trumps/s-header.css
#	dist/trumps/s-hero-banner.css
#	dist/trumps/s-truncated-table.css
#	dist/trumps/tacc-search-bar.css
#	dist/trumps/u-image-zoom/u-image-zoom.demo.css
#	dist/trumps/u-mailto-text-replace.css
#	dist/vendors/bootstrap5--border-spinner.css
#	src/lib/_imports/components/c-button.postcss
@wesleyboar wesleyboar self-assigned this Aug 21, 2026
wesleyboar added a commit that referenced this pull request Aug 31, 2026
## Overview

Adds a Claude Code skill documenting the recurring `main` → `epic/v3` →
`epic/v3--reorg` sync process, so it can be re-run from a fresh session
without re-deriving the approach each time.

## Related

- #454
- #455

## Changes

- **added** `sync-epic-v3` skill, covering `bin/sync-main.sh` usage,
manual conflict-resolution pitfalls (rename-detection misses,
silently-wrong auto-merges, clean-add files with stale imports), and the
post-merge build-verify step

## Testing

1. Run `/reload-skills`
2. Run `/sync-epic-v3` and confirm its instructions load
wesleyboar and others added 3 commits September 1, 2026 17:43
v3 doesn't track dist/, so this workflow (which exists solely to keep
a committed dist/ in sync on release-please's v2 PR branch) has
nothing to do here. Nothing else in the repo references it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Improvements or additions to existing features feature A new feature or replacement of existing feature major An incompatible API change refactor Re-writes/structures code but retains behavior

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

1 participant