Skip to content

Added support for all AI agents + docs.#2272

Merged
AlexSkrypnyk merged 1 commit intomainfrom
feature/docs-add-ai-page
Feb 11, 2026
Merged

Added support for all AI agents + docs.#2272
AlexSkrypnyk merged 1 commit intomainfrom
feature/docs-add-ai-page

Conversation

@AlexSkrypnyk
Copy link
Member

@AlexSkrypnyk AlexSkrypnyk commented Feb 11, 2026

Summary by CodeRabbit

  • New Features
    • Added AI agent integration documentation describing two-tier guidance and doc sourcing/caching.
  • Documentation
    • Introduced AGENTS.md as the primary agent-agnostic development guide (daily tasks, rules, key directories, docs sources).
    • Added a developer-facing docs page explaining the built-in AI coding agent; CLAUDE.md now points to AGENTS.md.
  • Bug Fixes / Improvements
    • Installer prompt for AI instructions simplified to a yes/no confirmation (default: enabled).
  • Tests
    • Test fixtures updated to reflect the boolean-enabled AI instruction flow.

@coderabbitai
Copy link

coderabbitai bot commented Feb 11, 2026

Walkthrough

Refactors AI coding-agent handling from a CLAUDE-specific selection to an agent-agnostic enabled/disabled flag, introduces AGENTS.md as the primary development guide and adds .vortex/docs/content/development/ai.mdx; updates CLAUDE.md to reference AGENTS.md and adjusts installer prompt logic and tests to use a boolean confirmation and file-based discovery.

Changes

Cohort / File(s) Summary
Documentation
​.vortex/docs/content/development/ai.mdx, AGENTS.md, CLAUDE.md
Adds new ai.mdx; introduces AGENTS.md as the canonical development guide; replaces CLAUDE.md content with a single reference to AGENTS.md.
Installer: AiCodeInstructions
​.vortex/installer/src/Prompts/Handlers/AiCodeInstructions.php
Removes CLAUDE/NONE constants and options(), changes label/hint/default to an enabled/disabled confirm, uses File::exists() for discovery, processes responses as boolean and deletes AGENTS.md/CLAUDE.md when disabled.
Installer: Prompt flow
​.vortex/installer/src/Prompts/PromptManager.php
Converts AI instruction prompt from select to confirm; treats responses as boolean in runPrompts and getResponsesSummary.
Installer: Tools lookup
​.vortex/installer/src/Prompts/Handlers/Tools.php
Updates tool documentation line references from CLAUDE.md to AGENTS.md for PHPUNIT and BEHAT definitions.
Unit Tests / Discovery
​.vortex/installer/tests/Unit/Handlers/.../AbstractHandlerDiscoveryTestCase.php, AiCodeInstructionsHandlerDiscoveryTest.php
Updates expected defaults/installed values from CLAUDE/NONE to TRUE/FALSE, adds AGENTS.md fixture cases and discovery assertions.
Functional Tests
​.vortex/installer/tests/Functional/Handlers/...
Replaces AiCodeInstructions env values from AiCodeInstructions::CLAUDE to Env::TRUE/Env::FALSE across multiple handlers; adds assertions for existence/non-existence of AGENTS.md/CLAUDE.md where applicable.
Theme tests
​.vortex/installer/tests/Functional/Handlers/ThemeHandlerProcessTest.php
Adds AGENTS.md to lists of files that must not appear in themes/custom test expectations.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Poem

🐰 From CLAUDE to AGENTS I hop with glee,
I tuck the guide where helpers can see.
Toggle confirm — yes or no,
Files appear or softly go.
A tiny hop for clearer dev harmony.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 44.44% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Added support for all AI agents + docs' accurately captures the main change: refactoring AI agent support from CLAUDE-specific to agent-agnostic with comprehensive documentation.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/docs-add-ai-page

No actionable comments were generated in the recent review. 🎉


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.vortex/installer/src/Prompts/Handlers/AiCodeInstructions.php:
- Around line 46-52: The process() method calls getResponseAsBool() directly
which will throw for legacy string values like "claude" or "none"; before
calling getResponseAsBool() inspect the raw response (e.g. via getResponse() or
the underlying input), coerce legacy string values ("claude","none", etc.) into
the proper boolean value, then call getResponseAsBool(); update process() to use
the coerced value for $v and keep the existing cleanup of $this->tmpDir
.'/AGENTS.md' and '/CLAUDE.md' so non‑interactive installs handle legacy config
strings safely.

Comment on lines 46 to 52
public function process(): void {
$v = $this->getResponseAsString();
$v = $this->getResponseAsBool();
$t = $this->tmpDir;

if ($v !== self::CLAUDE) {
if (!$v) {
@unlink($t . '/AGENTS.md');
@unlink($t . '/CLAUDE.md');
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Handle legacy string values before calling getResponseAsBool().
Line 47 will throw if a user still has legacy env/config values like "claude" or "none" set, which breaks non‑interactive installs. Add a compatibility path to coerce legacy strings to booleans before proceeding.

🩹 Suggested backward‑compatibility fix
-  public function process(): void {
-    $v = $this->getResponseAsBool();
+  public function process(): void {
+    try {
+      $v = $this->getResponseAsBool();
+    }
+    catch (\RuntimeException $e) {
+      // Backward compatibility for legacy string values (e.g. "claude"/"none").
+      $legacy = $this->getResponseAsString();
+      $v = !in_array(strtolower($legacy), ['none', 'false', '0', 'no'], true);
+    }
     $t = $this->tmpDir;
 
     if (!$v) {
       `@unlink`($t . '/AGENTS.md');
       `@unlink`($t . '/CLAUDE.md');
     }
   }
📝 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.

Suggested change
public function process(): void {
$v = $this->getResponseAsString();
$v = $this->getResponseAsBool();
$t = $this->tmpDir;
if ($v !== self::CLAUDE) {
if (!$v) {
@unlink($t . '/AGENTS.md');
@unlink($t . '/CLAUDE.md');
public function process(): void {
try {
$v = $this->getResponseAsBool();
}
catch (\RuntimeException $e) {
// Backward compatibility for legacy string values (e.g. "claude"/"none").
$legacy = $this->getResponseAsString();
$v = !in_array(strtolower($legacy), ['none', 'false', '0', 'no'], true);
}
$t = $this->tmpDir;
if (!$v) {
`@unlink`($t . '/AGENTS.md');
`@unlink`($t . '/CLAUDE.md');
🤖 Prompt for AI Agents
In @.vortex/installer/src/Prompts/Handlers/AiCodeInstructions.php around lines
46 - 52, The process() method calls getResponseAsBool() directly which will
throw for legacy string values like "claude" or "none"; before calling
getResponseAsBool() inspect the raw response (e.g. via getResponse() or the
underlying input), coerce legacy string values ("claude","none", etc.) into the
proper boolean value, then call getResponseAsBool(); update process() to use the
coerced value for $v and keep the existing cleanup of $this->tmpDir
.'/AGENTS.md' and '/CLAUDE.md' so non‑interactive installs handle legacy config
strings safely.

@github-actions

This comment has been minimized.

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 03:19:43

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 03:23:15

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 03:23:28

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@codecov
Copy link

codecov bot commented Feb 11, 2026

Codecov Report

❌ Patch coverage is 84.61538% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.44%. Comparing base (92481f3) to head (5c386fa).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...Unit/Handlers/AbstractHandlerDiscoveryTestCase.php 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2272      +/-   ##
==========================================
- Coverage   77.07%   76.44%   -0.63%     
==========================================
  Files         114      107       -7     
  Lines        5993     5829     -164     
  Branches       44        0      -44     
==========================================
- Hits         4619     4456     -163     
+ Misses       1374     1373       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@AlexSkrypnyk AlexSkrypnyk force-pushed the feature/docs-add-ai-page branch from fe4d4c4 to a2c76fa Compare February 11, 2026 03:52
@github-actions

This comment has been minimized.

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 03:58:57

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 04:02:10

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 04:02:12

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk AlexSkrypnyk force-pushed the feature/docs-add-ai-page branch from a2c76fa to 5c386fa Compare February 11, 2026 04:08
@github-actions
Copy link

Code Coverage Report:
  2026-02-11 04:15:12

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 04:15:18

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 04:18:33

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk
Copy link
Member Author

Code Coverage Report:
  2026-02-11 04:19:01

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/2)
  Lines:   94.12% (176/187)

@AlexSkrypnyk AlexSkrypnyk merged commit 6652890 into main Feb 11, 2026
28 checks passed
@AlexSkrypnyk AlexSkrypnyk deleted the feature/docs-add-ai-page branch February 11, 2026 04:31
@github-project-automation github-project-automation bot moved this from BACKLOG to Release queue in Vortex Feb 11, 2026
@AlexSkrypnyk AlexSkrypnyk added this to the 1.36.0 milestone Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Release queue

Development

Successfully merging this pull request may close these issues.

1 participant