plugins/agentic-behavior/skills/spec-management/SKILL.md
This skill should be used when creating, updating, or reviewing specifications during the PR process. Trigger phrases: "write a spec", "update the spec", "does this PR have a spec", "add a spec to this PR", "review the spec", "spec-driven development", or when making plugin changes that need specification documentation.
npx skillsauth add nsheaps/ai-mktpl spec-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Specifications are natural-language descriptions of features that serve as the source of truth for PM, PO, QA, QE, and ops. Think of them as natural-language unit and integration tests -- they define what a feature does, why it exists, and how to verify it works.
Specs live co-located with the plugin they describe:
plugins/<plugin-name>/docs/specs/
draft/ # Initial drafts and brainstorming
reviewed/ # Reviewed and approved
in-progress/ # Currently being implemented
live/ # Finalized and actively in use
deprecated/ # Outdated but still referenced
archive/ # No longer in use
This follows the convention defined in common-sense/rules/mantras-and-incremental-development.md.
Each spec is a single markdown file with YAML frontmatter, a reader guide, and content sections that mix narrative with testable Given/When/Then scenarios.
---
title: "<Feature or Rule Name>"
status: draft | reviewed | in-progress | live | deprecated | archived
version: "0.1.0"
created: YYYY-MM-DD
updated: YYYY-MM-DD
pr: "<owner/repo#N or URL>" # PR that introduced or last updated this spec
---
Immediately after frontmatter, include a short section explaining who the spec is for and how to read it:
## Reader Guide
**Audience:** PM, PO, QA, QE, ops, and engineers implementing the feature.
**How to read this spec:** Narrative sections describe intent and context.
`Given/When/Then` blocks define testable acceptance criteria. If you are
reviewing for correctness, focus on the Given/When/Then blocks.
Specs use a combined format -- Problem & Requirements (what and why) plus Technical Design (how) in a single document. Do NOT separate these into distinct "PRD" and "spec" documents.
Typical sections:
Use this format for testable criteria:
### Scenario: <descriptive name>
**Given** <precondition>
**When** <action or trigger>
**Then** <expected outcome>
Group related scenarios under a shared heading. Each scenario should be independently verifiable.
plugins/<plugin>/docs/specs/draft/<spec-name>.mdstatus: draftupdated date in frontmatterWhen reviewing a PR that includes a spec:
| Anti-Pattern | Instead |
| ---------------------------------------------- | -------------------------------------------- |
| PR changes plugin behavior with no spec update | Include spec update in the same PR |
| Separate PRD and technical spec documents | Use combined format in one file |
| Spec only has narrative, no testable criteria | Add Given/When/Then acceptance criteria |
| 800-line mega-spec | Split into parent + child specs |
| Spec lives in a random location | Co-locate under plugins/<name>/docs/specs/ |
| Starting implementation before spec exists | Write at least a draft spec first |
references/spec-template.md -- starter template for plugin/PR-scoped specs, with sections for Problem, Requirements, Technical Design, and acceptance criteria. Copy this as the starting point for a new spec.sdlc-utils:spec-writing and its more comprehensive template at plugins/sdlc-utils/skills/spec-writing/references/spec-template.md.tools
Reference material for Claude Code internals — the on-disk layout under ~/.claude and project-scope .claude, the plugin cache, session-env propagation, and the full hook lifecycle. Auto-recall when working on Claude-Code-related tasks: writing or debugging hooks, authoring plugins, inspecting session state, troubleshooting why an env var is or isn't visible to a Bash tool call, or when paths under ~/.claude or ~/.claude/plugins/ come up.
development
Manage GitHub App installation tokens in Claude Code sessions. Use when tokens expire, auth errors occur in long-running sessions, or when setting up GitHub App credentials for agent teams. <example>my github token expired</example> <example>refresh the github app token</example> <example>check token status</example> <example>set up github app authentication for this session</example>
tools
Auto-detect project formatting tools and configure edit-utils settings
tools
Use this skill when the user asks about 1Password, secrets management, retrieving credentials, using op CLI, service accounts, secret references, vault operations, or any task involving the 1Password CLI (op). Also use when needing to inject secrets into environment variables, read passwords or API keys from 1Password, or manage 1Password items from the command line.