PR #139 wrapped commit-analyzer with path filtering but tried to fix
release-notes-generator with gitRawCommitsOpts: { path: '.' } -- a
no-op because the plugin reads context.commits from semantic-release,
never gitRawCommitsOpts. Result: every skill release body and CHANGELOG
included commits from the entire repo (see slicc-handoff-v1.0.0).
- Add scripts/path-filtered-notes-generator.cjs mirroring the analyzer
wrapper -- filters context.commits via git log -- . before delegating
to the real plugin.
- Wire it into release.config.cjs in place of the bare plugin entry;
drop the dead gitRawCommitsOpts config.
- Regenerate plugins/aem/edge-delivery-services/skills/slicc-handoff/
CHANGELOG.md (skipped by PR #140 because the tag did not exist yet).
Per review feedback: defer SLICC protocol detail to the maintainer-curated
https://www.sliccy.ai/llms.txt index rather than restating it in the
skill. Adds a pointer near the top of SKILL.md and trims "How It Works"
to a one-paragraph summary that links to llms.txt for the full rel URIs,
payload shape, and public API catalog. Activation guidance, verb-prefix
rules, and example commands are kept inline so the skill stays useful
without a network fetch.
Co-authored-by: Cursor <cursoragent@cursor.com>
Per review feedback: let semantic-release manage the changelog content.
Reverts the descriptive notes added in 6c75163.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replaces the placeholder with an Initial Version entry that explains what
the skill is for, what's included (SKILL.md, the Node helper, package and
release config), the handoff/upskill verb prefixes, the SLICC_PORT env
var, and security notes about treating the instruction string as
untrusted input. Future semantic-release entries will be prepended above
this section.
Co-authored-by: Cursor <cursoragent@cursor.com>
Adds a new skill that lets an external coding agent hand off the current
task to the SLICC browser agent, or trigger installation of a skill into
SLICC from a GitHub repo. The skill ships a small Node helper that posts
to a local SLICC node-server on localhost and (optionally) opens the
sliccy.ai handoff URL so the SLICC extension can pick it up via its
RFC 8288 Link header observer. Either path results in a yes/no approval
card in the SLICC cone keyed by verb prefix (handoff: / upskill:).
Registers the skill in plugins/aem/edge-delivery-services/tile.json.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hey @trieloff 👋
I ran your skills through `tessl skill review` at work and found some targeted improvements for the Cloud Service replication skill. Here's the before/after:
| Skill | Before | After | Change |
|-------|--------|-------|--------|
| replication (cloud-service) | 52% | 87% | +35% |
I picked this skill because it had the most room to grow across the repo — the baseline was 52%, lowest alongside `replication-orchestrator` (6.5 LTS). Since Cloud Service is the forward-looking runtime, it felt like the highest-signal place to contribute.
<details>
<summary>Changes made</summary>
**Description improvements (biggest impact — 40% → 100%):**
- Rewrote frontmatter description from a generic 2-line summary to a specific, action-oriented description listing concrete capabilities (publish, deactivate, delete, bulk activation, preview-tier targeting, sync/async, status checks, permissions, workflow steps, event handling)
- Added explicit "Use when..." clause with seven trigger scenarios covering natural language terms users would say ("publish pages", "activate content", "check replication status")
- Switched description from YAML block scalar to quoted string format
- Added metadata.category field
**Content improvements (42% → 73%):**
- Removed "Architecture: How Replication Works in Cloud Service" section — Claude already understands AEM's Sling Content Distribution pipeline
- Removed ReplicationActionType values table — these are self-evident from the linked Javadoc and the code examples
- Moved Common Patterns (auto-publish on Content Fragment save, external cache purge after publication) to references/patterns.md for progressive disclosure, reducing the main SKILL.md by ~100 lines
- Added a Service User setup pattern to the reference file for completeness
- Condensed Best Practices section — removed verbose exception handling example, consolidated service user guidance into a concise paragraph with a link to the reference file
- Net result: SKILL.md dropped from 744 to 592 lines with better structure
**Unchanged skills:**
- All other 88 skills left untouched — many are already scoring well (replicate-content at 100%, workflow-development at 99%, best-practices at 94%)
</details>
I also stress-tested your replication skill against a few real-world task evals and it held up really well on bulk content activation with automatic transactional bucketing above the 100-path threshold. Kudos for that.
Honest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch — just saw room for improvement and wanted to contribute.
Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at this Tessl guide (https://docs.tessl.io/evaluate/optimize-a-skill-using-best-practices) and ask it to optimize your skill. Ping me — @yogesh-tessl (https://github.com/yogesh-tessl) — if you hit any snags.
Thanks in advance 🙏
Co-authored-by: Yogesh Rao <yogesh-tessl@users.noreply.github.com>
* fix(aem-workflow): correct cq.workflow.job.max.procs parallelism myth in workflow-debugging (AEM 6.5 LTS)
The skill instructed customers to increase cq.workflow.job.max.procs
for workflow throughput. While that property is shown in Felix Console
(its display name and description are defined in the WorkflowSession
Factory metatype), it has no effect at runtime — no code path reads
the value. Real workflow parallelism is controlled by queue.maxparallel
on the "Granite Workflow Queue" (an Apache Sling Job Queue
Configuration instance). The skill's own thread-pool section at
SKILL.md:105 already mentions Max Parallel correctly; the four
cq.workflow.job.max.procs references contradicted that and were
misleading customers.
- SKILL.md: 4 references to cq.workflow.job.max.procs replaced with
queue.maxparallel on the Granite Workflow Queue
- reference.md: parallelism row updated to point to the correct OSGi
config (Apache Sling Job Queue Configuration)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): correct JMX MBean ObjectName for retry/queue-info ops in workflow-debugging (AEM 6.5 LTS)
The skill cited com.adobe.granite.workflow:type=Repository as the
MBean hosting retryFailedWorkItems, returnSystemJobInfo, and
returnWorkflowQueueInfo. That ObjectName does not exist on AEM 6.5 LTS
— a JMX lookup returns 404. All three operations actually live on
com.adobe.granite.workflow:type=Maintenance, the same MBean the skill
already used correctly for purgeCompleted/countStaleWorkflows/
restartStaleWorkflows. The real second workflow MBean is
:type=Statistics, which exposes time-series execution metrics.
Updates Step 7 (Key JMX MBeans) to:
- Consolidate every workflow maintenance operation under the
Maintenance MBean (matches what AEM actually exposes via JMX)
- Add Statistics MBean as a separate row with its read/write
accessors for DataLifeTime / DataFidelityTime / DataProcessRate /
DataRate plus getResults / clearRecords
- Add operation parameter signatures (model, days, dryRun) where
applicable
Verified on AEM 6.5 LTS localhost:4505:
- :type=Maintenance → HTTP 200
- :type=Statistics → HTTP 200
- :type=Repository → HTTP 404 (does not exist)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): replace stale Config Status ZIP file refs with live Felix Console URLs in workflow-debugging (AEM 6.5 LTS)
The skill instructed customers to "check in 039_Sling_Thread_Pools.txt"
and similar numbered files from the Configuration Status ZIP for
thread pools, threads, Sling Jobs, and Sling Scheduler data. The
Config Status ZIP produced by AEM 6.5 LTS (/system/console/
status-Configurations.zip) does not contain those numbered files —
only 000_Configurations.txt and index.json. A customer following the
skill would search for files that do not exist on their AEM.
Updates all 9 references to point to the live Felix Console pages
that are the actual sources of this data:
- 039_Sling_Thread_Pools.txt -> /system/console/status-slingthreadpools
- 042_Threads.txt -> /system/console/status-Threads
- 043_Threads__via_JStack_.txt -> /system/console/status-jstack-threaddump
- 027_Sling_Jobs.txt -> /system/console/slingevent
- 034_Sling_Scheduler.txt -> /system/console/status-slingscheduler
- 003_Configurations.txt -> /system/console/configMgr
Each URL verified to return HTTP 200 on AEM 6.5 LTS localhost:4505.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): correct Granite Workflow Queue Max Parallel default value in workflow-debugging (AEM 6.5 LTS)
The skill stated that the Granite Workflow Queue ships with
queue.maxparallel = 1. The actual OOTB value on AEM 6.5 LTS is 0.5,
which the Sling Job Queue interprets as "50% of available CPU cores"
(fractional values in 0..1 are CPU-relative; integers >= 1 are
absolute worker counts). A customer following the previous skill
would plan throughput tuning against the wrong starting point.
Updated in two places:
- Step 3c Granite Workflow Queue config bullet list
- Step 5 Configuration checklist table row
Both now cite the OOTB 0.5 value with a pointer to verify the running
value via the OSGi config endpoint at
/system/console/configMgr/org.apache.sling.event.jobs.QueueConfiguration~workflow.
Verified on AEM 6.5 LTS localhost:4505: queue.maxparallel = 0.5.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All existing CHANGELOG.md files contained commits from the entire repo
since the skill's last tag, making release notes meaningless. This
regenerates each one from scratch using git log filtered to the skill's
own directory, following up on #139 which fixed the root cause for
future releases.
Empty release sections (e.g. 1.0.0) indicate versions bumped solely by
docs/refactor commits, which is correct — the angular preset omits those
types from the CHANGELOG body.
Also adds scripts/regenerate-changelogs.cjs in case a manual re-run is
ever needed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(aem-workflow): update workflow-launchers content for AEM 6.5 LTS
Updates the workflow-launchers skill for AEM 6.5 LTS with validated
content covering launcher configuration, condition patterns, and
JCR-event-driven workflow triggering. SKILL.md now references the
canonical foundation refs hosted under workflow-orchestrator instead
of local duplicates.
- SKILL.md: expanded launcher configuration guidance; loop-prevention
guardrail clarified (WorkflowSession vs JCR Session disambiguation);
IDE-LLM consumability improvements; foundation ref links re-pointed
to workflow-orchestrator canonical copies
- condition-patterns.md: ECMAScript (Rhino) terminology corrected;
pattern coverage tightened
- launcher-config-reference.md: cq:WorkflowLauncher property
reference expanded; consumability improvements
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(aem-workflow): remove duplicated foundation refs from workflow-launchers (AEM 6.5 LTS)
The 6 foundation reference files under workflow-launchers/references/
workflow-foundation/ duplicated the canonical copies hosted in
workflow-orchestrator/references/workflow-foundation/. SKILL.md links
were re-pointed to the canonical copies in the previous commit, so
the local duplicates are now orphaned.
Deletes:
- 65-lts-guardrails.md
- README.md
- api-reference.md
- architecture-overview.md
- jcr-paths-reference.md
- quick-start-guide.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): correct loop-prevention setUserData value in workflow-launchers (AEM 6.5 LTS)
The skill instructed setUserData("workflowmanager") for loop prevention.
AEM's WorkflowLauncherListener does not recognize that string. The
correct value is "changedByWorkflowProcess", which matches
HandlerBase.WORKFLOW_SESSION_USERDATA in
com.adobe.granite.workflow.core and is the default member of the OSGi
config property granite.workflow.launcher.globally.exluded.event.user.data
that the launcher reads at startup.
- SKILL.md: setUserData("workflowmanager") -> "changedByWorkflowProcess"
in the loop-prevention guardrail (2 occurrences in same line)
- condition-patterns.md: setUserData("workflowmanager") ->
"changedByWorkflowProcess" in the Java snippet; rewrote the comment
to correctly distinguish the OSGi config-property name from the
userData value
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): correct OOTB launcher names, excludeList format, and condition shorthand in workflow-launchers (AEM 6.5 LTS)
Audit findings verified against AEM 6.5 LTS localhost:4505 OOTB
launchers under /libs/settings/workflow/launcher/config/:
- SKILL.md "Common OOTB Launchers" table: dam_update_asset_create
does not exist (actual: update_asset_create); dam_update_asset_modify
does not exist (actual: update_asset_mod); dam_xmp_writeback trigger
description corrected to PROPERTY_CHANGED (eventType=16) on
nt:unstructured at /jcr:content/metadata; update_page_version_*
removed (not present in /libs, /conf, or /apps on a baseline 6.5 LTS
install). Table expanded with eventType, nodetype, glob, and
workflow columns
- SKILL.md and launcher-config-reference.md: excludeList type
corrected from String[] to String (single comma-separated value);
description expanded to document the two entry formats — bare JCR
property names and the event-user-data:<value> prefix that excludes
events tagged with a specific JCR observation userData
- launcher-config-reference.md: document the singular `condition`
shorthand alongside the plural `conditions` array; both forms are
accepted at startup
- condition-patterns.md: loop-prevention comment rewritten to explain
the changedByWorkflowProcess value via the customer-visible OSGi
config property granite.workflow.launcher.globally.exluded.event.
user.data (visible in Felix Console)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): correct workflow-model-design XML format for /conf design-time (AEMaaCS)
The cloud-service workflow-model-design skill incorrectly showed
cq:WorkflowModel / cq:WorkflowNode / cq:WorkflowTransition (runtime
/var format) under the /conf design-time path. The Workflow Model
Editor expects cq:Page + jcr:content/flow/<step-component> with
nt:unstructured step nodes and sling:resourceType identifiers.
A developer following the previous content would deploy a model the
editor cannot open and Sync cannot process.
Verified against AEM Cloud Service SDK localhost:4517 OOTB models at
/libs/settings/workflow/models/ and source at com.adobe.granite.workflow
on master branch.
- model-xml-reference.md: full rewrite to cq:Page + flow/parsys
format; design-time vs runtime table; cq:template fix to
/libs/cq/workflow/templates/model; rewritten pitfalls section;
runtime /var shape documented for reference
- step-types-catalog.md: every step snippet converted to
nt:unstructured + sling:resourceType; sling:resourceType reference
table added; initiatorparticipant documented; transition XML
removed (Sync derives transitions from step order)
- model-design-patterns.md: Pattern 5 Task Manager XML corrected to
flow-layer format; Pattern 6 variables annotated as runtime-only
- SKILL.md: Sync verification added to checklist; /conf-only on
AEMaaCS distinction (no /etc legacy auto-deploy); filter.xml
guidance updated
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): correct AND_SPLIT/AND_JOIN/END resourceTypes in workflow-model-design (AEMaaCS)
The cloud-service step-types-catalog listed sling:resourceType values
for AND_SPLIT, AND_JOIN, and END that do not exist as design-time
components on AEM Cloud Service. Verified against
/libs/cq/workflow/components/model/ on localhost:4517.
- sling:resourceType table: AND_split -> and (actual OOTB component
is named `and`, not `AND_split`); AND_join and end rows removed
(no such components exist)
- AND_SPLIT example: corrected sling:resourceType to
cq/workflow/components/model/and; AND_JOIN inline example removed
- AND_JOIN section: replaced manual <synchronize> example with note
that AEM Sync derives AND_JOIN nodes automatically at /var
- END Node section: replaced manual <workflowend> example with note
that Sync derives both START and END automatically
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Align with the updated MCP server which split fetch-cam-bpa-findings
into two purpose-specific tools:
- fetch-cam-bpa-findings-by-pattern: code-transformer pattern flows
(scheduler, assetApi, eventListener, resourceChangeListener, eventHandler)
- fetch-cam-bpa-findings-by-importance: returns authoritative _COUNT_
rollup rows at one importance level (CRITICAL/MAJOR/ADVISORY/INFO),
sorted by descending count — for open-ended "what are the critical
findings?" requests
Changes:
- cam-mcp.md: rename all references; add full Tool section for
fetch-cam-bpa-findings-by-importance (request, response shape,
backend endpoint, error response note)
- SKILL.md: update CAM via MCP summary and batching section to name
both tools with their respective use cases
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The MCP cam-bpa-fetcher now returns success:true with an empty targets
array and a message field when a specific pattern has no findings in the
latest BPA report, instead of success:false with a misleading "upload
BPA report" suggestion.
Align the skills layer:
- BpaResult gains a message field (unified-collection-reader.js)
- bpa-findings-helper caches and propagates mcp.message so callers see
"No 'scheduler' findings in the latest BPA report for project X"
rather than the generic cache message when targets are empty
- cam-mcp.md documents the new message field on the success response
and splits the empty-targets behavior table row into the two distinct
cases (success:true specific-pattern vs success:false all-pattern)
- New test verifies message propagation, cache write, and no re-fetch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(aem-workflow): correct workflow-model-design XML format for /conf design-time (AEM 6.5 LTS)
The workflow-model-design skill incorrectly showed cq:WorkflowModel /
cq:WorkflowNode / cq:WorkflowTransition (runtime /var format) under the
/conf design-time path. The Workflow Model Editor expects cq:Page +
jcr:content/flow/<step-component> with nt:unstructured step nodes and
sling:resourceType identifiers. A developer following the previous
content would deploy a model the editor cannot open and Sync cannot
process.
Verified against AEM 6.5 LTS localhost:4505 OOTB models at
/libs/settings/workflow/models/ and source at
WorkflowSessionFactory.java:94 (MODELS_RUNTIME_LOCATION = "/var/workflow/models").
- model-xml-reference.md: full rewrite to cq:Page + flow/parsys
format; design-time vs runtime table; cq:template fix to
/libs/cq/workflow/templates/model; rewritten pitfalls section;
runtime /var shape documented for reference
- step-types-catalog.md: every step snippet converted to
nt:unstructured + sling:resourceType; sling:resourceType reference
table added; initiatorparticipant documented; transition XML
removed (Sync derives transitions from step order)
- model-design-patterns.md: Pattern 5 Task Manager XML corrected to
flow-layer format; Pattern 6 variables annotated as runtime-only
- SKILL.md: Sync verification added to checklist; /conf vs /var
distinction note; filter.xml guidance updated
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(aem-workflow): correct AND_SPLIT/AND_JOIN/END resourceTypes in workflow-model-design (AEM 6.5 LTS)
The step-types-catalog incorrectly listed sling:resourceType values for
AND_SPLIT, AND_JOIN, and END that do not exist as design-time
components on AEM 6.5 LTS. Verified against
/libs/cq/workflow/components/model/ on localhost:4505.
- sling:resourceType table: AND_split -> and (the actual OOTB
component is named and, not AND_split); AND_join and end rows
removed (no such components exist)
- AND_SPLIT example: corrected sling:resourceType to
cq/workflow/components/model/and; AND_JOIN inline example removed
- AND_JOIN section: replaced manual <synchronize> example with a note
that AEM Sync derives AND_JOIN nodes automatically at /var
- END Node section: replaced manual <workflowend> example with a note
that Sync derives both START and END automatically
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(replicate-content): condense SKILL.md to pass tessl-review (#117)
Rewrites replicate-content/SKILL.md from 840 lines to ~150 lines and
adds three reference files so the skill passes the 50% tessl-review
threshold.
Changes:
- Description: add explicit "Use when..." clause and trigger terms
(publish, unpublish, replicate, content activation, dispatcher flush,
AEM publish instance) to improve specificity and completeness scores
- Body: condense all seven replication methods to 3-5 lines each with
explicit ✓ Verify checkpoints; remove generic Best Practices,
Security Considerations, and Success Criteria sections
- Split detailed walkthroughs into references/ bundle files:
- references/TREE_ACTIVATION.md (dry-run steps, performance guidance)
- references/PACKAGE_REPLICATION.md (full package build/replicate flow)
- references/REPLICATION_API.md (Java API, ReplicationOptions,
curl with error handling, service user setup)
Fixes#117
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(replicate-content): address quality review findings
- CRITICAL: replace invalid XML service-user mapping with correct OSGi
JSON config format (.cfg.json) in REPLICATION_API.md
- HIGH: add REVERSE to ReplicationActionType table (was missing)
- HIGH: add replication-api to Related Skills in SKILL.md
- MEDIUM: add Only Activated option to Tree Activation summary to match
TREE_ACTIVATION.md reference file
- MEDIUM: fix head -n1 → sed '$d' in production curl script to handle
multiline JSON responses without truncation
- MEDIUM: add brief Asset Replication (DAM) section to SKILL.md
- LOW: add Additional Resources section with official Adobe docs links
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Abhishek Garg <abhigarg+adobe@adobe.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Tighten aem-rde activation: explicit RDE references only; add do-not-activate guard for generic AEMaaCS phrases (cloud sandbox, dispatcher-config/frontend/env-config, push my bundle, tail the publish log) that belong to Cloud Manager pipelines
- Mark skill as beta per project conventions: [BETA] prefix in description with caveat, metadata.status: beta in frontmatter, and a beta-skill blockquote in the body
- Reflect beta status in README entry
- Update aem-cloud-service plugin.json description and keywords to mention RDE for discoverability
- Add aem-rde skill section to README.md for human and AI agent discovery
- Document single-user RDE constraint in references/configuration.md
Introduces a new plugin 'aem-cloud-service' to host AEMaaCS / Cloud
Manager related skills, separate from the existing
'aem-edge-delivery-services' grouping. Adds the 'aem-rde' skill which
provides expert guidance on '@adobe/aio-cli-plugin-aem-rde' commands:
deploy, inspect, log-tail, snapshot, and troubleshoot Rapid Development
Environments.
Renames resources/ to references/ across 8 skills to match the
agentskills.io spec — every other plugin in this repo and EDS's own
ue-component-model already use references/.
Converts backtick-quoted resource paths in SKILL.md to markdown links
so tessl lint sees them as reachable from manifest entrypoints,
eliminating all 17 orphan warnings. Also fixes two pre-existing broken
cross-skill references that pointed at ../page-import/resources/...
(no such directory); the actual file lives in
content-driven-development/references/.
Adds a markdown link in code-review/SKILL.md to its previously
unreferenced references/review-checklist.md.
Per Anthropic's agent skills spec, markdown links don't trigger eager
loading — Claude reads SKILL.md, sees the link, decides on demand
whether to follow it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Suppresses tessl lint warnings about CHANGELOG.md and package.json
files that exist as semantic-release / semantic-release-monorepo
artifacts but are not skill content.
Negation pattern preserves package.json files under scripts/ so that
future skills shipping node script tools have their packaging metadata
bundled correctly.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two skills existed in the skills/ directory but were absent from
tile.json, so tessl never saw them. Adds both to the skills map and
creates the missing package.json for ue-component-model so the release
workflow can pick it up.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(da-auth): add da-auth skill and surface DA auth in CDD workflow
Adds a dedicated da-auth sub-skill for obtaining a valid Adobe IMS
token before making DA Admin API calls. Updates content-driven-development
and building-blocks to reference it at the right points in their workflows.
Motivation: agents working outside the create-site onboarding flow had
no guidance on DA authentication, requiring manual hand-holding every
time content needed to be pushed or a preview triggered.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(da-auth): remove CMS phrasing from DA references
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>