marketplace/bundles/plan-marshall/skills/task-verification/SKILL.md
Verification-only task execution — runs commands without modifying files
npx skillsauth add cuioss/plan-marshall task-verificationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Role: Task executor skill for verification-only tasks (profile=verification). Loaded by plan-marshall:phase-5-execute skill when task.profile is verification.
Key Pattern: No files are modified. Steps contain verification commands to run. Each step is executed and marked done/failed. No domain skills are needed.
MANDATORY: Follow the execution contract defined in:
| Contract | Location | Purpose |
|----------|----------|---------|
| Task Contract | plan-marshall:manage-tasks/standards/task-contract.md | Task structure and fields |
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| plan_id | string | Yes | Plan identifier |
| task_number | number | Yes | Task number to execute |
status: success | error
plan_id: {echo}
task_number: {echo}
execution_summary:
steps_completed: N
steps_total: M
commands_run: [commands]
verification:
passed: true | false
command: "{cmd}"
next_action: task_complete | requires_attention
message: {error message if status=error}
Read the task file:
python3 .plan/execute-script.py plan-marshall:manage-tasks:manage-tasks get \
--plan-id {plan_id} \
--number {task_number}
Extract key fields:
profile: Should be verificationsteps: Verification commands to runverification: Verification criteriaFor each step (verification command):
{step.target}
python3 .plan/execute-script.py plan-marshall:manage-tasks:manage-tasks finalize-step \
--plan-id {plan_id} \
--task {task_number} \
--step {N} \
--outcome done
If a command fails:
If verification fails:
python3 .plan/execute-script.py plan-marshall:manage-tasks:manage-tasks update \
--plan-id {plan_id} \
--number {task_number} \
--status blocked
On success:
status: success
plan_id: {plan_id}
task_number: {task_number}
execution_summary:
steps_completed: {N}
steps_total: {M}
commands_run:
- {cmd1}
verification:
passed: true
command: "{verification command}"
next_action: task_complete
On failure (structured output for phase-5-execute triage):
status: success
plan_id: {plan_id}
task_number: {task_number}
execution_summary:
steps_completed: {N}
steps_total: {M}
commands_run:
- {cmd1}
verification:
passed: false
command: "{failed command}"
exit_code: {exit_code}
stderr: "{truncated stderr, max 2000 chars}"
findings:
- type: {compile-error|test-failure|lint-issue}
file: {file_path}
line: {line_number}
message: "{error message}"
next_action: requires_triage
The findings array is best-effort: parse compiler errors, test failures, or lint output into structured entries. If parsing fails, include the raw stderr for the triage step to analyze.
Invoked by: plan-marshall:phase-5-execute skill (when task.profile = verification)
Skill Loading: Agent resolves this skill via resolve-task-executor --profile verification
Script Notations (use EXACTLY as shown):
plan-marshall:manage-tasks:manage-tasks - Task operations (get, update, finalize-step)development
Domain-owned OpenRewrite log-line finding parser for the java-cui domain — parses the
development
Domain-owned OpenRewrite marker detection for the java-cui domain — scans Java/Kotlin sources for cui-rewrite TODO markers, categorizes them by recipe, and fails the gate on any detected marker
development
Operator control surface for the marshalld build server — enrol/drop a project in the machine-global registry (the opt-in enable signal and anti-laundering wall), manage the daemon lifecycle (start, stop, drain, status, install, upgrade) version-pinned to the verified bundle copy, and inspect the daemon's per-project interaction-audit log (read-only)
tools
The tiny build-consumption client for the marshalld build server — submit a build job, bounded long-poll for its result, ping the daemon identity, and preflight registry-plus-liveness in one call; consumption only, never provisioning or enrolment