AI-assisted management of reqstool requirements traceability, with optional OpenSpec integration.
Provides config-driven skills and commands that let AI coding assistants help you manage requirements, verification cases, and traceability filters. Works with both Claude Code and GitHub Copilot CLI — same plugin, same format.
# Add marketplace (one-time)
/plugin marketplace add reqstool/reqstool-ai
# Install core plugin
/plugin install reqstool@reqstool-ai --scope project
# Optional: OpenSpec integration
/plugin install reqstool-openspec@reqstool-ai --scope project# Add marketplace (one-time)
copilot plugin marketplace add reqstool/reqstool-ai
# Install core plugin
copilot plugin install reqstool@reqstool-ai
# Optional: OpenSpec integration
copilot plugin install reqstool-openspec@reqstool-aiAfter installing the plugin, run /reqstool:init to create .reqstool-ai.yaml in your project root:
/reqstool:init
This walks you through setting up:
- URN — your project identifier used in reqstool YAML files
- Revision — version string for new requirements and SVCs
- System path — where the system-level requirements and SVCs live
- Modules — one or more subproject modules with their paths and ID prefixes
You can re-run /reqstool:init at any time to update the config (e.g., to add new modules). It reads the existing .reqstool-ai.yaml and uses current values as defaults.
All reqstool skills and commands read .reqstool-ai.yaml from the project root. This file defines your project's reqstool structure:
# Project URN — matches the urn in your reqstool YAML files
urn: my-project
# Revision string for new requirements and SVCs
revision: "0.1.0"
# System-level reqstool directory (SSOT for requirements and SVCs)
system:
path: docs/reqstool
# Subproject modules — each imports a subset of requirements/SVCs via filters
modules:
core:
path: core/docs/reqstool
req_prefix: CORE_ # Requirement IDs: CORE_0001, CORE_0002, ...
svc_prefix: SVC_CORE_ # SVC IDs: SVC_CORE_0001, SVC_CORE_0002, ...
app:
path: app/docs/reqstool
req_prefix: CLI_
svc_prefix: SVC_CLI_| Field | Description |
|---|---|
urn |
Project URN used in reqstool YAML files and filter keys |
revision |
Version string stamped on new requirements and SVCs |
system.path |
Path to the system-level reqstool directory (SSOT) |
modules.<name>.path |
Path to a subproject's reqstool directory (contains filter files) |
modules.<name>.req_prefix |
Requirement ID prefix (e.g., CORE_). Set to "" for domain-specific prefixes |
modules.<name>.svc_prefix |
SVC ID prefix (e.g., SVC_CORE_) |
| Command | Description |
|---|---|
/reqstool:init |
Create or update .reqstool-ai.yaml configuration interactively |
/reqstool:add-req |
Add a new requirement and update subproject filters |
/reqstool:add-svc |
Add a new Software Verification Case and update filters |
/reqstool:status |
Show requirements traceability status for system or a module |
| When you're... | Skill |
|---|---|
| Working with reqstool YAML files or annotations | reqstool-conventions |
Skills are applied automatically based on context — no manual invocation needed.
| When you're... | Skill |
|---|---|
| Working with OpenSpec spec.md files | reqstool-openspec |
Interactively create or update .reqstool-ai.yaml in your project root. Walks you through URN, revision, system path, and module definitions (name, path, ID prefixes). When re-run on a project that already has a config, it reads existing values as defaults so you can add modules or change settings without starting over.
Add a new requirement to the system-level requirements.yml (the single source of truth) and update the relevant subproject filter to include it. Automatically determines the next ID based on the module's req_prefix, supports parent-child decomposition with dot-notation IDs (e.g., CLI_0004.1), and reminds you to annotate the implementation with @Requirements.
Add a new Software Verification Case (SVC) to the system-level software_verification_cases.yml and update the subproject filter. Given a requirement ID, it drafts a GIVEN/WHEN/THEN scenario, mirrors the requirement's ID structure for the SVC ID, and reminds you to annotate the test with @SVCs.
Run reqstool status local for the system or a specific module. Accepts an optional module name (e.g., /reqstool:status core); defaults to the system-level path from .reqstool-ai.yaml. Reqstool traverses imports and implementation config automatically.
Bundled convention docs that are auto-applied when working with reqstool files:
- reqstool-conventions.md — overview of config fields and skill conventions
- reqstool-annotation-conventions.md —
@Requirementsand@SVCsplacement rules (Java, Python, TypeScript) - reqstool-decomposition-conventions.md — parent-child hierarchies, dot-notation IDs, lifecycle states
Install: /plugin install reqstool-openspec@reqstool-ai --scope project
OpenSpec integration conventions, auto-applied when working with spec.md files:
- reqstool-openspec-conventions.md — how to reference reqstool IDs in OpenSpec specs
- config-rules.yaml — reqstool rules for openspec/config.yaml
- reqstool CLI (
pipx install reqstool) - OpenSpec (optional)
reqstool-ai/
├── .claude-plugin/
│ └── marketplace.json # Claude Code marketplace manifest
├── .github/
│ └── plugin/
│ └── marketplace.json # Copilot CLI marketplace manifest
├── plugins/
│ ├── reqstool/ # Core plugin
│ │ ├── .claude-plugin/
│ │ │ └── plugin.json
│ │ ├── skills/
│ │ │ ├── reqstool-init/
│ │ │ │ ├── SKILL.md
│ │ │ │ └── references/
│ │ │ │ └── reqstool-ai.yaml.template
│ │ │ ├── reqstool-add-req/
│ │ │ ├── reqstool-add-svc/
│ │ │ ├── reqstool-status/
│ │ │ └── reqstool-conventions/
│ │ │ ├── SKILL.md
│ │ │ └── references/ # Bundled convention docs
│ │ └── commands/
│ │ └── reqstool/
│ └── reqstool-openspec/ # OpenSpec integration plugin
│ ├── .claude-plugin/
│ │ └── plugin.json
│ └── skills/
│ └── reqstool-openspec/
│ ├── SKILL.md
│ └── references/ # Bundled OpenSpec docs
├── docs/ # Antora documentation
├── CLAUDE.md
├── README.md
├── CONTRIBUTING.md
└── LICENSE
# Claude Code
claude --plugin-dir ./plugins/reqstool
claude --plugin-dir ./plugins/reqstool-openspec
# Copilot CLI
copilot plugin install --path ./plugins/reqstool
copilot plugin install --path ./plugins/reqstool-openspec# Claude Code
/plugin update reqstool@reqstool-ai
/plugin update reqstool-openspec@reqstool-ai
# Copilot CLI
copilot plugin update reqstool@reqstool-ai
copilot plugin update reqstool-openspec@reqstool-aiSee the organization-wide CONTRIBUTING.md.
- Make your changes in
plugins/reqstool/orplugins/reqstool-openspec/. - Bump the version in the changed plugin's
.claude-plugin/plugin.json. - Bump
metadata.versionin both.claude-plugin/marketplace.jsonand.github/plugin/marketplace.json. - Test locally with
claude --plugin-dir ./plugins/<plugin-name>. - Submit a PR.
Full documentation can be found here.
Apache 2.0 -- see LICENSE.