lukaszlenart opened a new pull request, #1884:
URL: https://github.com/apache/struts/pull/1884

   Removes the nine `.claude/agents/` definitions and six `.claude/commands/` 
definitions. They were added in two 2025 dumps — `39014961a` (2025-09-24) and 
`1518c1666` (2025-09-29) — and never maintained afterwards, so they had drifted 
away from the codebase they describe.
   
   ## Why
   
   **Wrong package names.** Struts 7 renamed `com.opensymphony.xwork2` to 
`org.apache.struts2`; there are zero `.java` files under `com/opensymphony` 
outside `target/`. `codebase-analyzer` still sent agents to 
`/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java`, 
`com.opensymphony.xwork2.{Action,interceptor.Interceptor,Result}` and 
`com.opensymphony.xwork2.ognl.OgnlUtil`, plus 
`/core/src/main/resources/default.properties` (the real path is 
`core/src/main/resources/org/apache/struts2/default.properties`). 
`codebase-locator` carried the same `com/opensymphony/xwork2/` pointer.
   
   **Advice that silently does nothing.** `config-validator` recommended 
`struts.ognl.allowStaticMethodAccess=false` under a "SECURE: Restrict OGNL 
evaluation" heading. That property was removed from the framework — it survives 
in this repo only inside OGNL attack strings in test fixtures — so setting it 
is a no-op that reads like a hardening step.
   
   **Build commands that do not work here.** `code-quality-checker` and 
`quality_check` ran `mvn spotless:check`, `mvn spotbugs:check` and `mvn 
checkstyle:check`. No pom declares any of those plugins. `mvn jacoco:check` was 
also suggested, but jacoco lives only in the `coverage` profile and binds 
`prepare-agent`/`report` with no check rules.
   
   **A security workflow that skipped disclosure.** `security-analyzer` (237 
lines) and `security_scan` generated security reports with CVE references and 
risk ratings, and instructed the agent to "notify stakeholders", without 
mentioning `SECURITY.md`, `[email protected]` or private triage 
anywhere. Their CVE vocabulary stopped at 2014/2017/2018.
   
   **A dangling reference.** `config_analyze` dispatched 
`jakarta-migration-helper`, an agent deleted in `d616ea9af` ("Clean up obsolete 
Claude Code configurations", #1433). That cleanup removed the agent but not its 
caller.
   
   **An abandoned workflow.** The `thoughts-*` agents and the `create_plan` / 
`research_codebase` / `validate_plan` commands drove the `thoughts/` workflow, 
which is no longer used. `thoughts/` itself is kept — it documents past 
decisions.
   
   ## What replaces them
   
   `.claude/skills/` keeps the six Struts-specific procedures (release, 
security bulletins, version notes, dependabot, triage), which are maintained 
and have no codebase paths to rot. The generic research, review and security 
passes are covered by built-in agents and commands. `CLAUDE.md` now points at 
`.claude/skills/` only.
   
   No code, build or test changes.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to