Verification Checklist
Work through this checklist after running marko devai:install to confirm the full integration is working. Each section is independent — if one step fails, consult Troubleshooting before continuing.
1. Package installation
Section titled “1. Package installation”-
composer show marko/devaireturns a version without error -
marko listincludesdevai:install,mcp:serve,lsp:serve, andindexer:rebuildin the output
2. devai:install output
Section titled “2. devai:install output”Run marko devai:install and verify:
- The installer reports at least one agent detected
- No error messages are printed (warnings are acceptable)
- The installer reports writing at least one agent guidelines file
- Re-running
marko devai:installa second time completes without error (idempotent)
3. Agent guidelines file
Section titled “3. Agent guidelines file”Choose one agent and verify its guidelines file:
Claude Code:
-
CLAUDE.mdexists in the project root and references@AGENTS.md -
AGENTS.mdexists in the project root and includes a## Package Guidelinessection -
.claude/settings.jsonregistersextraKnownMarketplaces.markoand enables themarko-mcp@markoplugin - In Claude Code, run
/mcp— themarko-mcpserver appears (it is provided by themarko-mcp@markoplugin, not byclaude mcp add)
Codex:
-
AGENTS.mdexists in the project root -
.agents/skills/contains skill files
Cursor:
-
.cursor/rules/marko.mdcexists and containsalwaysApply: true -
.cursor/mcp.jsonexists and uses themcpServerskey
Copilot:
-
.github/copilot-instructions.mdexists -
.vscode/mcp.jsonexists and uses theserverskey
Gemini CLI:
-
GEMINI.mdexists in the project root -
.gemini/skills/contains skill files
Junie:
-
junie/guidelines.mdexists (underjunie/, not.junie/) -
junie/skills/contains skill files
4. MCP server
Section titled “4. MCP server”-
marko mcp:servestarts without error (blocks waiting for stdin — Ctrl+C to exit) - The agent’s MCP configuration file exists and references
marko mcp:serve
Invoke the MCP server from your chosen agent:
- Ask the agent: “What MCP tools are available?” — it should list at least
find_event_observers,validate_module,list_modules,list_routes,app_info,read_log_entries, andrun_console_command -
search_docsappears in the list only if a docs driver (marko/docs-fts) is installed -
query_databaseappears in the list only ifmarko/databaseis installed - Ask the agent: “Search Marko docs for routing” —
search_docsshould return at least one result (requires a docs driver)
5. Code index
Section titled “5. Code index”The MCP/LSP servers lazy-load and auto-rebuild .marko/index.cache on first read,
so explicit indexing is optional. To pre-warm or to force a rebuild after large
codebase changes:
-
marko indexer:rebuildcompletes without error and prints module/route/config-key counts - After indexing, asking the agent “List all Marko modules” (which calls the
list_modulesMCP tool) returns the expected modules -
find_event_observersreturns results when given a known event class FQN that has at least one#[Observer]in your codebase
6. LSP server
Section titled “6. LSP server”-
marko lsp:servestarts without error (blocks waiting for stdin — Ctrl+C to exit) - The editor’s LSP configuration references
marko lsp:serve - In a PHP file, type a config getter and place the cursor inside the quotes (e.g.,
$config->get("|")) — Marko config key completions appear (textDocument/completion) - Hover over a quoted config key string — markdown hover with type, default, and source location appears (
textDocument/hover) - Go-to-definition on a quoted config key navigates to its definition (
textDocument/definition)
7. End-to-end agent task
Section titled “7. End-to-end agent task”Perform one real agentic task to confirm the full integration:
- Open your chosen agent in the project root
- Ask: “Create a new Marko module called
Greetwith a single GET route at/greetthat returns ‘Hello, world!’” - Verify the agent:
- Creates
app/Greet/with the correct module structure - Uses PHP attribute routing (
#[Get('/greet')]) - Does not use any patterns that violate Marko conventions
- Creates
- Ask the agent to call the
validate_moduleMCP tool againstapp/Greet— it should pass with no errors
8. Skills (if applicable)
Section titled “8. Skills (if applicable)”The skill files devai distributes live under each agent’s skills directory
(e.g., .claude/skills/, .agents/skills/, .gemini/skills/, junie/skills/):
- At least one
SKILL.mdfile exists in the chosen agent’s skills directory - Asking the agent to perform a skill-specific task triggers the correct skill workflow
All checks pass?
Section titled “All checks pass?”Your AI-assisted development setup is complete. Return to AI-assisted Development overview to explore what else you can do.
If any check failed, see Troubleshooting for targeted fixes.