static-site-brand-identity-migration-tdd

Execute approved static-site brand identity/logo migrations with TDD across canonical content sources, generated deploy output, legacy checked-in HTML, existing stale tests, and build/docs contracts.

5 stars

Best use case

static-site-brand-identity-migration-tdd is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Execute approved static-site brand identity/logo migrations with TDD across canonical content sources, generated deploy output, legacy checked-in HTML, existing stale tests, and build/docs contracts.

Teams using static-site-brand-identity-migration-tdd should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/static-site-brand-identity-migration-tdd/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/workspace-hub-learned/static-site-brand-identity-migration-tdd/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/static-site-brand-identity-migration-tdd/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How static-site-brand-identity-migration-tdd Compares

Feature / Agentstatic-site-brand-identity-migration-tddStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Execute approved static-site brand identity/logo migrations with TDD across canonical content sources, generated deploy output, legacy checked-in HTML, existing stale tests, and build/docs contracts.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Static Site Brand Identity Migration TDD

Use when implementing an approved issue that changes a static site's canonical brand/logo identity, especially when the repo has:
- canonical source HTML under `content/**`
- generated deploy output under `dist/**`
- checked-in legacy/root HTML outside both source and deploy output
- existing tests that may read legacy/root pages
- metadata/schema/social references to logo or brand names

## Core lesson

Do not trust a clean canonical-source migration alone. A brand identity issue can still be wrong if:
- tests keep reading stale root/legacy HTML and pass by accident
- generated `dist/**` is not rebuilt/verified
- checked-in legacy HTML outside `content/**` and `dist/**` preserves retired visible branding
- existing tests still assert the old brand
- docs still describe the wrong source-of-truth contract

## Execution pattern

1. Confirm execution gate first
   - live issue has `status:plan-approved`
   - local `.planning/plan-approved/<issue>.md` exists in the checkout used for writes
   - commit the marker before implementation if hooks require it

2. Map the site contract before tests
   - read build script, e.g. `build.js`
   - read deploy config, e.g. `vercel.json`
   - identify canonical source, generated output, assets, and legacy checked-in pages
   - inspect test paths to see whether existing tests read `content/**`, `dist/**`, or root legacy files

3. TDD first
   - add a failing brand regression test before implementation
   - test at least:
     - logo assets exist and are non-empty
     - nav/footer use approved visible brand and accessible logo text
     - canonical source pages do not use retired brand in visible/chrome/title/metadata/schema contexts
     - built `dist/**` does not use retired brand after build
     - legacy checked-in HTML outside source/output does not preserve retired visible identity if tests/workflows read it
     - existing old-brand tests no longer require retired branding
   - run the targeted test and verify RED before implementation

4. Implement minimally
   - add canonical `assets/img/logo.svg`
   - add deterministic `assets/img/logo.png` or document the conversion command if generated externally
   - add a brand contract doc, e.g. `brand/BRAND.md`
   - update canonical source partials/pages under `content/**`
   - update or sync legacy checked-in HTML outside `content/**` and `dist/**` if tests or workflows still read it
   - update existing tests that encode the old brand, not just new tests
   - update README/deployment docs if they describe root HTML as authoritative while deploy actually serves generated output

5. Build and validate
   - run `npm run build` or equivalent
   - run targeted brand tests
   - run nearby existing tests that were touched
   - run broader Python/JS test suites when feasible
   - search for retired brand strings in `content/**/*.html`, `dist/**/*.html`, and checked-in legacy HTML

6. Adversarial review before commit
   - specifically ask reviewer to check for false confidence from tests reading stale legacy/root files
   - ask whether any old tests still pass by accepting long-form legacy strings instead of the new visible brand
   - ask whether generated output and legacy checked-in output are both covered or deliberately excluded

## Pitfalls caught live

- Updating `content/**` and building `dist/**` was not enough because existing tests still read root checked-in HTML.
- Loosening old tests to accept `Analytical` let stale root pages pass without proving the new `AceEngineer` visible brand.
- A reviewer found that checked-in HTML outside `content/**` and `dist/**` included root pages plus `blog/**`, `calculators/**`, `case-studies/**`, `demos/**`, `samples/**`, etc.; the plan had originally named only root `*.html`.
- A new Jest file may not run if `package.json` uses explicit `testMatch`; extend an existing matched JS test or update `package.json` deliberately.
- Broad markdown/template docs can still contain historical retired brand strings; decide whether they are in scope or future cleanup rather than silently absorbing them.

## Suggested regression test structure

For Python static checks:
- place tests under the repo's existing pytest tree, e.g. `tests/python/test_brand_identity_assets.py`
- define helpers for:
  - canonical source HTML: `content/**/*.html`
  - generated deploy output: `dist/**/*.html`
  - legacy checked-in HTML outside `content/**`, `dist/**`, `node_modules`, `.git`
- scan only identity contexts to avoid brittle prose checks:
  - visible chrome
  - headings / body labels / CTAs
  - page titles
  - OG/Twitter metadata
  - JSON-LD/schema identity fields such as `alternateName`

## Validation bundle example

```bash
npm run build
uv run pytest tests/python/test_brand_identity_assets.py tests/python/test_wrk146_positioning.py -q
uv run pytest tests/python -q
npm test -- --runInBand
```

## Closeout evidence to capture

- RED test failure before implementation
- build command and result
- targeted brand test result
- existing test suite result
- JS/build test result if applicable
- adversarial review verdict after fixes
- commit hash and push status

Related Skills

handle-browser-automation-financial-site-blocks

5
from vamseeachanta/workspace-hub

Workflow for working around Chrome extension blocks on financial sites during data collection tasks

handle-blocked-financial-sites-workaround

5
from vamseeachanta/workspace-hub

Workflow for accessing financial account data when browser automation is blocked on brokerage sites

handle-blocked-financial-sites-data-export

5
from vamseeachanta/workspace-hub

Workflow for extracting data from blocked financial sites when browser automation is restricted

financial-site-bypass-workflow

5
from vamseeachanta/workspace-hub

Workflow for accessing restricted financial sites when browser automation is blocked

static-site-build-artifact-plan-review

5
from vamseeachanta/workspace-hub

Plan-review pattern for static-site fixes where the deployed artifact is generated from source files (e.g. sitemap/robots/static assets). Prevents review churn by separating durable regression checks from one-time migration verification and by validating built output, not just source files.

gtm-site-readiness-audit-local-vs-production

5
from vamseeachanta/workspace-hub

Audit GTM feature work by separating local artifact readiness from production deployment state, then fix common blockers in aceengineer-website and GTM collateral.

orcaflex-static-debug

5
from vamseeachanta/workspace-hub

Troubleshoot and resolve OrcaFlex static analysis convergence issues. Diagnose common problems including line connectivity, tensions, environmental conditions, and numerical instabilities.

aceengineer-website-copy-alignment

5
from vamseeachanta/workspace-hub

Verify proposed copy changes to vamseeachanta/aceengineer-website against canonical sources in workspace-hub (llm-wiki, live site, strategy repo) before shipping. Produces a GitHub issue on the site repo documenting the check with a Match / Drift / Gap verdict.

aceengineer-website-update

5
from vamseeachanta/workspace-hub

Daily automated website updates with competitor analysis and content sync

brand-guidelines

5
from vamseeachanta/workspace-hub

Create and maintain brand guidelines including visual identity, voice and tone, and usage rules. Use for establishing brand standards, style guides, and ensuring brand consistency across materials.

docker-4-database-migration-pattern

5
from vamseeachanta/workspace-hub

Sub-skill of docker: 4. Database Migration Pattern.

orcaflex-static-debug-quick-checks

5
from vamseeachanta/workspace-hub

Sub-skill of orcaflex-static-debug: Quick Checks (+3).