I like it, but I might be biased :-)
Looks good Kristen
@kristen I would suggest the following:
Bug
Title
Clear, concise summary of the problem (e.g., "Crash on login when username is blank")
Description
- What’s happening vs. what’s expected?
- Include any error messages, stack traces, or logs.
- If it’s a regression, mention when it last worked.
- Describe expected behavior
Steps to Reproduce in Drupal AI DDEV environment
1. Go to ‘...’
2. Click on ‘...’
3. See error
Environment
- Drupal version:
- Drupal AI version:
- Browser (if relevant):
- Any relevant config or flags
Todos
- Fix the bug
- Provide testing instructions in Drupal AI DDEV environment
Requirements / Acceptance Criteria
- When I follow the testing instructions I can verify the feature works
URLs (if applicable)
- Link to the affected page (can be relative)
Screenshots (if applicable)
- Provide a screenshot showing the issue
Feature
Title
Short summary of the feature (e.g., "Add dark mode toggle in settings")
Description
- What is the feature?
- What problem does it solve or what value does it add?
User Story / Use Case
As a [type of user], I want to [goal] so that [benefit].
Todos
- Create concept
- Implement
- Provide testing instructions in Drupal AI DDEV environment
- Provide documentation
Requirements / Acceptance Criteria
- When I read the documentation I understand how the feature is supposed to work
- When I follow the testing instructions I can verify the feature works
Design / UI Notes
- Link to mockups, wireframes, or design files if available
Dependencies or Related Work
- Mention any backend work, third-party libraries, or affected components
URLs (if applicable)
- Link to spec, design, or existing feature area
Screenshots (if applicable)
- Add mockups, visual references, or examples
Task
Task Requirements
Title
Describe the task clearly (e.g., "Provide documentation for new contributors")
Description
- What needs to be done and why
- Not necessarily user-facing
Checklist / Subtasks
- Break down into actionable steps if helpful
Context / Background
- Link to related tickets, technical docs, Slack threads, etc.
Todos
- Describe what needs to be done
Requirements / Acceptance Criteria
- Describe what does “finished” looks like
Effort Estimation based on current information
Re-Build Logging (Buckets 1-3 above): 10-15 days
The majority of the work goes into the re-creation of the AI logging sub-module, and updating the Extended Logger → module.
Creating sensible management views (like number of tokens spent, or number of AI calls) does not take so much time. Most of the work for this would be to define what views make sense.
Creating a log export function does not take much time.
Create OTEL integration: 5-10 days
The creation of a new sub-module called AI Oberservability is not very difficult. The majority of the work flows into mapping AI event data to OTEL's traces, spans, attrributes, and events in a meaningful way. The module Opentelemetry → also needs to be upgraded.
Delivery
It is planned that EPAM delivers above functionality with their own team. Communication with the core maintainers Marcus and Artem will be via a dedicated channel in Slack (#ai-obersability).
First the new logging will be developed, then the OTEL integration.
> The About you should be the first step
Not sure, usually you do it the other way around. Personal stuff at the end. I think if people filled out the complete survey, they would like to get the results. Therefore, they would also fill out the about you section on the last page.
breidert → created an issue.
@pdjohnson - please add the survey to DO/ai in a sensible place with supporting text.
On the page this HTML code has to be placed
<iframe src="//www.1xinternet.com/en/webform/custom_drupal_ai_features/share/iframe-resizer/4.2.10" title="Drupal AI Features Survey | 1xINTERNET" class="webform-share-iframe" frameborder="0" allow="geolocation; microphone; camera" allowtransparency="true" allowfullscreen="true" style="width:1px;min-width:100%"></iframe>
<script src="//cdn.jsdelivr.net/gh/davidjbradshaw/iframe-resizer@4.2.10/js/iframeResizer.min.js"></script>
<script>iFrameResize({}, '.webform-share-iframe');</script>
General questions about AI usage in organizations were added with the option to specify.
- Are you using AI in your daily work?
- Is your organization using AI already?
Additional information from weekly meeting:
The UI/UX has to make it simple to create and manage guardrails. However, since there are many things to configure, this could become complex.
Guardrails can be general and apply to general functionality such as AI Translation or Content Suggestions, where you might just need to block things like PII data or flag things like <script>
tags.
Guardrails can also be very specific and be tied to a single agent or a tool.
A specific example of a guardrail for a single agent might be something like:
“Check that the text in the image only includes cooking instructions—nothing else.”
You’d only want that guardrail running for the agent that generates food recipes—not every AI process.
A UI/UX should work for all use cases.
AI bots are becoming a real issue. Many of our clients face massive bot hits and we have to spend a lot of energy on traffic shaping on the CDN/WAF level.
Note that CDN providers such as Cloudflare make it really easy (or even default settings) to block AI scrapers:
- https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-s...
- https://www.fastly.com/blog/take-back-control-make-ai-bots-play-by-your-...
- ...
I think the traffic part is not what we can influence, that happens before traffic hits Drupal websites.
But what we can do is provide functionality to make sure the AI(s) we use (in our agentic systems) can be restricted to deliver ethical results.
IMO the way to go is to provide string guardrail functionality with sensible defaults. There is already an issue for guardrails ✨ Create the concept of Guardrail agents Active , and we are currently looking for contributors that are willing to take this on.
marcus_johansson → credited breidert → .
@matthews - in the end we need providers listed for the different model types on /admin/config/ai/settings
(Image Classification, Image to Video, Speech to Text, etc.).
breidert → created an issue.
@darren oh
On Drupal.org you can add general projects. Here is the documentation for general projects → .
These can contain arbitrary code as for example DDEV installation scripts.
They are also used for recipes (for example this one → which we contributed earlier this year).
- Updated Brand guide agent
- Remove Idea generator
- Remvoed Control Center Agent
Survey overview was updated
Introduction text was update from
Thank you for participating in this survey! The Drupal AI initiative is working hard to integrate powerful AI capabilities into Drupal including advancements in agentic capabilities and Model Context Protocol (MCP) support.
In parallel with these core development efforts, we are also building production-ready features that can be used immediately on Drupal websites. To ensure we prioritize the development of the most valuable "ready-to-use" functionalities, we need your insights.
This survey presents various AI functionalities we intend to build that are focused on immediate application. We ask you to assess the value each functionality would bring to your work. Your feedback is important in helping us prioritize our development roadmap and deliver features that truly make a difference in your day-to-day operations.
The survey should take approximately 10-15 minutes to complete. Your responses will be kept confidential and used solely for product development purposes.
to
Thank you for taking the time to complete this survey.
The Drupal AI Initiative is working to deliver a range of new ready-to-use AI capabilities for Drupal. These will help you gain immediate value from AI, with minimal technical barriers to adoption.
We ask you to assess the value each functionality would bring to your work. Your feedback is important in helping us prioritize our development roadmap and deliver features that truly make a difference in your day-to-day operations.
The survey should take around 10-15 minutes to complete. All responses are confidential and will be used solely to guide product development.
Other (please specify) was fixed for industry and role.
breidert → created an issue.
More topics:
- We have a concept for AI Logging and AI telemetry, I would like to present the meta issue for this.
- We will conduct a contribution survey for AI features that organizations would like to have. This should be mentioned.
- I am currently working on a concept of UX. Not the concept itself, but the issue, what should be covered in the concept. I would like to mention this, too.
Additional information: At 1xINTERNET we use an bash script to setup a local development environment. For reference I added the docker compose file for Milvus vector database → and the relevant parts of the installation script.
# Add RAG support.
if [ "${rag}" == "true" ]; then
echo "Enable Milvus vector database"
mv .ddev/example.docker-compose.milvus.yaml .ddev/docker-compose.milvus.yaml
ddev restart
fi
breidert → created an issue.
breidert → created an issue.
kristen pol → credited breidert → .
I created a survey, that can be tested here: https://www.1xinternet.com/en/drupal-ai-initiative-features-roadmap?auHa...
It can also be embedded on DO (here is a test):
The configuration of the survey is attached as YML.
breidert → created an issue.
breidert → created an issue.
IMO the jobs run like this:
Issue fork repository:
- js_build - Rebuilds JS but does not commit changes and pushes, because there is no access token.
- phpunit - Run test with rebuilt JS
The build JS is saved as an artifact and used for testing.
Main repository (after merging, or with direct commits):
- js_build - Rebuilds JS, commits and pushes changes (if any) with an access token. The commit is run with option
-o ci.skip
to prevent the same pipeline from being triggered. - phpunit - Run test with rebuilt JS
I think this is correct. Tests are always run with the latest JS code. The latest JS code becomes part of the repository and will be part of releases.
Idea:
- In the Gitlab pipeline we build the js artifacts for ai_ckeditor and push them to the repository
- Gitlab is configured not to run the pipleline again because of the commit message
[ci skip]
Todo:
The build runner needs access permissions to push to the Gitlab repository.
Future:
The process should be generic for all sub-modules of ai.
Something like this:
.gitlab-ci.yml
js_build:
stage: build
script:
-|
modules=$(find modules -maxdepth 1 -mindepth 1 -type d)
for module in ${modules[@]}; do
pushd ${module}
if [ -f ./build.sh ]; then ./build.sh; rm -rf node_modules; fi
popd
done
breidert → made their first commit to this issue’s fork.
I tested this locally, and the code works fine.
The following issues were mentioned as blockers in the last AI meeting:
- 🐛 Not getting all operation types on AI Settings page Active #comment-16096347 <- give suggestions if my idea is good.
- 📌 Rename Agent Instructions and add System Prompt Active
- 📌 Make AI Agents form available in AI Assistants Active
This was a false positive, the functionality works correctly.
breidert → created an issue.
borisson_ → credited breidert → .
Thank you Dale :-)
Draft removed.
Good point Dale!
If it is enabled by default via update_hook, people see the new functionality and can turn it off. I guess it is the maintainer to decide :-)
First version was created and all plugins were updated.
It looks like this:
However, this might be a breaking change, because all existing plugins would have to be updated.
breidert → created an issue.
The code in the MR works nicely. You get the same btton in a baloon menu.
The result looks like this:
breidert → created an issue.
Screenshots of new functionality provided in MRs:
breidert → created an issue.
We are working on this at 1xINTERNET, and could contribute our work.
I tested this locally and it works. Also in combination with https://www.drupal.org/project/ai/issues/3509363#comment-16018217 ✨ Allow other modules to provide styles for Deep Chat Active
I tested it locally and the code works.
This was fixed and can be reviewed on /documentation/image-credits
breidert → created an issue.
Here is a screen recording of the current status: https://www.drupal.org/files/issues/2025-01-14/screen-capture-drupal-cms... →
When testing you might want to delete the content that comes with individual recipes fiest:
#!/bin/bash
# Define the recipes to delete content from
recipes=("drupal_cms_blog" "drupal_cms_case_study" "drupal_cms_events" "drupal_cms_news" "drupal_cms_person" "drupal_cms_project")
# Find all directories matching the pattern recipes/*/content
for folder in recipes/*/content; do
for recipe in "${recipes[@]}"; do
if [[ "$folder" == *"$recipe"* ]]; then
echo "Deleting folder: $folder"
rm -rf "$folder"
break
fi
done
breidert → created an issue.
I think we should close this issue and start a new one.
We have already started to work on demo content, it is getting quite nice: https://www.drupal.org/project/drupal_cms_demo_content →
From my perspective there are several aspects to the topic of content strategy.
- Information Architecture / Data model - how we create content recipes
- Demo content - presenting demo content
- On-boarding new users - through demo content and explanations
I suggest closing this issue and start new ones.
This works correctly.
For blog and news items it is still showing.
For testing you can enable demo content, then you have content for all content types. When searching for 'drupalcon' you see news and blog items:
ddev composer require drupal/drupal_cms_demo_content
ddev drush recipe ../recipes/drupal_cms_demo_content
ddev drush recipe ../recipes/drupal_cms_search
ddev drush sapi-r
ddev drush sapi-i
ddev launch /search?text=drupalcon
I reviewed and it looks good.
For reviewing I went to https://www.1xinternet.de/en/drupal-cms-start-demo and started a full demo with demo content for a better search experience.
Initially the search is only in the sidebar, because the main menu is crowded. For testing the search with the desktop menu I disabled some menu entries.
All search UIs look nice.
Updated testing instructions
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
Updated testing instructions
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
Updated testing instructions
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
Updated testing instructions
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
Updated testing instructions
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
Documentation for user management was provided.
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
Documentation foverview was provided, but needs more work.
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
Documentation for content management was provided, but needs more work.
Testing locally:
- Install Drupal CMS locally following the instructions in the README.md of the project
- Require demo content recipe:
ddev composer require drupal/drupal_cms_demo_content
- Re-install with demo content:
ddev drush si ../recipes/drupal_cms_demo_content
Tesing using Drupal CMS online demo:
- Go to https://www.1xinternet.de/en/drupal-cms-start-demo
- Request demo with demo content (default option)
breidert → created an issue.
breidert → created an issue.
breidert → created an issue.
Initial content was provided, FAQ content as of today.
breidert → created an issue.
lostcarpark → credited breidert → .
Demo users based on the ambitous user personas from the concept document were created.
Testing locally:
Get the latest code for Drupal CMS.
Fetch and install
drupal_cms_demo_content →
recipe: composer require drupal/drupal_cms_demo_content
Install site using recipe: drush si ../recipes/drupal_cms_demo_content
An initial startpage was created.
Testing locally:
Get the latest code for Drupal CMS.
Fetch and install
drupal_cms_demo_content →
recipe: composer require drupal/drupal_cms_demo_content
Install site using recipe: drush si ../recipes/drupal_cms_demo_content
breidert → created an issue.
breidert → created an issue.
The errors reported in 5. and 6. were fixed.
Testing locally:
Get the latest code for Drupal CMS.
Fetch and install
drupal_cms_demo_content →
recipe: composer require drupal/drupal_cms_demo_content
Install site using recipe: drush si ../recipes/drupal_cms_demo_content
Testing locally:
Get the latest code for Drupal CMS.
Fetch and install
drupal_cms_demo_content →
recipe: composer require drupal/drupal_cms_demo_content
Install site using recipe: drush si ../recipes/drupal_cms_demo_content
Testing locally:
Get the latest code for Drupal CMS.
Fetch and install
drupal_cms_demo_content →
recipe: composer require drupal/drupal_cms_demo_content
Install site using recipe: drush si ../recipes/drupal_cms_demo_content
Projects were created:
- Strengthening Drupal: Advancing Security and Developer Tools with $300,000 STF Funding
- Drupal Steward
- Defend Iceland
breidert → created an issue.
Three news items were produced. The news items were taken from DO.
- Nominate someone for the 2025 Aaron Winborn Award
- See Your Design in Print - Enter the DrupalCon Atlanta T-Shirt Contest
- Drupal CMS: Groundbreaking New Version of Drupal Detailed at DrupalCon Singapore 2024
No more work in this issue. The other content will be produced in separate issues.
Three case studies were created:
* Defend Iceland (presented in a keynot at DrupalCon Barcelona 2024)
* Drupal Steward
* Drupal secures funding from STF
I added photos for all projects and neutral descrioptions.
I am not sure if the approach is safe.
If you switch windows before the next save interval (e.g. 60s), then your form is not saved.
I think that you should first stop saving, if the document has been hidden longer than the interval. Then you are sure that the last change was saved.