You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The key difference is that Effulgence leverages Laravel's ecosystem (Eloquent, service providers, middleware, artisan commands, etc.) instead of Hyperf's (annotations, coroutines, config providers).
## Serendipity Reference Architecture
Use Serendipity's structure as a reference for the capabilities Effulgence should provide, adapted to Laravel idioms:
```
serendipity/src/
├── Domain/ # Pure business logic (framework-agnostic)
This project is in its initial stage. The structure below will evolve as development progresses.
The core implementation is complete with **119 source files** and a comprehensive test suite with **332 tests** and **878 assertions**. The project covers all major DDD layers and Laravel integrations.
The reason will be displayed to describe this comment to others. Learn more.
⚠️ Potential issue | 🟡 Minor
Add language specifier to fenced code block.
The fenced code block is missing a language specifier. While the content is clear, adding a specifier improves consistency with markdown best practices.
📝 Proposed fix
-```+```text
effulgence/
As per coding guidelines, the static analysis tool markdownlint-cli2 flags that fenced code blocks should have a language specified.
🧰 Tools🪛 markdownlint-cli2 (0.20.0)
[warning] 46-46: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
In `@CLAUDE.md` at line 46, Update the fenced code block in CLAUDE.md that
currently begins with ``` (containing "effulgence/") to include a language
specifier (e.g., change the opener to ```text or ```plain) so markdownlint-cli2
stops flagging it; locate the lone fenced block in CLAUDE.md and replace the
backticks-only fence with a language-specified fence.
effulgence/
├── src/
│ ├── Domain/ # Pure business logic (can mirror Serendipity's Domain/)
- **Presentation** handles input validation and output formatting
- **Laravel/** contains all framework-specific bindings and adapters
- Contracts (interfaces) live in `Domain/Contract/`, implementations in `Infrastructure/`
- Runtime functions (`invoke`, `dispatch`) live in `src/_/runtime.php`
### Naming
- Namespace: `Effulgence\`
- Test namespace: `Effulgence\Test\`
- Service provider: `EffulgenceServiceProvider`
- Follow Laravel conventions for artisan commands, middleware, events, etc.
- Follow Serendipity conventions for domain concepts (entities, repositories, collections)
### Testing Patterns
- Tests mirror the `src/` directory structure under `tests/`
- Test stubs and fixtures live in `tests/Testing/Stub/`
- Repository tests use concrete mock classes (e.g., `HttpRepositoryTestMock`) to expose protected methods
- Parametrized tests use PHPUnit `#[DataProvider]` for Success/Fail/Error output classes
- Tests requiring Laravel container set up `Container::getInstance()` with needed bindings in `setUp()`
- Tests requiring facades set up `Facade::setFacadeApplication()` and clean up in `tearDown()`
- MongoDB-dependent tests use `#[RequiresPhpExtension('mongodb')]` to skip gracefully
## For AI Assistants
When working in this repository:
Expand Down
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add language specifier to fenced code block.
The fenced code block is missing a language specifier. While the content is clear, adding a specifier improves consistency with markdown best practices.
📝 Proposed fix
As per coding guidelines, the static analysis tool markdownlint-cli2 flags that fenced code blocks should have a language specified.
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)
[warning] 46-46: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents