Skip to content
Agentmart
Submit a tool

l3io-execute

Run the l3io-pm plan — full, single epic, or single sprint.

Skill by ravensorb

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ravensorb-l3io-execute

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Run the l3io-pm plan — full, single epic, or single sprint. Use when the user wants to execute planned work, from elaboration and dev through code review, QA, the fix loop, and sprint and epic closure. Reads plan-output-meta.yaml and executes epics in phase order, dispatching sprint subagents with full context injection.

Use cases: testing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/l3io-execute

What's inside

Skill name
l3io-execute
Description
Run the l3io-pm plan — full, single epic, or single sprint. Use when the user wants to execute planned work, from elaboration and dev through code review, QA, the fix loop, and sprint and epic closure. Reads plan-output-meta.yaml and executes epics in phase order, dispatching sprint subagents with full context injection.
License
MIT
Instructions
80 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (24)

  • SKILL.md
  • customize.toml
  • payload-manifest.json
  • ac-dimensions.md · references/
  • auto-remediation.md · references/
  • calibration-model.md · references/
  • config-resolution.md · references/
  • metrics-contract.md · references/
  • status-files.md · references/
  • spec-align.py · scripts/
  • epic-closure.md · steps/closure/
  • sprint-closure.md · steps/closure/
  • step-02-scope-resolve.md · steps/execute/
  • step-03-load-plan.md · steps/execute/
  • step-04-arch-gate.md · steps/execute/
  • step-05-epic-loop.md · steps/execute/
  • step-06-epic-closure.md · steps/execute/
  • step-00-activate.md · steps/shared/
  • step-00-digest.md · steps/shared/
  • step-01-classify-work.md · steps/shared/
  • step-estimate.md · steps/shared/
  • step-02-story-prep.md · steps/sprint/
  • step-03-dev-loop.md · steps/sprint/
  • step-04-sprint-closure.md · steps/sprint/

SKILL.md (first lines)

# l3io-execute

Communicate all responses in `{communication_language}`.

## Conventions

- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
- `{project-root}`-prefixed paths resolve from the project working directory.
- Bare paths (e.g. `steps/shared/step-00-activate.md`) resolve from `{skill-root}`.
- `{spec_align}` = `uv run {skill-root}/scripts/spec-align.py --project-root {project-root} --planning-root {planning_artifacts} --impl-root {implementation_artifacts} --state-root {implementation_artifacts}/state --pm-status {project-root}/_bmad/scripts/pm-status/__main__.py --spec-paths '{spec_paths}'` — the spec-alignment helper; it never calls a model. `{spec_paths}` is `customize.toml`'s list rendered as JSON (`[]` by default). Step files run it only where `{spec_alignment}` is `true`, except `disposition`, `check-dispositions` and `adrs`, which run either way. Headless sprint subagents receive both bindings in their context block (`steps/execute/step-05-epic-loop.md` §5a).

## On Activation

Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`

If the script fails, resolve the `workflow` block by reading `{skill-root}/customize.toml`, then
`{project-root}/_bmad/custom/l3io-execute.toml` (team), then
`{project-root}/_bmad/custom/l3io-execute.user.toml` (personal) in order. Scalars override, arrays append.

`setup`, `configure`, and `install` are not recognized arguments here — `/l3io-setup` is
the module's setup entry point. Config itself is resolved in step-00-activate per
`{skill-root}/references/config-resolution.md`; an absent `modules.l3io-pm` section means the
module has no overrides, not that it needs setup.

## Execution

**Headless mode** — when `headless: true` is present in the injected context block, do not run
activation: the orchestrator already did, and its context block carries the bindings (pm_status
path, state dirs, session id). Load the digest, then the sprint steps. Activation is not loaded
because its in-run records (`{layouts_reconciled}`, `{layout_migrated}`, `{state_repointed}`) are
orchestrator memory and a subagent has none.
step-01-classify-work is skipped because `{work_type}` is already injected in the context block.
No setup pointer here: this is a dispatched sprint subagent, not the entry a user is starting
work from, and the orchestrator that dispatched it already had its own chance to print it —
the pointer fires at most once ever per project regardless of which invocation gets there
first.

```
{skill-root}/steps/shared/step-00-digest.md
{skill-root}/steps/sprint/step-02-story-prep.md
{skill-root}/steps/sprint/step-03-dev-loop.md
{skill-root}/steps/sprint/step-04-sprint-closure.md
```

**Normal mode** — no `headless: true` in context. Load shared steps, then execute steps in order:

```
{skill-root}/steps/shared/step-00-activate.md
```

Before reading any further state, apply the once-per-project setup pointer
(`{skill-root}/references/config-resolution.md` §5) — this skill is one of the two skills the
pointer is wired into. It fires only when `{l3io_pm_section_absent}` (bound in step-00-activate
§1, from config already resolved there) is `true` — a configured project gets no pointer at
all:

```bash
if [ "{l3io_pm_section_absent}" = "true" ]; then
  uv run {pm_status} notice --state-root {pm_state_root} --key setup-pointer && \
    echo "l3io-pm currently has no project-level configuration. /l3io-setup configures it if you want to."
fi
```

`notice` is keyed on `--key` alone, not a session — there is no cross-invocation session
identifier available (`{session_id}` is bound fresh per invocation), so this fires **at most
once ever** for this project, not once per invocation. Exit 1 means this key was already
recorded — print nothing further, permanently, for this key. Exit 2 means recording it
actually failed (never conflated with exit 1). Never halt on any branch, and never treat this
as a setup trigger.

```
{skill-root}/steps/shared/step-01-classify-work.md
{skill-root}/steps/execute/step-02-scope-resolve.md
{skill-root}/steps/execute/step-03-load-plan.md
{skill-root}/steps/execute/step-04-arch-gate.md
{skill-root}/steps/execute/step-05-epic-loop.md
{skill-root}/steps/execute/step-06-epic-closure.md
```

From ravensorb/bmad-extensions, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 22, 2026 (8 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ravensorb

Cite this page

l3io-execute skill. Agent Mart. https://agentmart.dev/skills/ravensorb-l3io-execute (last updated 2026-10-24)