スキル一覧に戻る
cuioss

plan-marshall-plugin

by cuioss

An orchestration layer for AI coding assistants (currently Claude Code) that enforces consistency, reliability, and more predictable outputs.

0🍴 0📅 2026年1月17日
GitHubで見るManusで実行

SKILL.md


name: plan-marshall-plugin description: Java domain extension with Maven/Gradle build operations and workflow integration allowed-tools: [Read, Bash]

Plan Marshall Plugin - Java Domain

Domain extension providing Java development capabilities to plan-marshall workflows, including Maven and Gradle build execution with output parsing.

Purpose

  • Domain identity and workflow extensions (outline, triage)
  • Maven and Gradle build execution with parsed output
  • Module detection and profile classification
  • Profile-based skill organization

Extension API

Configuration in extension.py implements the Extension API contract:

FunctionPurpose
get_skill_domains()Domain metadata with profiles
provides_triage()Returns pm-dev-java:ext-triage-java
discover_modules(project_root)Discover Maven/Gradle modules with metadata, commands

Scripts Overview

ScriptTypePurpose
extension.pyExtensionExtensionBase implementation
maven.pyCLIMaven operations dispatcher
gradle.pyCLIGradle operations dispatcher
_maven_execute.pyLibraryFoundation execution, wrapper detection
_maven_cmd_discover.pyLibraryModule discovery via pom.xml
_maven_cmd_parse.pyLibraryLog parsing, issue extraction
_gradle_execute.pyLibraryFoundation execution, wrapper detection
_gradle_cmd_discover.pyLibraryModule discovery via build.gradle
_gradle_cmd_parse.pyLibraryLog parsing, issue extraction

Wrapper Detection

Both Maven and Gradle prefer project-local wrappers:

Maven:  ./mvnw > mvn (on PATH)
Gradle: ./gradlew > gradle (on PATH)

The detect_wrapper(project_dir) function checks for wrapper scripts in the project root before falling back to system commands.


Timeout Learning

Command durations are recorded for adaptive timeouts:

# Before execution
timeout = timeout_get("maven:verify", default=300, project_dir=".")
# Returns: learned * 1.25 or default

# After execution
timeout_set("maven:verify", duration=45, project_dir=".")
# Updates .plan/run-configuration.json

Minimum enforced: 120 seconds (prevents warm JVM timing issues from affecting cold starts).


Build Operations

Scripts for Maven and Gradle build execution.

Maven run (Primary API)

Unified command that executes build and returns parsed output on failure.

python3 .plan/execute-script.py pm-dev-java:plan-marshall-plugin:maven run \
    --targets "<goals>" \
    [--module <module>] \
    [--profile <profile>] \
    [--timeout <seconds>] \
    [--mode <mode>]

Parameters:

  • --targets - Maven goals to execute (required)
  • --module - Target module for multi-module projects
  • --profile - Maven profile to activate
  • --timeout - Timeout in seconds (default from run-config)
  • --mode - Output mode: actionable (default), structured, errors

Output Format (TOON) - tab-separated key-value pairs:

Success:

status	success
exit_code	0
duration_seconds	45
log_file	.plan/temp/build-output/default/maven-2026-01-04-143022.log
command	./mvnw -l .plan/temp/build-output/... clean test -pl core

Build Failed:

status	error
exit_code	1
duration_seconds	23
log_file	.plan/temp/build-output/default/maven-2026-01-04-143022.log
command	./mvnw -l .plan/temp/build-output/... clean test
error	build_failed

errors[2]{file,line,message,category}:
src/main/java/Foo.java    42    cannot find symbol       compile
src/main/java/Bar.java    15    null pointer             test

tests:
  passed: 40
  failed: 2
  skipped: 1

Gradle run

python3 .plan/execute-script.py pm-dev-java:plan-marshall-plugin:gradle run \
    --targets "<tasks>" \
    [--module <module>] \
    [--format <toon|json>] \
    [--timeout <seconds>] \
    [--mode <mode>]

Low-level Operations

CommandPurpose
maven parseParse build output from log file
maven search-markersSearch OpenRewrite TODO markers
maven check-warningsCategorize warnings against patterns
gradle parseParse Gradle build output
gradle find-projectFind Gradle subproject
gradle search-markersSearch markers in Gradle project
gradle check-warningsCheck Gradle warnings

Output Modes

  • actionable (default) - Errors + warnings NOT in acceptable_warnings
  • structured - All errors + all warnings with [accepted] markers
  • errors - Only errors, compact format

Error Categories

CategoryDescription
compilation_errorCompile-time Java errors
test_failureTest assertion failures
dependency_errorDependency resolution issues
javadoc_warningJavaDoc documentation issues
deprecation_warningDeprecated API usage
unchecked_warningUnchecked type conversions
openrewrite_infoOpenRewrite plugin output

Error Codes

CodeMeaningRecovery
build_failedNon-zero exit codeErrors included in response
timeoutExceeded timeoutIncrease timeout, check log_file
execution_failedProcess couldn't startCheck wrapper exists
log_file_creation_failedCan't create logCheck permissions

Warning Handling

Manage warnings via run-config:

# Add accepted warning
python3 .plan/execute-script.py plan-marshall:manage-run-config:run_config warning add \
    --category transitive_dependency \
    --pattern "commons-logging via spring-core"

# List accepted warnings
python3 .plan/execute-script.py plan-marshall:manage-run-config:run_config warning list

Integration

This extension is discovered by:

  • extension-api - Build system detection and command generation
  • skill-domains - Domain configuration
  • marshall-steward - Project setup wizard

References

  • plan-marshall:extension-api - Extension API contract
  • plan-marshall:extension-api/standards/build-execution-flow.md - Complete execution lifecycle
  • standards/maven-impl.md - Maven execution details
  • standards/gradle-impl.md - Gradle execution details

スコア

総合スコア

70/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です