Planner Identity
MicrosoftOfficialPublished by Microsoft
- Skill
- Guidelines
- Agent tooling
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The planner-identity skill provides a standardized scaffold for developing conversational planning agents. It defines a rigid structure for persistent state management, six-phase workflow orchestration, and communication protocols. By establishing common conventions for state files, resume sequences, question cadences, and disclaimer handling, it ensures consistency across different specialized planning agents (such as security, RAI, or accessibility planners). It acts as a base layer that specific planners extend to define their unique identity, phase definitions, and domain-specific logic.
What it does
- Defines a mandatory six-phase orchestration template for consistent agent workflows.
- Establishes a JSON-based state file convention for persistent session tracking.
- Provides standardized protocols for resuming sessions and recovering from context loss.
- Sets rules for question cadences, including emoji-based status tracking and exploration-first questioning.
- Implements a structured disclaimer and professional-review reminder cadence.
- Defines error handling defaults for state corruption, missing files, and contradictory information.
When to use it
- When building a new multi-phase planning agent that requires persistent state across sessions.
- When standardizing the behavior, voice, and interaction patterns of a suite of specialized AI agents.
- When implementing complex workflows that require explicit user confirmation gates.
- When ensuring that AI-generated plans include mandatory professional-review disclaimers.
Advantages
- Ensures uniform behavior and reliability across different planning agents.
- Simplifies recovery and state management through a centralized protocol.
- Provides a clear structure for cross-planner data sharing and referencing.
- Reduces development overhead by inheriting common logic rather than re-implementing it.
Usage examples
- “Initialize a new security planning session.”
- The agent creates a new state.json file, displays the mandatory security disclaimer, and begins the first phase of the security planning workflow.
- “Resume my previous accessibility audit.”
- The agent reads the existing state.json, identifies the current phase, reconstructs context from artifacts, and presents a status summary with an emoji checklist.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/microsoft/planner-identity/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip planner-identity.zip -d .agents/skills
Documentation by Microsoft
Planner Identity
This skill is the shared scaffold for phase-based conversational planning agents that maintain persistent state under .copilot-tracking/<planner>/ and orchestrate work across six sequential phases. Per-planner identity protocols (sssc-planner.instructions.md, security identity.instructions.md, accessibility-identity.instructions.md, and the references/rai-identity.md and references/privacy-identity.md files in the rai-planner and privacy-standards skills) extend this base and contribute the planner-specific content listed under Scope of Inheritance.
Exploration-first questioning style, laddering, projective techniques, scope assessment, and raw-capture rules are defined in shared/coaching-patterns.instructions.md and apply on top of this base.
Disclaimer copy lives in the disclaimer-language skill; this base defines the cadence pattern, not the text.
Scope of Inheritance
Per-planner identity files inherit the following sections from this base and reference them by name rather than restating the content:
State file convention
Six-phase orchestration template (entry/activities/exit/artifacts/transition shape)
Six-step State Protocol
Resume Protocol (Resume Sequence + Post-Summarization Recovery)
Question cadence mechanics (3-5 per turn, emoji checklist, the seven rules)
Disclaimer cadence pattern (when the planner emits user-facing disclaimers)
Error handling defaults
Per-planner identity files own the following sections and define them in their own file:
Agent identity (name, purpose, voice, posture)
Six-phase definitions (concrete phase ids, activities, gates, artifacts, transitions)
Entry modes (per-planner enum and seeding behaviour)
State schema (JSON shape with planner-specific keys, or a reference to a JSON schema file under
scripts/linting/schemas/)Phase-specific question templates
Cross-planner cross-link contracts (which sibling planners share state, and how)
Planner-specific error cases not covered by the base defaults
When a per-planner identity file intentionally diverges from a base pattern, it states the override explicitly so reviewers can tell the difference between an unintentional gap and a deliberate planner-specific choice.
State File Convention
State persists across sessions in a JSON file at .copilot-tracking/<planner-slug>/{project-slug}/state.json. The <planner-slug> segment is fixed per planner (sssc-plans, rai-plans, security-plans, accessibility, privacy-plans) and {project-slug} is the kebab-case project identifier captured at first invocation.
When a planner state includes noticeLog, append a timestamped entry every time the planner displays a disclaimer, framework attribution notice, handoff disclaimer, or professional-review reminder. Each entry records noticeType, shownAt, source, and optional details; disclaimerShownAt is the most recent full-disclaimer display time and remains the automatic-display gate for planners that use the disclaimer cadence. Use noticeLog, not disclaimerShownAt, as the immutable display-history record.
Timestamp fields use ISO-8601 (YYYY-MM-DDTHH:MM:SSZ). Stable identifier fields (evidence ids, control ids, threat ids) are never renumbered once written; per-planner identity files define which fields are stable.
The authoritative shape of state.json is one of the following, declared by each per-planner identity file:
A JSON schema file under
scripts/linting/schemas/referenced by name (preferred when a schema exists)An inline JSON-literal example in the per-planner identity file (used when no schema file exists yet)
state.json is written before every user-facing response and is the single source of truth for resume and recovery.
Six-Phase Orchestration Template
Each per-planner identity file enumerates six sequential phases. Every phase declaration uses the following five-part shape so that resume, recovery, and review logic is uniform across planners:
Entry criteria — preconditions before the phase begins (typically the prior phase's exit met, plus any per-phase data inputs)
Activities — the work performed during the phase
Exit criteria — the gate that signals the phase is complete, identified as either
hard(requires explicit user confirmation recorded in state) orsummary-and-advance(presents a summary and continues without blocking)Artifacts — the files or state fields written during the phase
Transition — the next phase, plus any cross-planner handoff triggered at the boundary
Hard gates record a confirmedAt ISO-8601 timestamp (and confirmedBy when the per-planner schema captures actor identity) under the phase's gate key. Summary-and-advance gates do not require explicit confirmation but still produce a user-facing summary.
The conventional cadence is Phase 1 hard, Phases 2-3 summary-and-advance, Phase 4 hard, Phase 5 summary-and-advance, Phase 6 hard. Per-planner identity files override the cadence when planner-specific risk requires it.
Six-Step State Protocol
Execute this protocol on every turn:
READ
state.jsonfrom the project directoryVALIDATE the file against the per-planner schema or inline contract; if validation fails, follow the recovery procedure in Error Handling
DETERMINE the current phase from the phase pointer field (
currentPhase,phase, or per-planner equivalent) and identify pending workEXECUTE phase activities appropriate to the current turn
UPDATE state fields: advance the phase pointer only when exit criteria are met; update artifact arrays progressively without renumbering stable ids
WRITE the updated
state.jsonto disk before every user-facing response
Resume Protocol
Resume Sequence
When returning to an existing session:
Read
state.jsonto determine the current phase and progressDisclaimer redisplay (conditional) — if the per-planner state includes
disclaimerShownAtand the value isnull, redisplay the planner's session-start disclaimer per the Disclaimer Cadence pattern, setdisclaimerShownAtto the current ISO-8601 timestamp, and append the matchingnoticeLogentry before continuing; otherwise skip this stepIdentify which phase activities remain incomplete (unanswered questions, unmapped items, missing artifact records)
Check for incomplete artifacts: partially written analyses, missing mappings, draft tables
Present a status summary to the user with an emoji checklist showing completed (✅), pending (❓), and blocked (❌) items per phase
Post-Summarization Recovery
When context has been lost (new conversation, context window exceeded, or compaction):
Read
state.jsonfor project slug and current phaseDisclaimer redisplay (conditional) — same rule as Resume Sequence step 2
Read existing artifacts under the project directory (per-phase outputs referenced from state)
Reconstruct context from artifacts rather than from prior chat history
Identify the next incomplete task within the current phase
Resume with a brief summary of recovered state and the next action to take
Planners without a disclaimerShownAt field skip step 2 in both sequences.
Question Cadence
Ask 3-5 questions per turn. Present questions with emoji checklists:
❓ pending (not yet answered)
✅ answered or confirmed
❌ blocked or skipped
Seven Rules
Never ask more than 5 questions in a single turn
Group related questions together under a shared context
Provide context for why each question matters to the plan
Accept partial answers and track remaining items in state (
nextActions,watchlist, or per-planner equivalent)Apply exploration-first questioning per
shared/coaching-patterns.instructions.md: lead with one open-ended discovery question that lets the user describe the situation in their own words; offer option lists only after the answer reveals a finite, well-bounded choice. Per-planner identity files may override this rule when a planner's domain (for example, accessibility framework selection) is intentionally enumerated rather than discovery-orientedConfirm understanding before transitioning to the next phase
Allow the user to skip or defer questions; record deferrals in the planner's deferral field (
nextActions,deferredMitigations, or equivalent)
Per-planner identity files define phase-specific question templates that name the topics each phase explores. The seven rules above govern the mechanics; the per-planner templates govern the substance.
Disclaimer Cadence
When the planner emits a user-facing disclaimer (RAI, SSSC, Security, Accessibility, and Privacy planners do), the cadence is:
Session Start Display
When creating a project state record, or when a recovered record has disclaimerShownAt set to null, display the planner's canonical disclaimer block from the disclaimer-language skill verbatim before any phase work begins. Record the display by setting state.disclaimerShownAt to the current ISO-8601 timestamp and appending a noticeLog entry with noticeType: "session-start-disclaimer" before writing state.json. If disclaimerShownAt already contains a timestamp, do not repeat the full disclaimer during normal continuation. If the user requests redisplay, show the full disclaimer, update disclaimerShownAt to the redisplay timestamp, and append a session-start-disclaimer entry with details.reason: "user-requested-redisplay".
Exit Point Reminder
At each of the following exit points, surface a brief one-line professional-review reminder using the canonical wording in the disclaimer-language skill:
Phase 6 completion (handoff success path) — display the reminder immediately before presenting the final handoff summary
Compact handoff — display the reminder when the orchestrator hands off to ADO, GitHub, or another backlog workflow
Error exit — display the reminder on any unrecoverable error path before terminating the session
User-initiated exit — display the reminder when the user explicitly stops the session or switches agents
Each reminder states that the generated plan is AI-assisted and requires professional review before execution. Append a noticeLog entry with noticeType: "exit-reminder" or noticeType: "professional-review-reminder" each time a reminder is displayed. The per-planner identity file names the review specialty (security, supply chain, RAI, accessibility) and identifies the file that owns the disclaimer copy when the planner pins the emission point downstream (for example, the Accessibility Planner emits the disclaimer only from accessibility-identity.instructions.md per the L7 lever).
Planners without a disclaimer cadence skip the user-facing disclaimer display rules. If their state schema includes disclaimerShownAt for schema parity, they leave it null unless planner-specific instructions explicitly set it, and still use noticeLog for any professional-review reminders they display.
Error Handling
Per-planner identity files inherit the following defaults and add planner-specific cases (for example, schema validation failure surfacing rules, missing framework SKILL handling, or contradiction-resolution between paired plans).
Missing state file: create a new
state.jsonwith Phase 1 defaults and begin the scoping or discovery phaseCorrupted state file: attempt to reconstruct state from existing artifacts in the project directory; if reconstruction fails, create a new
state.jsonand start at Phase 1, preserving salvageable artifact files by referenceMissing artifacts: log the gap in the planner's deferral field (
nextActions,watchlist, or equivalent) and continue with available dataContradictory information: flag with ❌ emoji, present the contradiction to the user with each conflicting source, and ask for clarification before proceeding
Cross-Planner Cross-Links
When a planner sets or reads cross-planner reference fields (raiPlannerLink, securityPlannerLink, ssscPlanRef, raiPlanRef, securityPlanRef, accessibilityPlanRef, or per-planner equivalents), the contract is:
Reference values are workspace-relative file paths to the linked planner's
state.jsonor primary plan fileEvidence-register entries, threat ids, and control mappings are reusable across planners by stable
idandsourceUriA planner never renames or renumbers an id that originated in another planner's state
When importing an entry from a paired plan, preserve the original ownership fields (
frameworkId,controlId,bucketId,threatId) so cross-references remain resolvable
Per-planner identity files enumerate which sibling planners they integrate with and document the per-field import and export rules for that planner pair.
Files
- ATTRIBUTION.mdAdded by AutoGineer835 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md13.2 KiB
Requirements and compatibility
Written for: GitHub Copilot, Claude Code
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Claude Code frontmatter
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/hve-core · .github/skills/shared/planner-identity · commit f425e94
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Microsoft or Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download planner-identity.zip