This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/struts.git


The following commit(s) were added to refs/heads/main by this push:
     new 3e428e438 docs: drop derivable layout and architecture sections from 
CLAUDE.md (#1977)
3e428e438 is described below

commit 3e428e43879548af39293dd74a92e2e5ccfbef56
Author: Lukasz Lenart <[email protected]>
AuthorDate: Fri Sep 25 10:53:00 2026 +0200

    docs: drop derivable layout and architecture sections from CLAUDE.md (#1977)
    
    CLAUDE.md is loaded into every Claude Code session. The Project Structure
    tree and the Core Architecture tour restate what `ls` and the source already
    show, and the Testing section repeated the build command listed above it.
    Keep what a session cannot derive: the version gotcha, the non-standard
    build flags, security patterns and pointers, the JUnit 3/4 trap, PR rules.
    
    The Copilot code-review skill described CLAUDE.md by the removed sections;
    point it at what the file still covers.
    
    Co-authored-by: Claude Opus 5.5 <[email protected]>
---
 .github/skills/code-review/SKILL.md |  2 +-
 CLAUDE.md                           | 27 ---------------------------
 2 files changed, 1 insertion(+), 28 deletions(-)

diff --git a/.github/skills/code-review/SKILL.md 
b/.github/skills/code-review/SKILL.md
index 0d8680a50..8bf698e6d 100644
--- a/.github/skills/code-review/SKILL.md
+++ b/.github/skills/code-review/SKILL.md
@@ -14,7 +14,7 @@ tend to go wrong in this codebase.
 
 Deeper references, when a review needs them:
 
-- [`CLAUDE.md`](../../../CLAUDE.md) — build commands, module layout, request 
lifecycle
+- [`CLAUDE.md`](../../../CLAUDE.md) — build commands, test style (JUnit 3 vs 
4), PR conventions
 - [`SECURITY.md`](../../../SECURITY.md) — the vulnerability reporting process 
(source of truth)
 - [`THREAT_MODEL.md`](../../../THREAT_MODEL.md) — scope, trust boundaries, 
known non-findings
 - [`AGENTS.md`](../../../AGENTS.md) — rules for AI agents working on security 
findings
diff --git a/CLAUDE.md b/CLAUDE.md
index 5f4bf19bb..2419ff6ff 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -23,31 +23,6 @@ mvn test -DskipAssembly -pl core 
-Dtest=MyClassTest#testMethodName
 mvn clean install -Pjakartaee11
 ```
 
-### Project Structure
-
-```
-struts/
-├── core/           # struts2-core - main framework
-├── plugins/        # Plugin modules (json, rest, spring, tiles, velocity, 
etc.)
-├── apps/           # Sample applications (showcase, rest-showcase)
-├── assembly/       # Distribution packaging
-├── bom/            # Bill of Materials for dependency management
-├── parent/         # Parent POM with shared configuration
-└── jakarta/        # Jakarta EE compatibility modules
-```
-
-### Core Architecture
-
-**Request Lifecycle**: `Dispatcher` → `ActionProxy` → `ActionInvocation` → 
Interceptor stack → `Action` → Result
-
-Key packages in `org.apache.struts2`:
-
-- `dispatcher` - Request handling, `Dispatcher`, servlet integration
-- `interceptor` - Built-in interceptors (params, validation, fileUpload)
-- `components` - UI tag components (form, textfield, submit)
-- `action` - Action interfaces (`UploadedFilesAware`, `SessionAware`, etc.)
-- `security` - Security utilities and OGNL member access policies
-
 ## Security-Critical Patterns
 
 Apache Struts has a history of security vulnerabilities (OGNL injection, temp 
file exploits). Apply these Struts-specific patterns:
@@ -77,8 +52,6 @@ closed as application responsibility or non-default 
configuration rather than as
 
 ## Testing
 
-Run with `mvn test -DskipAssembly`.
-
 **Tests are JUnit 4 — there is no JUnit 5 anywhere in this repo.** 
`parent/pom.xml` declares
 `junit:junit:4.13.2`; there are zero `org.junit.jupiter` imports. Two styles 
coexist:
 

Reply via email to