openclaw - ✅(Solved) Fix [GPT 5.4 Phase 4.1] Skill-driven plan templates [1 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#67522Fetched 2026-04-17 08:30:18
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
cross-referenced ×2referenced ×1

Fix Action

Fixed

PR fix notes

PR #67541: feat(skills): plan template support for skill-driven planning [Phase 4.1]

Description (problem / solution / changelog)

TL;DR

Skills can now define a `planTemplate` in their frontmatter that auto-populates `update_plan` on activation, giving users a pre-filled checklist when they invoke a skill.

Tracking

  • Umbrella: #66345
  • Issue: #67522

What this PR does

  • `SkillPlanTemplateStep` type + `planTemplate` field on `OpenClawSkillMetadata`
  • `buildPlanTemplatePayload()`: converts a skill's template steps into an `update_plan` tool call payload
  • `hasSkillPlanTemplate()`: checks whether a skill defines a plan template

Example skill frontmatter

```yaml planTemplate:

  • content: "Read the existing implementation" activeForm: "Reading implementation"
  • content: "Identify areas for improvement" activeForm: "Analyzing code"
  • content: "Apply changes and verify" activeForm: "Applying changes" ```

Files changed

FileChangeTests
`src/agents/skills/skill-planner.ts`New — template builder7 tests
`src/agents/skills/skill-planner.test.ts`NewSelf
`src/agents/skills/types.ts``planTemplate` field added-
`src/agents/skills/frontmatter.ts`Template parsing-
`src/agents/pi-embedded-runner/skills-runtime.ts`Template wiring-

Dependencies

  • #67514 for extended `update_plan` schema (cancelled, merge, activeForm)

What follows

  • #67542: Cross-session plan store (persists skill-generated plans across sessions)

Changed files

  • src/agents/pi-embedded-runner/run/attempt.spawn-workspace.test-support.ts (modified, +3/-0)
  • src/agents/pi-embedded-runner/run/attempt.ts (modified, +26/-1)
  • src/agents/pi-embedded-runner/skills-runtime.ts (modified, +248/-0)
  • src/agents/skills/frontmatter.test.ts (modified, +30/-0)
  • src/agents/skills/frontmatter.ts (modified, +44/-0)
  • src/agents/skills/skill-planner.test.ts (added, +427/-0)
  • src/agents/skills/skill-planner.ts (added, +108/-0)
  • src/agents/skills/types.ts (modified, +25/-0)
  • src/agents/skills/workspace.ts (modified, +17/-0)
  • src/config/types.skills.ts (modified, +7/-0)
  • src/config/zod-schema.ts (modified, +5/-0)

Code Example

# .openclaw/skills/deploy/SKILL.md frontmatter
---
name: deploy
plan-template:
  - step: "Run test suite"
    activeForm: "Running test suite"
  - step: "Build production artifacts"
    activeForm: "Building production artifacts"
  - step: "Deploy to staging"
    activeForm: "Deploying to staging"
  - step: "Run smoke tests on staging"
    activeForm: "Running smoke tests"
  - step: "Promote to production"
    activeForm: "Promoting to production"
---
RAW_BUFFERClick to expand / collapse

GPT 5.4 Enhancement — Phase 4.1

Tracking: #66345 Priority: P2 — Power-user differentiator (not parity-critical) Depends on: #67514 (task-system parity), #67520 (plan mode) Confidence: 75% (novel feature — not in Hermes or Claude Code)

Concept

A skill (.openclaw/skills/<name>/SKILL.md) can declare a plan-template block in its YAML frontmatter. When the agent invokes that skill, the runtime instantiates the template into update_plan automatically, giving the agent a starting checklist instead of deriving one from scratch.

Use case

Users with repeatable workflows (release cuts, deployment runs, incident response, code review flows) want the agent to start with a known plan structure every time. Today GPT-5 has to re-derive the plan from scratch each invocation, which is token-wasteful and inconsistent.

Example

# .openclaw/skills/deploy/SKILL.md frontmatter
---
name: deploy
plan-template:
  - step: "Run test suite"
    activeForm: "Running test suite"
  - step: "Build production artifacts"
    activeForm: "Building production artifacts"
  - step: "Deploy to staging"
    activeForm: "Deploying to staging"
  - step: "Run smoke tests on staging"
    activeForm: "Running smoke tests"
  - step: "Promote to production"
    activeForm: "Promoting to production"
---

When the user says "deploy the app" and the deploy skill activates, the runtime calls update_plan with the template steps (all pending) before the first agent turn, so the agent starts executing step 1 immediately.

Files to create

  • new src/agents/skill-planner.ts — reads plan-template from skill frontmatter, instantiates into update_plan
  • src/plugins/skill-state.ts — hook to call skill-planner on skill activation
  • Tests

Estimated size: ~400 LoC

Why Phase 4

This is not in Hermes and not in Claude Code. It's a genuine differentiator but lower priority than the parity items. Ship after Phase 3 lands and we have baseline parity numbers.

extent analysis

TL;DR

Implement a skill-planner to instantiate the plan-template from the skill's YAML frontmatter into the update_plan automatically when the skill is invoked.

Guidance

  • Create a new file src/agents/skill-planner.ts to read the plan-template from the skill's frontmatter and instantiate it into update_plan.
  • Develop a hook in src/plugins/skill-state.ts to call the skill-planner when a skill is activated.
  • Ensure the skill-planner correctly handles the instantiation of the plan-template into update_plan with all steps initially set to pending.
  • Write comprehensive tests to verify the functionality of the skill-planner and its integration with the skill activation hook.

Example

# Example plan-template in SKILL.md frontmatter
plan-template:
  - step: "Step 1"
    activeForm: "Step 1 active"
  - step: "Step 2"
    activeForm: "Step 2 active"

This example shows how the plan-template might be defined in a skill's frontmatter, which the skill-planner would then instantiate into update_plan.

Notes

The implementation details of the skill-planner and its integration with the skill activation hook are crucial for the correct functioning of this feature. The estimated size of the implementation is approximately 400 lines of code.

Recommendation

Apply the workaround by implementing the skill-planner as described, to provide users with a starting checklist for repeatable workflows, enhancing the efficiency and consistency of the agent's plan derivation.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING