Skip to content
Back to skills

Planner Closure Backfill

ASecurity

Produce one revision-fenced Planner backfill proposal for either a Detailer replan or task-set closure, with compact Frontdesk status evidence.

  • 3,550 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsshell

Works with

  • terminal

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add SeemSeam/claude_codex_bridge --skill planner-closure-backfill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Planner Closure Backfill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Planner Closure Backfill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/seemseam-planner-closure-backfill/badge)](https://www.skillsdirectory.com/skills/seemseam-planner-closure-backfill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: planner-closure-backfill
description: Produce one revision-fenced Planner backfill proposal for either a Detailer replan or task-set closure, with compact Frontdesk status evidence.
---

# Planner Closure Backfill

Use this output contract only when the controller activation mode is exactly
one of `detailer_replan` or `task_set_closure`. Initial intake remains owned by
`planner-task-packet`. Return one proposal for one activation; never combine
the two modes or substitute one mode for the other.

## Activation Modes

### `detailer_replan`

Use only the controller-provided task identity and task revision, expected
PlanTree revision, closure evidence digest, accepted facts, and supplied
Detailer/user macro-adjustment evidence. Copy those authority fields and
evidence refs exactly; do not read or infer unsupplied state.

Preserve accepted facts. Then return a complete replacement macro proposal for
the task: it invalidates and replaces the old orchestration semantics rather
than continuing, replaying, or patching the prior orchestration bundle. Do not
lower acceptance criteria. The proposal `mode` must be exactly
`detailer_replan`; it must never masquerade as `task_set_closure`.

### `task_set_closure`

Use only the script-owned child status, revision, round digest, cleanup,
release, aggregate, and closure envelope. Preserve the task-set aggregate,
closure, and Frontdesk-status rules below. The proposal `mode` must be exactly
`task_set_closure`; do not treat a closure as a Detailer replacement proposal.

## Inputs

- controller-provided expected PlanTree and task/task-set revisions
- original intake and Planner task refs
- for `detailer_replan`: validated Detailer macro-impact and user evidence
- for `task_set_closure`: validated child round, release, cleanup, aggregate,
  and closure evidence
- controller-provided `closure_evidence_digest` and ordered evidence refs
- for `task_set_closure`: script-owned `closure_ref` with its canonical
  project-relative closure path
- current Brief/Roadmap/TODO summary supplied by the host

Do not run shell commands, file reads/searches, tests, builds, CCB commands, or
notification commands. Use only the compact authority envelope in the prompt.

## Semantic Decisions

Planner decides:

- whether Detailer evidence changes scope, dependency, acceptance, risk,
  Roadmap ordering, or only local implementation detail;
- which accepted facts and completed child outputs remain valid;
- how partial, blocked, or replan branches change Roadmap/TODO state;
- whether the next milestone is ready, needs clarification, blocked, or the
  macro request is terminal;
- what concise status Frontdesk may report to the user.

Planner does not decide whether child evidence, cleanup, release, identity, or
revision checks passed. Those are controller-owned input facts.

## Output

Return exactly this one fenced section and no alternative authority shape. Set
`mode` to the exact activation value, never a selector or placeholder.

For `detailer_replan`, emit this legal identity/result core (all remaining
fields use the same schema fields shown below):

```json
{"schema":"ccb.planner.backfill_proposal.v1","mode":"detailer_replan","expected_plan_revision":"<controller expected_plan_revision>","task_or_task_set_id":"<controller task_id>","task_or_task_set_revision":<controller task_revision>,"closure_evidence_digest":"<controller closure_evidence_digest>","aggregate_result":"replan_required","result":"task_set_replanned","evidence_refs":["<controller ordered evidence ref>"]}
```

For `task_set_closure`, emit this separate legal core:

```json
{"schema":"ccb.planner.backfill_proposal.v1","mode":"task_set_closure","expected_plan_revision":"<controller expected_plan_revision>","task_or_task_set_id":"<controller task_set_id>","task_or_task_set_revision":<controller task_set_revision>,"closure_evidence_digest":"<controller closure digest>","aggregate_result":"<controller aggregate_result>","result":"<mapped controller result>","evidence_refs":["<controller ordered evidence ref>"]}
```

````markdown
**planner-backfill.json**
```json
{
  "schema": "ccb.planner.backfill_proposal.v1",
  "mode": "detailer_replan",
  "expected_plan_revision": "sha256:<64 lowercase hex>",
  "task_or_task_set_id": "stable-id",
  "task_or_task_set_revision": 1,
  "closure_evidence_digest": "sha256:<64 lowercase hex>",
  "aggregate_result": "replan_required",
  "result": "task_set_replanned",
  "brief_summary": "durable compact summary",
  "roadmap_transitions": [],
  "todo_transitions": [],
  "decision_refs": [],
  "open_question_refs": [],
  "evidence_refs": [],
  "accepted_scope": [],
  "unresolved_scope": [],
  "blockers": [],
  "replan_inputs": [],
  "next_milestone": {
    "kind": "selected|workflow_terminal|blocked_none",
    "ref": "stable-milestone-ref",
    "rationale": "semantic reason"
  },
  "frontdesk_notification_required": true,
  "frontdesk_status": {
    "schema": "ccb.planner.frontdesk_status.v1",
    "notification_identity": "stable-id",
    "aggregate_result": "replan_required",
    "accepted_scope": [],
    "unresolved_scope": [],
    "blockers": [],
    "next_milestone": {
      "kind": "selected|workflow_terminal|blocked_none",
      "ref": "stable-milestone-ref",
      "rationale": "semantic reason"
    },
    "evidence_refs": [],
    "user_report_body": "factual user-facing report"
  }
}
```
````

This skill carries two complete JSON exemplars: its
`templates/planner-backfill-detailer-replan.json` file is only for
`detailer_replan`, and `templates/planner-backfill.json` is only for
`task_set_closure`. Neither exemplar authorizes emitting the other mode.

## Rules

- `expected_plan_revision is a digest`: copy the supplied
  `sha256:<64 lowercase hex>` value exactly. Never convert it to a counter,
  infer a newer revision, or repair a stale value in provider prose.
- Copy `task_or_task_set_id`, `task_or_task_set_revision`,
  `closure_evidence_digest`, and the ordered supplied evidence refs exactly.
  `detailer_replan` uses the supplied task identity and task revision, never a
  task-set identity or an inferred replacement revision.
- Preserve the controller-owned `aggregate_result` exactly. The complete
  mapping is `pass -> closure_complete`, `partial -> closure_partial`,
  `replan_required -> task_set_replanned`, and
  `blocked -> closure_blocked`. Never output a complete semantic result for non-pass aggregate evidence.
- For `task_set_closure`: Treat `closure_ref` as script-owned input. Copy
  `closure_ref.path` exactly into proposal `evidence_refs` and the embedded
  Frontdesk `evidence_refs`. Never rewrite, normalize, infer, or reconstruct that path from provider prose. Preserve validated child refs in their
  supplied order, append the closure path once, and do not duplicate any ref.
- Derive `accepted_scope`, `unresolved_scope`, `blockers`, `replan_inputs`, and
  `evidence_refs` from validated controller authority. Never invent accepted
  scope or pass from missing/nonterminal evidence. `pass` requires empty
  unresolved/blocker/replan fields. Every non-pass requires non-empty
  `unresolved_scope`; `blocked` requires blockers and `replan_required`
  requires replan inputs.
- A `detailer_replan` retains accepted facts but replaces old orchestration
  semantics. Do not replay, merge with, or claim continuity of the old bundle.
  A `task_set_closure` retains its aggregate and closure semantics. Never
  exchange those activation rules.
- Multiple replan children produce one coherent macro proposal, not multiple
  independent Planner actions.
- Never overwrite a newer PlanTree revision. Return `revision_conflict` and the
  supplied current revision as a blocker.
- Preserve aggregate result, accepted scope, unresolved scope, blockers, next
  milestone, and evidence refs byte-for-byte in `frontdesk_status`.
- Embed exactly one complete `ccb.planner.frontdesk_status.v1` object under the
  sole `frontdesk_status` field, including when notification is not required.
- Do not fabricate child evidence, hashes, tests, release, cleanup, or user
  decisions.
- No PlanTree write, Frontdesk notification, CCB command, file operation, test,
  wait, watch, or downstream ask is allowed from this reply-only surface. The
  host validates and imports the proposal and owns every side effect.
- Do not modify PlanTree or send Frontdesk messages from the provider reply.

Files in this skill

  • SKILL.md8.2 KB
  • templates/planner-backfill-detailer-replan.json1.5 KB
  • templates/planner-backfill.json1.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.