Skip to content

docs: restructure AI documentation into .agents and .claude directories#726

Open
kabir wants to merge 1 commit intoa2aproject:mainfrom
kabir:claude-config
Open

docs: restructure AI documentation into .agents and .claude directories#726
kabir wants to merge 1 commit intoa2aproject:mainfrom
kabir:claude-config

Conversation

@kabir
Copy link
Collaborator

@kabir kabir commented Mar 11, 2026

  • Move skills to .agents/skills for universal agent access
  • Create .claude/architecture with EventQueue deep-dive docs
  • Add CLAUDE.md symlink to AGENTS.md for auto-discovery
  • Link .claude/skills to .agents/skills for Claude compatibility
  • Protect .claude/settings.local.json in .gitignore

- Move skills to .agents/skills for universal agent access
- Create .claude/architecture with EventQueue deep-dive docs
- Add CLAUDE.md symlink to AGENTS.md for auto-discovery
- Link .claude/skills to .agents/skills for Claude compatibility
- Protect .claude/settings.local.json in .gitignore

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on restructuring the AI documentation to enhance organization and accessibility. It introduces dedicated directories for agents and Claude-specific documentation, improves skill management, provides a deep dive into the EventQueue architecture, and ensures Claude compatibility. Additionally, it protects local configuration files from being committed.

Highlights

  • Documentation Restructuring: The AI documentation has been reorganized into .agents and .claude directories to improve clarity and organization.
  • Skill Management: Skills have been moved to the .agents/skills directory for universal agent access, promoting reusability.
  • EventQueue Deep Dive: Detailed documentation on the EventQueue architecture has been added under the .claude/architecture directory, providing insights into event processing and queue management.
  • Claude Compatibility: A symbolic link CLAUDE.md has been added to AGENTS.md for auto-discovery, and .claude/skills is linked to .agents/skills for Claude compatibility.
  • Configuration Protection: The .claude/settings.local.json file has been added to .gitignore to prevent accidental commits of local configuration settings.
Changelog
  • .agents/skills/update-a2a-proto/SKILL.md
    • Moved skill documentation to .agents/skills for universal agent access.
  • .claude/architecture/EVENTQUEUE.md
    • Added detailed documentation on the EventQueue architecture.
  • .claude/architecture/eventqueue/FLOWS.md
    • Added documentation detailing request flows within the EventQueue processing.
  • .claude/architecture/eventqueue/LIFECYCLE.md
    • Added documentation explaining the queue lifecycle and its management.
  • .claude/architecture/eventqueue/SCENARIOS.md
    • Added documentation outlining usage scenarios and common pitfalls related to EventQueues.
  • .claude/skills
    • Added a symbolic link to .agents/skills for Claude compatibility.
  • .gitignore
    • Updated to protect .claude/settings.local.json.
  • AGENTS.md
    • Updated to include links to the new EventQueue architecture documentation and skill location.
  • CLAUDE.md
    • Added a symbolic link to AGENTS.md for auto-discovery.
Activity
  • kabir renamed skills/update-a2a-proto/SKILL.md to .agents/skills/update-a2a-proto/SKILL.md
  • kabir added .claude/architecture/EVENTQUEUE.md
  • kabir added .claude/architecture/eventqueue/FLOWS.md
  • kabir added .claude/architecture/eventqueue/LIFECYCLE.md
  • kabir added .claude/architecture/eventqueue/SCENARIOS.md
  • kabir added .claude/skills
  • kabir modified .gitignore
  • kabir modified AGENTS.md
  • kabir added CLAUDE.md
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist
Copy link
Contributor

Warning

Gemini is experiencing higher than usual traffic and was unable to create the review. Please try again in a few hours by commenting /gemini review.

@kabir
Copy link
Collaborator Author

kabir commented Mar 11, 2026

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request significantly restructures the project's documentation, moving skill definitions and adding extensive new deep-dive documents for the EventQueue architecture. The new documentation is well-organized and detailed. My review focuses on ensuring the accuracy of the technical descriptions and code examples within these new documents. I've identified a few areas where the code snippets could be aligned more closely with the actual implementation to prevent potential confusion for developers.

Comment on lines +170 to +176
if (event instanceof Message || isFinalEvent(event)) {
if (!interrupted) {
cleanup(queue, task, false); // Immediate: wait for agent, close queue
} else {
cleanup(queue, task, true); // Async: close in background (AUTH_REQUIRED case)
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The logic presented in "Non-Streaming Cleanup Decision" for choosing between immediate and async cleanup doesn't directly map to the implementation in DefaultRequestHandler.java. The actual cleanup is initiated via cleanupProducer in a finally block and is always asynchronous. The decision logic in the documentation could be confusing for developers trying to trace the code. It would be beneficial to clarify that this is a conceptual model or align it more closely with the implementation.

Comment on lines +133 to +144
private void cleanup(EventQueue queue, Task task, boolean async) {
Runnable cleanupTask = () -> {
agentFuture.join(); // Wait for agent to finish
queue.close(); // Close ChildQueue (triggers Level 2 check)
};

if (async) {
CompletableFuture.runAsync(cleanupTask, executor);
} else {
cleanupTask.run();
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The code snippet for cleanup in the "Cleanup Implementation" section does not accurately reflect the implementation in DefaultRequestHandler.java. The actual method is cleanupProducer, and it uses CompletableFuture.allOf to wait for agent and consumption futures, rather than a simple agentFuture.join(). This simplification could be misleading about the asynchronous nature of the cleanup. Please consider updating the snippet to better represent the implementation.

Comment on lines +109 to +115
public void enqueueEvent(Event event) {
super.enqueueEvent(event); // Enqueue to MainEventBus
children.forEach(child -> child.internalEnqueueEvent(event)); // Copy to ChildQueues
if (enqueueHook != null) {
enqueueHook.onEnqueue(event); // Replication hook
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The code snippet for MainQueue.enqueueEvent in the "Tapping (Multiple Consumers)" scenario is misleading. It suggests that events are immediately distributed to child queues upon calling enqueueEvent. However, the actual implementation is asynchronous: enqueueEvent submits the event to the MainEventBus, and a separate MainEventBusProcessor thread persists the event before distributing it to child queues. This asynchronicity is a core part of the architecture, and the documentation should reflect it to avoid confusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants