Refactored documentation to make it AI and human friendly.#2248
Refactored documentation to make it AI and human friendly.#2248AlexSkrypnyk wants to merge 1 commit intomainfrom
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
WalkthroughLarge documentation restructure: CLAUDE.md rewritten and many workflow docs under Changes
Sequence Diagram(s)(Skipped — changes are documentation-only and do not introduce new runtime control flow requiring sequence diagrams.) Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@CLAUDE.md`:
- Around line 803-819: Add a preparatory step to ensure the .data directory
exists before the curl cookie save in Step 3: check for or create the .data
directory (mkdir -p .data) immediately before the curl -k -c .data/cookies.txt
-L "LOGIN_URL" command so that saving to .data/cookies.txt cannot fail if the
directory is missing; update the Step 3 text to include this directory creation
instruction and mention .data/cookies.txt explicitly.
- Around line 833-841: Add a short cleanup recommendation to the "Important
Notes" section: instruct users to delete the .data/cookies.txt file after use to
reduce the risk of stale authenticated sessions, and mention when (e.g., after
completing one-time login or when session is no longer needed) and how (simple
rm or manual delete) to perform the cleanup; reference the existing items
"Cookie storage" and "One-time use" so readers see the relation to .data/ and
`ahoy login`.
CLAUDE.md
Outdated
| ```bash | ||
| # Step 1: Get the site URL from project info | ||
| ahoy info | ||
| # Note the URL (e.g., http://your-project.docker.amazee.io) | ||
|
|
||
| # Step 2: Get a one-time login URL | ||
| ahoy login | ||
| # Output example: http://your-project.docker.amazee.io/user/reset/1/1234567890/abc123/login | ||
|
|
||
| # Step 3: Authenticate and save session cookies | ||
| # Replace LOGIN_URL with the full URL from Step 2 | ||
| curl -k -c .data/cookies.txt -L "LOGIN_URL" | ||
|
|
||
| # Step 4: Access any authenticated page using saved cookies | ||
| # Replace SITE_URL with your site URL from Step 1 | ||
| curl -k -b .data/cookies.txt "SITE_URL/admin/content" | ||
|
|
There was a problem hiding this comment.
Ensure .data/ exists before saving cookies.
If the directory doesn’t exist, curl -c .data/cookies.txt will fail. Add an explicit mkdir -p .data step before Step 3.
🔧 Suggested doc tweak
# Step 2: Get a one-time login URL
ahoy login
# Output example: http://your-project.docker.amazee.io/user/reset/1/1234567890/abc123/login
# Step 3: Authenticate and save session cookies
+# Ensure cookie directory exists
+mkdir -p .data
# Replace LOGIN_URL with the full URL from Step 2
curl -k -c .data/cookies.txt -L "LOGIN_URL"🤖 Prompt for AI Agents
In `@CLAUDE.md` around lines 803 - 819, Add a preparatory step to ensure the .data
directory exists before the curl cookie save in Step 3: check for or create the
.data directory (mkdir -p .data) immediately before the curl -k -c
.data/cookies.txt -L "LOGIN_URL" command so that saving to .data/cookies.txt
cannot fail if the directory is missing; update the Step 3 text to include this
directory creation instruction and mention .data/cookies.txt explicitly.
CLAUDE.md
Outdated
| #### Important Notes | ||
|
|
||
| - **Cookie storage**: Always use `.data/` directory - it is gitignored and won't | ||
| be committed | ||
| - **Session expiry**: Cookies expire after session timeout; regenerate with | ||
| Steps 2-3 as needed | ||
| - **Login URL format**: `http://SITE/user/reset/UID/TIMESTAMP/HASH/login` | ||
| - **One-time use**: Login URLs from `ahoy login` can only be used once; run | ||
| `ahoy login` again if needed |
There was a problem hiding this comment.
Add cleanup guidance for stored session cookies.
Given these cookies grant authenticated access, recommend deleting .data/cookies.txt after use to reduce risk of stale sessions.
🔧 Suggested doc tweak
- **One-time use**: Login URLs from `ahoy login` can only be used once; run
`ahoy login` again if needed
+- **Cleanup**: Remove `.data/cookies.txt` after troubleshooting to avoid leaving
+ authenticated sessions on disk🤖 Prompt for AI Agents
In `@CLAUDE.md` around lines 833 - 841, Add a short cleanup recommendation to the
"Important Notes" section: instruct users to delete the .data/cookies.txt file
after use to reduce the risk of stale authenticated sessions, and mention when
(e.g., after completing one-time login or when session is no longer needed) and
how (simple rm or manual delete) to perform the cleanup; reference the existing
items "Cookie storage" and "One-time use" so readers see the relation to .data/
and `ahoy login`.
This comment has been minimized.
This comment has been minimized.
|
|
|
Codecov Report✅ All modified and coverable lines are covered by tests.
Additional details and impacted files@@ Coverage Diff @@
## main #2248 +/- ##
==========================================
- Coverage 76.85% 0.00% -76.86%
==========================================
Files 112 1 -111
Lines 5846 10 -5836
Branches 44 0 -44
==========================================
- Hits 4493 0 -4493
+ Misses 1353 10 -1343 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This comment has been minimized.
This comment has been minimized.
|
There was a problem hiding this comment.
Actionable comments posted: 13
🤖 Fix all issues with AI agents
In @.vortex/docs/content/workflows/development/composer.mdx:
- Around line 207-211: The documentation incorrectly states "Composer 2.9.0
introduced automatic security auditing"; update that phrase to "Composer 2.4.0
introduced automatic security auditing" in the Security auditing section
(replace the text string "Composer 2.9.0 introduced automatic security auditing"
with "Composer 2.4.0 introduced automatic security auditing") so the document
correctly cites the version that added the feature.
In @.vortex/docs/content/workflows/development/README.mdx:
- Line 144: Replace the legacy Docker v1 CLI usage in the example command
"docker-compose logs --tail=50 web" with the Docker v2 syntax "docker compose
logs --tail=50 web"; update that exact command string (and any other occurrences
of "docker-compose" in the same README) so examples consistently use "docker
compose".
- Line 119: The documentation uses the old docker-compose v1 syntax string
"docker-compose ps" on the line shown; update that command to the modern v2
syntax "docker compose ps" to match other docs and maintain consistency across
the PR, ensuring any occurrences of the hyphenated form (e.g., "docker-compose")
in this README.mdx are replaced with the space-separated "docker compose".
- Around line 155-157: The import statement for the CodeLifecycle component is
placed inside a <details> block; move the import line "import CodeLifecycle from
'../_code-lifecycle.mdx';" to the module top-level immediately after the
frontmatter (near the top of the file) so imports are valid for Docusaurus, and
leave only the JSX tag "<CodeLifecycle />" inside the existing details block to
render the component.
In @.vortex/docs/content/workflows/notifications/github.mdx:
- Line 25: The doc shows a mismatch in case for the environment type: the
variable VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE lists default `PR` but the
allowed value `pr` is lowercase; update the documentation to be consistent by
either normalizing the displayed values (e.g., use lowercase `pr` in the default
and options) or explicitly state the case sensitivity (e.g., "values are
case-insensitive; accepted values: production/staging/uat/dev/pr (default:
PR)"). Ensure the variable name VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE and the
set of allowed values are consistent and unambiguous.
In @.vortex/docs/content/workflows/notifications/README.mdx:
- Around line 24-26: Update the channel list display to use the official
capitalization "GitHub": replace the backticked display text `github` with
`GitHub` in the "Available channels" list (the entry currently written as
[`github`](github)), and also search the document for any other occurrences of
the backticked `github` display text and change them to `GitHub` to keep
capitalization consistent.
In @.vortex/docs/content/workflows/notifications/slack.mdx:
- Line 8: Replace the incorrect sentence "Post deployment notification to Slack
a channel." with the corrected phrase "Post deployment notification to a Slack
channel." in the Slack notification doc (look for the exact string "Post
deployment notification to Slack a channel." in slack.mdx) so the word order and
article usage are fixed.
In @.vortex/docs/content/workflows/releasing/README.mdx:
- Around line 37-38: The Development bullet contains a sentence fragment ("not
yet released. May be unstable, but CI tests should pass."); update the
"**Development**" line so it is a single complete sentence (e.g., "Latest
development code, not yet released and may be unstable, but CI tests should
pass.") ensuring the "**Development**" label and the "**Stage**" bullet remain
unchanged.
- Line 113: The link target "notifications/newrelic" in the README (the arrowed
link line) is incorrect for the current document location; update the Markdown
link target from "notifications/newrelic" to "../notifications/newrelic" so it
points to the correct New Relic notification page.
In @.vortex/docs/content/workflows/testing/behat.mdx:
- Around line 165-170: Replace the incorrect article in the Gherkin example:
find the line "As a authenticated user" in the Behat example block and change it
to "As an authenticated user" (update the text inside the fenced gherkin snippet
so the four lines read As a site visitor, As a site administrator, As a content
editor, As an authenticated user).
- Around line 46-53: The example showing tagged scenarios uses an unnecessary
end-of-options separator; locate the line containing "docker compose exec cli
vendor/bin/behat -- --tags=@smoke" and remove the extra "--" so the Behat option
is passed directly to vendor/bin/behat (i.e., invoke vendor/bin/behat with the
--tags option rather than placing it after an end-of-options marker).
In `@CLAUDE.md`:
- Around line 34-38: The Drush task list is missing the database update command;
add "ahoy drush updatedb" into the list and place it before the existing "ahoy
drush cim" entry so the recommended deployment order runs database updates prior
to importing configuration (update the block that currently contains "ahoy drush
cr", "ahoy drush cex", "ahoy drush cim", "ahoy drush uli" to include "ahoy drush
updatedb" immediately before "ahoy drush cim").
- Around line 49-55: The documented PHPUnit command in CLAUDE.md uses the wrong
flag; replace the incorrect token "--filters=TestClassName" with the correct
PHPUnit flag "--filter=TestClassName" so the example command "ahoy test --
--filters=TestClassName" becomes "ahoy test -- --filter=TestClassName"; update
the single occurrence of "--filters=TestClassName" to "--filter=TestClassName"
(search for the string "--filters" or the example "ahoy test --
--filters=TestClassName" to locate the line).
| ## Security auditing | ||
|
|
||
| Composer 2.9.0 introduced automatic security auditing that checks your dependencies for known security vulnerabilities and abandoned packages. This feature helps you maintain a secure codebase by alerting you to potential issues during package installation and updates. | ||
|
|
||
| #### Configuration Options | ||
| ### Configuration options |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Composer automatic security auditing version history when introduced
💡 Result:
Composer’s built‑in automatic security auditing (checking installed/updated dependencies against known vulnerability advisories) was introduced in the Composer 2.4 line:
-
Introduced (first available): 2.4.0-RC1 — released July 21, 2022
Added the newcomposer auditcommand, automatic auditing aftercomposer update, and--auditforcomposer install(plus--no-auditto disable). [1] -
First stable release including it: 2.4.0 — released August 16, 2022 [2]
Packagist’s release post describes the feature as warnings about insecure dependency versions out of the box as part ofcomposer update, with--auditavailable forcomposer install. [3]
Practical behavior since 2.4:
- Runs automatically after
composer update(and generally when changing dependencies), unless you pass--no-audit. [1][3] - On
composer install, auditing is opt-in via--audit(performance reasons). [1][3]
Sources:
[1] Composer 2.4.0-RC1 changelog (getcomposer.org)
[2] Composer 2.4.0 changelog (getcomposer.org)
[3] “Composer 2.4 Release” (blog.packagist.com)
Update Composer version in security auditing section.
The claim "Composer 2.9.0 introduced automatic security auditing" is incorrect. Automatic security auditing was introduced in Composer 2.4.0 (released August 16, 2022), not 2.9.0. Update line 209 to reflect the correct version.
🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/development/composer.mdx around lines 207 -
211, The documentation incorrectly states "Composer 2.9.0 introduced automatic
security auditing"; update that phrase to "Composer 2.4.0 introduced automatic
security auditing" in the Security auditing section (replace the text string
"Composer 2.9.0 introduced automatic security auditing" with "Composer 2.4.0
introduced automatic security auditing") so the document correctly cites the
version that added the feature.
| ### Database connection errors | ||
|
|
||
| ```bash | ||
| docker-compose ps # Check if database container is running |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Inconsistent Docker Compose command syntax.
Line 119 uses docker-compose (v1 syntax), while other documentation files in this PR use docker compose (v2 syntax without hyphen). Consider using the modern docker compose syntax consistently throughout the documentation.
Suggested fix
-docker-compose ps # Check if database container is running
+docker compose ps # Check if database container is running📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| docker-compose ps # Check if database container is running | |
| docker compose ps # Check if database container is running |
🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/development/README.mdx at line 119, The
documentation uses the old docker-compose v1 syntax string "docker-compose ps"
on the line shown; update that command to the modern v2 syntax "docker compose
ps" to match other docs and maintain consistency across the PR, ensuring any
occurrences of the hyphenated form (e.g., "docker-compose") in this README.mdx
are replaced with the space-separated "docker compose".
| ahoy logs | ||
|
|
||
| # Check container logs | ||
| docker-compose logs --tail=50 web |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Same inconsistency: use docker compose (v2 syntax).
Suggested fix
-docker-compose logs --tail=50 web
+docker compose logs --tail=50 web📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| docker-compose logs --tail=50 web | |
| docker compose logs --tail=50 web |
🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/development/README.mdx at line 144, Replace
the legacy Docker v1 CLI usage in the example command "docker-compose logs
--tail=50 web" with the Docker v2 syntax "docker compose logs --tail=50 web";
update that exact command string (and any other occurrences of "docker-compose"
in the same README) so examples consistently use "docker compose".
| import CodeLifecycle from '../_code-lifecycle.mdx'; | ||
|
|
||
| <CodeLifecycle /> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
cat -n ".vortex/docs/content/workflows/development/README.mdx" | sed -n '140,170p'Repository: drevops/vortex
Length of output: 871
🌐 Web query:
Docusaurus MDX import inside details collapsible block rendering
💡 Result:
In Docusaurus MDX, don’t put import … statements inside a <details> block (or anywhere other than the MDX module “top level”). Instead, import at the top of the .mdx file and render the imported component inside the <details> content. Docusaurus explicitly supports importing one MDX file as a React component and embedding it elsewhere. [1]
import Extra from './_extra.mdx';
<details>
<summary>More</summary>
<Extra />
</details>If your <details> “collapsible” renders oddly, keep <summary> on a single line and add a blank line after it, because MDX can inject extra <p> wrappers that break the expected <details>/<summary> layout. [2]
Sources:
[1] Docusaurus docs — “MDX and React” (Importing Markdown) https://docusaurus.io/docs/markdown-features/react
[2] Docusaurus docs — “Markdown Features” (Details + note about <summary> and MDX <p> wrappers) https://docusaurus.io/docs/3.7.0/markdown-features
🏁 Script executed:
cat -n ".vortex/docs/content/workflows/development/README.mdx" | head -20Repository: drevops/vortex
Length of output: 754
Move the CodeLifecycle import to the top of the file (after the frontmatter).
The import statement on line 155 is inside the <details> block, which violates Docusaurus MDX requirements. Imports must be at the module top-level. Move import CodeLifecycle from '../_code-lifecycle.mdx'; to line 5 (after the frontmatter) and keep only <CodeLifecycle /> inside the details block. Without this change, Docusaurus will fail to process the import and the component won't render.
🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/development/README.mdx around lines 155 -
157, The import statement for the CodeLifecycle component is placed inside a
<details> block; move the import line "import CodeLifecycle from
'../_code-lifecycle.mdx';" to the module top-level immediately after the
frontmatter (near the top of the file) so imports are valid for Docusaurus, and
leave only the JSX tag "<CodeLifecycle />" inside the existing details block to
render the component.
| |----------------------------------------|----------|---------------------------------|----------|-----------------------------------------------------------| | ||
| | `VORTEX_NOTIFY_GITHUB_TOKEN` | **Yes** | | Hosting | GitHub notification personal access token | | ||
| | `VORTEX_NOTIFY_GITHUB_REPOSITORY` | **Yes** | | Hosting | GitHub notification repository in `owner/repo` format | | ||
| | `VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE`| No | `PR` | `.env` | GitHub notification environment type (production/staging/uat/dev/pr) | |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Consider clarifying environment type case sensitivity.
The default value shows PR (uppercase) but the description lists pr (lowercase) in the available options. Clarify whether these values are case-sensitive or normalize the documentation to be consistent.
📝 Proposed fix for consistency
-| `VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE`| No | `PR` | `.env` | GitHub notification environment type (production/staging/uat/dev/pr) |
+| `VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE`| No | `PR` | `.env` | GitHub notification environment type (production/staging/uat/dev/PR) |📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| | `VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE`| No | `PR` | `.env` | GitHub notification environment type (production/staging/uat/dev/pr) | | |
| | `VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE`| No | `PR` | `.env` | GitHub notification environment type (production/staging/uat/dev/PR) | |
🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/notifications/github.mdx at line 25, The doc
shows a mismatch in case for the environment type: the variable
VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE lists default `PR` but the allowed value
`pr` is lowercase; update the documentation to be consistent by either
normalizing the displayed values (e.g., use lowercase `pr` in the default and
options) or explicitly state the case sensitivity (e.g., "values are
case-insensitive; accepted values: production/staging/uat/dev/pr (default:
PR)"). Ensure the variable name VORTEX_NOTIFY_GITHUB_ENVIRONMENT_TYPE and the
set of allowed values are consistent and unambiguous.
| - Track deployment frequency | ||
| - Monitor release impact in real-time | ||
|
|
||
| ➡️ See [Workflows > Notifications > New Relic](notifications/newrelic) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
find .vortex/docs/content -type f -name "*.mdx" -o -name "*.md" | head -30Repository: drevops/vortex
Length of output: 1439
🏁 Script executed:
# Get a better understanding of the directory structure
tree -L 4 .vortex/docs/content/workflows 2>/dev/null || find .vortex/docs/content/workflows -type d | sortRepository: drevops/vortex
Length of output: 607
🏁 Script executed:
# Check if notifications directory exists and where
find .vortex/docs/content -type d -name "notifications"Repository: drevops/vortex
Length of output: 102
🏁 Script executed:
sed -n '110,115p' .vortex/docs/content/workflows/releasing/README.mdxRepository: drevops/vortex
Length of output: 215
Fix the relative link path for New Relic notification documentation.
The link notifications/newrelic from workflows/releasing/README.mdx resolves to workflows/releasing/notifications/newrelic, which doesn't exist. The target file is at workflows/notifications/newrelic.mdx, so use ../notifications/newrelic instead.
🔧 Fix
-➡️ See [Workflows > Notifications > New Relic](notifications/newrelic)
+➡️ See [Workflows > Notifications > New Relic](../notifications/newrelic)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ➡️ See [Workflows > Notifications > New Relic](notifications/newrelic) | |
| ➡️ See [Workflows > Notifications > New Relic](../notifications/newrelic) |
🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/releasing/README.mdx at line 113, The link
target "notifications/newrelic" in the README (the arrowed link line) is
incorrect for the current document location; update the Markdown link target
from "notifications/newrelic" to "../notifications/newrelic" so it points to the
correct New Relic notification page.
| # Run all Behat tests | ||
| docker compose exec cli vendor/bin/behat | ||
|
|
||
| # Run specific feature file | ||
| docker compose exec cli vendor/bin/behat tests/behat/features/homepage.feature | ||
|
|
||
| # Run scenarios with specific tag | ||
| docker compose exec cli vendor/bin/behat -- --tags=@smoke |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Check if the file exists and read the specific lines
if [ -f ".vortex/docs/content/workflows/testing/behat.mdx" ]; then
echo "=== File found, reading lines 46-53 ==="
sed -n '46,53p' ".vortex/docs/content/workflows/testing/behat.mdx"
else
echo "File not found at .vortex/docs/content/workflows/testing/behat.mdx"
# Try to find the file
find . -name "behat.mdx" -type f 2>/dev/null | head -10
fiRepository: drevops/vortex
Length of output: 385
🌐 Web query:
Behat CLI -- double dash argument separator behavior
💡 Result:
In Behat’s CLI, -- is the standard end-of-options separator (from Symfony Console). Behat’s own usage explicitly shows it:
behat [options] [--] [<paths>].[1]
Behavior:
- Anything before
--is parsed as Behat options (e.g.--suite,--tags,--format). --itself is not an argument; it just flips the parser.- Anything after
--is treated as positional arguments (for Behat, that means<paths>likefeatures/,foo.feature,foo.feature:10, etc.), even if it starts with-or looks like an option.[1][2]
Why you’d use it:
- To run a feature/path that begins with a dash, e.g. a file literally named
--smoke.feature:vendor/bin/behat -- --smoke.feature
- To ensure a token that could be mistaken for an option is treated as a path/argument:
vendor/bin/behat --format=progress -- features/-weird-name.feature
Sources: Behat CLI usage showing [--] and <paths>[1]; Symfony Console docs describing -- to separate options from arguments.[2]
Remove the extra -- in the Docker Compose tag example.
In Behat's Symfony Console CLI, -- is an end-of-options separator. Any arguments after -- are treated as positional arguments (paths), not options. This means vendor/bin/behat -- --tags=@smoke will treat --tags=@smoke as a file path instead of a Behat option and will fail. Use --tags=@smoke directly without the --.
🛠️ Suggested fix
- docker compose exec cli vendor/bin/behat -- --tags=@smoke
+ docker compose exec cli vendor/bin/behat --tags=@smoke📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Run all Behat tests | |
| docker compose exec cli vendor/bin/behat | |
| # Run specific feature file | |
| docker compose exec cli vendor/bin/behat tests/behat/features/homepage.feature | |
| # Run scenarios with specific tag | |
| docker compose exec cli vendor/bin/behat -- --tags=@smoke | |
| # Run all Behat tests | |
| docker compose exec cli vendor/bin/behat | |
| # Run specific feature file | |
| docker compose exec cli vendor/bin/behat tests/behat/features/homepage.feature | |
| # Run scenarios with specific tag | |
| docker compose exec cli vendor/bin/behat --tags=@smoke |
🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/testing/behat.mdx around lines 46 - 53, The
example showing tagged scenarios uses an unnecessary end-of-options separator;
locate the line containing "docker compose exec cli vendor/bin/behat --
--tags=@smoke" and remove the extra "--" so the Behat option is passed directly
to vendor/bin/behat (i.e., invoke vendor/bin/behat with the --tags option rather
than placing it after an end-of-options marker).
| ```gherkin | ||
| As a site visitor # Anonymous users | ||
| As a site administrator # Admin users | ||
| As a content editor # Content management users | ||
| As a authenticated user # Logged-in users | ||
| ``` |
There was a problem hiding this comment.
Grammar: use “an authenticated user.”
Tightens the Gherkin example wording.
✏️ Suggested edit
-As a authenticated user # Logged-in users
+As an authenticated user # Logged-in users🤖 Prompt for AI Agents
In @.vortex/docs/content/workflows/testing/behat.mdx around lines 165 - 170,
Replace the incorrect article in the Gherkin example: find the line "As a
authenticated user" in the Behat example block and change it to "As an
authenticated user" (update the text inside the fenced gherkin snippet so the
four lines read As a site visitor, As a site administrator, As a content editor,
As an authenticated user).
| # Drush commands | ||
| ahoy drush cr # Clear cache | ||
| ahoy drush cex # Export configuration to code | ||
| ahoy drush cim # Import configuration from code | ||
| ahoy drush uli # Get one-time login link |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Add ahoy drush updatedb to the Drush task list.
Include the database update command (ideally before cim) so the quick-reference tasks reflect the recommended deployment order.
Based on learnings: Run 'ahoy drush updatedb' before importing configuration during deployment to ensure database schema is current.
🛠️ Suggested addition
# Drush commands
ahoy drush cr # Clear cache
ahoy drush cex # Export configuration to code
+ahoy drush updatedb # Apply database updates (run before config import when deploying)
ahoy drush cim # Import configuration from code
ahoy drush uli # Get one-time login link🤖 Prompt for AI Agents
In `@CLAUDE.md` around lines 34 - 38, The Drush task list is missing the database
update command; add "ahoy drush updatedb" into the list and place it before the
existing "ahoy drush cim" entry so the recommended deployment order runs
database updates prior to importing configuration (update the block that
currently contains "ahoy drush cr", "ahoy drush cex", "ahoy drush cim", "ahoy
drush uli" to include "ahoy drush updatedb" immediately before "ahoy drush
cim").
| # Testing | ||
| ahoy test # Run PHPUnit tests | ||
| ahoy test-unit # Run PHPUnit Unit tests | ||
| ahoy test-kernel # Run PHPUnit Kernel tests | ||
| ahoy test-functional # Run PHPUnit Functional tests | ||
| ahoy test -- --filters=TestClassName # Run specific PHPUnit test class | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Search for PHPUnit-related files
fd -e xml -e php -e json | grep -i phpunit | head -20Repository: drevops/vortex
Length of output: 291
🏁 Script executed:
# Check for composer.json to find PHPUnit version
if [ -f composer.json ]; then
cat composer.json | jq '.require, .require-dev | select(. != null) | keys[] | select(contains("phpunit"))'
fiRepository: drevops/vortex
Length of output: 234
🏁 Script executed:
# Look for phpunit.xml or phpunit configuration
find . -maxdepth 3 -type f \( -name "phpunit*" -o -name "*.xml" \) | head -20Repository: drevops/vortex
Length of output: 211
🏁 Script executed:
# Search for actual test invocations in the codebase to see flag usage
rg -- '--filter' --type php --type xml -A 2 -B 2Repository: drevops/vortex
Length of output: 409
🏁 Script executed:
# Read composer.json to find PHPUnit version
cat composer.json | head -100Repository: drevops/vortex
Length of output: 3512
🏁 Script executed:
# Check the main phpunit.xml file
cat phpunit.xmlRepository: drevops/vortex
Length of output: 6503
🏁 Script executed:
# Search for any existing test filter usage in documentation or code
grep -r "filter" --include="*.md" --include="*.txt" . | grep -i test | head -10Repository: drevops/vortex
Length of output: 1027
🏁 Script executed:
# Check for any ahoy test invocations
grep -r "ahoy test" --include="*.md" --include="*.sh" . | head -10Repository: drevops/vortex
Length of output: 978
🏁 Script executed:
# Check the CLAUDE.md file specifically at lines 49-55
sed -n '45,60p' CLAUDE.mdRepository: drevops/vortex
Length of output: 539
🏁 Script executed:
# Also search for any uses of --filters in CLAUDE.md to see if it's documented elsewhere
grep -n "filters\|filter" CLAUDE.md | head -20Repository: drevops/vortex
Length of output: 132
PHPUnit uses --filter (singular), not --filters.
Line 54 incorrectly shows --filters=TestClassName. The correct flag is --filter, as confirmed by PHPUnit 11.5.50 (the version in use) and all documented examples throughout the codebase.
Suggested fix
-ahoy test -- --filters=TestClassName # Run specific PHPUnit test class
+ahoy test -- --filter=TestClassName # Run specific PHPUnit test class🤖 Prompt for AI Agents
In `@CLAUDE.md` around lines 49 - 55, The documented PHPUnit command in CLAUDE.md
uses the wrong flag; replace the incorrect token "--filters=TestClassName" with
the correct PHPUnit flag "--filter=TestClassName" so the example command "ahoy
test -- --filters=TestClassName" becomes "ahoy test -- --filter=TestClassName";
update the single occurrence of "--filters=TestClassName" to
"--filter=TestClassName" (search for the string "--filters" or the example "ahoy
test -- --filters=TestClassName" to locate the line).
|
|
This comment has been minimized.
This comment has been minimized.
|
|
|
d91c317 to
fdbec38
Compare
|
|
|
|
Summary by CodeRabbit