name: manage-plan-marshall-config description: Project-level infrastructure configuration for marshal.json user-invocable: false allowed-tools: Read, Write, Edit, Bash
Plan-Marshall Config Skill
Manages project-level infrastructure configuration in .plan/marshal.json.
What This Skill Provides
- Skill Domains: Implementation skill defaults and optionals per domain
- System Settings: Retention and cleanup configuration
- Plan Phase Configuration: Phase-specific settings (branching, compatibility, commit strategy, pipelines)
When to Activate This Skill
Activate this skill when:
- Initializing project configuration (
/marshall-stewardwizard) - Querying implementation skills for a domain
- Managing retention settings
- Configuring plan phase settings
Workflow: Initialize Configuration
Pattern: Script Automation
Initialize marshal.json with defaults.
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config init
Workflow: Query Skill Domains
Pattern: Read-Process-Write
Get implementation skills for a specific domain.
Get Domain Defaults
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
skill-domains get-defaults --domain java-core
Output:
status: success
domain: java-core
defaults[1]:
- pm-dev-java:java-core
Get Domain Optionals
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
skill-domains get-optionals --domain java-implementation
Validate Skill in Domain
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
skill-domains validate --domain java-core --skill pm-dev-java:java-lombok
Workflow: System Settings
Pattern: Read-Process-Write
Manage system-level infrastructure settings.
Get Retention Settings
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
system retention get
Set Retention Field
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
system retention set --field logs_days --value 7
Workflow: Plan Phase Configuration
Pattern: Read-Process-Write
Manage phase-specific plan configuration. Each phase has its own sub-noun.
Get Phase Configuration
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
plan phase-2-refine get
Get Specific Phase Field
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
plan phase-2-refine get --field compatibility
Set Phase Field
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
plan phase-5-execute set --field commit_strategy --value per_plan
Workflow: CI Command Lookup
Pattern: Lookup and Execute
Get a CI command by name, then execute with arguments.
Get CI Command
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
ci get-command --name issue-view
Output:
status: success
name: issue-view
command: python3 .plan/execute-script.py plan-marshall:tools-integration-ci:github issue view
Execute the Command
Parse the command field from output, then execute with arguments:
python3 .plan/execute-script.py plan-marshall:tools-integration-ci:github issue view --issue 123
Available CI commands (registered via ci_health persist):
pr-create- Create pull requestpr-reviews- Get PR reviewspr-comments- Get PR commentsci-status- Check CI statusci-wait- Wait for CI completionissue-create- Create issueissue-view- View issue details
API Reference
Noun: skill-domains
| Verb | Parameters | Purpose |
|---|---|---|
list | (none) | List all domains |
get | --domain | Get full domain config (returns nested structure for technical domains) |
get-defaults | --domain | Get default skills (returns core.defaults for nested domains) |
get-optionals | --domain | Get optional skills (returns core.optionals for nested domains) |
set | --domain [--profile] [--defaults] [--optionals] | Set domain config (profiles read from extension.py, system domain only) |
add | --domain --defaults [--optionals] | Add new domain |
validate | --domain --skill | Check if skill valid (searches all profiles for nested domains) |
detect | (none) | Auto-detect domains from project files |
get-extensions | --domain | Get workflow skill extensions for domain |
set-extensions | --domain --type --skill | Set workflow skill extension (types: outline, triage) |
get-available | (none) | Get available domains based on detected build systems |
configure | --domains | Configure selected domains with templates |
resolve-domain-skills
| Parameters | Purpose |
|---|---|
--domain --profile | Resolve skills for domain and profile (aggregates {domain}.core + {domain}.{profile}) |
Standard profiles: implementation, module_testing, integration_testing, quality.
resolve-workflow-skill
| Parameters | Purpose |
|---|---|
--phase | Resolve system workflow skill for phase (init, refine, outline, plan, execute, verify, finalize) |
Always returns from the system domain's workflow_skills.
resolve-workflow-skill-extension
| Parameters | Purpose |
|---|---|
--domain --type | Resolve domain-specific workflow extension (types: outline, triage) |
Returns null (not error) if extension doesn't exist for the domain.
get-workflow-skills
| Parameters | Purpose |
|---|---|
| (none) | Get all workflow skills from system domain (7-phase model) |
get-skills-by-profile
| Parameters | Purpose |
|---|---|
--domain | Get skills organized by profile for architecture enrichment |
configure-task-executors
| Parameters | Purpose |
|---|---|
| (none) | Auto-discover profiles and register task executors (convention: profile X -> pm-workflow:task-X) |
resolve-task-executor
| Parameters | Purpose |
|---|---|
--profile | Resolve task executor skill for a profile (e.g., implementation, module_testing) |
Noun: ext-defaults
| Verb | Parameters | Purpose |
|---|---|---|
get | --key | Get extension default value |
set | --key --value | Set extension default value (always overwrites) |
set-default | --key --value | Set value only if key does not exist (write-once) |
list | (none) | List all extension defaults |
remove | --key | Remove extension default |
Noun: system
| Verb | Parameters | Purpose |
|---|---|---|
retention get | (none) | Get all retention settings |
retention set | --field --value | Set retention field |
Noun: plan
Phase-specific configuration using plan {phase} {verb} pattern.
| Verb | Parameters | Purpose |
|---|---|---|
phase-1-init get | [--field] | Get init phase configuration |
phase-1-init set | --field --value | Set init phase field (branch_strategy) |
phase-2-refine get | [--field] | Get refine phase configuration |
phase-2-refine set | --field --value | Set refine phase field (confidence_threshold, compatibility) |
phase-5-execute get | [--field] | Get execute phase configuration |
phase-5-execute set | --field --value | Set execute phase field (commit_strategy) |
phase-6-verify get | [--field] | Get verify phase configuration |
phase-6-verify set-step | --step --enabled | Toggle generic verify step |
phase-6-verify set-domain-step | --domain --step --enabled | Toggle domain verify step |
phase-6-verify set-max-iterations | --value | Set verify max iterations |
phase-7-finalize get | (none) | Get finalize phase configuration |
phase-7-finalize set-step | --step --enabled | Toggle finalize step |
phase-7-finalize set-max-iterations | --value | Set finalize max iterations |
Noun: ci
| Verb | Parameters | Purpose |
|---|---|---|
get | (none) | Get full CI config |
get-provider | (none) | Get CI provider and repo URL |
get-tools | (none) | Get authenticated tools list |
get-command | --name | Get single CI command by name (ready to execute) |
set-provider | --provider --repo-url | Set CI provider |
set-tools | --tools | Set authenticated tools (comma-separated) |
persist | --provider --repo-url [--commands] [--tools] [--git-present] | Persist full CI config (provider, commands, tools) |
init
python3 .plan/execute-script.py plan-marshall:manage-plan-marshall-config:plan-marshall-config \
init [--force]
Data Model
marshal.json Location
.plan/marshal.json
Structure
The defaults template contains only system domain. Technical domains (java, javascript, etc.) are added during project initialization based on detection or manual configuration. Technical domains store only bundle reference and workflow_skill_extensions -- profiles are loaded at runtime from extension.py.
Example (Java project after init):
{
"skill_domains": {
"system": {
"defaults": ["plan-marshall:ref-development-standards"],
"optionals": ["plan-marshall:ref-development-standards"],
"task_executors": {
"implementation": "pm-workflow:task-implementation",
"module_testing": "pm-workflow:task-module_testing",
"integration_testing": "pm-workflow:task-integration_testing"
}
},
"java": {
"bundle": "pm-dev-java",
"workflow_skill_extensions": {
"triage": "pm-dev-java:ext-triage-java"
}
}
},
"system": {
"retention": {
"logs_days": 1,
"archived_plans_days": 5,
"memory_days": 5,
"temp_on_maintenance": true
}
},
"plan": {
"phase-1-init": {
"branch_strategy": "direct"
},
"phase-2-refine": {
"confidence_threshold": 95,
"compatibility": "breaking"
},
"phase-5-execute": {
"commit_strategy": "per_deliverable"
},
"phase-6-verify": {
"max_iterations": 5,
"1_quality_check": true,
"2_build_verify": true,
"domain_steps": {}
},
"phase-7-finalize": {
"max_iterations": 3,
"1_commit_push": true,
"2_create_pr": true,
"3_automated_review": true,
"4_sonar_roundtrip": true,
"5_knowledge_capture": true,
"6_lessons_capture": true
}
}
}
Standard Domains
System Domain
The system domain contains task executors and base skills applied to all tasks.
| Field | Purpose |
|---|---|
defaults | Base skills loaded for all tasks (plan-marshall:ref-development-standards) |
optionals | Optional base skills available for selection |
task_executors | Maps profiles to task executor skills (convention: profile X -> pm-workflow:task-X) |
Technical Domains (Profile Structure)
Technical domains store bundle reference and workflow_skill_extensions in marshal.json. Profiles are loaded at runtime from extension.py.
| Profile | Phase | Purpose |
|---|---|---|
core | all | Skills loaded for all profiles |
implementation | execute | Production code tasks |
module_testing | execute | Unit/module test tasks |
integration_testing | execute | Integration test tasks |
quality | verify | Documentation, verification |
Available Domains:
| Domain | Bundle | Extensions |
|---|---|---|
java | pm-dev-java | triage |
javascript | pm-dev-frontend | triage |
plan-marshall-plugin-dev | pm-plugin-development | outline, triage |
documentation | pm-documents | outline, triage |
Use resolve-domain-skills --domain {domain} --profile {profile} to get aggregated skills.
Scripts
| Script | Notation |
|---|---|
| plan-marshall-config | plan-marshall:manage-plan-marshall-config |
Script characteristics:
- Uses Python stdlib only (json, argparse, pathlib, xml.etree)
- Outputs TOON to stdout
- Exit code 0 for success, 1 for errors
- Supports
--helpflag
Integration Points
With plan-marshall Skill
- Called during wizard initialization
- Called from configuration menus
With Implementation Agents
skill-domains get-defaultsprovides skills to loadskill-domains get-optionalsprovides available optionals
With Cleanup
system retention getprovides retention settings
Error Handling
All operations validate prerequisites before proceeding:
status: error
error: marshal.json not found. Run command /marshall-steward first
Standard error conditions:
marshal.json not found- Run/marshall-stewardfirstskill_domains not configured- Run/marshall-stewardfirstUnknown domain: {name}- Domain doesn't exist