osovv/grace-marketplace-grace-plan
Read an approved GRACE 4 GraceChangeSpec and optional design context, then create a GraceChangePlan with assertions, scopes, tasks, and verification gates.
This is a copy. The original lives at osovv/grace-plan.
npx skills add https://github.com/osovv/grace-marketplace --skill grace-plan
<skill>
<purpose>Convert one approved active GraceChangeSpec into the executable GraceChangePlan; do not implement source code.</purpose>
<inputs>
.grace/changes/active/C-CHANGE-ID/spec.xmldesign-context.xml.grace/context, graph and verification indexes, and their routed documents</inputs>
<preflight>
.grace/changes/active/C-CHANGE-ID/spec.xml with GraceChangeSpec, status approved, and exactly one matching direct C-* wrapper.design-context.xml as explanatory; spec.xml wins on conflict.grace lint --path PROJECT --assertions current before planning and surface stale or invalid active baselines.</preflight>
<approved_plan_immutability>
plan.xml already exists with status approved, stop before writing.BaselineAssertions, TargetAssertions, DurableScope, ObservedWriteScope, or tasks in place.C-* bundle and mark the old bundle superseded with an explicit replacement reference.</approved_plan_immutability>
<must_do>
Produce plan.xml from references/change-plan-template.xml as draft unless the user explicitly approves the completed plan. Require a matching C-* wrapper, meaningful intent, non-empty machine-checkable baseline and target assertions, explicit durable and observed scopes, and unique acyclic T-NNN tasks. A scope with no writes must use an explicit <None /> marker; prose such as "none" is invalid. Every task has one Title, one DependsOn, non-empty acceptance criteria, and non-empty verification commands. Surface stale-state and coexistence warnings, and reject unsupported scope glob syntax instead of guessing.
</must_do>
<command_phase_rules>
current is an active-baseline preflight and is valid only before observed writes begin.baseline is the selected pre-edit gate, target is selected post-edit evidence, and final is the outer apply/archive gate owned by grace-execute.MustPassCommand contains leaf project evidence such as tests, typecheck, build, format, or package checks. Never place grace lint, grace status, or another GRACE lifecycle command inside it.--assertions current in TargetAssertions or in task verification that runs after writes. Use selected target/final lint externally instead.</command_phase_rules>
<validation>
grace lint --path PROJECT --assertions currentgrace lint --path PROJECT --parallel-preflightgrace status --path PROJECT --json after approval.</validation>
<hard_rules>
Do not implement code, silently approve a plan, overwrite an approved plan, or mutate current graph/verification artifacts while planning. Semantic anchors are canonical XML tags, never attributes.
</hard_rules>
</skill>
Take osovv/grace-marketplace-grace-plan from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.