Skip to content

chore: remove stale Claude Code agents and commands - #1884

Merged
lukaszlenart merged 1 commit into
mainfrom
chore/prune-stale-claude-agents-commands
Aug 30, 2026
Merged

chore: remove stale Claude Code agents and commands#1884
lukaszlenart merged 1 commit into
mainfrom
chore/prune-stale-claude-agents-commands

Conversation

@lukaszlenart

Copy link
Copy Markdown
Member

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, security@struts.apache.org 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.

The .claude/agents/ and .claude/commands/ definitions were added in two
2025 dumps (3901496, 1518c16) and never maintained afterwards. They
have since drifted away from the codebase they describe:

- codebase-analyzer and codebase-locator point at com.opensymphony.xwork2
  packages and files that no longer exist; Struts 7 renamed them to
  org.apache.struts2
- config-validator recommends struts.ognl.allowStaticMethodAccess=false as
  a hardening step, but that property was removed from the framework, so
  setting it is a silent no-op
- code-quality-checker and quality_check run mvn spotless:check,
  spotbugs:check and checkstyle:check; no pom declares those plugins
- security-analyzer and security_scan produce security reports and advise
  notifying stakeholders without ever mentioning SECURITY.md or private
  disclosure to security@struts.apache.org
- config_analyze still dispatches jakarta-migration-helper, an agent
  deleted in d616ea9

The thoughts-* agents and the create_plan, research_codebase and
validate_plan commands drove the thoughts/ workflow, which is no longer
used. thoughts/ itself is kept as a record of past decisions.

The remaining .claude/skills/ cover the Struts-specific procedures and the
built-in agents and commands cover the generic ones, so CLAUDE.md now
points at .claude/skills/ only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AHSrPvz8pBTsAA37q47mU
@lukaszlenart
lukaszlenart marked this pull request as ready for review August 30, 2026 07:08
@lukaszlenart
lukaszlenart enabled auto-merge (squash) August 30, 2026 07:08
@lukaszlenart
lukaszlenart merged commit ebd7309 into main Aug 30, 2026
9 of 10 checks passed
@lukaszlenart
lukaszlenart deleted the chore/prune-stale-claude-agents-commands branch August 30, 2026 07:12
@sonarqubecloud

Copy link
Copy Markdown

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.

1 participant