agentsclimarketplace

Dynamic base site

Skill jsirish/silverstripe-skills/skills/dynamic-base-site

Agent skills for Silverstripe CMS development — version upgrades, Elemental, the Essentials stack, and deployment workflows

Install
npx -y skills add jsirish/silverstripe-skills --skill dynamic-base-site

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Reference for Dynamic's Silverstripe base-site stack - the dynamic/silverstripe-base-site module set, per-version namespaces (SS4 through SS6), extension locations, and upgrade checklist. Use when working in a project that requires dynamic/silverstripe-base-site, when resolving "class not found" or namespace errors in a Dynamic base-site project, or when planning an upgrade of a base-site project. Triggers on "base-site", "base site stack", "Dynamic base site", or unfamiliar dynamic/* module questions.

SKILL.md

5.6 KB, as published. Nobody here has run it

Dynamic Silverstripe Base-Site Stack

This skill documents the Dynamic base-site module ecosystem used in Silverstripe projects.

Core Modules

PackagePurpose
dynamic/recipe-silverstripe-base-siteMeta-package that bundles all base-site dependencies
dynamic/silverstripe-base-siteCore page types, models, and extensions
dynamic/silverstripe-site-toolsShared utilities, extensions, and helper classes

Namespace Changes by Version

Silverstripe 6 (dynamic/silverstripe-base-site:^8, branch 8)

  • Namespaces are unchanged from SS5: Dynamic\Base\* (page types, models), Dynamic\SiteTools\* (extensions, utilities). No PSR-4 migration needed for base-site's own classes - only SS6 core framework classes moved (see version-map-ss6.md for the core class renames, e.g. ViewableDataModelData).
  • SiteConfig's header nav (UtilityLinks) moves from a many_many join table (SiteConfig_UtilityLinks) to a has_many SiteTreeLink relation via silverstripe/linkfield ^5 - same data-migration pattern as the general SS5→SS6 LinkField conversion. See data-migration-tasks.md ("UtilityLinks" section) for the migration task.
  • SS6-relevant deprecations that hit base-site projects specifically: sheadawson/silverstripe-linkablesilverstripe/linkfield ^5 (run the linkable data migration on SS5 with linkfield ^4 before the SS6 bump); nswdpc/silverstripe-thereisnouserform removed from the SS6 recipe (drop any UserDefinedFormPageExtension registrations in app/_config/essentials.yml or dev/build fatals); undefinedoffset/silverstripe-nocaptcha removed, no replacement.

Silverstripe 5 (dynamic/silverstripe-base-site:^7)

  • Namespace: Dynamic\BaseRecipe\* (some classes)
  • Namespace: Dynamic\Base\* (page types, models)
  • Namespace: Dynamic\SiteTools\* (extensions, utilities)

Silverstripe 4 (dynamic/silverstripe-base-site:^4)

  • Namespace: Dynamic\Base\* (all classes)

Common Extensions

Extensions may move between silverstripe-base-site and silverstripe-site-tools in major versions:

ExtensionSS5 LocationNotes
TemplateDataExtensionDynamic\Base\ExtensionFor SiteConfig
ReviewContentDataExtensionDynamic\SiteTools\ExtensionFor SiteConfig
CmsDesignDataExtensionDynamic\Base\ExtensionFor SiteTree
SeoExtensionDynamic\Base\ExtensionFor SiteTree
HeaderImageExtensionDynamic\SiteTools\ExtensionFor pages needing header images
PreviewExtensionDynamic\SiteTools\ExtensionFor BlogPost
DataobjectPermissionExtensionDynamic\SiteTools\ExtensionFor UserForms
ContactDataExtensionDynamic\SiteTools\ExtensionFor CompanyAddress

Configuration Patterns

base-site-config.yml (project)

Should closely mirror the recipe's version. Contains:

  • SiteConfig extensions
  • SiteTree extensions
  • Page type configurations (elemental, etc.)

mysite.yml (project)

Contains project-specific customizations:

  • Project-specific extensions (FlexSlider, etc.)
  • Custom element configurations
  • Third-party module configs

Upgrade Checklist

When upgrading major versions:

  1. Check Recipe Config: View the recipe's app/_config/base-site-config.yml to understand the current version's patterns

    cat vendor/dynamic/recipe-silverstripe-base-site/app/_config/base-site-config.yml
    
  2. Verify Extension Locations: Extensions may move between modules

    grep -r "class ExtensionName" vendor/dynamic/silverstripe-*/src/
    
  3. Check for Removed Extensions: Some custom extensions get replaced by third-party modules

    • CompanyDataExtension - removed in SS5
    • IntegrationsDataExtension - removed in SS5
  4. Namespace Updates: Check for namespace changes

    • Dynamic\BaseDynamic\BaseRecipe in some classes
  5. Third-Party Replacements: Custom code often gets replaced:

    • FlexSlider → Carousel (dynamic/carousel)
    • Linkable → LinkField (silverstripe/linkfield)
    • ElementalStylings → removed (use native styles config)

Common Upgrade Issues

Missing Extension Errors

InvalidArgumentException: ClassName references nonexistent Extension in 'extensions'

Solution: Check if extension moved to different module or was removed. Search vendor:

grep -r "class ExtensionName" vendor/dynamic/

has_many Relation Errors

No has_one found on class 'X', the has_many relation from 'Y' to 'X' requires a has_one

Solution: Add reciprocal has_one via config in mysite.yml:

Namespace\ClassName:
  has_one:
    ParentClass: Namespace\ParentClass

Deprecated Packages

  • ryanpotter/silverstripe-cms-theme - SS5 has built-in CMS theme
  • lekoala/silverstripe-debugbar - check for SS5 compatible version
  • fractas/elemental-stylings - use native styles config instead

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.